Initial commit
This commit is contained in:
		
						commit
						08d340d4ea
					
				
							
								
								
									
										9
									
								
								10mm-block.scad
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								10mm-block.scad
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| $fn=12; | ||||
| 
 | ||||
| difference(){ | ||||
|   cube([20,80,10]); | ||||
|   translate([20/2,80/4,50/2]) | ||||
|     #cylinder(h=51,r=1.5,center=true); | ||||
|   translate([20/2,80/4*3,50/2]) | ||||
|     #cylinder(h=51,r=1.5,center=true); | ||||
| } | ||||
							
								
								
									
										
											BIN
										
									
								
								10mm-block.stl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								10mm-block.stl
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										9
									
								
								40mm-block.scad
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								40mm-block.scad
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| $fn=12; | ||||
| 
 | ||||
| difference(){ | ||||
|   cube([20,80,40]); | ||||
|   translate([20/2,80/4,40/2]) | ||||
|     #cylinder(h=46,r=3,center=true); | ||||
|   translate([20/2,80/4*3,40/2]) | ||||
|     #cylinder(h=46,r=3,center=true); | ||||
| } | ||||
							
								
								
									
										
											BIN
										
									
								
								40mm-block.stl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								40mm-block.stl
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										9
									
								
								45mm-block.scad
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								45mm-block.scad
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| $fn=12; | ||||
| 
 | ||||
| difference(){ | ||||
|   cube([20,80,45]); | ||||
|   translate([20/2,80/4,45/2]) | ||||
|     #cylinder(h=46,r=3,center=true); | ||||
|   translate([20/2,80/4*3,45/2]) | ||||
|     #cylinder(h=46,r=3,center=true); | ||||
| } | ||||
							
								
								
									
										
											BIN
										
									
								
								45mm-block.stl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								45mm-block.stl
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										9
									
								
								50mm-block.scad
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								50mm-block.scad
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| $fn=12; | ||||
| 
 | ||||
| difference(){ | ||||
|   cube([20,80,50]); | ||||
|   translate([20/2,80/4,50/2]) | ||||
|     #cylinder(h=51,r=3,center=true); | ||||
|   translate([20/2,80/4*3,50/2]) | ||||
|     #cylinder(h=51,r=3,center=true); | ||||
| } | ||||
							
								
								
									
										
											BIN
										
									
								
								50mm-block.stl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								50mm-block.stl
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								BOSL2-master.zip
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								BOSL2-master.zip
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Futaba_3001_Servo_Mount.stl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Futaba_3001_Servo_Mount.stl
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										254
									
								
								LBracket_Parametric_rev9.scad
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										254
									
								
								LBracket_Parametric_rev9.scad
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,254 @@ | ||||
| //Parametric L Bracket | ||||
| //You can make this any length, Width, Height & Thickness you want | ||||
| //You can also have 1, 2 or 4 screws on each leg of the L | ||||
| //8/19/2015 By: David Bunch | ||||
| // | ||||
| //Revised 8/20/2015 to make rounded ends instead of chamfers | ||||
| //                  and more flexibility on screws | ||||
| //CUSTOMIZER VARIABLES | ||||
| 
 | ||||
| /* [Basic Dimensions] */ | ||||
| 
 | ||||
| //1. Length of Part along 1st L | ||||
| Len = 1.75*25.4;           //[25:1:75] | ||||
| 
 | ||||
| //2. Width of L along 2nd L | ||||
| Wid = 0.65*25.4;           //[25:1:75] | ||||
| 
 | ||||
| //3. Height of L Bracket | ||||
| Ht = 1*25.4;            //[20:1:75] | ||||
| 
 | ||||
| //4. Thickness of Leg along X-Axis | ||||
| Thk_X = 0.25*25.4;          //[2:.5:12] | ||||
| 
 | ||||
| //5. Thickness of Leg along Y-axis | ||||
| Thk_Y = 0.5*25.4;          //[2:.5:12] | ||||
| 
 | ||||
| //6. Weld Diameter at L junction | ||||
| WeldDia = 0.5*25.4;        //[2:.5:12] | ||||
| 
 | ||||
| //7. Round Corners (0 = No, 1 = Yes) | ||||
| RndON = 1;          //[0:No, 1:Yes] | ||||
| 
 | ||||
| //8. # of parts to make (1,2,3 or 4) | ||||
| Parts = 1;                      //[1:1:4] | ||||
| 
 | ||||
| /* [Hole Sizes] */ | ||||
| 
 | ||||
| //9. Hole Diameter for Screws (#8 screw default) | ||||
| HoleSize = 3;                //[0:#6, 1:#8, 2:#10, 3:3mm, 4:4mm, 5:5mm, 6:6mm] | ||||
|                             //#10 Screws are 4.5 measured | ||||
|                             //#8 Screws are 4.2 measured | ||||
|                             //#6 Screws are 3.4 measured | ||||
| 
 | ||||
| //10. Taper or Countersink Hole | ||||
| Tap_CnkSnk = 1;             //[0:None, 1:Tapered, 2:Counter Sink] | ||||
| 
 | ||||
| //11. Drill Hole Tolerance | ||||
| Tolerance = .1;           //[0:.05:.8] | ||||
| 
 | ||||
| /* [Hole Offsets] */ | ||||
| //12. 1st Hole Offset distance from end of X-Axis | ||||
| HoleOffset_X1 = 10;         //[6:.5:30] | ||||
| 
 | ||||
| //13. 2nd Hole Offset distance from 1st Hole of X-Axis | ||||
| HoleOffset_X2 = 10;         //[6:.5:30] | ||||
| 
 | ||||
| //14. 1st Hole Offset distance from end of Y-Axis | ||||
| HoleOffset_Y1 = 0.5*25.4;         //[6:.5:30] | ||||
| 
 | ||||
| //15. 2nd Hole Offset distance from 1st Hole of Y-Axis | ||||
| HoleOffset_Y2 = 10;         //[6:.5:30] | ||||
| 
 | ||||
| /* [Number of Holes] */ | ||||
| //16. # of Screws on each side of L (1 or 2) | ||||
| Screws_X = 2;                 //[1:One Screw, 2:Two Screws] | ||||
| 
 | ||||
| //17. # of Screws on each side of L (1 or 2) | ||||
| Screws_Y = 1;                 //[1:One Screw, 2:Two Screws] | ||||
| 
 | ||||
| //18. # of Screws along Height of L on X-Axis (1 or 2) | ||||
| Screws_ZX = 1;                 //[1:One Screw, 2:Two Screws] | ||||
| 
 | ||||
| //19. # of Screws along Height of L on Y-Axis (1 or 2) | ||||
| Screws_ZY = 1;                 //[1:One Screw, 2:Two Screws] | ||||
| 
 | ||||
| //20. Screw Height (I use 3/4" screws for default) | ||||
| ScrewHt = 19.0;                //[9.5:.5:38] | ||||
| 
 | ||||
| //CUSTOMIZER VARIABLES END | ||||
| 
 | ||||
| //HoleSize = 4.2;             //[#6:3.4, #8:4.2, #10:4.5, 3mm:3, 4mm:4, 5mm:5, 6mm:6] | ||||
| //                            //#10 Screws are 4.5 measured | ||||
| //                            //#8 Screws are 4.2 measured | ||||
| //                            //#6 Screws are 3.4 measured | ||||
| // | ||||
| ////10. Taper or Countersink Hole | ||||
| //Tap_CnkSnk = 1;             //[0:None, 1:Tapered, 2:Counter Sink] | ||||
| // | ||||
| ////11. Dia. of Taper Head of Screw (#8 used for default) | ||||
| //TaperDia = 7.9;             //[6.45:#6, 7.95:#8, 9.0:#10, 6:3mm, 4mm:8, 5mm:10, 6mm:12] | ||||
| A_Hole_OD = [3.4,4.2,4.5,3,4,5,6]; | ||||
| A_Head_OD = [6.45,7.95,9,6,8,10,12]; | ||||
| A_TaperLen =  [2.66,3.5,3.9,3,4.2,5.5,6.5]; | ||||
| 
 | ||||
| HoleOD = A_Hole_OD[HoleSize] + Tolerance;      //Calculated Hole Diameter | ||||
| TapOD = A_Head_OD[HoleSize] + Tolerance;       //Calculated Tapered Head Diameter | ||||
| TaperLen = A_TaperLen[HoleSize]; | ||||
| WeldRad = WeldDia / 2;              //Radius of Weld | ||||
| 
 | ||||
| //Calcs for Hole(s) along X axis | ||||
| Ht2ZX = Ht / (Screws_ZX + 1);       //Half Height or 1/3 height if 2 screws are used | ||||
| echo("Ht2ZX = ", Ht2ZX); | ||||
| H_X = (Len - Thk_Y - WeldRad) / (Screws_X + 1); | ||||
| echo("H_X = ",H_X); | ||||
| //Hole_X =  H_X + Thk_Y + WeldRad; | ||||
| Hole_X1 =  Len - HoleOffset_X1; | ||||
| Hole_X2 =  Hole_X1 - HoleOffset_X2; | ||||
| echo("Hole_X1 = ",Hole_X1); | ||||
| //Hole_X2 = Hole_X1 + H_X; | ||||
| echo("Hole_X2 = ",Hole_X2); | ||||
| // | ||||
| //Calcs for Hole(s) along Y axis | ||||
| Ht2ZY = Ht / (Screws_ZY + 1);       //Half Height or 1/3 height if 2 screws are used | ||||
| echo("Ht2ZY = ", Ht2ZY); | ||||
| H_Y = (Wid - Thk_X - WeldRad) / (Screws_Y + 1); | ||||
| echo("H_Y = ",H_Y); | ||||
| //Hole_Y = H_Y + Thk_X + WeldRad; | ||||
| Hole_Y1 =  Wid - HoleOffset_Y1; | ||||
| Hole_Y2 =  Hole_Y1 - HoleOffset_Y2; | ||||
| echo("Hole_Y = ",Hole_Y1); | ||||
| //Hole_Y2 = Hole_Y + H_Y; | ||||
| echo("Hole_Y2 = ",Hole_Y2); | ||||
| // | ||||
| ScrewThreadHt = ScrewHt - TaperLen; | ||||
| Ht2x = Ht * 2; | ||||
| Ht_Half = Ht / 2; | ||||
| Ires = round(((Ht * 3.14) / 4) / .8) * 4; | ||||
| Hole_Res = round(((TapOD * 3.14) / 4) / 1) * 4; | ||||
| echo(Hole_Res = Hole_Res); | ||||
| module DrawSrewCut() | ||||
| { | ||||
| //This combines the head to the screw | ||||
|     if (Tap_CnkSnk == 0) | ||||
|     { | ||||
|         cylinder(d=HoleOD,h=ScrewThreadHt,$fn=Hole_Res); | ||||
| 
 | ||||
|     } else if (Tap_CnkSnk == 1) | ||||
|     { | ||||
|         union() | ||||
|         { | ||||
|             cylinder(d1=TapOD,d2=HoleOD,h=TaperLen,$fn=Hole_Res); | ||||
|             cylinder(d=HoleOD,h=ScrewThreadHt,$fn=Hole_Res); | ||||
|         } | ||||
|     } else if (Tap_CnkSnk == 2) | ||||
|     { | ||||
|         union() | ||||
|         { | ||||
|             cylinder(d=TapOD,h=TaperLen,$fn=Hole_Res); | ||||
|             cylinder(d=HoleOD,h=ScrewThreadHt,$fn=Hole_Res); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| module LBracket() | ||||
| { | ||||
|     union() | ||||
|     { | ||||
|         cube([Len,Thk_X,Ht]);         //Draw the X axis side | ||||
|         cube([Thk_Y,Wid,Ht]);         //Draw the Y axis side | ||||
|         translate([Thk_Y,Thk_X,0]) | ||||
|         cylinder(d=WeldDia,h=Ht,$fn=4);     //Add the Weld | ||||
|     } | ||||
| } | ||||
| module RndCorner_XY() | ||||
| { | ||||
|     difference() | ||||
|     { | ||||
|         cylinder(d=Ht2x,h=Thk_X+Thk_Y,$fn=Ires); | ||||
|         translate([0,0,-1]) | ||||
|         cylinder(d=Ht,h=Thk_X+Thk_Y+2,$fn=Ires); | ||||
|         translate([-(Ht2x+2),-(Ht+1),-1]) | ||||
|         cube([Ht2x+2,Ht2x+2,Thk_X+Thk_Y+2]); | ||||
|     } | ||||
| } | ||||
| module Screws_X() | ||||
| { | ||||
| //Drill holes for Screws along the X axis | ||||
|     translate([Hole_X1,Thk_X+.02,Ht2ZX]) | ||||
|     rotate([90,0,0]) | ||||
|     DrawSrewCut(); | ||||
|     if (Screws_X == 2) | ||||
|     { | ||||
|         translate([Hole_X2,Thk_X+.02,Ht2ZX]) | ||||
|         rotate([90,0,0]) | ||||
|         DrawSrewCut(); | ||||
|     } | ||||
| } | ||||
| module Screws_Y() | ||||
| { | ||||
| //Drill holes for Screws along the Y axis | ||||
|     translate([Thk_Y+.02,Hole_Y1,Ht2ZY]) | ||||
|     rotate([0,-90,0]) | ||||
|     DrawSrewCut(); | ||||
|     if (Screws_Y == 2) | ||||
|     { | ||||
|         translate([Thk_Y+.02,Hole_Y2,Ht2ZY]) | ||||
|         rotate([0,-90,0]) | ||||
|         DrawSrewCut(); | ||||
|     } | ||||
| } | ||||
| module DrawL() | ||||
| { | ||||
|     rotate([90,0,0]) | ||||
|     difference() | ||||
|     { | ||||
|         LBracket(); | ||||
|         Screws_X(); | ||||
|         if (Screws_ZX == 2) | ||||
|         { | ||||
|             translate([0,0,Ht2ZX]) | ||||
|             Screws_X(); | ||||
|         } | ||||
|         Screws_Y(); | ||||
|         if (Screws_ZY == 2) | ||||
|         { | ||||
|             translate([0,0,Ht2ZY]) | ||||
|             Screws_Y(); | ||||
|         } | ||||
|         if (RndON == 1) | ||||
|         { | ||||
| //Round the X-Axis Corner | ||||
|             translate([Len-Ht_Half,-1,Ht_Half]) | ||||
|             rotate([-90,0,0]) | ||||
|             RndCorner_XY(); | ||||
| //Round the Y-Axis Corner | ||||
|             translate([-1,Wid-Ht_Half,Ht_Half]) | ||||
|             rotate([90,0,90]) | ||||
|             RndCorner_XY(); | ||||
|         } | ||||
| //The following section is only for visual checks of how far screws go into wood | ||||
| //These will not draw on final render | ||||
|         translate([0,-12.7,0]) | ||||
|         %cube([Hole_X1,12.7,38.1]);          //Check how far screw goes into 1/2" wood | ||||
|         translate([-19.02,0,0]) | ||||
|         %cube([19.02,Hole_Y1,38.1]);         //Check how far screw goes into 3/4" wood | ||||
|         if (Tap_CnkSnk != 0) | ||||
|         { | ||||
|             translate([Hole_X1,Thk_X + 2 + TaperLen,Ht2ZX]) | ||||
|             rotate([90,0,0]) | ||||
|             color("red") | ||||
|             %DrawSrewCut(); | ||||
|             translate([Thk_Y+2+TaperLen,Hole_Y1,Ht2ZY]) | ||||
|             rotate([0,-90,0]) | ||||
|             color("red") | ||||
|             %DrawSrewCut(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| //Draw how ever many parts user wants along the Y-Axis | ||||
| for ( i = [1 : Parts] ) | ||||
| { | ||||
|     translate([0,(Ht+6) * i,0]) | ||||
|     DrawL(); | ||||
| } | ||||
| 
 | ||||
							
								
								
									
										
											BIN
										
									
								
								LBracket_Parametric_rev9.stl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								LBracket_Parametric_rev9.stl
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										154
									
								
								doggie-door.scad
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										154
									
								
								doggie-door.scad
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,154 @@ | ||||
| include <BOSL2/std.scad> | ||||
| 
 | ||||
| $fn=20; | ||||
| 
 | ||||
| showScan=0; | ||||
| showAnchors=0; | ||||
| showDoor=1; | ||||
| showSeparateObjects=0; | ||||
| 
 | ||||
| // model sizes | ||||
| panelThickness=3; | ||||
| 
 | ||||
| // door measurements | ||||
| doorGutter=6; | ||||
| doorToBolt=34; | ||||
| 
 | ||||
| if(showScan) { | ||||
|   // scan | ||||
|   // lay flat and set the bottom-right as origin | ||||
|   translate([-5,110,55]) rotate([-90,0,0]) | ||||
|     #rotate([26.9,15,-1]) scale(450) import("scan.stl"); | ||||
| } | ||||
| if(showAnchors) { | ||||
|   // scale measurement | ||||
|   /* | ||||
|   translate([-270,162,0]) | ||||
|     cuboid([20,210,1], anchor=BOTTOM+LEFT); | ||||
|   translate([-250,47,0]) | ||||
|     cuboid([305-20,20,1], anchor=BOTTOM+LEFT); | ||||
|   translate([-250,47+210+20,0]) | ||||
|     cuboid([305-20,20,1], anchor=BOTTOM+LEFT); | ||||
|   */ | ||||
| 
 | ||||
|   translate([35,47+10,0]) | ||||
|     #cylinder(h=10, d=5, anchor=BOTTOM); | ||||
|   translate([-250,47+10,0]) | ||||
|     #cylinder(h=10, d=5, anchor=BOTTOM); | ||||
|   translate([-250,47+210+10,0]) | ||||
|     #cylinder(h=10, d=5, anchor=BOTTOM); | ||||
|   translate([35,47+210+10,0]) | ||||
|     #cylinder(h=10, d=5, anchor=BOTTOM); | ||||
| } | ||||
| if(showDoor) { | ||||
|   if (showSeparateObjects) { | ||||
|     rotate([0,0,-90]) translate([-20,8,10]) | ||||
|       color("orange") import("limit-switch-flag-and-chain-catch-assembled.stl"); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| module topPanel(){ | ||||
|   translate([doorGutter,230,0]){ | ||||
|     difference(){ | ||||
|       cuboid([40,145,panelThickness], rounding=1, edges=["Y",BACK], anchor=FRONT+LEFT+BOTTOM) { | ||||
|         if (showSeparateObjects) { | ||||
|           // limit switch | ||||
|           translate([0,-12-65,0]) position(TOP+BACK) color("purple") rotate(90) import("limit-switch-mount-sideways.stl"); | ||||
|           // servo mount | ||||
|           translate([17.8,-42,20]) position(TOP+BACK+LEFT) rotate([0,0,90]) color("teal") import("Futaba_3001_Servo_Mount.stl"); | ||||
|           // servo | ||||
|           translate([44,-31.5,31]) position(TOP+BACK+LEFT) rotate([0,0,90]) color("gray") import("servo futaba s3003 v6.stl"); | ||||
|           // top pulley | ||||
|           translate([-10,-21,31]) position(TOP+BACK+LEFT) rotate([0,90,0]) color("red") import("parametric_ball_pulley-improved-with-flares.stl"); | ||||
|         } | ||||
|         // servo mount holes | ||||
|         difference(){ | ||||
|           translate([0,-1,0]) position(TOP+BACK+LEFT) cuboid([40,61,19], rounding=1, anchor=BACK+LEFT+BOTTOM); | ||||
|           translate([26.6,-20.1,10]) position(TOP+BACK+LEFT) | ||||
|             cyl(h=10,d=2, anchor=BACK+LEFT+BOTTOM); | ||||
|           translate([26.6,-41.5,10]) position(TOP+BACK+LEFT) | ||||
|             cyl(h=10,d=2, anchor=BACK+LEFT+BOTTOM); | ||||
|         } | ||||
|       } | ||||
|       // mounting hole | ||||
|       translate([29,37,0]) { | ||||
|         cyl(h=panelThickness+1,d=5, anchor=BOTTOM); | ||||
|         translate([0,0,panelThickness-2]) | ||||
|           cyl(h=3,d=15, chamfer1=0.5, anchor=BOTTOM); | ||||
|       } | ||||
|       // limit switch hole | ||||
|       translate([32,74.1,0]) { | ||||
|         cyl(h=panelThickness+1,d=2, anchor=BOTTOM); | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| module middlePanel(){ | ||||
|   translate([doorGutter,85,0]) { | ||||
|     cuboid([40,145,panelThickness], rounding=1, edges=["Y"], anchor=FRONT+LEFT+BOTTOM) { | ||||
|       if (showSeparateObjects) { | ||||
|         //arduino | ||||
|         translate([20,0,0]) color("green") position(TOP) cuboid([2*INCH,2.5*INCH,1*INCH], anchor=BOTTOM); | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| module bottomPanel(){ | ||||
|   translate([doorGutter,-60,0]) { | ||||
|     difference() { | ||||
|       cuboid([40,145,panelThickness], rounding=1, edges=["Y",FRONT], anchor=FRONT+LEFT+BOTTOM) { | ||||
|         if (showSeparateObjects) { | ||||
|           // limit switch | ||||
|           translate([0,60,0]) position(TOP+FRONT) rotate(90) color("purple") import("limit-switch-mount-sideways-right.stl"); | ||||
|           // bottom pulley | ||||
|           translate([-3,-5,27.5]) position(TOP+FRONT+LEFT) color("teal") import("LBracket_Parametric_rev9.stl"); | ||||
|           translate([-10,14,31]) position(TOP+FRONT+LEFT) rotate([0,90,0]) color("red") import("parametric_ball_pulley-improved-with-flares.stl"); | ||||
|         } | ||||
|         // pulley mount | ||||
|         difference(){ | ||||
|           translate([2,0,0]) position(TOP+FRONT+LEFT) cuboid([35,27.5,27.5], rounding=1, anchor=FRONT+LEFT+BOTTOM); | ||||
|           translate([20.7,12.9,20]) position(TOP+FRONT+LEFT) | ||||
|             cyl(h=10,d=2, anchor=FRONT+LEFT+BOTTOM); | ||||
|           translate([30.7,12.9,20]) position(TOP+FRONT+LEFT) | ||||
|             cyl(h=10,d=2, anchor=FRONT+LEFT+BOTTOM); | ||||
|         } | ||||
|       } | ||||
|       // mounting hole | ||||
|       translate([29,117,0]) { | ||||
|         cyl(h=panelThickness+1,d=5, anchor=BOTTOM); | ||||
|         translate([0,0,panelThickness-2]) | ||||
|           cyl(h=3,d=15, chamfer1=0.5, anchor=BOTTOM); | ||||
|       } | ||||
|       // limit switch hole | ||||
|       translate([32,66,0]) { | ||||
|         cyl(h=panelThickness+1,d=2, anchor=BOTTOM); | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| difference(){ | ||||
|   union(){ | ||||
|   topPanel(); | ||||
|   middlePanel(); | ||||
|   bottomPanel(); | ||||
|   } | ||||
|   translate([doorGutter+20,85,0]) scale(0.4) partition_cut_mask(gap=0, cutpath="dovetail", $slop=0.5); | ||||
|   translate([doorGutter+20,230,0]) scale(0.4) partition_cut_mask(gap=0, cutpath="dovetail", $slop=0.5); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
							
								
								
									
										
											BIN
										
									
								
								doggie-door.stl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								doggie-door.stl
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								limit-switch-flag-and-chain-catch-assembled.stl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								limit-switch-flag-and-chain-catch-assembled.stl
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								limit-switch-flag-and-chain-catch-printable.stl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								limit-switch-flag-and-chain-catch-printable.stl
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										59
									
								
								limit-switch-flag-and-chain-catch.scad
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								limit-switch-flag-and-chain-catch.scad
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,59 @@ | ||||
| showAssembled=1; | ||||
| 
 | ||||
| $fn=12; | ||||
| 
 | ||||
| flagHeight=15; | ||||
| flagWidth=20; | ||||
| flagDepth=10; | ||||
| baseThickness=2; | ||||
| chainHolderDiameter=3; | ||||
| 
 | ||||
| gutterHeight=5; | ||||
| gutterWidth=4; | ||||
| 
 | ||||
| // slice it for printing | ||||
| if (showAssembled) { | ||||
|   wholeModel(); | ||||
| } else { | ||||
|   difference(){ | ||||
|     wholeModel(); | ||||
|     translate([-50,-50,baseThickness]) cube(100); | ||||
|   } | ||||
|    | ||||
|   translate([-50,0,0]) difference(){ | ||||
|     wholeModel(); | ||||
|     translate([-50,-50,-100+baseThickness]) cube(100); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| module wholeModel(){ | ||||
|   difference() { | ||||
|     union() { | ||||
|       translate([0,-gutterWidth/2,gutterHeight/2-(gutterHeight-1)]){ | ||||
|         cube([flagDepth,flagWidth-gutterWidth,gutterHeight-2], center=true); | ||||
|       } | ||||
| 
 | ||||
|       translate([0,-gutterWidth,(flagHeight-gutterHeight)/2]){ | ||||
|         cube([flagDepth,flagWidth,flagHeight-gutterHeight], center=true); | ||||
|       } | ||||
| 
 | ||||
|       translate([0,-(flagWidth+20)/2,2/2]){ | ||||
|         difference(){ | ||||
|           cube([flagDepth,20,baseThickness], center=true); | ||||
|           translate([0,0,0]) | ||||
|             cylinder(h=4,r=2.5,center=true); | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|     translate([0,0,baseThickness]){ | ||||
|       chainHolder(); | ||||
|       translate([0,chainHolderDiameter+.5,0]) chainHolder(); | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| module chainHolder() { | ||||
|   translate([-flagDepth/3,-flagWidth/2+2,0]) rotate([0,90,0]) cylinder(h=flagDepth/2+1,d=chainHolderDiameter, center=true); | ||||
|   translate([flagDepth/3,-flagWidth/2+2,0]) rotate([0,90,0]) cylinder(h=flagDepth/2+1,d=chainHolderDiameter, center=true); | ||||
|   translate([0,-flagWidth/2+2,0]) rotate([0,90,0]) cylinder(h=flagDepth,d=0.7, center=true); | ||||
| } | ||||
							
								
								
									
										24
									
								
								limit-switch-flag.scad
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								limit-switch-flag.scad
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | ||||
| $fn=12; | ||||
| 
 | ||||
| flagHeight=35; | ||||
| flagWidth=25; | ||||
| baseThickness=2; | ||||
| 
 | ||||
| gutterHeight=5; | ||||
| gutterWidth=4; | ||||
| 
 | ||||
| translate([0,-gutterWidth/2,gutterHeight/2-gutterHeight]){ | ||||
|   cube([10,flagWidth-gutterWidth,gutterHeight], center=true); | ||||
| } | ||||
| 
 | ||||
| translate([0,-gutterWidth,(flagHeight-gutterHeight)/2]){ | ||||
|   #cube([10,flagWidth,flagHeight-gutterHeight], center=true); | ||||
| } | ||||
| 
 | ||||
| translate([0,-(flagWidth+20)/2,2/2]){ | ||||
|   difference(){ | ||||
|     cube([10,20,baseThickness], center=true); | ||||
|     translate([0,0,0]) | ||||
|       #cylinder(h=4,r=2.5,center=true); | ||||
|   } | ||||
| } | ||||
							
								
								
									
										
											BIN
										
									
								
								limit-switch-flag.stl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								limit-switch-flag.stl
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								limit-switch-mount-sideways-right.stl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								limit-switch-mount-sideways-right.stl
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										52
									
								
								limit-switch-mount-sideways.scad
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								limit-switch-mount-sideways.scad
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,52 @@ | ||||
| switchHeight = 5; | ||||
| switchWidth = 12; | ||||
| switchLength = 20; | ||||
| 
 | ||||
| switchHoleFromFront = 9; // we assume "front" is the left here, adjust for right | ||||
| switchHoleFromSide = 5.5; | ||||
| switchHoleSpacing = 9; | ||||
| 
 | ||||
| baseWidth = 12; | ||||
| baseLength = 25; | ||||
| baseThickness = 2; | ||||
| 
 | ||||
| slotWidth = 3; | ||||
| slotLength = 15; | ||||
| slotCenterFromBack = 11; | ||||
| slotFromSide = 6; | ||||
| slotSpacing = 9; | ||||
| 
 | ||||
| filletSize = 3; | ||||
| 
 | ||||
| $fn=10; | ||||
| 
 | ||||
| // switch mount | ||||
| difference(){ | ||||
|   cube([switchWidth,switchLength,switchHeight]); | ||||
|   translate([switchHoleFromFront, switchHoleFromSide, 10/2+switchHeight/2+0.1]) { | ||||
|     #cylinder(h=10, r=1, center=true); | ||||
|   } | ||||
|   translate([switchHoleFromFront, switchHoleFromSide+switchHoleSpacing, 10/2+switchHeight/2+0.1]) { | ||||
|     #cylinder(h=10, r=1, center=true); | ||||
|   } | ||||
| } | ||||
| // base | ||||
| translate([0,-baseLength,0]){ | ||||
|   difference(){ | ||||
|     cube([baseWidth,baseLength,baseThickness]); | ||||
|     translate([slotFromSide,slotCenterFromBack,baseThickness/2]){ | ||||
|       cube([slotWidth,slotLength,baseThickness+0.2], center=true); | ||||
|     } | ||||
|   } | ||||
| } | ||||
| // fillet | ||||
| translate([0,-filletSize,baseThickness]) { | ||||
|   prism(baseWidth,filletSize,filletSize); | ||||
| } | ||||
| 
 | ||||
| module prism(l, w, h){ | ||||
|   polyhedron(//pt 0        1        2        3        4        5 | ||||
|           points=[[0,0,0], [l,0,0], [l,w,0], [0,w,0], [0,w,h], [l,w,h]], | ||||
|           faces=[[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]] | ||||
|           ); | ||||
| } | ||||
							
								
								
									
										
											BIN
										
									
								
								limit-switch-mount-sideways.stl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								limit-switch-mount-sideways.stl
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										56
									
								
								limit-switch-mount.scad
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								limit-switch-mount.scad
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,56 @@ | ||||
| switchHeight = 20; | ||||
| switchWidth = 12; | ||||
| switchLength = 20; | ||||
| 
 | ||||
| switchHoleFromFront = 9; // we assume "front" is the left here, adjust for right | ||||
| switchHoleFromSide = 5.5; | ||||
| switchHoleSpacing = 9; | ||||
| 
 | ||||
| baseWidth = 20; | ||||
| baseLength = 25; | ||||
| baseThickness = 2; | ||||
| 
 | ||||
| slotWidth = 2; | ||||
| slotLength = 15; | ||||
| slotCenterFromBack = 11; | ||||
| slotFromSide = 5.5; | ||||
| slotSpacing = 9; | ||||
| 
 | ||||
| filletSize = 5; | ||||
| 
 | ||||
| $fn=10; | ||||
| 
 | ||||
| // switch mount | ||||
| difference(){ | ||||
|   cube([switchWidth,switchLength,switchHeight]); | ||||
|   translate([switchHoleFromFront, switchHoleFromSide, 10/2+switchHeight/2+0.1]) { | ||||
|     #cylinder(h=10, r=1, center=true); | ||||
|   } | ||||
|   translate([switchHoleFromFront, switchHoleFromSide+switchHoleSpacing, 10/2+switchHeight/2+0.1]) { | ||||
|     #cylinder(h=10, r=1, center=true); | ||||
|   } | ||||
| } | ||||
| // base | ||||
| translate([0,-baseLength,0]){ | ||||
|   difference(){ | ||||
|     cube([baseWidth,baseLength,baseThickness]); | ||||
|     translate([slotFromSide,slotCenterFromBack,baseThickness/2]){ | ||||
|       cube([slotWidth,slotLength,baseThickness+0.2], center=true); | ||||
|     } | ||||
|     translate([slotFromSide+slotSpacing,slotCenterFromBack,baseThickness/2]){ | ||||
|       cube([slotWidth,slotLength,baseThickness+0.2], center=true); | ||||
|     } | ||||
|   } | ||||
| } | ||||
| // fillet | ||||
| translate([0,-filletSize,baseThickness]) { | ||||
|   prism(baseWidth,filletSize,filletSize); | ||||
| } | ||||
| 
 | ||||
| module prism(l, w, h){ | ||||
|   polyhedron(//pt 0        1        2        3        4        5 | ||||
|           points=[[0,0,0], [l,0,0], [l,w,0], [0,w,0], [0,w,h], [l,w,h]], | ||||
|           faces=[[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]] | ||||
|           ); | ||||
| } | ||||
| 
 | ||||
							
								
								
									
										
											BIN
										
									
								
								limit-switch-mount.stl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								limit-switch-mount.stl
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										291286
									
								
								parametric_ball_pulley-improved-with-flares.stl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										291286
									
								
								parametric_ball_pulley-improved-with-flares.stl
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								servo futaba s3003 v6.stl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								servo futaba s3003 v6.stl
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user