├── README.md ├── img └── Miniskybot-2-1.jpg ├── parts ├── .gitignore ├── Freecad │ ├── Mini-skybot-v2-exploded_view_drawing.fcstd │ ├── Mini-skybot-v2.fcstd │ └── non-printable │ │ ├── bolt.scad │ │ ├── marbel.scad │ │ ├── nut.scad │ │ ├── o-ring.scad │ │ └── stl │ │ ├── bolt_M3.stl │ │ ├── horn4.stl │ │ ├── marbel.stl │ │ ├── nut_M3.stl │ │ └── o-ring-wheel.stl ├── Openscad │ ├── Parameterized_battery_holder.scad │ ├── Servo-wheel.scad │ ├── battery_holder.scad │ ├── configuration.scad │ ├── fake_ultrasound.scad │ ├── functions.scad │ └── main.scad ├── STL │ ├── Servo-wheel-4-arm-horn.stl │ ├── Servo-wheel-6-arm-horn.stl │ ├── Servo-wheel-rounded-horn.stl │ ├── battery_holder.stl │ └── chassis.stl ├── doc │ ├── Battery-holder-doc.pdf │ ├── Futaba-doc.pdf │ ├── chassis-doc.pdf │ ├── servo-wheels-doc.pdf │ └── svg │ │ ├── Battery-holder.svg │ │ ├── Futaba-doc.svg │ │ ├── chassis-doc.svg │ │ └── servo-wheels.svg └── futaba3003 │ ├── Futaba-shaft.dxf │ ├── futaba-doc1.dxf │ ├── futaba-ears.dxf │ ├── futaba-ears2.dxf │ ├── futaba-main.dxf │ ├── futaba-plate.dxf │ ├── futaba-shaft-orig.dxf │ ├── futaba-top.dxf │ ├── futaba.scad │ ├── futaba.stl │ └── futaba_plate.scad ├── simulation └── octave-matlab │ ├── @miniskybot │ ├── display.m │ ├── draw.m │ ├── get.m │ ├── miniskybot.m │ ├── set.m │ └── step.m │ ├── deg2rad.m │ ├── main.m │ └── set_axis.m └── software ├── Miniskybot_lib ├── Configuration.h ├── Miniskybot.cpp ├── Miniskybot.h ├── Miniskybot_motors.cpp ├── Miniskybot_motors.h ├── Miniskybot_sensors.cpp ├── Miniskybot_sensors.h └── examples │ └── Miniskybot_calibration │ └── Miniskybot_calibration.pde ├── README └── raw_examples ├── digital_ir_test └── digital_ir_test.ino ├── follow_path └── follow_path.ino └── motor_test └── motor_test.ino /README.md: -------------------------------------------------------------------------------- 1 | Miniskybot V2 2 | =============== 3 | 4 | ![Miniskybot V2 with an skymega board](img/Miniskybot-2-1.jpg "Title") 5 | 6 | An open source 3D printable mobile robot ( **printbot** ) 7 | 8 | In this repository you can find the Miniskybot 2 or later 9 | You can find more information (in spanish) in [this page](http://www.iearobotics.com/wiki/index.php?title=Miniskybot_2) 10 | 11 | Features 12 | -------- 13 | * Simplified chassis 14 | * Marbel as cator wheel (thanks to sliptonic) 15 | * Battery holder screwed to the chassis 16 | * Compact and small 17 | * 3 type of wheels, for the 3 different servo horns 18 | * Electronics Compatible with [skymega](http://www.thingiverse.com/thing:14197) and [Arduino UNO](http://arduino.cc/en/Main/arduinoBoardUno) boards 19 | 20 | License 21 | ======= 22 | 23 | GPL license or Creative Commons Attribution-shareAlike (Copyleft) 24 | 25 | 26 | Authors 27 | ======= 28 | * Juan Gonzalez-Gomez 29 | * Andres Prieto-Moreno 30 | * Miguel Angel de Frutos 31 | * Antonio Barrientos 32 | 33 | Credits 34 | ======= 35 | * Alberto Valero 36 | * Mohamed Abderrahim 37 | * Sliptonic (for the Ball caster, derived from http://www.thingiverse.com/thing:13782) 38 | 39 | 40 | 41 | Miniskybot V1 42 | =========== 43 | 44 | For the miniskybot 1 go to the following links: 45 | 46 | * http://www.iearobotics.com/wiki/index.php?title=Mini-Skybot_v1.0 (spanish) 47 | * Thingiverse: http://www.thingiverse.com/thing:7989 48 | * SVN repo: http://svn.iearobotics.com/Mini_Skybot/v1.0/ 49 | 50 | -------------------------------------------------------------------------------- /img/Miniskybot-2-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Obijuan/Miniskybot/6116396473f0d9496b11e8cca614af01120d9787/img/Miniskybot-2-1.jpg -------------------------------------------------------------------------------- /parts/.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | 3 | -------------------------------------------------------------------------------- /parts/Freecad/Mini-skybot-v2-exploded_view_drawing.fcstd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Obijuan/Miniskybot/6116396473f0d9496b11e8cca614af01120d9787/parts/Freecad/Mini-skybot-v2-exploded_view_drawing.fcstd -------------------------------------------------------------------------------- /parts/Freecad/Mini-skybot-v2.fcstd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Obijuan/Miniskybot/6116396473f0d9496b11e8cca614af01120d9787/parts/Freecad/Mini-skybot-v2.fcstd -------------------------------------------------------------------------------- /parts/Freecad/non-printable/bolt.scad: -------------------------------------------------------------------------------- 1 | drill=2; 2 | length=5; 3 | head_thickness=1.5; 4 | head_diameter=4; 5 | 6 | 7 | union() { 8 | translate([0,0,-length/2-head_thickness/2]) 9 | cylinder(h=length, r=drill/2,center=true, $fn=20); 10 | 11 | difference() { 12 | cylinder(h=head_thickness, r=head_diameter/2, $fn=20, center=true); 13 | 14 | translate([0,0,5]) 15 | cube([head_diameter+2, 1,10],center=true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /parts/Freecad/non-printable/marbel.scad: -------------------------------------------------------------------------------- 1 | sphere(r=16/2); -------------------------------------------------------------------------------- /parts/Freecad/non-printable/nut.scad: -------------------------------------------------------------------------------- 1 | //-- Nut 2 | nut_h = 2.5; 3 | nut_radius = 6.4/2; 4 | nut_drill = 3.1; 5 | 6 | difference() { 7 | cylinder(r=nut_radius, h = nut_h, $fn=6,center=true); 8 | cylinder(r=nut_drill/2, h=10,center=true, $fn=20); 9 | } 10 | 11 | -------------------------------------------------------------------------------- /parts/Freecad/non-printable/o-ring.scad: -------------------------------------------------------------------------------- 1 | oring_diameter = 15; //-- Interior diameter 2 | oring_width=3; 3 | 4 | rotate_extrude(convexity = 10, $fn=50) 5 | translate([oring_diameter/2 + oring_width/2, 0, 0]) 6 | circle(r = oring_width/2, $fn = 50); 7 | -------------------------------------------------------------------------------- /parts/Freecad/non-printable/stl/nut_M3.stl: -------------------------------------------------------------------------------- 1 | solid OpenSCAD_Model 2 | facet normal -0,000000 0,000000 -1,000000 3 | outer loop 4 | vertex -3.200000 0.000000 -1.250000 5 | vertex -1.600000 2.771281 -1.250000 6 | vertex -1.600000 -2.771281 -1.250000 7 | endloop 8 | endfacet 9 | facet normal 0,000000 -0,000000 -1,000000 10 | outer loop 11 | vertex 0.000000 1.550000 -1.250000 12 | vertex -1.600000 2.771281 -1.250000 13 | vertex 1.600000 2.771281 -1.250000 14 | endloop 15 | endfacet 16 | facet normal -0,000000 0,000000 -1,000000 17 | outer loop 18 | vertex 1.550000 0.000000 -1.250000 19 | vertex 1.600000 2.771281 -1.250000 20 | vertex 3.200000 0.000000 -1.250000 21 | endloop 22 | endfacet 23 | facet normal -0,000000 0,000000 -1,000000 24 | outer loop 25 | vertex -1.600000 -2.771281 -1.250000 26 | vertex 3.200000 0.000000 -1.250000 27 | vertex 1.600000 -2.771281 -1.250000 28 | endloop 29 | endfacet 30 | facet normal 0,000000 -0,000000 -1,000000 31 | outer loop 32 | vertex -1.600000 -2.771281 -1.250000 33 | vertex -1.600000 2.771281 -1.250000 34 | vertex -1.550000 0.000000 -1.250000 35 | endloop 36 | endfacet 37 | facet normal 0,000000 0,000000 -1,000000 38 | outer loop 39 | vertex -1.600000 -2.771281 -1.250000 40 | vertex -1.550000 0.000000 -1.250000 41 | vertex -1.474138 -0.478976 -1.250000 42 | endloop 43 | endfacet 44 | facet normal 0,000000 0,000000 -1,000000 45 | outer loop 46 | vertex -1.600000 -2.771281 -1.250000 47 | vertex -1.474138 -0.478976 -1.250000 48 | vertex -1.253976 -0.911067 -1.250000 49 | endloop 50 | endfacet 51 | facet normal 0,000000 0,000000 -1,000000 52 | outer loop 53 | vertex -1.600000 -2.771281 -1.250000 54 | vertex -1.253976 -0.911067 -1.250000 55 | vertex -0.911067 -1.253976 -1.250000 56 | endloop 57 | endfacet 58 | facet normal -0,000000 0,000000 -1,000000 59 | outer loop 60 | vertex 1.253976 -0.911067 -1.250000 61 | vertex 3.200000 0.000000 -1.250000 62 | vertex 0.911067 -1.253976 -1.250000 63 | endloop 64 | endfacet 65 | facet normal 0,000000 0,000000 -1,000000 66 | outer loop 67 | vertex -1.600000 -2.771281 -1.250000 68 | vertex -0.478976 -1.474138 -1.250000 69 | vertex 0.000000 -1.550000 -1.250000 70 | endloop 71 | endfacet 72 | facet normal 0,000000 0,000000 -1,000000 73 | outer loop 74 | vertex -1.600000 -2.771281 -1.250000 75 | vertex 0.000000 -1.550000 -1.250000 76 | vertex 0.478976 -1.474138 -1.250000 77 | endloop 78 | endfacet 79 | facet normal 0,000000 0,000000 -1,000000 80 | outer loop 81 | vertex -1.600000 -2.771281 -1.250000 82 | vertex 0.478976 -1.474138 -1.250000 83 | vertex 0.911067 -1.253976 -1.250000 84 | endloop 85 | endfacet 86 | facet normal 0,000000 0,000000 -1,000000 87 | outer loop 88 | vertex -1.600000 -2.771281 -1.250000 89 | vertex 0.911067 -1.253976 -1.250000 90 | vertex 3.200000 0.000000 -1.250000 91 | endloop 92 | endfacet 93 | facet normal -0,000000 0,000000 -1,000000 94 | outer loop 95 | vertex 1.474138 -0.478976 -1.250000 96 | vertex 3.200000 0.000000 -1.250000 97 | vertex 1.253976 -0.911067 -1.250000 98 | endloop 99 | endfacet 100 | facet normal -0,000000 0,000000 -1,000000 101 | outer loop 102 | vertex 0.478976 1.474138 -1.250000 103 | vertex 1.600000 2.771281 -1.250000 104 | vertex 0.911067 1.253976 -1.250000 105 | endloop 106 | endfacet 107 | facet normal -0,000000 0,000000 -1,000000 108 | outer loop 109 | vertex 1.474138 0.478976 -1.250000 110 | vertex 1.600000 2.771281 -1.250000 111 | vertex 1.550000 0.000000 -1.250000 112 | endloop 113 | endfacet 114 | facet normal 0,000000 0,000000 -1,000000 115 | outer loop 116 | vertex 1.474138 -0.478976 -1.250000 117 | vertex 1.550000 0.000000 -1.250000 118 | vertex 3.200000 0.000000 -1.250000 119 | endloop 120 | endfacet 121 | facet normal -0,000000 0,000000 -1,000000 122 | outer loop 123 | vertex 1.253976 0.911067 -1.250000 124 | vertex 1.600000 2.771281 -1.250000 125 | vertex 1.474138 0.478976 -1.250000 126 | endloop 127 | endfacet 128 | facet normal -0,000000 0,000000 -1,000000 129 | outer loop 130 | vertex 0.911067 1.253976 -1.250000 131 | vertex 1.600000 2.771281 -1.250000 132 | vertex 1.253976 0.911067 -1.250000 133 | endloop 134 | endfacet 135 | facet normal -0,000000 0,000000 -1,000000 136 | outer loop 137 | vertex 0.000000 1.550000 -1.250000 138 | vertex 1.600000 2.771281 -1.250000 139 | vertex 0.478976 1.474138 -1.250000 140 | endloop 141 | endfacet 142 | facet normal 0,000000 -0,000000 -1,000000 143 | outer loop 144 | vertex -0.478976 1.474138 -1.250000 145 | vertex -1.600000 2.771281 -1.250000 146 | vertex 0.000000 1.550000 -1.250000 147 | endloop 148 | endfacet 149 | facet normal 0,000000 -0,000000 -1,000000 150 | outer loop 151 | vertex -0.911067 1.253976 -1.250000 152 | vertex -1.600000 2.771281 -1.250000 153 | vertex -0.478976 1.474138 -1.250000 154 | endloop 155 | endfacet 156 | facet normal 0,000000 -0,000000 -1,000000 157 | outer loop 158 | vertex -1.253976 0.911067 -1.250000 159 | vertex -1.600000 2.771281 -1.250000 160 | vertex -0.911067 1.253976 -1.250000 161 | endloop 162 | endfacet 163 | facet normal 0,000000 -0,000000 -1,000000 164 | outer loop 165 | vertex -1.474138 0.478976 -1.250000 166 | vertex -1.600000 2.771281 -1.250000 167 | vertex -1.253976 0.911067 -1.250000 168 | endloop 169 | endfacet 170 | facet normal 0,000000 -0,000000 -1,000000 171 | outer loop 172 | vertex -1.550000 0.000000 -1.250000 173 | vertex -1.600000 2.771281 -1.250000 174 | vertex -1.474138 0.478976 -1.250000 175 | endloop 176 | endfacet 177 | facet normal 0,000000 0,000000 -1,000000 178 | outer loop 179 | vertex -0.478976 -1.474138 -1.250000 180 | vertex -1.600000 -2.771281 -1.250000 181 | vertex -0.911067 -1.253976 -1.250000 182 | endloop 183 | endfacet 184 | facet normal -0,866025 0,500000 0,000000 185 | outer loop 186 | vertex -3.200000 0.000000 -1.250000 187 | vertex -3.200000 0.000000 1.250000 188 | vertex -1.600000 2.771281 -1.250000 189 | endloop 190 | endfacet 191 | facet normal -0,866025 0,500000 0,000000 192 | outer loop 193 | vertex -1.600000 2.771281 -1.250000 194 | vertex -3.200000 0.000000 1.250000 195 | vertex -1.600000 2.771281 1.250000 196 | endloop 197 | endfacet 198 | facet normal -0,866025 -0,500000 -0,000000 199 | outer loop 200 | vertex -3.200000 0.000000 -1.250000 201 | vertex -1.600000 -2.771281 -1.250000 202 | vertex -3.200000 0.000000 1.250000 203 | endloop 204 | endfacet 205 | facet normal -0,866025 -0,500000 0,000000 206 | outer loop 207 | vertex -3.200000 0.000000 1.250000 208 | vertex -1.600000 -2.771281 -1.250000 209 | vertex -1.600000 -2.771281 1.250000 210 | endloop 211 | endfacet 212 | facet normal 0,000000 -1,000000 0,000000 213 | outer loop 214 | vertex -1.600000 -2.771281 1.250000 215 | vertex -1.600000 -2.771281 -1.250000 216 | vertex 1.600000 -2.771281 -1.250000 217 | endloop 218 | endfacet 219 | facet normal 0,000000 -1,000000 0,000000 220 | outer loop 221 | vertex 1.600000 -2.771281 1.250000 222 | vertex -1.600000 -2.771281 1.250000 223 | vertex 1.600000 -2.771281 -1.250000 224 | endloop 225 | endfacet 226 | facet normal 0,866025 -0,500000 0,000000 227 | outer loop 228 | vertex 1.600000 -2.771281 1.250000 229 | vertex 1.600000 -2.771281 -1.250000 230 | vertex 3.200000 0.000000 -1.250000 231 | endloop 232 | endfacet 233 | facet normal 0,866025 -0,500000 0,000000 234 | outer loop 235 | vertex 3.200000 0.000000 1.250000 236 | vertex 1.600000 -2.771281 1.250000 237 | vertex 3.200000 0.000000 -1.250000 238 | endloop 239 | endfacet 240 | facet normal 0,866025 0,500000 0,000000 241 | outer loop 242 | vertex 3.200000 0.000000 -1.250000 243 | vertex 1.600000 2.771281 -1.250000 244 | vertex 1.600000 2.771281 1.250000 245 | endloop 246 | endfacet 247 | facet normal 0,866025 0,500000 -0,000000 248 | outer loop 249 | vertex 3.200000 0.000000 1.250000 250 | vertex 3.200000 0.000000 -1.250000 251 | vertex 1.600000 2.771281 1.250000 252 | endloop 253 | endfacet 254 | facet normal 0,000000 1,000000 0,000000 255 | outer loop 256 | vertex -1.600000 2.771281 -1.250000 257 | vertex -1.600000 2.771281 1.250000 258 | vertex 1.600000 2.771281 -1.250000 259 | endloop 260 | endfacet 261 | facet normal 0,000000 1,000000 0,000000 262 | outer loop 263 | vertex 1.600000 2.771281 -1.250000 264 | vertex -1.600000 2.771281 1.250000 265 | vertex 1.600000 2.771281 1.250000 266 | endloop 267 | endfacet 268 | facet normal 0,987688 -0,156434 0,000000 269 | outer loop 270 | vertex -1.474138 0.478976 -1.250000 271 | vertex -1.474138 0.478976 1.250000 272 | vertex -1.550000 0.000000 1.250000 273 | endloop 274 | endfacet 275 | facet normal 0,987688 -0,156434 0,000000 276 | outer loop 277 | vertex -1.550000 0.000000 -1.250000 278 | vertex -1.474138 0.478976 -1.250000 279 | vertex -1.550000 0.000000 1.250000 280 | endloop 281 | endfacet 282 | facet normal 0,987688 0,156434 0,000000 283 | outer loop 284 | vertex -1.550000 0.000000 1.250000 285 | vertex -1.474138 -0.478976 1.250000 286 | vertex -1.474138 -0.478976 -1.250000 287 | endloop 288 | endfacet 289 | facet normal 0,987688 0,156434 0,000000 290 | outer loop 291 | vertex -1.550000 0.000000 -1.250000 292 | vertex -1.550000 0.000000 1.250000 293 | vertex -1.474138 -0.478976 -1.250000 294 | endloop 295 | endfacet 296 | facet normal 0,891006 -0,453992 0,000000 297 | outer loop 298 | vertex -1.253976 0.911067 -1.250000 299 | vertex -1.253976 0.911067 1.250000 300 | vertex -1.474138 0.478976 1.250000 301 | endloop 302 | endfacet 303 | facet normal 0,891006 -0,453992 0,000000 304 | outer loop 305 | vertex -1.474138 0.478976 -1.250000 306 | vertex -1.253976 0.911067 -1.250000 307 | vertex -1.474138 0.478976 1.250000 308 | endloop 309 | endfacet 310 | facet normal 0,707107 -0,707107 0,000000 311 | outer loop 312 | vertex -0.911067 1.253976 -1.250000 313 | vertex -0.911067 1.253976 1.250000 314 | vertex -1.253976 0.911067 1.250000 315 | endloop 316 | endfacet 317 | facet normal 0,707107 -0,707107 0,000000 318 | outer loop 319 | vertex -1.253976 0.911067 -1.250000 320 | vertex -0.911067 1.253976 -1.250000 321 | vertex -1.253976 0.911067 1.250000 322 | endloop 323 | endfacet 324 | facet normal 0,453992 -0,891006 0,000000 325 | outer loop 326 | vertex -0.478976 1.474138 -1.250000 327 | vertex -0.478976 1.474138 1.250000 328 | vertex -0.911067 1.253976 1.250000 329 | endloop 330 | endfacet 331 | facet normal 0,453992 -0,891006 0,000000 332 | outer loop 333 | vertex -0.911067 1.253976 -1.250000 334 | vertex -0.478976 1.474138 -1.250000 335 | vertex -0.911067 1.253976 1.250000 336 | endloop 337 | endfacet 338 | facet normal 0,156434 -0,987688 0,000000 339 | outer loop 340 | vertex 0.000000 1.550000 -1.250000 341 | vertex 0.000000 1.550000 1.250000 342 | vertex -0.478976 1.474138 1.250000 343 | endloop 344 | endfacet 345 | facet normal 0,156434 -0,987688 0,000000 346 | outer loop 347 | vertex -0.478976 1.474138 -1.250000 348 | vertex 0.000000 1.550000 -1.250000 349 | vertex -0.478976 1.474138 1.250000 350 | endloop 351 | endfacet 352 | facet normal -0,156434 -0,987688 -0,000000 353 | outer loop 354 | vertex 0.478976 1.474138 -1.250000 355 | vertex 0.478976 1.474138 1.250000 356 | vertex 0.000000 1.550000 1.250000 357 | endloop 358 | endfacet 359 | facet normal -0,156434 -0,987688 -0,000000 360 | outer loop 361 | vertex 0.000000 1.550000 -1.250000 362 | vertex 0.478976 1.474138 -1.250000 363 | vertex 0.000000 1.550000 1.250000 364 | endloop 365 | endfacet 366 | facet normal -0,453992 -0,891006 -0,000000 367 | outer loop 368 | vertex 0.911067 1.253976 -1.250000 369 | vertex 0.911067 1.253976 1.250000 370 | vertex 0.478976 1.474138 1.250000 371 | endloop 372 | endfacet 373 | facet normal -0,453992 -0,891006 -0,000000 374 | outer loop 375 | vertex 0.478976 1.474138 -1.250000 376 | vertex 0.911067 1.253976 -1.250000 377 | vertex 0.478976 1.474138 1.250000 378 | endloop 379 | endfacet 380 | facet normal -0,707107 -0,707107 -0,000000 381 | outer loop 382 | vertex 1.253976 0.911067 -1.250000 383 | vertex 1.253976 0.911067 1.250000 384 | vertex 0.911067 1.253976 1.250000 385 | endloop 386 | endfacet 387 | facet normal -0,707107 -0,707107 -0,000000 388 | outer loop 389 | vertex 0.911067 1.253976 -1.250000 390 | vertex 1.253976 0.911067 -1.250000 391 | vertex 0.911067 1.253976 1.250000 392 | endloop 393 | endfacet 394 | facet normal -0,891006 -0,453992 0,000000 395 | outer loop 396 | vertex 1.474138 0.478976 1.250000 397 | vertex 1.253976 0.911067 1.250000 398 | vertex 1.474138 0.478976 -1.250000 399 | endloop 400 | endfacet 401 | facet normal -0,891006 -0,453992 0,000000 402 | outer loop 403 | vertex 1.474138 0.478976 -1.250000 404 | vertex 1.253976 0.911067 1.250000 405 | vertex 1.253976 0.911067 -1.250000 406 | endloop 407 | endfacet 408 | facet normal -0,987688 -0,156434 0,000000 409 | outer loop 410 | vertex 1.550000 0.000000 1.250000 411 | vertex 1.474138 0.478976 1.250000 412 | vertex 1.550000 0.000000 -1.250000 413 | endloop 414 | endfacet 415 | facet normal -0,987688 -0,156434 0,000000 416 | outer loop 417 | vertex 1.550000 0.000000 -1.250000 418 | vertex 1.474138 0.478976 1.250000 419 | vertex 1.474138 0.478976 -1.250000 420 | endloop 421 | endfacet 422 | facet normal -0,987688 0,156434 0,000000 423 | outer loop 424 | vertex 1.550000 0.000000 1.250000 425 | vertex 1.550000 0.000000 -1.250000 426 | vertex 1.474138 -0.478976 1.250000 427 | endloop 428 | endfacet 429 | facet normal -0,987688 0,156434 0,000000 430 | outer loop 431 | vertex 1.474138 -0.478976 1.250000 432 | vertex 1.550000 0.000000 -1.250000 433 | vertex 1.474138 -0.478976 -1.250000 434 | endloop 435 | endfacet 436 | facet normal -0,891006 0,453992 0,000000 437 | outer loop 438 | vertex 1.474138 -0.478976 1.250000 439 | vertex 1.474138 -0.478976 -1.250000 440 | vertex 1.253976 -0.911067 1.250000 441 | endloop 442 | endfacet 443 | facet normal -0,891006 0,453992 0,000000 444 | outer loop 445 | vertex 1.253976 -0.911067 1.250000 446 | vertex 1.474138 -0.478976 -1.250000 447 | vertex 1.253976 -0.911067 -1.250000 448 | endloop 449 | endfacet 450 | facet normal -0,707107 0,707107 0,000000 451 | outer loop 452 | vertex 1.253976 -0.911067 1.250000 453 | vertex 1.253976 -0.911067 -1.250000 454 | vertex 0.911067 -1.253976 1.250000 455 | endloop 456 | endfacet 457 | facet normal -0,707107 0,707107 0,000000 458 | outer loop 459 | vertex 0.911067 -1.253976 1.250000 460 | vertex 1.253976 -0.911067 -1.250000 461 | vertex 0.911067 -1.253976 -1.250000 462 | endloop 463 | endfacet 464 | facet normal -0,453992 0,891006 0,000000 465 | outer loop 466 | vertex 0.911067 -1.253976 1.250000 467 | vertex 0.911067 -1.253976 -1.250000 468 | vertex 0.478976 -1.474138 1.250000 469 | endloop 470 | endfacet 471 | facet normal -0,453992 0,891006 0,000000 472 | outer loop 473 | vertex 0.478976 -1.474138 1.250000 474 | vertex 0.911067 -1.253976 -1.250000 475 | vertex 0.478976 -1.474138 -1.250000 476 | endloop 477 | endfacet 478 | facet normal -0,156434 0,987688 0,000000 479 | outer loop 480 | vertex 0.478976 -1.474138 1.250000 481 | vertex 0.478976 -1.474138 -1.250000 482 | vertex 0.000000 -1.550000 1.250000 483 | endloop 484 | endfacet 485 | facet normal -0,156434 0,987688 0,000000 486 | outer loop 487 | vertex 0.000000 -1.550000 1.250000 488 | vertex 0.478976 -1.474138 -1.250000 489 | vertex 0.000000 -1.550000 -1.250000 490 | endloop 491 | endfacet 492 | facet normal 0,156434 0,987688 -0,000000 493 | outer loop 494 | vertex 0.000000 -1.550000 1.250000 495 | vertex 0.000000 -1.550000 -1.250000 496 | vertex -0.478976 -1.474138 1.250000 497 | endloop 498 | endfacet 499 | facet normal 0,156434 0,987688 -0,000000 500 | outer loop 501 | vertex -0.478976 -1.474138 1.250000 502 | vertex 0.000000 -1.550000 -1.250000 503 | vertex -0.478976 -1.474138 -1.250000 504 | endloop 505 | endfacet 506 | facet normal 0,453992 0,891006 -0,000000 507 | outer loop 508 | vertex -0.478976 -1.474138 1.250000 509 | vertex -0.478976 -1.474138 -1.250000 510 | vertex -0.911067 -1.253976 1.250000 511 | endloop 512 | endfacet 513 | facet normal 0,453992 0,891006 -0,000000 514 | outer loop 515 | vertex -0.911067 -1.253976 1.250000 516 | vertex -0.478976 -1.474138 -1.250000 517 | vertex -0.911067 -1.253976 -1.250000 518 | endloop 519 | endfacet 520 | facet normal 0,707107 0,707107 -0,000000 521 | outer loop 522 | vertex -0.911067 -1.253976 1.250000 523 | vertex -0.911067 -1.253976 -1.250000 524 | vertex -1.253976 -0.911067 1.250000 525 | endloop 526 | endfacet 527 | facet normal 0,707107 0,707107 -0,000000 528 | outer loop 529 | vertex -1.253976 -0.911067 1.250000 530 | vertex -0.911067 -1.253976 -1.250000 531 | vertex -1.253976 -0.911067 -1.250000 532 | endloop 533 | endfacet 534 | facet normal 0,891006 0,453992 0,000000 535 | outer loop 536 | vertex -1.474138 -0.478976 1.250000 537 | vertex -1.253976 -0.911067 1.250000 538 | vertex -1.253976 -0.911067 -1.250000 539 | endloop 540 | endfacet 541 | facet normal 0,891006 0,453992 0,000000 542 | outer loop 543 | vertex -1.474138 -0.478976 -1.250000 544 | vertex -1.474138 -0.478976 1.250000 545 | vertex -1.253976 -0.911067 -1.250000 546 | endloop 547 | endfacet 548 | facet normal 0,000000 0,000000 1,000000 549 | outer loop 550 | vertex -1.600000 2.771281 1.250000 551 | vertex -3.200000 0.000000 1.250000 552 | vertex -1.600000 -2.771281 1.250000 553 | endloop 554 | endfacet 555 | facet normal -0,000000 0,000000 1,000000 556 | outer loop 557 | vertex -1.550000 0.000000 1.250000 558 | vertex -1.600000 2.771281 1.250000 559 | vertex -1.600000 -2.771281 1.250000 560 | endloop 561 | endfacet 562 | facet normal 0,000000 -0,000000 1,000000 563 | outer loop 564 | vertex 1.600000 2.771281 1.250000 565 | vertex -1.600000 2.771281 1.250000 566 | vertex 3.200000 0.000000 1.250000 567 | endloop 568 | endfacet 569 | facet normal -0,000000 0,000000 1,000000 570 | outer loop 571 | vertex -1.253976 -0.911067 1.250000 572 | vertex -1.474138 -0.478976 1.250000 573 | vertex -1.600000 -2.771281 1.250000 574 | endloop 575 | endfacet 576 | facet normal -0,000000 0,000000 1,000000 577 | outer loop 578 | vertex -1.474138 -0.478976 1.250000 579 | vertex -1.550000 0.000000 1.250000 580 | vertex -1.600000 -2.771281 1.250000 581 | endloop 582 | endfacet 583 | facet normal 0,000000 0,000000 1,000000 584 | outer loop 585 | vertex -0.911067 1.253976 1.250000 586 | vertex -0.478976 1.474138 1.250000 587 | vertex -1.600000 2.771281 1.250000 588 | endloop 589 | endfacet 590 | facet normal -0,000000 0,000000 1,000000 591 | outer loop 592 | vertex -1.253976 0.911067 1.250000 593 | vertex -1.600000 2.771281 1.250000 594 | vertex -1.474138 0.478976 1.250000 595 | endloop 596 | endfacet 597 | facet normal -0,000000 0,000000 1,000000 598 | outer loop 599 | vertex -0.911067 1.253976 1.250000 600 | vertex -1.600000 2.771281 1.250000 601 | vertex -1.253976 0.911067 1.250000 602 | endloop 603 | endfacet 604 | facet normal 0,000000 -0,000000 1,000000 605 | outer loop 606 | vertex 0.478976 -1.474138 1.250000 607 | vertex 0.000000 -1.550000 1.250000 608 | vertex 1.600000 -2.771281 1.250000 609 | endloop 610 | endfacet 611 | facet normal -0,000000 0,000000 1,000000 612 | outer loop 613 | vertex 0.000000 1.550000 1.250000 614 | vertex -1.600000 2.771281 1.250000 615 | vertex -0.478976 1.474138 1.250000 616 | endloop 617 | endfacet 618 | facet normal 0,000000 0,000000 1,000000 619 | outer loop 620 | vertex 0.478976 1.474138 1.250000 621 | vertex -1.600000 2.771281 1.250000 622 | vertex 0.000000 1.550000 1.250000 623 | endloop 624 | endfacet 625 | facet normal 0,000000 0,000000 1,000000 626 | outer loop 627 | vertex 1.253976 0.911067 1.250000 628 | vertex 1.474138 0.478976 1.250000 629 | vertex 3.200000 0.000000 1.250000 630 | endloop 631 | endfacet 632 | facet normal 0,000000 0,000000 1,000000 633 | outer loop 634 | vertex 0.911067 1.253976 1.250000 635 | vertex -1.600000 2.771281 1.250000 636 | vertex 0.478976 1.474138 1.250000 637 | endloop 638 | endfacet 639 | facet normal 0,000000 0,000000 1,000000 640 | outer loop 641 | vertex 3.200000 0.000000 1.250000 642 | vertex -1.600000 2.771281 1.250000 643 | vertex 0.911067 1.253976 1.250000 644 | endloop 645 | endfacet 646 | facet normal 0,000000 -0,000000 1,000000 647 | outer loop 648 | vertex 1.550000 0.000000 1.250000 649 | vertex 1.474138 -0.478976 1.250000 650 | vertex 1.600000 -2.771281 1.250000 651 | endloop 652 | endfacet 653 | facet normal 0,000000 0,000000 1,000000 654 | outer loop 655 | vertex 3.200000 0.000000 1.250000 656 | vertex 1.550000 0.000000 1.250000 657 | vertex 1.600000 -2.771281 1.250000 658 | endloop 659 | endfacet 660 | facet normal -0,000000 0,000000 1,000000 661 | outer loop 662 | vertex 3.200000 0.000000 1.250000 663 | vertex 1.474138 0.478976 1.250000 664 | vertex 1.550000 0.000000 1.250000 665 | endloop 666 | endfacet 667 | facet normal 0,000000 -0,000000 1,000000 668 | outer loop 669 | vertex 1.474138 -0.478976 1.250000 670 | vertex 1.253976 -0.911067 1.250000 671 | vertex 1.600000 -2.771281 1.250000 672 | endloop 673 | endfacet 674 | facet normal 0,000000 -0,000000 1,000000 675 | outer loop 676 | vertex 1.253976 -0.911067 1.250000 677 | vertex 0.911067 -1.253976 1.250000 678 | vertex 1.600000 -2.771281 1.250000 679 | endloop 680 | endfacet 681 | facet normal -0,000000 -0,000000 1,000000 682 | outer loop 683 | vertex 0.000000 -1.550000 1.250000 684 | vertex -0.478976 -1.474138 1.250000 685 | vertex 1.600000 -2.771281 1.250000 686 | endloop 687 | endfacet 688 | facet normal -0,000000 0,000000 1,000000 689 | outer loop 690 | vertex 1.600000 -2.771281 1.250000 691 | vertex -0.478976 -1.474138 1.250000 692 | vertex -1.600000 -2.771281 1.250000 693 | endloop 694 | endfacet 695 | facet normal -0,000000 0,000000 1,000000 696 | outer loop 697 | vertex -0.478976 -1.474138 1.250000 698 | vertex -0.911067 -1.253976 1.250000 699 | vertex -1.600000 -2.771281 1.250000 700 | endloop 701 | endfacet 702 | facet normal -0,000000 0,000000 1,000000 703 | outer loop 704 | vertex -0.911067 -1.253976 1.250000 705 | vertex -1.253976 -0.911067 1.250000 706 | vertex -1.600000 -2.771281 1.250000 707 | endloop 708 | endfacet 709 | facet normal 0,000000 0,000000 1,000000 710 | outer loop 711 | vertex -1.550000 0.000000 1.250000 712 | vertex -1.474138 0.478976 1.250000 713 | vertex -1.600000 2.771281 1.250000 714 | endloop 715 | endfacet 716 | facet normal 0,000000 0,000000 1,000000 717 | outer loop 718 | vertex 0.911067 1.253976 1.250000 719 | vertex 1.253976 0.911067 1.250000 720 | vertex 3.200000 0.000000 1.250000 721 | endloop 722 | endfacet 723 | facet normal 0,000000 -0,000000 1,000000 724 | outer loop 725 | vertex 0.911067 -1.253976 1.250000 726 | vertex 0.478976 -1.474138 1.250000 727 | vertex 1.600000 -2.771281 1.250000 728 | endloop 729 | endfacet 730 | endsolid OpenSCAD_Model 731 | -------------------------------------------------------------------------------- /parts/Freecad/non-printable/stl/o-ring-wheel.stl: -------------------------------------------------------------------------------- 1 | solid OpenSCAD_Model 2 | facet normal -0,000000 0,000000 -1,000000 3 | outer loop 4 | vertex -3.200000 0.000000 -1.250000 5 | vertex -1.600000 2.771281 -1.250000 6 | vertex -1.600000 -2.771281 -1.250000 7 | endloop 8 | endfacet 9 | facet normal 0,000000 -0,000000 -1,000000 10 | outer loop 11 | vertex 0.000000 1.550000 -1.250000 12 | vertex -1.600000 2.771281 -1.250000 13 | vertex 1.600000 2.771281 -1.250000 14 | endloop 15 | endfacet 16 | facet normal -0,000000 0,000000 -1,000000 17 | outer loop 18 | vertex 1.550000 0.000000 -1.250000 19 | vertex 1.600000 2.771281 -1.250000 20 | vertex 3.200000 0.000000 -1.250000 21 | endloop 22 | endfacet 23 | facet normal -0,000000 0,000000 -1,000000 24 | outer loop 25 | vertex -1.600000 -2.771281 -1.250000 26 | vertex 3.200000 0.000000 -1.250000 27 | vertex 1.600000 -2.771281 -1.250000 28 | endloop 29 | endfacet 30 | facet normal 0,000000 -0,000000 -1,000000 31 | outer loop 32 | vertex -1.600000 -2.771281 -1.250000 33 | vertex -1.600000 2.771281 -1.250000 34 | vertex -1.550000 0.000000 -1.250000 35 | endloop 36 | endfacet 37 | facet normal 0,000000 0,000000 -1,000000 38 | outer loop 39 | vertex -1.600000 -2.771281 -1.250000 40 | vertex -1.550000 0.000000 -1.250000 41 | vertex -1.474138 -0.478976 -1.250000 42 | endloop 43 | endfacet 44 | facet normal 0,000000 0,000000 -1,000000 45 | outer loop 46 | vertex -1.600000 -2.771281 -1.250000 47 | vertex -1.474138 -0.478976 -1.250000 48 | vertex -1.253976 -0.911067 -1.250000 49 | endloop 50 | endfacet 51 | facet normal 0,000000 0,000000 -1,000000 52 | outer loop 53 | vertex -1.600000 -2.771281 -1.250000 54 | vertex -1.253976 -0.911067 -1.250000 55 | vertex -0.911067 -1.253976 -1.250000 56 | endloop 57 | endfacet 58 | facet normal -0,000000 0,000000 -1,000000 59 | outer loop 60 | vertex 1.253976 -0.911067 -1.250000 61 | vertex 3.200000 0.000000 -1.250000 62 | vertex 0.911067 -1.253976 -1.250000 63 | endloop 64 | endfacet 65 | facet normal 0,000000 0,000000 -1,000000 66 | outer loop 67 | vertex -1.600000 -2.771281 -1.250000 68 | vertex -0.478976 -1.474138 -1.250000 69 | vertex 0.000000 -1.550000 -1.250000 70 | endloop 71 | endfacet 72 | facet normal 0,000000 0,000000 -1,000000 73 | outer loop 74 | vertex -1.600000 -2.771281 -1.250000 75 | vertex 0.000000 -1.550000 -1.250000 76 | vertex 0.478976 -1.474138 -1.250000 77 | endloop 78 | endfacet 79 | facet normal 0,000000 0,000000 -1,000000 80 | outer loop 81 | vertex -1.600000 -2.771281 -1.250000 82 | vertex 0.478976 -1.474138 -1.250000 83 | vertex 0.911067 -1.253976 -1.250000 84 | endloop 85 | endfacet 86 | facet normal 0,000000 0,000000 -1,000000 87 | outer loop 88 | vertex -1.600000 -2.771281 -1.250000 89 | vertex 0.911067 -1.253976 -1.250000 90 | vertex 3.200000 0.000000 -1.250000 91 | endloop 92 | endfacet 93 | facet normal -0,000000 0,000000 -1,000000 94 | outer loop 95 | vertex 1.474138 -0.478976 -1.250000 96 | vertex 3.200000 0.000000 -1.250000 97 | vertex 1.253976 -0.911067 -1.250000 98 | endloop 99 | endfacet 100 | facet normal -0,000000 0,000000 -1,000000 101 | outer loop 102 | vertex 0.478976 1.474138 -1.250000 103 | vertex 1.600000 2.771281 -1.250000 104 | vertex 0.911067 1.253976 -1.250000 105 | endloop 106 | endfacet 107 | facet normal -0,000000 0,000000 -1,000000 108 | outer loop 109 | vertex 1.474138 0.478976 -1.250000 110 | vertex 1.600000 2.771281 -1.250000 111 | vertex 1.550000 0.000000 -1.250000 112 | endloop 113 | endfacet 114 | facet normal 0,000000 0,000000 -1,000000 115 | outer loop 116 | vertex 1.474138 -0.478976 -1.250000 117 | vertex 1.550000 0.000000 -1.250000 118 | vertex 3.200000 0.000000 -1.250000 119 | endloop 120 | endfacet 121 | facet normal -0,000000 0,000000 -1,000000 122 | outer loop 123 | vertex 1.253976 0.911067 -1.250000 124 | vertex 1.600000 2.771281 -1.250000 125 | vertex 1.474138 0.478976 -1.250000 126 | endloop 127 | endfacet 128 | facet normal -0,000000 0,000000 -1,000000 129 | outer loop 130 | vertex 0.911067 1.253976 -1.250000 131 | vertex 1.600000 2.771281 -1.250000 132 | vertex 1.253976 0.911067 -1.250000 133 | endloop 134 | endfacet 135 | facet normal -0,000000 0,000000 -1,000000 136 | outer loop 137 | vertex 0.000000 1.550000 -1.250000 138 | vertex 1.600000 2.771281 -1.250000 139 | vertex 0.478976 1.474138 -1.250000 140 | endloop 141 | endfacet 142 | facet normal 0,000000 -0,000000 -1,000000 143 | outer loop 144 | vertex -0.478976 1.474138 -1.250000 145 | vertex -1.600000 2.771281 -1.250000 146 | vertex 0.000000 1.550000 -1.250000 147 | endloop 148 | endfacet 149 | facet normal 0,000000 -0,000000 -1,000000 150 | outer loop 151 | vertex -0.911067 1.253976 -1.250000 152 | vertex -1.600000 2.771281 -1.250000 153 | vertex -0.478976 1.474138 -1.250000 154 | endloop 155 | endfacet 156 | facet normal 0,000000 -0,000000 -1,000000 157 | outer loop 158 | vertex -1.253976 0.911067 -1.250000 159 | vertex -1.600000 2.771281 -1.250000 160 | vertex -0.911067 1.253976 -1.250000 161 | endloop 162 | endfacet 163 | facet normal 0,000000 -0,000000 -1,000000 164 | outer loop 165 | vertex -1.474138 0.478976 -1.250000 166 | vertex -1.600000 2.771281 -1.250000 167 | vertex -1.253976 0.911067 -1.250000 168 | endloop 169 | endfacet 170 | facet normal 0,000000 -0,000000 -1,000000 171 | outer loop 172 | vertex -1.550000 0.000000 -1.250000 173 | vertex -1.600000 2.771281 -1.250000 174 | vertex -1.474138 0.478976 -1.250000 175 | endloop 176 | endfacet 177 | facet normal 0,000000 0,000000 -1,000000 178 | outer loop 179 | vertex -0.478976 -1.474138 -1.250000 180 | vertex -1.600000 -2.771281 -1.250000 181 | vertex -0.911067 -1.253976 -1.250000 182 | endloop 183 | endfacet 184 | facet normal -0,866025 0,500000 0,000000 185 | outer loop 186 | vertex -3.200000 0.000000 -1.250000 187 | vertex -3.200000 0.000000 1.250000 188 | vertex -1.600000 2.771281 -1.250000 189 | endloop 190 | endfacet 191 | facet normal -0,866025 0,500000 0,000000 192 | outer loop 193 | vertex -1.600000 2.771281 -1.250000 194 | vertex -3.200000 0.000000 1.250000 195 | vertex -1.600000 2.771281 1.250000 196 | endloop 197 | endfacet 198 | facet normal -0,866025 -0,500000 -0,000000 199 | outer loop 200 | vertex -3.200000 0.000000 -1.250000 201 | vertex -1.600000 -2.771281 -1.250000 202 | vertex -3.200000 0.000000 1.250000 203 | endloop 204 | endfacet 205 | facet normal -0,866025 -0,500000 0,000000 206 | outer loop 207 | vertex -3.200000 0.000000 1.250000 208 | vertex -1.600000 -2.771281 -1.250000 209 | vertex -1.600000 -2.771281 1.250000 210 | endloop 211 | endfacet 212 | facet normal 0,000000 -1,000000 0,000000 213 | outer loop 214 | vertex -1.600000 -2.771281 1.250000 215 | vertex -1.600000 -2.771281 -1.250000 216 | vertex 1.600000 -2.771281 -1.250000 217 | endloop 218 | endfacet 219 | facet normal 0,000000 -1,000000 0,000000 220 | outer loop 221 | vertex 1.600000 -2.771281 1.250000 222 | vertex -1.600000 -2.771281 1.250000 223 | vertex 1.600000 -2.771281 -1.250000 224 | endloop 225 | endfacet 226 | facet normal 0,866025 -0,500000 0,000000 227 | outer loop 228 | vertex 1.600000 -2.771281 1.250000 229 | vertex 1.600000 -2.771281 -1.250000 230 | vertex 3.200000 0.000000 -1.250000 231 | endloop 232 | endfacet 233 | facet normal 0,866025 -0,500000 0,000000 234 | outer loop 235 | vertex 3.200000 0.000000 1.250000 236 | vertex 1.600000 -2.771281 1.250000 237 | vertex 3.200000 0.000000 -1.250000 238 | endloop 239 | endfacet 240 | facet normal 0,866025 0,500000 0,000000 241 | outer loop 242 | vertex 3.200000 0.000000 -1.250000 243 | vertex 1.600000 2.771281 -1.250000 244 | vertex 1.600000 2.771281 1.250000 245 | endloop 246 | endfacet 247 | facet normal 0,866025 0,500000 -0,000000 248 | outer loop 249 | vertex 3.200000 0.000000 1.250000 250 | vertex 3.200000 0.000000 -1.250000 251 | vertex 1.600000 2.771281 1.250000 252 | endloop 253 | endfacet 254 | facet normal 0,000000 1,000000 0,000000 255 | outer loop 256 | vertex -1.600000 2.771281 -1.250000 257 | vertex -1.600000 2.771281 1.250000 258 | vertex 1.600000 2.771281 -1.250000 259 | endloop 260 | endfacet 261 | facet normal 0,000000 1,000000 0,000000 262 | outer loop 263 | vertex 1.600000 2.771281 -1.250000 264 | vertex -1.600000 2.771281 1.250000 265 | vertex 1.600000 2.771281 1.250000 266 | endloop 267 | endfacet 268 | facet normal 0,987688 -0,156434 0,000000 269 | outer loop 270 | vertex -1.474138 0.478976 -1.250000 271 | vertex -1.474138 0.478976 1.250000 272 | vertex -1.550000 0.000000 1.250000 273 | endloop 274 | endfacet 275 | facet normal 0,987688 -0,156434 0,000000 276 | outer loop 277 | vertex -1.550000 0.000000 -1.250000 278 | vertex -1.474138 0.478976 -1.250000 279 | vertex -1.550000 0.000000 1.250000 280 | endloop 281 | endfacet 282 | facet normal 0,987688 0,156434 0,000000 283 | outer loop 284 | vertex -1.550000 0.000000 1.250000 285 | vertex -1.474138 -0.478976 1.250000 286 | vertex -1.474138 -0.478976 -1.250000 287 | endloop 288 | endfacet 289 | facet normal 0,987688 0,156434 0,000000 290 | outer loop 291 | vertex -1.550000 0.000000 -1.250000 292 | vertex -1.550000 0.000000 1.250000 293 | vertex -1.474138 -0.478976 -1.250000 294 | endloop 295 | endfacet 296 | facet normal 0,891006 -0,453992 0,000000 297 | outer loop 298 | vertex -1.253976 0.911067 -1.250000 299 | vertex -1.253976 0.911067 1.250000 300 | vertex -1.474138 0.478976 1.250000 301 | endloop 302 | endfacet 303 | facet normal 0,891006 -0,453992 0,000000 304 | outer loop 305 | vertex -1.474138 0.478976 -1.250000 306 | vertex -1.253976 0.911067 -1.250000 307 | vertex -1.474138 0.478976 1.250000 308 | endloop 309 | endfacet 310 | facet normal 0,707107 -0,707107 0,000000 311 | outer loop 312 | vertex -0.911067 1.253976 -1.250000 313 | vertex -0.911067 1.253976 1.250000 314 | vertex -1.253976 0.911067 1.250000 315 | endloop 316 | endfacet 317 | facet normal 0,707107 -0,707107 0,000000 318 | outer loop 319 | vertex -1.253976 0.911067 -1.250000 320 | vertex -0.911067 1.253976 -1.250000 321 | vertex -1.253976 0.911067 1.250000 322 | endloop 323 | endfacet 324 | facet normal 0,453992 -0,891006 0,000000 325 | outer loop 326 | vertex -0.478976 1.474138 -1.250000 327 | vertex -0.478976 1.474138 1.250000 328 | vertex -0.911067 1.253976 1.250000 329 | endloop 330 | endfacet 331 | facet normal 0,453992 -0,891006 0,000000 332 | outer loop 333 | vertex -0.911067 1.253976 -1.250000 334 | vertex -0.478976 1.474138 -1.250000 335 | vertex -0.911067 1.253976 1.250000 336 | endloop 337 | endfacet 338 | facet normal 0,156434 -0,987688 0,000000 339 | outer loop 340 | vertex 0.000000 1.550000 -1.250000 341 | vertex 0.000000 1.550000 1.250000 342 | vertex -0.478976 1.474138 1.250000 343 | endloop 344 | endfacet 345 | facet normal 0,156434 -0,987688 0,000000 346 | outer loop 347 | vertex -0.478976 1.474138 -1.250000 348 | vertex 0.000000 1.550000 -1.250000 349 | vertex -0.478976 1.474138 1.250000 350 | endloop 351 | endfacet 352 | facet normal -0,156434 -0,987688 -0,000000 353 | outer loop 354 | vertex 0.478976 1.474138 -1.250000 355 | vertex 0.478976 1.474138 1.250000 356 | vertex 0.000000 1.550000 1.250000 357 | endloop 358 | endfacet 359 | facet normal -0,156434 -0,987688 -0,000000 360 | outer loop 361 | vertex 0.000000 1.550000 -1.250000 362 | vertex 0.478976 1.474138 -1.250000 363 | vertex 0.000000 1.550000 1.250000 364 | endloop 365 | endfacet 366 | facet normal -0,453992 -0,891006 -0,000000 367 | outer loop 368 | vertex 0.911067 1.253976 -1.250000 369 | vertex 0.911067 1.253976 1.250000 370 | vertex 0.478976 1.474138 1.250000 371 | endloop 372 | endfacet 373 | facet normal -0,453992 -0,891006 -0,000000 374 | outer loop 375 | vertex 0.478976 1.474138 -1.250000 376 | vertex 0.911067 1.253976 -1.250000 377 | vertex 0.478976 1.474138 1.250000 378 | endloop 379 | endfacet 380 | facet normal -0,707107 -0,707107 -0,000000 381 | outer loop 382 | vertex 1.253976 0.911067 -1.250000 383 | vertex 1.253976 0.911067 1.250000 384 | vertex 0.911067 1.253976 1.250000 385 | endloop 386 | endfacet 387 | facet normal -0,707107 -0,707107 -0,000000 388 | outer loop 389 | vertex 0.911067 1.253976 -1.250000 390 | vertex 1.253976 0.911067 -1.250000 391 | vertex 0.911067 1.253976 1.250000 392 | endloop 393 | endfacet 394 | facet normal -0,891006 -0,453992 0,000000 395 | outer loop 396 | vertex 1.474138 0.478976 1.250000 397 | vertex 1.253976 0.911067 1.250000 398 | vertex 1.474138 0.478976 -1.250000 399 | endloop 400 | endfacet 401 | facet normal -0,891006 -0,453992 0,000000 402 | outer loop 403 | vertex 1.474138 0.478976 -1.250000 404 | vertex 1.253976 0.911067 1.250000 405 | vertex 1.253976 0.911067 -1.250000 406 | endloop 407 | endfacet 408 | facet normal -0,987688 -0,156434 0,000000 409 | outer loop 410 | vertex 1.550000 0.000000 1.250000 411 | vertex 1.474138 0.478976 1.250000 412 | vertex 1.550000 0.000000 -1.250000 413 | endloop 414 | endfacet 415 | facet normal -0,987688 -0,156434 0,000000 416 | outer loop 417 | vertex 1.550000 0.000000 -1.250000 418 | vertex 1.474138 0.478976 1.250000 419 | vertex 1.474138 0.478976 -1.250000 420 | endloop 421 | endfacet 422 | facet normal -0,987688 0,156434 0,000000 423 | outer loop 424 | vertex 1.550000 0.000000 1.250000 425 | vertex 1.550000 0.000000 -1.250000 426 | vertex 1.474138 -0.478976 1.250000 427 | endloop 428 | endfacet 429 | facet normal -0,987688 0,156434 0,000000 430 | outer loop 431 | vertex 1.474138 -0.478976 1.250000 432 | vertex 1.550000 0.000000 -1.250000 433 | vertex 1.474138 -0.478976 -1.250000 434 | endloop 435 | endfacet 436 | facet normal -0,891006 0,453992 0,000000 437 | outer loop 438 | vertex 1.474138 -0.478976 1.250000 439 | vertex 1.474138 -0.478976 -1.250000 440 | vertex 1.253976 -0.911067 1.250000 441 | endloop 442 | endfacet 443 | facet normal -0,891006 0,453992 0,000000 444 | outer loop 445 | vertex 1.253976 -0.911067 1.250000 446 | vertex 1.474138 -0.478976 -1.250000 447 | vertex 1.253976 -0.911067 -1.250000 448 | endloop 449 | endfacet 450 | facet normal -0,707107 0,707107 0,000000 451 | outer loop 452 | vertex 1.253976 -0.911067 1.250000 453 | vertex 1.253976 -0.911067 -1.250000 454 | vertex 0.911067 -1.253976 1.250000 455 | endloop 456 | endfacet 457 | facet normal -0,707107 0,707107 0,000000 458 | outer loop 459 | vertex 0.911067 -1.253976 1.250000 460 | vertex 1.253976 -0.911067 -1.250000 461 | vertex 0.911067 -1.253976 -1.250000 462 | endloop 463 | endfacet 464 | facet normal -0,453992 0,891006 0,000000 465 | outer loop 466 | vertex 0.911067 -1.253976 1.250000 467 | vertex 0.911067 -1.253976 -1.250000 468 | vertex 0.478976 -1.474138 1.250000 469 | endloop 470 | endfacet 471 | facet normal -0,453992 0,891006 0,000000 472 | outer loop 473 | vertex 0.478976 -1.474138 1.250000 474 | vertex 0.911067 -1.253976 -1.250000 475 | vertex 0.478976 -1.474138 -1.250000 476 | endloop 477 | endfacet 478 | facet normal -0,156434 0,987688 0,000000 479 | outer loop 480 | vertex 0.478976 -1.474138 1.250000 481 | vertex 0.478976 -1.474138 -1.250000 482 | vertex 0.000000 -1.550000 1.250000 483 | endloop 484 | endfacet 485 | facet normal -0,156434 0,987688 0,000000 486 | outer loop 487 | vertex 0.000000 -1.550000 1.250000 488 | vertex 0.478976 -1.474138 -1.250000 489 | vertex 0.000000 -1.550000 -1.250000 490 | endloop 491 | endfacet 492 | facet normal 0,156434 0,987688 -0,000000 493 | outer loop 494 | vertex 0.000000 -1.550000 1.250000 495 | vertex 0.000000 -1.550000 -1.250000 496 | vertex -0.478976 -1.474138 1.250000 497 | endloop 498 | endfacet 499 | facet normal 0,156434 0,987688 -0,000000 500 | outer loop 501 | vertex -0.478976 -1.474138 1.250000 502 | vertex 0.000000 -1.550000 -1.250000 503 | vertex -0.478976 -1.474138 -1.250000 504 | endloop 505 | endfacet 506 | facet normal 0,453992 0,891006 -0,000000 507 | outer loop 508 | vertex -0.478976 -1.474138 1.250000 509 | vertex -0.478976 -1.474138 -1.250000 510 | vertex -0.911067 -1.253976 1.250000 511 | endloop 512 | endfacet 513 | facet normal 0,453992 0,891006 -0,000000 514 | outer loop 515 | vertex -0.911067 -1.253976 1.250000 516 | vertex -0.478976 -1.474138 -1.250000 517 | vertex -0.911067 -1.253976 -1.250000 518 | endloop 519 | endfacet 520 | facet normal 0,707107 0,707107 -0,000000 521 | outer loop 522 | vertex -0.911067 -1.253976 1.250000 523 | vertex -0.911067 -1.253976 -1.250000 524 | vertex -1.253976 -0.911067 1.250000 525 | endloop 526 | endfacet 527 | facet normal 0,707107 0,707107 -0,000000 528 | outer loop 529 | vertex -1.253976 -0.911067 1.250000 530 | vertex -0.911067 -1.253976 -1.250000 531 | vertex -1.253976 -0.911067 -1.250000 532 | endloop 533 | endfacet 534 | facet normal 0,891006 0,453992 0,000000 535 | outer loop 536 | vertex -1.474138 -0.478976 1.250000 537 | vertex -1.253976 -0.911067 1.250000 538 | vertex -1.253976 -0.911067 -1.250000 539 | endloop 540 | endfacet 541 | facet normal 0,891006 0,453992 0,000000 542 | outer loop 543 | vertex -1.474138 -0.478976 -1.250000 544 | vertex -1.474138 -0.478976 1.250000 545 | vertex -1.253976 -0.911067 -1.250000 546 | endloop 547 | endfacet 548 | facet normal 0,000000 0,000000 1,000000 549 | outer loop 550 | vertex -1.600000 2.771281 1.250000 551 | vertex -3.200000 0.000000 1.250000 552 | vertex -1.600000 -2.771281 1.250000 553 | endloop 554 | endfacet 555 | facet normal -0,000000 0,000000 1,000000 556 | outer loop 557 | vertex -1.550000 0.000000 1.250000 558 | vertex -1.600000 2.771281 1.250000 559 | vertex -1.600000 -2.771281 1.250000 560 | endloop 561 | endfacet 562 | facet normal 0,000000 -0,000000 1,000000 563 | outer loop 564 | vertex 1.600000 2.771281 1.250000 565 | vertex -1.600000 2.771281 1.250000 566 | vertex 3.200000 0.000000 1.250000 567 | endloop 568 | endfacet 569 | facet normal -0,000000 0,000000 1,000000 570 | outer loop 571 | vertex -1.253976 -0.911067 1.250000 572 | vertex -1.474138 -0.478976 1.250000 573 | vertex -1.600000 -2.771281 1.250000 574 | endloop 575 | endfacet 576 | facet normal -0,000000 0,000000 1,000000 577 | outer loop 578 | vertex -1.474138 -0.478976 1.250000 579 | vertex -1.550000 0.000000 1.250000 580 | vertex -1.600000 -2.771281 1.250000 581 | endloop 582 | endfacet 583 | facet normal 0,000000 0,000000 1,000000 584 | outer loop 585 | vertex -0.911067 1.253976 1.250000 586 | vertex -0.478976 1.474138 1.250000 587 | vertex -1.600000 2.771281 1.250000 588 | endloop 589 | endfacet 590 | facet normal -0,000000 0,000000 1,000000 591 | outer loop 592 | vertex -1.253976 0.911067 1.250000 593 | vertex -1.600000 2.771281 1.250000 594 | vertex -1.474138 0.478976 1.250000 595 | endloop 596 | endfacet 597 | facet normal -0,000000 0,000000 1,000000 598 | outer loop 599 | vertex -0.911067 1.253976 1.250000 600 | vertex -1.600000 2.771281 1.250000 601 | vertex -1.253976 0.911067 1.250000 602 | endloop 603 | endfacet 604 | facet normal 0,000000 -0,000000 1,000000 605 | outer loop 606 | vertex 0.478976 -1.474138 1.250000 607 | vertex 0.000000 -1.550000 1.250000 608 | vertex 1.600000 -2.771281 1.250000 609 | endloop 610 | endfacet 611 | facet normal -0,000000 0,000000 1,000000 612 | outer loop 613 | vertex 0.000000 1.550000 1.250000 614 | vertex -1.600000 2.771281 1.250000 615 | vertex -0.478976 1.474138 1.250000 616 | endloop 617 | endfacet 618 | facet normal 0,000000 0,000000 1,000000 619 | outer loop 620 | vertex 0.478976 1.474138 1.250000 621 | vertex -1.600000 2.771281 1.250000 622 | vertex 0.000000 1.550000 1.250000 623 | endloop 624 | endfacet 625 | facet normal 0,000000 0,000000 1,000000 626 | outer loop 627 | vertex 1.253976 0.911067 1.250000 628 | vertex 1.474138 0.478976 1.250000 629 | vertex 3.200000 0.000000 1.250000 630 | endloop 631 | endfacet 632 | facet normal 0,000000 0,000000 1,000000 633 | outer loop 634 | vertex 0.911067 1.253976 1.250000 635 | vertex -1.600000 2.771281 1.250000 636 | vertex 0.478976 1.474138 1.250000 637 | endloop 638 | endfacet 639 | facet normal 0,000000 0,000000 1,000000 640 | outer loop 641 | vertex 3.200000 0.000000 1.250000 642 | vertex -1.600000 2.771281 1.250000 643 | vertex 0.911067 1.253976 1.250000 644 | endloop 645 | endfacet 646 | facet normal 0,000000 -0,000000 1,000000 647 | outer loop 648 | vertex 1.550000 0.000000 1.250000 649 | vertex 1.474138 -0.478976 1.250000 650 | vertex 1.600000 -2.771281 1.250000 651 | endloop 652 | endfacet 653 | facet normal 0,000000 0,000000 1,000000 654 | outer loop 655 | vertex 3.200000 0.000000 1.250000 656 | vertex 1.550000 0.000000 1.250000 657 | vertex 1.600000 -2.771281 1.250000 658 | endloop 659 | endfacet 660 | facet normal -0,000000 0,000000 1,000000 661 | outer loop 662 | vertex 3.200000 0.000000 1.250000 663 | vertex 1.474138 0.478976 1.250000 664 | vertex 1.550000 0.000000 1.250000 665 | endloop 666 | endfacet 667 | facet normal 0,000000 -0,000000 1,000000 668 | outer loop 669 | vertex 1.474138 -0.478976 1.250000 670 | vertex 1.253976 -0.911067 1.250000 671 | vertex 1.600000 -2.771281 1.250000 672 | endloop 673 | endfacet 674 | facet normal 0,000000 -0,000000 1,000000 675 | outer loop 676 | vertex 1.253976 -0.911067 1.250000 677 | vertex 0.911067 -1.253976 1.250000 678 | vertex 1.600000 -2.771281 1.250000 679 | endloop 680 | endfacet 681 | facet normal -0,000000 -0,000000 1,000000 682 | outer loop 683 | vertex 0.000000 -1.550000 1.250000 684 | vertex -0.478976 -1.474138 1.250000 685 | vertex 1.600000 -2.771281 1.250000 686 | endloop 687 | endfacet 688 | facet normal -0,000000 0,000000 1,000000 689 | outer loop 690 | vertex 1.600000 -2.771281 1.250000 691 | vertex -0.478976 -1.474138 1.250000 692 | vertex -1.600000 -2.771281 1.250000 693 | endloop 694 | endfacet 695 | facet normal -0,000000 0,000000 1,000000 696 | outer loop 697 | vertex -0.478976 -1.474138 1.250000 698 | vertex -0.911067 -1.253976 1.250000 699 | vertex -1.600000 -2.771281 1.250000 700 | endloop 701 | endfacet 702 | facet normal -0,000000 0,000000 1,000000 703 | outer loop 704 | vertex -0.911067 -1.253976 1.250000 705 | vertex -1.253976 -0.911067 1.250000 706 | vertex -1.600000 -2.771281 1.250000 707 | endloop 708 | endfacet 709 | facet normal 0,000000 0,000000 1,000000 710 | outer loop 711 | vertex -1.550000 0.000000 1.250000 712 | vertex -1.474138 0.478976 1.250000 713 | vertex -1.600000 2.771281 1.250000 714 | endloop 715 | endfacet 716 | facet normal 0,000000 0,000000 1,000000 717 | outer loop 718 | vertex 0.911067 1.253976 1.250000 719 | vertex 1.253976 0.911067 1.250000 720 | vertex 3.200000 0.000000 1.250000 721 | endloop 722 | endfacet 723 | facet normal 0,000000 -0,000000 1,000000 724 | outer loop 725 | vertex 0.911067 -1.253976 1.250000 726 | vertex 0.478976 -1.474138 1.250000 727 | vertex 1.600000 -2.771281 1.250000 728 | endloop 729 | endfacet 730 | endsolid OpenSCAD_Model 731 | -------------------------------------------------------------------------------- /parts/Openscad/Parameterized_battery_holder.scad: -------------------------------------------------------------------------------- 1 | /*************************************************************** 2 | Parameterized Battery pack with electrical connections 3 | (c) 2010 Juan Gonzalez-Gomez (Obijuan) juan@iearobotics.com 4 | This design is derived from the Battery comparment generator 5 | (c) Nikolaus Gradwohl (guru (at) local-guru.net) 6 | http://www.thingiverse.com/thing:5051 7 | Other contributors: 8 | * Chris Thompson (http://eagleapex.com/): Connection in series along the case 9 | ----------------------------------------------------------- 10 | The nuts (two per battery) are embedded into the battery pack. 11 | The screws (two per battery) are inserted from the outside and 12 | touch the batteries. 13 | ----------------------------------------------------------- 14 | GPL LICENCE 15 | ****************************************************************/ 16 | include 17 | use 18 | 19 | /***************************************************/ 20 | /* Battery holder. Parameters */ 21 | /* -size: battery size. It can be: */ 22 | /* 0 for AA, 1 for AAA, 2 for C and 3 for D */ 23 | /* -num: Number of batteries */ 24 | /***************************************************/ 25 | module battery_holder(size=0, num=4) 26 | { 27 | //-- Battery sizes 28 | batteries = [ 29 | [ 10.5,44.5 ], //-- AAA 30 | [14.5, 50.5], //-- AA size 31 | [ 26.2, 50 ], //-- C 32 | [ 34.2, 61.5 ], //-- D 33 | ]; 34 | 35 | //--default value 36 | typ=batteries[size]; 37 | 38 | //--------------------------------- 39 | //-- Battery pack parameters 40 | //-- Can be set by the user 41 | //--------------------------------- 42 | 43 | //-- Battery pack thickness 44 | bottom_thick=1.5; 45 | fr_thick=3.5; //-- Front and rear parts 46 | side_thick=2; //-- Side part 47 | 48 | //-- Distance beween batteries 49 | distance_bat=1; 50 | 51 | //-- Battery dimensions: width, height and length. Change ser for batteries in series along the case. 52 | 53 | ser=1; 54 | w=typ[0]; 55 | h=w; 56 | l=typ[1]*ser; 57 | 58 | //-- Dimensions of the inner part of the compartiment 59 | ip_l = l; 60 | ip_w = w + (w+distance_bat)*(num-1); 61 | ip_h = h; 62 | 63 | //-- Dimensions of the mother cube 64 | mc_l = ip_l+2*fr_thick; 65 | mc_w = ip_w+2*side_thick; 66 | mc_h = ip_h+bottom_thick; 67 | 68 | //-- The process of building the battery pack is just substracting 69 | //-- things to the mother cube 70 | translate([0,0,bottom_thick/2]) 71 | rotate([0,0,90]) 72 | difference() { 73 | //-- The mother cube 74 | translate([0,0,-bottom_thick/2]) 75 | cube(size=[mc_l, mc_w, mc_h],center=true); 76 | 77 | //-- Array of batteries 78 | translate([0,0,h/2]) 79 | cube(size=[ip_l,ip_w,ip_h],center=true); 80 | 81 | translate([0,-mc_w/2+w/2+side_thick,0]) 82 | for ( i = [0:num-1] ) { 83 | 84 | translate([0,i*(w+distance_bat),0]) 85 | union() { 86 | translate([0,0,h/2]) 87 | cube(size=[l,w,h],center=true); 88 | 89 | rotate([0,90,0]) 90 | cylinder(r=w/2, h=l-0.01, center=true, $fn=50); 91 | } 92 | } 93 | 94 | //-- Array of contacts 95 | translate([0,-mc_w/2+w/2+side_thick,0]) 96 | for ( i = [0:num-1] ) { 97 | //-- Drills 98 | translate([0,i*(w+distance_bat),0]) 99 | rotate([0,90,0]) 100 | rotate([0,0,45/2]) 101 | cylinder(center=true,h=l+20, r=drill_M3/2, $fn=8); 102 | 103 | //-- Room for the embedded nuts 104 | translate([0,i*(w+distance_bat),0]) 105 | rotate([0,90,0]) 106 | cylinder(h=l+2*nut_h, r=nut_radius, $fn=6, center=true); 107 | } 108 | 109 | } 110 | } 111 | 112 | //-- Default battery holder 113 | battery_holder(); 114 | 115 | 116 | -------------------------------------------------------------------------------- /parts/Openscad/Servo-wheel.scad: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------- 2 | //-- Servo wheel 3 | //-- (c) Juan Gonzalez (obijuan) juan@iearobotics.com 4 | //-- March-2012 5 | //------------------------------------------------------------- 6 | //-- Wheel for mobile robots, drived by Futaba 3003 servos 7 | //------------------------------------------------------------- 8 | include 9 | 10 | 11 | //-- Parameters common to all horns 12 | horn_drill_diam = 1.5; 13 | horn_height = 6; //-- Total height: shaft + plate 14 | horn_plate_height = 2; //-- plate height 15 | 16 | //-- Futaba 3003 servo rounded horn parameters 17 | rh_diam1 = 8.5; //-- Rounded horn small diameter 18 | rh_diam2 = 21.5; //-- Rounded horn big diameter 19 | rounded_horn_drill_distance = 7.3; 20 | 21 | //-- Futaba 3003 horn drills 22 | 23 | 24 | //-- Futaba 3003 4-arm horn parameters 25 | a4h_end_diam = 5; 26 | a4h_center_diam = 10; 27 | a4h_arm_length = 15; 28 | a4h_drill_distance = 13.3; 29 | 30 | 31 | //-- Futaba 3003 6-arm horn parameters 32 | a6h_end_diam = 5; 33 | a6h_center_diam = 10; 34 | a6h_arm_length=10; 35 | a6h_arm_base_diam=7.5; 36 | a6h_drill_distance = 10.9; 37 | 38 | 39 | //------------------------------------------------------- 40 | //--- Parameters: 41 | //-- or_idiam: O-ring inner diameter 42 | //-- or_diam: O-ring section diameter 43 | //-- h: Height of the wheel 44 | //-- 45 | //-- Module for generating a raw wheel, with no drills 46 | //-- and no servo horn 47 | //------------------------------------------------------- 48 | module raw_wheel(or_idiam=50, or_diam=3, h=6) 49 | { 50 | //-- Wheel parameters 51 | r = wheels_diam / 2; //-- Radius 52 | 53 | //-- Temporal points 54 | l = or_diam*sqrt(2)/2; 55 | 56 | difference() { 57 | //-- Body of the wheel 58 | cylinder (r=r, h=h, $fn=100,center=true); 59 | 60 | //-- wheel's inner section 61 | rotate_extrude($fn=100) 62 | translate([r-or_diam/2,0,0]) 63 | polygon( [ [0,0],[l,l],[l,-l] ] , [ [0,1,2] ]); 64 | } 65 | } 66 | 67 | //-------------------------------------------------------------- 68 | //-- Generic module for the horn's drills 69 | //-- Parameters: 70 | //-- d = drill's radial distance (from the horn's center) 71 | //-- n = number of drills 72 | //-- h = wheel height 73 | //-------------------------------------------------------------- 74 | module horn_drills(d,n,h) 75 | { 76 | union() { 77 | for ( i = [0 : n-1] ) { 78 | rotate([0,0,i*360/n]) 79 | translate([0,d,0]) 80 | cylinder(r=horn_drill_diam/2, h=h+10,center=true, $fn=6); 81 | } 82 | } 83 | } 84 | 85 | //----------------------------------------- 86 | //-- Futaba 3003 horn4 arm 87 | //-- This module is just one arm 88 | //----------------------------------------- 89 | module horn4_arm(h=5) 90 | { 91 | translate([0,a4h_arm_length-a4h_end_diam/2,0]) 92 | //-- The arm consist of the perimeter of a cylinder and a cube 93 | hull() { 94 | cylinder(r=a4h_end_diam/2, h=h, center=true, $fn=20); 95 | translate([0,1-a4h_arm_length+a4h_end_diam/2,0]) 96 | cube([a4h_center_diam,2,h],center=true); 97 | } 98 | } 99 | 100 | //----------------------------------------- 101 | //-- Futaba 3003 horn6 arm 102 | //-- This module is just one arm 103 | //----------------------------------------- 104 | module horn6_arm(h=5) 105 | { 106 | translate([0,a6h_arm_length-a6h_end_diam/2,0]) 107 | //-- The arm consist of the perimeter of a cylinder and a cube 108 | hull() { 109 | cylinder(r=a6h_end_diam/2, h=h, center=true, $fn=20); 110 | translate([0,-a6h_arm_length+a6h_end_diam/2,0]) 111 | cube([a6h_arm_base_diam,0.1,h],center=true); 112 | } 113 | } 114 | 115 | 116 | //------------------------------------------- 117 | //-- Futaba 3003 4-arm horn 118 | //------------------------------------------- 119 | module horn4(h=5) 120 | { 121 | union() { 122 | //-- Center part (is a square) 123 | cube([a4h_center_diam+0.2,a4h_center_diam+0.2,h],center=true); 124 | 125 | //-- Place the 4 arms in every side of the cube 126 | for ( i = [0 : 3] ) { 127 | rotate( [0,0,i*90]) 128 | translate([0, a4h_center_diam/2, 0]) 129 | horn4_arm(h); 130 | } 131 | } 132 | 133 | } 134 | 135 | //------------------------------------------- 136 | //-- Futaba 3003 6-arm horn 137 | //------------------------------------------- 138 | module horn6(h=5) 139 | { 140 | union() { 141 | //-- The center part is a cylinder 142 | cylinder(r=15/2,h=h,center=true); 143 | 144 | //-- Place the 6 arms rotated 60 degrees 145 | for ( i = [0 : 5] ) { 146 | rotate( [0,0,i*60]) 147 | translate([0, 15/2*cos(30), 0]) 148 | horn6_arm(h); 149 | } 150 | } 151 | } 152 | 153 | 154 | //------------------------------------------------------- 155 | //-- A Wheel for the futaba 3003 rounded horns 156 | //-------------------------------------------------------- 157 | module Servo_wheel_rounded_horn() 158 | { 159 | difference() { 160 | raw_wheel(or_idiam=wheel_or_idiam, or_diam=wheel_or_diam, h=wheel_height); 161 | 162 | //-- Inner drill 163 | cylinder(center=true, h=2*wheel_height + 10, r=rh_diam1/2+0.2,$fn=100); 164 | 165 | //-- Carved circle for the Futaba rounded horn 166 | translate([0,0,-wheel_height/2+horn_height-horn_plate_height]) 167 | cylinder(r=rh_diam2/2+0.25, h=2*wheel_height+10,$fn=30); 168 | 169 | //-- small drills for the rounded horn 170 | horn_drills(d=rounded_horn_drill_distance, n=4, h=wheel_height); 171 | } 172 | 173 | } 174 | 175 | //------------------------------------------------------- 176 | //-- A Wheel for the futaba 3003 4-arm horns 177 | //-------------------------------------------------------- 178 | module Servo_wheel_4_arm_horn() 179 | { 180 | difference() { 181 | raw_wheel(or_idiam=wheel_or_idiam, or_diam=wheel_or_diam, h=wheel_height); 182 | 183 | //-- Inner drill 184 | cylinder(center=true, h=2*wheel_height + 10, r=a4h_center_diam/2,$fn=20); 185 | 186 | //-- substract the 4-arm servo horn 187 | translate([0,0,horn_height-horn_plate_height]) 188 | horn4(h=wheel_height); 189 | 190 | //-- Horn drills 191 | horn_drills(d=a4h_drill_distance, n=4, h=wheel_height); 192 | 193 | } 194 | } 195 | 196 | //------------------------------------------------------- 197 | //-- A Wheel for the futaba 3003 6-arm horns 198 | //-------------------------------------------------------- 199 | module Servo_wheel_6_arm_horn() 200 | { 201 | difference() { 202 | raw_wheel(or_idiam=wheel_or_idiam, or_diam=wheel_or_diam, h=wheel_height); 203 | 204 | //-- Inner drill 205 | cylinder(center=true, h=2*wheel_height + 10, r=a6h_center_diam/2,$fn=20); 206 | 207 | //-- substract the 6-arm horn 208 | translate([0,0,horn_height-horn_plate_height]) 209 | horn6(h=wheel_height); 210 | 211 | //-- Horn drills 212 | horn_drills(d=a6h_drill_distance, n=6, h=wheel_height); 213 | } 214 | } 215 | 216 | 217 | //-- Test! 218 | 219 | //Servo_wheel_rounded_horn(); 220 | //translate([wheel_or_idiam+10,0,0]) 221 | Servo_wheel_4_arm_horn(); 222 | 223 | //translate([-wheel_or_idiam-10,0,0]) Servo_wheel_6_arm_horn(); 224 | 225 | 226 | /*-- Calculating the top view (for the documentation) 227 | projection(cut=false) 228 | Servo_wheel_4_arm_horn(); 229 | */ 230 | 231 | 232 | /*-- Horn6. Used in the freecad drawing 233 | translate([0, 0, 4/2 + 2/2],$fn=50) 234 | cylinder(r=8.5/2, h=4, center=true); 235 | horn4(h=2); 236 | */ 237 | 238 | -------------------------------------------------------------------------------- /parts/Openscad/battery_holder.scad: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------- 2 | //-- Battery holder for Miniskybot 2. It is based on 3 | //-- the parameterized batery_holder of Miniskybot 1, but 4 | //-- with 4 "ears" for screwing to the chassis 5 | //-- (c) Juan Gonzalez Gomez (Obijuan) 6 | //--------------------------------------------------------- 7 | //-- Released under the GPL license 8 | //--------------------------------------------------------- 9 | include 10 | use 11 | 12 | //------------------------------- 13 | //-- Battery holder ears 14 | //-- Parameters: 15 | //-- do: outer diameter 16 | //-- h : ear height 17 | //------------------------------- 18 | module ear(do, h) 19 | { 20 | translate([-do/2,do/2,0]) 21 | difference() { 22 | union() { 23 | cylinder(r=do/2, h=h,$fn=20); 24 | 25 | translate([do/4,0,h/2]) 26 | cube([do/2,do,h],center=true); 27 | } 28 | cylinder(r=drill_M3/2, h=h+10,$fn=8,center=true); 29 | } 30 | } 31 | 32 | //------------------------------- 33 | //--- Battery holder 34 | //------------------------------- 35 | module battery() 36 | { 37 | union() { 38 | 39 | //-- Main part: a battery holder for 4 AAA batteries 40 | battery_holder(size=0,num=4); 41 | 42 | //-- Add the 4 ears 43 | translate([-battery_c1/2,-battery_c2/2,-battery_c3/2]) 44 | ear(do=battery_ear_diam, h=battery_ear_h); 45 | 46 | translate([-battery_c1/2, battery_c2/2-battery_ear_diam,-battery_c3/2]) 47 | ear(do=battery_ear_diam, h=battery_ear_h); 48 | 49 | translate([battery_c1/2, battery_c2/2-battery_ear_diam,-battery_c3/2]) 50 | mirror([1,0,0]) 51 | ear(do=battery_ear_diam, h=battery_ear_h); 52 | 53 | translate([battery_c1/2, -battery_c2/2,-battery_c3/2]) 54 | mirror([1,0,0]) 55 | ear(do=battery_ear_diam, h=battery_ear_h); 56 | } 57 | } 58 | 59 | //-- This is for testing/printing the battery holder 60 | projection(cut=true) 61 | translate([0,0,25.5]) 62 | rotate([90,0,0]) 63 | translate([0,0,battery_c3/2]) 64 | battery(); 65 | 66 | 67 | -------------------------------------------------------------------------------- /parts/Openscad/configuration.scad: -------------------------------------------------------------------------------- 1 | //------------------------------------ 2 | //-- Miniskybot 2 configuration file 3 | //------------------------------------ 4 | 5 | //-- drills 6 | drill_M3 = 3.2; 7 | 8 | //-- captive Nuts 9 | nut_h = 2.6; 10 | nut_radius = 6.6/2; 11 | 12 | //------------------------------------------------ 13 | //-- Servo parameters 14 | //-- See the doc/futaba-doc.pdf file 15 | //------------------------------------------------ 16 | //-- Servo futaba 3003 dimensions 17 | servo_c1 = 20; 18 | servo_c2 = 7.5; 19 | servo_c3 = 26.4; 20 | servo_c4 = 40.3; 21 | servo_c5 = 30.3; 22 | servo_c6 = 10; 23 | servo_c7 = 11.6; 24 | servo_c8 = 4.1; 25 | servo_c9 = 5.2; 26 | servo_c10 = 9.6; 27 | 28 | //------------------------------------------- 29 | //-- Battery holder parameters 30 | //-- See the doc/battery_holder-doc.pdf file 31 | //------------------------------------------- 32 | battery_c1 = 49; 33 | battery_c2 = 51.5; 34 | battery_c3 = 12; 35 | battery_ear_diam = 9; 36 | battery_ear_h = 3; 37 | battery_top_gap = 1; 38 | //-- Real battery height whith batteries inserted 39 | battery_height = battery_c3 + battery_top_gap; 40 | 41 | //------------------------------------------------- 42 | //-- Wheels parameters. 43 | //-- See the doc/Servo-wheels-doc.pdf 44 | //------------------------------------------------ 45 | wheel_or_idiam = 50; //-- O-ring inner diameter 46 | wheel_or_diam = 3; //-- O-ring section diameter 47 | wheel_height = 2*wheel_or_diam+0; //-- Wheel height: change the 0 for 48 | //-- other value (0 equals minimun height) 49 | 50 | //-- Wheel diameter is calculated from the o_ring 51 | wheels_diam = wheel_or_idiam + 2*wheel_or_diam; 52 | wheel_gap = 1; //-- For the final view. space between servo and wheel 53 | 54 | 55 | //------------------------------------------------- 56 | //-- Chassis (see doc/chassis-doc.pdf) 57 | //------------------------------------------------- 58 | 59 | robot_height = 47; 60 | 61 | //-------- Rear part parameters ------------ 62 | rear_c1 = servo_c2 + 3; 63 | rear_c2 = servo_c3*2; 64 | rear_c3 = servo_c1 + battery_height -battery_ear_h; 65 | rear_edge_rad = 3; 66 | 67 | //-- Ball caster parameters 68 | WallThickness = 2.25; //thickness of the retaining wall 69 | BallSize = 16.4; //diameter of your ball bearing. 70 | Airgap = .65; // Gap between ball and wall 71 | BallProtrude = .35; //percentage of ball radius sticking out 72 | ball_caster_height = robot_height-(BallSize*BallProtrude); 73 | 74 | //-- Front part parameters 75 | front_c1 = battery_ear_diam + 4; 76 | front_thickness = 3; 77 | frame_corner_radius = 3; 78 | 79 | 80 | //-- Top plate 81 | top_plate_c1 = battery_c1 + front_c1 + rear_c1; 82 | top_plate_c2 = rear_c2+5; 83 | top_plate_thickness = 4; 84 | 85 | 86 | //-- Skymega board dimensions 87 | skymega_lx = 51.4; 88 | skymega_ly = 51.4; 89 | skymega_width=3; 90 | skymega_dx = 15; 91 | skymega_dy = 15; 92 | 93 | //-- ultrasounds 94 | ultrasound_hole = 16.5; 95 | ultrasound_base_lx = 24+1; 96 | ultrasound_base_ly = 20+1; 97 | ultrasound_base_lz = 3; 98 | ultrasound_length = 12.5; 99 | ultrasound_drill_1 = [-9,7,0]; 100 | ultrasound_drill_2 = [9,-8,0]; 101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /parts/Openscad/fake_ultrasound.scad: -------------------------------------------------------------------------------- 1 | include 2 | 3 | module fake_ultrasound_srf02() 4 | { 5 | 6 | difference() { 7 | 8 | //-- ultrasound + base board 9 | union() { 10 | 11 | //-- board 12 | color("green") 13 | translate([0,0,ultrasound_base_lz/2]) 14 | cube([ultrasound_base_lx, ultrasound_base_ly, ultrasound_base_lz],center=true); 15 | 16 | //-- Sensor 17 | color("gray") 18 | translate([0,0,ultrasound_length/2+ultrasound_base_lz-0.1]) 19 | cylinder(r=ultrasound_hole/2-0.2, h=ultrasound_length,center=true); 20 | } 21 | 22 | //-- Drill 1 23 | translate(ultrasound_drill_1) 24 | cylinder(r=drill_M3/2, h=20,center=true,$fn=8); 25 | 26 | //-- Drill 2 27 | translate(ultrasound_drill_2) 28 | cylinder(r=drill_M3/2, h=20,center=true,$fn=8); 29 | 30 | //-- Electrical conections 31 | for (i=[0:4]) { 32 | translate([ultrasound_base_lx/2-2, ultrasound_base_ly/2-2-2.5*i,0]) 33 | cylinder(r=0.8, h=20, center=true, $fn=8); 34 | } 35 | 36 | } 37 | 38 | } 39 | 40 | fake_ultrasound_srf02(); 41 | -------------------------------------------------------------------------------- /parts/Openscad/functions.scad: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------- 2 | //-- Auxiliary functions 3 | //--------------------------------------------------- 4 | // (c) Juan Gonzalez Gomez (juan@iearobotics.com) 5 | // Credits: 6 | //-- Some files have been taken from the Prusa Mendel: 7 | // Josef Průša, josefprusa@me.com 8 | //--------------------------------------------------- 9 | 10 | //---------------------------------- 11 | //-- RoundedBox. Parameters: 12 | //-- size = [x,y,z], 13 | //-- r = corner radius 14 | //---------------------------------- 15 | module roundedBox(size, r) 16 | { 17 | hull() { 18 | cube([size[0]-2*r,size[1]-2*r,size[2]],center=true); 19 | 20 | translate([size[0]/2-r,-size[1]/2+r,0]) 21 | cylinder(r=r,h=size[2],$fn=20,center=true); 22 | 23 | translate([size[0]/2-r,size[1]/2-r,0]) 24 | cylinder(r=r,h=size[2],$fn=20,center=true); 25 | 26 | translate([-size[0]/2+r,-size[1]/2+r,0]) 27 | cylinder(r=r,h=size[2],$fn=20,center=true); 28 | 29 | translate([-size[0]/2+r,size[1]/2-r,0]) 30 | cylinder(r=r,h=size[2],$fn=20,center=true); 31 | 32 | } 33 | } 34 | 35 | //------------------------------------------ 36 | // A box with only 2 rounded corners. Parameters: 37 | //-- size = [x,y,z], 38 | //-- r = corner radius 39 | //------------------------------------------ 40 | module rounded_box_half(size, r) 41 | { 42 | 43 | hull() { 44 | translate([r,0,0]) 45 | cube(size = [size[0]-r,size[1],size[2]]); 46 | 47 | translate([r,r,0]) 48 | cylinder(r=r,h=size[2],$fn=20); 49 | 50 | translate([r,size[1]-r,0]) 51 | cylinder(r=r,h=size[2],$fn=20); 52 | } 53 | } 54 | 55 | //------------------------------------- 56 | //-- Function for the captive nuts 57 | //------------------------------------- 58 | module captive_nut(l=nut_radius) 59 | { 60 | union() { 61 | rotate([0,0,30]) 62 | cylinder(r=nut_radius,h=nut_h,$fn=6,center=true); 63 | translate([-l/2,0,0]) cube([l,2*nut_radius,nut_h],center=true); 64 | } 65 | } 66 | 67 | 68 | 69 | 70 | module nut(d,h,horizontal=true) 71 | { 72 | cornerdiameter = (d / 2) / cos (180 / 6); 73 | cylinder(h = h, r = cornerdiameter, $fn = 6); 74 | if(horizontal) { 75 | for(i = [1:6]) { 76 | rotate([0,0,60*i]) 77 | translate([-cornerdiameter-0.2,0,0]) 78 | rotate([0,0,-45]) 79 | cube(size = [2,2,h]); 80 | } 81 | } 82 | } 83 | 84 | // Based on nophead research 85 | module polyhole(d,h) 86 | { 87 | n = max(round(2 * d),3); 88 | rotate([0,0,180]) 89 | cylinder(h = h, r = (d / 2) / cos (180 / n), $fn = n); 90 | } 91 | 92 | module teardrop(r,h) 93 | { 94 | $fa=15.0; 95 | $fs=0.1; 96 | 97 | diameter=2*r; 98 | 99 | linear_extrude(height=h, center=false, convexity=10) 100 | difference() { 101 | union() { 102 | circle(r=diameter/2); 103 | rotate(45) square(size=diameter/2,center=false); 104 | } 105 | translate([-diameter/2,diameter/2]) square(size=diameter); 106 | } 107 | } 108 | 109 | module roundcorner(diameter) 110 | { 111 | difference() { 112 | cube(size = [diameter,diameter,99], center = false); 113 | translate(v = [diameter, diameter, 0]) 114 | cylinder(h = 100, r=diameter, center=true); 115 | } 116 | } 117 | 118 | 119 | -------------------------------------------------------------------------------- /parts/Openscad/main.scad: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------------------------------- 2 | // Miniskybot 2.0 3 | // (c) Juan Gonzalez-Gomez, March-2012 4 | // Robotics and Cybernetics group. Universidad Politecnica de Madrid 5 | //-------------------------------------------------------------------------- 6 | //-- CREDITS: 7 | //-- The ball caster have been designed by Sliptonic 8 | // http://www.thingiverse.com/thing:13782 9 | //-------------------------------------------------------------------------- 10 | // This code is under the GPL licence 11 | //-------------------------------------------------------------------------- 12 | 13 | //-- Change the robot parameters in the configuration.scad file 14 | include 15 | 16 | include 17 | use 18 | use 19 | use 20 | 21 | 22 | //----------------------------------------------------------------------- 23 | //-- USER PARAMETERS: 24 | //-- Printing mode = true for generating the chassis ready to print 25 | //-- Printing mode = false, for visualizing the Miniskybot robot 26 | //----------------------------------------------------------------------- 27 | printing_mode = true; 28 | 29 | //---------------------------------------------------------------- 30 | //-- Visualization flagss 31 | //-- These flags only take effect when printing_mode = false 32 | //-- Set them to true or false 33 | //---------------------------------------------------------------- 34 | show_servos = true; 35 | show_battery = true; 36 | show_wheels = true; 37 | show_ultrasound = true; 38 | 39 | 40 | //----------------------------------------------------------------------- 41 | //-- I M P L E M E N T A T I O N 42 | //----------------------------------------------------------------------- 43 | 44 | 45 | //----------------------- 46 | //-- Rear part body 47 | //---------------------- 48 | module rear_part_body() 49 | { 50 | difference() { 51 | 52 | //-- Main part 53 | translate([-rear_c1,0,servo_c1-rear_c3]) 54 | rounded_box_half([rear_c1,rear_c2,rear_c3],r=rear_edge_rad); 55 | 56 | //-- Bottom drills for the battery holder 57 | translate([-battery_ear_diam/2, (rear_c2-battery_c2)/2+battery_ear_diam/2, 58 | servo_c1-rear_c3+2]) 59 | cylinder(r=drill_M3/2,h=8, $fn=10); 60 | 61 | translate([-battery_ear_diam/2, 62 | (rear_c2-battery_c2)/2+battery_ear_diam/2+battery_c2-battery_ear_diam, 63 | servo_c1-rear_c3+2]) 64 | cylinder(r=drill_M3/2,h=8, $fn=10); 65 | 66 | //-- Bottom drills, part 2. For making the part printable, there cannot be 67 | //-- one cylinder but two. When assembling the robot, these holes should be 68 | //-- open manually 69 | translate([-battery_ear_diam/2, (rear_c2-battery_c2)/2+battery_ear_diam/2, 70 | servo_c1-rear_c3-1]) 71 | cylinder(r=drill_M3/2,h=2, $fn=10); 72 | 73 | translate([-battery_ear_diam/2, 74 | (rear_c2-battery_c2)/2+battery_ear_diam/2+battery_c2-battery_ear_diam, 75 | servo_c1-rear_c3-1]) 76 | cylinder(r=drill_M3/2,h=2, $fn=10); 77 | 78 | //-- Space for the captive nuts 79 | translate([-battery_ear_diam/2, (rear_c2-battery_c2)/2+battery_ear_diam/2, 80 | servo_c1-rear_c3+nut_h/2+2]) 81 | rotate([0,0,180]) 82 | captive_nut(10); 83 | 84 | translate([-battery_ear_diam/2, 85 | (rear_c2-battery_c2)/2+battery_ear_diam/2+battery_c2-battery_ear_diam, 86 | servo_c1-rear_c3+nut_h/2+2]) 87 | rotate([0,0,180]) 88 | captive_nut(10); 89 | 90 | //-- Drills for the servos 91 | translate([-servo_c8,-1,servo_c9]) 92 | rotate([-90,0,0]) 93 | cylinder(r=drill_M3/2, h=10, $fn=10); 94 | 95 | translate([-servo_c8,rear_c2-9,servo_c9]) 96 | rotate([-90,0,0]) 97 | cylinder(r=drill_M3/2, h=10, $fn=10); 98 | 99 | //-- Captive nuts for the servo's bolts 100 | color("green") 101 | translate([-servo_c8,nut_h/2+2,servo_c9]) 102 | rotate([90,0,0]) 103 | rotate([0,0,180]) 104 | captive_nut(10); 105 | 106 | color("green") 107 | translate([-servo_c8,-nut_h/2+rear_c2-2,servo_c9]) 108 | rotate([90,0,0]) 109 | rotate([0,0,180]) 110 | captive_nut(10); 111 | 112 | } 113 | 114 | } 115 | 116 | //---------------------- 117 | //-- Rear part 118 | //---------------------- 119 | module rear_part() 120 | { 121 | total_height = robot_height; 122 | cyl_height = total_height; 123 | cylrad = (BallSize/2) + WallThickness + Airgap; 124 | 125 | ball_caster_height = total_height-(BallSize*BallProtrude); 126 | 127 | difference() { 128 | union() { 129 | rear_part_body(); 130 | translate([-cylrad,rear_c2/2,-ball_caster_height +servo_c1+top_plate_thickness]) 131 | cylinder(r=cylrad, h=ball_caster_height); 132 | } 133 | translate([-cylrad,rear_c2/2,-cyl_height/2 + (BallSize/2)+top_plate_thickness]) 134 | cube([cylrad/2, cylrad*2+5, BallSize*1.25],center=true); 135 | 136 | translate([-cylrad,rear_c2/2,-cyl_height/2 + (BallSize/2)+top_plate_thickness]) 137 | sphere (BallSize/2+Airgap, $fa=5, $fs=0.1); 138 | 139 | translate([-rear_c1-8,rear_c2/2,servo_c3+5]) 140 | rotate (a = [0,20,0]) 141 | cube ([20,23,80],center=true); 142 | 143 | } 144 | 145 | } 146 | 147 | 148 | //------------------- 149 | //-- Front part 150 | //------------------- 151 | module front_part() 152 | { 153 | difference() { 154 | union() { 155 | 156 | //-- Right "leg". It is smalle than the left. Just for having space 157 | //-- for the battery wires 158 | translate([servo_c4,0,4]) 159 | cube([battery_c1-servo_c4,5,servo_c1-4]); 160 | 161 | //-- Left "leg" 162 | translate([servo_c4,2*servo_c3-5,0]) 163 | cube([battery_c1-servo_c4,5,servo_c1]); 164 | 165 | //-- Front main block 166 | translate([battery_c1,0,-battery_height+3]) 167 | translate([front_c1, rear_c2, 0]) 168 | rotate([0,0,180]) 169 | rounded_box_half([front_c1, rear_c2, rear_c3],r=rear_edge_rad); 170 | } 171 | translate([battery_c1-front_thickness,battery_ear_diam-(battery_c2-rear_c2)/2, 172 | -rear_c3+servo_c1-5]) 173 | cube([front_c1, battery_c2-2*battery_ear_diam, rear_c3+10]); 174 | 175 | //-- servo drills 176 | translate([servo_c4+servo_c8,-1,servo_c9+servo_c10]) 177 | rotate([-90,0,0]) 178 | cylinder(r=drill_M3/2, h=2*servo_c3+2, $fn=10); 179 | 180 | //-- Servo Captive nuts 181 | translate([servo_c4+servo_c8,2,servo_c9+servo_c10]) 182 | rotate([-90,0,0]) 183 | cylinder(r=nut_radius, h=2*servo_c3-4, $fn=6); 184 | 185 | //-- Bottom drills for the battery holder 186 | translate([battery_c1+battery_ear_diam/2, 187 | (rear_c2-battery_c2)/2+battery_ear_diam/2,servo_c1-rear_c3-1]) 188 | cylinder(r=drill_M3/2,h=10, $fn=10); 189 | 190 | translate([battery_c1+battery_ear_diam/2, 191 | (rear_c2-battery_c2)/2+battery_ear_diam/2+battery_c2-battery_ear_diam, 192 | servo_c1-rear_c3-1]) 193 | cylinder(r=drill_M3/2,h=10, $fn=10); 194 | 195 | //-- Space for the captive nuts 196 | translate([battery_c1+battery_ear_diam/2, 197 | (rear_c2-battery_c2)/2+battery_ear_diam/2, 198 | nut_h/2+servo_c1-rear_c3+2]) 199 | captive_nut(10); 200 | 201 | translate([battery_c1+battery_ear_diam/2, 202 | (rear_c2-battery_c2)/2+battery_ear_diam/2+battery_c2-battery_ear_diam, 203 | nut_h/2+servo_c1-rear_c3+2]) 204 | captive_nut(10); 205 | 206 | //-- Ultrasound hole 207 | translate([battery_c1+front_c1, 208 | rear_c2/2,servo_c1-ultrasound_hole/2-5]) 209 | rotate([0,90,0]) 210 | rotate([0,0,-90]) 211 | translate([0,0,-5]) 212 | teardrop(r=ultrasound_hole/2, h=10); 213 | 214 | //-- Ultrasound drills 215 | translate([battery_c1+front_c1, 216 | rear_c2/2 -8, 217 | servo_c1-ultrasound_hole/2-5-9]) 218 | rotate([0,90,0]) 219 | cylinder(r=drill_M3/2, h=20,center=true, $fn=8); 220 | 221 | translate([battery_c1+front_c1, 222 | rear_c2/2 +7, 223 | servo_c1-ultrasound_hole/2-5+9]) 224 | rotate([0,90,0]) 225 | cylinder(r=drill_M3/2, h=20,center=true, $fn=8); 226 | 227 | } 228 | 229 | //-- Bottom drills, part 2. For making the part printable, there cannot be 230 | //-- one cylinder but two. When assembling the robot, these holes should be 231 | //-- open manually 232 | translate([battery_c1+battery_ear_diam/2, 233 | (rear_c2-battery_c2)/2+battery_ear_diam/2, 234 | servo_c1-rear_c3+1]) 235 | cylinder(r=drill_M3/2,h=0.4, $fn=10); 236 | 237 | translate([battery_c1+battery_ear_diam/2, 238 | (rear_c2-battery_c2)/2+battery_ear_diam/2+battery_c2-battery_ear_diam, 239 | servo_c1-rear_c3+1]) 240 | cylinder(r=drill_M3/2,h=0.4, $fn=10); 241 | 242 | } 243 | 244 | 245 | //--------------------------------------------------------- 246 | //-- Robot top part. It includes drills for 2 boards: 247 | //-- -skymega 248 | //-- -Arduino UNO 249 | //-------------------------------------------------------- 250 | module top_plate_arduino_uno() 251 | { 252 | trans1 = [(top_plate_c1)/2-rear_c1-nut_radius-1, 253 | -top_plate_c2/2+nut_radius+1 254 | ,0]; 255 | 256 | trans2 = [(top_plate_c1)/2 - rear_c1, 257 | rear_c2/2, 258 | top_plate_thickness/2+servo_c1]; 259 | 260 | translate(trans2) 261 | translate(-trans1) 262 | difference() { 263 | translate(trans1) 264 | difference() { 265 | 266 | //-- main plate 267 | roundedBox([top_plate_c1, top_plate_c2, top_plate_thickness], 268 | r=frame_corner_radius); 269 | 270 | //-- First cutout 271 | translate([-(front_c1+5)/2+(top_plate_c1)/2-front_thickness-2-4,0,0]) 272 | roundedBox([front_c1+5-4, battery_c2-2*battery_ear_diam, rear_c3+10], 273 | r=frame_corner_radius); 274 | 275 | //-- Skymega drills 276 | translate([-(top_plate_c1-skymega_lx)/2 + 3,0,0]) 277 | union() { 278 | translate([skymega_dx, skymega_dy,0]) 279 | cylinder(r=drill_M3/2, h=20, center=true, $fn=20); 280 | 281 | translate([-skymega_dx, skymega_dy,0]) 282 | cylinder(r=drill_M3/2, h=20, center=true, $fn=20); 283 | 284 | translate([skymega_dx, -skymega_dy,0]) 285 | cylinder(r=drill_M3/2, h=20, center=true, $fn=20); 286 | 287 | translate([-skymega_dx, -skymega_dy,0]) 288 | cylinder(r=drill_M3/2, h=20, center=true, $fn=20); 289 | 290 | //-- Second cutout 291 | roundedBox([2*skymega_dx-10, top_plate_c2-20,top_plate_thickness+10],frame_corner_radius,true,$fn=20); 292 | } 293 | 294 | //-- Captive nuts for the skymega 295 | translate([-(top_plate_c1-skymega_lx)/2 + 3,0,0]) 296 | union() { 297 | translate([skymega_dx, skymega_dy,-top_plate_thickness+nut_h]) 298 | cylinder(r=nut_radius, h=top_plate_thickness,center=true,$fn=6); 299 | 300 | translate([-skymega_dx, skymega_dy,-top_plate_thickness+nut_h]) 301 | cylinder(r=nut_radius, h=top_plate_thickness,center=true,$fn=6); 302 | 303 | translate([skymega_dx, -skymega_dy,-top_plate_thickness+nut_h]) 304 | cylinder(r=nut_radius, h=top_plate_thickness,center=true,$fn=6); 305 | 306 | translate([-skymega_dx, -skymega_dy,-top_plate_thickness+nut_h]) 307 | cylinder(r=nut_radius, h=top_plate_thickness,center=true,$fn=6); 308 | } 309 | } 310 | //-- Arduino drill 1 (top-left) 311 | cylinder(r=drill_M3/2, h=top_plate_thickness+10,center=true, $fn=8); 312 | 313 | //-- Captive nut for drill 1 314 | translate([0, 0,-top_plate_thickness+nut_h]) 315 | cylinder(r=nut_radius, h=top_plate_thickness,center=true,$fn=6); 316 | 317 | //-- Arduino drill 2 (bottom-left) 318 | translate([-1.1,-48.4,0]) 319 | cylinder(r=drill_M3/2, h=top_plate_thickness+10,center=true, $fn=8); 320 | 321 | //-- Captive nut for drill 2 322 | translate([-1.1,-48.4,-top_plate_thickness+nut_h]) 323 | cylinder(r=nut_radius, h=top_plate_thickness,center=true,$fn=6); 324 | 325 | //-- Arduino drill 3 (top-right) 326 | translate([51,-15.3,0]) 327 | cylinder(r=drill_M3/2, h=top_plate_thickness+10,center=true, $fn=8); 328 | 329 | //-- Captive nut for drill 3 330 | translate([51,-15.3,-top_plate_thickness+nut_h]) 331 | cylinder(r=nut_radius, h=top_plate_thickness,center=true,$fn=6); 332 | 333 | //-- Arduino drill 4 (bottom-right) 334 | //translate([51,-43.3,0]) 335 | //cylinder(r=drill_M3/2, h=top_plate_thickness+10,center=true, $fn=8); 336 | 337 | } 338 | 339 | } 340 | 341 | 342 | //------------------------------------- 343 | //-- Final Miniskybot frame 344 | //------------------------------------- 345 | module miniskybot_frame() 346 | { 347 | union() { 348 | top_plate_arduino_uno(); 349 | front_part(); 350 | rear_part(); 351 | } 352 | } 353 | 354 | //----------------------------------------------------------------- 355 | //-- Show the complete robot, acording to the visualization flags 356 | //----------------------------------------------------------------- 357 | module show_robot() 358 | { 359 | miniskybot_frame(); 360 | 361 | //-- Servos 362 | if (show_servos) { 363 | //-- Right servo 364 | color([0.2,0.2,0.2]) 365 | translate([servo_c4/2,servo_c3,servo_c1/2]) 366 | rotate([90,0,0]) 367 | import("../futaba3003/futaba.stl"); 368 | 369 | //-- Left servo 370 | color([0.2,0.2,0.2]) 371 | translate([servo_c4/2,servo_c3+0.1,servo_c1/2]) 372 | rotate([-90,0,0]) 373 | import("../futaba3003/futaba.stl"); 374 | } 375 | 376 | //-- Battery holder 377 | if (show_battery) { 378 | translate([battery_c1/2,rear_c2/2,-battery_c3/2-battery_top_gap]) 379 | color("blue") battery(); 380 | } 381 | 382 | //-- Wheels 383 | if (show_wheels) { 384 | color("green") 385 | translate([servo_c5,-servo_c7-wheel_height/2-wheel_gap,servo_c6]) 386 | rotate([90,0,0]) 387 | Servo_wheel_4_arm_horn(); 388 | 389 | color("green") 390 | translate([servo_c5,wheel_height/2+2*servo_c3+servo_c7+wheel_gap,servo_c6]) 391 | rotate([-90,0,0]) 392 | Servo_wheel_4_arm_horn(); 393 | } 394 | 395 | if (show_ultrasound) { 396 | translate([battery_c1+front_c1-ultrasound_base_lz-front_thickness, 397 | rear_c2/2,servo_c1-ultrasound_hole/2-5]) 398 | rotate([0,90,0]) 399 | fake_ultrasound_srf02(); 400 | } 401 | 402 | } 403 | 404 | 405 | //-------------------------------------------------- 406 | //-- M A I N 407 | //--------------------------------------------------- 408 | 409 | //-- Printing mode 410 | if (printing_mode) { 411 | //-- Rotate and translate the frame so that is is printable 412 | rotate([0,180,0]) 413 | translate([0,0,-servo_c1-top_plate_thickness]) 414 | miniskybot_frame(); 415 | } 416 | 417 | //--- Show mode 418 | else { 419 | //projection(cut=true) //-- robot projection (for dodcumentation pourposes) 420 | //translate([0,0, 1]) 421 | //rotate([-90,0,0]) 422 | show_robot(); 423 | } 424 | 425 | 426 | -------------------------------------------------------------------------------- /parts/doc/Battery-holder-doc.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Obijuan/Miniskybot/6116396473f0d9496b11e8cca614af01120d9787/parts/doc/Battery-holder-doc.pdf -------------------------------------------------------------------------------- /parts/doc/Futaba-doc.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Obijuan/Miniskybot/6116396473f0d9496b11e8cca614af01120d9787/parts/doc/Futaba-doc.pdf -------------------------------------------------------------------------------- /parts/doc/chassis-doc.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Obijuan/Miniskybot/6116396473f0d9496b11e8cca614af01120d9787/parts/doc/chassis-doc.pdf -------------------------------------------------------------------------------- /parts/doc/servo-wheels-doc.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Obijuan/Miniskybot/6116396473f0d9496b11e8cca614af01120d9787/parts/doc/servo-wheels-doc.pdf -------------------------------------------------------------------------------- /parts/futaba3003/Futaba-shaft.dxf: -------------------------------------------------------------------------------- 1 | 999 2 | dxflib 2.2.0.0 3 | 0 4 | SECTION 5 | 2 6 | HEADER 7 | 9 8 | $ACADVER 9 | 1 10 | AC1015 11 | 9 12 | $HANDSEED 13 | 5 14 | FFFF 15 | 9 16 | $DIMADEC 17 | 70 18 | 2 19 | 9 20 | $GRIDUNIT 21 | 10 22 | 0.001 23 | 20 24 | 0.01 25 | 9 26 | $DIMASZ 27 | 40 28 | 2.5 29 | 9 30 | $DIMALT 31 | 70 32 | 4 33 | 9 34 | $DIMGAP 35 | 40 36 | 0.625 37 | 9 38 | $LUNITS 39 | 70 40 | 2 41 | 9 42 | $AUPREC 43 | 70 44 | 2 45 | 9 46 | $SPLINESEGS 47 | 70 48 | 8 49 | 9 50 | $DIMRND 51 | 40 52 | 0.01 53 | 9 54 | $INSUNITS 55 | 70 56 | 4 57 | 9 58 | $DIMEXO 59 | 40 60 | 0.625 61 | 9 62 | $DIMLUNIT 63 | 70 64 | 2 65 | 9 66 | $GRIDMODE 67 | 70 68 | 1 69 | 9 70 | $DIMTXT 71 | 40 72 | 2.5 73 | 9 74 | $LUPREC 75 | 70 76 | 4 77 | 9 78 | $DIMSTYLE 79 | 2 80 | Standard 81 | 9 82 | $PLIMMIN 83 | 10 84 | 0.0 85 | 20 86 | 0.0 87 | 9 88 | $PLIMMAX 89 | 10 90 | 210.0 91 | 20 92 | 297.0 93 | 9 94 | $DIMEXE 95 | 40 96 | 1.25 97 | 9 98 | $DIMAUNIT 99 | 70 100 | 0 101 | 9 102 | $AUNITS 103 | 70 104 | 0 105 | 0 106 | ENDSEC 107 | 0 108 | SECTION 109 | 2 110 | TABLES 111 | 0 112 | TABLE 113 | 2 114 | VPORT 115 | 5 116 | 8 117 | 100 118 | AcDbSymbolTable 119 | 70 120 | 1 121 | 0 122 | VPORT 123 | 5 124 | 30 125 | 100 126 | AcDbSymbolTableRecord 127 | 100 128 | AcDbViewportTableRecord 129 | 2 130 | *Active 131 | 70 132 | 0 133 | 10 134 | 0.0 135 | 20 136 | 0.0 137 | 11 138 | 1.0 139 | 21 140 | 1.0 141 | 12 142 | 286.3055555555554861 143 | 22 144 | 148.5 145 | 13 146 | 0.0 147 | 23 148 | 0.0 149 | 14 150 | 10.0 151 | 24 152 | 10.0 153 | 15 154 | 10.0 155 | 25 156 | 10.0 157 | 16 158 | 0.0 159 | 26 160 | 0.0 161 | 36 162 | 1.0 163 | 17 164 | 0.0 165 | 27 166 | 0.0 167 | 37 168 | 0.0 169 | 40 170 | 297.0 171 | 41 172 | 1.92798353909465 173 | 42 174 | 50.0 175 | 43 176 | 0.0 177 | 44 178 | 0.0 179 | 50 180 | 0.0 181 | 51 182 | 0.0 183 | 71 184 | 0 185 | 72 186 | 100 187 | 73 188 | 1 189 | 74 190 | 3 191 | 75 192 | 1 193 | 76 194 | 1 195 | 77 196 | 0 197 | 78 198 | 0 199 | 281 200 | 0 201 | 65 202 | 1 203 | 110 204 | 0.0 205 | 120 206 | 0.0 207 | 130 208 | 0.0 209 | 111 210 | 1.0 211 | 121 212 | 0.0 213 | 131 214 | 0.0 215 | 112 216 | 0.0 217 | 122 218 | 1.0 219 | 132 220 | 0.0 221 | 79 222 | 0 223 | 146 224 | 0.0 225 | 0 226 | ENDTAB 227 | 0 228 | TABLE 229 | 2 230 | LTYPE 231 | 5 232 | 5 233 | 100 234 | AcDbSymbolTable 235 | 70 236 | 21 237 | 0 238 | LTYPE 239 | 5 240 | 14 241 | 100 242 | AcDbSymbolTableRecord 243 | 100 244 | AcDbLinetypeTableRecord 245 | 2 246 | ByBlock 247 | 70 248 | 0 249 | 3 250 | 251 | 72 252 | 65 253 | 73 254 | 0 255 | 40 256 | 0.0 257 | 0 258 | LTYPE 259 | 5 260 | 15 261 | 100 262 | AcDbSymbolTableRecord 263 | 100 264 | AcDbLinetypeTableRecord 265 | 2 266 | ByLayer 267 | 70 268 | 0 269 | 3 270 | 271 | 72 272 | 65 273 | 73 274 | 0 275 | 40 276 | 0.0 277 | 0 278 | LTYPE 279 | 5 280 | 16 281 | 100 282 | AcDbSymbolTableRecord 283 | 100 284 | AcDbLinetypeTableRecord 285 | 2 286 | CONTINUOUS 287 | 70 288 | 0 289 | 3 290 | Solid line 291 | 72 292 | 65 293 | 73 294 | 0 295 | 40 296 | 0.0 297 | 0 298 | LTYPE 299 | 5 300 | 31 301 | 100 302 | AcDbSymbolTableRecord 303 | 100 304 | AcDbLinetypeTableRecord 305 | 2 306 | DOT 307 | 70 308 | 0 309 | 3 310 | Dot . . . . . . . . . . . . . . . . . . . . . . 311 | 72 312 | 65 313 | 73 314 | 2 315 | 40 316 | 6.3499999999999996 317 | 49 318 | 0.0 319 | 74 320 | 0 321 | 49 322 | -6.3499999999999996 323 | 74 324 | 0 325 | 0 326 | LTYPE 327 | 5 328 | 32 329 | 100 330 | AcDbSymbolTableRecord 331 | 100 332 | AcDbLinetypeTableRecord 333 | 2 334 | DOT2 335 | 70 336 | 0 337 | 3 338 | Dot (.5x) ..................................... 339 | 72 340 | 65 341 | 73 342 | 2 343 | 40 344 | 3.1749999999999998 345 | 49 346 | 0.0 347 | 74 348 | 0 349 | 49 350 | -3.1749999999999998 351 | 74 352 | 0 353 | 0 354 | LTYPE 355 | 5 356 | 33 357 | 100 358 | AcDbSymbolTableRecord 359 | 100 360 | AcDbLinetypeTableRecord 361 | 2 362 | DOTX2 363 | 70 364 | 0 365 | 3 366 | Dot (2x) . . . . . . . . . . . . . 367 | 72 368 | 65 369 | 73 370 | 2 371 | 40 372 | 12.6999999999999993 373 | 49 374 | 0.0 375 | 74 376 | 0 377 | 49 378 | -12.6999999999999993 379 | 74 380 | 0 381 | 0 382 | LTYPE 383 | 5 384 | 34 385 | 100 386 | AcDbSymbolTableRecord 387 | 100 388 | AcDbLinetypeTableRecord 389 | 2 390 | DASHED 391 | 70 392 | 0 393 | 3 394 | Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ 395 | 72 396 | 65 397 | 73 398 | 2 399 | 40 400 | 19.0500000000000007 401 | 49 402 | 12.6999999999999993 403 | 74 404 | 0 405 | 49 406 | -6.3499999999999996 407 | 74 408 | 0 409 | 0 410 | LTYPE 411 | 5 412 | 35 413 | 100 414 | AcDbSymbolTableRecord 415 | 100 416 | AcDbLinetypeTableRecord 417 | 2 418 | DASHED2 419 | 70 420 | 0 421 | 3 422 | Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 423 | 72 424 | 65 425 | 73 426 | 2 427 | 40 428 | 9.5250000000000004 429 | 49 430 | 6.3499999999999996 431 | 74 432 | 0 433 | 49 434 | -3.1749999999999998 435 | 74 436 | 0 437 | 0 438 | LTYPE 439 | 5 440 | 36 441 | 100 442 | AcDbSymbolTableRecord 443 | 100 444 | AcDbLinetypeTableRecord 445 | 2 446 | DASHEDX2 447 | 70 448 | 0 449 | 3 450 | Dashed (2x) ____ ____ ____ ____ ____ ___ 451 | 72 452 | 65 453 | 73 454 | 2 455 | 40 456 | 38.1000000000000014 457 | 49 458 | 25.3999999999999986 459 | 74 460 | 0 461 | 49 462 | -12.6999999999999993 463 | 74 464 | 0 465 | 0 466 | LTYPE 467 | 5 468 | 37 469 | 100 470 | AcDbSymbolTableRecord 471 | 100 472 | AcDbLinetypeTableRecord 473 | 2 474 | DASHDOT 475 | 70 476 | 0 477 | 3 478 | Dash dot __ . __ . __ . __ . __ . __ . __ . __ 479 | 72 480 | 65 481 | 73 482 | 4 483 | 40 484 | 25.3999999999999986 485 | 49 486 | 12.6999999999999993 487 | 74 488 | 0 489 | 49 490 | -6.3499999999999996 491 | 74 492 | 0 493 | 49 494 | 0.0 495 | 74 496 | 0 497 | 49 498 | -6.3499999999999996 499 | 74 500 | 0 501 | 0 502 | LTYPE 503 | 5 504 | 38 505 | 100 506 | AcDbSymbolTableRecord 507 | 100 508 | AcDbLinetypeTableRecord 509 | 2 510 | DASHDOT2 511 | 70 512 | 0 513 | 3 514 | Dash dot (.5x) _._._._._._._._._._._._._._._. 515 | 72 516 | 65 517 | 73 518 | 4 519 | 40 520 | 12.6999999999999993 521 | 49 522 | 6.3499999999999996 523 | 74 524 | 0 525 | 49 526 | -3.1749999999999998 527 | 74 528 | 0 529 | 49 530 | 0.0 531 | 74 532 | 0 533 | 49 534 | -3.1749999999999998 535 | 74 536 | 0 537 | 0 538 | LTYPE 539 | 5 540 | 39 541 | 100 542 | AcDbSymbolTableRecord 543 | 100 544 | AcDbLinetypeTableRecord 545 | 2 546 | DASHDOTX2 547 | 70 548 | 0 549 | 3 550 | Dash dot (2x) ____ . ____ . ____ . ___ 551 | 72 552 | 65 553 | 73 554 | 4 555 | 40 556 | 50.7999999999999972 557 | 49 558 | 25.3999999999999986 559 | 74 560 | 0 561 | 49 562 | -12.6999999999999993 563 | 74 564 | 0 565 | 49 566 | 0.0 567 | 74 568 | 0 569 | 49 570 | -12.6999999999999993 571 | 74 572 | 0 573 | 0 574 | LTYPE 575 | 5 576 | 3A 577 | 100 578 | AcDbSymbolTableRecord 579 | 100 580 | AcDbLinetypeTableRecord 581 | 2 582 | DIVIDE 583 | 70 584 | 0 585 | 3 586 | Divide ____ . . ____ . . ____ . . ____ . . ____ 587 | 72 588 | 65 589 | 73 590 | 6 591 | 40 592 | 31.75 593 | 49 594 | 12.6999999999999993 595 | 74 596 | 0 597 | 49 598 | -6.3499999999999996 599 | 74 600 | 0 601 | 49 602 | 0.0 603 | 74 604 | 0 605 | 49 606 | -6.3499999999999996 607 | 74 608 | 0 609 | 49 610 | 0.0 611 | 74 612 | 0 613 | 49 614 | -6.3499999999999996 615 | 74 616 | 0 617 | 0 618 | LTYPE 619 | 5 620 | 3B 621 | 100 622 | AcDbSymbolTableRecord 623 | 100 624 | AcDbLinetypeTableRecord 625 | 2 626 | DIVIDE2 627 | 70 628 | 0 629 | 3 630 | Divide (.5x) __..__..__..__..__..__..__..__.._ 631 | 72 632 | 65 633 | 73 634 | 6 635 | 40 636 | 15.875 637 | 49 638 | 6.3499999999999996 639 | 74 640 | 0 641 | 49 642 | -3.1749999999999998 643 | 74 644 | 0 645 | 49 646 | 0.0 647 | 74 648 | 0 649 | 49 650 | -3.1749999999999998 651 | 74 652 | 0 653 | 49 654 | 0.0 655 | 74 656 | 0 657 | 49 658 | -3.1749999999999998 659 | 74 660 | 0 661 | 0 662 | LTYPE 663 | 5 664 | 3C 665 | 100 666 | AcDbSymbolTableRecord 667 | 100 668 | AcDbLinetypeTableRecord 669 | 2 670 | DIVIDEX2 671 | 70 672 | 0 673 | 3 674 | Divide (2x) ________ . . ________ . . _ 675 | 72 676 | 65 677 | 73 678 | 6 679 | 40 680 | 63.5 681 | 49 682 | 25.3999999999999986 683 | 74 684 | 0 685 | 49 686 | -12.6999999999999993 687 | 74 688 | 0 689 | 49 690 | 0.0 691 | 74 692 | 0 693 | 49 694 | -12.6999999999999993 695 | 74 696 | 0 697 | 49 698 | 0.0 699 | 74 700 | 0 701 | 49 702 | -12.6999999999999993 703 | 74 704 | 0 705 | 0 706 | LTYPE 707 | 5 708 | 3D 709 | 100 710 | AcDbSymbolTableRecord 711 | 100 712 | AcDbLinetypeTableRecord 713 | 2 714 | CENTER 715 | 70 716 | 0 717 | 3 718 | Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ 719 | 72 720 | 65 721 | 73 722 | 4 723 | 40 724 | 50.7999999999999972 725 | 49 726 | 31.75 727 | 74 728 | 0 729 | 49 730 | -6.3499999999999996 731 | 74 732 | 0 733 | 49 734 | 6.3499999999999996 735 | 74 736 | 0 737 | 49 738 | -6.3499999999999996 739 | 74 740 | 0 741 | 0 742 | LTYPE 743 | 5 744 | 3E 745 | 100 746 | AcDbSymbolTableRecord 747 | 100 748 | AcDbLinetypeTableRecord 749 | 2 750 | CENTER2 751 | 70 752 | 0 753 | 3 754 | Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ 755 | 72 756 | 65 757 | 73 758 | 4 759 | 40 760 | 28.5749999999999993 761 | 49 762 | 19.0500000000000007 763 | 74 764 | 0 765 | 49 766 | -3.1749999999999998 767 | 74 768 | 0 769 | 49 770 | 3.1749999999999998 771 | 74 772 | 0 773 | 49 774 | -3.1749999999999998 775 | 74 776 | 0 777 | 0 778 | LTYPE 779 | 5 780 | 3F 781 | 100 782 | AcDbSymbolTableRecord 783 | 100 784 | AcDbLinetypeTableRecord 785 | 2 786 | CENTERX2 787 | 70 788 | 0 789 | 3 790 | Center (2x) ________ __ ________ __ _____ 791 | 72 792 | 65 793 | 73 794 | 4 795 | 40 796 | 101.5999999999999943 797 | 49 798 | 63.5 799 | 74 800 | 0 801 | 49 802 | -12.6999999999999993 803 | 74 804 | 0 805 | 49 806 | 12.6999999999999993 807 | 74 808 | 0 809 | 49 810 | -12.6999999999999993 811 | 74 812 | 0 813 | 0 814 | LTYPE 815 | 5 816 | 40 817 | 100 818 | AcDbSymbolTableRecord 819 | 100 820 | AcDbLinetypeTableRecord 821 | 2 822 | BORDER 823 | 70 824 | 0 825 | 3 826 | Border __ __ . __ __ . __ __ . __ __ . __ __ . 827 | 72 828 | 65 829 | 73 830 | 6 831 | 40 832 | 44.4500000000000028 833 | 49 834 | 12.6999999999999993 835 | 74 836 | 0 837 | 49 838 | -6.3499999999999996 839 | 74 840 | 0 841 | 49 842 | 12.6999999999999993 843 | 74 844 | 0 845 | 49 846 | -6.3499999999999996 847 | 74 848 | 0 849 | 49 850 | 0.0 851 | 74 852 | 0 853 | 49 854 | -6.3499999999999996 855 | 74 856 | 0 857 | 0 858 | LTYPE 859 | 5 860 | 41 861 | 100 862 | AcDbSymbolTableRecord 863 | 100 864 | AcDbLinetypeTableRecord 865 | 2 866 | BORDER2 867 | 70 868 | 0 869 | 3 870 | Border (.5x) __.__.__.__.__.__.__.__.__.__.__. 871 | 72 872 | 65 873 | 73 874 | 6 875 | 40 876 | 22.2250000000000014 877 | 49 878 | 6.3499999999999996 879 | 74 880 | 0 881 | 49 882 | -3.1749999999999998 883 | 74 884 | 0 885 | 49 886 | 6.3499999999999996 887 | 74 888 | 0 889 | 49 890 | -3.1749999999999998 891 | 74 892 | 0 893 | 49 894 | 0.0 895 | 74 896 | 0 897 | 49 898 | -3.1749999999999998 899 | 74 900 | 0 901 | 0 902 | LTYPE 903 | 5 904 | 42 905 | 100 906 | AcDbSymbolTableRecord 907 | 100 908 | AcDbLinetypeTableRecord 909 | 2 910 | BORDERX2 911 | 70 912 | 0 913 | 3 914 | Border (2x) ____ ____ . ____ ____ . ___ 915 | 72 916 | 65 917 | 73 918 | 6 919 | 40 920 | 88.9000000000000057 921 | 49 922 | 25.3999999999999986 923 | 74 924 | 0 925 | 49 926 | -12.6999999999999993 927 | 74 928 | 0 929 | 49 930 | 25.3999999999999986 931 | 74 932 | 0 933 | 49 934 | -12.6999999999999993 935 | 74 936 | 0 937 | 49 938 | 0.0 939 | 74 940 | 0 941 | 49 942 | -12.6999999999999993 943 | 74 944 | 0 945 | 0 946 | ENDTAB 947 | 0 948 | TABLE 949 | 2 950 | LAYER 951 | 5 952 | 2 953 | 100 954 | AcDbSymbolTable 955 | 70 956 | 1 957 | 0 958 | LAYER 959 | 5 960 | 10 961 | 100 962 | AcDbSymbolTableRecord 963 | 100 964 | AcDbLayerTableRecord 965 | 2 966 | 0 967 | 70 968 | 0 969 | 62 970 | 7 971 | 6 972 | CONTINUOUS 973 | 390 974 | F 975 | 0 976 | ENDTAB 977 | 0 978 | TABLE 979 | 2 980 | STYLE 981 | 5 982 | 3 983 | 100 984 | AcDbSymbolTable 985 | 70 986 | 1 987 | 0 988 | STYLE 989 | 5 990 | 11 991 | 100 992 | AcDbSymbolTableRecord 993 | 100 994 | AcDbTextStyleTableRecord 995 | 2 996 | Standard 997 | 70 998 | 0 999 | 40 1000 | 0.0 1001 | 41 1002 | 0.75 1003 | 50 1004 | 0.0 1005 | 71 1006 | 0 1007 | 42 1008 | 2.5 1009 | 3 1010 | txt 1011 | 4 1012 | 1013 | 0 1014 | ENDTAB 1015 | 0 1016 | TABLE 1017 | 2 1018 | VIEW 1019 | 5 1020 | 6 1021 | 100 1022 | AcDbSymbolTable 1023 | 70 1024 | 0 1025 | 0 1026 | ENDTAB 1027 | 0 1028 | TABLE 1029 | 2 1030 | UCS 1031 | 5 1032 | 7 1033 | 100 1034 | AcDbSymbolTable 1035 | 70 1036 | 0 1037 | 0 1038 | ENDTAB 1039 | 0 1040 | TABLE 1041 | 2 1042 | APPID 1043 | 5 1044 | 9 1045 | 100 1046 | AcDbSymbolTable 1047 | 70 1048 | 1 1049 | 0 1050 | APPID 1051 | 5 1052 | 12 1053 | 100 1054 | AcDbSymbolTableRecord 1055 | 100 1056 | AcDbRegAppTableRecord 1057 | 2 1058 | ACAD 1059 | 70 1060 | 0 1061 | 0 1062 | ENDTAB 1063 | 0 1064 | TABLE 1065 | 2 1066 | DIMSTYLE 1067 | 5 1068 | A 1069 | 100 1070 | AcDbSymbolTable 1071 | 70 1072 | 1 1073 | 100 1074 | AcDbDimStyleTable 1075 | 71 1076 | 0 1077 | 0 1078 | DIMSTYLE 1079 | 105 1080 | 27 1081 | 100 1082 | AcDbSymbolTableRecord 1083 | 100 1084 | AcDbDimStyleTableRecord 1085 | 2 1086 | Standard 1087 | 41 1088 | 2.5 1089 | 42 1090 | 0.625 1091 | 43 1092 | 3.75 1093 | 44 1094 | 1.25 1095 | 70 1096 | 0 1097 | 73 1098 | 0 1099 | 74 1100 | 0 1101 | 77 1102 | 1 1103 | 78 1104 | 8 1105 | 140 1106 | 2.5 1107 | 141 1108 | 2.5 1109 | 143 1110 | 0.03937007874016 1111 | 147 1112 | 0.625 1113 | 171 1114 | 3 1115 | 172 1116 | 1 1117 | 271 1118 | 2 1119 | 272 1120 | 2 1121 | 274 1122 | 3 1123 | 278 1124 | 44 1125 | 283 1126 | 0 1127 | 284 1128 | 8 1129 | 340 1130 | 11 1131 | 0 1132 | ENDTAB 1133 | 0 1134 | TABLE 1135 | 2 1136 | BLOCK_RECORD 1137 | 5 1138 | 1 1139 | 100 1140 | AcDbSymbolTable 1141 | 70 1142 | 1 1143 | 0 1144 | BLOCK_RECORD 1145 | 5 1146 | 1F 1147 | 100 1148 | AcDbSymbolTableRecord 1149 | 100 1150 | AcDbBlockTableRecord 1151 | 2 1152 | *Model_Space 1153 | 340 1154 | 22 1155 | 0 1156 | BLOCK_RECORD 1157 | 5 1158 | 1B 1159 | 100 1160 | AcDbSymbolTableRecord 1161 | 100 1162 | AcDbBlockTableRecord 1163 | 2 1164 | *Paper_Space 1165 | 340 1166 | 1E 1167 | 0 1168 | BLOCK_RECORD 1169 | 5 1170 | 23 1171 | 100 1172 | AcDbSymbolTableRecord 1173 | 100 1174 | AcDbBlockTableRecord 1175 | 2 1176 | *Paper_Space0 1177 | 340 1178 | 26 1179 | 0 1180 | ENDTAB 1181 | 0 1182 | ENDSEC 1183 | 0 1184 | SECTION 1185 | 2 1186 | BLOCKS 1187 | 0 1188 | BLOCK 1189 | 5 1190 | 20 1191 | 100 1192 | AcDbEntity 1193 | 8 1194 | 0 1195 | 100 1196 | AcDbBlockBegin 1197 | 2 1198 | *Model_Space 1199 | 70 1200 | 0 1201 | 10 1202 | 0.0 1203 | 20 1204 | 0.0 1205 | 30 1206 | 0.0 1207 | 3 1208 | *Model_Space 1209 | 1 1210 | 1211 | 0 1212 | ENDBLK 1213 | 5 1214 | 21 1215 | 100 1216 | AcDbEntity 1217 | 8 1218 | 0 1219 | 100 1220 | AcDbBlockEnd 1221 | 0 1222 | BLOCK 1223 | 5 1224 | 1C 1225 | 100 1226 | AcDbEntity 1227 | 67 1228 | 1 1229 | 8 1230 | 0 1231 | 100 1232 | AcDbBlockBegin 1233 | 2 1234 | *Paper_Space 1235 | 70 1236 | 0 1237 | 10 1238 | 0.0 1239 | 20 1240 | 0.0 1241 | 30 1242 | 0.0 1243 | 3 1244 | *Paper_Space 1245 | 1 1246 | 1247 | 0 1248 | ENDBLK 1249 | 5 1250 | 1D 1251 | 100 1252 | AcDbEntity 1253 | 67 1254 | 1 1255 | 8 1256 | 0 1257 | 100 1258 | AcDbBlockEnd 1259 | 0 1260 | BLOCK 1261 | 5 1262 | 24 1263 | 100 1264 | AcDbEntity 1265 | 8 1266 | 0 1267 | 100 1268 | AcDbBlockBegin 1269 | 2 1270 | *Paper_Space0 1271 | 70 1272 | 0 1273 | 10 1274 | 0.0 1275 | 20 1276 | 0.0 1277 | 30 1278 | 0.0 1279 | 3 1280 | *Paper_Space0 1281 | 1 1282 | 1283 | 0 1284 | ENDBLK 1285 | 5 1286 | 25 1287 | 100 1288 | AcDbEntity 1289 | 8 1290 | 0 1291 | 100 1292 | AcDbBlockEnd 1293 | 0 1294 | ENDSEC 1295 | 0 1296 | SECTION 1297 | 2 1298 | ENTITIES 1299 | 0 1300 | LINE 1301 | 5 1302 | 43 1303 | 100 1304 | AcDbEntity 1305 | 100 1306 | AcDbLine 1307 | 8 1308 | 0 1309 | 62 1310 | 256 1311 | 370 1312 | -1 1313 | 6 1314 | ByLayer 1315 | 10 1316 | 0.0 1317 | 20 1318 | 0.0 1319 | 30 1320 | 0.0 1321 | 11 1322 | 0.0 1323 | 21 1324 | 6.0 1325 | 31 1326 | 0.0 1327 | 0 1328 | LINE 1329 | 5 1330 | 44 1331 | 100 1332 | AcDbEntity 1333 | 100 1334 | AcDbLine 1335 | 8 1336 | 0 1337 | 62 1338 | 256 1339 | 370 1340 | -1 1341 | 6 1342 | ByLayer 1343 | 10 1344 | 0.0 1345 | 20 1346 | 6.0 1347 | 30 1348 | 0.0 1349 | 11 1350 | 3.0 1351 | 21 1352 | 6.0 1353 | 31 1354 | 0.0 1355 | 0 1356 | LINE 1357 | 5 1358 | 45 1359 | 100 1360 | AcDbEntity 1361 | 100 1362 | AcDbLine 1363 | 8 1364 | 0 1365 | 62 1366 | 256 1367 | 370 1368 | -1 1369 | 6 1370 | ByLayer 1371 | 10 1372 | 3.0 1373 | 20 1374 | 6.0 1375 | 30 1376 | 0.0 1377 | 11 1378 | 3.0 1379 | 21 1380 | 2.0 1381 | 31 1382 | 0.0 1383 | 0 1384 | LINE 1385 | 5 1386 | 46 1387 | 100 1388 | AcDbEntity 1389 | 100 1390 | AcDbLine 1391 | 8 1392 | 0 1393 | 62 1394 | 256 1395 | 370 1396 | -1 1397 | 6 1398 | ByLayer 1399 | 10 1400 | 3.0 1401 | 20 1402 | 2.0 1403 | 30 1404 | 0.0 1405 | 11 1406 | 5.0 1407 | 21 1408 | 2.0 1409 | 31 1410 | 0.0 1411 | 0 1412 | LINE 1413 | 5 1414 | 47 1415 | 100 1416 | AcDbEntity 1417 | 100 1418 | AcDbLine 1419 | 8 1420 | 0 1421 | 62 1422 | 256 1423 | 370 1424 | -1 1425 | 6 1426 | ByLayer 1427 | 10 1428 | 5.0 1429 | 20 1430 | 2.0 1431 | 30 1432 | 0.0 1433 | 11 1434 | 7.0 1435 | 21 1436 | 0.0 1437 | 31 1438 | 0.0 1439 | 0 1440 | LINE 1441 | 5 1442 | 48 1443 | 100 1444 | AcDbEntity 1445 | 100 1446 | AcDbLine 1447 | 8 1448 | 0 1449 | 62 1450 | 256 1451 | 370 1452 | -1 1453 | 6 1454 | ByLayer 1455 | 10 1456 | 7.0 1457 | 20 1458 | 0.0 1459 | 30 1460 | 0.0 1461 | 11 1462 | 0.0 1463 | 21 1464 | 0.0 1465 | 31 1466 | 0.0 1467 | 0 1468 | ENDSEC 1469 | 0 1470 | SECTION 1471 | 2 1472 | OBJECTS 1473 | 0 1474 | DICTIONARY 1475 | 5 1476 | C 1477 | 100 1478 | AcDbDictionary 1479 | 280 1480 | 0 1481 | 281 1482 | 1 1483 | 3 1484 | ACAD_GROUP 1485 | 350 1486 | D 1487 | 3 1488 | ACAD_LAYOUT 1489 | 350 1490 | 1A 1491 | 3 1492 | ACAD_MLINESTYLE 1493 | 350 1494 | 17 1495 | 3 1496 | ACAD_PLOTSETTINGS 1497 | 350 1498 | 19 1499 | 3 1500 | ACAD_PLOTSTYLENAME 1501 | 350 1502 | E 1503 | 3 1504 | AcDbVariableDictionary 1505 | 350 1506 | 49 1507 | 0 1508 | DICTIONARY 1509 | 5 1510 | D 1511 | 100 1512 | AcDbDictionary 1513 | 280 1514 | 0 1515 | 281 1516 | 1 1517 | 0 1518 | ACDBDICTIONARYWDFLT 1519 | 5 1520 | E 1521 | 100 1522 | AcDbDictionary 1523 | 281 1524 | 1 1525 | 3 1526 | Normal 1527 | 350 1528 | F 1529 | 100 1530 | AcDbDictionaryWithDefault 1531 | 340 1532 | F 1533 | 0 1534 | ACDBPLACEHOLDER 1535 | 5 1536 | F 1537 | 0 1538 | DICTIONARY 1539 | 5 1540 | 17 1541 | 100 1542 | AcDbDictionary 1543 | 280 1544 | 0 1545 | 281 1546 | 1 1547 | 3 1548 | Standard 1549 | 350 1550 | 18 1551 | 0 1552 | MLINESTYLE 1553 | 5 1554 | 18 1555 | 100 1556 | AcDbMlineStyle 1557 | 2 1558 | STANDARD 1559 | 70 1560 | 0 1561 | 3 1562 | 1563 | 62 1564 | 256 1565 | 51 1566 | 90.0 1567 | 52 1568 | 90.0 1569 | 71 1570 | 2 1571 | 49 1572 | 0.5 1573 | 62 1574 | 256 1575 | 6 1576 | BYLAYER 1577 | 49 1578 | -0.5 1579 | 62 1580 | 256 1581 | 6 1582 | BYLAYER 1583 | 0 1584 | DICTIONARY 1585 | 5 1586 | 19 1587 | 100 1588 | AcDbDictionary 1589 | 280 1590 | 0 1591 | 281 1592 | 1 1593 | 0 1594 | DICTIONARY 1595 | 5 1596 | 1A 1597 | 100 1598 | AcDbDictionary 1599 | 281 1600 | 1 1601 | 3 1602 | Layout1 1603 | 350 1604 | 1E 1605 | 3 1606 | Layout2 1607 | 350 1608 | 26 1609 | 3 1610 | Model 1611 | 350 1612 | 22 1613 | 0 1614 | LAYOUT 1615 | 5 1616 | 1E 1617 | 100 1618 | AcDbPlotSettings 1619 | 1 1620 | 1621 | 2 1622 | C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 1623 | 4 1624 | 1625 | 6 1626 | 1627 | 40 1628 | 0.0 1629 | 41 1630 | 0.0 1631 | 42 1632 | 0.0 1633 | 43 1634 | 0.0 1635 | 44 1636 | 0.0 1637 | 45 1638 | 0.0 1639 | 46 1640 | 0.0 1641 | 47 1642 | 0.0 1643 | 48 1644 | 0.0 1645 | 49 1646 | 0.0 1647 | 140 1648 | 0.0 1649 | 141 1650 | 0.0 1651 | 142 1652 | 1.0 1653 | 143 1654 | 1.0 1655 | 70 1656 | 688 1657 | 72 1658 | 0 1659 | 73 1660 | 0 1661 | 74 1662 | 5 1663 | 7 1664 | 1665 | 75 1666 | 16 1667 | 147 1668 | 1.0 1669 | 148 1670 | 0.0 1671 | 149 1672 | 0.0 1673 | 100 1674 | AcDbLayout 1675 | 1 1676 | Layout1 1677 | 70 1678 | 1 1679 | 71 1680 | 1 1681 | 10 1682 | 0.0 1683 | 20 1684 | 0.0 1685 | 11 1686 | 420.0 1687 | 21 1688 | 297.0 1689 | 12 1690 | 0.0 1691 | 22 1692 | 0.0 1693 | 32 1694 | 0.0 1695 | 14 1696 | 100000000000000000000.0 1697 | 24 1698 | 100000000000000000000.0 1699 | 34 1700 | 100000000000000000000.0 1701 | 15 1702 | -100000000000000000000.0 1703 | 25 1704 | -100000000000000000000.0 1705 | 35 1706 | -100000000000000000000.0 1707 | 146 1708 | 0.0 1709 | 13 1710 | 0.0 1711 | 23 1712 | 0.0 1713 | 33 1714 | 0.0 1715 | 16 1716 | 1.0 1717 | 26 1718 | 0.0 1719 | 36 1720 | 0.0 1721 | 17 1722 | 0.0 1723 | 27 1724 | 1.0 1725 | 37 1726 | 0.0 1727 | 76 1728 | 0 1729 | 330 1730 | 1B 1731 | 0 1732 | LAYOUT 1733 | 5 1734 | 22 1735 | 100 1736 | AcDbPlotSettings 1737 | 1 1738 | 1739 | 2 1740 | C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 1741 | 4 1742 | 1743 | 6 1744 | 1745 | 40 1746 | 0.0 1747 | 41 1748 | 0.0 1749 | 42 1750 | 0.0 1751 | 43 1752 | 0.0 1753 | 44 1754 | 0.0 1755 | 45 1756 | 0.0 1757 | 46 1758 | 0.0 1759 | 47 1760 | 0.0 1761 | 48 1762 | 0.0 1763 | 49 1764 | 0.0 1765 | 140 1766 | 0.0 1767 | 141 1768 | 0.0 1769 | 142 1770 | 1.0 1771 | 143 1772 | 1.0 1773 | 70 1774 | 1712 1775 | 72 1776 | 0 1777 | 73 1778 | 0 1779 | 74 1780 | 0 1781 | 7 1782 | 1783 | 75 1784 | 0 1785 | 147 1786 | 1.0 1787 | 148 1788 | 0.0 1789 | 149 1790 | 0.0 1791 | 100 1792 | AcDbLayout 1793 | 1 1794 | Model 1795 | 70 1796 | 1 1797 | 71 1798 | 0 1799 | 10 1800 | 0.0 1801 | 20 1802 | 0.0 1803 | 11 1804 | 12.0 1805 | 21 1806 | 9.0 1807 | 12 1808 | 0.0 1809 | 22 1810 | 0.0 1811 | 32 1812 | 0.0 1813 | 14 1814 | 0.0 1815 | 24 1816 | 0.0 1817 | 34 1818 | 0.0 1819 | 15 1820 | 0.0 1821 | 25 1822 | 0.0 1823 | 35 1824 | 0.0 1825 | 146 1826 | 0.0 1827 | 13 1828 | 0.0 1829 | 23 1830 | 0.0 1831 | 33 1832 | 0.0 1833 | 16 1834 | 1.0 1835 | 26 1836 | 0.0 1837 | 36 1838 | 0.0 1839 | 17 1840 | 0.0 1841 | 27 1842 | 1.0 1843 | 37 1844 | 0.0 1845 | 76 1846 | 0 1847 | 330 1848 | 1F 1849 | 0 1850 | LAYOUT 1851 | 5 1852 | 26 1853 | 100 1854 | AcDbPlotSettings 1855 | 1 1856 | 1857 | 2 1858 | C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 1859 | 4 1860 | 1861 | 6 1862 | 1863 | 40 1864 | 0.0 1865 | 41 1866 | 0.0 1867 | 42 1868 | 0.0 1869 | 43 1870 | 0.0 1871 | 44 1872 | 0.0 1873 | 45 1874 | 0.0 1875 | 46 1876 | 0.0 1877 | 47 1878 | 0.0 1879 | 48 1880 | 0.0 1881 | 49 1882 | 0.0 1883 | 140 1884 | 0.0 1885 | 141 1886 | 0.0 1887 | 142 1888 | 1.0 1889 | 143 1890 | 1.0 1891 | 70 1892 | 688 1893 | 72 1894 | 0 1895 | 73 1896 | 0 1897 | 74 1898 | 5 1899 | 7 1900 | 1901 | 75 1902 | 16 1903 | 147 1904 | 1.0 1905 | 148 1906 | 0.0 1907 | 149 1908 | 0.0 1909 | 100 1910 | AcDbLayout 1911 | 1 1912 | Layout2 1913 | 70 1914 | 1 1915 | 71 1916 | 2 1917 | 10 1918 | 0.0 1919 | 20 1920 | 0.0 1921 | 11 1922 | 12.0 1923 | 21 1924 | 9.0 1925 | 12 1926 | 0.0 1927 | 22 1928 | 0.0 1929 | 32 1930 | 0.0 1931 | 14 1932 | 0.0 1933 | 24 1934 | 0.0 1935 | 34 1936 | 0.0 1937 | 15 1938 | 0.0 1939 | 25 1940 | 0.0 1941 | 35 1942 | 0.0 1943 | 146 1944 | 0.0 1945 | 13 1946 | 0.0 1947 | 23 1948 | 0.0 1949 | 33 1950 | 0.0 1951 | 16 1952 | 1.0 1953 | 26 1954 | 0.0 1955 | 36 1956 | 0.0 1957 | 17 1958 | 0.0 1959 | 27 1960 | 1.0 1961 | 37 1962 | 0.0 1963 | 76 1964 | 0 1965 | 330 1966 | 23 1967 | 0 1968 | DICTIONARY 1969 | 5 1970 | 49 1971 | 100 1972 | AcDbDictionary 1973 | 281 1974 | 1 1975 | 3 1976 | DIMASSOC 1977 | 350 1978 | 4B 1979 | 3 1980 | HIDETEXT 1981 | 350 1982 | 4A 1983 | 0 1984 | DICTIONARYVAR 1985 | 5 1986 | 4A 1987 | 100 1988 | DictionaryVariables 1989 | 280 1990 | 0 1991 | 1 1992 | 2 1993 | 0 1994 | DICTIONARYVAR 1995 | 5 1996 | 4B 1997 | 100 1998 | DictionaryVariables 1999 | 280 2000 | 0 2001 | 1 2002 | 1 2003 | 0 2004 | ENDSEC 2005 | 0 2006 | EOF 2007 | -------------------------------------------------------------------------------- /parts/futaba3003/futaba-shaft-orig.dxf: -------------------------------------------------------------------------------- 1 | 999 2 | dxflib 2.2.0.0 3 | 0 4 | SECTION 5 | 2 6 | HEADER 7 | 9 8 | $ACADVER 9 | 1 10 | AC1015 11 | 9 12 | $HANDSEED 13 | 5 14 | FFFF 15 | 9 16 | $DIMADEC 17 | 70 18 | 2 19 | 9 20 | $GRIDUNIT 21 | 10 22 | 0.001 23 | 20 24 | 0.01 25 | 9 26 | $DIMASZ 27 | 40 28 | 2.5 29 | 9 30 | $DIMALT 31 | 70 32 | 4 33 | 9 34 | $DIMGAP 35 | 40 36 | 0.625 37 | 9 38 | $LUNITS 39 | 70 40 | 2 41 | 9 42 | $AUPREC 43 | 70 44 | 2 45 | 9 46 | $SPLINESEGS 47 | 70 48 | 8 49 | 9 50 | $DIMRND 51 | 40 52 | 0.01 53 | 9 54 | $INSUNITS 55 | 70 56 | 4 57 | 9 58 | $DIMEXO 59 | 40 60 | 0.625 61 | 9 62 | $DIMLUNIT 63 | 70 64 | 2 65 | 9 66 | $GRIDMODE 67 | 70 68 | 1 69 | 9 70 | $DIMTXT 71 | 40 72 | 2.5 73 | 9 74 | $LUPREC 75 | 70 76 | 4 77 | 9 78 | $DIMSTYLE 79 | 2 80 | Standard 81 | 9 82 | $PLIMMIN 83 | 10 84 | 0.0 85 | 20 86 | 0.0 87 | 9 88 | $PLIMMAX 89 | 10 90 | 210.0 91 | 20 92 | 297.0 93 | 9 94 | $DIMEXE 95 | 40 96 | 1.25 97 | 9 98 | $DIMAUNIT 99 | 70 100 | 0 101 | 9 102 | $AUNITS 103 | 70 104 | 0 105 | 0 106 | ENDSEC 107 | 0 108 | SECTION 109 | 2 110 | TABLES 111 | 0 112 | TABLE 113 | 2 114 | VPORT 115 | 5 116 | 8 117 | 100 118 | AcDbSymbolTable 119 | 70 120 | 1 121 | 0 122 | VPORT 123 | 5 124 | 30 125 | 100 126 | AcDbSymbolTableRecord 127 | 100 128 | AcDbViewportTableRecord 129 | 2 130 | *Active 131 | 70 132 | 0 133 | 10 134 | 0.0 135 | 20 136 | 0.0 137 | 11 138 | 1.0 139 | 21 140 | 1.0 141 | 12 142 | 286.3055555555554861 143 | 22 144 | 148.5 145 | 13 146 | 0.0 147 | 23 148 | 0.0 149 | 14 150 | 10.0 151 | 24 152 | 10.0 153 | 15 154 | 10.0 155 | 25 156 | 10.0 157 | 16 158 | 0.0 159 | 26 160 | 0.0 161 | 36 162 | 1.0 163 | 17 164 | 0.0 165 | 27 166 | 0.0 167 | 37 168 | 0.0 169 | 40 170 | 297.0 171 | 41 172 | 1.92798353909465 173 | 42 174 | 50.0 175 | 43 176 | 0.0 177 | 44 178 | 0.0 179 | 50 180 | 0.0 181 | 51 182 | 0.0 183 | 71 184 | 0 185 | 72 186 | 100 187 | 73 188 | 1 189 | 74 190 | 3 191 | 75 192 | 1 193 | 76 194 | 1 195 | 77 196 | 0 197 | 78 198 | 0 199 | 281 200 | 0 201 | 65 202 | 1 203 | 110 204 | 0.0 205 | 120 206 | 0.0 207 | 130 208 | 0.0 209 | 111 210 | 1.0 211 | 121 212 | 0.0 213 | 131 214 | 0.0 215 | 112 216 | 0.0 217 | 122 218 | 1.0 219 | 132 220 | 0.0 221 | 79 222 | 0 223 | 146 224 | 0.0 225 | 0 226 | ENDTAB 227 | 0 228 | TABLE 229 | 2 230 | LTYPE 231 | 5 232 | 5 233 | 100 234 | AcDbSymbolTable 235 | 70 236 | 21 237 | 0 238 | LTYPE 239 | 5 240 | 14 241 | 100 242 | AcDbSymbolTableRecord 243 | 100 244 | AcDbLinetypeTableRecord 245 | 2 246 | ByBlock 247 | 70 248 | 0 249 | 3 250 | 251 | 72 252 | 65 253 | 73 254 | 0 255 | 40 256 | 0.0 257 | 0 258 | LTYPE 259 | 5 260 | 15 261 | 100 262 | AcDbSymbolTableRecord 263 | 100 264 | AcDbLinetypeTableRecord 265 | 2 266 | ByLayer 267 | 70 268 | 0 269 | 3 270 | 271 | 72 272 | 65 273 | 73 274 | 0 275 | 40 276 | 0.0 277 | 0 278 | LTYPE 279 | 5 280 | 16 281 | 100 282 | AcDbSymbolTableRecord 283 | 100 284 | AcDbLinetypeTableRecord 285 | 2 286 | CONTINUOUS 287 | 70 288 | 0 289 | 3 290 | Solid line 291 | 72 292 | 65 293 | 73 294 | 0 295 | 40 296 | 0.0 297 | 0 298 | LTYPE 299 | 5 300 | 31 301 | 100 302 | AcDbSymbolTableRecord 303 | 100 304 | AcDbLinetypeTableRecord 305 | 2 306 | DOT 307 | 70 308 | 0 309 | 3 310 | Dot . . . . . . . . . . . . . . . . . . . . . . 311 | 72 312 | 65 313 | 73 314 | 2 315 | 40 316 | 6.3499999999999996 317 | 49 318 | 0.0 319 | 74 320 | 0 321 | 49 322 | -6.3499999999999996 323 | 74 324 | 0 325 | 0 326 | LTYPE 327 | 5 328 | 32 329 | 100 330 | AcDbSymbolTableRecord 331 | 100 332 | AcDbLinetypeTableRecord 333 | 2 334 | DOT2 335 | 70 336 | 0 337 | 3 338 | Dot (.5x) ..................................... 339 | 72 340 | 65 341 | 73 342 | 2 343 | 40 344 | 3.1749999999999998 345 | 49 346 | 0.0 347 | 74 348 | 0 349 | 49 350 | -3.1749999999999998 351 | 74 352 | 0 353 | 0 354 | LTYPE 355 | 5 356 | 33 357 | 100 358 | AcDbSymbolTableRecord 359 | 100 360 | AcDbLinetypeTableRecord 361 | 2 362 | DOTX2 363 | 70 364 | 0 365 | 3 366 | Dot (2x) . . . . . . . . . . . . . 367 | 72 368 | 65 369 | 73 370 | 2 371 | 40 372 | 12.6999999999999993 373 | 49 374 | 0.0 375 | 74 376 | 0 377 | 49 378 | -12.6999999999999993 379 | 74 380 | 0 381 | 0 382 | LTYPE 383 | 5 384 | 34 385 | 100 386 | AcDbSymbolTableRecord 387 | 100 388 | AcDbLinetypeTableRecord 389 | 2 390 | DASHED 391 | 70 392 | 0 393 | 3 394 | Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ 395 | 72 396 | 65 397 | 73 398 | 2 399 | 40 400 | 19.0500000000000007 401 | 49 402 | 12.6999999999999993 403 | 74 404 | 0 405 | 49 406 | -6.3499999999999996 407 | 74 408 | 0 409 | 0 410 | LTYPE 411 | 5 412 | 35 413 | 100 414 | AcDbSymbolTableRecord 415 | 100 416 | AcDbLinetypeTableRecord 417 | 2 418 | DASHED2 419 | 70 420 | 0 421 | 3 422 | Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 423 | 72 424 | 65 425 | 73 426 | 2 427 | 40 428 | 9.5250000000000004 429 | 49 430 | 6.3499999999999996 431 | 74 432 | 0 433 | 49 434 | -3.1749999999999998 435 | 74 436 | 0 437 | 0 438 | LTYPE 439 | 5 440 | 36 441 | 100 442 | AcDbSymbolTableRecord 443 | 100 444 | AcDbLinetypeTableRecord 445 | 2 446 | DASHEDX2 447 | 70 448 | 0 449 | 3 450 | Dashed (2x) ____ ____ ____ ____ ____ ___ 451 | 72 452 | 65 453 | 73 454 | 2 455 | 40 456 | 38.1000000000000014 457 | 49 458 | 25.3999999999999986 459 | 74 460 | 0 461 | 49 462 | -12.6999999999999993 463 | 74 464 | 0 465 | 0 466 | LTYPE 467 | 5 468 | 37 469 | 100 470 | AcDbSymbolTableRecord 471 | 100 472 | AcDbLinetypeTableRecord 473 | 2 474 | DASHDOT 475 | 70 476 | 0 477 | 3 478 | Dash dot __ . __ . __ . __ . __ . __ . __ . __ 479 | 72 480 | 65 481 | 73 482 | 4 483 | 40 484 | 25.3999999999999986 485 | 49 486 | 12.6999999999999993 487 | 74 488 | 0 489 | 49 490 | -6.3499999999999996 491 | 74 492 | 0 493 | 49 494 | 0.0 495 | 74 496 | 0 497 | 49 498 | -6.3499999999999996 499 | 74 500 | 0 501 | 0 502 | LTYPE 503 | 5 504 | 38 505 | 100 506 | AcDbSymbolTableRecord 507 | 100 508 | AcDbLinetypeTableRecord 509 | 2 510 | DASHDOT2 511 | 70 512 | 0 513 | 3 514 | Dash dot (.5x) _._._._._._._._._._._._._._._. 515 | 72 516 | 65 517 | 73 518 | 4 519 | 40 520 | 12.6999999999999993 521 | 49 522 | 6.3499999999999996 523 | 74 524 | 0 525 | 49 526 | -3.1749999999999998 527 | 74 528 | 0 529 | 49 530 | 0.0 531 | 74 532 | 0 533 | 49 534 | -3.1749999999999998 535 | 74 536 | 0 537 | 0 538 | LTYPE 539 | 5 540 | 39 541 | 100 542 | AcDbSymbolTableRecord 543 | 100 544 | AcDbLinetypeTableRecord 545 | 2 546 | DASHDOTX2 547 | 70 548 | 0 549 | 3 550 | Dash dot (2x) ____ . ____ . ____ . ___ 551 | 72 552 | 65 553 | 73 554 | 4 555 | 40 556 | 50.7999999999999972 557 | 49 558 | 25.3999999999999986 559 | 74 560 | 0 561 | 49 562 | -12.6999999999999993 563 | 74 564 | 0 565 | 49 566 | 0.0 567 | 74 568 | 0 569 | 49 570 | -12.6999999999999993 571 | 74 572 | 0 573 | 0 574 | LTYPE 575 | 5 576 | 3A 577 | 100 578 | AcDbSymbolTableRecord 579 | 100 580 | AcDbLinetypeTableRecord 581 | 2 582 | DIVIDE 583 | 70 584 | 0 585 | 3 586 | Divide ____ . . ____ . . ____ . . ____ . . ____ 587 | 72 588 | 65 589 | 73 590 | 6 591 | 40 592 | 31.75 593 | 49 594 | 12.6999999999999993 595 | 74 596 | 0 597 | 49 598 | -6.3499999999999996 599 | 74 600 | 0 601 | 49 602 | 0.0 603 | 74 604 | 0 605 | 49 606 | -6.3499999999999996 607 | 74 608 | 0 609 | 49 610 | 0.0 611 | 74 612 | 0 613 | 49 614 | -6.3499999999999996 615 | 74 616 | 0 617 | 0 618 | LTYPE 619 | 5 620 | 3B 621 | 100 622 | AcDbSymbolTableRecord 623 | 100 624 | AcDbLinetypeTableRecord 625 | 2 626 | DIVIDE2 627 | 70 628 | 0 629 | 3 630 | Divide (.5x) __..__..__..__..__..__..__..__.._ 631 | 72 632 | 65 633 | 73 634 | 6 635 | 40 636 | 15.875 637 | 49 638 | 6.3499999999999996 639 | 74 640 | 0 641 | 49 642 | -3.1749999999999998 643 | 74 644 | 0 645 | 49 646 | 0.0 647 | 74 648 | 0 649 | 49 650 | -3.1749999999999998 651 | 74 652 | 0 653 | 49 654 | 0.0 655 | 74 656 | 0 657 | 49 658 | -3.1749999999999998 659 | 74 660 | 0 661 | 0 662 | LTYPE 663 | 5 664 | 3C 665 | 100 666 | AcDbSymbolTableRecord 667 | 100 668 | AcDbLinetypeTableRecord 669 | 2 670 | DIVIDEX2 671 | 70 672 | 0 673 | 3 674 | Divide (2x) ________ . . ________ . . _ 675 | 72 676 | 65 677 | 73 678 | 6 679 | 40 680 | 63.5 681 | 49 682 | 25.3999999999999986 683 | 74 684 | 0 685 | 49 686 | -12.6999999999999993 687 | 74 688 | 0 689 | 49 690 | 0.0 691 | 74 692 | 0 693 | 49 694 | -12.6999999999999993 695 | 74 696 | 0 697 | 49 698 | 0.0 699 | 74 700 | 0 701 | 49 702 | -12.6999999999999993 703 | 74 704 | 0 705 | 0 706 | LTYPE 707 | 5 708 | 3D 709 | 100 710 | AcDbSymbolTableRecord 711 | 100 712 | AcDbLinetypeTableRecord 713 | 2 714 | CENTER 715 | 70 716 | 0 717 | 3 718 | Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ 719 | 72 720 | 65 721 | 73 722 | 4 723 | 40 724 | 50.7999999999999972 725 | 49 726 | 31.75 727 | 74 728 | 0 729 | 49 730 | -6.3499999999999996 731 | 74 732 | 0 733 | 49 734 | 6.3499999999999996 735 | 74 736 | 0 737 | 49 738 | -6.3499999999999996 739 | 74 740 | 0 741 | 0 742 | LTYPE 743 | 5 744 | 3E 745 | 100 746 | AcDbSymbolTableRecord 747 | 100 748 | AcDbLinetypeTableRecord 749 | 2 750 | CENTER2 751 | 70 752 | 0 753 | 3 754 | Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ 755 | 72 756 | 65 757 | 73 758 | 4 759 | 40 760 | 28.5749999999999993 761 | 49 762 | 19.0500000000000007 763 | 74 764 | 0 765 | 49 766 | -3.1749999999999998 767 | 74 768 | 0 769 | 49 770 | 3.1749999999999998 771 | 74 772 | 0 773 | 49 774 | -3.1749999999999998 775 | 74 776 | 0 777 | 0 778 | LTYPE 779 | 5 780 | 3F 781 | 100 782 | AcDbSymbolTableRecord 783 | 100 784 | AcDbLinetypeTableRecord 785 | 2 786 | CENTERX2 787 | 70 788 | 0 789 | 3 790 | Center (2x) ________ __ ________ __ _____ 791 | 72 792 | 65 793 | 73 794 | 4 795 | 40 796 | 101.5999999999999943 797 | 49 798 | 63.5 799 | 74 800 | 0 801 | 49 802 | -12.6999999999999993 803 | 74 804 | 0 805 | 49 806 | 12.6999999999999993 807 | 74 808 | 0 809 | 49 810 | -12.6999999999999993 811 | 74 812 | 0 813 | 0 814 | LTYPE 815 | 5 816 | 40 817 | 100 818 | AcDbSymbolTableRecord 819 | 100 820 | AcDbLinetypeTableRecord 821 | 2 822 | BORDER 823 | 70 824 | 0 825 | 3 826 | Border __ __ . __ __ . __ __ . __ __ . __ __ . 827 | 72 828 | 65 829 | 73 830 | 6 831 | 40 832 | 44.4500000000000028 833 | 49 834 | 12.6999999999999993 835 | 74 836 | 0 837 | 49 838 | -6.3499999999999996 839 | 74 840 | 0 841 | 49 842 | 12.6999999999999993 843 | 74 844 | 0 845 | 49 846 | -6.3499999999999996 847 | 74 848 | 0 849 | 49 850 | 0.0 851 | 74 852 | 0 853 | 49 854 | -6.3499999999999996 855 | 74 856 | 0 857 | 0 858 | LTYPE 859 | 5 860 | 41 861 | 100 862 | AcDbSymbolTableRecord 863 | 100 864 | AcDbLinetypeTableRecord 865 | 2 866 | BORDER2 867 | 70 868 | 0 869 | 3 870 | Border (.5x) __.__.__.__.__.__.__.__.__.__.__. 871 | 72 872 | 65 873 | 73 874 | 6 875 | 40 876 | 22.2250000000000014 877 | 49 878 | 6.3499999999999996 879 | 74 880 | 0 881 | 49 882 | -3.1749999999999998 883 | 74 884 | 0 885 | 49 886 | 6.3499999999999996 887 | 74 888 | 0 889 | 49 890 | -3.1749999999999998 891 | 74 892 | 0 893 | 49 894 | 0.0 895 | 74 896 | 0 897 | 49 898 | -3.1749999999999998 899 | 74 900 | 0 901 | 0 902 | LTYPE 903 | 5 904 | 42 905 | 100 906 | AcDbSymbolTableRecord 907 | 100 908 | AcDbLinetypeTableRecord 909 | 2 910 | BORDERX2 911 | 70 912 | 0 913 | 3 914 | Border (2x) ____ ____ . ____ ____ . ___ 915 | 72 916 | 65 917 | 73 918 | 6 919 | 40 920 | 88.9000000000000057 921 | 49 922 | 25.3999999999999986 923 | 74 924 | 0 925 | 49 926 | -12.6999999999999993 927 | 74 928 | 0 929 | 49 930 | 25.3999999999999986 931 | 74 932 | 0 933 | 49 934 | -12.6999999999999993 935 | 74 936 | 0 937 | 49 938 | 0.0 939 | 74 940 | 0 941 | 49 942 | -12.6999999999999993 943 | 74 944 | 0 945 | 0 946 | ENDTAB 947 | 0 948 | TABLE 949 | 2 950 | LAYER 951 | 5 952 | 2 953 | 100 954 | AcDbSymbolTable 955 | 70 956 | 1 957 | 0 958 | LAYER 959 | 5 960 | 10 961 | 100 962 | AcDbSymbolTableRecord 963 | 100 964 | AcDbLayerTableRecord 965 | 2 966 | 0 967 | 70 968 | 0 969 | 62 970 | 7 971 | 6 972 | CONTINUOUS 973 | 390 974 | F 975 | 0 976 | ENDTAB 977 | 0 978 | TABLE 979 | 2 980 | STYLE 981 | 5 982 | 3 983 | 100 984 | AcDbSymbolTable 985 | 70 986 | 1 987 | 0 988 | STYLE 989 | 5 990 | 11 991 | 100 992 | AcDbSymbolTableRecord 993 | 100 994 | AcDbTextStyleTableRecord 995 | 2 996 | Standard 997 | 70 998 | 0 999 | 40 1000 | 0.0 1001 | 41 1002 | 0.75 1003 | 50 1004 | 0.0 1005 | 71 1006 | 0 1007 | 42 1008 | 2.5 1009 | 3 1010 | txt 1011 | 4 1012 | 1013 | 0 1014 | ENDTAB 1015 | 0 1016 | TABLE 1017 | 2 1018 | VIEW 1019 | 5 1020 | 6 1021 | 100 1022 | AcDbSymbolTable 1023 | 70 1024 | 0 1025 | 0 1026 | ENDTAB 1027 | 0 1028 | TABLE 1029 | 2 1030 | UCS 1031 | 5 1032 | 7 1033 | 100 1034 | AcDbSymbolTable 1035 | 70 1036 | 0 1037 | 0 1038 | ENDTAB 1039 | 0 1040 | TABLE 1041 | 2 1042 | APPID 1043 | 5 1044 | 9 1045 | 100 1046 | AcDbSymbolTable 1047 | 70 1048 | 1 1049 | 0 1050 | APPID 1051 | 5 1052 | 12 1053 | 100 1054 | AcDbSymbolTableRecord 1055 | 100 1056 | AcDbRegAppTableRecord 1057 | 2 1058 | ACAD 1059 | 70 1060 | 0 1061 | 0 1062 | ENDTAB 1063 | 0 1064 | TABLE 1065 | 2 1066 | DIMSTYLE 1067 | 5 1068 | A 1069 | 100 1070 | AcDbSymbolTable 1071 | 70 1072 | 1 1073 | 100 1074 | AcDbDimStyleTable 1075 | 71 1076 | 0 1077 | 0 1078 | DIMSTYLE 1079 | 105 1080 | 27 1081 | 100 1082 | AcDbSymbolTableRecord 1083 | 100 1084 | AcDbDimStyleTableRecord 1085 | 2 1086 | Standard 1087 | 41 1088 | 2.5 1089 | 42 1090 | 0.625 1091 | 43 1092 | 3.75 1093 | 44 1094 | 1.25 1095 | 70 1096 | 0 1097 | 73 1098 | 0 1099 | 74 1100 | 0 1101 | 77 1102 | 1 1103 | 78 1104 | 8 1105 | 140 1106 | 2.5 1107 | 141 1108 | 2.5 1109 | 143 1110 | 0.03937007874016 1111 | 147 1112 | 0.625 1113 | 171 1114 | 3 1115 | 172 1116 | 1 1117 | 271 1118 | 2 1119 | 272 1120 | 2 1121 | 274 1122 | 3 1123 | 278 1124 | 44 1125 | 283 1126 | 0 1127 | 284 1128 | 8 1129 | 340 1130 | 11 1131 | 0 1132 | ENDTAB 1133 | 0 1134 | TABLE 1135 | 2 1136 | BLOCK_RECORD 1137 | 5 1138 | 1 1139 | 100 1140 | AcDbSymbolTable 1141 | 70 1142 | 1 1143 | 0 1144 | BLOCK_RECORD 1145 | 5 1146 | 1F 1147 | 100 1148 | AcDbSymbolTableRecord 1149 | 100 1150 | AcDbBlockTableRecord 1151 | 2 1152 | *Model_Space 1153 | 340 1154 | 22 1155 | 0 1156 | BLOCK_RECORD 1157 | 5 1158 | 1B 1159 | 100 1160 | AcDbSymbolTableRecord 1161 | 100 1162 | AcDbBlockTableRecord 1163 | 2 1164 | *Paper_Space 1165 | 340 1166 | 1E 1167 | 0 1168 | BLOCK_RECORD 1169 | 5 1170 | 23 1171 | 100 1172 | AcDbSymbolTableRecord 1173 | 100 1174 | AcDbBlockTableRecord 1175 | 2 1176 | *Paper_Space0 1177 | 340 1178 | 26 1179 | 0 1180 | ENDTAB 1181 | 0 1182 | ENDSEC 1183 | 0 1184 | SECTION 1185 | 2 1186 | BLOCKS 1187 | 0 1188 | BLOCK 1189 | 5 1190 | 20 1191 | 100 1192 | AcDbEntity 1193 | 8 1194 | 0 1195 | 100 1196 | AcDbBlockBegin 1197 | 2 1198 | *Model_Space 1199 | 70 1200 | 0 1201 | 10 1202 | 0.0 1203 | 20 1204 | 0.0 1205 | 30 1206 | 0.0 1207 | 3 1208 | *Model_Space 1209 | 1 1210 | 1211 | 0 1212 | ENDBLK 1213 | 5 1214 | 21 1215 | 100 1216 | AcDbEntity 1217 | 8 1218 | 0 1219 | 100 1220 | AcDbBlockEnd 1221 | 0 1222 | BLOCK 1223 | 5 1224 | 1C 1225 | 100 1226 | AcDbEntity 1227 | 67 1228 | 1 1229 | 8 1230 | 0 1231 | 100 1232 | AcDbBlockBegin 1233 | 2 1234 | *Paper_Space 1235 | 70 1236 | 0 1237 | 10 1238 | 0.0 1239 | 20 1240 | 0.0 1241 | 30 1242 | 0.0 1243 | 3 1244 | *Paper_Space 1245 | 1 1246 | 1247 | 0 1248 | ENDBLK 1249 | 5 1250 | 1D 1251 | 100 1252 | AcDbEntity 1253 | 67 1254 | 1 1255 | 8 1256 | 0 1257 | 100 1258 | AcDbBlockEnd 1259 | 0 1260 | BLOCK 1261 | 5 1262 | 24 1263 | 100 1264 | AcDbEntity 1265 | 8 1266 | 0 1267 | 100 1268 | AcDbBlockBegin 1269 | 2 1270 | *Paper_Space0 1271 | 70 1272 | 0 1273 | 10 1274 | 0.0 1275 | 20 1276 | 0.0 1277 | 30 1278 | 0.0 1279 | 3 1280 | *Paper_Space0 1281 | 1 1282 | 1283 | 0 1284 | ENDBLK 1285 | 5 1286 | 25 1287 | 100 1288 | AcDbEntity 1289 | 8 1290 | 0 1291 | 100 1292 | AcDbBlockEnd 1293 | 0 1294 | ENDSEC 1295 | 0 1296 | SECTION 1297 | 2 1298 | ENTITIES 1299 | 0 1300 | LINE 1301 | 5 1302 | 43 1303 | 100 1304 | AcDbEntity 1305 | 100 1306 | AcDbLine 1307 | 8 1308 | 0 1309 | 62 1310 | 256 1311 | 370 1312 | -1 1313 | 6 1314 | ByLayer 1315 | 10 1316 | 0.0 1317 | 20 1318 | 0.0 1319 | 30 1320 | 0.0 1321 | 11 1322 | 0.0 1323 | 21 1324 | 6.0 1325 | 31 1326 | 0.0 1327 | 0 1328 | LINE 1329 | 5 1330 | 44 1331 | 100 1332 | AcDbEntity 1333 | 100 1334 | AcDbLine 1335 | 8 1336 | 0 1337 | 62 1338 | 256 1339 | 370 1340 | -1 1341 | 6 1342 | ByLayer 1343 | 10 1344 | 0.0 1345 | 20 1346 | 6.0 1347 | 30 1348 | 0.0 1349 | 11 1350 | 3.0 1351 | 21 1352 | 6.0 1353 | 31 1354 | 0.0 1355 | 0 1356 | LINE 1357 | 5 1358 | 45 1359 | 100 1360 | AcDbEntity 1361 | 100 1362 | AcDbLine 1363 | 8 1364 | 0 1365 | 62 1366 | 256 1367 | 370 1368 | -1 1369 | 6 1370 | ByLayer 1371 | 10 1372 | 3.0 1373 | 20 1374 | 6.0 1375 | 30 1376 | 0.0 1377 | 11 1378 | 3.0 1379 | 21 1380 | 2.0 1381 | 31 1382 | 0.0 1383 | 0 1384 | LINE 1385 | 5 1386 | 46 1387 | 100 1388 | AcDbEntity 1389 | 100 1390 | AcDbLine 1391 | 8 1392 | 0 1393 | 62 1394 | 256 1395 | 370 1396 | -1 1397 | 6 1398 | ByLayer 1399 | 10 1400 | 3.0 1401 | 20 1402 | 2.0 1403 | 30 1404 | 0.0 1405 | 11 1406 | 5.0 1407 | 21 1408 | 2.0 1409 | 31 1410 | 0.0 1411 | 0 1412 | LINE 1413 | 5 1414 | 47 1415 | 100 1416 | AcDbEntity 1417 | 100 1418 | AcDbLine 1419 | 8 1420 | 0 1421 | 62 1422 | 256 1423 | 370 1424 | -1 1425 | 6 1426 | ByLayer 1427 | 10 1428 | 5.0 1429 | 20 1430 | 2.0 1431 | 30 1432 | 0.0 1433 | 11 1434 | 7.0 1435 | 21 1436 | 0.0 1437 | 31 1438 | 0.0 1439 | 0 1440 | LINE 1441 | 5 1442 | 48 1443 | 100 1444 | AcDbEntity 1445 | 100 1446 | AcDbLine 1447 | 8 1448 | 0 1449 | 62 1450 | 256 1451 | 370 1452 | -1 1453 | 6 1454 | ByLayer 1455 | 10 1456 | 7.0 1457 | 20 1458 | 0.0 1459 | 30 1460 | 0.0 1461 | 11 1462 | 0.0 1463 | 21 1464 | 0.0 1465 | 31 1466 | 0.0 1467 | 0 1468 | ENDSEC 1469 | 0 1470 | SECTION 1471 | 2 1472 | OBJECTS 1473 | 0 1474 | DICTIONARY 1475 | 5 1476 | C 1477 | 100 1478 | AcDbDictionary 1479 | 280 1480 | 0 1481 | 281 1482 | 1 1483 | 3 1484 | ACAD_GROUP 1485 | 350 1486 | D 1487 | 3 1488 | ACAD_LAYOUT 1489 | 350 1490 | 1A 1491 | 3 1492 | ACAD_MLINESTYLE 1493 | 350 1494 | 17 1495 | 3 1496 | ACAD_PLOTSETTINGS 1497 | 350 1498 | 19 1499 | 3 1500 | ACAD_PLOTSTYLENAME 1501 | 350 1502 | E 1503 | 3 1504 | AcDbVariableDictionary 1505 | 350 1506 | 49 1507 | 0 1508 | DICTIONARY 1509 | 5 1510 | D 1511 | 100 1512 | AcDbDictionary 1513 | 280 1514 | 0 1515 | 281 1516 | 1 1517 | 0 1518 | ACDBDICTIONARYWDFLT 1519 | 5 1520 | E 1521 | 100 1522 | AcDbDictionary 1523 | 281 1524 | 1 1525 | 3 1526 | Normal 1527 | 350 1528 | F 1529 | 100 1530 | AcDbDictionaryWithDefault 1531 | 340 1532 | F 1533 | 0 1534 | ACDBPLACEHOLDER 1535 | 5 1536 | F 1537 | 0 1538 | DICTIONARY 1539 | 5 1540 | 17 1541 | 100 1542 | AcDbDictionary 1543 | 280 1544 | 0 1545 | 281 1546 | 1 1547 | 3 1548 | Standard 1549 | 350 1550 | 18 1551 | 0 1552 | MLINESTYLE 1553 | 5 1554 | 18 1555 | 100 1556 | AcDbMlineStyle 1557 | 2 1558 | STANDARD 1559 | 70 1560 | 0 1561 | 3 1562 | 1563 | 62 1564 | 256 1565 | 51 1566 | 90.0 1567 | 52 1568 | 90.0 1569 | 71 1570 | 2 1571 | 49 1572 | 0.5 1573 | 62 1574 | 256 1575 | 6 1576 | BYLAYER 1577 | 49 1578 | -0.5 1579 | 62 1580 | 256 1581 | 6 1582 | BYLAYER 1583 | 0 1584 | DICTIONARY 1585 | 5 1586 | 19 1587 | 100 1588 | AcDbDictionary 1589 | 280 1590 | 0 1591 | 281 1592 | 1 1593 | 0 1594 | DICTIONARY 1595 | 5 1596 | 1A 1597 | 100 1598 | AcDbDictionary 1599 | 281 1600 | 1 1601 | 3 1602 | Layout1 1603 | 350 1604 | 1E 1605 | 3 1606 | Layout2 1607 | 350 1608 | 26 1609 | 3 1610 | Model 1611 | 350 1612 | 22 1613 | 0 1614 | LAYOUT 1615 | 5 1616 | 1E 1617 | 100 1618 | AcDbPlotSettings 1619 | 1 1620 | 1621 | 2 1622 | C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 1623 | 4 1624 | 1625 | 6 1626 | 1627 | 40 1628 | 0.0 1629 | 41 1630 | 0.0 1631 | 42 1632 | 0.0 1633 | 43 1634 | 0.0 1635 | 44 1636 | 0.0 1637 | 45 1638 | 0.0 1639 | 46 1640 | 0.0 1641 | 47 1642 | 0.0 1643 | 48 1644 | 0.0 1645 | 49 1646 | 0.0 1647 | 140 1648 | 0.0 1649 | 141 1650 | 0.0 1651 | 142 1652 | 1.0 1653 | 143 1654 | 1.0 1655 | 70 1656 | 688 1657 | 72 1658 | 0 1659 | 73 1660 | 0 1661 | 74 1662 | 5 1663 | 7 1664 | 1665 | 75 1666 | 16 1667 | 147 1668 | 1.0 1669 | 148 1670 | 0.0 1671 | 149 1672 | 0.0 1673 | 100 1674 | AcDbLayout 1675 | 1 1676 | Layout1 1677 | 70 1678 | 1 1679 | 71 1680 | 1 1681 | 10 1682 | 0.0 1683 | 20 1684 | 0.0 1685 | 11 1686 | 420.0 1687 | 21 1688 | 297.0 1689 | 12 1690 | 0.0 1691 | 22 1692 | 0.0 1693 | 32 1694 | 0.0 1695 | 14 1696 | 100000000000000000000.0 1697 | 24 1698 | 100000000000000000000.0 1699 | 34 1700 | 100000000000000000000.0 1701 | 15 1702 | -100000000000000000000.0 1703 | 25 1704 | -100000000000000000000.0 1705 | 35 1706 | -100000000000000000000.0 1707 | 146 1708 | 0.0 1709 | 13 1710 | 0.0 1711 | 23 1712 | 0.0 1713 | 33 1714 | 0.0 1715 | 16 1716 | 1.0 1717 | 26 1718 | 0.0 1719 | 36 1720 | 0.0 1721 | 17 1722 | 0.0 1723 | 27 1724 | 1.0 1725 | 37 1726 | 0.0 1727 | 76 1728 | 0 1729 | 330 1730 | 1B 1731 | 0 1732 | LAYOUT 1733 | 5 1734 | 22 1735 | 100 1736 | AcDbPlotSettings 1737 | 1 1738 | 1739 | 2 1740 | C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 1741 | 4 1742 | 1743 | 6 1744 | 1745 | 40 1746 | 0.0 1747 | 41 1748 | 0.0 1749 | 42 1750 | 0.0 1751 | 43 1752 | 0.0 1753 | 44 1754 | 0.0 1755 | 45 1756 | 0.0 1757 | 46 1758 | 0.0 1759 | 47 1760 | 0.0 1761 | 48 1762 | 0.0 1763 | 49 1764 | 0.0 1765 | 140 1766 | 0.0 1767 | 141 1768 | 0.0 1769 | 142 1770 | 1.0 1771 | 143 1772 | 1.0 1773 | 70 1774 | 1712 1775 | 72 1776 | 0 1777 | 73 1778 | 0 1779 | 74 1780 | 0 1781 | 7 1782 | 1783 | 75 1784 | 0 1785 | 147 1786 | 1.0 1787 | 148 1788 | 0.0 1789 | 149 1790 | 0.0 1791 | 100 1792 | AcDbLayout 1793 | 1 1794 | Model 1795 | 70 1796 | 1 1797 | 71 1798 | 0 1799 | 10 1800 | 0.0 1801 | 20 1802 | 0.0 1803 | 11 1804 | 12.0 1805 | 21 1806 | 9.0 1807 | 12 1808 | 0.0 1809 | 22 1810 | 0.0 1811 | 32 1812 | 0.0 1813 | 14 1814 | 0.0 1815 | 24 1816 | 0.0 1817 | 34 1818 | 0.0 1819 | 15 1820 | 0.0 1821 | 25 1822 | 0.0 1823 | 35 1824 | 0.0 1825 | 146 1826 | 0.0 1827 | 13 1828 | 0.0 1829 | 23 1830 | 0.0 1831 | 33 1832 | 0.0 1833 | 16 1834 | 1.0 1835 | 26 1836 | 0.0 1837 | 36 1838 | 0.0 1839 | 17 1840 | 0.0 1841 | 27 1842 | 1.0 1843 | 37 1844 | 0.0 1845 | 76 1846 | 0 1847 | 330 1848 | 1F 1849 | 0 1850 | LAYOUT 1851 | 5 1852 | 26 1853 | 100 1854 | AcDbPlotSettings 1855 | 1 1856 | 1857 | 2 1858 | C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 1859 | 4 1860 | 1861 | 6 1862 | 1863 | 40 1864 | 0.0 1865 | 41 1866 | 0.0 1867 | 42 1868 | 0.0 1869 | 43 1870 | 0.0 1871 | 44 1872 | 0.0 1873 | 45 1874 | 0.0 1875 | 46 1876 | 0.0 1877 | 47 1878 | 0.0 1879 | 48 1880 | 0.0 1881 | 49 1882 | 0.0 1883 | 140 1884 | 0.0 1885 | 141 1886 | 0.0 1887 | 142 1888 | 1.0 1889 | 143 1890 | 1.0 1891 | 70 1892 | 688 1893 | 72 1894 | 0 1895 | 73 1896 | 0 1897 | 74 1898 | 5 1899 | 7 1900 | 1901 | 75 1902 | 16 1903 | 147 1904 | 1.0 1905 | 148 1906 | 0.0 1907 | 149 1908 | 0.0 1909 | 100 1910 | AcDbLayout 1911 | 1 1912 | Layout2 1913 | 70 1914 | 1 1915 | 71 1916 | 2 1917 | 10 1918 | 0.0 1919 | 20 1920 | 0.0 1921 | 11 1922 | 12.0 1923 | 21 1924 | 9.0 1925 | 12 1926 | 0.0 1927 | 22 1928 | 0.0 1929 | 32 1930 | 0.0 1931 | 14 1932 | 0.0 1933 | 24 1934 | 0.0 1935 | 34 1936 | 0.0 1937 | 15 1938 | 0.0 1939 | 25 1940 | 0.0 1941 | 35 1942 | 0.0 1943 | 146 1944 | 0.0 1945 | 13 1946 | 0.0 1947 | 23 1948 | 0.0 1949 | 33 1950 | 0.0 1951 | 16 1952 | 1.0 1953 | 26 1954 | 0.0 1955 | 36 1956 | 0.0 1957 | 17 1958 | 0.0 1959 | 27 1960 | 1.0 1961 | 37 1962 | 0.0 1963 | 76 1964 | 0 1965 | 330 1966 | 23 1967 | 0 1968 | DICTIONARY 1969 | 5 1970 | 49 1971 | 100 1972 | AcDbDictionary 1973 | 281 1974 | 1 1975 | 3 1976 | DIMASSOC 1977 | 350 1978 | 4B 1979 | 3 1980 | HIDETEXT 1981 | 350 1982 | 4A 1983 | 0 1984 | DICTIONARYVAR 1985 | 5 1986 | 4A 1987 | 100 1988 | DictionaryVariables 1989 | 280 1990 | 0 1991 | 1 1992 | 2 1993 | 0 1994 | DICTIONARYVAR 1995 | 5 1996 | 4B 1997 | 100 1998 | DictionaryVariables 1999 | 280 2000 | 0 2001 | 1 2002 | 1 2003 | 0 2004 | ENDSEC 2005 | 0 2006 | EOF 2007 | -------------------------------------------------------------------------------- /parts/futaba3003/futaba-top.dxf: -------------------------------------------------------------------------------- 1 | 999 2 | dxflib 2.0.4.8 3 | 0 4 | SECTION 5 | 2 6 | HEADER 7 | 9 8 | $ACADVER 9 | 1 10 | AC1015 11 | 9 12 | $HANDSEED 13 | 5 14 | FFFF 15 | 9 16 | $DIMADEC 17 | 70 18 | 2 19 | 9 20 | $GRIDUNIT 21 | 10 22 | 0.001 23 | 20 24 | 0.01 25 | 9 26 | $DIMASZ 27 | 40 28 | 2.5 29 | 9 30 | $DIMALT 31 | 70 32 | 4 33 | 9 34 | $DIMGAP 35 | 40 36 | 0.625 37 | 9 38 | $LUNITS 39 | 70 40 | 2 41 | 9 42 | $AUPREC 43 | 70 44 | 2 45 | 9 46 | $SPLINESEGS 47 | 70 48 | 8 49 | 9 50 | $DIMRND 51 | 40 52 | 0.01 53 | 9 54 | $INSUNITS 55 | 70 56 | 4 57 | 9 58 | $DIMEXO 59 | 40 60 | 0.625 61 | 9 62 | $DIMLUNIT 63 | 70 64 | 2 65 | 9 66 | $GRIDMODE 67 | 70 68 | 1 69 | 9 70 | $DIMTXT 71 | 40 72 | 2.5 73 | 9 74 | $LUPREC 75 | 70 76 | 4 77 | 9 78 | $DIMSTYLE 79 | 2 80 | Standard 81 | 9 82 | $PLIMMIN 83 | 10 84 | 0.0 85 | 20 86 | 0.0 87 | 9 88 | $PLIMMAX 89 | 10 90 | 210.0 91 | 20 92 | 297.0 93 | 9 94 | $DIMEXE 95 | 40 96 | 1.25 97 | 9 98 | $DIMAUNIT 99 | 70 100 | 0 101 | 9 102 | $AUNITS 103 | 70 104 | 0 105 | 0 106 | ENDSEC 107 | 0 108 | SECTION 109 | 2 110 | TABLES 111 | 0 112 | TABLE 113 | 2 114 | VPORT 115 | 5 116 | 8 117 | 100 118 | AcDbSymbolTable 119 | 70 120 | 1 121 | 0 122 | VPORT 123 | 5 124 | 30 125 | 100 126 | AcDbSymbolTableRecord 127 | 100 128 | AcDbViewportTableRecord 129 | 2 130 | *Active 131 | 70 132 | 0 133 | 10 134 | 0.0 135 | 20 136 | 0.0 137 | 11 138 | 1.0 139 | 21 140 | 1.0 141 | 12 142 | 286.3055555555554861 143 | 22 144 | 148.5 145 | 13 146 | 0.0 147 | 23 148 | 0.0 149 | 14 150 | 10.0 151 | 24 152 | 10.0 153 | 15 154 | 10.0 155 | 25 156 | 10.0 157 | 16 158 | 0.0 159 | 26 160 | 0.0 161 | 36 162 | 1.0 163 | 17 164 | 0.0 165 | 27 166 | 0.0 167 | 37 168 | 0.0 169 | 40 170 | 297.0 171 | 41 172 | 1.92798353909465 173 | 42 174 | 50.0 175 | 43 176 | 0.0 177 | 44 178 | 0.0 179 | 50 180 | 0.0 181 | 51 182 | 0.0 183 | 71 184 | 0 185 | 72 186 | 100 187 | 73 188 | 1 189 | 74 190 | 3 191 | 75 192 | 1 193 | 76 194 | 1 195 | 77 196 | 0 197 | 78 198 | 0 199 | 281 200 | 0 201 | 65 202 | 1 203 | 110 204 | 0.0 205 | 120 206 | 0.0 207 | 130 208 | 0.0 209 | 111 210 | 1.0 211 | 121 212 | 0.0 213 | 131 214 | 0.0 215 | 112 216 | 0.0 217 | 122 218 | 1.0 219 | 132 220 | 0.0 221 | 79 222 | 0 223 | 146 224 | 0.0 225 | 0 226 | ENDTAB 227 | 0 228 | TABLE 229 | 2 230 | LTYPE 231 | 5 232 | 5 233 | 100 234 | AcDbSymbolTable 235 | 70 236 | 21 237 | 0 238 | LTYPE 239 | 5 240 | 14 241 | 100 242 | AcDbSymbolTableRecord 243 | 100 244 | AcDbLinetypeTableRecord 245 | 2 246 | ByBlock 247 | 70 248 | 0 249 | 3 250 | 251 | 72 252 | 65 253 | 73 254 | 0 255 | 40 256 | 0.0 257 | 0 258 | LTYPE 259 | 5 260 | 15 261 | 100 262 | AcDbSymbolTableRecord 263 | 100 264 | AcDbLinetypeTableRecord 265 | 2 266 | ByLayer 267 | 70 268 | 0 269 | 3 270 | 271 | 72 272 | 65 273 | 73 274 | 0 275 | 40 276 | 0.0 277 | 0 278 | LTYPE 279 | 5 280 | 16 281 | 100 282 | AcDbSymbolTableRecord 283 | 100 284 | AcDbLinetypeTableRecord 285 | 2 286 | CONTINUOUS 287 | 70 288 | 0 289 | 3 290 | Solid line 291 | 72 292 | 65 293 | 73 294 | 0 295 | 40 296 | 0.0 297 | 0 298 | LTYPE 299 | 5 300 | 31 301 | 100 302 | AcDbSymbolTableRecord 303 | 100 304 | AcDbLinetypeTableRecord 305 | 2 306 | DOT 307 | 70 308 | 0 309 | 3 310 | Dot . . . . . . . . . . . . . . . . . . . . . . 311 | 72 312 | 65 313 | 73 314 | 2 315 | 40 316 | 6.3499999999999996 317 | 49 318 | 0.0 319 | 74 320 | 0 321 | 49 322 | -6.3499999999999996 323 | 74 324 | 0 325 | 0 326 | LTYPE 327 | 5 328 | 32 329 | 100 330 | AcDbSymbolTableRecord 331 | 100 332 | AcDbLinetypeTableRecord 333 | 2 334 | DOT2 335 | 70 336 | 0 337 | 3 338 | Dot (.5x) ..................................... 339 | 72 340 | 65 341 | 73 342 | 2 343 | 40 344 | 3.1749999999999998 345 | 49 346 | 0.0 347 | 74 348 | 0 349 | 49 350 | -3.1749999999999998 351 | 74 352 | 0 353 | 0 354 | LTYPE 355 | 5 356 | 33 357 | 100 358 | AcDbSymbolTableRecord 359 | 100 360 | AcDbLinetypeTableRecord 361 | 2 362 | DOTX2 363 | 70 364 | 0 365 | 3 366 | Dot (2x) . . . . . . . . . . . . . 367 | 72 368 | 65 369 | 73 370 | 2 371 | 40 372 | 12.6999999999999993 373 | 49 374 | 0.0 375 | 74 376 | 0 377 | 49 378 | -12.6999999999999993 379 | 74 380 | 0 381 | 0 382 | LTYPE 383 | 5 384 | 34 385 | 100 386 | AcDbSymbolTableRecord 387 | 100 388 | AcDbLinetypeTableRecord 389 | 2 390 | DASHED 391 | 70 392 | 0 393 | 3 394 | Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ 395 | 72 396 | 65 397 | 73 398 | 2 399 | 40 400 | 19.0500000000000007 401 | 49 402 | 12.6999999999999993 403 | 74 404 | 0 405 | 49 406 | -6.3499999999999996 407 | 74 408 | 0 409 | 0 410 | LTYPE 411 | 5 412 | 35 413 | 100 414 | AcDbSymbolTableRecord 415 | 100 416 | AcDbLinetypeTableRecord 417 | 2 418 | DASHED2 419 | 70 420 | 0 421 | 3 422 | Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 423 | 72 424 | 65 425 | 73 426 | 2 427 | 40 428 | 9.5250000000000004 429 | 49 430 | 6.3499999999999996 431 | 74 432 | 0 433 | 49 434 | -3.1749999999999998 435 | 74 436 | 0 437 | 0 438 | LTYPE 439 | 5 440 | 36 441 | 100 442 | AcDbSymbolTableRecord 443 | 100 444 | AcDbLinetypeTableRecord 445 | 2 446 | DASHEDX2 447 | 70 448 | 0 449 | 3 450 | Dashed (2x) ____ ____ ____ ____ ____ ___ 451 | 72 452 | 65 453 | 73 454 | 2 455 | 40 456 | 38.1000000000000014 457 | 49 458 | 25.3999999999999986 459 | 74 460 | 0 461 | 49 462 | -12.6999999999999993 463 | 74 464 | 0 465 | 0 466 | LTYPE 467 | 5 468 | 37 469 | 100 470 | AcDbSymbolTableRecord 471 | 100 472 | AcDbLinetypeTableRecord 473 | 2 474 | DASHDOT 475 | 70 476 | 0 477 | 3 478 | Dash dot __ . __ . __ . __ . __ . __ . __ . __ 479 | 72 480 | 65 481 | 73 482 | 4 483 | 40 484 | 25.3999999999999986 485 | 49 486 | 12.6999999999999993 487 | 74 488 | 0 489 | 49 490 | -6.3499999999999996 491 | 74 492 | 0 493 | 49 494 | 0.0 495 | 74 496 | 0 497 | 49 498 | -6.3499999999999996 499 | 74 500 | 0 501 | 0 502 | LTYPE 503 | 5 504 | 38 505 | 100 506 | AcDbSymbolTableRecord 507 | 100 508 | AcDbLinetypeTableRecord 509 | 2 510 | DASHDOT2 511 | 70 512 | 0 513 | 3 514 | Dash dot (.5x) _._._._._._._._._._._._._._._. 515 | 72 516 | 65 517 | 73 518 | 4 519 | 40 520 | 12.6999999999999993 521 | 49 522 | 6.3499999999999996 523 | 74 524 | 0 525 | 49 526 | -3.1749999999999998 527 | 74 528 | 0 529 | 49 530 | 0.0 531 | 74 532 | 0 533 | 49 534 | -3.1749999999999998 535 | 74 536 | 0 537 | 0 538 | LTYPE 539 | 5 540 | 39 541 | 100 542 | AcDbSymbolTableRecord 543 | 100 544 | AcDbLinetypeTableRecord 545 | 2 546 | DASHDOTX2 547 | 70 548 | 0 549 | 3 550 | Dash dot (2x) ____ . ____ . ____ . ___ 551 | 72 552 | 65 553 | 73 554 | 4 555 | 40 556 | 50.7999999999999972 557 | 49 558 | 25.3999999999999986 559 | 74 560 | 0 561 | 49 562 | -12.6999999999999993 563 | 74 564 | 0 565 | 49 566 | 0.0 567 | 74 568 | 0 569 | 49 570 | -12.6999999999999993 571 | 74 572 | 0 573 | 0 574 | LTYPE 575 | 5 576 | 3A 577 | 100 578 | AcDbSymbolTableRecord 579 | 100 580 | AcDbLinetypeTableRecord 581 | 2 582 | DIVIDE 583 | 70 584 | 0 585 | 3 586 | Divide ____ . . ____ . . ____ . . ____ . . ____ 587 | 72 588 | 65 589 | 73 590 | 6 591 | 40 592 | 31.75 593 | 49 594 | 12.6999999999999993 595 | 74 596 | 0 597 | 49 598 | -6.3499999999999996 599 | 74 600 | 0 601 | 49 602 | 0.0 603 | 74 604 | 0 605 | 49 606 | -6.3499999999999996 607 | 74 608 | 0 609 | 49 610 | 0.0 611 | 74 612 | 0 613 | 49 614 | -6.3499999999999996 615 | 74 616 | 0 617 | 0 618 | LTYPE 619 | 5 620 | 3B 621 | 100 622 | AcDbSymbolTableRecord 623 | 100 624 | AcDbLinetypeTableRecord 625 | 2 626 | DIVIDE2 627 | 70 628 | 0 629 | 3 630 | Divide (.5x) __..__..__..__..__..__..__..__.._ 631 | 72 632 | 65 633 | 73 634 | 6 635 | 40 636 | 15.875 637 | 49 638 | 6.3499999999999996 639 | 74 640 | 0 641 | 49 642 | -3.1749999999999998 643 | 74 644 | 0 645 | 49 646 | 0.0 647 | 74 648 | 0 649 | 49 650 | -3.1749999999999998 651 | 74 652 | 0 653 | 49 654 | 0.0 655 | 74 656 | 0 657 | 49 658 | -3.1749999999999998 659 | 74 660 | 0 661 | 0 662 | LTYPE 663 | 5 664 | 3C 665 | 100 666 | AcDbSymbolTableRecord 667 | 100 668 | AcDbLinetypeTableRecord 669 | 2 670 | DIVIDEX2 671 | 70 672 | 0 673 | 3 674 | Divide (2x) ________ . . ________ . . _ 675 | 72 676 | 65 677 | 73 678 | 6 679 | 40 680 | 63.5 681 | 49 682 | 25.3999999999999986 683 | 74 684 | 0 685 | 49 686 | -12.6999999999999993 687 | 74 688 | 0 689 | 49 690 | 0.0 691 | 74 692 | 0 693 | 49 694 | -12.6999999999999993 695 | 74 696 | 0 697 | 49 698 | 0.0 699 | 74 700 | 0 701 | 49 702 | -12.6999999999999993 703 | 74 704 | 0 705 | 0 706 | LTYPE 707 | 5 708 | 3D 709 | 100 710 | AcDbSymbolTableRecord 711 | 100 712 | AcDbLinetypeTableRecord 713 | 2 714 | CENTER 715 | 70 716 | 0 717 | 3 718 | Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ 719 | 72 720 | 65 721 | 73 722 | 4 723 | 40 724 | 50.7999999999999972 725 | 49 726 | 31.75 727 | 74 728 | 0 729 | 49 730 | -6.3499999999999996 731 | 74 732 | 0 733 | 49 734 | 6.3499999999999996 735 | 74 736 | 0 737 | 49 738 | -6.3499999999999996 739 | 74 740 | 0 741 | 0 742 | LTYPE 743 | 5 744 | 3E 745 | 100 746 | AcDbSymbolTableRecord 747 | 100 748 | AcDbLinetypeTableRecord 749 | 2 750 | CENTER2 751 | 70 752 | 0 753 | 3 754 | Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ 755 | 72 756 | 65 757 | 73 758 | 4 759 | 40 760 | 28.5749999999999993 761 | 49 762 | 19.0500000000000007 763 | 74 764 | 0 765 | 49 766 | -3.1749999999999998 767 | 74 768 | 0 769 | 49 770 | 3.1749999999999998 771 | 74 772 | 0 773 | 49 774 | -3.1749999999999998 775 | 74 776 | 0 777 | 0 778 | LTYPE 779 | 5 780 | 3F 781 | 100 782 | AcDbSymbolTableRecord 783 | 100 784 | AcDbLinetypeTableRecord 785 | 2 786 | CENTERX2 787 | 70 788 | 0 789 | 3 790 | Center (2x) ________ __ ________ __ _____ 791 | 72 792 | 65 793 | 73 794 | 4 795 | 40 796 | 101.5999999999999943 797 | 49 798 | 63.5 799 | 74 800 | 0 801 | 49 802 | -12.6999999999999993 803 | 74 804 | 0 805 | 49 806 | 12.6999999999999993 807 | 74 808 | 0 809 | 49 810 | -12.6999999999999993 811 | 74 812 | 0 813 | 0 814 | LTYPE 815 | 5 816 | 40 817 | 100 818 | AcDbSymbolTableRecord 819 | 100 820 | AcDbLinetypeTableRecord 821 | 2 822 | BORDER 823 | 70 824 | 0 825 | 3 826 | Border __ __ . __ __ . __ __ . __ __ . __ __ . 827 | 72 828 | 65 829 | 73 830 | 6 831 | 40 832 | 44.4500000000000028 833 | 49 834 | 12.6999999999999993 835 | 74 836 | 0 837 | 49 838 | -6.3499999999999996 839 | 74 840 | 0 841 | 49 842 | 12.6999999999999993 843 | 74 844 | 0 845 | 49 846 | -6.3499999999999996 847 | 74 848 | 0 849 | 49 850 | 0.0 851 | 74 852 | 0 853 | 49 854 | -6.3499999999999996 855 | 74 856 | 0 857 | 0 858 | LTYPE 859 | 5 860 | 41 861 | 100 862 | AcDbSymbolTableRecord 863 | 100 864 | AcDbLinetypeTableRecord 865 | 2 866 | BORDER2 867 | 70 868 | 0 869 | 3 870 | Border (.5x) __.__.__.__.__.__.__.__.__.__.__. 871 | 72 872 | 65 873 | 73 874 | 6 875 | 40 876 | 22.2250000000000014 877 | 49 878 | 6.3499999999999996 879 | 74 880 | 0 881 | 49 882 | -3.1749999999999998 883 | 74 884 | 0 885 | 49 886 | 6.3499999999999996 887 | 74 888 | 0 889 | 49 890 | -3.1749999999999998 891 | 74 892 | 0 893 | 49 894 | 0.0 895 | 74 896 | 0 897 | 49 898 | -3.1749999999999998 899 | 74 900 | 0 901 | 0 902 | LTYPE 903 | 5 904 | 42 905 | 100 906 | AcDbSymbolTableRecord 907 | 100 908 | AcDbLinetypeTableRecord 909 | 2 910 | BORDERX2 911 | 70 912 | 0 913 | 3 914 | Border (2x) ____ ____ . ____ ____ . ___ 915 | 72 916 | 65 917 | 73 918 | 6 919 | 40 920 | 88.9000000000000057 921 | 49 922 | 25.3999999999999986 923 | 74 924 | 0 925 | 49 926 | -12.6999999999999993 927 | 74 928 | 0 929 | 49 930 | 25.3999999999999986 931 | 74 932 | 0 933 | 49 934 | -12.6999999999999993 935 | 74 936 | 0 937 | 49 938 | 0.0 939 | 74 940 | 0 941 | 49 942 | -12.6999999999999993 943 | 74 944 | 0 945 | 0 946 | ENDTAB 947 | 0 948 | TABLE 949 | 2 950 | LAYER 951 | 5 952 | 2 953 | 100 954 | AcDbSymbolTable 955 | 70 956 | 2 957 | 0 958 | LAYER 959 | 5 960 | 10 961 | 100 962 | AcDbSymbolTableRecord 963 | 100 964 | AcDbLayerTableRecord 965 | 2 966 | 0 967 | 70 968 | 0 969 | 62 970 | 7 971 | 6 972 | CONTINUOUS 973 | 390 974 | F 975 | 0 976 | LAYER 977 | 5 978 | 43 979 | 100 980 | AcDbSymbolTableRecord 981 | 100 982 | AcDbLayerTableRecord 983 | 2 984 | dimensions 985 | 70 986 | 0 987 | 62 988 | 2 989 | 6 990 | CONTINUOUS 991 | 370 992 | 0 993 | 390 994 | F 995 | 0 996 | ENDTAB 997 | 0 998 | TABLE 999 | 2 1000 | STYLE 1001 | 5 1002 | 3 1003 | 100 1004 | AcDbSymbolTable 1005 | 70 1006 | 1 1007 | 0 1008 | STYLE 1009 | 5 1010 | 11 1011 | 100 1012 | AcDbSymbolTableRecord 1013 | 100 1014 | AcDbTextStyleTableRecord 1015 | 2 1016 | Standard 1017 | 70 1018 | 0 1019 | 40 1020 | 0.0 1021 | 41 1022 | 0.75 1023 | 50 1024 | 0.0 1025 | 71 1026 | 0 1027 | 42 1028 | 2.5 1029 | 3 1030 | txt 1031 | 4 1032 | 1033 | 0 1034 | ENDTAB 1035 | 0 1036 | TABLE 1037 | 2 1038 | VIEW 1039 | 5 1040 | 6 1041 | 100 1042 | AcDbSymbolTable 1043 | 70 1044 | 0 1045 | 0 1046 | ENDTAB 1047 | 0 1048 | TABLE 1049 | 2 1050 | UCS 1051 | 5 1052 | 7 1053 | 100 1054 | AcDbSymbolTable 1055 | 70 1056 | 0 1057 | 0 1058 | ENDTAB 1059 | 0 1060 | TABLE 1061 | 2 1062 | APPID 1063 | 5 1064 | 9 1065 | 100 1066 | AcDbSymbolTable 1067 | 70 1068 | 1 1069 | 0 1070 | APPID 1071 | 5 1072 | 12 1073 | 100 1074 | AcDbSymbolTableRecord 1075 | 100 1076 | AcDbRegAppTableRecord 1077 | 2 1078 | ACAD 1079 | 70 1080 | 0 1081 | 0 1082 | ENDTAB 1083 | 0 1084 | TABLE 1085 | 2 1086 | DIMSTYLE 1087 | 5 1088 | A 1089 | 100 1090 | AcDbSymbolTable 1091 | 70 1092 | 1 1093 | 100 1094 | AcDbDimStyleTable 1095 | 71 1096 | 0 1097 | 0 1098 | DIMSTYLE 1099 | 105 1100 | 27 1101 | 100 1102 | AcDbSymbolTableRecord 1103 | 100 1104 | AcDbDimStyleTableRecord 1105 | 2 1106 | Standard 1107 | 41 1108 | 2.5 1109 | 42 1110 | 0.625 1111 | 43 1112 | 3.75 1113 | 44 1114 | 1.25 1115 | 70 1116 | 0 1117 | 73 1118 | 0 1119 | 74 1120 | 0 1121 | 77 1122 | 1 1123 | 78 1124 | 8 1125 | 140 1126 | 2.5 1127 | 141 1128 | 2.5 1129 | 143 1130 | 0.03937007874016 1131 | 147 1132 | 0.625 1133 | 171 1134 | 3 1135 | 172 1136 | 1 1137 | 271 1138 | 2 1139 | 272 1140 | 2 1141 | 274 1142 | 3 1143 | 278 1144 | 44 1145 | 283 1146 | 0 1147 | 284 1148 | 8 1149 | 340 1150 | 11 1151 | 0 1152 | ENDTAB 1153 | 0 1154 | TABLE 1155 | 2 1156 | BLOCK_RECORD 1157 | 5 1158 | 1 1159 | 100 1160 | AcDbSymbolTable 1161 | 70 1162 | 1 1163 | 0 1164 | BLOCK_RECORD 1165 | 5 1166 | 1F 1167 | 100 1168 | AcDbSymbolTableRecord 1169 | 100 1170 | AcDbBlockTableRecord 1171 | 2 1172 | *Model_Space 1173 | 340 1174 | 22 1175 | 0 1176 | BLOCK_RECORD 1177 | 5 1178 | 1B 1179 | 100 1180 | AcDbSymbolTableRecord 1181 | 100 1182 | AcDbBlockTableRecord 1183 | 2 1184 | *Paper_Space 1185 | 340 1186 | 1E 1187 | 0 1188 | BLOCK_RECORD 1189 | 5 1190 | 23 1191 | 100 1192 | AcDbSymbolTableRecord 1193 | 100 1194 | AcDbBlockTableRecord 1195 | 2 1196 | *Paper_Space0 1197 | 340 1198 | 26 1199 | 0 1200 | ENDTAB 1201 | 0 1202 | ENDSEC 1203 | 0 1204 | SECTION 1205 | 2 1206 | BLOCKS 1207 | 0 1208 | BLOCK 1209 | 5 1210 | 20 1211 | 100 1212 | AcDbEntity 1213 | 8 1214 | 0 1215 | 100 1216 | AcDbBlockBegin 1217 | 2 1218 | *Model_Space 1219 | 70 1220 | 0 1221 | 10 1222 | 0.0 1223 | 20 1224 | 0.0 1225 | 30 1226 | 0.0 1227 | 3 1228 | *Model_Space 1229 | 1 1230 | 1231 | 0 1232 | ENDBLK 1233 | 5 1234 | 21 1235 | 100 1236 | AcDbEntity 1237 | 8 1238 | 0 1239 | 100 1240 | AcDbBlockEnd 1241 | 0 1242 | BLOCK 1243 | 5 1244 | 1C 1245 | 100 1246 | AcDbEntity 1247 | 67 1248 | 1 1249 | 8 1250 | 0 1251 | 100 1252 | AcDbBlockBegin 1253 | 2 1254 | *Paper_Space 1255 | 70 1256 | 0 1257 | 10 1258 | 0.0 1259 | 20 1260 | 0.0 1261 | 30 1262 | 0.0 1263 | 3 1264 | *Paper_Space 1265 | 1 1266 | 1267 | 0 1268 | ENDBLK 1269 | 5 1270 | 1D 1271 | 100 1272 | AcDbEntity 1273 | 67 1274 | 1 1275 | 8 1276 | 0 1277 | 100 1278 | AcDbBlockEnd 1279 | 0 1280 | BLOCK 1281 | 5 1282 | 24 1283 | 100 1284 | AcDbEntity 1285 | 8 1286 | 0 1287 | 100 1288 | AcDbBlockBegin 1289 | 2 1290 | *Paper_Space0 1291 | 70 1292 | 0 1293 | 10 1294 | 0.0 1295 | 20 1296 | 0.0 1297 | 30 1298 | 0.0 1299 | 3 1300 | *Paper_Space0 1301 | 1 1302 | 1303 | 0 1304 | ENDBLK 1305 | 5 1306 | 25 1307 | 100 1308 | AcDbEntity 1309 | 8 1310 | 0 1311 | 100 1312 | AcDbBlockEnd 1313 | 0 1314 | ENDSEC 1315 | 0 1316 | SECTION 1317 | 2 1318 | ENTITIES 1319 | 0 1320 | LINE 1321 | 5 1322 | 44 1323 | 100 1324 | AcDbEntity 1325 | 100 1326 | AcDbLine 1327 | 8 1328 | 0 1329 | 62 1330 | 7 1331 | 370 1332 | 0 1333 | 6 1334 | CONTINUOUS 1335 | 10 1336 | -17.1956490000000031 1337 | 20 1338 | 0.5213559999999973 1339 | 30 1340 | 0.0 1341 | 11 1342 | -14.1500000000000057 1343 | 21 1344 | 3.0 1345 | 31 1346 | 0.0 1347 | 0 1348 | LINE 1349 | 5 1350 | 45 1351 | 100 1352 | AcDbEntity 1353 | 100 1354 | AcDbLine 1355 | 8 1356 | 0 1357 | 62 1358 | 7 1359 | 370 1360 | 0 1361 | 6 1362 | CONTINUOUS 1363 | 10 1364 | 20.1500000000000057 1365 | 20 1366 | 0.0 1367 | 30 1368 | 0.0 1369 | 11 1370 | 18.1500000000000057 1371 | 21 1372 | 3.0 1373 | 31 1374 | 0.0 1375 | 0 1376 | LINE 1377 | 5 1378 | 46 1379 | 100 1380 | AcDbEntity 1381 | 100 1382 | AcDbLine 1383 | 8 1384 | 0 1385 | 62 1386 | 7 1387 | 370 1388 | 0 1389 | 6 1390 | CONTINUOUS 1391 | 10 1392 | -14.1500000000000057 1393 | 20 1394 | 3.0 1395 | 30 1396 | 0.0 1397 | 11 1398 | 18.1500000000000057 1399 | 21 1400 | 3.0 1401 | 31 1402 | 0.0 1403 | 0 1404 | LINE 1405 | 5 1406 | 47 1407 | 100 1408 | AcDbEntity 1409 | 100 1410 | AcDbLine 1411 | 8 1412 | 0 1413 | 62 1414 | 256 1415 | 370 1416 | -1 1417 | 6 1418 | ByLayer 1419 | 10 1420 | -20.1500000000000057 1421 | 20 1422 | 0.0 1423 | 30 1424 | 0.0 1425 | 11 1426 | -17.1956490000000031 1427 | 21 1428 | 0.5213559999999973 1429 | 31 1430 | 0.0 1431 | 0 1432 | LINE 1433 | 5 1434 | 48 1435 | 100 1436 | AcDbEntity 1437 | 100 1438 | AcDbLine 1439 | 8 1440 | 0 1441 | 62 1442 | 256 1443 | 370 1444 | -1 1445 | 6 1446 | ByLayer 1447 | 10 1448 | -20.1500000000000057 1449 | 20 1450 | 0.0 1451 | 30 1452 | 0.0 1453 | 11 1454 | -20.1500000000000057 1455 | 21 1456 | 0.0 1457 | 31 1458 | 0.0 1459 | 0 1460 | LINE 1461 | 5 1462 | 49 1463 | 100 1464 | AcDbEntity 1465 | 100 1466 | AcDbLine 1467 | 8 1468 | 0 1469 | 62 1470 | 256 1471 | 370 1472 | -1 1473 | 6 1474 | ByLayer 1475 | 10 1476 | -20.1500000000000057 1477 | 20 1478 | 0.0 1479 | 30 1480 | 0.0 1481 | 11 1482 | 20.1500000000000057 1483 | 21 1484 | 0.0 1485 | 31 1486 | 0.0 1487 | 0 1488 | DIMENSION 1489 | 5 1490 | 4A 1491 | 100 1492 | AcDbEntity 1493 | 8 1494 | dimensions 1495 | 62 1496 | 256 1497 | 370 1498 | -1 1499 | 6 1500 | ByLayer 1501 | 100 1502 | AcDbDimension 1503 | 10 1504 | 26.0 1505 | 20 1506 | -0.0000000000000007 1507 | 30 1508 | 0.0 1509 | 11 1510 | 24.125 1511 | 21 1512 | 1.5000000000000002 1513 | 31 1514 | 0.0 1515 | 70 1516 | 0 1517 | 71 1518 | 5 1519 | 72 1520 | 1 1521 | 41 1522 | 1.0 1523 | 42 1524 | 0.0 1525 | 1 1526 | ht 1527 | 3 1528 | Standard 1529 | 100 1530 | AcDbAlignedDimension 1531 | 13 1532 | 18.1500000000000057 1533 | 23 1534 | 3.0 1535 | 33 1536 | 0.0 1537 | 14 1538 | 20.1500000000000057 1539 | 24 1540 | 0.0 1541 | 34 1542 | 0.0 1543 | 50 1544 | 90.0 1545 | 100 1546 | AcDbRotatedDimension 1547 | 0 1548 | ENDSEC 1549 | 0 1550 | SECTION 1551 | 2 1552 | OBJECTS 1553 | 0 1554 | DICTIONARY 1555 | 5 1556 | C 1557 | 100 1558 | AcDbDictionary 1559 | 280 1560 | 0 1561 | 281 1562 | 1 1563 | 3 1564 | ACAD_GROUP 1565 | 350 1566 | D 1567 | 3 1568 | ACAD_LAYOUT 1569 | 350 1570 | 1A 1571 | 3 1572 | ACAD_MLINESTYLE 1573 | 350 1574 | 17 1575 | 3 1576 | ACAD_PLOTSETTINGS 1577 | 350 1578 | 19 1579 | 3 1580 | ACAD_PLOTSTYLENAME 1581 | 350 1582 | E 1583 | 3 1584 | AcDbVariableDictionary 1585 | 350 1586 | 4B 1587 | 0 1588 | DICTIONARY 1589 | 5 1590 | D 1591 | 100 1592 | AcDbDictionary 1593 | 280 1594 | 0 1595 | 281 1596 | 1 1597 | 0 1598 | ACDBDICTIONARYWDFLT 1599 | 5 1600 | E 1601 | 100 1602 | AcDbDictionary 1603 | 281 1604 | 1 1605 | 3 1606 | Normal 1607 | 350 1608 | F 1609 | 100 1610 | AcDbDictionaryWithDefault 1611 | 340 1612 | F 1613 | 0 1614 | ACDBPLACEHOLDER 1615 | 5 1616 | F 1617 | 0 1618 | DICTIONARY 1619 | 5 1620 | 17 1621 | 100 1622 | AcDbDictionary 1623 | 280 1624 | 0 1625 | 281 1626 | 1 1627 | 3 1628 | Standard 1629 | 350 1630 | 18 1631 | 0 1632 | MLINESTYLE 1633 | 5 1634 | 18 1635 | 100 1636 | AcDbMlineStyle 1637 | 2 1638 | STANDARD 1639 | 70 1640 | 0 1641 | 3 1642 | 1643 | 62 1644 | 256 1645 | 51 1646 | 90.0 1647 | 52 1648 | 90.0 1649 | 71 1650 | 2 1651 | 49 1652 | 0.5 1653 | 62 1654 | 256 1655 | 6 1656 | BYLAYER 1657 | 49 1658 | -0.5 1659 | 62 1660 | 256 1661 | 6 1662 | BYLAYER 1663 | 0 1664 | DICTIONARY 1665 | 5 1666 | 19 1667 | 100 1668 | AcDbDictionary 1669 | 280 1670 | 0 1671 | 281 1672 | 1 1673 | 0 1674 | DICTIONARY 1675 | 5 1676 | 1A 1677 | 100 1678 | AcDbDictionary 1679 | 281 1680 | 1 1681 | 3 1682 | Layout1 1683 | 350 1684 | 1E 1685 | 3 1686 | Layout2 1687 | 350 1688 | 26 1689 | 3 1690 | Model 1691 | 350 1692 | 22 1693 | 0 1694 | LAYOUT 1695 | 5 1696 | 1E 1697 | 100 1698 | AcDbPlotSettings 1699 | 1 1700 | 1701 | 2 1702 | C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 1703 | 4 1704 | 1705 | 6 1706 | 1707 | 40 1708 | 0.0 1709 | 41 1710 | 0.0 1711 | 42 1712 | 0.0 1713 | 43 1714 | 0.0 1715 | 44 1716 | 0.0 1717 | 45 1718 | 0.0 1719 | 46 1720 | 0.0 1721 | 47 1722 | 0.0 1723 | 48 1724 | 0.0 1725 | 49 1726 | 0.0 1727 | 140 1728 | 0.0 1729 | 141 1730 | 0.0 1731 | 142 1732 | 1.0 1733 | 143 1734 | 1.0 1735 | 70 1736 | 688 1737 | 72 1738 | 0 1739 | 73 1740 | 0 1741 | 74 1742 | 5 1743 | 7 1744 | 1745 | 75 1746 | 16 1747 | 147 1748 | 1.0 1749 | 148 1750 | 0.0 1751 | 149 1752 | 0.0 1753 | 100 1754 | AcDbLayout 1755 | 1 1756 | Layout1 1757 | 70 1758 | 1 1759 | 71 1760 | 1 1761 | 10 1762 | 0.0 1763 | 20 1764 | 0.0 1765 | 11 1766 | 420.0 1767 | 21 1768 | 297.0 1769 | 12 1770 | 0.0 1771 | 22 1772 | 0.0 1773 | 32 1774 | 0.0 1775 | 14 1776 | 100000000000000000000.0 1777 | 24 1778 | 100000000000000000000.0 1779 | 34 1780 | 100000000000000000000.0 1781 | 15 1782 | -100000000000000000000.0 1783 | 25 1784 | -100000000000000000000.0 1785 | 35 1786 | -100000000000000000000.0 1787 | 146 1788 | 0.0 1789 | 13 1790 | 0.0 1791 | 23 1792 | 0.0 1793 | 33 1794 | 0.0 1795 | 16 1796 | 1.0 1797 | 26 1798 | 0.0 1799 | 36 1800 | 0.0 1801 | 17 1802 | 0.0 1803 | 27 1804 | 1.0 1805 | 37 1806 | 0.0 1807 | 76 1808 | 0 1809 | 330 1810 | 1B 1811 | 0 1812 | LAYOUT 1813 | 5 1814 | 22 1815 | 100 1816 | AcDbPlotSettings 1817 | 1 1818 | 1819 | 2 1820 | C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 1821 | 4 1822 | 1823 | 6 1824 | 1825 | 40 1826 | 0.0 1827 | 41 1828 | 0.0 1829 | 42 1830 | 0.0 1831 | 43 1832 | 0.0 1833 | 44 1834 | 0.0 1835 | 45 1836 | 0.0 1837 | 46 1838 | 0.0 1839 | 47 1840 | 0.0 1841 | 48 1842 | 0.0 1843 | 49 1844 | 0.0 1845 | 140 1846 | 0.0 1847 | 141 1848 | 0.0 1849 | 142 1850 | 1.0 1851 | 143 1852 | 1.0 1853 | 70 1854 | 1712 1855 | 72 1856 | 0 1857 | 73 1858 | 0 1859 | 74 1860 | 0 1861 | 7 1862 | 1863 | 75 1864 | 0 1865 | 147 1866 | 1.0 1867 | 148 1868 | 0.0 1869 | 149 1870 | 0.0 1871 | 100 1872 | AcDbLayout 1873 | 1 1874 | Model 1875 | 70 1876 | 1 1877 | 71 1878 | 0 1879 | 10 1880 | 0.0 1881 | 20 1882 | 0.0 1883 | 11 1884 | 12.0 1885 | 21 1886 | 9.0 1887 | 12 1888 | 0.0 1889 | 22 1890 | 0.0 1891 | 32 1892 | 0.0 1893 | 14 1894 | 0.0 1895 | 24 1896 | 0.0 1897 | 34 1898 | 0.0 1899 | 15 1900 | 0.0 1901 | 25 1902 | 0.0 1903 | 35 1904 | 0.0 1905 | 146 1906 | 0.0 1907 | 13 1908 | 0.0 1909 | 23 1910 | 0.0 1911 | 33 1912 | 0.0 1913 | 16 1914 | 1.0 1915 | 26 1916 | 0.0 1917 | 36 1918 | 0.0 1919 | 17 1920 | 0.0 1921 | 27 1922 | 1.0 1923 | 37 1924 | 0.0 1925 | 76 1926 | 0 1927 | 330 1928 | 1F 1929 | 0 1930 | LAYOUT 1931 | 5 1932 | 26 1933 | 100 1934 | AcDbPlotSettings 1935 | 1 1936 | 1937 | 2 1938 | C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 1939 | 4 1940 | 1941 | 6 1942 | 1943 | 40 1944 | 0.0 1945 | 41 1946 | 0.0 1947 | 42 1948 | 0.0 1949 | 43 1950 | 0.0 1951 | 44 1952 | 0.0 1953 | 45 1954 | 0.0 1955 | 46 1956 | 0.0 1957 | 47 1958 | 0.0 1959 | 48 1960 | 0.0 1961 | 49 1962 | 0.0 1963 | 140 1964 | 0.0 1965 | 141 1966 | 0.0 1967 | 142 1968 | 1.0 1969 | 143 1970 | 1.0 1971 | 70 1972 | 688 1973 | 72 1974 | 0 1975 | 73 1976 | 0 1977 | 74 1978 | 5 1979 | 7 1980 | 1981 | 75 1982 | 16 1983 | 147 1984 | 1.0 1985 | 148 1986 | 0.0 1987 | 149 1988 | 0.0 1989 | 100 1990 | AcDbLayout 1991 | 1 1992 | Layout2 1993 | 70 1994 | 1 1995 | 71 1996 | 2 1997 | 10 1998 | 0.0 1999 | 20 2000 | 0.0 2001 | 11 2002 | 12.0 2003 | 21 2004 | 9.0 2005 | 12 2006 | 0.0 2007 | 22 2008 | 0.0 2009 | 32 2010 | 0.0 2011 | 14 2012 | 0.0 2013 | 24 2014 | 0.0 2015 | 34 2016 | 0.0 2017 | 15 2018 | 0.0 2019 | 25 2020 | 0.0 2021 | 35 2022 | 0.0 2023 | 146 2024 | 0.0 2025 | 13 2026 | 0.0 2027 | 23 2028 | 0.0 2029 | 33 2030 | 0.0 2031 | 16 2032 | 1.0 2033 | 26 2034 | 0.0 2035 | 36 2036 | 0.0 2037 | 17 2038 | 0.0 2039 | 27 2040 | 1.0 2041 | 37 2042 | 0.0 2043 | 76 2044 | 0 2045 | 330 2046 | 23 2047 | 0 2048 | DICTIONARY 2049 | 5 2050 | 4B 2051 | 100 2052 | AcDbDictionary 2053 | 281 2054 | 1 2055 | 3 2056 | DIMASSOC 2057 | 350 2058 | 4D 2059 | 3 2060 | HIDETEXT 2061 | 350 2062 | 4C 2063 | 0 2064 | DICTIONARYVAR 2065 | 5 2066 | 4C 2067 | 100 2068 | DictionaryVariables 2069 | 280 2070 | 0 2071 | 1 2072 | 2 2073 | 0 2074 | DICTIONARYVAR 2075 | 5 2076 | 4D 2077 | 100 2078 | DictionaryVariables 2079 | 280 2080 | 0 2081 | 1 2082 | 1 2083 | 0 2084 | ENDSEC 2085 | 0 2086 | EOF 2087 | -------------------------------------------------------------------------------- /parts/futaba3003/futaba.scad: -------------------------------------------------------------------------------- 1 | 2 | module ear() 3 | { 4 | we = dxf_dim(file="futaba-ears.dxf", name="we"); 5 | rd = dxf_dim(file="futaba-ears.dxf", name="rd"); 6 | xd = dxf_dim(file="futaba-ears.dxf", name="xd"); 7 | yd = dxf_dim(file="futaba-ears.dxf", name="yd"); 8 | we2= dxf_dim(file="futaba-ears2.dxf", name="we2"); 9 | 10 | difference() { 11 | union() { 12 | linear_extrude(height=we) 13 | import(file="futaba-ears.dxf", layer="exterior"); 14 | 15 | translate([0,we2/2,we]) 16 | rotate(a=90, v=[1,0,0]) 17 | linear_extrude(height=we2) 18 | import(file="futaba-ears2.dxf", layer="exterior"); 19 | } 20 | 21 | translate([-xd,yd,0]) 22 | cylinder(r=rd, h=we+10, $fn=16,center=true); 23 | translate([-xd,-yd,0]) 24 | cylinder(r=rd, h=we+10, $fn=16,center=true); 25 | } 26 | } 27 | 28 | module futaba() 29 | { 30 | z1 = dxf_dim(file="futaba-main.dxf", name="z1"); 31 | x1 = dxf_dim(file="futaba-main.dxf", name="x1"); 32 | y1 = dxf_dim(file="futaba-main.dxf", name="y1"); 33 | ht = dxf_dim(file="futaba-top.dxf", name="ht"); 34 | xs = dxf_dim(file="futaba-main.dxf",name="xs"); 35 | he = dxf_dim(file="futaba-main.dxf",name="he"); 36 | 37 | 38 | 39 | union() { 40 | //-- Main part 41 | translate([0,0,z1/2]) 42 | cube(size=[x1,y1,z1], center=true); 43 | 44 | //-- Top part 45 | translate([0,0,z1]) 46 | rotate (a=90, v=[1,0,0]) 47 | linear_extrude(height=y1,center=true) 48 | import(file="futaba-top.dxf"); 49 | 50 | //-- Shaft part 51 | translate ([xs,0,z1+ht]) 52 | rotate_extrude() 53 | import(file="Futaba-shaft.dxf"); 54 | 55 | } 56 | 57 | translate([-x1/2,0,he]) ear(); 58 | translate([x1/2,0,he]) 59 | rotate(a=180, v=[0,0,1]) ear(); 60 | 61 | } 62 | 63 | 64 | futaba(); 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /parts/futaba3003/futaba_plate.scad: -------------------------------------------------------------------------------- 1 | module futaba_plate() 2 | { 3 | dxf_rotate_extrude(file="futaba-plate.dxf", layer="section"); 4 | 5 | } 6 | 7 | 8 | futaba_plate(); 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /simulation/octave-matlab/@miniskybot/display.m: -------------------------------------------------------------------------------- 1 | %%-------------------------------------------------------------------- 2 | %%-- Miniskybot Class 3 | %%-- (c) Juan Gonzalez-Gomez (Obijuan) juan@iearobotics.com 4 | %%-- May, 2012. Robotics and Cybernetics group. UPM 5 | %%---------------------------------------------------------------------- 6 | %%-- Released under the GPL license 7 | %%---------------------------------------------------------------------- 8 | 9 | %%--------------------------------- 10 | %%-- Method: display 11 | %%-- Inputs: 12 | %%-- r: A Miniskybot object 13 | %%-- Print information about the robot object 14 | %%--------------------------------- 15 | 16 | function display (r) 17 | fprintf('%s = \n', inputname(1)); 18 | fprintf(' Pose: '); disp(r.pose); 19 | fprintf(' v: '); disp(r.v); 20 | fprintf(' w: '); disp(r.w); 21 | end 22 | 23 | -------------------------------------------------------------------------------- /simulation/octave-matlab/@miniskybot/draw.m: -------------------------------------------------------------------------------- 1 | %%-------------------------------------------------------------------- 2 | %%-- Miniskybot Class 3 | %%-- (c) Juan Gonzalez-Gomez (Obijuan) juan@iearobotics.com 4 | %%-- May, 2012. Robotics and Cybernetics group. UPM 5 | %%---------------------------------------------------------------------- 6 | %%-- Released under the GPL license 7 | %%---------------------------------------------------------------------- 8 | 9 | %%--------------------------------- 10 | %%-- Method: Draw 11 | %%-- Input: A Miniskybot object 12 | %%-- Draw the miniskybot on the screen 13 | %%--------------------------------- 14 | function draw(r) 15 | 16 | %%-- Transformation matrix for drawing the robot 17 | c=cos(r.pose(3)); 18 | s=sin(r.pose(3)); 19 | T=[ c, -s, 0 r.pose(1); 20 | s, c, 0 r.pose(2); 21 | 0, 0, 1 0; 22 | 0 0 0 1 23 | ]; 24 | 25 | %%-- Robot data. These points define the robot shape in its home state 26 | %%-- Robot wheels 27 | p1 = [-r.wheel_rad r.l-3 0 1]; 28 | p2 = [r.wheel_rad r.l-3 0 1]; 29 | p3 = [-r.wheel_rad -r.l+3 0 1]; 30 | p4 = [r.wheel_rad -r.l+3 0 1]; 31 | 32 | %%-- Robot Body 33 | p5 = [-38 58/2 0 1]; 34 | p6 = [34 58/2 0 1]; 35 | p7 = [34 8 0 1]; 36 | p8 = [34+10 0 0 1]; 37 | p9 = [34 -8 0 1]; 38 | p10 = [34 -58/2 0 1]; 39 | p11 = [-38 -58/2 0 1]; 40 | 41 | %%-- Wheel axes 42 | p12 = [0 r.l-3 0 1]; 43 | p13 = [0 58/2 0 1]; 44 | p14 = [0 -r.l+3 0 1]; 45 | p15 = [0 -58/2 0 1]; 46 | 47 | %%-- Calculate the robot pose according to the 48 | %%-- the parameters given (x,y,theta) 49 | P1 = T*p1'; 50 | P2 = T*p2'; 51 | P3 = T*p3'; 52 | P4 = T*p4'; 53 | P5 = T*p5'; 54 | P6 = T*p6'; 55 | P7 = T*p7'; 56 | P8 = T*p8'; 57 | P9 = T*p9'; 58 | P10 = T*p10'; 59 | P11 = T*p11'; 60 | P12 = T*p12'; 61 | P13 = T*p13'; 62 | P14 = T*p14'; 63 | P15 = T*p15'; 64 | 65 | %%-- convert the points into two list with the x and y coordinates 66 | %%-- It is necesarry for ploting 67 | x_w1 = [P1(1) P2(1)]; 68 | y_w1 = [P1(2) P2(2)]; 69 | x_w2 = [P3(1) P4(1)]; 70 | y_w2 = [P3(2) P4(2)]; 71 | 72 | x_body = [P5(1) P6(1) P7(1) P8(1) P9(1) P10(1) P11(1) P5(1)]; 73 | y_body = [P5(2) P6(2) P7(2) P8(2) P9(2) P10(2) P11(2) P5(2)]; 74 | 75 | x_w1_axis = [P12(1) P13(1)]; 76 | y_w1_axis = [P12(2) P13(2)]; 77 | 78 | x_w2_axis = [P14(1) P15(1)]; 79 | y_w2_axis = [P14(2) P15(2)]; 80 | 81 | %%-- Draw left wheel 82 | plot(x_w1, y_w1,'g','linewidth',6); 83 | hold on; 84 | 85 | %%-- Draw right wheel 86 | plot(x_w2, y_w2,'g','linewidth',6); 87 | 88 | %%-- Draw robot body 89 | plot(x_body, y_body, 'b', 'linewidth',2); 90 | plot(x_w1_axis, y_w1_axis,'b','linewidth',6); 91 | plot(x_w2_axis, y_w2_axis,'b','linewidth',6); 92 | 93 | 94 | -------------------------------------------------------------------------------- /simulation/octave-matlab/@miniskybot/get.m: -------------------------------------------------------------------------------- 1 | %%-------------------------------------------------------------------- 2 | %%-- Miniskybot Class 3 | %%-- (c) Juan Gonzalez-Gomez (Obijuan) juan@iearobotics.com 4 | %%-- May, 2012. Robotics and Cybernetics group. UPM 5 | %%---------------------------------------------------------------------- 6 | %%-- Released under the GPL license 7 | %%---------------------------------------------------------------------- 8 | 9 | %%--------------------------------- 10 | %%-- Method: get 11 | %%-- Inputs: 12 | %%-- r: A Miniskybot object 13 | %%-- f: a string with the name of the attribute to get 14 | %%--------------------------------- 15 | function s = get (r, f) 16 | switch(f) 17 | case 'pose' 18 | s = r.pose; 19 | case 'v' 20 | s = r.v; 21 | case 'w' 22 | s= r.w; 23 | case 'vmax' 24 | s= r.vmax; 25 | case 'wmax' 26 | s= r.wmax; 27 | end 28 | end 29 | 30 | 31 | -------------------------------------------------------------------------------- /simulation/octave-matlab/@miniskybot/miniskybot.m: -------------------------------------------------------------------------------- 1 | %%------------------------------------------------------------------ 2 | %%-- Miniskybot robot main class 3 | %%-- (c) Juan Gonzalez-Gomez (Obijuan) juan@iearobotics.com 4 | %%-- May, 2012. Robotics and Cybernetics group. UPM 5 | %%---------------------------------------------------------------------- 6 | %%-- Released under the GPL license 7 | %%---------------------------------------------------------------------- 8 | 9 | function r = miniskybot() 10 | 11 | %%-- All the units are in mm 12 | 13 | %%----------------------------------- 14 | %%-- Attributes 15 | %%----------------------------------- 16 | 17 | %%-- Robot pose: x,y,theta. Theta is the orientation (in radians) 18 | r.pose = [0 0 0]'; 19 | 20 | 21 | %%-- Geometric attributes 22 | %%-- Miniskybot Wheel radious (mm) 23 | r.wheel_rad = 58/2; 24 | %%-- Distance betwen the wheels and the center of mass (mm) 25 | r.l = 88/2; 26 | 27 | %%-- Maximum servo angular speed (rad/seg) 28 | %%-- It has been measurred empirically 29 | r.wheel_wmax = deg2rad(360); 30 | 31 | %%-- Maximum robot angular and linear velocities 32 | r.vmax = r.wheel_rad/2 * r.wheel_wmax; %%-- mm/sec 33 | r.wmax = r.vmax/r.l; %%-- rad/sec 34 | 35 | %%-- Current Linear and angular velocities (normalized values) 36 | %%-- v in [-1,1], w in [-1,1] 37 | r.v =0; 38 | r.w =0; 39 | 40 | %%-- Create and return the object 41 | r = class(r, 'miniskybot'); 42 | 43 | end 44 | 45 | -------------------------------------------------------------------------------- /simulation/octave-matlab/@miniskybot/set.m: -------------------------------------------------------------------------------- 1 | %%-------------------------------------------------------------------- 2 | %%-- Miniskybot Class 3 | %%-- (c) Juan Gonzalez-Gomez (Obijuan) juan@iearobotics.com 4 | %%-- May, 2012. Robotics and Cybernetics group. UPM 5 | %%---------------------------------------------------------------------- 6 | %%-- Released under the GPL license 7 | %%---------------------------------------------------------------------- 8 | 9 | %%--------------------------------- 10 | %%-- Method: set 11 | %%-- Set one attribute 12 | %%-- Inputs: 13 | %%-- r: A Miniskybot object 14 | %%--------------------------------- 15 | 16 | function s = set (p, varargin) 17 | s = p; 18 | prop = varargin{1}; 19 | val = varargin{2}; 20 | if (strcmp(prop,'pose')) 21 | s.pose(1) = val(1); 22 | s.pose(2) = val(2); 23 | s.pose(3) = val(3); 24 | elseif (strcmp(prop,'v')) 25 | s.v = val; 26 | elseif (strcmp(prop,'w')) 27 | s.w = val; 28 | end 29 | end 30 | 31 | -------------------------------------------------------------------------------- /simulation/octave-matlab/@miniskybot/step.m: -------------------------------------------------------------------------------- 1 | %%-------------------------------------------------------------------- 2 | %%-- Miniskybot Class 3 | %%-- (c) Juan Gonzalez-Gomez (Obijuan) juan@iearobotics.com 4 | %%-- May, 2012. Robotics and Cybernetics group. UPM 5 | %%---------------------------------------------------------------------- 6 | %%-- Released under the GPL license 7 | %%---------------------------------------------------------------------- 8 | 9 | %%--------------------------------- 10 | %%-- Method: step 11 | %%-- Inputs: 12 | %%-- r: A Miniskybot object 13 | %%-- st: Simulation step in seconds 14 | %%-- Simulate one step 15 | %%--------------------------------- 16 | 17 | function s = step(r, st) 18 | s = r; 19 | 20 | %-- Get the current robot orientation 21 | theta = r.pose(3); 22 | 23 | %-- Calculate the Transformation matrix 24 | %-- from the local to global frame 25 | Rz = [ 26 | cos(theta) -sin(theta) 0; 27 | sin(theta) cos(theta) 0; 28 | 0 0 1; 29 | ]; 30 | 31 | %-- Velocity vector in the local robot frame 32 | %-- It is obtained from the v and w robot parameters 33 | %-- Set by the user 34 | %-- v and w are normalized (-1,1), so they should be multiplied by 35 | %-- vmax and wmax 36 | vr = [r.v*r.vmax 0 r.w*r.wmax]'; 37 | 38 | %-- Velocity vector in the global frame 39 | vi = Rz*vr; 40 | 41 | %-- update the Robot's state 42 | %-- The new position vector is calculated from the velocity 43 | s.pose = r.pose + vi.*st; 44 | 45 | end 46 | -------------------------------------------------------------------------------- /simulation/octave-matlab/deg2rad.m: -------------------------------------------------------------------------------- 1 | %%-------------------------------------- 2 | %%-- Conversion from degrees to radians 3 | %%-------------------------------------- 4 | function rad=deg2rad(deg) 5 | rad= deg*pi/180; 6 | end 7 | -------------------------------------------------------------------------------- /simulation/octave-matlab/main.m: -------------------------------------------------------------------------------- 1 | %%-------------------------------------------------------------------- 2 | %%-- octave/matlab simulation of the kinematics of the Miniskybot robot 3 | %%-- (c) Juan Gonzalez-Gomez (Obijuan) juan@iearobotics.com 4 | %%-- May, 2012. Robotics and Cybernetics group. UPM 5 | %%---------------------------------------------------------------------- 6 | %%-- Released under the GPL license 7 | %%---------------------------------------------------------------------- 8 | %%-- How to run the simulation: just set the initial variables: 9 | %%--- Pose: (x,y) posicion and robot orientation 10 | %%-- Robot velocities: v: linear velocity (in robot frame) 11 | %%-- w: Angular velocity (in robot frame) 12 | %%-- You can also configure more parameters of the simulation as the 13 | %%-- total simulation time, simulation step, refresh time and so on 14 | %%---------------------------------------------------------------------- 15 | 16 | %%-- Create a miniskybot to simulate 17 | robot = miniskybot(); 18 | 19 | %%-- Set the robot initial pose. (x,y) in mm, orientation in radians 20 | %%-- (for that reason i have used the deg2rad() function) 21 | robot = set(robot,'pose', [-100,-100,deg2rad(-30)]); 22 | 23 | %%-- Set the robot velocities (normalized velocities, between -1 and 1) 24 | %%-- v is the linear velocity 25 | %%-- w is the angular velocity 26 | robot = set(robot,'v',0.5); 27 | robot = set(robot,'w',0.2); 28 | 29 | %%-- total simulation time (in sec) 30 | %%-- Setting total_time to a negative value will play the simulation 31 | %%-- 'forever' 32 | total_time = 10; 33 | 34 | %-- Determine how the simulation will be performed 35 | %-- If show_robot is true, the sketch of the miniskybot is drawn so that 36 | %-- the user can see the position and orientation 37 | %-- If show_tray is true, the trayectory described by the robot is shown 38 | %-- If both are FALSE, the simulation will be carried out at maximum speed 39 | %-- and the final robot trayectory will be drawn 40 | show_robot =true; 41 | show_tray = true; 42 | 43 | 44 | %-- Simulation step (in sec) 45 | sstep = 0.01; 46 | 47 | %-- Refresh time (in simulation time (sec)) 48 | %-- If the robot is moving too fast, decrease this value. 49 | %-- In my linux laptop with octave I use: refresh = 0.2 50 | %-- With matlab I use: refresh = 0.02 51 | refresh = 0.2; %%-- Too fast in matlab! If using matlab change it! 52 | 53 | %-- Current simulation time 54 | stime =0; 55 | 56 | %-- Variables for storing the robot trayectory 57 | r = get(robot,'pose'); 58 | tray_x = [r(1) ]; 59 | tray_y = [r(2) ]; 60 | 61 | 62 | %%-- Simulation main loop 63 | while(stime<=total_time || total_time<0) 64 | %- Draw the robot 65 | hold off; 66 | if (show_robot) 67 | draw(robot); 68 | set_axis(500); 69 | end; 70 | 71 | %- Draw the trayectory 72 | if (show_tray) 73 | plot(tray_x,tray_y); 74 | set_axis(500); 75 | end; 76 | 77 | if (show_robot || show_tray) 78 | pause(0.001); 79 | end; 80 | 81 | %-- update the Robot's state 82 | for n=0:sstep:refresh 83 | robot=step(robot,sstep); 84 | 85 | %-- Increase the simulation time 86 | stime = stime + sstep; 87 | end 88 | 89 | %-- Store the current position vector 90 | %-- It is for drawing the trayectory 91 | r = get(robot,'pose'); 92 | tray_x=[tray_x r(1)]; 93 | tray_y=[tray_y r(2)]; 94 | 95 | end 96 | 97 | %%-- End of simulation 98 | %%-- Draw the trayectory and robot posses, if the user selected not 99 | %%-- to shown them during simulation 100 | if (not(show_robot) && not(show_tray)) 101 | hold off; 102 | triangle(r); 103 | hold on; 104 | plot(tray_x,tray_y); 105 | set_axis(500); 106 | end; 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /simulation/octave-matlab/set_axis.m: -------------------------------------------------------------------------------- 1 | %%--------------------------------------------- 2 | %%-- Help function for seting the axis scale 3 | %%--------------------------------------------- 4 | function set_axis(l) 5 | axis([-l/2 l/2 -l/2 l/2]); 6 | grid on; 7 | end 8 | -------------------------------------------------------------------------------- /software/Miniskybot_lib/Configuration.h: -------------------------------------------------------------------------------- 1 | //-- Configuration.h 2 | 3 | //-- Distance between wheels 4 | #define DIST_WHEEL 8.5 5 | 6 | //-- Max number of elements: 7 | #define MAX_MOTORS 2 //-- Not recommended to change this, as the Miniskybot code has been developed for a 2-wheel robot 8 | #define MAX_SENSORS_US 2 9 | #define MAX_SENSORS_IR 1 10 | 11 | //-- Table containing all the alpha and beta parameters pairs for all IR sensors 12 | const float CALIBRATION_PARAM[MAX_SENSORS_IR][2] = { 13 | { 1, 1 } //-- Alpha1, Beta1 14 | }; 15 | 16 | //-- Types of sensors: 17 | #define IR 0 //-- Infrared sensor 18 | #define US 1 //-- Ultrasound sensor, generic 19 | #define US_3PIN 1 //-- Ultrasound sensor, 3 pin 20 | #define US_4PIN 2 //-- Ultrasound sensor, 4 pin 21 | 22 | 23 | //-- Table containing all the pairs (velocity/value) 24 | //-- Must be ordered from higher to lower values 25 | #define NUM_VALUES 13 26 | const float VELOCITY_TABLE[NUM_VALUES][2] = { 27 | { 14.5, 255 }, 28 | { 12.5, 235}, 29 | { 12.0, 215}, 30 | { 12.0, 195}, 31 | { 11.0, 175}, 32 | { 10.0, 155}, 33 | { 9.0, 135}, 34 | { 7.0, 115}, 35 | { 6.0, 95}, 36 | { 4.0, 75}, 37 | { 3.0, 65}, 38 | { 2.0, 55}, 39 | { 0.0, 0} 40 | }; 41 | -------------------------------------------------------------------------------- /software/Miniskybot_lib/Miniskybot.cpp: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | //------------------------------------------------------------------------------ 3 | //-- Miniskybot library 4 | //------------------------------------------------------------------------------ 5 | //-- Simplify working and programming a Miniskybot (or similar) robot by using 6 | //-- this library. 7 | //-- 8 | //-- It contains functions to control a pair of motors and some sensors. 9 | //-- 10 | //-- For more info, read README 11 | //------------------------------------------------------------------------------ 12 | //-- Author: 13 | //-- David Estévez-Fernández, Jun 2012 14 | //-- GPL license 15 | //------------------------------------------------------------------------------ 16 | //-- Requires a Miniskybot robot, design by Juan González-Gómez (Obijuan): 17 | //-- https://github.com/Obijuan/Miniskybot 18 | //------------------------------------------------------------------------------ 19 | 20 | #include "Miniskybot.h" 21 | 22 | //-- Constructor 23 | Miniskybot::Miniskybot() 24 | { 25 | _num_motors = 0; 26 | _num_US_sensor = 0; 27 | _num_IR_sensor = 0; 28 | 29 | _velocity = 0; 30 | _angularVelocity = 0; 31 | } 32 | 33 | 34 | //-- Setup: 35 | //----------------------------------------------------- 36 | //-- Add elements 37 | void Miniskybot::addMotor( int pinLeft, int pinRight, int pinEnable ) 38 | { 39 | if ( _num_motors < MAX_MOTORS) 40 | { 41 | motor[_num_motors].attach( pinLeft, pinRight, pinEnable); 42 | _num_motors++; 43 | } 44 | } 45 | 46 | 47 | void Miniskybot::addSensor( int type, int pin) 48 | { 49 | if ( type == IR ) 50 | { 51 | if ( _num_IR_sensor < MAX_SENSORS_IR ) 52 | { 53 | sensor_IR[_num_IR_sensor].attach( pin, CALIBRATION_PARAM[_num_IR_sensor][0],CALIBRATION_PARAM[_num_IR_sensor][1] ); 54 | _num_IR_sensor++; 55 | } 56 | 57 | } 58 | else if (type == US_3PIN) 59 | { 60 | if ( _num_US_sensor < MAX_SENSORS_US ) 61 | { 62 | sensor_US[_num_US_sensor].attach( pin); 63 | _num_US_sensor++; 64 | } 65 | } 66 | } 67 | 68 | 69 | void Miniskybot::addSensor( int type, int pinTrigger, int pinEcho) 70 | { 71 | if (type == US_4PIN) 72 | { 73 | if ( _num_US_sensor < MAX_SENSORS_US ) 74 | { 75 | sensor_US[_num_US_sensor].attach( pinTrigger, pinEcho); 76 | _num_US_sensor++; 77 | } 78 | } 79 | } 80 | 81 | 82 | //-- Movement control: 83 | //----------------------------------------------------- 84 | //-- Access individual elements (or all elements if index == -1) 85 | 86 | //-- Gives a motor the control value [0-255] 87 | void Miniskybot::motorControl( short value , int index) 88 | { 89 | if (index == -1 ) 90 | { 91 | //-- Set velocity in all motors 92 | for (int i = 0; i < _num_motors; i++) 93 | { 94 | motor[i].setVelocity( value); 95 | } 96 | } 97 | else 98 | { 99 | //-- Set velocity in just one motor 100 | if (index < _num_motors) 101 | motor[index].setVelocity( value ); 102 | } 103 | } 104 | 105 | //-- Sets a motor with the velocity suggested 106 | void Miniskybot::motorVelocity( int velocity, int index) 107 | { 108 | //-- Looks for the control value in the table: 109 | short value = lookUp(velocity); 110 | 111 | //-- Sets that value 112 | motorControl(value , index); 113 | } 114 | 115 | //-- Robot control 116 | void Miniskybot::move( float velocity, float angularVelocity) 117 | { 118 | //-- This function gives priority to turning over linear speed 119 | 120 | //-- This action can only be executed with two wheels 121 | if( _num_motors == MAX_MOTORS ) 122 | { 123 | //-- Calculate max angular velocity 124 | float omega_max = 2*VELOCITY_TABLE[0][0]/DIST_WHEEL; 125 | 126 | //-- If angular velocity requested is larger than max, use max angular speed 127 | if ( abs(angularVelocity) > omega_max) { angularVelocity > 0 ? angularVelocity = omega_max : angularVelocity = -omega_max;} 128 | 129 | //-- Find max linear velocity, given that angular velocity 130 | float linear_max = VELOCITY_TABLE[0][0] - ( DIST_WHEEL / 2.0) * abs(angularVelocity); 131 | 132 | //-- If angular velocity requested is larger than max, use max angular speed 133 | if ( abs(velocity) > linear_max) { velocity > 0 ? velocity = linear_max : velocity = -linear_max;} 134 | 135 | //-- Calculate the needed speed of each wheel: 136 | float v_left, v_right; 137 | v_right = velocity + angularVelocity * DIST_WHEEL / 2.0; 138 | v_left = velocity - angularVelocity * DIST_WHEEL / 2.0; 139 | 140 | //-- Look for the values corresponging to that speeds: 141 | short value_left, value_right; 142 | value_left = v_left/abs(v_left)*lookUp( abs(v_left)); 143 | value_right = v_right/abs(v_right)*lookUp( abs(v_right)); 144 | 145 | //-- Set the speed to the motors: 146 | motor[0].setVelocity( value_left); 147 | motor[1].setVelocity( -value_right); 148 | } 149 | 150 | } 151 | 152 | //-- Sensor data: 153 | //---------------------------------------------------- 154 | float Miniskybot::getDistance( int type, int sensor ) 155 | { 156 | if ( type == IR ) 157 | { 158 | if ( sensor < _num_IR_sensor ) 159 | return sensor_IR[sensor].getLength(); 160 | } 161 | else if (type == US || type == US_3PIN || type == US_4PIN) 162 | { 163 | if (sensor < _num_US_sensor) 164 | return sensor_US[sensor].getLength(); 165 | } 166 | } 167 | 168 | //-- Look for the value corresponding to a certain velocity in the table 169 | short Miniskybot::lookUp( float target) 170 | { 171 | //-- Search index 172 | int lower, middle, top; 173 | lower = 0; 174 | top = NUM_VALUES-1; 175 | 176 | //--Current value 177 | float value; 178 | 179 | while (lower <= top) 180 | { 181 | middle = (top+lower)/2; 182 | value = VELOCITY_TABLE[middle][0]; 183 | 184 | if ( value == target ) 185 | return VELOCITY_TABLE[middle][1]; 186 | else if (value < target ) 187 | top = middle-1; 188 | else if (value > target ) 189 | lower = middle+1; 190 | } 191 | 192 | return VELOCITY_TABLE[middle][1]; 193 | } 194 | 195 | 196 | 197 | 198 | 199 | 200 | -------------------------------------------------------------------------------- /software/Miniskybot_lib/Miniskybot.h: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | //------------------------------------------------------------------------------ 3 | //-- Miniskybot library 4 | //------------------------------------------------------------------------------ 5 | //-- Simplify working and programming a Miniskybot (or similar) robot by using 6 | //-- this library. 7 | //-- 8 | //-- It contains functions to control a pair of motors and some sensors. 9 | //-- 10 | //-- For more info, read README 11 | //------------------------------------------------------------------------------ 12 | //-- Author: 13 | //-- David Estévez-Fernández, Jun 2012 14 | //-- GPL license 15 | //------------------------------------------------------------------------------ 16 | //-- Requires a Miniskybot robot, design by Juan González-Gómez (Obijuan): 17 | //-- https://github.com/Obijuan/Miniskybot 18 | //------------------------------------------------------------------------------ 19 | 20 | #ifndef Miniskybot_H 21 | #define Miniskybot_H 22 | 23 | 24 | #if defined(ARDUINO) && ARDUINO >= 100 25 | #include "Arduino.h" 26 | #else 27 | #include "WProgram.h" 28 | #endif 29 | 30 | #include "Miniskybot_motors.h" 31 | #include "Miniskybot_sensors.h" 32 | #include "Configuration.h" 33 | 34 | 35 | class Miniskybot 36 | { 37 | public: 38 | 39 | //-- Constructor 40 | Miniskybot(); 41 | 42 | //-- Setup: 43 | //----------------------------------------------------- 44 | //-- Add elements 45 | void addMotor( int pinLeft, int pinRight, int pinEnable ); 46 | 47 | void addSensor( int type, int pin); 48 | void addSensor( int type, int pinTrigger, int pinEcho); 49 | 50 | //-- Movement control: 51 | //----------------------------------------------------- 52 | //-- Access individual elements (or all if index == -1) 53 | void motorControl( short value , int index = -1); //-- Gives a motor the control value [0-255] 54 | void motorVelocity( int velocity, int index = -1); //-- Sets a motor with the velocity suggested 55 | 56 | //-- Robot control 57 | void move( float velocity, float angularVelocity); 58 | 59 | //-- Sensor data: 60 | //---------------------------------------------------- 61 | float getDistance( int type, int sensor ); 62 | 63 | 64 | private: 65 | 66 | //-- Motors 67 | MotorL293 motor[MAX_MOTORS]; 68 | 69 | //-- Sensors 70 | SensorUS sensor_US[MAX_SENSORS_US]; 71 | SensorIR sensor_IR[MAX_SENSORS_IR]; 72 | 73 | //-- Counters 74 | unsigned short _num_motors; 75 | unsigned short _num_US_sensor; 76 | unsigned short _num_IR_sensor; 77 | 78 | //-- Currentp velocities: 79 | float _velocity, _angularVelocity; 80 | 81 | //-- Look for a value corresponding to a velocity in the table 82 | short lookUp( float target); 83 | 84 | }; 85 | 86 | 87 | #endif // Miniskybot_H 88 | -------------------------------------------------------------------------------- /software/Miniskybot_lib/Miniskybot_motors.cpp: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | //------------------------------------------------------------------------------ 3 | //-- Miniskybot library 4 | //------------------------------------------------------------------------------ 5 | //-- Simplify working and programming a Miniskybot (or similar) robot by using 6 | //-- this library. 7 | //-- 8 | //-- This library takes charge of controlling the motors by means of a L293 dual 9 | //-- H-bridge circuit, but extra functions could be added to work with more types 10 | //-- of motors. 11 | //-- 12 | //-- For more info, read README 13 | //------------------------------------------------------------------------------ 14 | //-- Author: 15 | //-- David Estévez-Fernández, Jun 2012 16 | //-- GPL license 17 | //------------------------------------------------------------------------------ 18 | //-- Requires a Miniskybot robot, design by Juan González-Gómez (Obijuan): 19 | //-- https://github.com/Obijuan/Miniskybot 20 | //------------------------------------------------------------------------------ 21 | 22 | 23 | #include "Miniskybot_motors.h" 24 | 25 | 26 | //------------------------------------------------------------------------- 27 | //-- Constructor 28 | //------------------------------------------------------------------------- 29 | //-- Arguments: pins conected to the H-bridge (left, right and chip enable) 30 | //------------------------------------------------------------------------- 31 | 32 | MotorL293::MotorL293( ) 33 | { 34 | _pinLeft = -1; 35 | _pinRight = -1; 36 | _pinEnable = -1; 37 | 38 | _speed = 0; 39 | _forward = true; 40 | } 41 | 42 | 43 | //-------------------------------------- 44 | //-- Initialize the motor object: 45 | //-------------------------------------- 46 | 47 | void MotorL293::attach(int pinLeft, int pinRight, int pinEnable) 48 | { 49 | //-- Save the pin configuration 50 | _pinLeft = pinLeft; 51 | _pinRight = pinRight; 52 | _pinEnable = pinEnable; 53 | 54 | //-- Set the pins as outputs 55 | pinMode( _pinLeft, OUTPUT); 56 | pinMode( _pinRight, OUTPUT); 57 | pinMode( _pinEnable, OUTPUT); 58 | 59 | //-- Put all pins at 0V (motor OFF) 60 | digitalWrite( _pinLeft, LOW); 61 | digitalWrite( _pinRight, LOW); 62 | digitalWrite( _pinEnable, LOW ); 63 | } 64 | 65 | 66 | //--------------------------------------------------------- 67 | //-- Sets motor velocity to a value between 0 and 255. 68 | //-- Sense is given by the sign of velocity. 69 | //--------------------------------------------------------- 70 | 71 | void MotorL293::setVelocity( int velocity) 72 | { 73 | //-- If pins are not assigned, don't execute any code 74 | if ( _pinLeft != -1 && _pinRight != -1 && _pinEnable != -1) 75 | { 76 | //-- Distinguish between forward / backwards movement 77 | if ( velocity >= 0 ) 78 | { 79 | //-- Assign new values to variables: 80 | _speed = velocity; 81 | _forward = true; 82 | 83 | //-- Send the correct signals to the H-bridge: 84 | digitalWrite( _pinLeft, LOW); 85 | digitalWrite( _pinRight, HIGH); 86 | } 87 | else 88 | { 89 | //-- Assign new values to variables: 90 | _speed = -velocity; 91 | _forward = false; 92 | 93 | //-- Send the correct signals to the H-bridge: 94 | digitalWrite( _pinLeft, HIGH); 95 | digitalWrite( _pinRight, LOW); 96 | } 97 | 98 | //-- Set speed: 99 | analogWrite( _pinEnable, _speed); 100 | } 101 | } 102 | 103 | 104 | //--------------------------------------------------------- 105 | //-- Sets motor velocity to a value between 0 and 255. 106 | //-- Sense is given explicitely by forward, velocity 107 | //-- should be positive. 108 | //--------------------------------------------------------- 109 | 110 | void MotorL293::setVelocity( int velocity, bool forward) 111 | { 112 | //-- If pins are not assigned, don't execute any code 113 | if ( _pinLeft != -1 && _pinRight != -1 && _pinEnable != -1) 114 | { 115 | //-- Assign new values to variables: 116 | _speed = abs(velocity); 117 | _forward = forward; 118 | 119 | 120 | //-- Send the correct signals to the H-bridge: 121 | if ( _forward ) 122 | { 123 | digitalWrite( _pinLeft, LOW); 124 | digitalWrite( _pinRight, HIGH); 125 | } 126 | else 127 | { 128 | digitalWrite( _pinLeft, HIGH); 129 | digitalWrite( _pinRight, LOW); 130 | } 131 | 132 | //-- Set speed: 133 | analogWrite( _pinEnable, _speed); 134 | } 135 | } 136 | 137 | 138 | //---------------------------------------------------- 139 | //-- Returns the value of the current velocity 140 | //-- (not actual velocity, the one given by the user) 141 | //---------------------------------------------------- 142 | 143 | int MotorL293::getVelocity() 144 | { 145 | //-- Set the modulus: 146 | int velocity = _speed; 147 | 148 | //-- Set the sense: 149 | if ( !_forward) {velocity*=-1;} 150 | 151 | return velocity; 152 | } 153 | 154 | 155 | 156 | //---------------------------------------------------- 157 | //-- Just stops the motor 158 | //---------------------------------------------------- 159 | 160 | void MotorL293::emergencyBrake() 161 | { 162 | //-- Stop the motor 163 | digitalWrite( _pinEnable, LOW); 164 | digitalWrite( _pinLeft, HIGH); 165 | digitalWrite( _pinRight, HIGH); 166 | } 167 | 168 | 169 | -------------------------------------------------------------------------------- /software/Miniskybot_lib/Miniskybot_motors.h: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | //------------------------------------------------------------------------------ 3 | //-- Miniskybot library 4 | //------------------------------------------------------------------------------ 5 | //-- Simplify working and programming a Miniskybot (or similar) robot by using 6 | //-- this library. 7 | //-- 8 | //-- This library takes charge of controlling the motors by means of a L293 dual 9 | //-- H-bridge circuit, but extra functions could be added to work with more types 10 | //-- of motors. 11 | //-- 12 | //-- For more info, read README 13 | //------------------------------------------------------------------------------ 14 | //-- Author: 15 | //-- David Estévez-Fernández, Jun 2012 16 | //-- GPL license 17 | //------------------------------------------------------------------------------ 18 | //-- Requires a Miniskybot robot, design by Juan González-Gómez (Obijuan): 19 | //-- https://github.com/Obijuan/Miniskybot 20 | //------------------------------------------------------------------------------ 21 | 22 | #ifndef Mini_motors_h 23 | #define Mini_motors_h 24 | 25 | //-- Making it compatible with Arduino 1.0 and Arduino 22: 26 | //-- (source: http://forums.adafruit.com/viewtopic.php?f=25&t=24563 ) 27 | 28 | #if defined(ARDUINO) && ARDUINO >= 100 29 | #include 30 | #else 31 | #include 32 | #endif 33 | 34 | class MotorL293 35 | { 36 | public: 37 | 38 | //-- Constructor: 39 | MotorL293(); 40 | 41 | //-- Setup function, attach to its pins: 42 | void attach(int pinLeft, int pinRight, int pinEnable); 43 | 44 | //-- Set velocity of a motor ( 0-255 , if > 0 forward, if < 0 backwards) 45 | void setVelocity( int velocity ); 46 | 47 | //-- Set velocity of a motor ( 0-255 , true -> forward, false -> backwards) 48 | void setVelocity( int velocity , bool sense); 49 | 50 | //-- Get the current velocity of the motor (not actual velocity, the assigned one) [-255,255] 51 | int getVelocity(); 52 | 53 | //-- Stop the motor 54 | void emergencyBrake(); 55 | 56 | 57 | private: 58 | unsigned int _speed; //-- Speed of the motor (modulus) 59 | bool _forward; //-- true if forwards, false if backwards 60 | int _pinLeft, _pinRight, _pinEnable; //-- Stores the pins for H-bridge connection 61 | 62 | }; 63 | 64 | #endif //Mini_motors_h 65 | -------------------------------------------------------------------------------- /software/Miniskybot_lib/Miniskybot_sensors.cpp: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | //------------------------------------------------------------------------------ 3 | //-- Miniskybot library 4 | //------------------------------------------------------------------------------ 5 | //-- Simplify working and programming a Miniskybot (or similar) robot by using 6 | //-- this library. 7 | //-- 8 | //-- This library takes charge of obtaining data of several sensors, such as IR 9 | //-- sensors or ultrasound sensors. 10 | //-- 11 | //-- For more info, read README 12 | //------------------------------------------------------------------------------ 13 | //-- Author: 14 | //-- David Estévez-Fernández, Jun 2012 15 | //-- GPL license 16 | //------------------------------------------------------------------------------ 17 | //-- Requires a Miniskybot robot, design by Juan González-Gómez (Obijuan): 18 | //-- https://github.com/Obijuan/Miniskybot 19 | //------------------------------------------------------------------------------ 20 | 21 | 22 | #include "Miniskybot_sensors.h" 23 | 24 | 25 | //################################################################################ 26 | //################################################################################ 27 | //-- SensorIR members 28 | //################################################################################ 29 | //################################################################################ 30 | 31 | //-- Constructor 32 | SensorIR:: SensorIR() 33 | { 34 | _pin = -1; 35 | _length = 0; 36 | _alpha = _beta = 1; 37 | } 38 | 39 | //-- Attach the sensor to a pin 40 | void SensorIR::attach(int pin) {_pin = pin;} 41 | 42 | //-- Attach the sensor to a pin (with calibration) 43 | void SensorIR::attach( int pin, float alpha, float beta) 44 | { 45 | _pin = pin; 46 | calibrate( alpha, beta); 47 | } 48 | 49 | 50 | //-- Get the voltage measure from the arduino 51 | float SensorIR::getValue() 52 | { 53 | //-- If pin not assigned, return -1 54 | if (_pin != -1) 55 | { 56 | //-- Read the analog pin: 57 | int reading = analogRead(_pin); 58 | 59 | //-- Map the reading: 60 | float value = 5/1023.0*reading; 61 | 62 | //-- Return the value 63 | return value; 64 | } 65 | else 66 | { 67 | return -1; 68 | } 69 | } 70 | 71 | 72 | //-- Retuns the distance (cm) to the obstacle 73 | float SensorIR::getLength() 74 | { 75 | //-- If pin not assigned, return -1 76 | if (_pin != -1) 77 | { 78 | //-- Get the voltage reading: 79 | float value = getValue(); 80 | 81 | //-- Convert the value to distance: 82 | float length = _alpha * pow(value/1000, -_beta); 83 | 84 | //-- Assing this value to the internal variable: 85 | _length = length; 86 | 87 | //-- return the length: 88 | return length; 89 | } 90 | else 91 | { 92 | return -1; 93 | } 94 | } 95 | 96 | 97 | //-- Sets alpha and beta parameters of the sensor 98 | void SensorIR::calibrate( float alpha, float beta) 99 | { 100 | _alpha = alpha; 101 | _beta = beta; 102 | } 103 | 104 | 105 | 106 | //################################################################################ 107 | //################################################################################ 108 | //-- SensorUS members 109 | //################################################################################ 110 | //################################################################################ 111 | 112 | //-- Constructor 113 | SensorUS::SensorUS() 114 | { 115 | _length = 0; 116 | _pin[0] = -1; 117 | _pin[1] = -1; 118 | } 119 | 120 | //-- Attach sensor to pin and setup 121 | void SensorUS::attach( int pinSignal) //-- For 3-wire US sensors (single trigger/echo) 122 | { 123 | _type = true; 124 | _pin[0] = pinSignal; 125 | _pin[1] = -1; 126 | } 127 | 128 | 129 | void SensorUS::attach( int pinTrigger, int pinEcho) //-- For 4-wire US sensor 130 | { 131 | _type = false; 132 | _pin[0] = pinTrigger; 133 | _pin[1] = pinEcho; 134 | 135 | //-- Setup 136 | pinMode( _pin[0], OUTPUT); //-- Set trigger pin as output 137 | pinMode( _pin[1], INPUT); //-- Set echo pin as input 138 | } 139 | 140 | 141 | //-- Read distance: 142 | float SensorUS::getLength() 143 | { 144 | //-- If pin not assigned, don't execute anything: 145 | if ( _pin[0] != -1) 146 | { 147 | //-- Different action for different sensors: 148 | if (_type) 149 | { 150 | //--------------------------------------------------------- 151 | //-- This is performed for a 3-wire sensor 152 | //-- Based on: 153 | //-- http://www.arduino.cc/en/Tutorial/Ping 154 | //-------------------------------------------------- 155 | 156 | int pin = _pin[0]; 157 | 158 | //-- Set pin as output: 159 | pinMode( pin, OUTPUT); 160 | 161 | //--Send the pulse: 162 | digitalWrite( pin, LOW); 163 | delayMicroseconds(2); 164 | digitalWrite( pin, HIGH); 165 | delayMicroseconds(10); 166 | digitalWrite( pin, LOW); 167 | 168 | //-- Set pin as input: 169 | pinMode( pin, INPUT); 170 | 171 | //-- Measure the response pulse: 172 | unsigned long duration = pulseIn( pin, HIGH); 173 | 174 | //--Calculating the distance: 175 | unsigned long length = duration / 29 / 2; //--Divide the echo by two, and by speed of sound 176 | 177 | //-- Store the legth: 178 | _length = length; 179 | 180 | //-- Return the distance 181 | return length; 182 | } 183 | else 184 | { 185 | //--------------------------------------------------------- 186 | //-- This is performed for a 4-wire sensor 187 | //-- 188 | //-- 189 | //-- Based on: 190 | //-- Library for HC-SR04 Ultrasonic Ranging Module.library 191 | //-- Created by ITead studio. Apr 20, 2010. 192 | //-- http://www.iteadstudio.com 193 | //--------------------------------------------------------- 194 | 195 | //-- Variables created for increased readability: 196 | int trigger = _pin[0], echo = _pin[1]; 197 | 198 | //-- Obtaining the pulse length: 199 | 200 | //--Send the pulse: 201 | digitalWrite( trigger, LOW); 202 | delayMicroseconds(2); 203 | digitalWrite( trigger, HIGH); 204 | delayMicroseconds(10); 205 | digitalWrite( trigger, LOW); 206 | 207 | //-- Measure the response pulse: 208 | unsigned long duration = pulseIn( echo, HIGH); 209 | 210 | 211 | //--Calculating the distance: 212 | unsigned long length = duration / 29 / 2; //--Divide the echo by two, and by speed of sound 213 | 214 | //-- Store the legth: 215 | _length = length; 216 | 217 | //-- Return the distance 218 | return length; 219 | } 220 | } 221 | } 222 | 223 | 224 | -------------------------------------------------------------------------------- /software/Miniskybot_lib/Miniskybot_sensors.h: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | //------------------------------------------------------------------------------ 3 | //-- Miniskybot library 4 | //------------------------------------------------------------------------------ 5 | //-- Simplify working and programming a Miniskybot (or similar) robot by using 6 | //-- this library. 7 | //-- 8 | //-- This library takes charge of obtaining data of several sensors, such as IR 9 | //-- sensors or ultrasound sensors. 10 | //-- 11 | //-- For more info, read README 12 | //------------------------------------------------------------------------------ 13 | //-- Author: 14 | //-- David Estévez-Fernández, Jun 2012 15 | //-- GPL license 16 | //------------------------------------------------------------------------------ 17 | //-- Requires a Miniskybot robot, design by Juan González-Gómez (Obijuan): 18 | //-- https://github.com/Obijuan/Miniskybot 19 | //------------------------------------------------------------------------------ 20 | 21 | #ifndef Mini_sensors_h 22 | #define Mini_sensors_h 23 | 24 | //-- Making it compatible with Arduino 1.0 and Arduino 22: 25 | //-- (source: http://forums.adafruit.com/viewtopic.php?f=25&t=24563 ) 26 | 27 | #if defined(ARDUINO) && ARDUINO >= 100 28 | #include 29 | #else 30 | #include 31 | #endif 32 | 33 | class SensorIR 34 | { 35 | public: 36 | 37 | //-- Constructor: 38 | SensorIR(); 39 | 40 | //-- Setup (attach the servo to the pin) 41 | void attach( int pin); 42 | void attach( int pin, float alpha, float beta); 43 | 44 | //-- Get the voltage measure from the arduino 45 | float getValue(); 46 | 47 | //-- Retuns the distance (cm) to the obstacle 48 | float getLength(); 49 | 50 | //-- Sets alpha and beta parameters of the sensor 51 | void calibrate( float alpha, float beta); 52 | 53 | private: 54 | 55 | int _pin; 56 | float _length; 57 | float _alpha, _beta; 58 | }; 59 | 60 | class SensorUS 61 | { 62 | public: 63 | 64 | //-- Constructor 65 | SensorUS(); 66 | 67 | //-- Attach the sensor to the pins 68 | void attach( int pinSignal); //-- For 3-wire US sensors (single trigger/echo) 69 | void attach( int pinTrigger, int pinEcho); //-- For 4-wire US sensor 70 | 71 | //-- Read distance: 72 | float getLength(); 73 | 74 | private: 75 | bool _type; //-- True for 3-wire, False for 4-wire 76 | int _pin[2]; 77 | float _length; 78 | }; 79 | 80 | #endif // Mini_sensors_h#include 81 | -------------------------------------------------------------------------------- /software/Miniskybot_lib/examples/Miniskybot_calibration/Miniskybot_calibration.pde: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define LEFT_MOTOR 0 4 | #define RIGHT_MOTOR 1 5 | 6 | const short BRIDGE_L1 = 2; 7 | const short BRIDGE_R1 = 4; 8 | const short BRIDGE_E1 = 3; 9 | 10 | const short BRIDGE_L2 = 7; 11 | const short BRIDGE_R2 = 6; 12 | const short BRIDGE_E2 = 5; 13 | 14 | const unsigned TIME = 500; //-- (ms) 15 | 16 | #define BUFFER_SIZE 4 17 | char buffer[BUFFER_SIZE]; 18 | 19 | Miniskybot miniskybot; 20 | 21 | 22 | void setup() 23 | { 24 | //-- Configuring miniskybot: adding hardware 25 | miniskybot.addMotor(BRIDGE_L1, BRIDGE_R1, BRIDGE_E1); 26 | miniskybot.addMotor(BRIDGE_L2, BRIDGE_R2, BRIDGE_E2); 27 | 28 | //-- Start serial connection 29 | Serial.begin(9600); 30 | Serial.println( "OK!"); 31 | Serial.flush(); 32 | } 33 | 34 | void loop() 35 | { 36 | int velocity; 37 | 38 | bool flag = true; 39 | while(flag) 40 | { 41 | if ( Serial.available() > 0 ) 42 | { 43 | //-- Recieve the command: 44 | delay(20); //-- Waits for the buffer to be filled 45 | 46 | int data = Serial.available(); //-- Number of bytes recieved 47 | 48 | if (data > BUFFER_SIZE) //--Avoid overflow 49 | data = BUFFER_SIZE; 50 | 51 | for ( int i = 0; i < data; i++) //-- Write the data on the buffer 52 | buffer[i] = Serial.read(); 53 | 54 | //-- Obtain velocity 55 | velocity = atoi( buffer ); 56 | 57 | //-- If it doesn't recognize the command, or has received it correctly 58 | //-- prepare for a new command: 59 | Serial.flush(); 60 | erase(buffer); 61 | 62 | //-- Exit the loop 63 | flag = false; 64 | } 65 | } 66 | 67 | //-- Set the velocity obtained via serial port on the motors 68 | miniskybot.motorControl( velocity, LEFT_MOTOR); 69 | miniskybot.motorControl( -velocity, RIGHT_MOTOR); 70 | 71 | //-- Wait TIME ms 72 | delay(TIME); 73 | 74 | //-- Stop the robot 75 | miniskybot.motorControl( 0, LEFT_MOTOR); 76 | miniskybot.motorControl( 0, RIGHT_MOTOR); 77 | 78 | } 79 | 80 | //-- This erases the buffer when needed 81 | void erase( char *buffer) 82 | { 83 | for (int i; i < BUFFER_SIZE ; i++) { buffer[i] = '\0';} 84 | } 85 | 86 | -------------------------------------------------------------------------------- /software/README: -------------------------------------------------------------------------------- 1 | This is the software that can be used to control the Miniskybot robot 2 | 3 | - raw_examples: Very basic programming examples. They DO NOT use the Miniskybot library 4 | - Miniskybot_lib: Simple library for controlling the miniskybot robot 5 | -------------------------------------------------------------------------------- /software/raw_examples/digital_ir_test/digital_ir_test.ino: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------- 2 | //-- Digital ir test 3 | //-- 4 | //-- A simple test for the digital infrarred sensors 5 | //-- 6 | //-- Two ir sensors are connected to the skymega/arduino 7 | //-- The readings are sent by the serial port 8 | //-- 9 | //-- 1 means white 10 | //-- 0 menas black 11 | //---------------------------------------------------------------- 12 | //-- (c) Juan Gonzalez (Obijuan). Oct - 2013 13 | //-- Released under the GPL v3 license 14 | //---------------------------------------------------------------- 15 | 16 | #include 17 | 18 | //-- If using Arduino uno you can comment it out 19 | #include 20 | 21 | //-- Values for reading the sensors 22 | int s1, s2; 23 | 24 | void setup() 25 | { 26 | //-- Configure the serial port 27 | Serial.begin(9600); 28 | 29 | //-- In the miniskybot robot (with the skymega) 30 | //-- the IR sensores are connected through the A0 and A1 pins 31 | //-- (located in the expansion port) 32 | //-- Configure A0 and A1 as digital inputs 33 | pinMode(A0, INPUT); 34 | pinMode(A1, INPUT); 35 | } 36 | 37 | 38 | void loop() 39 | { 40 | //-- Read the IR sensors 41 | s1 = digitalRead(A0); 42 | s2 = digitalRead(A1); 43 | 44 | //-- Print the values 45 | Serial.print(s1, DEC); 46 | Serial.print(" "); 47 | Serial.print(s2, DEC); 48 | Serial.println(); 49 | 50 | delay(100); 51 | } 52 | 53 | 54 | -------------------------------------------------------------------------------- /software/raw_examples/follow_path/follow_path.ino: -------------------------------------------------------------------------------- 1 | //---------------------------------------------------------- 2 | //-- Example of a line follower robot 3 | //-- 4 | //-- It is a mixture between the digital_ir_test and motor_test 5 | //-- examples 6 | //-- 7 | //-- The miniskybot will follow the black path, using 8 | //-- 2 digital ir sensors. When the 2 sensors are reading white, 9 | //-- the robot is stopped. 10 | //-- 11 | //-- The algorith is pretty basic. It is summarized in the following table 12 | //-- 13 | //-- Left sensor Right sensor Action 14 | //-- ---------- ------------ ------------ 15 | //-- black black move forward 16 | //-- white black turn right 17 | //-- black white turn left 18 | //-- white white stop 19 | //-- 20 | //---------------------------------------------------------------- 21 | //-- (c) Juan Gonzalez (Obijuan). Oct - 2013 22 | //-- Released under the GPL v3 license 23 | //---------------------------------------------------------------- 24 | 25 | #include 26 | 27 | //-- If using Arduino uno you can comment it out 28 | #include 29 | 30 | //-- Constants for the right motor 31 | const int MOTOR_RIGHT = SERVO2; //-- If using arduino, write the pin number instead 32 | const int MOTOR_RIGHT_FW = 0; //-- Move the right motor forward 33 | const int MOTOR_RIGHT_BW = 180; //-- Move the right motor backward 34 | const int MOTOR_RIGHT_STOP = 90; //-- Stop the right motor 35 | 36 | //-- Constants for the left motor 37 | const int MOTOR_LEFT = SERVO4; //-- If using arduino, write the pin number instead 38 | const int MOTOR_LEFT_FW = 180; //-- Move the left motor forward 39 | const int MOTOR_LEFT_BW = 0; //-- Move the right motor backward 40 | const int MOTOR_LEFT_STOP = 90; //-- Stop the left motor 41 | 42 | 43 | //-- The two motors are servos that can turn freely 44 | Servo rm; //-- Right motor 45 | Servo lm; //-- Left motor 46 | 47 | //-- Right and left IR sensors 48 | int rs,ls; 49 | 50 | const int BLACK = 0; 51 | const int WHITE = 1; 52 | 53 | //-- Move the robot forward 54 | void robot_fw() 55 | { 56 | rm.write(MOTOR_RIGHT_FW); 57 | lm.write(MOTOR_LEFT_FW); 58 | } 59 | 60 | //-- Move the robot backward 61 | void robot_bw() 62 | { 63 | rm.write(MOTOR_RIGHT_BW); 64 | lm.write(MOTOR_LEFT_BW); 65 | } 66 | 67 | //-- Stop the robot 68 | void robot_stop() 69 | { 70 | rm.write(MOTOR_RIGHT_STOP); 71 | lm.write(MOTOR_LEFT_STOP); 72 | } 73 | 74 | //-- Turn right the robot 75 | void robot_right() 76 | { 77 | lm.write(MOTOR_LEFT_FW); 78 | rm.write(MOTOR_RIGHT_BW); 79 | } 80 | 81 | 82 | //-- Turn left the robot 83 | void robot_left() 84 | { 85 | lm.write(MOTOR_LEFT_BW); 86 | rm.write(MOTOR_RIGHT_FW); 87 | } 88 | 89 | 90 | 91 | void setup() 92 | { 93 | //-- Configure IR sensors (digital inputs) 94 | pinMode(A0, INPUT); 95 | pinMode(A1, INPUT); 96 | 97 | //-- Configure motors (hacked servos) 98 | rm.attach(MOTOR_RIGHT); 99 | lm.attach(MOTOR_LEFT); 100 | } 101 | 102 | void loop() 103 | { 104 | 105 | //-- Read the IR sensors 106 | ls = digitalRead(A0); 107 | rs = digitalRead(A1); 108 | 109 | //-- Move the robot according to the inputs 110 | if (ls == BLACK && rs == BLACK) 111 | robot_fw(); 112 | else if (ls == WHITE && rs == BLACK) 113 | robot_right(); 114 | else if (ls == BLACK && rs == WHITE) 115 | robot_left(); 116 | else 117 | robot_stop(); 118 | 119 | } 120 | 121 | 122 | -------------------------------------------------------------------------------- /software/raw_examples/motor_test/motor_test.ino: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------- 2 | //-- Motor test 3 | //-- 4 | //-- A simple test of the motors. The robot will move forward, 5 | //--- backward, turn left and turn right 6 | //---------------------------------------------------------------- 7 | //-- (c) Juan Gonzalez (Obijuan). Oct - 2013 8 | //-- Released under the GPL v3 license 9 | //---------------------------------------------------------------- 10 | 11 | #include 12 | 13 | //-- If using Arduino uno you can comment it out 14 | #include 15 | 16 | //-- Constants for the right motor 17 | const int MOTOR_RIGHT = SERVO2; //-- If using arduino, write the pin number instead 18 | const int MOTOR_RIGHT_FW = 0; //-- Move the right motor forward 19 | const int MOTOR_RIGHT_BW = 180; //-- Move the right motor backward 20 | const int MOTOR_RIGHT_STOP = 90; //-- Stop the right motor 21 | 22 | //-- Constants for the left motor 23 | const int MOTOR_LEFT = SERVO4; //-- If using arduino, write the pin number instead 24 | const int MOTOR_LEFT_FW = 180; //-- Move the left motor forward 25 | const int MOTOR_LEFT_BW = 0; //-- Move the right motor backward 26 | const int MOTOR_LEFT_STOP = 90; //-- Stop the left motor 27 | 28 | //-- The two motors are servos that can turn freely 29 | Servo rm; //-- Right motor 30 | Servo lm; //-- Left motor 31 | 32 | //-- Move the robot forward 33 | void robot_fw() 34 | { 35 | rm.write(MOTOR_RIGHT_FW); 36 | lm.write(MOTOR_LEFT_FW); 37 | } 38 | 39 | //-- Move the robot backward 40 | void robot_bw() 41 | { 42 | rm.write(MOTOR_RIGHT_BW); 43 | lm.write(MOTOR_LEFT_BW); 44 | } 45 | 46 | //-- Stop the robot 47 | void robot_stop() 48 | { 49 | rm.write(MOTOR_RIGHT_STOP); 50 | lm.write(MOTOR_LEFT_STOP); 51 | } 52 | 53 | //-- Turn right the robot 54 | void robot_right() 55 | { 56 | lm.write(MOTOR_LEFT_FW); 57 | rm.write(MOTOR_RIGHT_BW); 58 | } 59 | 60 | 61 | //-- Turn left the robot 62 | void robot_left() 63 | { 64 | lm.write(MOTOR_LEFT_BW); 65 | rm.write(MOTOR_RIGHT_FW); 66 | } 67 | 68 | 69 | void setup() 70 | { 71 | //-- Configure the motors 72 | rm.attach(MOTOR_RIGHT); 73 | lm.attach(MOTOR_LEFT); 74 | } 75 | 76 | 77 | void loop() 78 | { 79 | robot_fw(); 80 | delay(1000); 81 | 82 | robot_stop(); 83 | delay(300); 84 | 85 | robot_bw(); 86 | delay(1000); 87 | 88 | robot_stop(); 89 | delay(300); 90 | 91 | robot_right(); 92 | delay(500); 93 | 94 | robot_stop(); 95 | delay(300); 96 | 97 | robot_left(); 98 | delay(500); 99 | 100 | robot_stop(); 101 | delay(500); 102 | } 103 | 104 | 105 | 106 | --------------------------------------------------------------------------------