Browse Source

Added first basic Quadcopter

Thomas Buck 8 years ago
parent
commit
4b1ab1a788
2 changed files with 13634 additions and 0 deletions
  1. 108
    0
      Quadcopter/Copter.scad
  2. 13526
    0
      Quadcopter/Copter.stl

+ 108
- 0
Quadcopter/Copter.scad View File

@@ -0,0 +1,108 @@
1
+//parametric micro quadcopter frame for lulfro and others
2
+//Patrick Sapinski
3
+//v1
4
+//22/05/15
5
+
6
+motorDiameter = 7;
7
+motorHeight = 18;
8
+shellThickness = 3;
9
+armThickness = 6;
10
+m2mDistance = 90;
11
+batteryWidth = 40;
12
+
13
+propLength = 50;
14
+
15
+module makeArm() {
16
+    translate([m2mDistance/2,0,0]) 
17
+    difference() {
18
+        //create the motor holder and arm
19
+        union(){
20
+            translate([-m2mDistance/2 + motorDiameter/2,-armThickness/2,motorHeight/2 - armThickness]) 
21
+                cube([m2mDistance/2,armThickness,armThickness]);
22
+            cylinder(h = motorHeight/2, r=motorDiameter/2 + shellThickness/2);
23
+            sphere(r=motorDiameter/2 + shellThickness/2);
24
+            
25
+        //prop preview
26
+        %rotate([0,0,45])cube([propLength,5,5],center=true);
27
+        }
28
+        //hollow out the motor holder
29
+        sphere(r=motorDiameter/2);
30
+        cylinder(h = motorHeight/2, r=motorDiameter/2);
31
+        
32
+        //hollow out the groove for the wire in the motor holder
33
+        translate([-shellThickness,0,-shellThickness]) 
34
+            cube([m2mDistance,armThickness - shellThickness,motorHeight],center=true);
35
+        
36
+        //???
37
+        translate([-shellThickness*2,-armThickness/2 + shellThickness/2,-motorHeight/2]) 
38
+            cube([motorHeight,armThickness - shellThickness,motorHeight + shellThickness]);
39
+    }
40
+}
41
+
42
+difference() {
43
+    union(){
44
+        //create each arm
45
+        rotate([0,0,45]){
46
+                rotate([0,0,90]) makeArm();
47
+                rotate([0,0,180]) makeArm();
48
+                rotate([0,0,270]) makeArm();
49
+                rotate([0,0,360]) makeArm();
50
+        }
51
+        
52
+        //create the FC cube
53
+        translate([0,0,motorHeight/2 - armThickness/2]) 
54
+            cube([batteryWidth + shellThickness,batteryWidth + shellThickness,armThickness],center=true);
55
+    }
56
+    translate([0,0,motorHeight/2 - armThickness/2 - motorHeight/2 + shellThickness/2])
57
+    union(){
58
+        //hollow out some grooves in the arms for the wires
59
+        rotate([0,0,45])
60
+            cube([armThickness - shellThickness,m2mDistance/2,motorHeight/1.5],center=true);
61
+        rotate([0,0,45])
62
+            cube([m2mDistance/2,armThickness - shellThickness,motorHeight/1.5],center=true);
63
+    }
64
+    
65
+    //hollow out the FC hole
66
+    translate([0,0,motorHeight/2 - armThickness/2 - shellThickness/2]) 
67
+    cube([batteryWidth,batteryWidth,armThickness],center=true);
68
+    
69
+    //drunk code below
70
+    b = 20;
71
+    h = 20;
72
+    w = 4;
73
+    rotate(a=[0,0,45])
74
+        translate([2,2,motorHeight/2]) 
75
+            linear_extrude(height = w, center = true, convexity = 10, twist = 0)
76
+                polygon(points=[[0,0],[h,0],[0,b]], paths=[[0,1,2]]);
77
+        
78
+    rotate(a=[0,0,45 + 180])
79
+        translate([2,2,motorHeight/2]) 
80
+            linear_extrude(height = w, center = true, convexity = 10, twist = 0)
81
+                polygon(points=[[0,0],[h,0],[0,b]], paths=[[0,1,2]]);
82
+        
83
+    rotate(a=[0,0,45 + 90])
84
+        translate([2,2,motorHeight/2]) 
85
+            linear_extrude(height = w, center = true, convexity = 10, twist = 0)
86
+                polygon(points=[[0,0],[h,0],[0,b]], paths=[[0,1,2]]);
87
+        
88
+    rotate(a=[0,0,45 + 270])
89
+        translate([2,2,motorHeight/2]) 
90
+            linear_extrude(height = w, center = true, convexity = 10, twist = 0)
91
+                polygon(points=[[0,0],[h,0],[0,b]], paths=[[0,1,2]]);
92
+}
93
+/*
94
+//parabolic arm attempt...
95
+
96
+module oval(w,h, height, center = false) {
97
+    scale([1, h/w, 1]) cylinder(h=height, r=w, center=center);
98
+}
99
+
100
+    translate([0,0,2]) 
101
+    difference() {
102
+        cube([m2mDistance,m2mDistance,fcHeight],center=true);
103
+            for (i = [0 : 3])
104
+                rotate([0,0,i * 90])
105
+                    translate([m2mDistance + 10,0,0]) 
106
+                        oval(m2mDistance/2 + 40,m2mDistance/2, 5);
107
+    }
108
+*/

+ 13526
- 0
Quadcopter/Copter.stl
File diff suppressed because it is too large
View File


Loading…
Cancel
Save