Add laserwindow cover
This commit is contained in:
		
							parent
							
								
									d834467849
								
							
						
					
					
						commit
						171eff19e0
					
				| @ -55,6 +55,8 @@ module frame(size) { | ||||
|     fbd=front_body_depth; | ||||
|     bbr=back_bumpers_radius; | ||||
|      | ||||
|     walls_height=height-plate*2; | ||||
|      | ||||
|     module back_bumpers() { | ||||
|         module bumper() { back_half() circle(r=bbr); } | ||||
|         back(depth) { | ||||
| @ -111,7 +113,6 @@ module frame(size) { | ||||
|     } | ||||
|      | ||||
|     module walls() { | ||||
|         walls_height=height-plate*2; | ||||
|         difference() { | ||||
|             up(plate) linear_extrude(height=walls_height) { | ||||
|                 //back_bumpers(); | ||||
| @ -129,10 +130,10 @@ module frame(size) { | ||||
|         offset=4.5; | ||||
|         plate_len_side=slide_pos.y - offset/2; | ||||
|         plate_len_left=plate_len_side/2; | ||||
|         plate_len_right=plate_len_left*3; | ||||
|         plate_len_right=plate_len_side + 5; | ||||
|         // front | ||||
|         fwd(th) left(th) up(offset) { | ||||
|             cube([plate_len_left / 2 + th*2, th, height - offset*2]); | ||||
|             cube([plate_len_left + th*2, th, height - offset*2]); | ||||
|         } | ||||
|         fwd(th) right(width-plate_len_right-th) up(offset) { | ||||
|             cube([plate_len_right + th*2, th, height - offset*2]); | ||||
| @ -180,6 +181,12 @@ module frame(size) { | ||||
|             slide(); | ||||
|             slider(); | ||||
|         } | ||||
|          | ||||
|         right(get_holodisk_laserwindow_pos_center().x) zrot(-90) { | ||||
|            scale([1, 0.7, 1]) { | ||||
|               slider(); | ||||
|            } | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     module laserwindow_door() { | ||||
| @ -207,6 +214,47 @@ module frame(size) { | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     { | ||||
|         overlap=1; | ||||
|         rails_size = [ | ||||
|             get_holodisk_laserwindow_size().x * 2 + overlap*2, | ||||
|             1, | ||||
|             walls_height | ||||
|         ]; | ||||
|         rail_size = [rails_size.x, rails_size.y, 2]; | ||||
|         rails_pos = [get_holodisk_laserwindow_pos().x - rails_size.x/2, | ||||
|             -rails_size.y, plate]; | ||||
|         rail1_pos = [rails_pos.x, rails_pos.y, rails_pos.z]; | ||||
|         rail2_pos = [rails_pos.x, rails_pos.y, rails_pos.z + rails_size.z - rail_size.z]; | ||||
|          | ||||
|         module laserwindow_slider_rails() { | ||||
|             translate(rail1_pos) cube(rail_size); | ||||
|             translate(rail2_pos) cube(rail_size); | ||||
|         } | ||||
|      | ||||
|         module laserwindow_slider_cover() { | ||||
|             cover_size=[ | ||||
|                 get_holodisk_laserwindow_size().x, | ||||
|                 rails_size.y + overlap*2, | ||||
|                 get_holodisk_slide_slider_size().z | ||||
|             ]; | ||||
|             cover_plate=[cover_size.x, rail_size.y, cover_size.z]; | ||||
|             cover_top=[cover_size.x - overlap, cover_size.y, cover_size.z - overlap]; | ||||
|             /*cover_pos=[rails_pos.x+overlap, rails_pos.y + rails_size.y, rails_pos.z];*/ | ||||
|             cover_pos=[get_holodisk_laserwindow_pos().x, rails_pos.y + rails_size.y, rails_pos.z]; | ||||
|             left(anim(0,1)*get_holodisk_laserwindow_size().x) | ||||
|             right(anim(len(get_anim_keys())-2,len(get_anim_keys())-1)*get_holodisk_laserwindow_size().x) | ||||
|             translate(cover_pos) | ||||
|             hull() { | ||||
|                 fwd(cover_plate.y) cube(cover_plate); | ||||
|                 fwd(cover_top.y) up((cover_plate.z-cover_top.z)/2) cube(cover_top); | ||||
|             } | ||||
|         } | ||||
|          | ||||
|         color("red") laserwindow_slider_rails(); | ||||
|         color("red") laserwindow_slider_cover(); | ||||
|     } | ||||
|      | ||||
|     color("SaddleBrown") top_cover(); | ||||
|     color("grey") walls(); | ||||
|     color("gold") laserwindow_door(); | ||||
|  | ||||
| @ -48,6 +48,12 @@ function get_holodisk_laser_cutout_pos_center() = [ | ||||
| 
 | ||||
| // -- laser-window -- | ||||
| 
 | ||||
| function get_holodisk_laserwindow_pos() = [ | ||||
|     get_holodisk_laserwindow_pos_center().x - get_holodisk_laserwindow_size().x/2, | ||||
|     get_holodisk_laserwindow_pos_center().y - get_holodisk_laserwindow_size().y/2, | ||||
|     get_holodisk_laserwindow_pos_center().z - get_holodisk_laserwindow_size().z/2, | ||||
|     ]; | ||||
| 
 | ||||
| function get_holodisk_laserwindow_pos_center() = [ | ||||
|     get_holodisk_laser_cutout_pos_center().x, | ||||
|     0, | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user