Add bottom component as a single sliding Print-in-Place model
This commit is contained in:
		
							parent
							
								
									118fe703b5
								
							
						
					
					
						commit
						d8329f5401
					
				
							
								
								
									
										43
									
								
								main.scad
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								main.scad
									
									
									
									
									
								
							| @ -7,15 +7,18 @@ use <BOSL/sliders.scad> | ||||
| 
 | ||||
| // DEBUG: | ||||
| //validation = 1; | ||||
| //xray = 1; | ||||
| XRAY_POSITIVE=1; | ||||
| XRAY_BACKPLANE=2; | ||||
| //xray = 2; | ||||
| 
 | ||||
| // EXPORT: | ||||
| MODEL_HARNESS_LEFT=1; | ||||
| MODEL_HARNESS_RIGHT=2; | ||||
| MODEL_HARNESS_TOP=3; | ||||
| MODEL_HARNESS_SLIDER_FRONT=4; | ||||
| MODEL_HARNESS_SLIDER_BACK=5; | ||||
| export=1; // [0:5] | ||||
| MODEL_HARNESS_BOTTOM_PIP=3; | ||||
| MODEL_HARNESS_TOP=4; | ||||
| MODEL_HARNESS_SLIDER_FRONT=5; | ||||
| MODEL_HARNESS_SLIDER_BACK=6; | ||||
| export=3; // [0:6] | ||||
| function is_not_export() = is_undef(export) || export == 0; | ||||
| function is_export() = !is_not_export(); | ||||
| function is_model_strict(m) = is_export() && export == m; | ||||
| @ -23,6 +26,8 @@ function is_model(m) = is_not_export() || export == m; | ||||
| 
 | ||||
| function get_phone_size() = [160, 76.7, 10]; | ||||
| 
 | ||||
| backplane_pip_slideout=10; | ||||
| 
 | ||||
| module cubi(s, fillet=0, edges=EDGES_ALL) { | ||||
|     if ($preview) { | ||||
|         cube(s, center=true); | ||||
| @ -123,7 +128,21 @@ module phone_harness() { | ||||
|         } | ||||
|     } | ||||
|     module shell_backplane(groove) { | ||||
|         down(hs.z/2 - shell_wall/6) up(backplane_rim_size.z/2) right(harness_divider.x) scale(groove ? 1.01 : 1) cubi(backplane_rim_size, fillet=5, edges=EDGES_Z_LF); | ||||
|         down(hs.z/2 - shell_wall/6) up(backplane_rim_size.z/2) right(harness_divider.x) { | ||||
|             back(backplane_rim_size.y/2) { | ||||
|                 teeth=4; | ||||
|                 segment=backplane_rim_size.y/teeth; | ||||
|                 tooth_size=[backplane_rim_size.x, segment/2, backplane_rim_size.z]; | ||||
|                 for (i = [0:teeth-1]) { | ||||
|                     fwd(i*segment) fwd(tooth_size.y) scale(groove ? 1.02 : 1) cubi(tooth_size, fillet=2, edges=EDGES_Z_LF); | ||||
|                 } | ||||
|             } | ||||
|             left(backplane_pip_slideout + 11) if (is_model_strict(MODEL_HARNESS_BOTTOM_PIP)) { | ||||
|                 joiner_size=[7 + (groove?backplane_pip_slideout:0), backplane_rim_size.y, backplane_rim_size.z]; | ||||
|                 scale(groove ? 1.02 : 1) left(-joiner_size.x/2) cubi(joiner_size, fillet=2, edges=EDGES_Z_LF); | ||||
|             } | ||||
|         } | ||||
|          | ||||
|     } | ||||
|      | ||||
|     // ==== SHELL SLIDER AND RAIL ==== | ||||
| @ -290,7 +309,11 @@ module phone_harness() { | ||||
|     } | ||||
|      | ||||
|     if (is_model(MODEL_HARNESS_LEFT)) model_harness_left(); | ||||
|     if (is_model(MODEL_HARNESS_RIGHT)) model_harness_right();     | ||||
|     if (is_model(MODEL_HARNESS_RIGHT)) model_harness_right(); | ||||
|     if (is_model_strict(MODEL_HARNESS_BOTTOM_PIP)) { | ||||
|         model_harness_left(); | ||||
|         right(backplane_pip_slideout) model_harness_right(); | ||||
|     } | ||||
|     if (is_model(MODEL_HARNESS_TOP)) model_harness_top(); | ||||
|     if (is_model(MODEL_HARNESS_SLIDER_FRONT)) model_harness_slider_front(); | ||||
|     if (is_model(MODEL_HARNESS_SLIDER_BACK)) model_harness_slider_back(); | ||||
| @ -308,7 +331,11 @@ if (!is_undef(validation)) { | ||||
| } else { | ||||
|     intersection() { | ||||
|         if (!is_undef(xray)) { | ||||
|             span_cube([0,1000*xray], [0,1000*xray], [-1000,1000]); | ||||
|             if (xray == XRAY_POSITIVE) { | ||||
|                 span_cube([0,1000], [0,1000], [-1000,1000]); | ||||
|             } else if (xray == XRAY_BACKPLANE) { | ||||
|                 span_cube([-1000,1000], [-1000,1000], [-1000,-7]); | ||||
|             } | ||||
|         } | ||||
|         union() { | ||||
|             if (is_not_export()) { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user