3 // should rename this to actual name of the product
7 mount_lip_height = 2.0 - 0.15;
8 mount_lip_depth = 2.5 /*?*/ - 0.30;
9 mount_neck_width = 26.5 - 0.55 - 0.15;
10 mount_neck_length = 1.5 + 0.50;
13 mount_extra_slope = 3;
20 mnep1 = mnep0 + [0,1] * mount_neck_length;
21 mnep7 = mnep0 + [1,0] * mount_lip_depth;
22 mnep2 = [ mnep7[0] + mount_extra_slope, mnep1[1] + mount_slope * (mnep7[0] + mount_extra_slope - mnep1[0]) ];
23 mnep3 = mnep2 + [0, 0.1];
24 mnep4 = [ mnep0[0]-1, mnep3[1] ];
25 mnep6 = mnep7 + [0,-1] * mount_lip_height;
26 mnep5 = [ mnep4[0], mnep6[1] ];
27 mnepm = [ mnep0[0], mnep3[1] ];
29 mount_total_height = mnep2[1] - mnep6[1];
30 mnep_z_offset = -mnep2[1];
31 mnep_side_offset = [ mount_neck_width/2, mnep_z_offset ];
33 module MountNeckEdgePlan() {
45 intersection_for (r=[0,90]) {
47 linextr_y_xz(-100,100,convexity=10){
50 translate(mnep_side_offset) MountNeckEdgePlan();
51 rectfromto([-0.1, -mount_total_height],
52 mnep_side_offset + mnepm);
60 module MountDemoCeil() {
61 c = mount_demo_ceil + mount_extra_slope;
63 square(mount_neck_width + 2*(mount_demo_ceil + mount_extra_slope),
73 //MountNeckEdgePlan();