@@ -15,15 +15,15 @@ hole_y_positions = [23.5,65.5,8,72];
1515
1616keepout_thickness_per_side = 5.5 ;
1717
18- module touch_proof_recepticle () {
18+ module touch_proof_receptacle () {
1919 union () {
2020 hole_center_to_box_front = 11.4 ;
2121 hole_center_to_box_back = 2.15 ; // guess (no dimension given on drawing)
2222 height = 6.4 ;
2323 hole_center_to_cylinder_front = 11.4 + 6 ;
2424 box_width = 7.9 ;
2525 translate ([hole_center_to_box_back, - box_width/2 , 0 ])
26- cube ([hole_center_to_box_front - hole_center_to_box_back, box_width, height]);
26+ cube ([hole_center_to_box_front - hole_center_to_box_back, box_width, height]);
2727 translate ([hole_center_to_box_back, 0 , height/2 ]) rotate ([0 ,90 ,0 ])
2828 cylinder (h= hole_center_to_cylinder_front - hole_center_to_box_back, d= height);
2929 }
@@ -62,76 +62,96 @@ module batteries() {
6262 battery_size_z = 22 - pcb_size_z;
6363 battery_size_x = 45 ;
6464 battery_size_y = 78 ;
65- cube ([battery_size_x, battery_size_y,battery_size_z]);
65+ translate ([42 , 1 , pcb_size_z])
66+ cube ([battery_size_x, battery_size_y,battery_size_z]);
6667}
6768
68- pcb_model() ;
6969
70- touch_proof_recepticle_spacing = 8 ;
71- num_touch_proof_recepticles = 10 ;
72- for (i = [0 :num_touch_proof_recepticles - 1 ]) {
73- translate ([119 , 4 + (i* touch_proof_recepticle_spacing), pcb_size_z])
74- touch_proof_recepticle();
70+ module touch_proof_receptacles() {
71+ touch_proof_receptacle_spacing = 8 ;
72+ num_touch_proof_receptacles = 10 ;
73+ for (i = [0 :num_touch_proof_receptacles - 1 ]) {
74+ translate ([119 , 4 + (i* touch_proof_receptacle_spacing), pcb_size_z])
75+ touch_proof_receptacle();
76+ }
77+ }
78+
79+ module dc_to_dc_converter() {
80+ dc_to_dc_position_x = 14.5 ;
81+ dc_to_dc_position_y = 20 ;
82+ dc_to_dc_position_z = pcb_size_z;
83+ dc_to_dc_size_x = 22 ;
84+ dc_to_dc_size_y = 33 ;
85+ dc_to_dc_height = 11 ;
86+
87+ translate ([dc_to_dc_position_x, dc_to_dc_position_y, dc_to_dc_position_z]) cube ([dc_to_dc_size_x, dc_to_dc_size_y, dc_to_dc_height]);
88+ }
89+
90+ module display_pins() {
91+ display_pins_pitch = 0.1 * millimeters_per_inch;
92+ display_pins_size_x = 1 * display_pins_pitch;
93+ display_pins_size_y = 7 * display_pins_pitch;
94+ display_pins_size_z = 10 ;
95+ display_pins_position_x = 33.5 - (display_pins_pitch/2 );
96+ display_pins_position_y = 2 - (display_pins_pitch/2 );
97+ display_pins_position_z = pcb_size_z;
98+
99+ translate ([display_pins_position_x, display_pins_position_y, display_pins_position_z]) cube ([display_pins_size_x, display_pins_size_y, display_pins_size_z]);
100+ }
101+
102+ module usb_c_connector() {
103+ usb_c_size_x = 11.5 ;
104+ usb_c_size_y = 20 ; // placeholder
105+ usb_c_metal_size_z = 2.5 ;
106+ usb_c_connector_clearance_z = 2.0 ;
107+ usb_c_standoff = 0.21 ;
108+ usb_c_size_z = usb_c_metal_size_z + (2 * usb_c_connector_clearance_z);
109+ usb_c_position_x = 6.5 - (usb_c_size_x/2 );
110+ usb_c_position_y = pcb_size_y - usb_c_size_y/2 ;
111+ usb_c_position_z = - (usb_c_standoff + usb_c_metal_size_z + usb_c_connector_clearance_z);
112+
113+ translate ([usb_c_position_x, usb_c_position_y, usb_c_position_z ]) cube ([usb_c_size_x, usb_c_size_y, usb_c_size_z]);
114+ }
115+
116+ module usb_micro_connector() {
117+ usb_micro_size_x = 10 ;
118+ usb_micro_size_y = 20 ; // placeholder
119+ usb_micro_metal_size_z = 1.8 ;
120+ usb_micro_connector_clearance_z = 2.7 ;
121+ usb_micro_standoff = 0.21 ;
122+ usb_micro_size_z = usb_micro_metal_size_z + (2 * usb_micro_connector_clearance_z);
123+ usb_micro_position_x = 29.5 - (usb_micro_size_x/2 );
124+ usb_micro_position_y = pcb_size_y - usb_micro_size_y/2 ;
125+ usb_micro_position_z = - (usb_micro_standoff + usb_micro_metal_size_z + usb_micro_connector_clearance_z);
126+
127+ translate ([usb_micro_position_x, usb_micro_position_y, usb_micro_position_z ]) cube ([usb_micro_size_x, usb_micro_size_y, usb_micro_size_z]);
128+ }
129+
130+ module power_switch() {
131+ switch_size_x = 4 ;
132+ switch_size_y = 20 ;
133+ switch_tab_size_z = 2 ;
134+ switch_size_z = 6 - pcb_size_z;
135+ switch_position_x = 47.35 - (switch_size_x/2 );
136+ switch_position_y = pcb_size_y - switch_size_y/2 ;
137+ switch_position_z = - switch_size_z;
138+
139+ translate ([switch_position_x, switch_position_y, switch_position_z ]) cube ([switch_size_x, switch_size_y, switch_size_z]);
140+ }
141+
142+ module board_keepout() {
143+ pcb_model() ;
144+ batteries();
145+ touch_proof_receptacles();
146+ dc_to_dc_converter();
147+ translate ([0 ,0 ,pcb_size_z])
148+ component_keepout_model();
149+ translate ([0 ,0 ,- keepout_thickness_per_side])
150+ component_keepout_model();
151+ display_pins();
152+ usb_c_connector();
153+ usb_micro_connector();
154+ power_switch();
75155}
76156
77- translate ([42 , 1 , pcb_size_z]) batteries();
78-
79- dc_to_dc_position_x = 14.5 ;
80- dc_to_dc_position_y = 20 ;
81- dc_to_dc_position_z = pcb_size_z;
82- dc_to_dc_size_x = 22 ;
83- dc_to_dc_size_y = 33 ;
84- dc_to_dc_height = 11 ;
85-
86- translate ([dc_to_dc_position_x, dc_to_dc_position_y, dc_to_dc_position_z]) cube ([dc_to_dc_size_x, dc_to_dc_size_y, dc_to_dc_height]);
87-
88- translate ([0 ,0 ,pcb_size_z])
89- component_keepout_model();
90-
91- translate ([0 ,0 ,- keepout_thickness_per_side])
92- component_keepout_model();
93-
94- display_pins_pitch = 0.1 * millimeters_per_inch;
95- display_pins_size_x = 1 * display_pins_pitch;
96- display_pins_size_y = 7 * display_pins_pitch;
97- display_pins_size_z = 10 ;
98- display_pins_position_x = 33.5 - (display_pins_pitch/2 );
99- display_pins_position_y = 2 - (display_pins_pitch/2 );
100- display_pins_position_z = pcb_size_z;
101-
102- translate ([display_pins_position_x, display_pins_position_y, display_pins_position_z]) cube ([display_pins_size_x, display_pins_size_y, display_pins_size_z]);
103-
104-
105- usb_c_size_x = 11.5 ;
106- usb_c_size_y = 20 ; // placeholder
107- usb_c_metal_size_z = 2.5 ;
108- usb_c_connector_clearance_z = 2.0 ;
109- usb_c_standoff = 0.21 ;
110- usb_c_size_z = usb_c_metal_size_z + (2 * usb_c_connector_clearance_z);
111- usb_c_position_x = 6.5 - (usb_c_size_x/2 );
112- usb_c_position_y = pcb_size_y - usb_c_size_y/2 ;
113- usb_c_position_z = - (usb_c_standoff + usb_c_metal_size_z + usb_c_connector_clearance_z);
114-
115- translate ([usb_c_position_x, usb_c_position_y, usb_c_position_z ]) cube ([usb_c_size_x, usb_c_size_y, usb_c_size_z]);
116-
117- usb_micro_size_x = 10 ;
118- usb_micro_size_y = 20 ; // placeholder
119- usb_micro_metal_size_z = 1.8 ;
120- usb_micro_connector_clearance_z = 2.7 ;
121- usb_micro_standoff = 0.21 ;
122- usb_micro_size_z = usb_micro_metal_size_z + (2 * usb_micro_connector_clearance_z);
123- usb_micro_position_x = 29.5 - (usb_micro_size_x/2 );
124- usb_micro_position_y = pcb_size_y - usb_micro_size_y/2 ;
125- usb_micro_position_z = - (usb_micro_standoff + usb_micro_metal_size_z + usb_micro_connector_clearance_z);
126-
127- translate ([usb_micro_position_x, usb_micro_position_y, usb_micro_position_z ]) cube ([usb_micro_size_x, usb_micro_size_y, usb_micro_size_z]);
128-
129- switch_size_x = 4 ;
130- switch_size_y = 20 ;
131- switch_tab_size_z = 2 ;
132- switch_size_z = 6 - pcb_size_z;
133- switch_position_x = 47.35 - (switch_size_x/2 );
134- switch_position_y = pcb_size_y - switch_size_y/2 ;
135- switch_position_z = - switch_size_z;
136-
137- translate ([switch_position_x, switch_position_y, switch_position_z ]) cube ([switch_size_x, switch_size_y, switch_size_z]);
157+ board_keepout();
0 commit comments