├── CAD files ├── bar.scad ├── bar.stl ├── base.scad ├── base.stl ├── camera_mount.scad ├── camera_mount.stl ├── led_support.scad ├── led_support.stl ├── mount_holder.scad ├── mount_holder.stl ├── prism.scad ├── spacer.scad ├── spacer.stl ├── spring_holder.scad ├── spring_holder.stl ├── structure.scad ├── structure.stl ├── top.scad ├── top.stl └── wedge.scad ├── DATA_CAPTURE.py ├── Instructions to build the microscope.pdf ├── LICENSE ├── README.md └── images └── RPi_FP_setup.png /CAD files/bar.scad: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | This is the plastic bar that holds the springs at the bottom of the camera mount (camera_mount.scad) 4 | 5 | */ 6 | 7 | $fa = 0.2; 8 | $fs = 0.2; 9 | 10 | rotate([90,0,0]) cylinder(h=23, r=1,center=true); 11 | translate([0,0,-0.5]) cube([2,23,1], center=true); -------------------------------------------------------------------------------- /CAD files/bar.stl: -------------------------------------------------------------------------------- 1 | solid OpenSCAD_Model 2 | facet normal 0.995184 -0 0.0980215 3 | outer loop 4 | vertex 0.980784 -11.5 0.19509 5 | vertex 1 11.5 0 6 | vertex 0.980784 11.5 0.19509 7 | endloop 8 | endfacet 9 | facet normal 0.995184 0 0.0980215 10 | outer loop 11 | vertex 1 11.5 0 12 | vertex 0.980784 -11.5 0.19509 13 | vertex 1 -11.5 0 14 | endloop 15 | endfacet 16 | facet normal 0.634393 0 0.773011 17 | outer loop 18 | vertex 0.55557 11.5 0.83147 19 | vertex 0.707107 -11.5 0.707107 20 | vertex 0.707107 11.5 0.707107 21 | endloop 22 | endfacet 23 | facet normal 0.634393 0 0.773011 24 | outer loop 25 | vertex 0.707107 -11.5 0.707107 26 | vertex 0.55557 11.5 0.83147 27 | vertex 0.55557 -11.5 0.83147 28 | endloop 29 | endfacet 30 | facet normal -0.0980215 0 0.995184 31 | outer loop 32 | vertex -0.19509 11.5 0.980784 33 | vertex -0.19509 -11.5 0.980784 34 | vertex 0 -11.5 1 35 | endloop 36 | endfacet 37 | facet normal -0.995184 0 0.0980215 38 | outer loop 39 | vertex -1 -11.5 0 40 | vertex -0.980784 11.5 0.19509 41 | vertex -1 11.5 0 42 | endloop 43 | endfacet 44 | facet normal -0.995184 0 0.0980215 45 | outer loop 46 | vertex -0.980784 11.5 0.19509 47 | vertex -1 -11.5 0 48 | vertex -0.980784 -11.5 0.19509 49 | endloop 50 | endfacet 51 | facet normal 0.773011 -0 0.634393 52 | outer loop 53 | vertex 0.707107 -11.5 0.707107 54 | vertex 0.83147 11.5 0.55557 55 | vertex 0.707107 11.5 0.707107 56 | endloop 57 | endfacet 58 | facet normal 0.773011 0 0.634393 59 | outer loop 60 | vertex 0.83147 11.5 0.55557 61 | vertex 0.707107 -11.5 0.707107 62 | vertex 0.83147 -11.5 0.55557 63 | endloop 64 | endfacet 65 | facet normal 0.0980167 4.12644e-008 0.995185 66 | outer loop 67 | vertex 0 11.5 0.999999 68 | vertex 0 -11.5 1 69 | vertex 0.19509 11.5 0.980784 70 | endloop 71 | endfacet 72 | facet normal 0.881923 -0 0.471394 73 | outer loop 74 | vertex 0.83147 -11.5 0.55557 75 | vertex 0.923879 11.5 0.382683 76 | vertex 0.83147 11.5 0.55557 77 | endloop 78 | endfacet 79 | facet normal 0.881923 0 0.471394 80 | outer loop 81 | vertex 0.923879 11.5 0.382683 82 | vertex 0.83147 -11.5 0.55557 83 | vertex 0.923879 -11.5 0.382683 84 | endloop 85 | endfacet 86 | facet normal 0.95694 -0 0.290286 87 | outer loop 88 | vertex 0.923879 -11.5 0.382683 89 | vertex 0.980784 11.5 0.19509 90 | vertex 0.923879 11.5 0.382683 91 | endloop 92 | endfacet 93 | facet normal 0.95694 0 0.290286 94 | outer loop 95 | vertex 0.980784 11.5 0.19509 96 | vertex 0.923879 -11.5 0.382683 97 | vertex 0.980784 -11.5 0.19509 98 | endloop 99 | endfacet 100 | facet normal 0 1 0 101 | outer loop 102 | vertex 0.19509 11.5 0.980784 103 | vertex -0.19509 11.5 0.980784 104 | vertex 0 11.5 0.999999 105 | endloop 106 | endfacet 107 | facet normal 0 1 0 108 | outer loop 109 | vertex 0.382683 11.5 0.923879 110 | vertex -0.19509 11.5 0.980784 111 | vertex 0.19509 11.5 0.980784 112 | endloop 113 | endfacet 114 | facet normal 0 1 0 115 | outer loop 116 | vertex 0.382683 11.5 0.923879 117 | vertex -0.382683 11.5 0.923879 118 | vertex -0.19509 11.5 0.980784 119 | endloop 120 | endfacet 121 | facet normal 0 1 0 122 | outer loop 123 | vertex 0.55557 11.5 0.83147 124 | vertex -0.382683 11.5 0.923879 125 | vertex 0.382683 11.5 0.923879 126 | endloop 127 | endfacet 128 | facet normal 0 1 0 129 | outer loop 130 | vertex 0.55557 11.5 0.83147 131 | vertex -0.55557 11.5 0.83147 132 | vertex -0.382683 11.5 0.923879 133 | endloop 134 | endfacet 135 | facet normal 0 1 0 136 | outer loop 137 | vertex 0.707107 11.5 0.707107 138 | vertex -0.55557 11.5 0.83147 139 | vertex 0.55557 11.5 0.83147 140 | endloop 141 | endfacet 142 | facet normal 0 1 0 143 | outer loop 144 | vertex 0.707107 11.5 0.707107 145 | vertex -0.707107 11.5 0.707107 146 | vertex -0.55557 11.5 0.83147 147 | endloop 148 | endfacet 149 | facet normal 0 1 0 150 | outer loop 151 | vertex 0.83147 11.5 0.55557 152 | vertex -0.707107 11.5 0.707107 153 | vertex 0.707107 11.5 0.707107 154 | endloop 155 | endfacet 156 | facet normal 0 1 0 157 | outer loop 158 | vertex 0.83147 11.5 0.55557 159 | vertex -0.83147 11.5 0.55557 160 | vertex -0.707107 11.5 0.707107 161 | endloop 162 | endfacet 163 | facet normal 0 1 0 164 | outer loop 165 | vertex 0.923879 11.5 0.382683 166 | vertex -0.83147 11.5 0.55557 167 | vertex 0.83147 11.5 0.55557 168 | endloop 169 | endfacet 170 | facet normal 0 1 0 171 | outer loop 172 | vertex 0.923879 11.5 0.382683 173 | vertex -0.923879 11.5 0.382683 174 | vertex -0.83147 11.5 0.55557 175 | endloop 176 | endfacet 177 | facet normal 0 1 0 178 | outer loop 179 | vertex 0.980784 11.5 0.19509 180 | vertex -0.923879 11.5 0.382683 181 | vertex 0.923879 11.5 0.382683 182 | endloop 183 | endfacet 184 | facet normal 0 1 0 185 | outer loop 186 | vertex 0.980784 11.5 0.19509 187 | vertex -0.980784 11.5 0.19509 188 | vertex -0.923879 11.5 0.382683 189 | endloop 190 | endfacet 191 | facet normal 0 1 0 192 | outer loop 193 | vertex 1 11.5 0 194 | vertex -0.980784 11.5 0.19509 195 | vertex 0.980784 11.5 0.19509 196 | endloop 197 | endfacet 198 | facet normal 0 1 0 199 | outer loop 200 | vertex 1 11.5 0 201 | vertex -1 11.5 0 202 | vertex -0.980784 11.5 0.19509 203 | endloop 204 | endfacet 205 | facet normal 0 1 -0 206 | outer loop 207 | vertex 1 11.5 -1 208 | vertex -1 11.5 0 209 | vertex 1 11.5 0 210 | endloop 211 | endfacet 212 | facet normal 0 1 0 213 | outer loop 214 | vertex -1 11.5 0 215 | vertex 1 11.5 -1 216 | vertex -1 11.5 -1 217 | endloop 218 | endfacet 219 | facet normal -0.95694 0 0.290286 220 | outer loop 221 | vertex -0.980784 -11.5 0.19509 222 | vertex -0.923879 11.5 0.382683 223 | vertex -0.980784 11.5 0.19509 224 | endloop 225 | endfacet 226 | facet normal -0.95694 0 0.290286 227 | outer loop 228 | vertex -0.923879 11.5 0.382683 229 | vertex -0.980784 -11.5 0.19509 230 | vertex -0.923879 -11.5 0.382683 231 | endloop 232 | endfacet 233 | facet normal -0.0980167 4.12644e-008 0.995185 234 | outer loop 235 | vertex 0 11.5 0.999999 236 | vertex -0.19509 11.5 0.980784 237 | vertex 0 -11.5 1 238 | endloop 239 | endfacet 240 | facet normal 0.471394 0 0.881923 241 | outer loop 242 | vertex 0.382683 11.5 0.923879 243 | vertex 0.55557 -11.5 0.83147 244 | vertex 0.55557 11.5 0.83147 245 | endloop 246 | endfacet 247 | facet normal 0.471394 0 0.881923 248 | outer loop 249 | vertex 0.55557 -11.5 0.83147 250 | vertex 0.382683 11.5 0.923879 251 | vertex 0.382683 -11.5 0.923879 252 | endloop 253 | endfacet 254 | facet normal 0.290286 0 0.95694 255 | outer loop 256 | vertex 0.19509 11.5 0.980784 257 | vertex 0.382683 -11.5 0.923879 258 | vertex 0.382683 11.5 0.923879 259 | endloop 260 | endfacet 261 | facet normal 0.290286 0 0.95694 262 | outer loop 263 | vertex 0.382683 -11.5 0.923879 264 | vertex 0.19509 11.5 0.980784 265 | vertex 0.19509 -11.5 0.980784 266 | endloop 267 | endfacet 268 | facet normal 0.0980215 0 0.995184 269 | outer loop 270 | vertex 0.19509 11.5 0.980784 271 | vertex 0 -11.5 1 272 | vertex 0.19509 -11.5 0.980784 273 | endloop 274 | endfacet 275 | facet normal -0.290286 0 0.95694 276 | outer loop 277 | vertex -0.382683 11.5 0.923879 278 | vertex -0.19509 -11.5 0.980784 279 | vertex -0.19509 11.5 0.980784 280 | endloop 281 | endfacet 282 | facet normal -0.290286 0 0.95694 283 | outer loop 284 | vertex -0.19509 -11.5 0.980784 285 | vertex -0.382683 11.5 0.923879 286 | vertex -0.382683 -11.5 0.923879 287 | endloop 288 | endfacet 289 | facet normal -0.471394 0 0.881923 290 | outer loop 291 | vertex -0.55557 11.5 0.83147 292 | vertex -0.382683 -11.5 0.923879 293 | vertex -0.382683 11.5 0.923879 294 | endloop 295 | endfacet 296 | facet normal -0.471394 0 0.881923 297 | outer loop 298 | vertex -0.382683 -11.5 0.923879 299 | vertex -0.55557 11.5 0.83147 300 | vertex -0.55557 -11.5 0.83147 301 | endloop 302 | endfacet 303 | facet normal 0 -1 0 304 | outer loop 305 | vertex -0.19509 -11.5 0.980784 306 | vertex 0.19509 -11.5 0.980784 307 | vertex 0 -11.5 1 308 | endloop 309 | endfacet 310 | facet normal 0 -1 0 311 | outer loop 312 | vertex -0.382683 -11.5 0.923879 313 | vertex 0.19509 -11.5 0.980784 314 | vertex -0.19509 -11.5 0.980784 315 | endloop 316 | endfacet 317 | facet normal 0 -1 0 318 | outer loop 319 | vertex -0.382683 -11.5 0.923879 320 | vertex 0.382683 -11.5 0.923879 321 | vertex 0.19509 -11.5 0.980784 322 | endloop 323 | endfacet 324 | facet normal 0 -1 0 325 | outer loop 326 | vertex -0.55557 -11.5 0.83147 327 | vertex 0.382683 -11.5 0.923879 328 | vertex -0.382683 -11.5 0.923879 329 | endloop 330 | endfacet 331 | facet normal 0 -1 0 332 | outer loop 333 | vertex -0.55557 -11.5 0.83147 334 | vertex 0.55557 -11.5 0.83147 335 | vertex 0.382683 -11.5 0.923879 336 | endloop 337 | endfacet 338 | facet normal 0 -1 0 339 | outer loop 340 | vertex -0.707107 -11.5 0.707107 341 | vertex 0.55557 -11.5 0.83147 342 | vertex -0.55557 -11.5 0.83147 343 | endloop 344 | endfacet 345 | facet normal 0 -1 0 346 | outer loop 347 | vertex -0.707107 -11.5 0.707107 348 | vertex 0.707107 -11.5 0.707107 349 | vertex 0.55557 -11.5 0.83147 350 | endloop 351 | endfacet 352 | facet normal 0 -1 0 353 | outer loop 354 | vertex -0.83147 -11.5 0.55557 355 | vertex 0.707107 -11.5 0.707107 356 | vertex -0.707107 -11.5 0.707107 357 | endloop 358 | endfacet 359 | facet normal 0 -1 0 360 | outer loop 361 | vertex -0.83147 -11.5 0.55557 362 | vertex 0.83147 -11.5 0.55557 363 | vertex 0.707107 -11.5 0.707107 364 | endloop 365 | endfacet 366 | facet normal 0 -1 0 367 | outer loop 368 | vertex -0.923879 -11.5 0.382683 369 | vertex 0.83147 -11.5 0.55557 370 | vertex -0.83147 -11.5 0.55557 371 | endloop 372 | endfacet 373 | facet normal 0 -1 0 374 | outer loop 375 | vertex -0.923879 -11.5 0.382683 376 | vertex 0.923879 -11.5 0.382683 377 | vertex 0.83147 -11.5 0.55557 378 | endloop 379 | endfacet 380 | facet normal 0 -1 0 381 | outer loop 382 | vertex -0.980784 -11.5 0.19509 383 | vertex 0.923879 -11.5 0.382683 384 | vertex -0.923879 -11.5 0.382683 385 | endloop 386 | endfacet 387 | facet normal 0 -1 0 388 | outer loop 389 | vertex -0.980784 -11.5 0.19509 390 | vertex 0.980784 -11.5 0.19509 391 | vertex 0.923879 -11.5 0.382683 392 | endloop 393 | endfacet 394 | facet normal 0 -1 0 395 | outer loop 396 | vertex -1 -11.5 0 397 | vertex 0.980784 -11.5 0.19509 398 | vertex -0.980784 -11.5 0.19509 399 | endloop 400 | endfacet 401 | facet normal 0 -1 0 402 | outer loop 403 | vertex -1 -11.5 0 404 | vertex 1 -11.5 0 405 | vertex 0.980784 -11.5 0.19509 406 | endloop 407 | endfacet 408 | facet normal 0 -1 0 409 | outer loop 410 | vertex -1 -11.5 -1 411 | vertex 1 -11.5 0 412 | vertex -1 -11.5 0 413 | endloop 414 | endfacet 415 | facet normal 0 -1 -0 416 | outer loop 417 | vertex 1 -11.5 0 418 | vertex -1 -11.5 -1 419 | vertex 1 -11.5 -1 420 | endloop 421 | endfacet 422 | facet normal -0.634393 0 0.773011 423 | outer loop 424 | vertex -0.707107 11.5 0.707107 425 | vertex -0.55557 -11.5 0.83147 426 | vertex -0.55557 11.5 0.83147 427 | endloop 428 | endfacet 429 | facet normal -0.634393 0 0.773011 430 | outer loop 431 | vertex -0.55557 -11.5 0.83147 432 | vertex -0.707107 11.5 0.707107 433 | vertex -0.707107 -11.5 0.707107 434 | endloop 435 | endfacet 436 | facet normal -0.773011 0 0.634393 437 | outer loop 438 | vertex -0.83147 -11.5 0.55557 439 | vertex -0.707107 11.5 0.707107 440 | vertex -0.83147 11.5 0.55557 441 | endloop 442 | endfacet 443 | facet normal -0.773011 0 0.634393 444 | outer loop 445 | vertex -0.707107 11.5 0.707107 446 | vertex -0.83147 -11.5 0.55557 447 | vertex -0.707107 -11.5 0.707107 448 | endloop 449 | endfacet 450 | facet normal -0.881923 0 0.471394 451 | outer loop 452 | vertex -0.923879 -11.5 0.382683 453 | vertex -0.83147 11.5 0.55557 454 | vertex -0.923879 11.5 0.382683 455 | endloop 456 | endfacet 457 | facet normal -0.881923 0 0.471394 458 | outer loop 459 | vertex -0.83147 11.5 0.55557 460 | vertex -0.923879 -11.5 0.382683 461 | vertex -0.83147 -11.5 0.55557 462 | endloop 463 | endfacet 464 | facet normal -1 0 0 465 | outer loop 466 | vertex -1 -11.5 -1 467 | vertex -1 11.5 0 468 | vertex -1 11.5 -1 469 | endloop 470 | endfacet 471 | facet normal -1 -0 0 472 | outer loop 473 | vertex -1 11.5 0 474 | vertex -1 -11.5 -1 475 | vertex -1 -11.5 0 476 | endloop 477 | endfacet 478 | facet normal 1 -0 0 479 | outer loop 480 | vertex 1 -11.5 0 481 | vertex 1 11.5 -1 482 | vertex 1 11.5 0 483 | endloop 484 | endfacet 485 | facet normal 1 0 0 486 | outer loop 487 | vertex 1 11.5 -1 488 | vertex 1 -11.5 0 489 | vertex 1 -11.5 -1 490 | endloop 491 | endfacet 492 | facet normal 0 0 -1 493 | outer loop 494 | vertex -1 -11.5 -1 495 | vertex 1 11.5 -1 496 | vertex 1 -11.5 -1 497 | endloop 498 | endfacet 499 | facet normal -0 0 -1 500 | outer loop 501 | vertex 1 11.5 -1 502 | vertex -1 -11.5 -1 503 | vertex -1 11.5 -1 504 | endloop 505 | endfacet 506 | endsolid OpenSCAD_Model 507 | -------------------------------------------------------------------------------- /CAD files/base.scad: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | A base for the Raspberry Pi, with attachment holes to mount on an optical table 4 | 5 | */ 6 | 7 | $fs = 0.2; 8 | $fa = 0.2; 9 | 10 | //dimensions of the raspberry pi 11 | pi_width = 56; 12 | pi_length = 85; 13 | 14 | //how much the base protrudes from the raspberry pi body 15 | extra_width = 25; 16 | extra_length = 35; 17 | 18 | //actual dimensions of the base 19 | total_width = pi_width + extra_width*2; 20 | total_length = pi_length + extra_length*2; 21 | thickness = 4; 22 | 23 | //screw dimensions 24 | inner_r = 1.5; 25 | outer_r = 3; 26 | cone_r = 5; 27 | 28 | hole_separation_length = 58; 29 | hole_separation_width = 56-3-3-0.5-0.5; 30 | 31 | //location of the four holes 32 | hole_x = extra_width + 3 + 0.5; 33 | hole_y = extra_length + 3 + 0.5; 34 | feet_height = 2.5; 35 | hole_height = thickness+feet_height+2; 36 | 37 | //location of the four attachment holes 38 | separation = 25.4; 39 | attachment_x = total_width/2 - (separation/2 +separation*1); 40 | attachment_y = total_length/2 - (separation/2 + separation*2); 41 | 42 | module foot(){ 43 | cylinder(r=outer_r,h=feet_height); 44 | } 45 | module screw_hole(){ 46 | cylinder(r=inner_r,h=hole_height); 47 | } 48 | module cone_hole(){ 49 | cylinder(r1=cone_r, r2=inner_r,h=thickness); 50 | } 51 | module attachment_hole(){ 52 | cylinder(r=3.2,h=thickness+2); 53 | } 54 | 55 | //cutout dimensions 56 | margin = 10; 57 | cutout_x = hole_separation_width-cone_r*2-margin; 58 | cutout_y = extra_length+margin; 59 | module sd_cutout(){ 60 | translate([total_width/2,cutout_y/2-0.01,thickness/2-1]) cube([cutout_x,cutout_y,thickness+3],center=true); 61 | } 62 | 63 | module move_raspi_bolts(){ 64 | translate([hole_x,hole_y,0]) children(); 65 | translate([hole_x,hole_y+hole_separation_length,0]) children(); 66 | translate([hole_x+hole_separation_width,hole_y+hole_separation_length,0]) children(); 67 | translate([hole_x+hole_separation_width,hole_y,0]) children(); 68 | } 69 | 70 | module move_attachment_bolts(){ 71 | translate([attachment_x, attachment_y,-1]) children(); 72 | translate([total_width-attachment_x, attachment_y,-1]) children(); 73 | translate([attachment_x, total_length-attachment_y,-1]) children(); 74 | translate([total_width-attachment_x, total_length-attachment_y,-1]) children(); 75 | } 76 | 77 | difference(){ 78 | //base with legs 79 | union(){ 80 | cube([total_width,total_length,thickness]); 81 | translate([0,0,thickness]) move_raspi_bolts() foot(); 82 | } 83 | 84 | //subtract holes from screws 85 | translate([0,0,-0.001]) move_raspi_bolts(){ 86 | screw_hole(); 87 | cone_hole(); 88 | } 89 | 90 | //subtract holes for attachment (to the optical table) bolts 91 | move_attachment_bolts(){ 92 | attachment_hole(); 93 | } 94 | 95 | sd_cutout(); 96 | } -------------------------------------------------------------------------------- /CAD files/camera_mount.scad: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Designed to hold a Raspberry Pi camera module, and fit into mount_holder.scad 4 | 5 | Design by Tomas Aidukas, modified by Victor Lovic 6 | 7 | */ 8 | 9 | // Y is along the cable 10 | camera_w_y = 25.2; 11 | camera_w_x = 24.2; 12 | $fn = 100; 13 | height=14.5-2.8; 14 | wall_thick=4; 15 | lens_height=4; 16 | 17 | //Lens is pushed by 1mm from the bottom + its height is 4z.5mm + 6mm distance to the detector lens + the lens sits 6.5mm away from the support. Hence the support should be built 18mm from the bottom 18 | cam_holder = 18; 19 | 20 | // Camera platform 21 | difference(){ 22 | cube([camera_w_x+wall_thick,camera_w_y+wall_thick,height],center=true); 23 | 24 | // Crop the top 25 | translate([0,0,height/2]){ 26 | cube([camera_w_x+1+wall_thick,camera_w_y+1+wall_thick,3],center=true);} 27 | translate([-10,0,height/2]){ 28 | cube([camera_w_x+10+wall_thick,21.5,4],center=true);} 29 | 30 | // Hole inside 31 | translate([0,0,lens_height]){ 32 | cube([camera_w_x-2,camera_w_y-9,height+1],center=true);} 33 | 34 | // Lens is pushed up by 1mm from the bottomm + its height of 3mm gives 4mm from the bottom of the holder to the top aperture plastic 35 | translate([-2.5,0,-height/2+lens_height/2+1]){ 36 | cylinder(d=6, h=lens_height,center=true);} 37 | 38 | translate([-2.5,0,-height/2+lens_height/2-1]){ 39 | cylinder(d=4, h=lens_height,center=true);} 40 | 41 | // Camera Holder. The sensor chip sits heigth - 4mm (lens top) - 2mm crop from the top of the lens = 8mm . But we also crop 1mm from the bottom of the sensor giving uz 7mm separation from the top lens plastic to the sensor. Since we need 7.5mm the esensor height = 7.5mm + 2mm + 4mm = 13.5mm 42 | 43 | translate([0,0,height/2]){ 44 | cube([camera_w_x,camera_w_y,4],center=true);} 45 | 46 | 47 | // Camera screw holes 48 | translate([-24/2+9.5,21/2,height/2-2]){ 49 | cylinder(d=1.5,h=10,center=true);} 50 | translate([-24/2+9.5,-21/2,height/2-2]){ 51 | cylinder(d=1.5,h=10,center=true);} 52 | translate([-24/2+22,21/2,height/2-2]){ 53 | cylinder(d=1.5,h=10,center=true);} 54 | translate([-24/2+22,-21/2,height/2-2]){ 55 | cylinder(d=1.5,h=10,center=true);}// Camera screw holes END 56 | 57 | } 58 | 59 | 60 | 61 | // Slider 62 | // angle is tan(delta_h/slider_hole_w_h) 63 | slider_hole_w_h = 30; 64 | slider_x_shift_h = 10; 65 | slider_z_shift_h = -10; 66 | delta_h = -20; 67 | $fn = 100; 68 | height1 = height-1.5+2.8+4; 69 | // To get the same angle we need arctan(tan(delta_h/slider_hole_w_h))*slider_hole_w = delta 70 | 71 | //30mm is too loose 72 | slider_hole_w = 30; 73 | slider_x_shift = 10; 74 | slider_z_shift = -10; 75 | //delta = -20; 76 | delta = atan(tan(delta_h/slider_hole_w_h))*slider_hole_w; 77 | 78 | camera_w = 25+4; 79 | 80 | translate([13,0,height/2+2+2.8+2]){ 81 | difference(){ 82 | hull(){ 83 | translate([slider_x_shift,slider_hole_w/2,slider_z_shift]){ 84 | cube([0.1,0.1,height1], center=true); 85 | } 86 | 87 | translate([slider_x_shift,-slider_hole_w/2,slider_z_shift]){ 88 | cube([0.1,0.1,height1], center=true); 89 | } 90 | 91 | translate([slider_x_shift+delta,0,slider_z_shift]){ 92 | cube([0.1,0.1,height1], center=true); 93 | } 94 | } 95 | // Large block chop 96 | translate([-18,0,-10]){ 97 | cube([40,70,80], center=true); 98 | } 99 | 100 | //Screw 101 | translate([6,0,5]){ 102 | cylinder(d=3.5,h=30,center=true);} 103 | //Screw END 104 | 105 | // Spring Holes 106 | translate([6,6.5,14.5]){ 107 | cylinder(d=5.6,h=200,center=true);} 108 | translate([6,-6.5,14.5]){ 109 | cylinder(d=5.6,h=200,center=true);}// Spring Holes END 110 | 111 | //spring holder hole 112 | translate([5.5,0,-height1-2]){ 113 | cube([2,26,4.2],center=true);} 114 | 115 | } 116 | // Connector 117 | translate([1.8,0,-10]){ 118 | cube([2.8,camera_w/2+5-2,height1],center=true);} 119 | 120 | /* 121 | // Spring holder 122 | translate([5.5,3,-height1-3.5]){ 123 | cube([1,7,2]);} 124 | 125 | translate([5.5,-10,-height1-3.5]){ 126 | cube([1,7,2]);}// Spring holder END 127 | 128 | */ 129 | } 130 | 131 | 132 | 133 | 134 | 135 | // Connector 2.5mm length 136 | // Centre to connector 29/2 = 14.5mm 137 | // slider is 6.8mm 138 | // Total: 23.8mm from the centre to the edge 139 | 140 | // Holder mount to back is 10.3mm 141 | // 2.2 and 1.6 are the edge thicknesses around the screw. 6.4mm is the screw thickness. So, 1.6mm + 3.2mm = 4.8mm from the wall to the center. 142 | 143 | // Final Calc gives 4.8mm + 23.8mm = 28.6mm from the centre to where the holes should be 144 | -------------------------------------------------------------------------------- /CAD files/led_support.scad: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | A mount to attach an Adafruit 8x8 high density DotStar LED array onto a Raspberry Pi like a HAT. 4 | 5 | */ 6 | 7 | $fs = 0.2; 8 | $fa = 0.2; 9 | 10 | screw_r = 1.5; 11 | outer_r = 3.1; 12 | 13 | height = 9; 14 | 15 | bolt_length = 58; 16 | bolt_width = 49; 17 | 18 | extra = 3.5; 19 | 20 | top_width = bolt_width + extra + extra; 21 | top_length = bolt_length + extra + extra; 22 | 23 | thickness = 2; 24 | 25 | attachment_r = 1.5; 26 | side = 25.4; 27 | attachment_side = 5; 28 | 29 | /////////////////////////////////////////////// 30 | /* 31 | 32 | dimensions for the adafruit 8x8 dotstar led array: 33 | 34 | side = 25.4mm 35 | attachment side = 5mm 36 | 37 | locations of attchements should therefore be 38 | 39 | in the x direction: 40 | top_length/2 +/- side/2 +/- attachment/2 41 | 42 | in the y direction: 43 | top_width/2 +/- side/2 +/- attachment/2 44 | 45 | 46 | */ 47 | ///////////////////////////////////////////// 48 | 49 | module foot(){ 50 | cylinder(r=outer_r,h=height); 51 | } 52 | 53 | difference(){ 54 | union(){ 55 | cube([top_length, top_width,thickness]); 56 | translate([extra,extra,-height]) foot(); 57 | translate([bolt_length+extra,extra,-height]) foot(); 58 | translate([extra,bolt_width+extra,-height]) foot(); 59 | translate([bolt_length+extra,bolt_width+extra,-height]) foot(); 60 | }; 61 | 62 | 63 | translate([extra+extra,-0.001,-0.001]) cube([bolt_length-extra-extra,extra+extra,thickness+0.002]); 64 | translate([top_length/2-side/2+1,extra+extra-0.01,-1]) cube([side-2,side+(top_width-side-extra-extra)/2,thickness+2]); 65 | 66 | // HOLES FOR THE FOUR LEGS 67 | translate([extra,extra,-height-1]) cylinder(r=screw_r,h=height+thickness+2); 68 | translate([bolt_length+extra,extra,-height-1]) cylinder(r=screw_r,h=height+thickness+2); 69 | translate([extra,bolt_width+extra,-height-1]) cylinder(r=screw_r,h=height+thickness+2); 70 | translate([bolt_length+extra,bolt_width+extra,-height-1]) cylinder(r=screw_r,h=height+thickness+2); 71 | 72 | // HOLES FOR LED ARRAY ATTACHMENTS 73 | translate([top_length/2+side/2+attachment_side/2,top_width/2+side/2-attachment_side/2,-1]) cylinder(r=attachment_r,h=height); 74 | translate([top_length/2-side/2-attachment_side/2,top_width/2+side/2-attachment_side/2,-1]) cylinder(r=attachment_r,h=height); 75 | translate([top_length/2+side/2+attachment_side/2,top_width/2-side/2+attachment_side/2,-1]) cylinder(r=attachment_r,h=height); 76 | translate([top_length/2-side/2-attachment_side/2,top_width/2-side/2+attachment_side/2,-1]) cylinder(r=attachment_r,h=height); 77 | }; 78 | 79 | 80 | -------------------------------------------------------------------------------- /CAD files/mount_holder.scad: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Part of the translation stage for the Raspberry Pi camera, together with camera_mount.scad 4 | 5 | Design by Tomas Aidukas, modified by Victor Lovic 6 | 7 | */ 8 | 9 | // angle is tan(delta_h/slider_hole_w_h) 10 | 11 | //I have changed these values to give a bigger margin 12 | slider_hole_w_h = 30.4; 13 | slider_x_shift_h = 10.5; 14 | slider_z_shift_h = -10; 15 | delta_h = -20.7; 16 | $fn = 100; 17 | height = 30; 18 | 19 | // Main Block with mount holes 20 | difference(){ 21 | 22 | translate([0,0,5]){ 23 | cube([40.6,53,height],center=true); 24 | } 25 | 26 | translate([7,20,0]){ 27 | //Hole diameter for the mount is 6.4mm, 30mm apart 28 | cylinder(r=3.2,h=200,center=true); 29 | } 30 | 31 | translate([7,-20,0]){ 32 | //Hole diameter for the mount is 6.4mm, 30mm apart 33 | cylinder(r=3.2,h=200,center=true); 34 | } 35 | 36 | // Large block chop 37 | translate([-18,0,-10]){ 38 | cube([40,70,80], center=true); 39 | } 40 | 41 | //second chop 42 | translate([34,0,-10]) cube([40,70,80],center=true); 43 | 44 | // Slider Hole 45 | hull(){ 46 | translate([slider_x_shift_h,slider_hole_w_h/2,slider_z_shift_h]){ 47 | cube([0.1,0.1,50], center=true); 48 | } 49 | 50 | translate([slider_x_shift_h,-slider_hole_w_h/2,slider_z_shift_h]){ 51 | cube([0.1,0.1,50], center=true); 52 | } 53 | 54 | translate([slider_x_shift_h+delta_h,0,slider_z_shift_h]){ 55 | cube([0.1,0.1,50], center=true); 56 | } 57 | }// Slider hole ENDS 58 | 59 | /* 60 | // Stabilizer 61 | #translate([5,16.5,-10]){ 62 | cube([10,1,50],center=true); 63 | } 64 | #translate([5,13,14.5]){ 65 | cube([10,8,1],center=true); 66 | }// stabilizer END 67 | */ 68 | 69 | //Bushing 70 | translate([6,0,14.5]){ 71 | cylinder(d=4.7,h=200,center=true);} 72 | //Bushing END 73 | 74 | // Spring Holes 75 | translate([6,6.5,14.5]){ 76 | cylinder(d=5.6,h=200,center=true);} 77 | translate([6,-6.5,14.5]){ 78 | cylinder(d=5.6,h=200,center=true);}// Spring Holes END 79 | 80 | //Grove for spring holder 81 | translate([6,0,19.5]){ 82 | //cube([2.5,30,2],center=true); 83 | cube([8.1,8.1,2], center=true); 84 | } 85 | } 86 | 87 | /* 88 | // Spring holder 89 | translate([5.5,3,+height/2+3]){ 90 | cube([1,7,2]);} 91 | 92 | translate([5.5,-10,+height/2+3]){ 93 | cube([1,7,2]);}// Spring holder END 94 | */ -------------------------------------------------------------------------------- /CAD files/prism.scad: -------------------------------------------------------------------------------- 1 | 2 | module prism(l, w, h) { 3 | polyhedron(points=[ 4 | [0,0,h], // 0 front top corner 5 | [0,0,0],[w,0,0], // 1, 2 front left & right bottom corners 6 | [0,l,h], // 3 back top corner 7 | [0,l,0],[w,l,0] // 4, 5 back left & right bottom corners 8 | ], faces=[ // points for all faces must be ordered clockwise when looking in 9 | [0,2,1], // top face 10 | [3,4,5], // base face 11 | [0,1,4,3], // h face 12 | [1,2,5,4], // w face 13 | [0,3,5,2], // hypotenuse face 14 | ]); 15 | } 16 | 17 | //rotate([180,0,0]) prism(l=5, w=3, h=5); -------------------------------------------------------------------------------- /CAD files/spacer.scad: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Spacers to be used with Raspberry Pi HATs to keep the HAT parallel to the Raspberry Pi 4 | 5 | */ 6 | 7 | $fa = 0.2; 8 | $fs = 0.2; 9 | 10 | height = 9; 11 | inner_r = 1.5; 12 | outer_r = 3; 13 | 14 | difference(){ 15 | cylinder(r = outer_r, h = height); 16 | 17 | translate([0,0,-1]) cylinder(r = inner_r, h = height + 2); 18 | }; 19 | -------------------------------------------------------------------------------- /CAD files/spring_holder.scad: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Removable spring hanger to be used with the translation stage (mount_holder.scad) to make it easier to install the springs 4 | Fits into the grove on the mount_holder.scad 5 | 6 | */ 7 | 8 | $fs =0.2; 9 | $fa = 0.2; 10 | 11 | block_height = 8; 12 | block_width = 8; 13 | block_length = 8; 14 | 15 | bar_length = 30; 16 | bar_width = 2.5; 17 | bar_height = 2.5; 18 | 19 | bushing_d = 4.7; 20 | 21 | difference(){ 22 | union(){ 23 | cube([block_width,block_length,block_height],center=true); 24 | translate([0,0,-block_height/2+bar_height/2]) cube([bar_width,bar_length,bar_height],center=true); 25 | } 26 | cylinder(d = bushing_d, h = block_height+2, center=true); 27 | } -------------------------------------------------------------------------------- /CAD files/spring_holder.stl: -------------------------------------------------------------------------------- 1 | solid OpenSCAD_Model 2 | facet normal -1 0 0 3 | outer loop 4 | vertex -4 -4 -4 5 | vertex -4 4 4 6 | vertex -4 4 -4 7 | endloop 8 | endfacet 9 | facet normal -1 -0 0 10 | outer loop 11 | vertex -4 4 4 12 | vertex -4 -4 -4 13 | vertex -4 -4 4 14 | endloop 15 | endfacet 16 | facet normal 0 0 1 17 | outer loop 18 | vertex 4 4 4 19 | vertex 2.35 0 4 20 | vertex 4 -4 4 21 | endloop 22 | endfacet 23 | facet normal 0 0 1 24 | outer loop 25 | vertex 4 4 4 26 | vertex 2.34153 0.199293 4 27 | vertex 2.35 0 4 28 | endloop 29 | endfacet 30 | facet normal 0 0 1 31 | outer loop 32 | vertex 4 4 4 33 | vertex 2.3162 0.397151 4 34 | vertex 2.34153 0.199293 4 35 | endloop 36 | endfacet 37 | facet normal 0 0 1 38 | outer loop 39 | vertex 4 4 4 40 | vertex 2.27417 0.592148 4 41 | vertex 2.3162 0.397151 4 42 | endloop 43 | endfacet 44 | facet normal 0 0 1 45 | outer loop 46 | vertex 4 4 4 47 | vertex 2.21576 0.782878 4 48 | vertex 2.27417 0.592148 4 49 | endloop 50 | endfacet 51 | facet normal 0 0 1 52 | outer loop 53 | vertex 4 4 4 54 | vertex 2.14139 0.967967 4 55 | vertex 2.21576 0.782878 4 56 | endloop 57 | endfacet 58 | facet normal 0 0 1 59 | outer loop 60 | vertex 4 4 4 61 | vertex 2.05158 1.14608 4 62 | vertex 2.14139 0.967967 4 63 | endloop 64 | endfacet 65 | facet normal 0 0 1 66 | outer loop 67 | vertex 4 4 4 68 | vertex 1.947 1.31594 4 69 | vertex 2.05158 1.14608 4 70 | endloop 71 | endfacet 72 | facet normal 0 0 1 73 | outer loop 74 | vertex 4 4 4 75 | vertex 1.82838 1.47632 4 76 | vertex 1.947 1.31594 4 77 | endloop 78 | endfacet 79 | facet normal 0 0 1 80 | outer loop 81 | vertex 4 4 4 82 | vertex 1.6966 1.62606 4 83 | vertex 1.82838 1.47632 4 84 | endloop 85 | endfacet 86 | facet normal 0 0 1 87 | outer loop 88 | vertex 4 4 4 89 | vertex 1.55258 1.76408 4 90 | vertex 1.6966 1.62606 4 91 | endloop 92 | endfacet 93 | facet normal 0 0 1 94 | outer loop 95 | vertex 4 4 4 96 | vertex 1.39739 1.88939 4 97 | vertex 1.55258 1.76408 4 98 | endloop 99 | endfacet 100 | facet normal 0 0 1 101 | outer loop 102 | vertex 4 4 4 103 | vertex 1.23212 2.00109 4 104 | vertex 1.39739 1.88939 4 105 | endloop 106 | endfacet 107 | facet normal 0 0 1 108 | outer loop 109 | vertex 4 4 4 110 | vertex 1.05798 2.09838 4 111 | vertex 1.23212 2.00109 4 112 | endloop 113 | endfacet 114 | facet normal 0 0 1 115 | outer loop 116 | vertex 4 4 4 117 | vertex 0.876212 2.18054 4 118 | vertex 1.05798 2.09838 4 119 | endloop 120 | endfacet 121 | facet normal 0 0 1 122 | outer loop 123 | vertex 4 4 4 124 | vertex 0.688133 2.24699 4 125 | vertex 0.876212 2.18054 4 126 | endloop 127 | endfacet 128 | facet normal 0 0 1 129 | outer loop 130 | vertex 4 4 4 131 | vertex 0.495096 2.29725 4 132 | vertex 0.688133 2.24699 4 133 | endloop 134 | endfacet 135 | facet normal 0 0 1 136 | outer loop 137 | vertex 4 4 4 138 | vertex 0.298491 2.33097 4 139 | vertex 0.495096 2.29725 4 140 | endloop 141 | endfacet 142 | facet normal 0 0 1 143 | outer loop 144 | vertex 4 4 4 145 | vertex 0.0997362 2.34788 4 146 | vertex 0.298491 2.33097 4 147 | endloop 148 | endfacet 149 | facet normal 0 0 1 150 | outer loop 151 | vertex 4 4 4 152 | vertex -0.0997362 2.34788 4 153 | vertex 0.0997362 2.34788 4 154 | endloop 155 | endfacet 156 | facet normal -0 0 1 157 | outer loop 158 | vertex -4 4 4 159 | vertex -0.0997362 2.34788 4 160 | vertex 4 4 4 161 | endloop 162 | endfacet 163 | facet normal 0 0 1 164 | outer loop 165 | vertex -0.0997362 2.34788 4 166 | vertex -4 4 4 167 | vertex -0.298491 2.33097 4 168 | endloop 169 | endfacet 170 | facet normal 0 0 1 171 | outer loop 172 | vertex -0.298491 2.33097 4 173 | vertex -4 4 4 174 | vertex -0.495096 2.29725 4 175 | endloop 176 | endfacet 177 | facet normal 0 0 1 178 | outer loop 179 | vertex -0.495096 2.29725 4 180 | vertex -4 4 4 181 | vertex -0.688133 2.24699 4 182 | endloop 183 | endfacet 184 | facet normal 0 0 1 185 | outer loop 186 | vertex -2.34153 0.199293 4 187 | vertex -4 4 4 188 | vertex -2.35 0 4 189 | endloop 190 | endfacet 191 | facet normal 0 0 1 192 | outer loop 193 | vertex -2.3162 0.397151 4 194 | vertex -4 4 4 195 | vertex -2.34153 0.199293 4 196 | endloop 197 | endfacet 198 | facet normal 0 0 1 199 | outer loop 200 | vertex -2.27417 0.592148 4 201 | vertex -4 4 4 202 | vertex -2.3162 0.397151 4 203 | endloop 204 | endfacet 205 | facet normal 0 0 1 206 | outer loop 207 | vertex -2.21576 0.782878 4 208 | vertex -4 4 4 209 | vertex -2.27417 0.592148 4 210 | endloop 211 | endfacet 212 | facet normal 0 0 1 213 | outer loop 214 | vertex -2.14139 0.967967 4 215 | vertex -4 4 4 216 | vertex -2.21576 0.782878 4 217 | endloop 218 | endfacet 219 | facet normal 0 0 1 220 | outer loop 221 | vertex -2.05158 1.14608 4 222 | vertex -4 4 4 223 | vertex -2.14139 0.967967 4 224 | endloop 225 | endfacet 226 | facet normal 0 0 1 227 | outer loop 228 | vertex -1.947 1.31594 4 229 | vertex -4 4 4 230 | vertex -2.05158 1.14608 4 231 | endloop 232 | endfacet 233 | facet normal 0 0 1 234 | outer loop 235 | vertex -1.82838 1.47632 4 236 | vertex -4 4 4 237 | vertex -1.947 1.31594 4 238 | endloop 239 | endfacet 240 | facet normal 0 0 1 241 | outer loop 242 | vertex -1.6966 1.62606 4 243 | vertex -4 4 4 244 | vertex -1.82838 1.47632 4 245 | endloop 246 | endfacet 247 | facet normal 0 0 1 248 | outer loop 249 | vertex -1.55258 1.76408 4 250 | vertex -4 4 4 251 | vertex -1.6966 1.62606 4 252 | endloop 253 | endfacet 254 | facet normal 0 0 1 255 | outer loop 256 | vertex -1.39739 1.88939 4 257 | vertex -4 4 4 258 | vertex -1.55258 1.76408 4 259 | endloop 260 | endfacet 261 | facet normal 0 0 1 262 | outer loop 263 | vertex -1.23212 2.00109 4 264 | vertex -4 4 4 265 | vertex -1.39739 1.88939 4 266 | endloop 267 | endfacet 268 | facet normal 0 0 1 269 | outer loop 270 | vertex -1.05798 2.09838 4 271 | vertex -4 4 4 272 | vertex -1.23212 2.00109 4 273 | endloop 274 | endfacet 275 | facet normal 0 0 1 276 | outer loop 277 | vertex -0.876212 2.18054 4 278 | vertex -4 4 4 279 | vertex -1.05798 2.09838 4 280 | endloop 281 | endfacet 282 | facet normal 0 0 1 283 | outer loop 284 | vertex -0.688133 2.24699 4 285 | vertex -4 4 4 286 | vertex -0.876212 2.18054 4 287 | endloop 288 | endfacet 289 | facet normal -0 0 1 290 | outer loop 291 | vertex 2.34153 -0.199293 4 292 | vertex 4 -4 4 293 | vertex 2.35 0 4 294 | endloop 295 | endfacet 296 | facet normal -0 0 1 297 | outer loop 298 | vertex 2.3162 -0.397151 4 299 | vertex 4 -4 4 300 | vertex 2.34153 -0.199293 4 301 | endloop 302 | endfacet 303 | facet normal -0 0 1 304 | outer loop 305 | vertex 2.27417 -0.592148 4 306 | vertex 4 -4 4 307 | vertex 2.3162 -0.397151 4 308 | endloop 309 | endfacet 310 | facet normal -0 0 1 311 | outer loop 312 | vertex 2.21576 -0.782878 4 313 | vertex 4 -4 4 314 | vertex 2.27417 -0.592148 4 315 | endloop 316 | endfacet 317 | facet normal -0 0 1 318 | outer loop 319 | vertex 2.14139 -0.967967 4 320 | vertex 4 -4 4 321 | vertex 2.21576 -0.782878 4 322 | endloop 323 | endfacet 324 | facet normal -0 0 1 325 | outer loop 326 | vertex 2.05158 -1.14608 4 327 | vertex 4 -4 4 328 | vertex 2.14139 -0.967967 4 329 | endloop 330 | endfacet 331 | facet normal -0 0 1 332 | outer loop 333 | vertex 1.947 -1.31594 4 334 | vertex 4 -4 4 335 | vertex 2.05158 -1.14608 4 336 | endloop 337 | endfacet 338 | facet normal -0 0 1 339 | outer loop 340 | vertex 1.82838 -1.47632 4 341 | vertex 4 -4 4 342 | vertex 1.947 -1.31594 4 343 | endloop 344 | endfacet 345 | facet normal -0 0 1 346 | outer loop 347 | vertex 1.6966 -1.62606 4 348 | vertex 4 -4 4 349 | vertex 1.82838 -1.47632 4 350 | endloop 351 | endfacet 352 | facet normal -0 0 1 353 | outer loop 354 | vertex 1.55258 -1.76408 4 355 | vertex 4 -4 4 356 | vertex 1.6966 -1.62606 4 357 | endloop 358 | endfacet 359 | facet normal -0 0 1 360 | outer loop 361 | vertex 1.39739 -1.88939 4 362 | vertex 4 -4 4 363 | vertex 1.55258 -1.76408 4 364 | endloop 365 | endfacet 366 | facet normal -0 0 1 367 | outer loop 368 | vertex 1.23212 -2.00109 4 369 | vertex 4 -4 4 370 | vertex 1.39739 -1.88939 4 371 | endloop 372 | endfacet 373 | facet normal -0 0 1 374 | outer loop 375 | vertex 1.05798 -2.09838 4 376 | vertex 4 -4 4 377 | vertex 1.23212 -2.00109 4 378 | endloop 379 | endfacet 380 | facet normal -0 0 1 381 | outer loop 382 | vertex 0.876212 -2.18054 4 383 | vertex 4 -4 4 384 | vertex 1.05798 -2.09838 4 385 | endloop 386 | endfacet 387 | facet normal -0 0 1 388 | outer loop 389 | vertex 0.688133 -2.24699 4 390 | vertex 4 -4 4 391 | vertex 0.876212 -2.18054 4 392 | endloop 393 | endfacet 394 | facet normal -0 0 1 395 | outer loop 396 | vertex 0.495096 -2.29725 4 397 | vertex 4 -4 4 398 | vertex 0.688133 -2.24699 4 399 | endloop 400 | endfacet 401 | facet normal -0 0 1 402 | outer loop 403 | vertex 0.298491 -2.33097 4 404 | vertex 4 -4 4 405 | vertex 0.495096 -2.29725 4 406 | endloop 407 | endfacet 408 | facet normal -0 0 1 409 | outer loop 410 | vertex 0.0997362 -2.34788 4 411 | vertex 4 -4 4 412 | vertex 0.298491 -2.33097 4 413 | endloop 414 | endfacet 415 | facet normal -0 0 1 416 | outer loop 417 | vertex -0.0997362 -2.34788 4 418 | vertex 4 -4 4 419 | vertex 0.0997362 -2.34788 4 420 | endloop 421 | endfacet 422 | facet normal 0 0 1 423 | outer loop 424 | vertex -4 -4 4 425 | vertex -0.0997362 -2.34788 4 426 | vertex -0.298491 -2.33097 4 427 | endloop 428 | endfacet 429 | facet normal 0 0 1 430 | outer loop 431 | vertex -4 -4 4 432 | vertex -0.298491 -2.33097 4 433 | vertex -0.495096 -2.29725 4 434 | endloop 435 | endfacet 436 | facet normal 0 0 1 437 | outer loop 438 | vertex -4 -4 4 439 | vertex -0.495096 -2.29725 4 440 | vertex -0.688133 -2.24699 4 441 | endloop 442 | endfacet 443 | facet normal 0 0 1 444 | outer loop 445 | vertex -4 -4 4 446 | vertex -0.688133 -2.24699 4 447 | vertex -0.876212 -2.18054 4 448 | endloop 449 | endfacet 450 | facet normal 0 0 1 451 | outer loop 452 | vertex -4 -4 4 453 | vertex -2.35 0 4 454 | vertex -4 4 4 455 | endloop 456 | endfacet 457 | facet normal 0 0 1 458 | outer loop 459 | vertex -2.35 0 4 460 | vertex -4 -4 4 461 | vertex -2.34153 -0.199293 4 462 | endloop 463 | endfacet 464 | facet normal 0 0 1 465 | outer loop 466 | vertex -2.34153 -0.199293 4 467 | vertex -4 -4 4 468 | vertex -2.3162 -0.397151 4 469 | endloop 470 | endfacet 471 | facet normal 0 0 1 472 | outer loop 473 | vertex -2.3162 -0.397151 4 474 | vertex -4 -4 4 475 | vertex -2.27417 -0.592148 4 476 | endloop 477 | endfacet 478 | facet normal 0 0 1 479 | outer loop 480 | vertex -0.0997362 -2.34788 4 481 | vertex -4 -4 4 482 | vertex 4 -4 4 483 | endloop 484 | endfacet 485 | facet normal 0 0 1 486 | outer loop 487 | vertex -1.05798 -2.09838 4 488 | vertex -4 -4 4 489 | vertex -0.876212 -2.18054 4 490 | endloop 491 | endfacet 492 | facet normal 0 0 1 493 | outer loop 494 | vertex -1.23212 -2.00109 4 495 | vertex -4 -4 4 496 | vertex -1.05798 -2.09838 4 497 | endloop 498 | endfacet 499 | facet normal 0 0 1 500 | outer loop 501 | vertex -1.39739 -1.88939 4 502 | vertex -4 -4 4 503 | vertex -1.23212 -2.00109 4 504 | endloop 505 | endfacet 506 | facet normal 0 0 1 507 | outer loop 508 | vertex -1.55258 -1.76408 4 509 | vertex -4 -4 4 510 | vertex -1.39739 -1.88939 4 511 | endloop 512 | endfacet 513 | facet normal 0 0 1 514 | outer loop 515 | vertex -1.6966 -1.62606 4 516 | vertex -4 -4 4 517 | vertex -1.55258 -1.76408 4 518 | endloop 519 | endfacet 520 | facet normal 0 0 1 521 | outer loop 522 | vertex -1.82838 -1.47632 4 523 | vertex -4 -4 4 524 | vertex -1.6966 -1.62606 4 525 | endloop 526 | endfacet 527 | facet normal 0 0 1 528 | outer loop 529 | vertex -1.947 -1.31594 4 530 | vertex -4 -4 4 531 | vertex -1.82838 -1.47632 4 532 | endloop 533 | endfacet 534 | facet normal 0 0 1 535 | outer loop 536 | vertex -2.05158 -1.14608 4 537 | vertex -4 -4 4 538 | vertex -1.947 -1.31594 4 539 | endloop 540 | endfacet 541 | facet normal 0 0 1 542 | outer loop 543 | vertex -2.14139 -0.967967 4 544 | vertex -4 -4 4 545 | vertex -2.05158 -1.14608 4 546 | endloop 547 | endfacet 548 | facet normal 0 0 1 549 | outer loop 550 | vertex -2.21576 -0.782878 4 551 | vertex -4 -4 4 552 | vertex -2.14139 -0.967967 4 553 | endloop 554 | endfacet 555 | facet normal 0 0 1 556 | outer loop 557 | vertex -2.27417 -0.592148 4 558 | vertex -4 -4 4 559 | vertex -2.21576 -0.782878 4 560 | endloop 561 | endfacet 562 | facet normal 1 -0 0 563 | outer loop 564 | vertex 4 -4 4 565 | vertex 4 4 -4 566 | vertex 4 4 4 567 | endloop 568 | endfacet 569 | facet normal 1 0 0 570 | outer loop 571 | vertex 4 4 -4 572 | vertex 4 -4 4 573 | vertex 4 -4 -4 574 | endloop 575 | endfacet 576 | facet normal 0 0 -1 577 | outer loop 578 | vertex -1.39739 1.88939 -4 579 | vertex -1.25 4 -4 580 | vertex -1.23212 2.00109 -4 581 | endloop 582 | endfacet 583 | facet normal 0 0 -1 584 | outer loop 585 | vertex -1.55258 1.76408 -4 586 | vertex -1.25 4 -4 587 | vertex -1.39739 1.88939 -4 588 | endloop 589 | endfacet 590 | facet normal 0 0 -1 591 | outer loop 592 | vertex -4 4 -4 593 | vertex -1.55258 1.76408 -4 594 | vertex -1.6966 1.62606 -4 595 | endloop 596 | endfacet 597 | facet normal 0 0 -1 598 | outer loop 599 | vertex -4 4 -4 600 | vertex -1.6966 1.62606 -4 601 | vertex -1.82838 1.47632 -4 602 | endloop 603 | endfacet 604 | facet normal 0 0 -1 605 | outer loop 606 | vertex -4 4 -4 607 | vertex -1.82838 1.47632 -4 608 | vertex -1.947 1.31594 -4 609 | endloop 610 | endfacet 611 | facet normal 0 0 -1 612 | outer loop 613 | vertex -4 4 -4 614 | vertex -1.947 1.31594 -4 615 | vertex -2.05158 1.14608 -4 616 | endloop 617 | endfacet 618 | facet normal 0 0 -1 619 | outer loop 620 | vertex -4 4 -4 621 | vertex -2.05158 1.14608 -4 622 | vertex -2.14139 0.967967 -4 623 | endloop 624 | endfacet 625 | facet normal 0 0 -1 626 | outer loop 627 | vertex -4 4 -4 628 | vertex -2.14139 0.967967 -4 629 | vertex -2.21576 0.782878 -4 630 | endloop 631 | endfacet 632 | facet normal 0 0 -1 633 | outer loop 634 | vertex -4 4 -4 635 | vertex -2.21576 0.782878 -4 636 | vertex -2.27417 0.592148 -4 637 | endloop 638 | endfacet 639 | facet normal 0 0 -1 640 | outer loop 641 | vertex -4 4 -4 642 | vertex -2.35 0 -4 643 | vertex -4 -4 -4 644 | endloop 645 | endfacet 646 | facet normal 0 0 -1 647 | outer loop 648 | vertex -2.35 0 -4 649 | vertex -4 4 -4 650 | vertex -2.34153 0.199293 -4 651 | endloop 652 | endfacet 653 | facet normal 0 0 -1 654 | outer loop 655 | vertex -2.34153 0.199293 -4 656 | vertex -4 4 -4 657 | vertex -2.3162 0.397151 -4 658 | endloop 659 | endfacet 660 | facet normal 0 0 -1 661 | outer loop 662 | vertex -2.3162 0.397151 -4 663 | vertex -4 4 -4 664 | vertex -2.27417 0.592148 -4 665 | endloop 666 | endfacet 667 | facet normal 0 0 -1 668 | outer loop 669 | vertex -1.55258 1.76408 -4 670 | vertex -4 4 -4 671 | vertex -1.25 4 -4 672 | endloop 673 | endfacet 674 | facet normal 0 0 -1 675 | outer loop 676 | vertex -1.25 -4 -4 677 | vertex 1.25 -4 -4 678 | vertex 1.25 -15 -4 679 | endloop 680 | endfacet 681 | facet normal 0 0 -1 682 | outer loop 683 | vertex 1.25 -4 -4 684 | vertex 1.05798 -2.09838 -4 685 | vertex 1.23212 -2.00109 -4 686 | endloop 687 | endfacet 688 | facet normal 0 -0 -1 689 | outer loop 690 | vertex 0.0997362 -2.34788 -4 691 | vertex 1.25 -4 -4 692 | vertex -1.25 -4 -4 693 | endloop 694 | endfacet 695 | facet normal 0 0 -1 696 | outer loop 697 | vertex 1.25 -4 -4 698 | vertex 0.876212 -2.18054 -4 699 | vertex 1.05798 -2.09838 -4 700 | endloop 701 | endfacet 702 | facet normal 0 0 -1 703 | outer loop 704 | vertex 1.25 -4 -4 705 | vertex 0.688133 -2.24699 -4 706 | vertex 0.876212 -2.18054 -4 707 | endloop 708 | endfacet 709 | facet normal 0 0 -1 710 | outer loop 711 | vertex 1.25 -4 -4 712 | vertex 0.495096 -2.29725 -4 713 | vertex 0.688133 -2.24699 -4 714 | endloop 715 | endfacet 716 | facet normal 0 0 -1 717 | outer loop 718 | vertex 1.25 -4 -4 719 | vertex 0.298491 -2.33097 -4 720 | vertex 0.495096 -2.29725 -4 721 | endloop 722 | endfacet 723 | facet normal 0 0 -1 724 | outer loop 725 | vertex 1.25 -4 -4 726 | vertex 0.0997362 -2.34788 -4 727 | vertex 0.298491 -2.33097 -4 728 | endloop 729 | endfacet 730 | facet normal -0 0 -1 731 | outer loop 732 | vertex 0.0997362 -2.34788 -4 733 | vertex -1.25 -4 -4 734 | vertex -0.0997362 -2.34788 -4 735 | endloop 736 | endfacet 737 | facet normal -0 0 -1 738 | outer loop 739 | vertex -0.0997362 -2.34788 -4 740 | vertex -1.25 -4 -4 741 | vertex -0.298491 -2.33097 -4 742 | endloop 743 | endfacet 744 | facet normal -0 0 -1 745 | outer loop 746 | vertex -0.298491 -2.33097 -4 747 | vertex -1.25 -4 -4 748 | vertex -0.495096 -2.29725 -4 749 | endloop 750 | endfacet 751 | facet normal -0 0 -1 752 | outer loop 753 | vertex -0.495096 -2.29725 -4 754 | vertex -1.25 -4 -4 755 | vertex -0.688133 -2.24699 -4 756 | endloop 757 | endfacet 758 | facet normal -0 0 -1 759 | outer loop 760 | vertex -0.688133 -2.24699 -4 761 | vertex -1.25 -4 -4 762 | vertex -0.876212 -2.18054 -4 763 | endloop 764 | endfacet 765 | facet normal -0 0 -1 766 | outer loop 767 | vertex -0.876212 -2.18054 -4 768 | vertex -1.25 -4 -4 769 | vertex -1.05798 -2.09838 -4 770 | endloop 771 | endfacet 772 | facet normal 0 0 -1 773 | outer loop 774 | vertex -1.25 -4 -4 775 | vertex 1.25 -15 -4 776 | vertex -1.25 -15 -4 777 | endloop 778 | endfacet 779 | facet normal -0 0 -1 780 | outer loop 781 | vertex -1.05798 -2.09838 -4 782 | vertex -1.25 -4 -4 783 | vertex -1.23212 -2.00109 -4 784 | endloop 785 | endfacet 786 | facet normal 0 0 -1 787 | outer loop 788 | vertex -1.25 -4 -4 789 | vertex -1.39739 -1.88939 -4 790 | vertex -1.23212 -2.00109 -4 791 | endloop 792 | endfacet 793 | facet normal 0 0 -1 794 | outer loop 795 | vertex -1.25 -4 -4 796 | vertex -1.55258 -1.76408 -4 797 | vertex -1.39739 -1.88939 -4 798 | endloop 799 | endfacet 800 | facet normal 0 0 -1 801 | outer loop 802 | vertex -4 -4 -4 803 | vertex -1.55258 -1.76408 -4 804 | vertex -1.25 -4 -4 805 | endloop 806 | endfacet 807 | facet normal -0 0 -1 808 | outer loop 809 | vertex -1.55258 -1.76408 -4 810 | vertex -4 -4 -4 811 | vertex -1.6966 -1.62606 -4 812 | endloop 813 | endfacet 814 | facet normal -0 0 -1 815 | outer loop 816 | vertex -1.6966 -1.62606 -4 817 | vertex -4 -4 -4 818 | vertex -1.82838 -1.47632 -4 819 | endloop 820 | endfacet 821 | facet normal -0 0 -1 822 | outer loop 823 | vertex -1.82838 -1.47632 -4 824 | vertex -4 -4 -4 825 | vertex -1.947 -1.31594 -4 826 | endloop 827 | endfacet 828 | facet normal -0 0 -1 829 | outer loop 830 | vertex -1.947 -1.31594 -4 831 | vertex -4 -4 -4 832 | vertex -2.05158 -1.14608 -4 833 | endloop 834 | endfacet 835 | facet normal -0 0 -1 836 | outer loop 837 | vertex -2.05158 -1.14608 -4 838 | vertex -4 -4 -4 839 | vertex -2.14139 -0.967967 -4 840 | endloop 841 | endfacet 842 | facet normal -0 0 -1 843 | outer loop 844 | vertex -2.14139 -0.967967 -4 845 | vertex -4 -4 -4 846 | vertex -2.21576 -0.782878 -4 847 | endloop 848 | endfacet 849 | facet normal -0 0 -1 850 | outer loop 851 | vertex -2.34153 -0.199293 -4 852 | vertex -4 -4 -4 853 | vertex -2.35 0 -4 854 | endloop 855 | endfacet 856 | facet normal -0 0 -1 857 | outer loop 858 | vertex -2.3162 -0.397151 -4 859 | vertex -4 -4 -4 860 | vertex -2.34153 -0.199293 -4 861 | endloop 862 | endfacet 863 | facet normal -0 0 -1 864 | outer loop 865 | vertex -2.27417 -0.592148 -4 866 | vertex -4 -4 -4 867 | vertex -2.3162 -0.397151 -4 868 | endloop 869 | endfacet 870 | facet normal -0 0 -1 871 | outer loop 872 | vertex -2.21576 -0.782878 -4 873 | vertex -4 -4 -4 874 | vertex -2.27417 -0.592148 -4 875 | endloop 876 | endfacet 877 | facet normal 0 0 -1 878 | outer loop 879 | vertex 4 -4 -4 880 | vertex 2.35 0 -4 881 | vertex 4 4 -4 882 | endloop 883 | endfacet 884 | facet normal 0 0 -1 885 | outer loop 886 | vertex 4 -4 -4 887 | vertex 2.34153 -0.199293 -4 888 | vertex 2.35 0 -4 889 | endloop 890 | endfacet 891 | facet normal 0 0 -1 892 | outer loop 893 | vertex 4 -4 -4 894 | vertex 2.3162 -0.397151 -4 895 | vertex 2.34153 -0.199293 -4 896 | endloop 897 | endfacet 898 | facet normal 0 0 -1 899 | outer loop 900 | vertex 4 -4 -4 901 | vertex 2.27417 -0.592148 -4 902 | vertex 2.3162 -0.397151 -4 903 | endloop 904 | endfacet 905 | facet normal 0 0 -1 906 | outer loop 907 | vertex 4 -4 -4 908 | vertex 2.21576 -0.782878 -4 909 | vertex 2.27417 -0.592148 -4 910 | endloop 911 | endfacet 912 | facet normal 0 0 -1 913 | outer loop 914 | vertex 4 -4 -4 915 | vertex 2.14139 -0.967967 -4 916 | vertex 2.21576 -0.782878 -4 917 | endloop 918 | endfacet 919 | facet normal 0 0 -1 920 | outer loop 921 | vertex 4 -4 -4 922 | vertex 2.05158 -1.14608 -4 923 | vertex 2.14139 -0.967967 -4 924 | endloop 925 | endfacet 926 | facet normal 0 0 -1 927 | outer loop 928 | vertex 4 -4 -4 929 | vertex 1.947 -1.31594 -4 930 | vertex 2.05158 -1.14608 -4 931 | endloop 932 | endfacet 933 | facet normal 0 0 -1 934 | outer loop 935 | vertex 4 -4 -4 936 | vertex 1.82838 -1.47632 -4 937 | vertex 1.947 -1.31594 -4 938 | endloop 939 | endfacet 940 | facet normal 0 0 -1 941 | outer loop 942 | vertex 4 -4 -4 943 | vertex 1.6966 -1.62606 -4 944 | vertex 1.82838 -1.47632 -4 945 | endloop 946 | endfacet 947 | facet normal 0 0 -1 948 | outer loop 949 | vertex 4 -4 -4 950 | vertex 1.55258 -1.76408 -4 951 | vertex 1.6966 -1.62606 -4 952 | endloop 953 | endfacet 954 | facet normal 0 0 -1 955 | outer loop 956 | vertex 1.25 -4 -4 957 | vertex 1.55258 -1.76408 -4 958 | vertex 4 -4 -4 959 | endloop 960 | endfacet 961 | facet normal 0 0 -1 962 | outer loop 963 | vertex 1.55258 -1.76408 -4 964 | vertex 1.25 -4 -4 965 | vertex 1.39739 -1.88939 -4 966 | endloop 967 | endfacet 968 | facet normal 0 0 -1 969 | outer loop 970 | vertex 1.39739 -1.88939 -4 971 | vertex 1.25 -4 -4 972 | vertex 1.23212 -2.00109 -4 973 | endloop 974 | endfacet 975 | facet normal 0 0 -1 976 | outer loop 977 | vertex 2.34153 0.199293 -4 978 | vertex 4 4 -4 979 | vertex 2.35 0 -4 980 | endloop 981 | endfacet 982 | facet normal 0 0 -1 983 | outer loop 984 | vertex 2.3162 0.397151 -4 985 | vertex 4 4 -4 986 | vertex 2.34153 0.199293 -4 987 | endloop 988 | endfacet 989 | facet normal 0 0 -1 990 | outer loop 991 | vertex 2.27417 0.592148 -4 992 | vertex 4 4 -4 993 | vertex 2.3162 0.397151 -4 994 | endloop 995 | endfacet 996 | facet normal 0 0 -1 997 | outer loop 998 | vertex 2.21576 0.782878 -4 999 | vertex 4 4 -4 1000 | vertex 2.27417 0.592148 -4 1001 | endloop 1002 | endfacet 1003 | facet normal 0 0 -1 1004 | outer loop 1005 | vertex 2.14139 0.967967 -4 1006 | vertex 4 4 -4 1007 | vertex 2.21576 0.782878 -4 1008 | endloop 1009 | endfacet 1010 | facet normal 0 0 -1 1011 | outer loop 1012 | vertex 2.05158 1.14608 -4 1013 | vertex 4 4 -4 1014 | vertex 2.14139 0.967967 -4 1015 | endloop 1016 | endfacet 1017 | facet normal 0 0 -1 1018 | outer loop 1019 | vertex 1.947 1.31594 -4 1020 | vertex 4 4 -4 1021 | vertex 2.05158 1.14608 -4 1022 | endloop 1023 | endfacet 1024 | facet normal 0 0 -1 1025 | outer loop 1026 | vertex 1.82838 1.47632 -4 1027 | vertex 4 4 -4 1028 | vertex 1.947 1.31594 -4 1029 | endloop 1030 | endfacet 1031 | facet normal 0 0 -1 1032 | outer loop 1033 | vertex 1.6966 1.62606 -4 1034 | vertex 4 4 -4 1035 | vertex 1.82838 1.47632 -4 1036 | endloop 1037 | endfacet 1038 | facet normal 0 0 -1 1039 | outer loop 1040 | vertex 1.55258 1.76408 -4 1041 | vertex 4 4 -4 1042 | vertex 1.6966 1.62606 -4 1043 | endloop 1044 | endfacet 1045 | facet normal 0 0 -1 1046 | outer loop 1047 | vertex 1.25 4 -4 1048 | vertex 1.55258 1.76408 -4 1049 | vertex 1.39739 1.88939 -4 1050 | endloop 1051 | endfacet 1052 | facet normal 0 0 -1 1053 | outer loop 1054 | vertex 1.55258 1.76408 -4 1055 | vertex 1.25 4 -4 1056 | vertex 4 4 -4 1057 | endloop 1058 | endfacet 1059 | facet normal 0 0 -1 1060 | outer loop 1061 | vertex 1.23212 2.00109 -4 1062 | vertex 1.25 4 -4 1063 | vertex 1.39739 1.88939 -4 1064 | endloop 1065 | endfacet 1066 | facet normal 0 0 -1 1067 | outer loop 1068 | vertex 1.05798 2.09838 -4 1069 | vertex 1.25 4 -4 1070 | vertex 1.23212 2.00109 -4 1071 | endloop 1072 | endfacet 1073 | facet normal 0 0 -1 1074 | outer loop 1075 | vertex 0.876212 2.18054 -4 1076 | vertex 1.25 4 -4 1077 | vertex 1.05798 2.09838 -4 1078 | endloop 1079 | endfacet 1080 | facet normal 0 0 -1 1081 | outer loop 1082 | vertex 0.688133 2.24699 -4 1083 | vertex 1.25 4 -4 1084 | vertex 0.876212 2.18054 -4 1085 | endloop 1086 | endfacet 1087 | facet normal 0 0 -1 1088 | outer loop 1089 | vertex 0.495096 2.29725 -4 1090 | vertex 1.25 4 -4 1091 | vertex 0.688133 2.24699 -4 1092 | endloop 1093 | endfacet 1094 | facet normal 0 0 -1 1095 | outer loop 1096 | vertex 0.298491 2.33097 -4 1097 | vertex 1.25 4 -4 1098 | vertex 0.495096 2.29725 -4 1099 | endloop 1100 | endfacet 1101 | facet normal 0 0 -1 1102 | outer loop 1103 | vertex 0.0997362 2.34788 -4 1104 | vertex 1.25 4 -4 1105 | vertex 0.298491 2.33097 -4 1106 | endloop 1107 | endfacet 1108 | facet normal -0 0 -1 1109 | outer loop 1110 | vertex 1.25 4 -4 1111 | vertex 0.0997362 2.34788 -4 1112 | vertex -1.25 4 -4 1113 | endloop 1114 | endfacet 1115 | facet normal 0 0 -1 1116 | outer loop 1117 | vertex -1.25 4 -4 1118 | vertex 0.0997362 2.34788 -4 1119 | vertex -0.0997362 2.34788 -4 1120 | endloop 1121 | endfacet 1122 | facet normal 0 0 -1 1123 | outer loop 1124 | vertex -1.25 4 -4 1125 | vertex -0.0997362 2.34788 -4 1126 | vertex -0.298491 2.33097 -4 1127 | endloop 1128 | endfacet 1129 | facet normal 0 0 -1 1130 | outer loop 1131 | vertex -1.25 4 -4 1132 | vertex -0.298491 2.33097 -4 1133 | vertex -0.495096 2.29725 -4 1134 | endloop 1135 | endfacet 1136 | facet normal 0 0 -1 1137 | outer loop 1138 | vertex -1.25 4 -4 1139 | vertex -0.495096 2.29725 -4 1140 | vertex -0.688133 2.24699 -4 1141 | endloop 1142 | endfacet 1143 | facet normal 0 0 -1 1144 | outer loop 1145 | vertex -1.25 4 -4 1146 | vertex -0.688133 2.24699 -4 1147 | vertex -0.876212 2.18054 -4 1148 | endloop 1149 | endfacet 1150 | facet normal 0 0 -1 1151 | outer loop 1152 | vertex -1.25 4 -4 1153 | vertex -0.876212 2.18054 -4 1154 | vertex -1.05798 2.09838 -4 1155 | endloop 1156 | endfacet 1157 | facet normal 0 0 -1 1158 | outer loop 1159 | vertex -1.25 4 -4 1160 | vertex -1.05798 2.09838 -4 1161 | vertex -1.23212 2.00109 -4 1162 | endloop 1163 | endfacet 1164 | facet normal 0 0 -1 1165 | outer loop 1166 | vertex 1.25 4 -4 1167 | vertex -1.25 4 -4 1168 | vertex 1.25 15 -4 1169 | endloop 1170 | endfacet 1171 | facet normal -0 0 -1 1172 | outer loop 1173 | vertex 1.25 15 -4 1174 | vertex -1.25 4 -4 1175 | vertex -1.25 15 -4 1176 | endloop 1177 | endfacet 1178 | facet normal 0 -1 0 1179 | outer loop 1180 | vertex -4 -4 4 1181 | vertex -1.25 -4 -1.5 1182 | vertex 4 -4 4 1183 | endloop 1184 | endfacet 1185 | facet normal 0 -1 0 1186 | outer loop 1187 | vertex -4 -4 -4 1188 | vertex -1.25 -4 -1.5 1189 | vertex -4 -4 4 1190 | endloop 1191 | endfacet 1192 | facet normal 0 -1 -0 1193 | outer loop 1194 | vertex -1.25 -4 -1.5 1195 | vertex -4 -4 -4 1196 | vertex -1.25 -4 -4 1197 | endloop 1198 | endfacet 1199 | facet normal 0 -1 0 1200 | outer loop 1201 | vertex 1.25 -4 -1.5 1202 | vertex 4 -4 4 1203 | vertex -1.25 -4 -1.5 1204 | endloop 1205 | endfacet 1206 | facet normal 0 -1 0 1207 | outer loop 1208 | vertex 4 -4 -4 1209 | vertex 1.25 -4 -1.5 1210 | vertex 1.25 -4 -4 1211 | endloop 1212 | endfacet 1213 | facet normal 0 -1 0 1214 | outer loop 1215 | vertex 1.25 -4 -1.5 1216 | vertex 4 -4 -4 1217 | vertex 4 -4 4 1218 | endloop 1219 | endfacet 1220 | facet normal 0 1 0 1221 | outer loop 1222 | vertex 4 4 4 1223 | vertex 1.25 4 -1.5 1224 | vertex -4 4 4 1225 | endloop 1226 | endfacet 1227 | facet normal 0 1 -0 1228 | outer loop 1229 | vertex 4 4 -4 1230 | vertex 1.25 4 -1.5 1231 | vertex 4 4 4 1232 | endloop 1233 | endfacet 1234 | facet normal 0 1 0 1235 | outer loop 1236 | vertex 1.25 4 -1.5 1237 | vertex 4 4 -4 1238 | vertex 1.25 4 -4 1239 | endloop 1240 | endfacet 1241 | facet normal 0 1 -0 1242 | outer loop 1243 | vertex -1.25 4 -1.5 1244 | vertex -4 4 4 1245 | vertex 1.25 4 -1.5 1246 | endloop 1247 | endfacet 1248 | facet normal 0 1 0 1249 | outer loop 1250 | vertex -4 4 -4 1251 | vertex -1.25 4 -1.5 1252 | vertex -1.25 4 -4 1253 | endloop 1254 | endfacet 1255 | facet normal 0 1 0 1256 | outer loop 1257 | vertex -1.25 4 -1.5 1258 | vertex -4 4 -4 1259 | vertex -4 4 4 1260 | endloop 1261 | endfacet 1262 | facet normal -1 0 0 1263 | outer loop 1264 | vertex -1.25 -15 -4 1265 | vertex -1.25 -4 -1.5 1266 | vertex -1.25 -4 -4 1267 | endloop 1268 | endfacet 1269 | facet normal -1 -0 0 1270 | outer loop 1271 | vertex -1.25 -4 -1.5 1272 | vertex -1.25 -15 -4 1273 | vertex -1.25 -15 -1.5 1274 | endloop 1275 | endfacet 1276 | facet normal -1 0 0 1277 | outer loop 1278 | vertex -1.25 4 -4 1279 | vertex -1.25 15 -1.5 1280 | vertex -1.25 15 -4 1281 | endloop 1282 | endfacet 1283 | facet normal -1 -0 0 1284 | outer loop 1285 | vertex -1.25 15 -1.5 1286 | vertex -1.25 4 -4 1287 | vertex -1.25 4 -1.5 1288 | endloop 1289 | endfacet 1290 | facet normal -0 0 1 1291 | outer loop 1292 | vertex -1.25 -4 -1.5 1293 | vertex 1.25 -15 -1.5 1294 | vertex 1.25 -4 -1.5 1295 | endloop 1296 | endfacet 1297 | facet normal 0 0 1 1298 | outer loop 1299 | vertex 1.25 -15 -1.5 1300 | vertex -1.25 -4 -1.5 1301 | vertex -1.25 -15 -1.5 1302 | endloop 1303 | endfacet 1304 | facet normal -0 0 1 1305 | outer loop 1306 | vertex -1.25 15 -1.5 1307 | vertex 1.25 4 -1.5 1308 | vertex 1.25 15 -1.5 1309 | endloop 1310 | endfacet 1311 | facet normal 0 0 1 1312 | outer loop 1313 | vertex 1.25 4 -1.5 1314 | vertex -1.25 15 -1.5 1315 | vertex -1.25 4 -1.5 1316 | endloop 1317 | endfacet 1318 | facet normal 1 -0 0 1319 | outer loop 1320 | vertex 1.25 -15 -1.5 1321 | vertex 1.25 -4 -4 1322 | vertex 1.25 -4 -1.5 1323 | endloop 1324 | endfacet 1325 | facet normal 1 0 0 1326 | outer loop 1327 | vertex 1.25 -4 -4 1328 | vertex 1.25 -15 -1.5 1329 | vertex 1.25 -15 -4 1330 | endloop 1331 | endfacet 1332 | facet normal 1 -0 0 1333 | outer loop 1334 | vertex 1.25 4 -1.5 1335 | vertex 1.25 15 -4 1336 | vertex 1.25 15 -1.5 1337 | endloop 1338 | endfacet 1339 | facet normal 1 0 0 1340 | outer loop 1341 | vertex 1.25 15 -4 1342 | vertex 1.25 4 -1.5 1343 | vertex 1.25 4 -4 1344 | endloop 1345 | endfacet 1346 | facet normal 0 1 -0 1347 | outer loop 1348 | vertex 1.25 15 -4 1349 | vertex -1.25 15 -1.5 1350 | vertex 1.25 15 -1.5 1351 | endloop 1352 | endfacet 1353 | facet normal 0 1 0 1354 | outer loop 1355 | vertex -1.25 15 -1.5 1356 | vertex 1.25 15 -4 1357 | vertex -1.25 15 -4 1358 | endloop 1359 | endfacet 1360 | facet normal 0 -1 0 1361 | outer loop 1362 | vertex -1.25 -15 -4 1363 | vertex 1.25 -15 -1.5 1364 | vertex -1.25 -15 -1.5 1365 | endloop 1366 | endfacet 1367 | facet normal 0 -1 -0 1368 | outer loop 1369 | vertex 1.25 -15 -1.5 1370 | vertex -1.25 -15 -4 1371 | vertex 1.25 -15 -4 1372 | endloop 1373 | endfacet 1374 | facet normal -0.85153 -0.524306 0 1375 | outer loop 1376 | vertex 2.05158 1.14608 -4 1377 | vertex 1.947 1.31594 4 1378 | vertex 1.947 1.31594 -4 1379 | endloop 1380 | endfacet 1381 | facet normal -0.85153 -0.524306 0 1382 | outer loop 1383 | vertex 1.947 1.31594 4 1384 | vertex 2.05158 1.14608 -4 1385 | vertex 2.05158 1.14608 4 1386 | endloop 1387 | endfacet 1388 | facet normal -0.411902 -0.911228 0 1389 | outer loop 1390 | vertex 0.876212 2.18054 -4 1391 | vertex 1.05798 2.09838 4 1392 | vertex 0.876212 2.18054 4 1393 | endloop 1394 | endfacet 1395 | facet normal -0.411902 -0.911228 -0 1396 | outer loop 1397 | vertex 1.05798 2.09838 4 1398 | vertex 0.876212 2.18054 -4 1399 | vertex 1.05798 2.09838 -4 1400 | endloop 1401 | endfacet 1402 | facet normal 0.333138 -0.942878 0 1403 | outer loop 1404 | vertex -0.876212 2.18054 -4 1405 | vertex -0.688133 2.24699 4 1406 | vertex -0.876212 2.18054 4 1407 | endloop 1408 | endfacet 1409 | facet normal 0.333138 -0.942878 0 1410 | outer loop 1411 | vertex -0.688133 2.24699 4 1412 | vertex -0.876212 2.18054 -4 1413 | vertex -0.688133 2.24699 -4 1414 | endloop 1415 | endfacet 1416 | facet normal 0.927889 -0.372857 0 1417 | outer loop 1418 | vertex -2.21576 0.782878 4 1419 | vertex -2.14139 0.967967 -4 1420 | vertex -2.14139 0.967967 4 1421 | endloop 1422 | endfacet 1423 | facet normal 0.927889 -0.372857 0 1424 | outer loop 1425 | vertex -2.14139 0.967967 -4 1426 | vertex -2.21576 0.782878 4 1427 | vertex -2.21576 0.782878 -4 1428 | endloop 1429 | endfacet 1430 | facet normal -0.999099 0.0424407 0 1431 | outer loop 1432 | vertex 2.34153 -0.199293 -4 1433 | vertex 2.35 0 4 1434 | vertex 2.35 0 -4 1435 | endloop 1436 | endfacet 1437 | facet normal -0.999099 0.0424407 0 1438 | outer loop 1439 | vertex 2.35 0 4 1440 | vertex 2.34153 -0.199293 -4 1441 | vertex 2.34153 -0.199293 4 1442 | endloop 1443 | endfacet 1444 | facet normal -0.0848045 -0.996398 0 1445 | outer loop 1446 | vertex 0.0997362 2.34788 -4 1447 | vertex 0.298491 2.33097 4 1448 | vertex 0.0997362 2.34788 4 1449 | endloop 1450 | endfacet 1451 | facet normal -0.0848045 -0.996398 -0 1452 | outer loop 1453 | vertex 0.298491 2.33097 4 1454 | vertex 0.0997362 2.34788 -4 1455 | vertex 0.298491 2.33097 -4 1456 | endloop 1457 | endfacet 1458 | facet normal -0.559974 -0.82851 0 1459 | outer loop 1460 | vertex 1.23212 2.00109 -4 1461 | vertex 1.39739 1.88939 4 1462 | vertex 1.23212 2.00109 4 1463 | endloop 1464 | endfacet 1465 | facet normal -0.559974 -0.82851 -0 1466 | outer loop 1467 | vertex 1.39739 1.88939 4 1468 | vertex 1.23212 2.00109 -4 1469 | vertex 1.39739 1.88939 -4 1470 | endloop 1471 | endfacet 1472 | facet normal 0.9919 -0.12702 0 1473 | outer loop 1474 | vertex -2.34153 0.199293 4 1475 | vertex -2.3162 0.397151 -4 1476 | vertex -2.3162 0.397151 4 1477 | endloop 1478 | endfacet 1479 | facet normal 0.9919 -0.12702 0 1480 | outer loop 1481 | vertex -2.3162 0.397151 -4 1482 | vertex -2.34153 0.199293 4 1483 | vertex -2.34153 0.199293 -4 1484 | endloop 1485 | endfacet 1486 | facet normal 0.750672 -0.660675 0 1487 | outer loop 1488 | vertex -1.82838 1.47632 4 1489 | vertex -1.6966 1.62606 -4 1490 | vertex -1.6966 1.62606 4 1491 | endloop 1492 | endfacet 1493 | facet normal 0.750672 -0.660675 0 1494 | outer loop 1495 | vertex -1.6966 1.62606 -4 1496 | vertex -1.82838 1.47632 4 1497 | vertex -1.82838 1.47632 -4 1498 | endloop 1499 | endfacet 1500 | facet normal 0.169002 -0.985616 0 1501 | outer loop 1502 | vertex -0.495096 2.29725 -4 1503 | vertex -0.298491 2.33097 4 1504 | vertex -0.495096 2.29725 4 1505 | endloop 1506 | endfacet 1507 | facet normal 0.169002 -0.985616 0 1508 | outer loop 1509 | vertex -0.298491 2.33097 4 1510 | vertex -0.495096 2.29725 -4 1511 | vertex -0.298491 2.33097 -4 1512 | endloop 1513 | endfacet 1514 | facet normal -0.487696 0.873013 0 1515 | outer loop 1516 | vertex 1.23212 -2.00109 -4 1517 | vertex 1.05798 -2.09838 4 1518 | vertex 1.23212 -2.00109 4 1519 | endloop 1520 | endfacet 1521 | facet normal -0.487696 0.873013 0 1522 | outer loop 1523 | vertex 1.05798 -2.09838 4 1524 | vertex 1.23212 -2.00109 -4 1525 | vertex 1.05798 -2.09838 -4 1526 | endloop 1527 | endfacet 1528 | facet normal 0.691938 0.721957 -0 1529 | outer loop 1530 | vertex -1.55258 -1.76408 -4 1531 | vertex -1.6966 -1.62606 4 1532 | vertex -1.55258 -1.76408 4 1533 | endloop 1534 | endfacet 1535 | facet normal 0.691938 0.721957 0 1536 | outer loop 1537 | vertex -1.6966 -1.62606 4 1538 | vertex -1.55258 -1.76408 -4 1539 | vertex -1.6966 -1.62606 -4 1540 | endloop 1541 | endfacet 1542 | facet normal -0.9919 -0.12702 0 1543 | outer loop 1544 | vertex 2.34153 0.199293 -4 1545 | vertex 2.3162 0.397151 4 1546 | vertex 2.3162 0.397151 -4 1547 | endloop 1548 | endfacet 1549 | facet normal -0.9919 -0.12702 0 1550 | outer loop 1551 | vertex 2.3162 0.397151 4 1552 | vertex 2.34153 0.199293 -4 1553 | vertex 2.34153 0.199293 4 1554 | endloop 1555 | endfacet 1556 | facet normal -0.803996 -0.594634 0 1557 | outer loop 1558 | vertex 1.947 1.31594 -4 1559 | vertex 1.82838 1.47632 4 1560 | vertex 1.82838 1.47632 -4 1561 | endloop 1562 | endfacet 1563 | facet normal -0.803996 -0.594634 0 1564 | outer loop 1565 | vertex 1.82838 1.47632 4 1566 | vertex 1.947 1.31594 -4 1567 | vertex 1.947 1.31594 4 1568 | endloop 1569 | endfacet 1570 | facet normal -0.691938 -0.721957 0 1571 | outer loop 1572 | vertex 1.55258 1.76408 -4 1573 | vertex 1.6966 1.62606 4 1574 | vertex 1.55258 1.76408 4 1575 | endloop 1576 | endfacet 1577 | facet normal -0.691938 -0.721957 -0 1578 | outer loop 1579 | vertex 1.6966 1.62606 4 1580 | vertex 1.55258 1.76408 -4 1581 | vertex 1.6966 1.62606 -4 1582 | endloop 1583 | endfacet 1584 | facet normal 0 -1 0 1585 | outer loop 1586 | vertex -0.0997362 2.34788 -4 1587 | vertex 0.0997362 2.34788 4 1588 | vertex -0.0997362 2.34788 4 1589 | endloop 1590 | endfacet 1591 | facet normal 0 -1 -0 1592 | outer loop 1593 | vertex 0.0997362 2.34788 4 1594 | vertex -0.0997362 2.34788 -4 1595 | vertex 0.0997362 2.34788 -4 1596 | endloop 1597 | endfacet 1598 | facet normal -0.169002 -0.985616 0 1599 | outer loop 1600 | vertex 0.298491 2.33097 -4 1601 | vertex 0.495096 2.29725 4 1602 | vertex 0.298491 2.33097 4 1603 | endloop 1604 | endfacet 1605 | facet normal -0.169002 -0.985616 -0 1606 | outer loop 1607 | vertex 0.495096 2.29725 4 1608 | vertex 0.298491 2.33097 -4 1609 | vertex 0.495096 2.29725 -4 1610 | endloop 1611 | endfacet 1612 | facet normal -0.487696 -0.873013 0 1613 | outer loop 1614 | vertex 1.05798 2.09838 -4 1615 | vertex 1.23212 2.00109 4 1616 | vertex 1.05798 2.09838 4 1617 | endloop 1618 | endfacet 1619 | facet normal -0.487696 -0.873013 -0 1620 | outer loop 1621 | vertex 1.23212 2.00109 4 1622 | vertex 1.05798 2.09838 -4 1623 | vertex 1.23212 2.00109 -4 1624 | endloop 1625 | endfacet 1626 | facet normal -0.628222 -0.778034 0 1627 | outer loop 1628 | vertex 1.39739 1.88939 -4 1629 | vertex 1.55258 1.76408 4 1630 | vertex 1.39739 1.88939 4 1631 | endloop 1632 | endfacet 1633 | facet normal -0.628222 -0.778034 -0 1634 | outer loop 1635 | vertex 1.55258 1.76408 4 1636 | vertex 1.39739 1.88939 -4 1637 | vertex 1.55258 1.76408 -4 1638 | endloop 1639 | endfacet 1640 | facet normal 0.999099 -0.0424407 0 1641 | outer loop 1642 | vertex -2.35 0 4 1643 | vertex -2.34153 0.199293 -4 1644 | vertex -2.34153 0.199293 4 1645 | endloop 1646 | endfacet 1647 | facet normal 0.999099 -0.0424407 0 1648 | outer loop 1649 | vertex -2.34153 0.199293 -4 1650 | vertex -2.35 0 4 1651 | vertex -2.35 0 -4 1652 | endloop 1653 | endfacet 1654 | facet normal 0.956166 -0.292824 0 1655 | outer loop 1656 | vertex -2.27417 0.592148 4 1657 | vertex -2.21576 0.782878 -4 1658 | vertex -2.21576 0.782878 4 1659 | endloop 1660 | endfacet 1661 | facet normal 0.956166 -0.292824 0 1662 | outer loop 1663 | vertex -2.21576 0.782878 -4 1664 | vertex -2.27417 0.592148 4 1665 | vertex -2.27417 0.592148 -4 1666 | endloop 1667 | endfacet 1668 | facet normal 0.977556 -0.210677 0 1669 | outer loop 1670 | vertex -2.3162 0.397151 4 1671 | vertex -2.27417 0.592148 -4 1672 | vertex -2.27417 0.592148 4 1673 | endloop 1674 | endfacet 1675 | facet normal 0.977556 -0.210677 0 1676 | outer loop 1677 | vertex -2.27417 0.592148 -4 1678 | vertex -2.3162 0.397151 4 1679 | vertex -2.3162 0.397151 -4 1680 | endloop 1681 | endfacet 1682 | facet normal 0.85153 -0.524306 0 1683 | outer loop 1684 | vertex -2.05158 1.14608 4 1685 | vertex -1.947 1.31594 -4 1686 | vertex -1.947 1.31594 4 1687 | endloop 1688 | endfacet 1689 | facet normal 0.85153 -0.524306 0 1690 | outer loop 1691 | vertex -1.947 1.31594 -4 1692 | vertex -2.05158 1.14608 4 1693 | vertex -2.05158 1.14608 -4 1694 | endloop 1695 | endfacet 1696 | facet normal 0.803996 -0.594634 0 1697 | outer loop 1698 | vertex -1.947 1.31594 4 1699 | vertex -1.82838 1.47632 -4 1700 | vertex -1.82838 1.47632 4 1701 | endloop 1702 | endfacet 1703 | facet normal 0.803996 -0.594634 0 1704 | outer loop 1705 | vertex -1.82838 1.47632 -4 1706 | vertex -1.947 1.31594 4 1707 | vertex -1.947 1.31594 -4 1708 | endloop 1709 | endfacet 1710 | facet normal 0.25198 -0.967732 0 1711 | outer loop 1712 | vertex -0.688133 2.24699 -4 1713 | vertex -0.495096 2.29725 4 1714 | vertex -0.688133 2.24699 4 1715 | endloop 1716 | endfacet 1717 | facet normal 0.25198 -0.967732 0 1718 | outer loop 1719 | vertex -0.495096 2.29725 4 1720 | vertex -0.688133 2.24699 -4 1721 | vertex -0.495096 2.29725 -4 1722 | endloop 1723 | endfacet 1724 | facet normal 0.0848045 -0.996398 0 1725 | outer loop 1726 | vertex -0.298491 2.33097 -4 1727 | vertex -0.0997362 2.34788 4 1728 | vertex -0.298491 2.33097 4 1729 | endloop 1730 | endfacet 1731 | facet normal 0.0848045 -0.996398 0 1732 | outer loop 1733 | vertex -0.0997362 2.34788 4 1734 | vertex -0.298491 2.33097 -4 1735 | vertex -0.0997362 2.34788 -4 1736 | endloop 1737 | endfacet 1738 | facet normal 0.559974 -0.82851 0 1739 | outer loop 1740 | vertex -1.39739 1.88939 -4 1741 | vertex -1.23212 2.00109 4 1742 | vertex -1.39739 1.88939 4 1743 | endloop 1744 | endfacet 1745 | facet normal 0.559974 -0.82851 0 1746 | outer loop 1747 | vertex -1.23212 2.00109 4 1748 | vertex -1.39739 1.88939 -4 1749 | vertex -1.23212 2.00109 -4 1750 | endloop 1751 | endfacet 1752 | facet normal 0.628222 -0.778034 0 1753 | outer loop 1754 | vertex -1.55258 1.76408 -4 1755 | vertex -1.39739 1.88939 4 1756 | vertex -1.55258 1.76408 4 1757 | endloop 1758 | endfacet 1759 | facet normal 0.628222 -0.778034 0 1760 | outer loop 1761 | vertex -1.39739 1.88939 4 1762 | vertex -1.55258 1.76408 -4 1763 | vertex -1.39739 1.88939 -4 1764 | endloop 1765 | endfacet 1766 | facet normal 0.411902 -0.911228 0 1767 | outer loop 1768 | vertex -1.05798 2.09838 -4 1769 | vertex -0.876212 2.18054 4 1770 | vertex -1.05798 2.09838 4 1771 | endloop 1772 | endfacet 1773 | facet normal 0.411902 -0.911228 0 1774 | outer loop 1775 | vertex -0.876212 2.18054 4 1776 | vertex -1.05798 2.09838 -4 1777 | vertex -0.876212 2.18054 -4 1778 | endloop 1779 | endfacet 1780 | facet normal 0.691938 -0.721957 0 1781 | outer loop 1782 | vertex -1.6966 1.62606 -4 1783 | vertex -1.55258 1.76408 4 1784 | vertex -1.6966 1.62606 4 1785 | endloop 1786 | endfacet 1787 | facet normal 0.691938 -0.721957 0 1788 | outer loop 1789 | vertex -1.55258 1.76408 4 1790 | vertex -1.6966 1.62606 -4 1791 | vertex -1.55258 1.76408 -4 1792 | endloop 1793 | endfacet 1794 | facet normal -0.999099 -0.0424407 0 1795 | outer loop 1796 | vertex 2.35 0 -4 1797 | vertex 2.34153 0.199293 4 1798 | vertex 2.34153 0.199293 -4 1799 | endloop 1800 | endfacet 1801 | facet normal -0.999099 -0.0424407 0 1802 | outer loop 1803 | vertex 2.34153 0.199293 4 1804 | vertex 2.35 0 -4 1805 | vertex 2.35 0 4 1806 | endloop 1807 | endfacet 1808 | facet normal -0.977556 0.210677 0 1809 | outer loop 1810 | vertex 2.27417 -0.592148 -4 1811 | vertex 2.3162 -0.397151 4 1812 | vertex 2.3162 -0.397151 -4 1813 | endloop 1814 | endfacet 1815 | facet normal -0.977556 0.210677 0 1816 | outer loop 1817 | vertex 2.3162 -0.397151 4 1818 | vertex 2.27417 -0.592148 -4 1819 | vertex 2.27417 -0.592148 4 1820 | endloop 1821 | endfacet 1822 | facet normal 0.803996 0.594634 0 1823 | outer loop 1824 | vertex -1.82838 -1.47632 4 1825 | vertex -1.947 -1.31594 -4 1826 | vertex -1.947 -1.31594 4 1827 | endloop 1828 | endfacet 1829 | facet normal 0.803996 0.594634 0 1830 | outer loop 1831 | vertex -1.947 -1.31594 -4 1832 | vertex -1.82838 -1.47632 4 1833 | vertex -1.82838 -1.47632 -4 1834 | endloop 1835 | endfacet 1836 | facet normal -0.169002 0.985616 0 1837 | outer loop 1838 | vertex 0.495096 -2.29725 -4 1839 | vertex 0.298491 -2.33097 4 1840 | vertex 0.495096 -2.29725 4 1841 | endloop 1842 | endfacet 1843 | facet normal -0.169002 0.985616 0 1844 | outer loop 1845 | vertex 0.298491 -2.33097 4 1846 | vertex 0.495096 -2.29725 -4 1847 | vertex 0.298491 -2.33097 -4 1848 | endloop 1849 | endfacet 1850 | facet normal -0.956166 -0.292824 0 1851 | outer loop 1852 | vertex 2.27417 0.592148 -4 1853 | vertex 2.21576 0.782878 4 1854 | vertex 2.21576 0.782878 -4 1855 | endloop 1856 | endfacet 1857 | facet normal -0.956166 -0.292824 0 1858 | outer loop 1859 | vertex 2.21576 0.782878 4 1860 | vertex 2.27417 0.592148 -4 1861 | vertex 2.27417 0.592148 4 1862 | endloop 1863 | endfacet 1864 | facet normal -0.977556 -0.210677 0 1865 | outer loop 1866 | vertex 2.3162 0.397151 -4 1867 | vertex 2.27417 0.592148 4 1868 | vertex 2.27417 0.592148 -4 1869 | endloop 1870 | endfacet 1871 | facet normal -0.977556 -0.210677 0 1872 | outer loop 1873 | vertex 2.27417 0.592148 4 1874 | vertex 2.3162 0.397151 -4 1875 | vertex 2.3162 0.397151 4 1876 | endloop 1877 | endfacet 1878 | facet normal -0.750672 -0.660675 0 1879 | outer loop 1880 | vertex 1.82838 1.47632 -4 1881 | vertex 1.6966 1.62606 4 1882 | vertex 1.6966 1.62606 -4 1883 | endloop 1884 | endfacet 1885 | facet normal -0.750672 -0.660675 0 1886 | outer loop 1887 | vertex 1.6966 1.62606 4 1888 | vertex 1.82838 1.47632 -4 1889 | vertex 1.82838 1.47632 4 1890 | endloop 1891 | endfacet 1892 | facet normal -0.25198 -0.967732 0 1893 | outer loop 1894 | vertex 0.495096 2.29725 -4 1895 | vertex 0.688133 2.24699 4 1896 | vertex 0.495096 2.29725 4 1897 | endloop 1898 | endfacet 1899 | facet normal -0.25198 -0.967732 -0 1900 | outer loop 1901 | vertex 0.688133 2.24699 4 1902 | vertex 0.495096 2.29725 -4 1903 | vertex 0.688133 2.24699 -4 1904 | endloop 1905 | endfacet 1906 | facet normal -0.333138 -0.942878 0 1907 | outer loop 1908 | vertex 0.688133 2.24699 -4 1909 | vertex 0.876212 2.18054 4 1910 | vertex 0.688133 2.24699 4 1911 | endloop 1912 | endfacet 1913 | facet normal -0.333138 -0.942878 -0 1914 | outer loop 1915 | vertex 0.876212 2.18054 4 1916 | vertex 0.688133 2.24699 -4 1917 | vertex 0.876212 2.18054 -4 1918 | endloop 1919 | endfacet 1920 | facet normal 0.892927 -0.450202 0 1921 | outer loop 1922 | vertex -2.14139 0.967967 4 1923 | vertex -2.05158 1.14608 -4 1924 | vertex -2.05158 1.14608 4 1925 | endloop 1926 | endfacet 1927 | facet normal 0.892927 -0.450202 0 1928 | outer loop 1929 | vertex -2.05158 1.14608 -4 1930 | vertex -2.14139 0.967967 4 1931 | vertex -2.14139 0.967967 -4 1932 | endloop 1933 | endfacet 1934 | facet normal 0.487696 -0.873013 0 1935 | outer loop 1936 | vertex -1.23212 2.00109 -4 1937 | vertex -1.05798 2.09838 4 1938 | vertex -1.23212 2.00109 4 1939 | endloop 1940 | endfacet 1941 | facet normal 0.487696 -0.873013 0 1942 | outer loop 1943 | vertex -1.05798 2.09838 4 1944 | vertex -1.23212 2.00109 -4 1945 | vertex -1.05798 2.09838 -4 1946 | endloop 1947 | endfacet 1948 | facet normal -0.9919 0.12702 0 1949 | outer loop 1950 | vertex 2.3162 -0.397151 -4 1951 | vertex 2.34153 -0.199293 4 1952 | vertex 2.34153 -0.199293 -4 1953 | endloop 1954 | endfacet 1955 | facet normal -0.9919 0.12702 0 1956 | outer loop 1957 | vertex 2.34153 -0.199293 4 1958 | vertex 2.3162 -0.397151 -4 1959 | vertex 2.3162 -0.397151 4 1960 | endloop 1961 | endfacet 1962 | facet normal -0.85153 0.524306 0 1963 | outer loop 1964 | vertex 1.947 -1.31594 -4 1965 | vertex 2.05158 -1.14608 4 1966 | vertex 2.05158 -1.14608 -4 1967 | endloop 1968 | endfacet 1969 | facet normal -0.85153 0.524306 0 1970 | outer loop 1971 | vertex 2.05158 -1.14608 4 1972 | vertex 1.947 -1.31594 -4 1973 | vertex 1.947 -1.31594 4 1974 | endloop 1975 | endfacet 1976 | facet normal -0.892927 0.450202 0 1977 | outer loop 1978 | vertex 2.05158 -1.14608 -4 1979 | vertex 2.14139 -0.967967 4 1980 | vertex 2.14139 -0.967967 -4 1981 | endloop 1982 | endfacet 1983 | facet normal -0.892927 0.450202 0 1984 | outer loop 1985 | vertex 2.14139 -0.967967 4 1986 | vertex 2.05158 -1.14608 -4 1987 | vertex 2.05158 -1.14608 4 1988 | endloop 1989 | endfacet 1990 | facet normal 0 1 -0 1991 | outer loop 1992 | vertex 0.0997362 -2.34788 -4 1993 | vertex -0.0997362 -2.34788 4 1994 | vertex 0.0997362 -2.34788 4 1995 | endloop 1996 | endfacet 1997 | facet normal 0 1 0 1998 | outer loop 1999 | vertex -0.0997362 -2.34788 4 2000 | vertex 0.0997362 -2.34788 -4 2001 | vertex -0.0997362 -2.34788 -4 2002 | endloop 2003 | endfacet 2004 | facet normal 0.956166 0.292824 0 2005 | outer loop 2006 | vertex -2.21576 -0.782878 4 2007 | vertex -2.27417 -0.592148 -4 2008 | vertex -2.27417 -0.592148 4 2009 | endloop 2010 | endfacet 2011 | facet normal 0.956166 0.292824 0 2012 | outer loop 2013 | vertex -2.27417 -0.592148 -4 2014 | vertex -2.21576 -0.782878 4 2015 | vertex -2.21576 -0.782878 -4 2016 | endloop 2017 | endfacet 2018 | facet normal 0.977556 0.210677 0 2019 | outer loop 2020 | vertex -2.27417 -0.592148 4 2021 | vertex -2.3162 -0.397151 -4 2022 | vertex -2.3162 -0.397151 4 2023 | endloop 2024 | endfacet 2025 | facet normal 0.977556 0.210677 0 2026 | outer loop 2027 | vertex -2.3162 -0.397151 -4 2028 | vertex -2.27417 -0.592148 4 2029 | vertex -2.27417 -0.592148 -4 2030 | endloop 2031 | endfacet 2032 | facet normal 0.750672 0.660675 0 2033 | outer loop 2034 | vertex -1.6966 -1.62606 4 2035 | vertex -1.82838 -1.47632 -4 2036 | vertex -1.82838 -1.47632 4 2037 | endloop 2038 | endfacet 2039 | facet normal 0.750672 0.660675 0 2040 | outer loop 2041 | vertex -1.82838 -1.47632 -4 2042 | vertex -1.6966 -1.62606 4 2043 | vertex -1.6966 -1.62606 -4 2044 | endloop 2045 | endfacet 2046 | facet normal -0.0848045 0.996398 0 2047 | outer loop 2048 | vertex 0.298491 -2.33097 -4 2049 | vertex 0.0997362 -2.34788 4 2050 | vertex 0.298491 -2.33097 4 2051 | endloop 2052 | endfacet 2053 | facet normal -0.0848045 0.996398 0 2054 | outer loop 2055 | vertex 0.0997362 -2.34788 4 2056 | vertex 0.298491 -2.33097 -4 2057 | vertex 0.0997362 -2.34788 -4 2058 | endloop 2059 | endfacet 2060 | facet normal -0.25198 0.967732 0 2061 | outer loop 2062 | vertex 0.688133 -2.24699 -4 2063 | vertex 0.495096 -2.29725 4 2064 | vertex 0.688133 -2.24699 4 2065 | endloop 2066 | endfacet 2067 | facet normal -0.25198 0.967732 0 2068 | outer loop 2069 | vertex 0.495096 -2.29725 4 2070 | vertex 0.688133 -2.24699 -4 2071 | vertex 0.495096 -2.29725 -4 2072 | endloop 2073 | endfacet 2074 | facet normal -0.411902 0.911228 0 2075 | outer loop 2076 | vertex 1.05798 -2.09838 -4 2077 | vertex 0.876212 -2.18054 4 2078 | vertex 1.05798 -2.09838 4 2079 | endloop 2080 | endfacet 2081 | facet normal -0.411902 0.911228 0 2082 | outer loop 2083 | vertex 0.876212 -2.18054 4 2084 | vertex 1.05798 -2.09838 -4 2085 | vertex 0.876212 -2.18054 -4 2086 | endloop 2087 | endfacet 2088 | facet normal -0.892927 -0.450202 0 2089 | outer loop 2090 | vertex 2.14139 0.967967 -4 2091 | vertex 2.05158 1.14608 4 2092 | vertex 2.05158 1.14608 -4 2093 | endloop 2094 | endfacet 2095 | facet normal -0.892927 -0.450202 0 2096 | outer loop 2097 | vertex 2.05158 1.14608 4 2098 | vertex 2.14139 0.967967 -4 2099 | vertex 2.14139 0.967967 4 2100 | endloop 2101 | endfacet 2102 | facet normal -0.927889 -0.372857 0 2103 | outer loop 2104 | vertex 2.21576 0.782878 -4 2105 | vertex 2.14139 0.967967 4 2106 | vertex 2.14139 0.967967 -4 2107 | endloop 2108 | endfacet 2109 | facet normal -0.927889 -0.372857 0 2110 | outer loop 2111 | vertex 2.14139 0.967967 4 2112 | vertex 2.21576 0.782878 -4 2113 | vertex 2.21576 0.782878 4 2114 | endloop 2115 | endfacet 2116 | facet normal -0.803996 0.594634 0 2117 | outer loop 2118 | vertex 1.82838 -1.47632 -4 2119 | vertex 1.947 -1.31594 4 2120 | vertex 1.947 -1.31594 -4 2121 | endloop 2122 | endfacet 2123 | facet normal -0.803996 0.594634 0 2124 | outer loop 2125 | vertex 1.947 -1.31594 4 2126 | vertex 1.82838 -1.47632 -4 2127 | vertex 1.82838 -1.47632 4 2128 | endloop 2129 | endfacet 2130 | facet normal -0.956166 0.292824 0 2131 | outer loop 2132 | vertex 2.21576 -0.782878 -4 2133 | vertex 2.27417 -0.592148 4 2134 | vertex 2.27417 -0.592148 -4 2135 | endloop 2136 | endfacet 2137 | facet normal -0.956166 0.292824 0 2138 | outer loop 2139 | vertex 2.27417 -0.592148 4 2140 | vertex 2.21576 -0.782878 -4 2141 | vertex 2.21576 -0.782878 4 2142 | endloop 2143 | endfacet 2144 | facet normal 0.0848045 0.996398 -0 2145 | outer loop 2146 | vertex -0.0997362 -2.34788 -4 2147 | vertex -0.298491 -2.33097 4 2148 | vertex -0.0997362 -2.34788 4 2149 | endloop 2150 | endfacet 2151 | facet normal 0.0848045 0.996398 0 2152 | outer loop 2153 | vertex -0.298491 -2.33097 4 2154 | vertex -0.0997362 -2.34788 -4 2155 | vertex -0.298491 -2.33097 -4 2156 | endloop 2157 | endfacet 2158 | facet normal 0.9919 0.12702 0 2159 | outer loop 2160 | vertex -2.3162 -0.397151 4 2161 | vertex -2.34153 -0.199293 -4 2162 | vertex -2.34153 -0.199293 4 2163 | endloop 2164 | endfacet 2165 | facet normal 0.9919 0.12702 0 2166 | outer loop 2167 | vertex -2.34153 -0.199293 -4 2168 | vertex -2.3162 -0.397151 4 2169 | vertex -2.3162 -0.397151 -4 2170 | endloop 2171 | endfacet 2172 | facet normal 0.999099 0.0424407 0 2173 | outer loop 2174 | vertex -2.34153 -0.199293 4 2175 | vertex -2.35 0 -4 2176 | vertex -2.35 0 4 2177 | endloop 2178 | endfacet 2179 | facet normal 0.999099 0.0424407 0 2180 | outer loop 2181 | vertex -2.35 0 -4 2182 | vertex -2.34153 -0.199293 4 2183 | vertex -2.34153 -0.199293 -4 2184 | endloop 2185 | endfacet 2186 | facet normal 0.85153 0.524306 0 2187 | outer loop 2188 | vertex -1.947 -1.31594 4 2189 | vertex -2.05158 -1.14608 -4 2190 | vertex -2.05158 -1.14608 4 2191 | endloop 2192 | endfacet 2193 | facet normal 0.85153 0.524306 0 2194 | outer loop 2195 | vertex -2.05158 -1.14608 -4 2196 | vertex -1.947 -1.31594 4 2197 | vertex -1.947 -1.31594 -4 2198 | endloop 2199 | endfacet 2200 | facet normal -0.333138 0.942878 0 2201 | outer loop 2202 | vertex 0.876212 -2.18054 -4 2203 | vertex 0.688133 -2.24699 4 2204 | vertex 0.876212 -2.18054 4 2205 | endloop 2206 | endfacet 2207 | facet normal -0.333138 0.942878 0 2208 | outer loop 2209 | vertex 0.688133 -2.24699 4 2210 | vertex 0.876212 -2.18054 -4 2211 | vertex 0.688133 -2.24699 -4 2212 | endloop 2213 | endfacet 2214 | facet normal -0.750672 0.660675 0 2215 | outer loop 2216 | vertex 1.6966 -1.62606 -4 2217 | vertex 1.82838 -1.47632 4 2218 | vertex 1.82838 -1.47632 -4 2219 | endloop 2220 | endfacet 2221 | facet normal -0.750672 0.660675 0 2222 | outer loop 2223 | vertex 1.82838 -1.47632 4 2224 | vertex 1.6966 -1.62606 -4 2225 | vertex 1.6966 -1.62606 4 2226 | endloop 2227 | endfacet 2228 | facet normal -0.559974 0.82851 0 2229 | outer loop 2230 | vertex 1.39739 -1.88939 -4 2231 | vertex 1.23212 -2.00109 4 2232 | vertex 1.39739 -1.88939 4 2233 | endloop 2234 | endfacet 2235 | facet normal -0.559974 0.82851 0 2236 | outer loop 2237 | vertex 1.23212 -2.00109 4 2238 | vertex 1.39739 -1.88939 -4 2239 | vertex 1.23212 -2.00109 -4 2240 | endloop 2241 | endfacet 2242 | facet normal -0.927889 0.372857 0 2243 | outer loop 2244 | vertex 2.14139 -0.967967 -4 2245 | vertex 2.21576 -0.782878 4 2246 | vertex 2.21576 -0.782878 -4 2247 | endloop 2248 | endfacet 2249 | facet normal -0.927889 0.372857 0 2250 | outer loop 2251 | vertex 2.21576 -0.782878 4 2252 | vertex 2.14139 -0.967967 -4 2253 | vertex 2.14139 -0.967967 4 2254 | endloop 2255 | endfacet 2256 | facet normal 0.628222 0.778034 -0 2257 | outer loop 2258 | vertex -1.39739 -1.88939 -4 2259 | vertex -1.55258 -1.76408 4 2260 | vertex -1.39739 -1.88939 4 2261 | endloop 2262 | endfacet 2263 | facet normal 0.628222 0.778034 0 2264 | outer loop 2265 | vertex -1.55258 -1.76408 4 2266 | vertex -1.39739 -1.88939 -4 2267 | vertex -1.55258 -1.76408 -4 2268 | endloop 2269 | endfacet 2270 | facet normal 0.411902 0.911228 -0 2271 | outer loop 2272 | vertex -0.876212 -2.18054 -4 2273 | vertex -1.05798 -2.09838 4 2274 | vertex -0.876212 -2.18054 4 2275 | endloop 2276 | endfacet 2277 | facet normal 0.411902 0.911228 0 2278 | outer loop 2279 | vertex -1.05798 -2.09838 4 2280 | vertex -0.876212 -2.18054 -4 2281 | vertex -1.05798 -2.09838 -4 2282 | endloop 2283 | endfacet 2284 | facet normal 0.559974 0.82851 -0 2285 | outer loop 2286 | vertex -1.23212 -2.00109 -4 2287 | vertex -1.39739 -1.88939 4 2288 | vertex -1.23212 -2.00109 4 2289 | endloop 2290 | endfacet 2291 | facet normal 0.559974 0.82851 0 2292 | outer loop 2293 | vertex -1.39739 -1.88939 4 2294 | vertex -1.23212 -2.00109 -4 2295 | vertex -1.39739 -1.88939 -4 2296 | endloop 2297 | endfacet 2298 | facet normal 0.169002 0.985616 -0 2299 | outer loop 2300 | vertex -0.298491 -2.33097 -4 2301 | vertex -0.495096 -2.29725 4 2302 | vertex -0.298491 -2.33097 4 2303 | endloop 2304 | endfacet 2305 | facet normal 0.169002 0.985616 0 2306 | outer loop 2307 | vertex -0.495096 -2.29725 4 2308 | vertex -0.298491 -2.33097 -4 2309 | vertex -0.495096 -2.29725 -4 2310 | endloop 2311 | endfacet 2312 | facet normal 0.333138 0.942878 -0 2313 | outer loop 2314 | vertex -0.688133 -2.24699 -4 2315 | vertex -0.876212 -2.18054 4 2316 | vertex -0.688133 -2.24699 4 2317 | endloop 2318 | endfacet 2319 | facet normal 0.333138 0.942878 0 2320 | outer loop 2321 | vertex -0.876212 -2.18054 4 2322 | vertex -0.688133 -2.24699 -4 2323 | vertex -0.876212 -2.18054 -4 2324 | endloop 2325 | endfacet 2326 | facet normal 0.892927 0.450202 0 2327 | outer loop 2328 | vertex -2.05158 -1.14608 4 2329 | vertex -2.14139 -0.967967 -4 2330 | vertex -2.14139 -0.967967 4 2331 | endloop 2332 | endfacet 2333 | facet normal 0.892927 0.450202 0 2334 | outer loop 2335 | vertex -2.14139 -0.967967 -4 2336 | vertex -2.05158 -1.14608 4 2337 | vertex -2.05158 -1.14608 -4 2338 | endloop 2339 | endfacet 2340 | facet normal 0.927889 0.372857 0 2341 | outer loop 2342 | vertex -2.14139 -0.967967 4 2343 | vertex -2.21576 -0.782878 -4 2344 | vertex -2.21576 -0.782878 4 2345 | endloop 2346 | endfacet 2347 | facet normal 0.927889 0.372857 0 2348 | outer loop 2349 | vertex -2.21576 -0.782878 -4 2350 | vertex -2.14139 -0.967967 4 2351 | vertex -2.14139 -0.967967 -4 2352 | endloop 2353 | endfacet 2354 | facet normal -0.691938 0.721957 0 2355 | outer loop 2356 | vertex 1.6966 -1.62606 -4 2357 | vertex 1.55258 -1.76408 4 2358 | vertex 1.6966 -1.62606 4 2359 | endloop 2360 | endfacet 2361 | facet normal -0.691938 0.721957 0 2362 | outer loop 2363 | vertex 1.55258 -1.76408 4 2364 | vertex 1.6966 -1.62606 -4 2365 | vertex 1.55258 -1.76408 -4 2366 | endloop 2367 | endfacet 2368 | facet normal -0.628222 0.778034 0 2369 | outer loop 2370 | vertex 1.55258 -1.76408 -4 2371 | vertex 1.39739 -1.88939 4 2372 | vertex 1.55258 -1.76408 4 2373 | endloop 2374 | endfacet 2375 | facet normal -0.628222 0.778034 0 2376 | outer loop 2377 | vertex 1.39739 -1.88939 4 2378 | vertex 1.55258 -1.76408 -4 2379 | vertex 1.39739 -1.88939 -4 2380 | endloop 2381 | endfacet 2382 | facet normal 0.487696 0.873013 -0 2383 | outer loop 2384 | vertex -1.05798 -2.09838 -4 2385 | vertex -1.23212 -2.00109 4 2386 | vertex -1.05798 -2.09838 4 2387 | endloop 2388 | endfacet 2389 | facet normal 0.487696 0.873013 0 2390 | outer loop 2391 | vertex -1.23212 -2.00109 4 2392 | vertex -1.05798 -2.09838 -4 2393 | vertex -1.23212 -2.00109 -4 2394 | endloop 2395 | endfacet 2396 | facet normal 0.25198 0.967732 -0 2397 | outer loop 2398 | vertex -0.495096 -2.29725 -4 2399 | vertex -0.688133 -2.24699 4 2400 | vertex -0.495096 -2.29725 4 2401 | endloop 2402 | endfacet 2403 | facet normal 0.25198 0.967732 0 2404 | outer loop 2405 | vertex -0.688133 -2.24699 4 2406 | vertex -0.495096 -2.29725 -4 2407 | vertex -0.688133 -2.24699 -4 2408 | endloop 2409 | endfacet 2410 | endsolid OpenSCAD_Model 2411 | -------------------------------------------------------------------------------- /CAD files/structure.scad: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Structure that connects to the Raspberry Pi and holds the camera translation stage above it. 4 | top.scad fits onto the top, the cylindrical spaces in the fitting make room for screws. 5 | 6 | */ 7 | 8 | include ; 9 | 10 | $fa = 0.5; 11 | $fs = 0.5; 12 | 13 | bolt_separation = 49; 14 | 15 | //height of the setup, NOT including the "fitting" 16 | height = 51; 17 | 18 | //dimensions of the "feet", part of the legs which stick out and have holes to attach to the Raspberry Pi 19 | foot_width = 7; 20 | foot_length = 6 + 0.5 + 0.5 + 1; 21 | foot_thickness = 3; 22 | //radii of the holes in the feet 23 | foot_r = 1.5; 24 | nut_r = 3; 25 | 26 | //distance by which the structure is larger than the Raspberry Pi board, which therefore corresponds to the thickness of the legs ang "beam" which connect the legs 27 | extra = 7; 28 | 29 | //the - 1 is since the holes in the feel arent at foot_length/2 but at foot_length/2 - 0.5. 30 | top_width = bolt_separation + 2*extra + foot_length - 1; 31 | //the last +0.5 is tolerance so that the legs aren't that close to the actual LEDs 32 | top_length = 58 + 3 + 3 + 0.5 + 0.5 + 0.5; 33 | top_length = (58 + 3 + 3 + 0.5 + 0.5) + 0.5; 34 | top_thickness = 2; 35 | 36 | total_length = 85; 37 | beam_height = extra; 38 | fitting_height = 5; 39 | //the corresponding fitting on top.scad is extra/3 minus some tolerance 40 | fitting_width = extra/3*2; 41 | 42 | angle = 30; 43 | prism_height = (foot_length+extra) * tan(angle); 44 | 45 | hole_height = 2.5; 46 | hole_r = 2; 47 | 48 | module leg(){ 49 | 50 | difference(){ 51 | union(){ 52 | //foot 53 | cube([foot_width,foot_length+extra,foot_thickness]); 54 | //leg 55 | cube([foot_width, extra, height]); 56 | //prism 57 | rotate([0,0,90]) translate([0,-foot_width,foot_thickness]) prism(foot_width,foot_length + extra,prism_height); 58 | }; 59 | 60 | translate([foot_width/2, extra+foot_length/2 - 0.5,-1]) 61 | union(){ 62 | cylinder(r=foot_r, h=foot_thickness+2); 63 | translate([0,0,1+foot_thickness]) rotate([0,0,30]) cylinder(r=nut_r, h=prism_height, $fn = 6); 64 | }; 65 | }; 66 | }; 67 | 68 | 69 | // beam refers to the horizontal cuboids that connect the "legs" 70 | module beam(length){ 71 | cube([length,extra,beam_height]); 72 | }; 73 | 74 | // fitting refers to the square at the top of the structure, that is meant to fit into the "fitting" on top.scad 75 | module fitting(width,length,thickness){ 76 | cube([length,thickness,fitting_height]); 77 | cube([thickness,width,fitting_height]); 78 | translate([length-thickness,0,0]) cube([thickness,width,fitting_height]); 79 | translate([0,width-thickness,0]) cube([length,thickness,fitting_height]); 80 | } 81 | 82 | 83 | 84 | 85 | 86 | 87 | //lower beams 88 | beam(top_length); 89 | translate([0,top_width-extra,0]) beam(top_length); 90 | union(){ 91 | translate([foot_width-0.001,0,beam_height]) prism(extra,prism_height,prism_height); 92 | rotate([0,0,180]) translate([-0.001-top_length+foot_width,-extra,beam_height]) prism(extra,prism_height,prism_height); 93 | }; 94 | translate([0,top_width-extra,0]) union(){ 95 | translate([foot_width-0.001,0,beam_height]) prism(extra,prism_height,prism_height); 96 | rotate([0,0,180]) translate([-0.001-top_length+foot_width,-extra,beam_height]) prism(extra,prism_height,prism_height); 97 | }; 98 | 99 | 100 | difference(){ 101 | union(){ 102 | //higher beams 103 | translate([0,extra,height]) rotate([180,0,0]){ 104 | beam(top_length); 105 | translate([0,-top_width+extra,0]) beam(top_length); 106 | }; 107 | translate([0,0,height]) rotate([180,0,90]){ 108 | beam(top_width); 109 | translate([0,top_length-foot_width,0]) beam(top_width); 110 | 111 | }; 112 | 113 | 114 | 115 | //fitting 116 | translate([foot_width-fitting_width,extra-fitting_width,height]) fitting(length=top_length-2*foot_width+2*fitting_width, width = top_width-2*extra+2*fitting_width,thickness = fitting_width); 117 | 118 | //make 4 legs in the correct positions 119 | leg(); 120 | translate([top_length-foot_width,0,0]) leg(); 121 | translate([foot_width,top_width,0]) rotate([0,0,180]) leg(); 122 | translate([top_length,top_width,0]) rotate([0,0,180]) leg(); 123 | }; 124 | 125 | //Cutouts for the screws used to attach the translation stage to the top.scad. These values should be the same as in top.scad. 126 | aperture_x = top_length/2; 127 | aperture_y = top_width/2 -1; 128 | attachment_separation = 40; 129 | attachment_r = 9; 130 | aperture_to_attachment = 22.5; 131 | 132 | translate([0,0,height-2]){ 133 | translate([aperture_x+attachment_separation/2,aperture_y-aperture_to_attachment,-fitting_height-1]) cylinder(r=attachment_r-1,h=top_thickness+fitting_height+8); 134 | translate([aperture_x-attachment_separation/2,aperture_y-aperture_to_attachment,-fitting_height-1]) cylinder(r=attachment_r-1,h=top_thickness+fitting_height+8); 135 | } 136 | }; 137 | 138 | 139 | 140 | -------------------------------------------------------------------------------- /CAD files/top.scad: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | surface to place sample and attach the translation stage (mount_holder.scad) 4 | fits on top of structure.scad 5 | 6 | */ 7 | 8 | 9 | $fa = 0.5; 10 | $fs = 0.5; 11 | 12 | //separation of the raspberry pi bolt holes 13 | bolt_separation = 49; 14 | 15 | foot_width = 7; 16 | foot_length = 6 + 0.5 + 0.5 + 1; 17 | 18 | //the amount by which the structure is larger than the raspberry pi over the sides 19 | extra = 7; 20 | 21 | 22 | //the - 1 is since the holes in the feet arent at foot_length/2 but at foot_length/2 - 0.5. 23 | top_width = bolt_separation + 2*extra + foot_length - 1; 24 | 25 | // the final +0.5 is just to allow extra space for the LED 26 | top_length = (58 + 3 + 3 + 0.5 + 0.5) + 0.5; 27 | top_thickness = 2; 28 | aperture_r = 3; 29 | 30 | //6 instead of 5 for a better fit 31 | fitting_height = 6; 32 | //The 0.x at the end is to account for the tolerance of the 3D printer, very annoying to get right! 33 | fitting_width = extra/3 - 0.15; 34 | 35 | //radius of the attachment screws 36 | attachment_r = 3.2; 37 | //perpendicular distance from the aperture to the line connecting the attachment holes (depends on camera_mount.scad) 38 | aperture_to_attachment = 22.5; 39 | //separation of the attachment holes (depends on mount_holder.scad) 40 | attachment_separation = 40; 41 | 42 | 43 | //location of the aperture: depends on what array of LEDs you are using. For the Unicorn HAT HD it is surprisingly not at the center, but one LED off to the side long the length of the Raspberry Pi (the x-direction here). 3.3 is the distance between LEDs. 44 | aperture_x = top_length/2; 45 | aperture_y = top_width/2 -1; 46 | 47 | 48 | //creats the "fitting" which is the part that fits on to the corresponding "fitting" on structure.scad 49 | module fitting(width,length,thickness,f_height){ 50 | cube([length,thickness,f_height]); 51 | cube([thickness,width,f_height]); 52 | translate([length-thickness,0,0]) cube([thickness,width,f_height]); 53 | translate([0,width-thickness,0]) cube([length,thickness,f_height]); 54 | } 55 | 56 | 57 | //the top surface 58 | rotate([0,0,0]) { 59 | difference(){ 60 | //surface and fitting, from which you subtract the holes 61 | union(){ 62 | cube([top_length, top_width, top_thickness]); 63 | translate([0,0,-fitting_height]) fitting(length=top_length,width=top_width,thickness = fitting_width,f_height = fitting_height); 64 | }; 65 | 66 | //aperture, located above centre of LED array 67 | translate([aperture_x,aperture_y,-1]) cylinder(r=aperture_r, h = top_thickness+2); 68 | 69 | //attachment holes 70 | translate([aperture_x+attachment_separation/2,aperture_y-aperture_to_attachment,-fitting_height-1]) cylinder(r=attachment_r-1,h=top_thickness+fitting_height+8); 71 | translate([aperture_x-attachment_separation/2,aperture_y-aperture_to_attachment,-fitting_height-1]) cylinder(r=attachment_r-1,h=top_thickness+fitting_height+8); 72 | 73 | /* 74 | translate([aperture_x-aperture_to_attachment,aperture_y-attachment_separation/2,-fitting_height-1]){ 75 | cylinder(r=attachment_r,h=top_thickness+fitting_height+2); 76 | cylinder(r=attachment_r*2,h=fitting_height+1); 77 | } 78 | translate([aperture_x-aperture_to_attachment,aperture_y+attachment_separation/2,-fitting_height-1]){ 79 | cylinder(r=attachment_r,h=top_thickness+fitting_height+2); 80 | cylinder(r=attachment_r*2,h=fitting_height+1); 81 | */ 82 | } 83 | 84 | 85 | }; 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /CAD files/top.stl: -------------------------------------------------------------------------------- 1 | solid OpenSCAD_Model 2 | facet normal -1 0 0 3 | outer loop 4 | vertex 0 0 -6 5 | vertex 0 70 2 6 | vertex 0 70 -6 7 | endloop 8 | endfacet 9 | facet normal -1 -0 0 10 | outer loop 11 | vertex 0 70 2 12 | vertex 0 0 -6 13 | vertex 0 0 2 14 | endloop 15 | endfacet 16 | facet normal 0 0 -1 17 | outer loop 18 | vertex 54.8948 11.9895 0 19 | vertex 63.3167 2.18333 0 20 | vertex 54.95 11.5 0 21 | endloop 22 | endfacet 23 | facet normal 0 0 -1 24 | outer loop 25 | vertex 63.3167 2.18333 0 26 | vertex 54.8948 11.0105 0 27 | vertex 54.95 11.5 0 28 | endloop 29 | endfacet 30 | facet normal 0 0 -1 31 | outer loop 32 | vertex 63.3167 2.18333 0 33 | vertex 54.7321 10.5455 0 34 | vertex 54.8948 11.0105 0 35 | endloop 36 | endfacet 37 | facet normal 0 0 -1 38 | outer loop 39 | vertex 63.3167 2.18333 0 40 | vertex 54.47 10.1283 0 41 | vertex 54.7321 10.5455 0 42 | endloop 43 | endfacet 44 | facet normal 0 0 -1 45 | outer loop 46 | vertex 63.3167 2.18333 0 47 | vertex 54.1217 9.77997 0 48 | vertex 54.47 10.1283 0 49 | endloop 50 | endfacet 51 | facet normal 0 0 -1 52 | outer loop 53 | vertex 63.3167 2.18333 0 54 | vertex 53.7045 9.51787 0 55 | vertex 54.1217 9.77997 0 56 | endloop 57 | endfacet 58 | facet normal 0 0 -1 59 | outer loop 60 | vertex 63.3167 2.18333 0 61 | vertex 53.2395 9.35516 0 62 | vertex 53.7045 9.51787 0 63 | endloop 64 | endfacet 65 | facet normal 0 0 -1 66 | outer loop 67 | vertex 63.3167 2.18333 0 68 | vertex 52.75 9.3 0 69 | vertex 53.2395 9.35516 0 70 | endloop 71 | endfacet 72 | facet normal 0 0 -1 73 | outer loop 74 | vertex 63.3167 2.18333 0 75 | vertex 52.2605 9.35516 0 76 | vertex 52.75 9.3 0 77 | endloop 78 | endfacet 79 | facet normal 0 0 -1 80 | outer loop 81 | vertex 63.3167 2.18333 0 82 | vertex 51.7955 9.51787 0 83 | vertex 52.2605 9.35516 0 84 | endloop 85 | endfacet 86 | facet normal 0 0 -1 87 | outer loop 88 | vertex 13.7045 9.51787 0 89 | vertex 51.7955 9.51787 0 90 | vertex 63.3167 2.18333 0 91 | endloop 92 | endfacet 93 | facet normal 0 0 -1 94 | outer loop 95 | vertex 14.95 11.5 0 96 | vertex 50.55 11.5 0 97 | vertex 50.6052 11.0105 0 98 | endloop 99 | endfacet 100 | facet normal 0 0 -1 101 | outer loop 102 | vertex 14.8948 11.0105 0 103 | vertex 50.6052 11.0105 0 104 | vertex 50.7679 10.5455 0 105 | endloop 106 | endfacet 107 | facet normal 0 0 -1 108 | outer loop 109 | vertex 14.7321 10.5455 0 110 | vertex 50.7679 10.5455 0 111 | vertex 51.03 10.1283 0 112 | endloop 113 | endfacet 114 | facet normal 0 0 -1 115 | outer loop 116 | vertex 50.55 11.5 0 117 | vertex 35.7091 33.5062 0 118 | vertex 35.75 34 0 119 | endloop 120 | endfacet 121 | facet normal 0 0 -1 122 | outer loop 123 | vertex 50.55 11.5 0 124 | vertex 35.5875 33.0259 0 125 | vertex 35.7091 33.5062 0 126 | endloop 127 | endfacet 128 | facet normal 0 0 -1 129 | outer loop 130 | vertex 50.55 11.5 0 131 | vertex 35.3884 32.5722 0 132 | vertex 35.5875 33.0259 0 133 | endloop 134 | endfacet 135 | facet normal 0 0 -1 136 | outer loop 137 | vertex 50.55 11.5 0 138 | vertex 35.1174 32.1574 0 139 | vertex 35.3884 32.5722 0 140 | endloop 141 | endfacet 142 | facet normal 0 0 -1 143 | outer loop 144 | vertex 50.55 11.5 0 145 | vertex 34.7818 31.7928 0 146 | vertex 35.1174 32.1574 0 147 | endloop 148 | endfacet 149 | facet normal 0 0 -1 150 | outer loop 151 | vertex 50.55 11.5 0 152 | vertex 34.3908 31.4885 0 153 | vertex 34.7818 31.7928 0 154 | endloop 155 | endfacet 156 | facet normal 0 0 -1 157 | outer loop 158 | vertex 50.55 11.5 0 159 | vertex 33.9551 31.2527 0 160 | vertex 34.3908 31.4885 0 161 | endloop 162 | endfacet 163 | facet normal 0 0 -1 164 | outer loop 165 | vertex 50.55 11.5 0 166 | vertex 33.4865 31.0918 0 167 | vertex 33.9551 31.2527 0 168 | endloop 169 | endfacet 170 | facet normal 0 0 -1 171 | outer loop 172 | vertex 50.55 11.5 0 173 | vertex 32.9977 31.0102 0 174 | vertex 33.4865 31.0918 0 175 | endloop 176 | endfacet 177 | facet normal 0 0 -1 178 | outer loop 179 | vertex 50.55 11.5 0 180 | vertex 14.95 11.5 0 181 | vertex 32.9977 31.0102 0 182 | endloop 183 | endfacet 184 | facet normal -0 0 -1 185 | outer loop 186 | vertex 32.9977 31.0102 0 187 | vertex 14.95 11.5 0 188 | vertex 32.5023 31.0102 0 189 | endloop 190 | endfacet 191 | facet normal 0 0 -1 192 | outer loop 193 | vertex 14.8948 11.9895 0 194 | vertex 32.5023 31.0102 0 195 | vertex 14.95 11.5 0 196 | endloop 197 | endfacet 198 | facet normal -0 0 -1 199 | outer loop 200 | vertex 32.5023 31.0102 0 201 | vertex 14.8948 11.9895 0 202 | vertex 32.0135 31.0918 0 203 | endloop 204 | endfacet 205 | facet normal 0 0 -1 206 | outer loop 207 | vertex 14.7321 12.4545 0 208 | vertex 32.0135 31.0918 0 209 | vertex 14.8948 11.9895 0 210 | endloop 211 | endfacet 212 | facet normal -0 0 -1 213 | outer loop 214 | vertex 30.7182 31.7928 0 215 | vertex 14.1217 13.22 0 216 | vertex 30.3826 32.1574 0 217 | endloop 218 | endfacet 219 | facet normal 0 0 -1 220 | outer loop 221 | vertex 14.1217 13.22 0 222 | vertex 30.7182 31.7928 0 223 | vertex 14.47 12.8717 0 224 | endloop 225 | endfacet 226 | facet normal -0 0 -1 227 | outer loop 228 | vertex 31.1092 31.4885 0 229 | vertex 14.47 12.8717 0 230 | vertex 30.7182 31.7928 0 231 | endloop 232 | endfacet 233 | facet normal -0 0 -1 234 | outer loop 235 | vertex 31.5449 31.2527 0 236 | vertex 14.47 12.8717 0 237 | vertex 31.1092 31.4885 0 238 | endloop 239 | endfacet 240 | facet normal 0 0 -1 241 | outer loop 242 | vertex 14.47 12.8717 0 243 | vertex 31.5449 31.2527 0 244 | vertex 14.7321 12.4545 0 245 | endloop 246 | endfacet 247 | facet normal -0 0 -1 248 | outer loop 249 | vertex 32.0135 31.0918 0 250 | vertex 14.7321 12.4545 0 251 | vertex 31.5449 31.2527 0 252 | endloop 253 | endfacet 254 | facet normal 0 0 -1 255 | outer loop 256 | vertex 14.47 10.1283 0 257 | vertex 51.03 10.1283 0 258 | vertex 51.3783 9.77997 0 259 | endloop 260 | endfacet 261 | facet normal 0 0 -1 262 | outer loop 263 | vertex 51.7955 9.51787 0 264 | vertex 13.7045 9.51787 0 265 | vertex 51.3783 9.77997 0 266 | endloop 267 | endfacet 268 | facet normal 0 0 -1 269 | outer loop 270 | vertex 50.6052 11.0105 0 271 | vertex 14.8948 11.0105 0 272 | vertex 14.95 11.5 0 273 | endloop 274 | endfacet 275 | facet normal 0 0 -1 276 | outer loop 277 | vertex 50.7679 10.5455 0 278 | vertex 14.7321 10.5455 0 279 | vertex 14.8948 11.0105 0 280 | endloop 281 | endfacet 282 | facet normal 0 0 -1 283 | outer loop 284 | vertex 51.03 10.1283 0 285 | vertex 14.47 10.1283 0 286 | vertex 14.7321 10.5455 0 287 | endloop 288 | endfacet 289 | facet normal 0 0 -1 290 | outer loop 291 | vertex 51.3783 9.77997 0 292 | vertex 14.1217 9.77997 0 293 | vertex 14.47 10.1283 0 294 | endloop 295 | endfacet 296 | facet normal -0 0 -1 297 | outer loop 298 | vertex 51.3783 9.77997 0 299 | vertex 13.7045 9.51787 0 300 | vertex 14.1217 9.77997 0 301 | endloop 302 | endfacet 303 | facet normal 0 0 -1 304 | outer loop 305 | vertex 2.18333 2.18333 0 306 | vertex 13.7045 9.51787 0 307 | vertex 63.3167 2.18333 0 308 | endloop 309 | endfacet 310 | facet normal 0 0 -1 311 | outer loop 312 | vertex 13.7045 9.51787 0 313 | vertex 2.18333 2.18333 0 314 | vertex 13.2395 9.35516 0 315 | endloop 316 | endfacet 317 | facet normal 0 0 -1 318 | outer loop 319 | vertex 13.2395 9.35516 0 320 | vertex 2.18333 2.18333 0 321 | vertex 12.75 9.3 0 322 | endloop 323 | endfacet 324 | facet normal -0 0 -1 325 | outer loop 326 | vertex 10.6052 11.0105 0 327 | vertex 2.18333 2.18333 0 328 | vertex 10.55 11.5 0 329 | endloop 330 | endfacet 331 | facet normal -0 0 -1 332 | outer loop 333 | vertex 10.7679 10.5455 0 334 | vertex 2.18333 2.18333 0 335 | vertex 10.6052 11.0105 0 336 | endloop 337 | endfacet 338 | facet normal -0 0 -1 339 | outer loop 340 | vertex 11.03 10.1283 0 341 | vertex 2.18333 2.18333 0 342 | vertex 10.7679 10.5455 0 343 | endloop 344 | endfacet 345 | facet normal -0 0 -1 346 | outer loop 347 | vertex 11.3783 9.77997 0 348 | vertex 2.18333 2.18333 0 349 | vertex 11.03 10.1283 0 350 | endloop 351 | endfacet 352 | facet normal -0 0 -1 353 | outer loop 354 | vertex 11.7955 9.51787 0 355 | vertex 2.18333 2.18333 0 356 | vertex 11.3783 9.77997 0 357 | endloop 358 | endfacet 359 | facet normal -0 0 -1 360 | outer loop 361 | vertex 12.2605 9.35516 0 362 | vertex 2.18333 2.18333 0 363 | vertex 11.7955 9.51787 0 364 | endloop 365 | endfacet 366 | facet normal -0 0 -1 367 | outer loop 368 | vertex 12.75 9.3 0 369 | vertex 2.18333 2.18333 0 370 | vertex 12.2605 9.35516 0 371 | endloop 372 | endfacet 373 | facet normal 0 0 -1 374 | outer loop 375 | vertex 54.7321 12.4545 0 376 | vertex 63.3167 2.18333 0 377 | vertex 54.8948 11.9895 0 378 | endloop 379 | endfacet 380 | facet normal 0 0 -1 381 | outer loop 382 | vertex 63.3167 2.18333 0 383 | vertex 54.7321 12.4545 0 384 | vertex 63.3167 67.8167 0 385 | endloop 386 | endfacet 387 | facet normal 0 0 -1 388 | outer loop 389 | vertex 54.47 12.8717 0 390 | vertex 63.3167 67.8167 0 391 | vertex 54.7321 12.4545 0 392 | endloop 393 | endfacet 394 | facet normal 0 0 -1 395 | outer loop 396 | vertex 54.1217 13.22 0 397 | vertex 63.3167 67.8167 0 398 | vertex 54.47 12.8717 0 399 | endloop 400 | endfacet 401 | facet normal 0 0 -1 402 | outer loop 403 | vertex 53.7045 13.4821 0 404 | vertex 63.3167 67.8167 0 405 | vertex 54.1217 13.22 0 406 | endloop 407 | endfacet 408 | facet normal 0 0 -1 409 | outer loop 410 | vertex 35.7091 34.4938 0 411 | vertex 53.7045 13.4821 0 412 | vertex 53.2395 13.6448 0 413 | endloop 414 | endfacet 415 | facet normal 0 0 -1 416 | outer loop 417 | vertex 35.75 34 0 418 | vertex 53.2395 13.6448 0 419 | vertex 52.75 13.7 0 420 | endloop 421 | endfacet 422 | facet normal 0 0 -1 423 | outer loop 424 | vertex 35.75 34 0 425 | vertex 52.75 13.7 0 426 | vertex 52.2605 13.6448 0 427 | endloop 428 | endfacet 429 | facet normal 0 0 -1 430 | outer loop 431 | vertex 35.75 34 0 432 | vertex 52.2605 13.6448 0 433 | vertex 51.7955 13.4821 0 434 | endloop 435 | endfacet 436 | facet normal 0 0 -1 437 | outer loop 438 | vertex 35.75 34 0 439 | vertex 51.7955 13.4821 0 440 | vertex 51.3783 13.22 0 441 | endloop 442 | endfacet 443 | facet normal 0 0 -1 444 | outer loop 445 | vertex 35.75 34 0 446 | vertex 51.3783 13.22 0 447 | vertex 51.03 12.8717 0 448 | endloop 449 | endfacet 450 | facet normal 0 0 -1 451 | outer loop 452 | vertex 35.75 34 0 453 | vertex 51.03 12.8717 0 454 | vertex 50.7679 12.4545 0 455 | endloop 456 | endfacet 457 | facet normal 0 0 -1 458 | outer loop 459 | vertex 35.75 34 0 460 | vertex 50.7679 12.4545 0 461 | vertex 50.6052 11.9895 0 462 | endloop 463 | endfacet 464 | facet normal 0 0 -1 465 | outer loop 466 | vertex 35.75 34 0 467 | vertex 50.6052 11.9895 0 468 | vertex 50.55 11.5 0 469 | endloop 470 | endfacet 471 | facet normal 0 0 -1 472 | outer loop 473 | vertex 53.2395 13.6448 0 474 | vertex 35.75 34 0 475 | vertex 35.7091 34.4938 0 476 | endloop 477 | endfacet 478 | facet normal 0 0 -1 479 | outer loop 480 | vertex 53.7045 13.4821 0 481 | vertex 35.7091 34.4938 0 482 | vertex 63.3167 67.8167 0 483 | endloop 484 | endfacet 485 | facet normal 0 0 -1 486 | outer loop 487 | vertex 35.5875 34.9741 0 488 | vertex 63.3167 67.8167 0 489 | vertex 35.7091 34.4938 0 490 | endloop 491 | endfacet 492 | facet normal 0 0 -1 493 | outer loop 494 | vertex 35.3884 35.4278 0 495 | vertex 63.3167 67.8167 0 496 | vertex 35.5875 34.9741 0 497 | endloop 498 | endfacet 499 | facet normal 0 0 -1 500 | outer loop 501 | vertex 35.1174 35.8426 0 502 | vertex 63.3167 67.8167 0 503 | vertex 35.3884 35.4278 0 504 | endloop 505 | endfacet 506 | facet normal 0 0 -1 507 | outer loop 508 | vertex 34.7818 36.2072 0 509 | vertex 63.3167 67.8167 0 510 | vertex 35.1174 35.8426 0 511 | endloop 512 | endfacet 513 | facet normal 0 0 -1 514 | outer loop 515 | vertex 34.3908 36.5115 0 516 | vertex 63.3167 67.8167 0 517 | vertex 34.7818 36.2072 0 518 | endloop 519 | endfacet 520 | facet normal 0 0 -1 521 | outer loop 522 | vertex 33.9551 36.7473 0 523 | vertex 63.3167 67.8167 0 524 | vertex 34.3908 36.5115 0 525 | endloop 526 | endfacet 527 | facet normal 0 0 -1 528 | outer loop 529 | vertex 33.4865 36.9082 0 530 | vertex 63.3167 67.8167 0 531 | vertex 33.9551 36.7473 0 532 | endloop 533 | endfacet 534 | facet normal 0 0 -1 535 | outer loop 536 | vertex 32.9977 36.9898 0 537 | vertex 63.3167 67.8167 0 538 | vertex 33.4865 36.9082 0 539 | endloop 540 | endfacet 541 | facet normal 0 0 -1 542 | outer loop 543 | vertex 32.5023 36.9898 0 544 | vertex 63.3167 67.8167 0 545 | vertex 32.9977 36.9898 0 546 | endloop 547 | endfacet 548 | facet normal 0 0 -1 549 | outer loop 550 | vertex 2.18333 67.8167 0 551 | vertex 32.5023 36.9898 0 552 | vertex 32.0135 36.9082 0 553 | endloop 554 | endfacet 555 | facet normal 0 0 -1 556 | outer loop 557 | vertex 2.18333 67.8167 0 558 | vertex 32.0135 36.9082 0 559 | vertex 31.5449 36.7473 0 560 | endloop 561 | endfacet 562 | facet normal 0 0 -1 563 | outer loop 564 | vertex 2.18333 67.8167 0 565 | vertex 31.5449 36.7473 0 566 | vertex 31.1092 36.5115 0 567 | endloop 568 | endfacet 569 | facet normal 0 0 -1 570 | outer loop 571 | vertex 2.18333 67.8167 0 572 | vertex 31.1092 36.5115 0 573 | vertex 30.7182 36.2072 0 574 | endloop 575 | endfacet 576 | facet normal 0 0 -1 577 | outer loop 578 | vertex 13.7045 13.4821 0 579 | vertex 30.3826 32.1574 0 580 | vertex 14.1217 13.22 0 581 | endloop 582 | endfacet 583 | facet normal -0 0 -1 584 | outer loop 585 | vertex 30.3826 32.1574 0 586 | vertex 13.7045 13.4821 0 587 | vertex 30.1116 32.5722 0 588 | endloop 589 | endfacet 590 | facet normal 0 0 -1 591 | outer loop 592 | vertex 13.2395 13.6448 0 593 | vertex 30.1116 32.5722 0 594 | vertex 13.7045 13.4821 0 595 | endloop 596 | endfacet 597 | facet normal -0 0 -1 598 | outer loop 599 | vertex 30.1116 32.5722 0 600 | vertex 13.2395 13.6448 0 601 | vertex 29.9125 33.0259 0 602 | endloop 603 | endfacet 604 | facet normal 0 0 -1 605 | outer loop 606 | vertex 12.75 13.7 0 607 | vertex 29.9125 33.0259 0 608 | vertex 13.2395 13.6448 0 609 | endloop 610 | endfacet 611 | facet normal -0 0 -1 612 | outer loop 613 | vertex 29.9125 33.0259 0 614 | vertex 12.75 13.7 0 615 | vertex 29.7909 33.5062 0 616 | endloop 617 | endfacet 618 | facet normal -0 0 -1 619 | outer loop 620 | vertex 29.7909 33.5062 0 621 | vertex 12.75 13.7 0 622 | vertex 29.75 34 0 623 | endloop 624 | endfacet 625 | facet normal 0 0 -1 626 | outer loop 627 | vertex 12.2605 13.6448 0 628 | vertex 29.75 34 0 629 | vertex 12.75 13.7 0 630 | endloop 631 | endfacet 632 | facet normal -0 0 -1 633 | outer loop 634 | vertex 29.75 34 0 635 | vertex 12.2605 13.6448 0 636 | vertex 29.7909 34.4938 0 637 | endloop 638 | endfacet 639 | facet normal 0 0 -1 640 | outer loop 641 | vertex 11.7955 13.4821 0 642 | vertex 29.7909 34.4938 0 643 | vertex 12.2605 13.6448 0 644 | endloop 645 | endfacet 646 | facet normal 0 0 -1 647 | outer loop 648 | vertex 2.18333 67.8167 0 649 | vertex 29.7909 34.4938 0 650 | vertex 11.7955 13.4821 0 651 | endloop 652 | endfacet 653 | facet normal 0 0 -1 654 | outer loop 655 | vertex 29.7909 34.4938 0 656 | vertex 2.18333 67.8167 0 657 | vertex 29.9125 34.9741 0 658 | endloop 659 | endfacet 660 | facet normal 0 0 -1 661 | outer loop 662 | vertex 29.9125 34.9741 0 663 | vertex 2.18333 67.8167 0 664 | vertex 30.1116 35.4278 0 665 | endloop 666 | endfacet 667 | facet normal 0 0 -1 668 | outer loop 669 | vertex 2.18333 67.8167 0 670 | vertex 11.7955 13.4821 0 671 | vertex 11.3783 13.22 0 672 | endloop 673 | endfacet 674 | facet normal 0 0 -1 675 | outer loop 676 | vertex 2.18333 67.8167 0 677 | vertex 11.3783 13.22 0 678 | vertex 11.03 12.8717 0 679 | endloop 680 | endfacet 681 | facet normal 0 0 -1 682 | outer loop 683 | vertex 2.18333 2.18333 0 684 | vertex 10.6052 11.9895 0 685 | vertex 10.55 11.5 0 686 | endloop 687 | endfacet 688 | facet normal 0 0 -1 689 | outer loop 690 | vertex 2.18333 2.18333 0 691 | vertex 10.7679 12.4545 0 692 | vertex 10.6052 11.9895 0 693 | endloop 694 | endfacet 695 | facet normal 0 0 -1 696 | outer loop 697 | vertex 2.18333 67.8167 0 698 | vertex 10.7679 12.4545 0 699 | vertex 2.18333 2.18333 0 700 | endloop 701 | endfacet 702 | facet normal 0 0 -1 703 | outer loop 704 | vertex 32.5023 36.9898 0 705 | vertex 2.18333 67.8167 0 706 | vertex 63.3167 67.8167 0 707 | endloop 708 | endfacet 709 | facet normal 0 0 -1 710 | outer loop 711 | vertex 30.3826 35.8426 0 712 | vertex 2.18333 67.8167 0 713 | vertex 30.7182 36.2072 0 714 | endloop 715 | endfacet 716 | facet normal 0 0 -1 717 | outer loop 718 | vertex 30.1116 35.4278 0 719 | vertex 2.18333 67.8167 0 720 | vertex 30.3826 35.8426 0 721 | endloop 722 | endfacet 723 | facet normal 0 0 -1 724 | outer loop 725 | vertex 10.7679 12.4545 0 726 | vertex 2.18333 67.8167 0 727 | vertex 11.03 12.8717 0 728 | endloop 729 | endfacet 730 | facet normal 1 -0 0 731 | outer loop 732 | vertex 65.5 0 2 733 | vertex 65.5 70 -6 734 | vertex 65.5 70 2 735 | endloop 736 | endfacet 737 | facet normal 1 0 0 738 | outer loop 739 | vertex 65.5 70 -6 740 | vertex 65.5 0 2 741 | vertex 65.5 0 -6 742 | endloop 743 | endfacet 744 | facet normal 0 1 -0 745 | outer loop 746 | vertex 63.3167 2.18333 -6 747 | vertex 2.18333 2.18333 0 748 | vertex 63.3167 2.18333 0 749 | endloop 750 | endfacet 751 | facet normal 0 1 0 752 | outer loop 753 | vertex 2.18333 2.18333 0 754 | vertex 63.3167 2.18333 -6 755 | vertex 2.18333 2.18333 -6 756 | endloop 757 | endfacet 758 | facet normal 0 0 -1 759 | outer loop 760 | vertex 65.5 0 -6 761 | vertex 63.3167 2.18333 -6 762 | vertex 65.5 70 -6 763 | endloop 764 | endfacet 765 | facet normal 0 0 -1 766 | outer loop 767 | vertex 65.5 0 -6 768 | vertex 2.18333 2.18333 -6 769 | vertex 63.3167 2.18333 -6 770 | endloop 771 | endfacet 772 | facet normal -0 0 -1 773 | outer loop 774 | vertex 2.18333 2.18333 -6 775 | vertex 0 0 -6 776 | vertex 2.18333 67.8167 -6 777 | endloop 778 | endfacet 779 | facet normal 0 0 -1 780 | outer loop 781 | vertex 0 0 -6 782 | vertex 2.18333 2.18333 -6 783 | vertex 65.5 0 -6 784 | endloop 785 | endfacet 786 | facet normal 0 0 -1 787 | outer loop 788 | vertex 63.3167 67.8167 -6 789 | vertex 65.5 70 -6 790 | vertex 63.3167 2.18333 -6 791 | endloop 792 | endfacet 793 | facet normal 0 0 -1 794 | outer loop 795 | vertex 2.18333 67.8167 -6 796 | vertex 65.5 70 -6 797 | vertex 63.3167 67.8167 -6 798 | endloop 799 | endfacet 800 | facet normal 0 0 -1 801 | outer loop 802 | vertex 2.18333 67.8167 -6 803 | vertex 0 70 -6 804 | vertex 65.5 70 -6 805 | endloop 806 | endfacet 807 | facet normal 0 0 -1 808 | outer loop 809 | vertex 0 70 -6 810 | vertex 2.18333 67.8167 -6 811 | vertex 0 0 -6 812 | endloop 813 | endfacet 814 | facet normal 0 -1 0 815 | outer loop 816 | vertex 0 0 -6 817 | vertex 65.5 0 2 818 | vertex 0 0 2 819 | endloop 820 | endfacet 821 | facet normal 0 -1 -0 822 | outer loop 823 | vertex 65.5 0 2 824 | vertex 0 0 -6 825 | vertex 65.5 0 -6 826 | endloop 827 | endfacet 828 | facet normal 1 -0 0 829 | outer loop 830 | vertex 2.18333 2.18333 0 831 | vertex 2.18333 67.8167 -6 832 | vertex 2.18333 67.8167 0 833 | endloop 834 | endfacet 835 | facet normal 1 0 0 836 | outer loop 837 | vertex 2.18333 67.8167 -6 838 | vertex 2.18333 2.18333 0 839 | vertex 2.18333 2.18333 -6 840 | endloop 841 | endfacet 842 | facet normal 0 1 -0 843 | outer loop 844 | vertex 65.5 70 -6 845 | vertex 0 70 2 846 | vertex 65.5 70 2 847 | endloop 848 | endfacet 849 | facet normal 0 1 0 850 | outer loop 851 | vertex 0 70 2 852 | vertex 65.5 70 -6 853 | vertex 0 70 -6 854 | endloop 855 | endfacet 856 | facet normal -1 0 0 857 | outer loop 858 | vertex 63.3167 2.18333 -6 859 | vertex 63.3167 67.8167 0 860 | vertex 63.3167 67.8167 -6 861 | endloop 862 | endfacet 863 | facet normal -1 -0 0 864 | outer loop 865 | vertex 63.3167 67.8167 0 866 | vertex 63.3167 2.18333 -6 867 | vertex 63.3167 2.18333 0 868 | endloop 869 | endfacet 870 | facet normal 0 -1 0 871 | outer loop 872 | vertex 2.18333 67.8167 -6 873 | vertex 63.3167 67.8167 0 874 | vertex 2.18333 67.8167 0 875 | endloop 876 | endfacet 877 | facet normal 0 -1 -0 878 | outer loop 879 | vertex 63.3167 67.8167 0 880 | vertex 2.18333 67.8167 -6 881 | vertex 63.3167 67.8167 -6 882 | endloop 883 | endfacet 884 | facet normal -0 0 1 885 | outer loop 886 | vertex 54.7321 12.4545 2 887 | vertex 65.5 0 2 888 | vertex 65.5 70 2 889 | endloop 890 | endfacet 891 | facet normal 0 0 1 892 | outer loop 893 | vertex 65.5 0 2 894 | vertex 54.8948 11.9895 2 895 | vertex 54.95 11.5 2 896 | endloop 897 | endfacet 898 | facet normal 0 0 1 899 | outer loop 900 | vertex 65.5 0 2 901 | vertex 54.7321 12.4545 2 902 | vertex 54.8948 11.9895 2 903 | endloop 904 | endfacet 905 | facet normal 0 0 1 906 | outer loop 907 | vertex 65.5 70 2 908 | vertex 54.47 12.8717 2 909 | vertex 54.7321 12.4545 2 910 | endloop 911 | endfacet 912 | facet normal 0 0 1 913 | outer loop 914 | vertex 65.5 70 2 915 | vertex 54.1217 13.22 2 916 | vertex 54.47 12.8717 2 917 | endloop 918 | endfacet 919 | facet normal 0 0 1 920 | outer loop 921 | vertex 65.5 70 2 922 | vertex 53.7045 13.4821 2 923 | vertex 54.1217 13.22 2 924 | endloop 925 | endfacet 926 | facet normal -0 0 1 927 | outer loop 928 | vertex 35.7091 34.4938 2 929 | vertex 53.7045 13.4821 2 930 | vertex 65.5 70 2 931 | endloop 932 | endfacet 933 | facet normal 0 0 1 934 | outer loop 935 | vertex 53.7045 13.4821 2 936 | vertex 35.7091 34.4938 2 937 | vertex 53.2395 13.6448 2 938 | endloop 939 | endfacet 940 | facet normal -0 -0 1 941 | outer loop 942 | vertex 35.75 34 2 943 | vertex 53.2395 13.6448 2 944 | vertex 35.7091 34.4938 2 945 | endloop 946 | endfacet 947 | facet normal 0 0 1 948 | outer loop 949 | vertex 53.2395 13.6448 2 950 | vertex 35.75 34 2 951 | vertex 52.75 13.7 2 952 | endloop 953 | endfacet 954 | facet normal -0 0 1 955 | outer loop 956 | vertex 35.7091 33.5062 2 957 | vertex 52.75 13.7 2 958 | vertex 35.75 34 2 959 | endloop 960 | endfacet 961 | facet normal -0 0 1 962 | outer loop 963 | vertex 35.5875 33.0259 2 964 | vertex 52.75 13.7 2 965 | vertex 35.7091 33.5062 2 966 | endloop 967 | endfacet 968 | facet normal 0 0 1 969 | outer loop 970 | vertex 52.75 13.7 2 971 | vertex 35.5875 33.0259 2 972 | vertex 52.2605 13.6448 2 973 | endloop 974 | endfacet 975 | facet normal -0 0 1 976 | outer loop 977 | vertex 35.3884 32.5722 2 978 | vertex 52.2605 13.6448 2 979 | vertex 35.5875 33.0259 2 980 | endloop 981 | endfacet 982 | facet normal 0 0 1 983 | outer loop 984 | vertex 51.7955 13.4821 2 985 | vertex 35.1174 32.1574 2 986 | vertex 51.3783 13.22 2 987 | endloop 988 | endfacet 989 | facet normal 0 0 1 990 | outer loop 991 | vertex 52.2605 13.6448 2 992 | vertex 35.3884 32.5722 2 993 | vertex 51.7955 13.4821 2 994 | endloop 995 | endfacet 996 | facet normal -0 0 1 997 | outer loop 998 | vertex 35.1174 32.1574 2 999 | vertex 51.7955 13.4821 2 1000 | vertex 35.3884 32.5722 2 1001 | endloop 1002 | endfacet 1003 | facet normal 0 0 1 1004 | outer loop 1005 | vertex 65.5 70 2 1006 | vertex 35.5875 34.9741 2 1007 | vertex 35.7091 34.4938 2 1008 | endloop 1009 | endfacet 1010 | facet normal 0 0 1 1011 | outer loop 1012 | vertex 65.5 70 2 1013 | vertex 35.3884 35.4278 2 1014 | vertex 35.5875 34.9741 2 1015 | endloop 1016 | endfacet 1017 | facet normal 0 0 1 1018 | outer loop 1019 | vertex 65.5 70 2 1020 | vertex 35.1174 35.8426 2 1021 | vertex 35.3884 35.4278 2 1022 | endloop 1023 | endfacet 1024 | facet normal 0 0 1 1025 | outer loop 1026 | vertex 65.5 70 2 1027 | vertex 34.7818 36.2072 2 1028 | vertex 35.1174 35.8426 2 1029 | endloop 1030 | endfacet 1031 | facet normal 0 0 1 1032 | outer loop 1033 | vertex 65.5 70 2 1034 | vertex 34.3908 36.5115 2 1035 | vertex 34.7818 36.2072 2 1036 | endloop 1037 | endfacet 1038 | facet normal 0 0 1 1039 | outer loop 1040 | vertex 65.5 70 2 1041 | vertex 33.9551 36.7473 2 1042 | vertex 34.3908 36.5115 2 1043 | endloop 1044 | endfacet 1045 | facet normal 0 0 1 1046 | outer loop 1047 | vertex 65.5 70 2 1048 | vertex 33.4865 36.9082 2 1049 | vertex 33.9551 36.7473 2 1050 | endloop 1051 | endfacet 1052 | facet normal 0 0 1 1053 | outer loop 1054 | vertex 65.5 70 2 1055 | vertex 32.9977 36.9898 2 1056 | vertex 33.4865 36.9082 2 1057 | endloop 1058 | endfacet 1059 | facet normal 0 0 1 1060 | outer loop 1061 | vertex 65.5 70 2 1062 | vertex 32.5023 36.9898 2 1063 | vertex 32.9977 36.9898 2 1064 | endloop 1065 | endfacet 1066 | facet normal -0 0 1 1067 | outer loop 1068 | vertex 0 70 2 1069 | vertex 32.5023 36.9898 2 1070 | vertex 65.5 70 2 1071 | endloop 1072 | endfacet 1073 | facet normal 0 0 1 1074 | outer loop 1075 | vertex 32.5023 36.9898 2 1076 | vertex 0 70 2 1077 | vertex 32.0135 36.9082 2 1078 | endloop 1079 | endfacet 1080 | facet normal 0 0 1 1081 | outer loop 1082 | vertex 32.0135 36.9082 2 1083 | vertex 0 70 2 1084 | vertex 31.5449 36.7473 2 1085 | endloop 1086 | endfacet 1087 | facet normal 0 0 1 1088 | outer loop 1089 | vertex 31.5449 36.7473 2 1090 | vertex 0 70 2 1091 | vertex 31.1092 36.5115 2 1092 | endloop 1093 | endfacet 1094 | facet normal 0 0 1 1095 | outer loop 1096 | vertex 12.2605 13.6448 2 1097 | vertex 29.75 34 2 1098 | vertex 29.7909 34.4938 2 1099 | endloop 1100 | endfacet 1101 | facet normal 0 0 1 1102 | outer loop 1103 | vertex 0 70 2 1104 | vertex 29.7909 34.4938 2 1105 | vertex 29.9125 34.9741 2 1106 | endloop 1107 | endfacet 1108 | facet normal 0 0 1 1109 | outer loop 1110 | vertex 0 70 2 1111 | vertex 29.9125 34.9741 2 1112 | vertex 30.1116 35.4278 2 1113 | endloop 1114 | endfacet 1115 | facet normal 0 0 1 1116 | outer loop 1117 | vertex 29.75 34 2 1118 | vertex 14.8948 11.9895 2 1119 | vertex 14.95 11.5 2 1120 | endloop 1121 | endfacet 1122 | facet normal 0 0 1 1123 | outer loop 1124 | vertex 29.75 34 2 1125 | vertex 14.7321 12.4545 2 1126 | vertex 14.8948 11.9895 2 1127 | endloop 1128 | endfacet 1129 | facet normal 0 0 1 1130 | outer loop 1131 | vertex 0 70 2 1132 | vertex 30.1116 35.4278 2 1133 | vertex 30.3826 35.8426 2 1134 | endloop 1135 | endfacet 1136 | facet normal 0 0 1 1137 | outer loop 1138 | vertex 29.75 34 2 1139 | vertex 14.47 12.8717 2 1140 | vertex 14.7321 12.4545 2 1141 | endloop 1142 | endfacet 1143 | facet normal 0 0 1 1144 | outer loop 1145 | vertex 29.75 34 2 1146 | vertex 14.1217 13.22 2 1147 | vertex 14.47 12.8717 2 1148 | endloop 1149 | endfacet 1150 | facet normal 0 0 1 1151 | outer loop 1152 | vertex 29.75 34 2 1153 | vertex 13.7045 13.4821 2 1154 | vertex 14.1217 13.22 2 1155 | endloop 1156 | endfacet 1157 | facet normal 0 0 1 1158 | outer loop 1159 | vertex 29.75 34 2 1160 | vertex 13.2395 13.6448 2 1161 | vertex 13.7045 13.4821 2 1162 | endloop 1163 | endfacet 1164 | facet normal 0 0 1 1165 | outer loop 1166 | vertex 29.75 34 2 1167 | vertex 12.75 13.7 2 1168 | vertex 13.2395 13.6448 2 1169 | endloop 1170 | endfacet 1171 | facet normal 0 0 1 1172 | outer loop 1173 | vertex 29.75 34 2 1174 | vertex 12.2605 13.6448 2 1175 | vertex 12.75 13.7 2 1176 | endloop 1177 | endfacet 1178 | facet normal 0 0 1 1179 | outer loop 1180 | vertex 29.7909 34.4938 2 1181 | vertex 11.7955 13.4821 2 1182 | vertex 12.2605 13.6448 2 1183 | endloop 1184 | endfacet 1185 | facet normal 0 0 1 1186 | outer loop 1187 | vertex 29.7909 34.4938 2 1188 | vertex 0 70 2 1189 | vertex 11.7955 13.4821 2 1190 | endloop 1191 | endfacet 1192 | facet normal 0 0 1 1193 | outer loop 1194 | vertex 11.7955 13.4821 2 1195 | vertex 0 70 2 1196 | vertex 11.3783 13.22 2 1197 | endloop 1198 | endfacet 1199 | facet normal 0 0 1 1200 | outer loop 1201 | vertex 10.7679 12.4545 2 1202 | vertex 0 0 2 1203 | vertex 10.6052 11.9895 2 1204 | endloop 1205 | endfacet 1206 | facet normal 0 0 1 1207 | outer loop 1208 | vertex 0 0 2 1209 | vertex 10.7679 12.4545 2 1210 | vertex 0 70 2 1211 | endloop 1212 | endfacet 1213 | facet normal 0 0 1 1214 | outer loop 1215 | vertex 11.03 12.8717 2 1216 | vertex 0 70 2 1217 | vertex 10.7679 12.4545 2 1218 | endloop 1219 | endfacet 1220 | facet normal 0 0 1 1221 | outer loop 1222 | vertex 11.3783 13.22 2 1223 | vertex 0 70 2 1224 | vertex 11.03 12.8717 2 1225 | endloop 1226 | endfacet 1227 | facet normal 0 0 1 1228 | outer loop 1229 | vertex 30.7182 36.2072 2 1230 | vertex 0 70 2 1231 | vertex 30.3826 35.8426 2 1232 | endloop 1233 | endfacet 1234 | facet normal 0 0 1 1235 | outer loop 1236 | vertex 31.1092 36.5115 2 1237 | vertex 0 70 2 1238 | vertex 30.7182 36.2072 2 1239 | endloop 1240 | endfacet 1241 | facet normal -0 0 1 1242 | outer loop 1243 | vertex 54.8948 11.0105 2 1244 | vertex 65.5 0 2 1245 | vertex 54.95 11.5 2 1246 | endloop 1247 | endfacet 1248 | facet normal -0 0 1 1249 | outer loop 1250 | vertex 54.7321 10.5455 2 1251 | vertex 65.5 0 2 1252 | vertex 54.8948 11.0105 2 1253 | endloop 1254 | endfacet 1255 | facet normal -0 0 1 1256 | outer loop 1257 | vertex 54.47 10.1283 2 1258 | vertex 65.5 0 2 1259 | vertex 54.7321 10.5455 2 1260 | endloop 1261 | endfacet 1262 | facet normal -0 0 1 1263 | outer loop 1264 | vertex 54.1217 9.77997 2 1265 | vertex 65.5 0 2 1266 | vertex 54.47 10.1283 2 1267 | endloop 1268 | endfacet 1269 | facet normal -0 0 1 1270 | outer loop 1271 | vertex 53.7045 9.51787 2 1272 | vertex 65.5 0 2 1273 | vertex 54.1217 9.77997 2 1274 | endloop 1275 | endfacet 1276 | facet normal -0 0 1 1277 | outer loop 1278 | vertex 53.2395 9.35516 2 1279 | vertex 65.5 0 2 1280 | vertex 53.7045 9.51787 2 1281 | endloop 1282 | endfacet 1283 | facet normal -0 0 1 1284 | outer loop 1285 | vertex 52.75 9.3 2 1286 | vertex 65.5 0 2 1287 | vertex 53.2395 9.35516 2 1288 | endloop 1289 | endfacet 1290 | facet normal 0 0 1 1291 | outer loop 1292 | vertex 52.2605 9.35516 2 1293 | vertex 65.5 0 2 1294 | vertex 52.75 9.3 2 1295 | endloop 1296 | endfacet 1297 | facet normal 0 0 1 1298 | outer loop 1299 | vertex 51.7955 9.51787 2 1300 | vertex 65.5 0 2 1301 | vertex 52.2605 9.35516 2 1302 | endloop 1303 | endfacet 1304 | facet normal 0 0 1 1305 | outer loop 1306 | vertex 13.7045 9.51787 2 1307 | vertex 51.7955 9.51787 2 1308 | vertex 51.3783 9.77997 2 1309 | endloop 1310 | endfacet 1311 | facet normal -0 0 1 1312 | outer loop 1313 | vertex 34.7818 31.7928 2 1314 | vertex 51.3783 13.22 2 1315 | vertex 35.1174 32.1574 2 1316 | endloop 1317 | endfacet 1318 | facet normal 0 0 1 1319 | outer loop 1320 | vertex 51.3783 13.22 2 1321 | vertex 34.7818 31.7928 2 1322 | vertex 51.03 12.8717 2 1323 | endloop 1324 | endfacet 1325 | facet normal -0 0 1 1326 | outer loop 1327 | vertex 34.3908 31.4885 2 1328 | vertex 51.03 12.8717 2 1329 | vertex 34.7818 31.7928 2 1330 | endloop 1331 | endfacet 1332 | facet normal -0 0 1 1333 | outer loop 1334 | vertex 33.9551 31.2527 2 1335 | vertex 51.03 12.8717 2 1336 | vertex 34.3908 31.4885 2 1337 | endloop 1338 | endfacet 1339 | facet normal 0 0 1 1340 | outer loop 1341 | vertex 51.03 12.8717 2 1342 | vertex 33.9551 31.2527 2 1343 | vertex 50.7679 12.4545 2 1344 | endloop 1345 | endfacet 1346 | facet normal -0 0 1 1347 | outer loop 1348 | vertex 33.4865 31.0918 2 1349 | vertex 50.7679 12.4545 2 1350 | vertex 33.9551 31.2527 2 1351 | endloop 1352 | endfacet 1353 | facet normal 0 0 1 1354 | outer loop 1355 | vertex 50.7679 12.4545 2 1356 | vertex 33.4865 31.0918 2 1357 | vertex 50.6052 11.9895 2 1358 | endloop 1359 | endfacet 1360 | facet normal -0 0 1 1361 | outer loop 1362 | vertex 32.9977 31.0102 2 1363 | vertex 50.6052 11.9895 2 1364 | vertex 33.4865 31.0918 2 1365 | endloop 1366 | endfacet 1367 | facet normal 0 0 1 1368 | outer loop 1369 | vertex 50.6052 11.9895 2 1370 | vertex 32.9977 31.0102 2 1371 | vertex 50.55 11.5 2 1372 | endloop 1373 | endfacet 1374 | facet normal 0 0 1 1375 | outer loop 1376 | vertex 14.95 11.5 2 1377 | vertex 50.55 11.5 2 1378 | vertex 32.9977 31.0102 2 1379 | endloop 1380 | endfacet 1381 | facet normal 0 0 1 1382 | outer loop 1383 | vertex 50.55 11.5 2 1384 | vertex 14.95 11.5 2 1385 | vertex 50.6052 11.0105 2 1386 | endloop 1387 | endfacet 1388 | facet normal 0 0 1 1389 | outer loop 1390 | vertex 14.8948 11.0105 2 1391 | vertex 50.6052 11.0105 2 1392 | vertex 14.95 11.5 2 1393 | endloop 1394 | endfacet 1395 | facet normal 0 0 1 1396 | outer loop 1397 | vertex 14.95 11.5 2 1398 | vertex 32.9977 31.0102 2 1399 | vertex 32.5023 31.0102 2 1400 | endloop 1401 | endfacet 1402 | facet normal 0 0 1 1403 | outer loop 1404 | vertex 14.95 11.5 2 1405 | vertex 32.5023 31.0102 2 1406 | vertex 32.0135 31.0918 2 1407 | endloop 1408 | endfacet 1409 | facet normal 0 0 1 1410 | outer loop 1411 | vertex 14.95 11.5 2 1412 | vertex 32.0135 31.0918 2 1413 | vertex 31.5449 31.2527 2 1414 | endloop 1415 | endfacet 1416 | facet normal 0 0 1 1417 | outer loop 1418 | vertex 14.95 11.5 2 1419 | vertex 31.5449 31.2527 2 1420 | vertex 31.1092 31.4885 2 1421 | endloop 1422 | endfacet 1423 | facet normal 0 0 1 1424 | outer loop 1425 | vertex 14.95 11.5 2 1426 | vertex 31.1092 31.4885 2 1427 | vertex 30.7182 31.7928 2 1428 | endloop 1429 | endfacet 1430 | facet normal 0 0 1 1431 | outer loop 1432 | vertex 14.95 11.5 2 1433 | vertex 29.7909 33.5062 2 1434 | vertex 29.75 34 2 1435 | endloop 1436 | endfacet 1437 | facet normal 0 0 1 1438 | outer loop 1439 | vertex 14.95 11.5 2 1440 | vertex 29.9125 33.0259 2 1441 | vertex 29.7909 33.5062 2 1442 | endloop 1443 | endfacet 1444 | facet normal 0 0 1 1445 | outer loop 1446 | vertex 14.95 11.5 2 1447 | vertex 30.1116 32.5722 2 1448 | vertex 29.9125 33.0259 2 1449 | endloop 1450 | endfacet 1451 | facet normal 0 0 1 1452 | outer loop 1453 | vertex 14.95 11.5 2 1454 | vertex 30.3826 32.1574 2 1455 | vertex 30.1116 32.5722 2 1456 | endloop 1457 | endfacet 1458 | facet normal 0 0 1 1459 | outer loop 1460 | vertex 14.95 11.5 2 1461 | vertex 30.7182 31.7928 2 1462 | vertex 30.3826 32.1574 2 1463 | endloop 1464 | endfacet 1465 | facet normal 0 0 1 1466 | outer loop 1467 | vertex 50.6052 11.0105 2 1468 | vertex 14.8948 11.0105 2 1469 | vertex 50.7679 10.5455 2 1470 | endloop 1471 | endfacet 1472 | facet normal 0 0 1 1473 | outer loop 1474 | vertex 14.7321 10.5455 2 1475 | vertex 50.7679 10.5455 2 1476 | vertex 14.8948 11.0105 2 1477 | endloop 1478 | endfacet 1479 | facet normal 0 0 1 1480 | outer loop 1481 | vertex 50.7679 10.5455 2 1482 | vertex 14.7321 10.5455 2 1483 | vertex 51.03 10.1283 2 1484 | endloop 1485 | endfacet 1486 | facet normal 0 0 1 1487 | outer loop 1488 | vertex 14.47 10.1283 2 1489 | vertex 51.03 10.1283 2 1490 | vertex 14.7321 10.5455 2 1491 | endloop 1492 | endfacet 1493 | facet normal 0 0 1 1494 | outer loop 1495 | vertex 51.03 10.1283 2 1496 | vertex 14.47 10.1283 2 1497 | vertex 51.3783 9.77997 2 1498 | endloop 1499 | endfacet 1500 | facet normal 0 0 1 1501 | outer loop 1502 | vertex 14.1217 9.77997 2 1503 | vertex 51.3783 9.77997 2 1504 | vertex 14.47 10.1283 2 1505 | endloop 1506 | endfacet 1507 | facet normal 0 0 1 1508 | outer loop 1509 | vertex 13.7045 9.51787 2 1510 | vertex 51.3783 9.77997 2 1511 | vertex 14.1217 9.77997 2 1512 | endloop 1513 | endfacet 1514 | facet normal 0 0 1 1515 | outer loop 1516 | vertex 51.7955 9.51787 2 1517 | vertex 13.7045 9.51787 2 1518 | vertex 65.5 0 2 1519 | endloop 1520 | endfacet 1521 | facet normal 0 0 1 1522 | outer loop 1523 | vertex 0 0 2 1524 | vertex 13.7045 9.51787 2 1525 | vertex 13.2395 9.35516 2 1526 | endloop 1527 | endfacet 1528 | facet normal 0 0 1 1529 | outer loop 1530 | vertex 0 0 2 1531 | vertex 13.2395 9.35516 2 1532 | vertex 12.75 9.3 2 1533 | endloop 1534 | endfacet 1535 | facet normal 0 0 1 1536 | outer loop 1537 | vertex 0 0 2 1538 | vertex 12.75 9.3 2 1539 | vertex 12.2605 9.35516 2 1540 | endloop 1541 | endfacet 1542 | facet normal 0 0 1 1543 | outer loop 1544 | vertex 10.6052 11.9895 2 1545 | vertex 0 0 2 1546 | vertex 10.55 11.5 2 1547 | endloop 1548 | endfacet 1549 | facet normal 0 0 1 1550 | outer loop 1551 | vertex 13.7045 9.51787 2 1552 | vertex 0 0 2 1553 | vertex 65.5 0 2 1554 | endloop 1555 | endfacet 1556 | facet normal 0 0 1 1557 | outer loop 1558 | vertex 11.7955 9.51787 2 1559 | vertex 0 0 2 1560 | vertex 12.2605 9.35516 2 1561 | endloop 1562 | endfacet 1563 | facet normal 0 0 1 1564 | outer loop 1565 | vertex 11.3783 9.77997 2 1566 | vertex 0 0 2 1567 | vertex 11.7955 9.51787 2 1568 | endloop 1569 | endfacet 1570 | facet normal 0 0 1 1571 | outer loop 1572 | vertex 11.03 10.1283 2 1573 | vertex 0 0 2 1574 | vertex 11.3783 9.77997 2 1575 | endloop 1576 | endfacet 1577 | facet normal 0 0 1 1578 | outer loop 1579 | vertex 10.7679 10.5455 2 1580 | vertex 0 0 2 1581 | vertex 11.03 10.1283 2 1582 | endloop 1583 | endfacet 1584 | facet normal 0 0 1 1585 | outer loop 1586 | vertex 10.6052 11.0105 2 1587 | vertex 0 0 2 1588 | vertex 10.7679 10.5455 2 1589 | endloop 1590 | endfacet 1591 | facet normal 0 0 1 1592 | outer loop 1593 | vertex 10.55 11.5 2 1594 | vertex 0 0 2 1595 | vertex 10.6052 11.0105 2 1596 | endloop 1597 | endfacet 1598 | facet normal -0.996584 -0.0825803 0 1599 | outer loop 1600 | vertex 35.75 34 0 1601 | vertex 35.7091 34.4938 2 1602 | vertex 35.7091 34.4938 0 1603 | endloop 1604 | endfacet 1605 | facet normal -0.996584 -0.0825803 0 1606 | outer loop 1607 | vertex 35.7091 34.4938 2 1608 | vertex 35.75 34 0 1609 | vertex 35.75 34 2 1610 | endloop 1611 | endfacet 1612 | facet normal 0.164597 -0.986361 0 1613 | outer loop 1614 | vertex 32.0135 36.9082 0 1615 | vertex 32.5023 36.9898 2 1616 | vertex 32.0135 36.9082 2 1617 | endloop 1618 | endfacet 1619 | facet normal 0.164597 -0.986361 0 1620 | outer loop 1621 | vertex 32.5023 36.9898 2 1622 | vertex 32.0135 36.9082 0 1623 | vertex 32.5023 36.9898 0 1624 | endloop 1625 | endfacet 1626 | facet normal -0.164594 0.986361 0 1627 | outer loop 1628 | vertex 33.4865 31.0918 0 1629 | vertex 32.9977 31.0102 2 1630 | vertex 33.4865 31.0918 2 1631 | endloop 1632 | endfacet 1633 | facet normal -0.164594 0.986361 0 1634 | outer loop 1635 | vertex 32.9977 31.0102 2 1636 | vertex 33.4865 31.0918 0 1637 | vertex 32.9977 31.0102 0 1638 | endloop 1639 | endfacet 1640 | facet normal -0.614211 -0.789142 0 1641 | outer loop 1642 | vertex 34.3908 36.5115 0 1643 | vertex 34.7818 36.2072 2 1644 | vertex 34.3908 36.5115 2 1645 | endloop 1646 | endfacet 1647 | facet normal -0.614211 -0.789142 -0 1648 | outer loop 1649 | vertex 34.7818 36.2072 2 1650 | vertex 34.3908 36.5115 0 1651 | vertex 34.7818 36.2072 0 1652 | endloop 1653 | endfacet 1654 | facet normal 0.837166 -0.546949 0 1655 | outer loop 1656 | vertex 30.1116 35.4278 2 1657 | vertex 30.3826 35.8426 0 1658 | vertex 30.3826 35.8426 2 1659 | endloop 1660 | endfacet 1661 | facet normal 0.837166 -0.546949 0 1662 | outer loop 1663 | vertex 30.3826 35.8426 0 1664 | vertex 30.1116 35.4278 2 1665 | vertex 30.1116 35.4278 0 1666 | endloop 1667 | endfacet 1668 | facet normal 0.475946 -0.879475 0 1669 | outer loop 1670 | vertex 31.1092 36.5115 0 1671 | vertex 31.5449 36.7473 2 1672 | vertex 31.1092 36.5115 2 1673 | endloop 1674 | endfacet 1675 | facet normal 0.475946 -0.879475 0 1676 | outer loop 1677 | vertex 31.5449 36.7473 2 1678 | vertex 31.1092 36.5115 0 1679 | vertex 31.5449 36.7473 0 1680 | endloop 1681 | endfacet 1682 | facet normal -0.915772 -0.401698 0 1683 | outer loop 1684 | vertex 35.5875 34.9741 0 1685 | vertex 35.3884 35.4278 2 1686 | vertex 35.3884 35.4278 0 1687 | endloop 1688 | endfacet 1689 | facet normal -0.915772 -0.401698 0 1690 | outer loop 1691 | vertex 35.3884 35.4278 2 1692 | vertex 35.5875 34.9741 0 1693 | vertex 35.5875 34.9741 2 1694 | endloop 1695 | endfacet 1696 | facet normal -0.969401 -0.245484 0 1697 | outer loop 1698 | vertex 35.7091 34.4938 0 1699 | vertex 35.5875 34.9741 2 1700 | vertex 35.5875 34.9741 0 1701 | endloop 1702 | endfacet 1703 | facet normal -0.969401 -0.245484 0 1704 | outer loop 1705 | vertex 35.5875 34.9741 2 1706 | vertex 35.7091 34.4938 0 1707 | vertex 35.7091 34.4938 2 1708 | endloop 1709 | endfacet 1710 | facet normal -0.837166 -0.546949 0 1711 | outer loop 1712 | vertex 35.3884 35.4278 0 1713 | vertex 35.1174 35.8426 2 1714 | vertex 35.1174 35.8426 0 1715 | endloop 1716 | endfacet 1717 | facet normal -0.837166 -0.546949 0 1718 | outer loop 1719 | vertex 35.1174 35.8426 2 1720 | vertex 35.3884 35.4278 0 1721 | vertex 35.3884 35.4278 2 1722 | endloop 1723 | endfacet 1724 | facet normal -0.164597 -0.986361 0 1725 | outer loop 1726 | vertex 32.9977 36.9898 0 1727 | vertex 33.4865 36.9082 2 1728 | vertex 32.9977 36.9898 2 1729 | endloop 1730 | endfacet 1731 | facet normal -0.164597 -0.986361 -0 1732 | outer loop 1733 | vertex 33.4865 36.9082 2 1734 | vertex 32.9977 36.9898 0 1735 | vertex 33.4865 36.9082 0 1736 | endloop 1737 | endfacet 1738 | facet normal 0 -1 0 1739 | outer loop 1740 | vertex 32.5023 36.9898 0 1741 | vertex 32.9977 36.9898 2 1742 | vertex 32.5023 36.9898 2 1743 | endloop 1744 | endfacet 1745 | facet normal 0 -1 -0 1746 | outer loop 1747 | vertex 32.9977 36.9898 2 1748 | vertex 32.5023 36.9898 0 1749 | vertex 32.9977 36.9898 0 1750 | endloop 1751 | endfacet 1752 | facet normal -0.324701 -0.945817 0 1753 | outer loop 1754 | vertex 33.4865 36.9082 0 1755 | vertex 33.9551 36.7473 2 1756 | vertex 33.4865 36.9082 2 1757 | endloop 1758 | endfacet 1759 | facet normal -0.324701 -0.945817 -0 1760 | outer loop 1761 | vertex 33.9551 36.7473 2 1762 | vertex 33.4865 36.9082 0 1763 | vertex 33.9551 36.7473 0 1764 | endloop 1765 | endfacet 1766 | facet normal 0.969401 -0.245484 0 1767 | outer loop 1768 | vertex 29.7909 34.4938 2 1769 | vertex 29.9125 34.9741 0 1770 | vertex 29.9125 34.9741 2 1771 | endloop 1772 | endfacet 1773 | facet normal 0.969401 -0.245484 0 1774 | outer loop 1775 | vertex 29.9125 34.9741 0 1776 | vertex 29.7909 34.4938 2 1777 | vertex 29.7909 34.4938 0 1778 | endloop 1779 | endfacet 1780 | facet normal 0.915773 -0.401695 0 1781 | outer loop 1782 | vertex 29.9125 34.9741 2 1783 | vertex 30.1116 35.4278 0 1784 | vertex 30.1116 35.4278 2 1785 | endloop 1786 | endfacet 1787 | facet normal 0.915773 -0.401695 0 1788 | outer loop 1789 | vertex 30.1116 35.4278 0 1790 | vertex 29.9125 34.9741 2 1791 | vertex 29.9125 34.9741 0 1792 | endloop 1793 | endfacet 1794 | facet normal 0.996584 -0.0825803 0 1795 | outer loop 1796 | vertex 29.75 34 2 1797 | vertex 29.7909 34.4938 0 1798 | vertex 29.7909 34.4938 2 1799 | endloop 1800 | endfacet 1801 | facet normal 0.996584 -0.0825803 0 1802 | outer loop 1803 | vertex 29.7909 34.4938 0 1804 | vertex 29.75 34 2 1805 | vertex 29.75 34 0 1806 | endloop 1807 | endfacet 1808 | facet normal 0.735726 -0.677279 0 1809 | outer loop 1810 | vertex 30.3826 35.8426 2 1811 | vertex 30.7182 36.2072 0 1812 | vertex 30.7182 36.2072 2 1813 | endloop 1814 | endfacet 1815 | facet normal 0.735726 -0.677279 0 1816 | outer loop 1817 | vertex 30.7182 36.2072 0 1818 | vertex 30.3826 35.8426 2 1819 | vertex 30.3826 35.8426 0 1820 | endloop 1821 | endfacet 1822 | facet normal 0.324701 -0.945817 0 1823 | outer loop 1824 | vertex 31.5449 36.7473 0 1825 | vertex 32.0135 36.9082 2 1826 | vertex 31.5449 36.7473 2 1827 | endloop 1828 | endfacet 1829 | facet normal 0.324701 -0.945817 0 1830 | outer loop 1831 | vertex 32.0135 36.9082 2 1832 | vertex 31.5449 36.7473 0 1833 | vertex 32.0135 36.9082 0 1834 | endloop 1835 | endfacet 1836 | facet normal -0.996584 0.0825803 0 1837 | outer loop 1838 | vertex 35.7091 33.5062 0 1839 | vertex 35.75 34 2 1840 | vertex 35.75 34 0 1841 | endloop 1842 | endfacet 1843 | facet normal -0.996584 0.0825803 0 1844 | outer loop 1845 | vertex 35.75 34 2 1846 | vertex 35.7091 33.5062 0 1847 | vertex 35.7091 33.5062 2 1848 | endloop 1849 | endfacet 1850 | facet normal -0.837168 0.546946 0 1851 | outer loop 1852 | vertex 35.1174 32.1574 0 1853 | vertex 35.3884 32.5722 2 1854 | vertex 35.3884 32.5722 0 1855 | endloop 1856 | endfacet 1857 | facet normal -0.837168 0.546946 0 1858 | outer loop 1859 | vertex 35.3884 32.5722 2 1860 | vertex 35.1174 32.1574 0 1861 | vertex 35.1174 32.1574 2 1862 | endloop 1863 | endfacet 1864 | facet normal -0.735728 -0.677277 0 1865 | outer loop 1866 | vertex 35.1174 35.8426 0 1867 | vertex 34.7818 36.2072 2 1868 | vertex 34.7818 36.2072 0 1869 | endloop 1870 | endfacet 1871 | facet normal -0.735728 -0.677277 0 1872 | outer loop 1873 | vertex 34.7818 36.2072 2 1874 | vertex 35.1174 35.8426 0 1875 | vertex 35.1174 35.8426 2 1876 | endloop 1877 | endfacet 1878 | facet normal -0.475946 -0.879475 0 1879 | outer loop 1880 | vertex 33.9551 36.7473 0 1881 | vertex 34.3908 36.5115 2 1882 | vertex 33.9551 36.7473 2 1883 | endloop 1884 | endfacet 1885 | facet normal -0.475946 -0.879475 -0 1886 | outer loop 1887 | vertex 34.3908 36.5115 2 1888 | vertex 33.9551 36.7473 0 1889 | vertex 34.3908 36.5115 0 1890 | endloop 1891 | endfacet 1892 | facet normal 0.996584 0.0825803 0 1893 | outer loop 1894 | vertex 29.7909 33.5062 2 1895 | vertex 29.75 34 0 1896 | vertex 29.75 34 2 1897 | endloop 1898 | endfacet 1899 | facet normal 0.996584 0.0825803 0 1900 | outer loop 1901 | vertex 29.75 34 0 1902 | vertex 29.7909 33.5062 2 1903 | vertex 29.7909 33.5062 0 1904 | endloop 1905 | endfacet 1906 | facet normal 0.614211 -0.789142 0 1907 | outer loop 1908 | vertex 30.7182 36.2072 0 1909 | vertex 31.1092 36.5115 2 1910 | vertex 30.7182 36.2072 2 1911 | endloop 1912 | endfacet 1913 | facet normal 0.614211 -0.789142 0 1914 | outer loop 1915 | vertex 31.1092 36.5115 2 1916 | vertex 30.7182 36.2072 0 1917 | vertex 31.1092 36.5115 0 1918 | endloop 1919 | endfacet 1920 | facet normal -0.915772 0.401698 0 1921 | outer loop 1922 | vertex 35.3884 32.5722 0 1923 | vertex 35.5875 33.0259 2 1924 | vertex 35.5875 33.0259 0 1925 | endloop 1926 | endfacet 1927 | facet normal -0.915772 0.401698 0 1928 | outer loop 1929 | vertex 35.5875 33.0259 2 1930 | vertex 35.3884 32.5722 0 1931 | vertex 35.3884 32.5722 2 1932 | endloop 1933 | endfacet 1934 | facet normal 0.837168 0.546946 0 1935 | outer loop 1936 | vertex 30.3826 32.1574 2 1937 | vertex 30.1116 32.5722 0 1938 | vertex 30.1116 32.5722 2 1939 | endloop 1940 | endfacet 1941 | facet normal 0.837168 0.546946 0 1942 | outer loop 1943 | vertex 30.1116 32.5722 0 1944 | vertex 30.3826 32.1574 2 1945 | vertex 30.3826 32.1574 0 1946 | endloop 1947 | endfacet 1948 | facet normal 0.969401 0.245484 0 1949 | outer loop 1950 | vertex 29.9125 33.0259 2 1951 | vertex 29.7909 33.5062 0 1952 | vertex 29.7909 33.5062 2 1953 | endloop 1954 | endfacet 1955 | facet normal 0.969401 0.245484 0 1956 | outer loop 1957 | vertex 29.7909 33.5062 0 1958 | vertex 29.9125 33.0259 2 1959 | vertex 29.9125 33.0259 0 1960 | endloop 1961 | endfacet 1962 | facet normal -0.324701 0.945817 0 1963 | outer loop 1964 | vertex 33.9551 31.2527 0 1965 | vertex 33.4865 31.0918 2 1966 | vertex 33.9551 31.2527 2 1967 | endloop 1968 | endfacet 1969 | facet normal -0.324701 0.945817 0 1970 | outer loop 1971 | vertex 33.4865 31.0918 2 1972 | vertex 33.9551 31.2527 0 1973 | vertex 33.4865 31.0918 0 1974 | endloop 1975 | endfacet 1976 | facet normal -0.735725 0.677281 0 1977 | outer loop 1978 | vertex 34.7818 31.7928 0 1979 | vertex 35.1174 32.1574 2 1980 | vertex 35.1174 32.1574 0 1981 | endloop 1982 | endfacet 1983 | facet normal -0.735725 0.677281 0 1984 | outer loop 1985 | vertex 35.1174 32.1574 2 1986 | vertex 34.7818 31.7928 0 1987 | vertex 34.7818 31.7928 2 1988 | endloop 1989 | endfacet 1990 | facet normal -0.969401 0.245484 0 1991 | outer loop 1992 | vertex 35.5875 33.0259 0 1993 | vertex 35.7091 33.5062 2 1994 | vertex 35.7091 33.5062 0 1995 | endloop 1996 | endfacet 1997 | facet normal -0.969401 0.245484 0 1998 | outer loop 1999 | vertex 35.7091 33.5062 2 2000 | vertex 35.5875 33.0259 0 2001 | vertex 35.5875 33.0259 2 2002 | endloop 2003 | endfacet 2004 | facet normal 0.164594 0.986361 -0 2005 | outer loop 2006 | vertex 32.5023 31.0102 0 2007 | vertex 32.0135 31.0918 2 2008 | vertex 32.5023 31.0102 2 2009 | endloop 2010 | endfacet 2011 | facet normal 0.164594 0.986361 0 2012 | outer loop 2013 | vertex 32.0135 31.0918 2 2014 | vertex 32.5023 31.0102 0 2015 | vertex 32.0135 31.0918 0 2016 | endloop 2017 | endfacet 2018 | facet normal 0.915773 0.401695 0 2019 | outer loop 2020 | vertex 30.1116 32.5722 2 2021 | vertex 29.9125 33.0259 0 2022 | vertex 29.9125 33.0259 2 2023 | endloop 2024 | endfacet 2025 | facet normal 0.915773 0.401695 0 2026 | outer loop 2027 | vertex 29.9125 33.0259 0 2028 | vertex 30.1116 32.5722 2 2029 | vertex 30.1116 32.5722 0 2030 | endloop 2031 | endfacet 2032 | facet normal -0.475943 0.879476 0 2033 | outer loop 2034 | vertex 34.3908 31.4885 0 2035 | vertex 33.9551 31.2527 2 2036 | vertex 34.3908 31.4885 2 2037 | endloop 2038 | endfacet 2039 | facet normal -0.475943 0.879476 0 2040 | outer loop 2041 | vertex 33.9551 31.2527 2 2042 | vertex 34.3908 31.4885 0 2043 | vertex 33.9551 31.2527 0 2044 | endloop 2045 | endfacet 2046 | facet normal -0.614216 0.789138 0 2047 | outer loop 2048 | vertex 34.7818 31.7928 0 2049 | vertex 34.3908 31.4885 2 2050 | vertex 34.7818 31.7928 2 2051 | endloop 2052 | endfacet 2053 | facet normal -0.614216 0.789138 0 2054 | outer loop 2055 | vertex 34.3908 31.4885 2 2056 | vertex 34.7818 31.7928 0 2057 | vertex 34.3908 31.4885 0 2058 | endloop 2059 | endfacet 2060 | facet normal 0.475943 0.879476 -0 2061 | outer loop 2062 | vertex 31.5449 31.2527 0 2063 | vertex 31.1092 31.4885 2 2064 | vertex 31.5449 31.2527 2 2065 | endloop 2066 | endfacet 2067 | facet normal 0.475943 0.879476 0 2068 | outer loop 2069 | vertex 31.1092 31.4885 2 2070 | vertex 31.5449 31.2527 0 2071 | vertex 31.1092 31.4885 0 2072 | endloop 2073 | endfacet 2074 | facet normal 0 1 -0 2075 | outer loop 2076 | vertex 32.9977 31.0102 0 2077 | vertex 32.5023 31.0102 2 2078 | vertex 32.9977 31.0102 2 2079 | endloop 2080 | endfacet 2081 | facet normal 0 1 0 2082 | outer loop 2083 | vertex 32.5023 31.0102 2 2084 | vertex 32.9977 31.0102 0 2085 | vertex 32.5023 31.0102 0 2086 | endloop 2087 | endfacet 2088 | facet normal 0.614216 0.789138 -0 2089 | outer loop 2090 | vertex 31.1092 31.4885 0 2091 | vertex 30.7182 31.7928 2 2092 | vertex 31.1092 31.4885 2 2093 | endloop 2094 | endfacet 2095 | facet normal 0.614216 0.789138 0 2096 | outer loop 2097 | vertex 30.7182 31.7928 2 2098 | vertex 31.1092 31.4885 0 2099 | vertex 30.7182 31.7928 0 2100 | endloop 2101 | endfacet 2102 | facet normal 0.735723 0.677283 0 2103 | outer loop 2104 | vertex 30.7182 31.7928 2 2105 | vertex 30.3826 32.1574 0 2106 | vertex 30.3826 32.1574 2 2107 | endloop 2108 | endfacet 2109 | facet normal 0.735723 0.677283 0 2110 | outer loop 2111 | vertex 30.3826 32.1574 0 2112 | vertex 30.7182 31.7928 2 2113 | vertex 30.7182 31.7928 0 2114 | endloop 2115 | endfacet 2116 | facet normal 0.324701 0.945817 -0 2117 | outer loop 2118 | vertex 32.0135 31.0918 0 2119 | vertex 31.5449 31.2527 2 2120 | vertex 32.0135 31.0918 2 2121 | endloop 2122 | endfacet 2123 | facet normal 0.324701 0.945817 0 2124 | outer loop 2125 | vertex 31.5449 31.2527 2 2126 | vertex 32.0135 31.0918 0 2127 | vertex 31.5449 31.2527 0 2128 | endloop 2129 | endfacet 2130 | facet normal -0.993712 -0.111968 0 2131 | outer loop 2132 | vertex 54.95 11.5 0 2133 | vertex 54.8948 11.9895 2 2134 | vertex 54.8948 11.9895 0 2135 | endloop 2136 | endfacet 2137 | facet normal -0.993712 -0.111968 0 2138 | outer loop 2139 | vertex 54.8948 11.9895 2 2140 | vertex 54.95 11.5 0 2141 | vertex 54.95 11.5 2 2142 | endloop 2143 | endfacet 2144 | facet normal 0.111964 -0.993712 0 2145 | outer loop 2146 | vertex 52.2605 13.6448 0 2147 | vertex 52.75 13.7 2 2148 | vertex 52.2605 13.6448 2 2149 | endloop 2150 | endfacet 2151 | facet normal 0.111964 -0.993712 0 2152 | outer loop 2153 | vertex 52.75 13.7 2 2154 | vertex 52.2605 13.6448 0 2155 | vertex 52.75 13.7 0 2156 | endloop 2157 | endfacet 2158 | facet normal -0.111964 0.993712 0 2159 | outer loop 2160 | vertex 53.2395 9.35516 0 2161 | vertex 52.75 9.3 2 2162 | vertex 53.2395 9.35516 2 2163 | endloop 2164 | endfacet 2165 | facet normal -0.111964 0.993712 0 2166 | outer loop 2167 | vertex 52.75 9.3 2 2168 | vertex 53.2395 9.35516 0 2169 | vertex 52.75 9.3 0 2170 | endloop 2171 | endfacet 2172 | facet normal -0.707108 -0.707106 0 2173 | outer loop 2174 | vertex 54.47 12.8717 0 2175 | vertex 54.1217 13.22 2 2176 | vertex 54.1217 13.22 0 2177 | endloop 2178 | endfacet 2179 | facet normal -0.707108 -0.707106 0 2180 | outer loop 2181 | vertex 54.1217 13.22 2 2182 | vertex 54.47 12.8717 0 2183 | vertex 54.47 12.8717 2 2184 | endloop 2185 | endfacet 2186 | facet normal 0.707104 -0.70711 0 2187 | outer loop 2188 | vertex 51.03 12.8717 0 2189 | vertex 51.3783 13.22 2 2190 | vertex 51.03 12.8717 2 2191 | endloop 2192 | endfacet 2193 | facet normal 0.707104 -0.70711 0 2194 | outer loop 2195 | vertex 51.3783 13.22 2 2196 | vertex 51.03 12.8717 0 2197 | vertex 51.3783 13.22 0 2198 | endloop 2199 | endfacet 2200 | facet normal 0.532032 -0.846724 0 2201 | outer loop 2202 | vertex 51.3783 13.22 0 2203 | vertex 51.7955 13.4821 2 2204 | vertex 51.3783 13.22 2 2205 | endloop 2206 | endfacet 2207 | facet normal 0.532032 -0.846724 0 2208 | outer loop 2209 | vertex 51.7955 13.4821 2 2210 | vertex 51.3783 13.22 0 2211 | vertex 51.7955 13.4821 0 2212 | endloop 2213 | endfacet 2214 | facet normal -0.846723 0.532035 0 2215 | outer loop 2216 | vertex 54.47 10.1283 0 2217 | vertex 54.7321 10.5455 2 2218 | vertex 54.7321 10.5455 0 2219 | endloop 2220 | endfacet 2221 | facet normal -0.846723 0.532035 0 2222 | outer loop 2223 | vertex 54.7321 10.5455 2 2224 | vertex 54.47 10.1283 0 2225 | vertex 54.47 10.1283 2 2226 | endloop 2227 | endfacet 2228 | facet normal -0.846723 -0.532035 0 2229 | outer loop 2230 | vertex 54.7321 12.4545 0 2231 | vertex 54.47 12.8717 2 2232 | vertex 54.47 12.8717 0 2233 | endloop 2234 | endfacet 2235 | facet normal -0.846723 -0.532035 0 2236 | outer loop 2237 | vertex 54.47 12.8717 2 2238 | vertex 54.7321 12.4545 0 2239 | vertex 54.7321 12.4545 2 2240 | endloop 2241 | endfacet 2242 | facet normal -0.943884 -0.330276 0 2243 | outer loop 2244 | vertex 54.8948 11.9895 0 2245 | vertex 54.7321 12.4545 2 2246 | vertex 54.7321 12.4545 0 2247 | endloop 2248 | endfacet 2249 | facet normal -0.943884 -0.330276 0 2250 | outer loop 2251 | vertex 54.7321 12.4545 2 2252 | vertex 54.8948 11.9895 0 2253 | vertex 54.8948 11.9895 2 2254 | endloop 2255 | endfacet 2256 | facet normal -0.330281 -0.943883 0 2257 | outer loop 2258 | vertex 53.2395 13.6448 0 2259 | vertex 53.7045 13.4821 2 2260 | vertex 53.2395 13.6448 2 2261 | endloop 2262 | endfacet 2263 | facet normal -0.330281 -0.943883 -0 2264 | outer loop 2265 | vertex 53.7045 13.4821 2 2266 | vertex 53.2395 13.6448 0 2267 | vertex 53.7045 13.4821 0 2268 | endloop 2269 | endfacet 2270 | facet normal -0.111964 -0.993712 0 2271 | outer loop 2272 | vertex 52.75 13.7 0 2273 | vertex 53.2395 13.6448 2 2274 | vertex 52.75 13.7 2 2275 | endloop 2276 | endfacet 2277 | facet normal -0.111964 -0.993712 -0 2278 | outer loop 2279 | vertex 53.2395 13.6448 2 2280 | vertex 52.75 13.7 0 2281 | vertex 53.2395 13.6448 0 2282 | endloop 2283 | endfacet 2284 | facet normal -0.532032 -0.846724 0 2285 | outer loop 2286 | vertex 53.7045 13.4821 0 2287 | vertex 54.1217 13.22 2 2288 | vertex 53.7045 13.4821 2 2289 | endloop 2290 | endfacet 2291 | facet normal -0.532032 -0.846724 -0 2292 | outer loop 2293 | vertex 54.1217 13.22 2 2294 | vertex 53.7045 13.4821 0 2295 | vertex 54.1217 13.22 0 2296 | endloop 2297 | endfacet 2298 | facet normal 0.943882 -0.330283 0 2299 | outer loop 2300 | vertex 50.6052 11.9895 2 2301 | vertex 50.7679 12.4545 0 2302 | vertex 50.7679 12.4545 2 2303 | endloop 2304 | endfacet 2305 | facet normal 0.943882 -0.330283 0 2306 | outer loop 2307 | vertex 50.7679 12.4545 0 2308 | vertex 50.6052 11.9895 2 2309 | vertex 50.6052 11.9895 0 2310 | endloop 2311 | endfacet 2312 | facet normal 0.846726 -0.532029 0 2313 | outer loop 2314 | vertex 50.7679 12.4545 2 2315 | vertex 51.03 12.8717 0 2316 | vertex 51.03 12.8717 2 2317 | endloop 2318 | endfacet 2319 | facet normal 0.846726 -0.532029 0 2320 | outer loop 2321 | vertex 51.03 12.8717 0 2322 | vertex 50.7679 12.4545 2 2323 | vertex 50.7679 12.4545 0 2324 | endloop 2325 | endfacet 2326 | facet normal 0.993713 -0.111961 0 2327 | outer loop 2328 | vertex 50.55 11.5 2 2329 | vertex 50.6052 11.9895 0 2330 | vertex 50.6052 11.9895 2 2331 | endloop 2332 | endfacet 2333 | facet normal 0.993713 -0.111961 0 2334 | outer loop 2335 | vertex 50.6052 11.9895 0 2336 | vertex 50.55 11.5 2 2337 | vertex 50.55 11.5 0 2338 | endloop 2339 | endfacet 2340 | facet normal 0.330281 -0.943883 0 2341 | outer loop 2342 | vertex 51.7955 13.4821 0 2343 | vertex 52.2605 13.6448 2 2344 | vertex 51.7955 13.4821 2 2345 | endloop 2346 | endfacet 2347 | facet normal 0.330281 -0.943883 0 2348 | outer loop 2349 | vertex 52.2605 13.6448 2 2350 | vertex 51.7955 13.4821 0 2351 | vertex 52.2605 13.6448 0 2352 | endloop 2353 | endfacet 2354 | facet normal -0.330281 0.943883 0 2355 | outer loop 2356 | vertex 53.7045 9.51787 0 2357 | vertex 53.2395 9.35516 2 2358 | vertex 53.7045 9.51787 2 2359 | endloop 2360 | endfacet 2361 | facet normal -0.330281 0.943883 0 2362 | outer loop 2363 | vertex 53.2395 9.35516 2 2364 | vertex 53.7045 9.51787 0 2365 | vertex 53.2395 9.35516 0 2366 | endloop 2367 | endfacet 2368 | facet normal -0.707108 0.707106 0 2369 | outer loop 2370 | vertex 54.1217 9.77997 0 2371 | vertex 54.47 10.1283 2 2372 | vertex 54.47 10.1283 0 2373 | endloop 2374 | endfacet 2375 | facet normal -0.707108 0.707106 0 2376 | outer loop 2377 | vertex 54.47 10.1283 2 2378 | vertex 54.1217 9.77997 0 2379 | vertex 54.1217 9.77997 2 2380 | endloop 2381 | endfacet 2382 | facet normal 0.532032 0.846724 -0 2383 | outer loop 2384 | vertex 51.7955 9.51787 0 2385 | vertex 51.3783 9.77997 2 2386 | vertex 51.7955 9.51787 2 2387 | endloop 2388 | endfacet 2389 | facet normal 0.532032 0.846724 0 2390 | outer loop 2391 | vertex 51.3783 9.77997 2 2392 | vertex 51.7955 9.51787 0 2393 | vertex 51.3783 9.77997 0 2394 | endloop 2395 | endfacet 2396 | facet normal 0.111964 0.993712 -0 2397 | outer loop 2398 | vertex 52.75 9.3 0 2399 | vertex 52.2605 9.35516 2 2400 | vertex 52.75 9.3 2 2401 | endloop 2402 | endfacet 2403 | facet normal 0.111964 0.993712 0 2404 | outer loop 2405 | vertex 52.2605 9.35516 2 2406 | vertex 52.75 9.3 0 2407 | vertex 52.2605 9.35516 0 2408 | endloop 2409 | endfacet 2410 | facet normal 0.707104 0.70711 -0 2411 | outer loop 2412 | vertex 51.3783 9.77997 0 2413 | vertex 51.03 10.1283 2 2414 | vertex 51.3783 9.77997 2 2415 | endloop 2416 | endfacet 2417 | facet normal 0.707104 0.70711 0 2418 | outer loop 2419 | vertex 51.03 10.1283 2 2420 | vertex 51.3783 9.77997 0 2421 | vertex 51.03 10.1283 0 2422 | endloop 2423 | endfacet 2424 | facet normal 0.943882 0.330283 0 2425 | outer loop 2426 | vertex 50.7679 10.5455 2 2427 | vertex 50.6052 11.0105 0 2428 | vertex 50.6052 11.0105 2 2429 | endloop 2430 | endfacet 2431 | facet normal 0.943882 0.330283 0 2432 | outer loop 2433 | vertex 50.6052 11.0105 0 2434 | vertex 50.7679 10.5455 2 2435 | vertex 50.7679 10.5455 0 2436 | endloop 2437 | endfacet 2438 | facet normal 0.993713 0.111961 0 2439 | outer loop 2440 | vertex 50.6052 11.0105 2 2441 | vertex 50.55 11.5 0 2442 | vertex 50.55 11.5 2 2443 | endloop 2444 | endfacet 2445 | facet normal 0.993713 0.111961 0 2446 | outer loop 2447 | vertex 50.55 11.5 0 2448 | vertex 50.6052 11.0105 2 2449 | vertex 50.6052 11.0105 0 2450 | endloop 2451 | endfacet 2452 | facet normal -0.532032 0.846724 0 2453 | outer loop 2454 | vertex 54.1217 9.77997 0 2455 | vertex 53.7045 9.51787 2 2456 | vertex 54.1217 9.77997 2 2457 | endloop 2458 | endfacet 2459 | facet normal -0.532032 0.846724 0 2460 | outer loop 2461 | vertex 53.7045 9.51787 2 2462 | vertex 54.1217 9.77997 0 2463 | vertex 53.7045 9.51787 0 2464 | endloop 2465 | endfacet 2466 | facet normal -0.943884 0.330276 0 2467 | outer loop 2468 | vertex 54.7321 10.5455 0 2469 | vertex 54.8948 11.0105 2 2470 | vertex 54.8948 11.0105 0 2471 | endloop 2472 | endfacet 2473 | facet normal -0.943884 0.330276 0 2474 | outer loop 2475 | vertex 54.8948 11.0105 2 2476 | vertex 54.7321 10.5455 0 2477 | vertex 54.7321 10.5455 2 2478 | endloop 2479 | endfacet 2480 | facet normal -0.993712 0.111968 0 2481 | outer loop 2482 | vertex 54.8948 11.0105 0 2483 | vertex 54.95 11.5 2 2484 | vertex 54.95 11.5 0 2485 | endloop 2486 | endfacet 2487 | facet normal -0.993712 0.111968 0 2488 | outer loop 2489 | vertex 54.95 11.5 2 2490 | vertex 54.8948 11.0105 0 2491 | vertex 54.8948 11.0105 2 2492 | endloop 2493 | endfacet 2494 | facet normal 0.330281 0.943883 -0 2495 | outer loop 2496 | vertex 52.2605 9.35516 0 2497 | vertex 51.7955 9.51787 2 2498 | vertex 52.2605 9.35516 2 2499 | endloop 2500 | endfacet 2501 | facet normal 0.330281 0.943883 0 2502 | outer loop 2503 | vertex 51.7955 9.51787 2 2504 | vertex 52.2605 9.35516 0 2505 | vertex 51.7955 9.51787 0 2506 | endloop 2507 | endfacet 2508 | facet normal 0.846726 0.532029 0 2509 | outer loop 2510 | vertex 51.03 10.1283 2 2511 | vertex 50.7679 10.5455 0 2512 | vertex 50.7679 10.5455 2 2513 | endloop 2514 | endfacet 2515 | facet normal 0.846726 0.532029 0 2516 | outer loop 2517 | vertex 50.7679 10.5455 0 2518 | vertex 51.03 10.1283 2 2519 | vertex 51.03 10.1283 0 2520 | endloop 2521 | endfacet 2522 | facet normal -0.993712 -0.111965 0 2523 | outer loop 2524 | vertex 14.95 11.5 0 2525 | vertex 14.8948 11.9895 2 2526 | vertex 14.8948 11.9895 0 2527 | endloop 2528 | endfacet 2529 | facet normal -0.993712 -0.111965 0 2530 | outer loop 2531 | vertex 14.8948 11.9895 2 2532 | vertex 14.95 11.5 0 2533 | vertex 14.95 11.5 2 2534 | endloop 2535 | endfacet 2536 | facet normal 0.111964 -0.993712 0 2537 | outer loop 2538 | vertex 12.2605 13.6448 0 2539 | vertex 12.75 13.7 2 2540 | vertex 12.2605 13.6448 2 2541 | endloop 2542 | endfacet 2543 | facet normal 0.111964 -0.993712 0 2544 | outer loop 2545 | vertex 12.75 13.7 2 2546 | vertex 12.2605 13.6448 0 2547 | vertex 12.75 13.7 0 2548 | endloop 2549 | endfacet 2550 | facet normal -0.111965 0.993712 0 2551 | outer loop 2552 | vertex 13.2395 9.35516 0 2553 | vertex 12.75 9.3 2 2554 | vertex 13.2395 9.35516 2 2555 | endloop 2556 | endfacet 2557 | facet normal -0.111965 0.993712 0 2558 | outer loop 2559 | vertex 12.75 9.3 2 2560 | vertex 13.2395 9.35516 0 2561 | vertex 12.75 9.3 0 2562 | endloop 2563 | endfacet 2564 | facet normal -0.707107 -0.707107 0 2565 | outer loop 2566 | vertex 14.47 12.8717 0 2567 | vertex 14.1217 13.22 2 2568 | vertex 14.1217 13.22 0 2569 | endloop 2570 | endfacet 2571 | facet normal -0.707107 -0.707107 0 2572 | outer loop 2573 | vertex 14.1217 13.22 2 2574 | vertex 14.47 12.8717 0 2575 | vertex 14.47 12.8717 2 2576 | endloop 2577 | endfacet 2578 | facet normal 0.707107 -0.707107 0 2579 | outer loop 2580 | vertex 11.03 12.8717 2 2581 | vertex 11.3783 13.22 0 2582 | vertex 11.3783 13.22 2 2583 | endloop 2584 | endfacet 2585 | facet normal 0.707107 -0.707107 0 2586 | outer loop 2587 | vertex 11.3783 13.22 0 2588 | vertex 11.03 12.8717 2 2589 | vertex 11.03 12.8717 0 2590 | endloop 2591 | endfacet 2592 | facet normal 0.532032 -0.846724 0 2593 | outer loop 2594 | vertex 11.3783 13.22 0 2595 | vertex 11.7955 13.4821 2 2596 | vertex 11.3783 13.22 2 2597 | endloop 2598 | endfacet 2599 | facet normal 0.532032 -0.846724 0 2600 | outer loop 2601 | vertex 11.7955 13.4821 2 2602 | vertex 11.3783 13.22 0 2603 | vertex 11.7955 13.4821 0 2604 | endloop 2605 | endfacet 2606 | facet normal -0.846724 -0.532032 0 2607 | outer loop 2608 | vertex 14.7321 12.4545 0 2609 | vertex 14.47 12.8717 2 2610 | vertex 14.47 12.8717 0 2611 | endloop 2612 | endfacet 2613 | facet normal -0.846724 -0.532032 0 2614 | outer loop 2615 | vertex 14.47 12.8717 2 2616 | vertex 14.7321 12.4545 0 2617 | vertex 14.7321 12.4545 2 2618 | endloop 2619 | endfacet 2620 | facet normal -0.943883 -0.33028 0 2621 | outer loop 2622 | vertex 14.8948 11.9895 0 2623 | vertex 14.7321 12.4545 2 2624 | vertex 14.7321 12.4545 0 2625 | endloop 2626 | endfacet 2627 | facet normal -0.943883 -0.33028 0 2628 | outer loop 2629 | vertex 14.7321 12.4545 2 2630 | vertex 14.8948 11.9895 0 2631 | vertex 14.8948 11.9895 2 2632 | endloop 2633 | endfacet 2634 | facet normal -0.33028 -0.943883 0 2635 | outer loop 2636 | vertex 13.2395 13.6448 0 2637 | vertex 13.7045 13.4821 2 2638 | vertex 13.2395 13.6448 2 2639 | endloop 2640 | endfacet 2641 | facet normal -0.33028 -0.943883 -0 2642 | outer loop 2643 | vertex 13.7045 13.4821 2 2644 | vertex 13.2395 13.6448 0 2645 | vertex 13.7045 13.4821 0 2646 | endloop 2647 | endfacet 2648 | facet normal -0.111965 -0.993712 0 2649 | outer loop 2650 | vertex 12.75 13.7 0 2651 | vertex 13.2395 13.6448 2 2652 | vertex 12.75 13.7 2 2653 | endloop 2654 | endfacet 2655 | facet normal -0.111965 -0.993712 -0 2656 | outer loop 2657 | vertex 13.2395 13.6448 2 2658 | vertex 12.75 13.7 0 2659 | vertex 13.2395 13.6448 0 2660 | endloop 2661 | endfacet 2662 | facet normal -0.532032 -0.846724 0 2663 | outer loop 2664 | vertex 13.7045 13.4821 0 2665 | vertex 14.1217 13.22 2 2666 | vertex 13.7045 13.4821 2 2667 | endloop 2668 | endfacet 2669 | facet normal -0.532032 -0.846724 -0 2670 | outer loop 2671 | vertex 14.1217 13.22 2 2672 | vertex 13.7045 13.4821 0 2673 | vertex 14.1217 13.22 0 2674 | endloop 2675 | endfacet 2676 | facet normal 0.943883 -0.33028 0 2677 | outer loop 2678 | vertex 10.6052 11.9895 2 2679 | vertex 10.7679 12.4545 0 2680 | vertex 10.7679 12.4545 2 2681 | endloop 2682 | endfacet 2683 | facet normal 0.943883 -0.33028 0 2684 | outer loop 2685 | vertex 10.7679 12.4545 0 2686 | vertex 10.6052 11.9895 2 2687 | vertex 10.6052 11.9895 0 2688 | endloop 2689 | endfacet 2690 | facet normal 0.846724 -0.532032 0 2691 | outer loop 2692 | vertex 10.7679 12.4545 2 2693 | vertex 11.03 12.8717 0 2694 | vertex 11.03 12.8717 2 2695 | endloop 2696 | endfacet 2697 | facet normal 0.846724 -0.532032 0 2698 | outer loop 2699 | vertex 11.03 12.8717 0 2700 | vertex 10.7679 12.4545 2 2701 | vertex 10.7679 12.4545 0 2702 | endloop 2703 | endfacet 2704 | facet normal 0.993712 -0.111965 0 2705 | outer loop 2706 | vertex 10.55 11.5 2 2707 | vertex 10.6052 11.9895 0 2708 | vertex 10.6052 11.9895 2 2709 | endloop 2710 | endfacet 2711 | facet normal 0.993712 -0.111965 0 2712 | outer loop 2713 | vertex 10.6052 11.9895 0 2714 | vertex 10.55 11.5 2 2715 | vertex 10.55 11.5 0 2716 | endloop 2717 | endfacet 2718 | facet normal 0.33028 -0.943883 0 2719 | outer loop 2720 | vertex 11.7955 13.4821 0 2721 | vertex 12.2605 13.6448 2 2722 | vertex 11.7955 13.4821 2 2723 | endloop 2724 | endfacet 2725 | facet normal 0.33028 -0.943883 0 2726 | outer loop 2727 | vertex 12.2605 13.6448 2 2728 | vertex 11.7955 13.4821 0 2729 | vertex 12.2605 13.6448 0 2730 | endloop 2731 | endfacet 2732 | facet normal -0.993712 0.111964 0 2733 | outer loop 2734 | vertex 14.8948 11.0105 0 2735 | vertex 14.95 11.5 2 2736 | vertex 14.95 11.5 0 2737 | endloop 2738 | endfacet 2739 | facet normal -0.993712 0.111964 0 2740 | outer loop 2741 | vertex 14.95 11.5 2 2742 | vertex 14.8948 11.0105 0 2743 | vertex 14.8948 11.0105 2 2744 | endloop 2745 | endfacet 2746 | facet normal -0.33028 0.943883 0 2747 | outer loop 2748 | vertex 13.7045 9.51787 0 2749 | vertex 13.2395 9.35516 2 2750 | vertex 13.7045 9.51787 2 2751 | endloop 2752 | endfacet 2753 | facet normal -0.33028 0.943883 0 2754 | outer loop 2755 | vertex 13.2395 9.35516 2 2756 | vertex 13.7045 9.51787 0 2757 | vertex 13.2395 9.35516 0 2758 | endloop 2759 | endfacet 2760 | facet normal -0.707107 0.707107 0 2761 | outer loop 2762 | vertex 14.1217 9.77997 0 2763 | vertex 14.47 10.1283 2 2764 | vertex 14.47 10.1283 0 2765 | endloop 2766 | endfacet 2767 | facet normal -0.707107 0.707107 0 2768 | outer loop 2769 | vertex 14.47 10.1283 2 2770 | vertex 14.1217 9.77997 0 2771 | vertex 14.1217 9.77997 2 2772 | endloop 2773 | endfacet 2774 | facet normal 0.532032 0.846724 -0 2775 | outer loop 2776 | vertex 11.7955 9.51787 0 2777 | vertex 11.3783 9.77997 2 2778 | vertex 11.7955 9.51787 2 2779 | endloop 2780 | endfacet 2781 | facet normal 0.532032 0.846724 0 2782 | outer loop 2783 | vertex 11.3783 9.77997 2 2784 | vertex 11.7955 9.51787 0 2785 | vertex 11.3783 9.77997 0 2786 | endloop 2787 | endfacet 2788 | facet normal 0.111964 0.993712 -0 2789 | outer loop 2790 | vertex 12.75 9.3 0 2791 | vertex 12.2605 9.35516 2 2792 | vertex 12.75 9.3 2 2793 | endloop 2794 | endfacet 2795 | facet normal 0.111964 0.993712 0 2796 | outer loop 2797 | vertex 12.2605 9.35516 2 2798 | vertex 12.75 9.3 0 2799 | vertex 12.2605 9.35516 0 2800 | endloop 2801 | endfacet 2802 | facet normal 0.707107 0.707107 0 2803 | outer loop 2804 | vertex 11.3783 9.77997 2 2805 | vertex 11.03 10.1283 0 2806 | vertex 11.03 10.1283 2 2807 | endloop 2808 | endfacet 2809 | facet normal 0.707107 0.707107 0 2810 | outer loop 2811 | vertex 11.03 10.1283 0 2812 | vertex 11.3783 9.77997 2 2813 | vertex 11.3783 9.77997 0 2814 | endloop 2815 | endfacet 2816 | facet normal 0.943883 0.33028 0 2817 | outer loop 2818 | vertex 10.7679 10.5455 2 2819 | vertex 10.6052 11.0105 0 2820 | vertex 10.6052 11.0105 2 2821 | endloop 2822 | endfacet 2823 | facet normal 0.943883 0.33028 0 2824 | outer loop 2825 | vertex 10.6052 11.0105 0 2826 | vertex 10.7679 10.5455 2 2827 | vertex 10.7679 10.5455 0 2828 | endloop 2829 | endfacet 2830 | facet normal 0.993712 0.111964 0 2831 | outer loop 2832 | vertex 10.6052 11.0105 2 2833 | vertex 10.55 11.5 0 2834 | vertex 10.55 11.5 2 2835 | endloop 2836 | endfacet 2837 | facet normal 0.993712 0.111964 0 2838 | outer loop 2839 | vertex 10.55 11.5 0 2840 | vertex 10.6052 11.0105 2 2841 | vertex 10.6052 11.0105 0 2842 | endloop 2843 | endfacet 2844 | facet normal -0.532032 0.846724 0 2845 | outer loop 2846 | vertex 14.1217 9.77997 0 2847 | vertex 13.7045 9.51787 2 2848 | vertex 14.1217 9.77997 2 2849 | endloop 2850 | endfacet 2851 | facet normal -0.532032 0.846724 0 2852 | outer loop 2853 | vertex 13.7045 9.51787 2 2854 | vertex 14.1217 9.77997 0 2855 | vertex 13.7045 9.51787 0 2856 | endloop 2857 | endfacet 2858 | facet normal -0.943883 0.33028 0 2859 | outer loop 2860 | vertex 14.7321 10.5455 0 2861 | vertex 14.8948 11.0105 2 2862 | vertex 14.8948 11.0105 0 2863 | endloop 2864 | endfacet 2865 | facet normal -0.943883 0.33028 0 2866 | outer loop 2867 | vertex 14.8948 11.0105 2 2868 | vertex 14.7321 10.5455 0 2869 | vertex 14.7321 10.5455 2 2870 | endloop 2871 | endfacet 2872 | facet normal -0.846724 0.532032 0 2873 | outer loop 2874 | vertex 14.47 10.1283 0 2875 | vertex 14.7321 10.5455 2 2876 | vertex 14.7321 10.5455 0 2877 | endloop 2878 | endfacet 2879 | facet normal -0.846724 0.532032 0 2880 | outer loop 2881 | vertex 14.7321 10.5455 2 2882 | vertex 14.47 10.1283 0 2883 | vertex 14.47 10.1283 2 2884 | endloop 2885 | endfacet 2886 | facet normal 0.33028 0.943883 -0 2887 | outer loop 2888 | vertex 12.2605 9.35516 0 2889 | vertex 11.7955 9.51787 2 2890 | vertex 12.2605 9.35516 2 2891 | endloop 2892 | endfacet 2893 | facet normal 0.33028 0.943883 0 2894 | outer loop 2895 | vertex 11.7955 9.51787 2 2896 | vertex 12.2605 9.35516 0 2897 | vertex 11.7955 9.51787 0 2898 | endloop 2899 | endfacet 2900 | facet normal 0.846724 0.532032 0 2901 | outer loop 2902 | vertex 11.03 10.1283 2 2903 | vertex 10.7679 10.5455 0 2904 | vertex 10.7679 10.5455 2 2905 | endloop 2906 | endfacet 2907 | facet normal 0.846724 0.532032 0 2908 | outer loop 2909 | vertex 10.7679 10.5455 0 2910 | vertex 11.03 10.1283 2 2911 | vertex 11.03 10.1283 0 2912 | endloop 2913 | endfacet 2914 | endsolid OpenSCAD_Model 2915 | -------------------------------------------------------------------------------- /CAD files/wedge.scad: -------------------------------------------------------------------------------- 1 | // Title: Wedge Triangle Module 2 | // Author: Carlo Wood 3 | // Date: 19/8/2016 4 | // License: Creative Commons - Share Alike - Attribution 5 | 6 | // Usage: Include in your other .scad projects and call wedge with arguments for the height 7 | // of the wedge, two of the legs of the wedge, and the angle between those legs. 8 | // The resulting wedge will be placed with the point at the origin, `leg1' along the x-axis 9 | // and extending `height' into the z axis, with the angle starting at the x axis and 10 | // extending counter-clockwise as per the right-hand rule towards `leg2`. 11 | 12 | 13 | // Y-axis 14 | // | 15 | // | /\ 16 | // leg2 --/ \ 17 | // |/ \ 18 | // /)_____\_______X-axis 19 | // angle--' \__ leg1 20 | // 21 | module wedge(angle, leg1, leg2, height = 0.5) 22 | { 23 | // Store the length of all three sides in an array. 24 | side = [sqrt(leg1 * leg1 + leg2 * leg2 - 2 * leg1 * leg2 * cos(angle)), // Law of Cosines. 25 | leg1, 26 | leg2]; 27 | 28 | i = (leg2 > leg1) ? 2 : 1; 29 | longest_leg = side[i]; 30 | longest_side = (side[0] > longest_leg) ? side[0] : longest_leg; 31 | 32 | // The corner opposite of the shortest leg must be less than 90 degrees. 33 | sa = asin(side[3 - i] * sin(angle) / side[0]); // Law of Sines. 34 | sb = 180 - angle - sa; // Sum of all angles is 180 degrees. 35 | 36 | // Store the size of all three angles in an array. 37 | a = [angle, (i == 1) ? sb : sa, (i == 1) ? sa : sb]; 38 | 39 | // Is there anything to draw at all? 40 | if (angle > 0 && angle < 180) 41 | { 42 | intersection() 43 | { 44 | if (angle <= 90) 45 | intersection() 46 | { 47 | cube([longest_leg, longest_leg, height]); 48 | rotate([0, 0, angle - 90]) 49 | cube([longest_leg, longest_leg, height]); 50 | } 51 | else 52 | union() 53 | { 54 | cube([longest_leg, longest_leg, height]); 55 | rotate([0, 0, angle - 90]) 56 | cube([longest_leg, longest_leg, height]); 57 | } 58 | if (a[2] < 90) 59 | { 60 | translate([leg1, 0, 0]) 61 | rotate([0, 0, 90 - a[2]]) 62 | translate([-longest_side, 0, 0]) 63 | cube([longest_side, longest_side, height]); 64 | } 65 | else 66 | { 67 | rotate([0, 0, angle]) 68 | translate([leg2, 0, 0]) 69 | rotate([0, 0, a[1]]) 70 | translate([-longest_side, 0, 0]) 71 | cube([longest_side, longest_side, height]); 72 | } 73 | } 74 | } 75 | } 76 | 77 | // Example: wedge(145, 10, 20, 5); // Would create a triangle with thickness 5 where two legs, 78 | // being 10 and 20 respectively, making an angle of 145 degrees, 79 | // the point on the z-axis and leg1 along the x-axis. 80 | 81 | -------------------------------------------------------------------------------- /DATA_CAPTURE.py: -------------------------------------------------------------------------------- 1 | import time 2 | import unicornhathd as unicorn # library for the LED array 3 | import numpy as np 4 | import picamera 5 | import picamera.array 6 | import io 7 | from fractions import Fraction 8 | 9 | """ 10 | CODE USED TO TAKE DATA FOR FPM RECONSTRUCTION. IF YOU ARE NOT PLANNING TO RECONSTRUCT THE DATA THEN USE A DIFFERENT SCRIPT. 11 | 12 | USER MUST SELECT THE EXPOSURE TIMES, FRAMERATES AND THE LED COLOR. 13 | EXPOSURES - A LIST OF TIMES IN MILISECONDS FOR EACH LED "SHELL" (CHANGE THESE TO IMPROVED SPEED, SNR ETC.) 14 | FRAMERATES - FRAMERATES MATCHING THE EXPOSURE TIMES 15 | COLOR_LIST - LED COLOR TO BE USED FOR IMAGE ACQUISITION 16 | 17 | Before using the code create the required directories, did 18 | not implement automatic directory creation. 19 | They are: WHITE, RED, GREEN, BLUE, STABILITY 20 | 21 | 1. REMEMBER TO CHANGE OR SCALE THE EXPOSURES AND FRAMERATES FOR YOUR SPECIFIC SAMPLES. RED/BLUE/GREEN LEDS WILL REQUIRE DIFFERENT EXPOSURE TIMES. 22 | 2. ENSURE THAT NO EXTERNAL LIGHT IS PRESENT, THE MICROSCOPE NEEDS TO BE ISOLATED FROM LIGHT AND BE PLACED INSIDE A BOX 23 | 3. ENSURE THAT THE SAMPLE IS SECURELY MOUNTED SINCE IT WILL SLIDE ON THE SLIPPERY PLASTIC SURFACE (CLAMPS OF SOME SORT WORK WELL) 24 | 4. YOU CAN ALSO USE LESS LEDS, THE CURRENT SCRIPT TAKES 256 IMAGES (CHANGE X AND Y PARAMETERS) 25 | """ 26 | #exposures = np.array([60000,60000,60000,500000,1300000,2800000,5000000,6000000]) # <- exposures for highest possible SNR (sample specific) 27 | #framerates = [Fraction(5,1),Fraction(5,1),Fraction(5,1),Fraction(2,1),Fraction(1,2),Fraction(1,3),Fraction(1,5),Fraction(1,6)] 28 | exposures = np.array([60000,60000,60000,60000,60000,60000,60000,60000]) # <- Relatively fast exposures 29 | framerates = [Fraction(5,1), Fraction(5,1), Fraction(5,1), Fraction(5,1), Fraction(5,1), Fraction(5,1), Fraction(5,1), Fraction(5,1)] 30 | color_list = ['blue'] 31 | 32 | # 4 X 4 LED PATTERN WILL BE USED. CHANGE TO EVEN NUMBERS UP TO 16. E.G. 6X6, 8X8, 16X16 ETC. 33 | X = 4 34 | Y = 4 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | ################################################################## 43 | # Take images for each color 44 | # "exposures" stores the exposure times for each LED shell 45 | # central 4 LEDs used exposures[0] 46 | # LEDs from 5 to 16 use exposures[1] etc.. 47 | # The LED shells end with 2^2, 2^4, 2^6 etc.. LEDs 48 | # same applies to framerates, they must be matched to the exposures` 49 | ################################################################## 50 | camera = picamera.PiCamera() 51 | start_time = time.time() 52 | unicorn.clear() 53 | time.sleep(2) 54 | 55 | for color in color_list: 56 | # coordinates of starting led, don't change 57 | x = y = 7 58 | dx = -1 59 | dy = 0 60 | expo = 0 61 | 62 | unicorn.clear() 63 | unicorn.set_pixel(7,7,0,0,0) 64 | unicorn.show() 65 | 66 | if color == 'red': 67 | camera.framerate = framerates[expo] 68 | camera.shutter_speed = np.int(exposures[expo]) 69 | foldname = 'RED' 70 | elif color == 'green': 71 | camera.framerate = framerates[expo]# * 2 72 | camera.shutter_speed = np.int(exposures[expo]) 73 | foldname = 'GREEN' 74 | elif color == 'blue': 75 | camera.framerate = framerates[expo]# * 3 76 | camera.shutter_speed = np.int(exposures[expo]) 77 | foldname = 'BLUE' 78 | 79 | # take a darkframe image 80 | stream = picamera.array.PiBayerArray(camera,output_dims=2) 81 | camera.capture(stream, 'jpeg', bayer=True) 82 | np.save('./Sequential/' + foldname + '/Darkframe_{}_color{}'.format(expo, color),stream.array) 83 | 84 | # Loop through the LEDs in the spiral and take images for each 85 | for i in range(X**2): 86 | # Take a darkframe 87 | if i == 4 or i == 16 or i ==36 or i == 64 or i == 100 or i == 144 or i == 196: 88 | unicorn.set_pixel(x,y,0,0,0) 89 | unicorn.show() 90 | 91 | expo += 1 92 | if color == 'red': 93 | camera.framerate = framerates[expo] 94 | camera.shutter_speed = np.int(exposures[expo]) 95 | foldname = 'RED' 96 | elif color == 'green': 97 | camera.framerate = framerates[expo]# * 2 98 | camera.shutter_speed = np.int(exposures[expo]) 99 | foldname = 'GREEN' 100 | elif color == 'blue': 101 | camera.framerate = framerates[expo]# * 3 102 | camera.shutter_speed = np.int(exposures[expo]) 103 | foldname = 'BLUE' 104 | 105 | time.sleep(2) 106 | stream = picamera.array.PiBayerArray(camera,output_dims=2) 107 | camera.capture(stream, 'jpeg', bayer=True) 108 | np.save('./Sequential/' + foldname + '/Darkframe_{}_color{}'.format(expo, color),stream.array) 109 | 110 | 111 | if color == 'red': 112 | unicorn.set_pixel(x,y,255,0,0) 113 | elif color == 'green': 114 | unicorn.set_pixel(x,y,0,255,0) 115 | elif color == 'blue': 116 | unicorn.set_pixel(x,y,0,0,255) 117 | 118 | unicorn.show() 119 | unicorn.set_pixel(x,y,0,0,0) 120 | 121 | 122 | # take BAYER picture and save 123 | time1 = time.time() 124 | stream = picamera.array.PiBayerArray(camera,output_dims=2) 125 | camera.capture(stream, 'jpeg', bayer=True) 126 | time2 = time.time() 127 | print('time to take picture: {}'.format(time2-time1)) 128 | 129 | time1 = time.time() 130 | np.save('./Sequential/' + foldname + '/ImgNo_{}_color{}'.format(i, color),stream.array) 131 | time2 = time.time() 132 | print('time to save picture: {}'.format(time2-time1)) 133 | 134 | if x==y or (x+y == 15 and x <= 7) or (x+y == 14 and x > 7): 135 | dx, dy = dy, -dx 136 | x, y = x+dx, y+dy 137 | 138 | unicorn.clear() 139 | unicorn.set_pixel(7,7,0,0,0) 140 | unicorn.show() 141 | 142 | end_time = time.time() 143 | print('TOTAL TIME FOR RAW DATA ADQUISITION (sp?): {}'.format(end_time-start_time)) 144 | 145 | 146 | unicorn.clear() 147 | unicorn.show() 148 | camera.close() 149 | -------------------------------------------------------------------------------- /Instructions to build the microscope.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pavikonda/RaspberryPi_FPScope/7a82b8aeacfe972255996b8bc1360391990f4ede/Instructions to build the microscope.pdf -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Legal Code 2 | 3 | CC0 1.0 Universal 4 | 5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE 6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN 7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS 8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES 9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS 10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM 11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED 12 | HEREUNDER. 13 | 14 | Statement of Purpose 15 | 16 | The laws of most jurisdictions throughout the world automatically confer 17 | exclusive Copyright and Related Rights (defined below) upon the creator 18 | and subsequent owner(s) (each and all, an "owner") of an original work of 19 | authorship and/or a database (each, a "Work"). 20 | 21 | Certain owners wish to permanently relinquish those rights to a Work for 22 | the purpose of contributing to a commons of creative, cultural and 23 | scientific works ("Commons") that the public can reliably and without fear 24 | of later claims of infringement build upon, modify, incorporate in other 25 | works, reuse and redistribute as freely as possible in any form whatsoever 26 | and for any purposes, including without limitation commercial purposes. 27 | These owners may contribute to the Commons to promote the ideal of a free 28 | culture and the further production of creative, cultural and scientific 29 | works, or to gain reputation or greater distribution for their Work in 30 | part through the use and efforts of others. 31 | 32 | For these and/or other purposes and motivations, and without any 33 | expectation of additional consideration or compensation, the person 34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she 35 | is an owner of Copyright and Related Rights in the Work, voluntarily 36 | elects to apply CC0 to the Work and publicly distribute the Work under its 37 | terms, with knowledge of his or her Copyright and Related Rights in the 38 | Work and the meaning and intended legal effect of CC0 on those rights. 39 | 40 | 1. Copyright and Related Rights. A Work made available under CC0 may be 41 | protected by copyright and related or neighboring rights ("Copyright and 42 | Related Rights"). Copyright and Related Rights include, but are not 43 | limited to, the following: 44 | 45 | i. the right to reproduce, adapt, distribute, perform, display, 46 | communicate, and translate a Work; 47 | ii. moral rights retained by the original author(s) and/or performer(s); 48 | iii. publicity and privacy rights pertaining to a person's image or 49 | likeness depicted in a Work; 50 | iv. rights protecting against unfair competition in regards to a Work, 51 | subject to the limitations in paragraph 4(a), below; 52 | v. rights protecting the extraction, dissemination, use and reuse of data 53 | in a Work; 54 | vi. database rights (such as those arising under Directive 96/9/EC of the 55 | European Parliament and of the Council of 11 March 1996 on the legal 56 | protection of databases, and under any national implementation 57 | thereof, including any amended or successor version of such 58 | directive); and 59 | vii. other similar, equivalent or corresponding rights throughout the 60 | world based on applicable law or treaty, and any national 61 | implementations thereof. 62 | 63 | 2. Waiver. To the greatest extent permitted by, but not in contravention 64 | of, applicable law, Affirmer hereby overtly, fully, permanently, 65 | irrevocably and unconditionally waives, abandons, and surrenders all of 66 | Affirmer's Copyright and Related Rights and associated claims and causes 67 | of action, whether now known or unknown (including existing as well as 68 | future claims and causes of action), in the Work (i) in all territories 69 | worldwide, (ii) for the maximum duration provided by applicable law or 70 | treaty (including future time extensions), (iii) in any current or future 71 | medium and for any number of copies, and (iv) for any purpose whatsoever, 72 | including without limitation commercial, advertising or promotional 73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each 74 | member of the public at large and to the detriment of Affirmer's heirs and 75 | successors, fully intending that such Waiver shall not be subject to 76 | revocation, rescission, cancellation, termination, or any other legal or 77 | equitable action to disrupt the quiet enjoyment of the Work by the public 78 | as contemplated by Affirmer's express Statement of Purpose. 79 | 80 | 3. Public License Fallback. Should any part of the Waiver for any reason 81 | be judged legally invalid or ineffective under applicable law, then the 82 | Waiver shall be preserved to the maximum extent permitted taking into 83 | account Affirmer's express Statement of Purpose. In addition, to the 84 | extent the Waiver is so judged Affirmer hereby grants to each affected 85 | person a royalty-free, non transferable, non sublicensable, non exclusive, 86 | irrevocable and unconditional license to exercise Affirmer's Copyright and 87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the 88 | maximum duration provided by applicable law or treaty (including future 89 | time extensions), (iii) in any current or future medium and for any number 90 | of copies, and (iv) for any purpose whatsoever, including without 91 | limitation commercial, advertising or promotional purposes (the 92 | "License"). The License shall be deemed effective as of the date CC0 was 93 | applied by Affirmer to the Work. Should any part of the License for any 94 | reason be judged legally invalid or ineffective under applicable law, such 95 | partial invalidity or ineffectiveness shall not invalidate the remainder 96 | of the License, and in such case Affirmer hereby affirms that he or she 97 | will not (i) exercise any of his or her remaining Copyright and Related 98 | Rights in the Work or (ii) assert any associated claims and causes of 99 | action with respect to the Work, in either case contrary to Affirmer's 100 | express Statement of Purpose. 101 | 102 | 4. Limitations and Disclaimers. 103 | 104 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 105 | surrendered, licensed or otherwise affected by this document. 106 | b. Affirmer offers the Work as-is and makes no representations or 107 | warranties of any kind concerning the Work, express, implied, 108 | statutory or otherwise, including without limitation warranties of 109 | title, merchantability, fitness for a particular purpose, non 110 | infringement, or the absence of latent or other defects, accuracy, or 111 | the present or absence of errors, whether or not discoverable, all to 112 | the greatest extent permissible under applicable law. 113 | c. Affirmer disclaims responsibility for clearing rights of other persons 114 | that may apply to the Work or any use thereof, including without 115 | limitation any person's Copyright and Related Rights in the Work. 116 | Further, Affirmer disclaims responsibility for obtaining any necessary 117 | consents, permissions or other rights required for any use of the 118 | Work. 119 | d. Affirmer understands and acknowledges that Creative Commons is not a 120 | party to this document and has no duty or obligation with respect to 121 | this CC0 or use of the Work. 122 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # RaspberryPi_FPScope 2 | Fourier ptychographic microscope based on a Raspberry Pi. 3 | 4 | Published as: 5 | Aidukas, T., Eckert, R., Harvey, A.R. et al. Low-cost, sub-micron resolution, wide-field computational microscopy using opensource hardware. Sci Rep 9, 7457 (2019). https://doi.org/10.1038/s41598-019-43845-9 6 | 7 | This repository contains an instruction set to build the microscope, CAD files, data acqusition and data processing codes. 8 | 9 | 10 | 11 | DATA_CAPTURE.py: 12 | This file contains a Python script required to obtain images for Fourier ptychography using a Raspberry Pi computer, Raspberry Pi camera and Unicorn HD LED array. These images are obtained by flashing LEDs in a spiral pattern from the center towards the edges. 13 | 14 | CAD Files: 15 | This folder contains .scad and .stl formats of all the parts required to 3D print the microscope. Instructions are outlined in the Supplementary material S1 of our paper. 16 | 17 | Fourier ptychographic reconstruction code and test data to use with the reconstruction code can be found at: http://dx.doi.org/10.5525/gla.researchdata.594 18 | 19 | Download a Raspbian OS SD card image which includes the necessary libraries from: 20 | https://drive.google.com/open?id=1Z59lnhNKuGGGVIF1KtoCw2bAcdZESKBo 21 | 22 | 23 | -------------------------------------------------------------------------------- /images/RPi_FP_setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pavikonda/RaspberryPi_FPScope/7a82b8aeacfe972255996b8bc1360391990f4ede/images/RPi_FP_setup.png --------------------------------------------------------------------------------