| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- include <../config/vesa.scad>
- module vesa_hinge_mounting_shape() {
- radius = vesa_hinge_screw / 2;
- move_x = vesa_hinge_height / 2 - vesa_hinge_screw;
- move_y = vesa_hinge_height / 2 + vesa_hinge_thickness + vesa_hinge_screw;
- translate([move_x, 0]) {
- circle(r = radius);
- }
- translate([-move_x, 0]) {
- circle(r = radius);
- }
- translate([0, move_y]) {
- circle(r = radius);
- }
- translate([0, -move_y]) {
- circle(r = radius);
- }
- }
- module vesa_hinge_object() {
- module bottom_base_object() {
- move_x = vesa_hinge_height / 2 - vesa_hinge_screw;
- move_y = vesa_hinge_height / 2 + vesa_hinge_thickness + vesa_hinge_screw;
- linear_extrude(height = vesa_hinge_thickness) {
- difference() {
- hull() {
- translate([move_x, move_y]) {
- circle(r = vesa_hinge_screw);
- }
- translate([-move_x, move_y]) {
- circle(r = vesa_hinge_screw);
- }
- translate([-move_x, -move_y]) {
- circle(r = vesa_hinge_screw);
- }
- translate([move_x, -move_y]) {
- circle(r = vesa_hinge_screw);
- }
- }
- vesa_hinge_mounting_shape();
- }
- }
- }
- module hanging_object() {
- rotate([90, 0, 0]) {
- linear_extrude(height = vesa_hinge_thickness, center = true) {
- radius = vesa_hinge_depth / 2;
- difference() {
- hull() {
- translate([0, radius]) {
- circle(r = radius);
- }
- translate([0, radius / 2]) {
- square([radius * 2, radius], center = true);
- }
- }
- translate([0, radius]) {
- circle(r = vesa_hinge_screw / 2);
- }
- }
- }
- }
- }
- move_y = vesa_hinge_depth / 2 + vesa_hinge_thickness / 2;
- move_z = vesa_hinge_thickness;
- translate([0, move_y, move_z]) {
- hanging_object();
- }
- translate([0, -move_y, move_z]) {
- hanging_object();
- }
- bottom_base_object();
- }
- module vesa_object() {
- vesa_hinge_object();
- }
|