├── 3D Files ├── nemaMount.scad ├── nemaMount.stl ├── rodMountBarrel.scad ├── rodMountBarrel.stl ├── rodMountPlunger.scad ├── rodMountPlunger.stl ├── rodMountSyringe.scad ├── rodMountSyringe.stl └── syringePumpConstants.scad ├── README.md ├── Syringe Pump Guide.docx ├── diagrams ├── 12v-easyDriver.fzz ├── 12v-easyDriver_bb.png └── 24V_BigEasyDriver.png ├── img ├── 4pumps.jpg ├── assembly.png ├── assembly2.png ├── assembly3.png ├── assembly4.png ├── assembly5.png ├── electronics.jpg ├── pump.jpg └── sidepump.jpg ├── instructions.md ├── libraries ├── LCDKeypad │ ├── LCDKeypad.cpp │ ├── LCDKeypad.h │ ├── examples │ │ └── GuessTheNumber │ │ │ └── GuessTheNumber.pde │ ├── keywords.txt │ └── readme.txt └── readme.txt └── syringePump └── syringePump.ino /3D Files/nemaMount.scad: -------------------------------------------------------------------------------- 1 | include 2 | 3 | nema_17_mount(); 4 | 5 | module nema_17_mount() 6 | { 7 | wall_thickness = 5; 8 | motor_width = 42; 9 | frame_width = motor_width + (wall_thickness + 1)*2; 10 | bolt = 4; 11 | height = 25; 12 | 13 | inch = 25.4; 14 | screwPlateSize = 25; 15 | screwRadius = 3.25; 16 | 17 | //these are all the mount point holes. 18 | x1 = -wall_thickness; 19 | y1 = wall_thickness*2; 20 | x2 = frame_width+wall_thickness; 21 | y2 = wall_thickness*2; 22 | x3 = -wall_thickness; 23 | y3 = frame_width-wall_thickness*2; 24 | x4 = frame_width + wall_thickness; 25 | y4 = frame_width-wall_thickness*2; 26 | 27 | //center the whole thing in X 28 | translate([-frame_width/2, 0, 0]) 29 | { 30 | 31 | //floor, with mounting holes for 80/20 32 | 33 | translate([0,-screwPlateSize,-wall_thickness]){ 34 | difference(){ 35 | cube(size=[frame_width,frame_width+screwPlateSize,wall_thickness]); 36 | 37 | translate([frame_width/2-inch/2, screwPlateSize/2, 0]){ 38 | cylinder(h=wall_thickness, r=screwRadius); 39 | } 40 | translate([frame_width/2+inch/2, screwPlateSize/2, 0]){ 41 | cylinder(h=wall_thickness, r=screwRadius); 42 | } 43 | 44 | } 45 | } 46 | 47 | difference() 48 | { 49 | //build the main unit. 50 | union() 51 | { 52 | //structure 53 | cube([wall_thickness, frame_width, frame_width]); //front face 54 | cube([frame_width, wall_thickness, frame_width]); //left face 55 | translate([frame_width-wall_thickness, 0, 0]) //right face 56 | cube([wall_thickness, frame_width, frame_width]); 57 | 58 | } 59 | 60 | 61 | //front left mount hole 62 | echo(x1, y1); 63 | translate([x1, y1, 0]) 64 | { 65 | cylinder(r=bolt/2, h=wall_thickness); 66 | translate([0,0,wall_thickness]) 67 | cylinder(r=bolt, h=wall_thickness*2); 68 | } 69 | 70 | //front right mount hole 71 | echo(x2, y2); 72 | translate([x2, y2, 0]) 73 | { 74 | cylinder(r=bolt/2, h=wall_thickness); 75 | translate([0,0,wall_thickness]) 76 | cylinder(r=bolt, h=wall_thickness*2); 77 | } 78 | 79 | //rear left mount hole 80 | echo(x3, y3); 81 | translate([x3, y3, 0]) 82 | { 83 | cylinder(r=bolt/2, h=wall_thickness); 84 | translate([0,0,wall_thickness]) 85 | cylinder(r=bolt, h=wall_thickness*2); 86 | } 87 | 88 | //rear right mount hole 89 | echo(x4, y4); 90 | translate([x4, y4, 0]) 91 | { 92 | cylinder(r=bolt/2, h=wall_thickness); 93 | translate([0,0,wall_thickness]) 94 | cylinder(r=bolt, h=wall_thickness*2); 95 | } 96 | 97 | //mount hole slits 98 | translate([frame_width + wall_thickness*1.5, frame_width-wall_thickness*2, wall_thickness/2]) 99 | cube(size=[wall_thickness, 0.1, wall_thickness*3], center=true); 100 | translate([frame_width + wall_thickness*1.5, wall_thickness*2, wall_thickness/2]) 101 | cube(size=[wall_thickness, 0.1, wall_thickness*3], center=true); 102 | translate([-wall_thickness*1.5, frame_width-wall_thickness*2, wall_thickness/2]) 103 | cube(size=[wall_thickness, 0.1, wall_thickness*3], center=true); 104 | translate([-wall_thickness*1.5, wall_thickness*2, wall_thickness/2]) 105 | cube(size=[wall_thickness, 0.1, wall_thickness*3], center=true); 106 | 107 | //nema 17 mount 108 | rotate([90, 0, 0]) 109 | { 110 | translate([frame_width/2+0.5, height, -wall_thickness]) 111 | { 112 | translate([15.5, 15.5, 0]) 113 | cylinder(r=bolt/2, h=wall_thickness+1); 114 | translate([-15.5, 15.5, 0]) 115 | cylinder(r=bolt/2, h=wall_thickness+1); 116 | translate([15.5, -15.5, 0]) 117 | cylinder(r=bolt/2, h=wall_thickness+1); 118 | translate([-15.5, -15.5, 0]) 119 | cylinder(r=bolt/2, h=wall_thickness+1); 120 | 121 | cylinder(r=11.5, h=wall_thickness+1); 122 | 123 | translate([-11.5, 0, 0]) 124 | cube([23, frame_width, wall_thickness+1]); 125 | } 126 | } 127 | 128 | //back slant cutaway 129 | translate([0, 0, frame_width+wall_thickness]) 130 | rotate([45, 0, 0]) 131 | translate([-frame_width, 0, -frame_width*2]) 132 | cube(size=[frame_width*4, frame_width*2, frame_width*4]); 133 | 134 | //front anti-warp circle 135 | translate([frame_width/2, wall_thickness*1.25, 0]) 136 | rotate([90, 0, 0]) 137 | cylinder(r=wall_thickness, h=wall_thickness*2); 138 | 139 | //middle anti-warp circle 140 | translate([0, motor_width/2 + wall_thickness, 0]) 141 | rotate([0, 90, 0]) 142 | cylinder(r=wall_thickness, h=frame_width+1); 143 | 144 | //cutout / tidy up cubes. 145 | translate([wall_thickness, wall_thickness-0.1, -1]) 146 | cube([frame_width-wall_thickness*2, frame_width-wall_thickness, motor_width*2]); 147 | translate([-frame_width/2,-frame_width/2, wall_thickness+motor_width]) 148 | cube([frame_width*2, frame_width*2, frame_width]); 149 | translate([-frame_width/2, -frame_width/2,-frame_width]) 150 | cube([frame_width*2, frame_width*2, frame_width]); 151 | } 152 | } 153 | } 154 | -------------------------------------------------------------------------------- /3D Files/rodMountBarrel.scad: -------------------------------------------------------------------------------- 1 | include 2 | 3 | /* === Model-specific Constants === */ 4 | 5 | //cube containing rods and syringe barrel stop 6 | mountXSize = 20; 7 | mountZSize = syringeCenterHeight; 8 | 9 | //slot parameters 10 | plungerDiameter = 26.5; 11 | barrelSlotThickness = 2.5; 12 | barrelSlotOffset = mountXSize/2 - barrelSlotThickness/2; 13 | barrelSlotHeight = 36; 14 | 15 | /* === Model === */ 16 | 17 | //main cube, holds the two axes 18 | difference(){ 19 | cube(size=[mountXSize,baseSizeY,mountZSize]); 20 | 21 | //608 bearing for threaded rod 22 | translate([-floatCorrection,centerY,threadedAxisHeight]){ 23 | rotate(a=[0,90,0]){ 24 | nutWell(); 25 | } 26 | } 27 | 28 | //bore hole for threaded rod 29 | translate([-floatCorrection,centerY,threadedAxisHeight]){ 30 | rotate(a=[0,90,0]){ 31 | cylinder(h=mountXSize+floatCorrection2, r=smoothRodRadius); 32 | } 33 | } 34 | 35 | //hole for smooth rod (needs to fit fairly tight) 36 | translate([-floatCorrection,centerY,smoothAxisHeight]){ 37 | rotate(a=[0,90,0]){ 38 | cylinder(h=mountXSize+floatCorrection2, r=smoothRodRadius); 39 | } 40 | } 41 | 42 | //hole for syringe barrel top to go in 43 | translate([barrelSlotOffset,centerY,syringeCenterHeight]){ 44 | translate([0,-baseSizeY/2,-barrelSlotHeight/2]){ 45 | cube(size=[barrelSlotThickness, baseSizeY, barrelSlotHeight]); 46 | } 47 | } 48 | translate([-floatCorrection,centerY,syringeCenterHeight]){ 49 | rotate(a=[0,90,0]){ 50 | cylinder(h=mountXSize+floatCorrection2, r=plungerDiameter/2); 51 | } 52 | translate([0,-plungerInnerDiameter/2,0]){ 53 | cube(size=[barrelSlotThickness+floatCorrection2,plungerInnerDiameter,mountZSize]); 54 | } 55 | } 56 | 57 | } 58 | 59 | // 80/20 screw plate 60 | difference(){ 61 | translate([-screwPlateSize,0,0]){ 62 | cube(size=[screwPlateSize,baseSizeY,mountPlateHeight]); 63 | } 64 | 65 | translate([-screwPlateSize/2,baseSizeY/4,0]){ 66 | cylinder(h=mountPlateHeight, r=screwRadius); 67 | } 68 | translate([-screwPlateSize/2,3*baseSizeY/4,0]){ 69 | cylinder(h=mountPlateHeight, r=screwRadius); 70 | } 71 | 72 | } 73 | 74 | module bearing608(){ 75 | cylinder(h=bearing608Height, r=bearing608Diameter/2); 76 | } -------------------------------------------------------------------------------- /3D Files/rodMountPlunger.scad: -------------------------------------------------------------------------------- 1 | include 2 | 3 | /* === Model-specific Constants === */ 4 | 5 | //add some clearance, we don't want this against the 8020 rails 6 | spaceAboveFloor = 2; 7 | 8 | //plunger 9 | plungerDiameter = 26.5; 10 | plungerThickness = 2.2; 11 | plungerInnerDiameter = 15; 12 | plungerClipThickness = 3; 13 | plungerWellDepth = plungerThickness + plungerClipThickness; 14 | 15 | //trap nut 16 | nutAcross = 13.2; 17 | nutDepth = 6.5; 18 | nutWellDepth = nutDepth + 0.05; //tight so it won't rattle 19 | nutWallThicknessFront = plungerWellDepth+3; 20 | nutWallThicknessBack = 4; 21 | 22 | nutSlotSizeX = nutWallThicknessFront; 23 | nutSlotSizeY = nutAcross; 24 | nutSlotSizeZ = nutAcross/2; 25 | 26 | //linear bearing 27 | LM8UU_dia = 15.4; 28 | LM8UU_length = 24; 29 | 30 | //cube containing nut, linear bearing, and plunger 31 | mountXSize = nutWellDepth + nutWallThicknessFront + nutWallThicknessBack; 32 | mountZSize = syringeCenterHeight + plungerDiameter/2 + 3; 33 | 34 | /* === Model === */ 35 | 36 | //main cube, holds the two axes 37 | difference(){ 38 | translate([0,0,spaceAboveFloor]){ 39 | cube(size=[mountXSize,baseSizeY,mountZSize]); 40 | } 41 | 42 | //nut 43 | translate([-floatCorrection+nutWallThicknessFront,centerY,threadedAxisHeight]){ 44 | rotate(a=[0,90,0]){ 45 | nutWell(); 46 | } 47 | //nut insertion slot 48 | translate([0,0,nutAcross/sqrt(3)]){ 49 | rotate(a=[0,90,0]){ 50 | nutWell(); 51 | } 52 | } 53 | translate([nutWellDepth,0,nutAcross/sqrt(3)]){ 54 | rotate(a=[0,90,0]){ 55 | nutWell(); 56 | } 57 | } 58 | } 59 | 60 | 61 | //bore hole for threaded rod 62 | translate([-floatCorrection,centerY,threadedAxisHeight]){ 63 | rotate(a=[0,90,0]){ 64 | cylinder(h=mountXSize+floatCorrection2, r=smoothRodRadius); 65 | } 66 | } 67 | 68 | //hole for LM8UU 69 | translate([-floatCorrection,centerY,smoothAxisHeight]){ 70 | rotate(a=[0,90,0]){ 71 | bearingLM8UU(); 72 | } 73 | } 74 | 75 | //U-shaped hole for syringe plunger to go in 76 | translate([plungerClipThickness,centerY,syringeCenterHeight]){ 77 | rotate(a=[0,90,0]){ 78 | cylinder(h=plungerThickness, r=plungerDiameter/2); 79 | } 80 | translate([0,-plungerDiameter/2,0]){ 81 | cube(size=[plungerThickness,plungerDiameter,mountZSize]); 82 | } 83 | } 84 | translate([-floatCorrection,centerY,syringeCenterHeight]){ 85 | rotate(a=[0,90,0]){ 86 | cylinder(h=plungerClipThickness+floatCorrection2, r=plungerInnerDiameter/2); 87 | } 88 | translate([0,-plungerInnerDiameter/2,0]){ 89 | cube(size=[plungerClipThickness+floatCorrection2,plungerInnerDiameter,mountZSize]); 90 | } 91 | } 92 | 93 | 94 | //remove excess volume from sides 95 | translate([-floatCorrection,centerY+plungerDiameter/2 + 4,0]){ 96 | cube(size=[mountXSize + floatCorrection2, baseSizeY, mountZSize+spaceAboveFloor]); 97 | } 98 | cube(size=[mountXSize + floatCorrection2, centerY-plungerDiameter/2-4, mountZSize+spaceAboveFloor]); 99 | } 100 | 101 | 102 | 103 | 104 | module nutWell(){ 105 | //compose the outline of the 6-sided nut using 3 cubes. Yay geometry. 106 | nutEdgeLength = nutAcross / (sqrt(3)); 107 | 108 | translate([-nutEdgeLength/2, -nutAcross/2, 0]){ 109 | cube(size=[nutEdgeLength,nutAcross,nutWellDepth+floatCorrection2]); 110 | } 111 | 112 | rotate(a=[0,0,60]){ 113 | translate([-nutEdgeLength/2, -nutAcross/2, 0]){ 114 | cube(size=[nutEdgeLength,nutAcross,nutWellDepth+floatCorrection2]); 115 | } 116 | } 117 | 118 | rotate(a=[0,0,-60]){ 119 | translate([-nutEdgeLength/2, -nutAcross/2, 0]){ 120 | cube(size=[nutEdgeLength,nutAcross,nutWellDepth+floatCorrection2]); 121 | } 122 | } 123 | } 124 | 125 | module bearingLM8UU(){ 126 | cylinder(h=LM8UU_length, r=LM8UU_dia/2); 127 | } 128 | -------------------------------------------------------------------------------- /3D Files/rodMountSyringe.scad: -------------------------------------------------------------------------------- 1 | include 2 | 3 | /* === Model-specific Constants === */ 4 | 5 | //cube containing rods and syringe barrel stop 6 | mountXSize = 10; 7 | mountZSize = syringeCenterHeight; 8 | 9 | 10 | /* === Model === */ 11 | 12 | //main cube, holds the two axes 13 | difference(){ 14 | cube(size=[mountXSize,baseSizeY,mountZSize]); 15 | 16 | 17 | //bore hole for threaded rod 18 | translate([-floatCorrection,centerY,threadedAxisHeight]){ 19 | rotate(a=[0,90,0]){ 20 | cylinder(h=mountXSize+floatCorrection2, r=smoothRodRadius+0.5); 21 | } 22 | } 23 | 24 | //hole for smooth rod (needs to fit fairly tight) 25 | translate([-floatCorrection,centerY,smoothAxisHeight]){ 26 | rotate(a=[0,90,0]){ 27 | cylinder(h=mountXSize+floatCorrection2, r=smoothRodRadius); 28 | } 29 | } 30 | 31 | //hole for syringe barrel stopper 32 | translate([-floatCorrection,centerY,syringeCenterHeight]){ 33 | rotate(a=[0,90,0]){ 34 | cylinder(h=mountXSize+floatCorrection2, r=5.2); 35 | } 36 | } 37 | } 38 | 39 | difference(){ 40 | translate([-screwPlateSize,0,0]){ 41 | cube(size=[screwPlateSize,baseSizeY,mountPlateHeight]); 42 | } 43 | 44 | translate([-screwPlateSize/2,baseSizeY/4,0]){ 45 | cylinder(h=mountPlateHeight, r=screwRadius); 46 | } 47 | translate([-screwPlateSize/2,3*baseSizeY/4,0]){ 48 | cylinder(h=mountPlateHeight, r=screwRadius); 49 | } 50 | 51 | } 52 | 53 | module bearing608(){ 54 | cylinder(h=bearing608Height, r=bearing608Diameter/2); 55 | } -------------------------------------------------------------------------------- /3D Files/rodMountSyringe.stl: -------------------------------------------------------------------------------- 1 | solid OpenSCAD_Model 2 | facet normal -1 0 0 3 | outer loop 4 | vertex -25 0 0 5 | vertex -25 0 5 6 | vertex -25 50.8 0 7 | endloop 8 | endfacet 9 | facet normal -1 0 0 10 | outer loop 11 | vertex -25 50.8 0 12 | vertex -25 0 5 13 | vertex -25 50.8 5 14 | endloop 15 | endfacet 16 | facet normal 0 -1 0 17 | outer loop 18 | vertex -25 0 5 19 | vertex -25 0 0 20 | vertex 10 0 0 21 | endloop 22 | endfacet 23 | facet normal 0 -1 0 24 | outer loop 25 | vertex 0 0 5 26 | vertex -25 0 5 27 | vertex 10 0 0 28 | endloop 29 | endfacet 30 | facet normal 0 -1 0 31 | outer loop 32 | vertex 10 0 57.75 33 | vertex 0 0 5 34 | vertex 10 0 0 35 | endloop 36 | endfacet 37 | facet normal 0 -1 0 38 | outer loop 39 | vertex 0 0 57.75 40 | vertex 0 0 5 41 | vertex 10 0 57.75 42 | endloop 43 | endfacet 44 | facet normal 0 0 -1 45 | outer loop 46 | vertex -10.75 41.1311 0 47 | vertex -25 50.8 0 48 | vertex 10 50.8 0 49 | endloop 50 | endfacet 51 | facet normal 0 0 -1 52 | outer loop 53 | vertex -25 0 0 54 | vertex -25 50.8 0 55 | vertex -16 12.7 0 56 | endloop 57 | endfacet 58 | facet normal 0 0 -1 59 | outer loop 60 | vertex -25 0 0 61 | vertex -16 12.7 0 62 | vertex -15.9235 11.9723 0 63 | endloop 64 | endfacet 65 | facet normal 0 0 -1 66 | outer loop 67 | vertex -25 0 0 68 | vertex -15.9235 11.9723 0 69 | vertex -15.6974 11.2764 0 70 | endloop 71 | endfacet 72 | facet normal 0 0 -1 73 | outer loop 74 | vertex -25 0 0 75 | vertex -15.6974 11.2764 0 76 | vertex -15.3316 10.6428 0 77 | endloop 78 | endfacet 79 | facet normal 0 0 -1 80 | outer loop 81 | vertex -25 0 0 82 | vertex -15.3316 10.6428 0 83 | vertex -14.842 10.099 0 84 | endloop 85 | endfacet 86 | facet normal 0 0 -1 87 | outer loop 88 | vertex -25 0 0 89 | vertex -14.842 10.099 0 90 | vertex -14.25 9.66891 0 91 | endloop 92 | endfacet 93 | facet normal 0 0 -1 94 | outer loop 95 | vertex -25 0 0 96 | vertex -14.25 9.66891 0 97 | vertex -13.5816 9.3713 0 98 | endloop 99 | endfacet 100 | facet normal 0 0 -1 101 | outer loop 102 | vertex -25 0 0 103 | vertex -13.5816 9.3713 0 104 | vertex 10 0 0 105 | endloop 106 | endfacet 107 | facet normal 0 0 -1 108 | outer loop 109 | vertex -12.1341 9.21917 0 110 | vertex 10 0 0 111 | vertex -12.8659 9.21917 0 112 | endloop 113 | endfacet 114 | facet normal 0 0 -1 115 | outer loop 116 | vertex -11.4184 9.3713 0 117 | vertex 10 0 0 118 | vertex -12.1341 9.21917 0 119 | endloop 120 | endfacet 121 | facet normal 0 0 -1 122 | outer loop 123 | vertex -10.75 9.66891 0 124 | vertex 10 0 0 125 | vertex -11.4184 9.3713 0 126 | endloop 127 | endfacet 128 | facet normal 0 0 -1 129 | outer loop 130 | vertex -10.158 10.099 0 131 | vertex 10 0 0 132 | vertex -10.75 9.66891 0 133 | endloop 134 | endfacet 135 | facet normal 0 0 -1 136 | outer loop 137 | vertex -15.9235 37.3723 0 138 | vertex -25 50.8 0 139 | vertex -16 38.1 0 140 | endloop 141 | endfacet 142 | facet normal 0 0 -1 143 | outer loop 144 | vertex -9.66844 14.7572 0 145 | vertex -25 50.8 0 146 | vertex -9.30259 14.1236 0 147 | endloop 148 | endfacet 149 | facet normal 0 0 -1 150 | outer loop 151 | vertex -12.8659 16.1808 0 152 | vertex -25 50.8 0 153 | vertex -12.1341 16.1808 0 154 | endloop 155 | endfacet 156 | facet normal 0 0 -1 157 | outer loop 158 | vertex -10.158 10.099 0 159 | vertex -9.66844 10.6428 0 160 | vertex 10 0 0 161 | endloop 162 | endfacet 163 | facet normal 0 0 -1 164 | outer loop 165 | vertex -12.1341 16.1808 0 166 | vertex -25 50.8 0 167 | vertex -11.4184 16.0287 0 168 | endloop 169 | endfacet 170 | facet normal 0 0 -1 171 | outer loop 172 | vertex -9.66844 10.6428 0 173 | vertex -9.30259 11.2764 0 174 | vertex 10 0 0 175 | endloop 176 | endfacet 177 | facet normal 0 0 -1 178 | outer loop 179 | vertex -11.4184 16.0287 0 180 | vertex -25 50.8 0 181 | vertex -10.75 15.7311 0 182 | endloop 183 | endfacet 184 | facet normal 0 0 -1 185 | outer loop 186 | vertex -9.30259 11.2764 0 187 | vertex -9.07648 11.9723 0 188 | vertex 10 0 0 189 | endloop 190 | endfacet 191 | facet normal 0 0 -1 192 | outer loop 193 | vertex -10.75 15.7311 0 194 | vertex -25 50.8 0 195 | vertex -10.158 15.301 0 196 | endloop 197 | endfacet 198 | facet normal 0 0 -1 199 | outer loop 200 | vertex -9.07648 11.9723 0 201 | vertex -9 12.7 0 202 | vertex 10 0 0 203 | endloop 204 | endfacet 205 | facet normal 0 0 -1 206 | outer loop 207 | vertex -10.158 15.301 0 208 | vertex -25 50.8 0 209 | vertex -9.66844 14.7572 0 210 | endloop 211 | endfacet 212 | facet normal 0 0 -1 213 | outer loop 214 | vertex -9 12.7 0 215 | vertex -9.07648 13.4277 0 216 | vertex 10 0 0 217 | endloop 218 | endfacet 219 | facet normal 0 0 -1 220 | outer loop 221 | vertex -9.07648 13.4277 0 222 | vertex -9.30259 14.1236 0 223 | vertex 10 0 0 224 | endloop 225 | endfacet 226 | facet normal 0 0 -1 227 | outer loop 228 | vertex -13.5816 16.0287 0 229 | vertex -25 50.8 0 230 | vertex -12.8659 16.1808 0 231 | endloop 232 | endfacet 233 | facet normal 0 0 -1 234 | outer loop 235 | vertex -14.25 15.7311 0 236 | vertex -25 50.8 0 237 | vertex -13.5816 16.0287 0 238 | endloop 239 | endfacet 240 | facet normal 0 0 -1 241 | outer loop 242 | vertex -14.842 15.301 0 243 | vertex -25 50.8 0 244 | vertex -14.25 15.7311 0 245 | endloop 246 | endfacet 247 | facet normal 0 0 -1 248 | outer loop 249 | vertex -15.3316 14.7572 0 250 | vertex -25 50.8 0 251 | vertex -14.842 15.301 0 252 | endloop 253 | endfacet 254 | facet normal 0 0 -1 255 | outer loop 256 | vertex -15.6974 14.1236 0 257 | vertex -25 50.8 0 258 | vertex -15.3316 14.7572 0 259 | endloop 260 | endfacet 261 | facet normal 0 0 -1 262 | outer loop 263 | vertex -15.9235 13.4277 0 264 | vertex -25 50.8 0 265 | vertex -15.6974 14.1236 0 266 | endloop 267 | endfacet 268 | facet normal 0 0 -1 269 | outer loop 270 | vertex -16 12.7 0 271 | vertex -25 50.8 0 272 | vertex -15.9235 13.4277 0 273 | endloop 274 | endfacet 275 | facet normal 0 0 -1 276 | outer loop 277 | vertex -9.30259 14.1236 0 278 | vertex -25 50.8 0 279 | vertex -15.9235 37.3723 0 280 | endloop 281 | endfacet 282 | facet normal 0 0 -1 283 | outer loop 284 | vertex -9.30259 14.1236 0 285 | vertex -15.9235 37.3723 0 286 | vertex -15.6974 36.6764 0 287 | endloop 288 | endfacet 289 | facet normal 0 0 -1 290 | outer loop 291 | vertex -9.30259 14.1236 0 292 | vertex -15.6974 36.6764 0 293 | vertex -15.3316 36.0428 0 294 | endloop 295 | endfacet 296 | facet normal 0 0 -1 297 | outer loop 298 | vertex -9.30259 14.1236 0 299 | vertex -15.3316 36.0428 0 300 | vertex 10 0 0 301 | endloop 302 | endfacet 303 | facet normal 0 0 -1 304 | outer loop 305 | vertex -14.25 35.0689 0 306 | vertex 10 0 0 307 | vertex -14.842 35.499 0 308 | endloop 309 | endfacet 310 | facet normal 0 0 -1 311 | outer loop 312 | vertex -14.842 35.499 0 313 | vertex 10 0 0 314 | vertex -15.3316 36.0428 0 315 | endloop 316 | endfacet 317 | facet normal 0 0 -1 318 | outer loop 319 | vertex -13.5816 34.7713 0 320 | vertex 10 0 0 321 | vertex -14.25 35.0689 0 322 | endloop 323 | endfacet 324 | facet normal 0 0 -1 325 | outer loop 326 | vertex -9.66844 36.0428 0 327 | vertex 10 50.8 0 328 | vertex -10.158 35.499 0 329 | endloop 330 | endfacet 331 | facet normal 0 0 -1 332 | outer loop 333 | vertex 10 0 0 334 | vertex -13.5816 34.7713 0 335 | vertex -12.8659 34.6192 0 336 | endloop 337 | endfacet 338 | facet normal 0 0 -1 339 | outer loop 340 | vertex 10 0 0 341 | vertex -12.8659 34.6192 0 342 | vertex -12.1341 34.6192 0 343 | endloop 344 | endfacet 345 | facet normal 0 0 -1 346 | outer loop 347 | vertex 10 0 0 348 | vertex -12.1341 34.6192 0 349 | vertex -11.4184 34.7713 0 350 | endloop 351 | endfacet 352 | facet normal 0 0 -1 353 | outer loop 354 | vertex 10 0 0 355 | vertex -11.4184 34.7713 0 356 | vertex -10.75 35.0689 0 357 | endloop 358 | endfacet 359 | facet normal 0 0 -1 360 | outer loop 361 | vertex 10 0 0 362 | vertex -10.75 35.0689 0 363 | vertex -10.158 35.499 0 364 | endloop 365 | endfacet 366 | facet normal 0 0 -1 367 | outer loop 368 | vertex 10 0 0 369 | vertex -10.158 35.499 0 370 | vertex 10 50.8 0 371 | endloop 372 | endfacet 373 | facet normal 0 0 -1 374 | outer loop 375 | vertex -9.30259 36.6764 0 376 | vertex 10 50.8 0 377 | vertex -9.66844 36.0428 0 378 | endloop 379 | endfacet 380 | facet normal 0 0 -1 381 | outer loop 382 | vertex -9.07648 37.3723 0 383 | vertex 10 50.8 0 384 | vertex -9.30259 36.6764 0 385 | endloop 386 | endfacet 387 | facet normal 0 0 -1 388 | outer loop 389 | vertex -9 38.1 0 390 | vertex 10 50.8 0 391 | vertex -9.07648 37.3723 0 392 | endloop 393 | endfacet 394 | facet normal 0 0 -1 395 | outer loop 396 | vertex -10.75 41.1311 0 397 | vertex 10 50.8 0 398 | vertex -10.158 40.701 0 399 | endloop 400 | endfacet 401 | facet normal 0 0 -1 402 | outer loop 403 | vertex -9 38.1 0 404 | vertex -9.07648 38.8277 0 405 | vertex 10 50.8 0 406 | endloop 407 | endfacet 408 | facet normal 0 0 -1 409 | outer loop 410 | vertex -9.07648 38.8277 0 411 | vertex -9.30259 39.5236 0 412 | vertex 10 50.8 0 413 | endloop 414 | endfacet 415 | facet normal 0 0 -1 416 | outer loop 417 | vertex -9.30259 39.5236 0 418 | vertex -9.66844 40.1572 0 419 | vertex 10 50.8 0 420 | endloop 421 | endfacet 422 | facet normal 0 0 -1 423 | outer loop 424 | vertex -9.66844 40.1572 0 425 | vertex -10.158 40.701 0 426 | vertex 10 50.8 0 427 | endloop 428 | endfacet 429 | facet normal 0 0 -1 430 | outer loop 431 | vertex -11.4184 41.4287 0 432 | vertex -25 50.8 0 433 | vertex -10.75 41.1311 0 434 | endloop 435 | endfacet 436 | facet normal 0 0 -1 437 | outer loop 438 | vertex -12.1341 41.5808 0 439 | vertex -25 50.8 0 440 | vertex -11.4184 41.4287 0 441 | endloop 442 | endfacet 443 | facet normal 0 0 -1 444 | outer loop 445 | vertex -12.8659 41.5808 0 446 | vertex -25 50.8 0 447 | vertex -12.1341 41.5808 0 448 | endloop 449 | endfacet 450 | facet normal 0 0 -1 451 | outer loop 452 | vertex -13.5816 41.4287 0 453 | vertex -25 50.8 0 454 | vertex -12.8659 41.5808 0 455 | endloop 456 | endfacet 457 | facet normal 0 0 -1 458 | outer loop 459 | vertex -14.25 41.1311 0 460 | vertex -25 50.8 0 461 | vertex -13.5816 41.4287 0 462 | endloop 463 | endfacet 464 | facet normal 0 0 -1 465 | outer loop 466 | vertex -14.842 40.701 0 467 | vertex -25 50.8 0 468 | vertex -14.25 41.1311 0 469 | endloop 470 | endfacet 471 | facet normal 0 0 -1 472 | outer loop 473 | vertex -15.3316 40.1572 0 474 | vertex -25 50.8 0 475 | vertex -14.842 40.701 0 476 | endloop 477 | endfacet 478 | facet normal 0 0 -1 479 | outer loop 480 | vertex -15.6974 39.5236 0 481 | vertex -25 50.8 0 482 | vertex -15.3316 40.1572 0 483 | endloop 484 | endfacet 485 | facet normal 0 0 -1 486 | outer loop 487 | vertex -15.9235 38.8277 0 488 | vertex -25 50.8 0 489 | vertex -15.6974 39.5236 0 490 | endloop 491 | endfacet 492 | facet normal 0 0 -1 493 | outer loop 494 | vertex -16 38.1 0 495 | vertex -25 50.8 0 496 | vertex -15.9235 38.8277 0 497 | endloop 498 | endfacet 499 | facet normal 0 0 -1 500 | outer loop 501 | vertex -12.8659 9.21917 0 502 | vertex 10 0 0 503 | vertex -13.5816 9.3713 0 504 | endloop 505 | endfacet 506 | facet normal 0 1 0 507 | outer loop 508 | vertex -25 50.8 0 509 | vertex -25 50.8 5 510 | vertex 10 50.8 0 511 | endloop 512 | endfacet 513 | facet normal 0 1 0 514 | outer loop 515 | vertex 10 50.8 0 516 | vertex -25 50.8 5 517 | vertex 0 50.8 5 518 | endloop 519 | endfacet 520 | facet normal 0 1 0 521 | outer loop 522 | vertex 10 50.8 0 523 | vertex 0 50.8 5 524 | vertex 0 50.8 57.75 525 | endloop 526 | endfacet 527 | facet normal 0 1 0 528 | outer loop 529 | vertex 10 50.8 0 530 | vertex 0 50.8 57.75 531 | vertex 10 50.8 57.75 532 | endloop 533 | endfacet 534 | facet normal 0 0 1 535 | outer loop 536 | vertex -12.8659 9.21917 5 537 | vertex -25 0 5 538 | vertex 0 0 5 539 | endloop 540 | endfacet 541 | facet normal 0 0 1 542 | outer loop 543 | vertex -15.6974 36.6764 5 544 | vertex -25 50.8 5 545 | vertex 0 0 5 546 | endloop 547 | endfacet 548 | facet normal 0 0 1 549 | outer loop 550 | vertex -14.25 41.1311 5 551 | vertex -13.5816 41.4287 5 552 | vertex 0 50.8 5 553 | endloop 554 | endfacet 555 | facet normal 0 0 1 556 | outer loop 557 | vertex -25 50.8 5 558 | vertex -25 0 5 559 | vertex -15.9235 11.9723 5 560 | endloop 561 | endfacet 562 | facet normal 0 0 1 563 | outer loop 564 | vertex -12.1341 9.21917 5 565 | vertex -12.8659 9.21917 5 566 | vertex 0 0 5 567 | endloop 568 | endfacet 569 | facet normal 0 0 1 570 | outer loop 571 | vertex -25 50.8 5 572 | vertex -15.9235 11.9723 5 573 | vertex -16 12.7 5 574 | endloop 575 | endfacet 576 | facet normal 0 0 1 577 | outer loop 578 | vertex -11.4184 9.3713 5 579 | vertex -12.1341 9.21917 5 580 | vertex 0 0 5 581 | endloop 582 | endfacet 583 | facet normal 0 0 1 584 | outer loop 585 | vertex -25 50.8 5 586 | vertex -16 12.7 5 587 | vertex -15.9235 13.4277 5 588 | endloop 589 | endfacet 590 | facet normal 0 0 1 591 | outer loop 592 | vertex -10.75 9.66891 5 593 | vertex -11.4184 9.3713 5 594 | vertex 0 0 5 595 | endloop 596 | endfacet 597 | facet normal 0 0 1 598 | outer loop 599 | vertex -25 50.8 5 600 | vertex -15.9235 13.4277 5 601 | vertex -15.6974 14.1236 5 602 | endloop 603 | endfacet 604 | facet normal 0 0 1 605 | outer loop 606 | vertex -12.8659 41.5808 5 607 | vertex -12.1341 41.5808 5 608 | vertex 0 50.8 5 609 | endloop 610 | endfacet 611 | facet normal 0 0 1 612 | outer loop 613 | vertex -25 50.8 5 614 | vertex -15.6974 14.1236 5 615 | vertex -15.3316 14.7572 5 616 | endloop 617 | endfacet 618 | facet normal 0 0 1 619 | outer loop 620 | vertex -25 50.8 5 621 | vertex -15.3316 14.7572 5 622 | vertex -14.842 15.301 5 623 | endloop 624 | endfacet 625 | facet normal 0 0 1 626 | outer loop 627 | vertex -9.66844 10.6428 5 628 | vertex -10.158 10.099 5 629 | vertex 0 0 5 630 | endloop 631 | endfacet 632 | facet normal 0 0 1 633 | outer loop 634 | vertex -25 50.8 5 635 | vertex -14.842 15.301 5 636 | vertex -14.25 15.7311 5 637 | endloop 638 | endfacet 639 | facet normal 0 0 1 640 | outer loop 641 | vertex -10.158 10.099 5 642 | vertex -10.75 9.66891 5 643 | vertex 0 0 5 644 | endloop 645 | endfacet 646 | facet normal 0 0 1 647 | outer loop 648 | vertex -25 50.8 5 649 | vertex -14.25 15.7311 5 650 | vertex -13.5816 16.0287 5 651 | endloop 652 | endfacet 653 | facet normal 0 0 1 654 | outer loop 655 | vertex -25 50.8 5 656 | vertex -13.5816 16.0287 5 657 | vertex -12.8659 16.1808 5 658 | endloop 659 | endfacet 660 | facet normal 0 0 1 661 | outer loop 662 | vertex -9.07648 11.9723 5 663 | vertex -9.30259 11.2764 5 664 | vertex 0 0 5 665 | endloop 666 | endfacet 667 | facet normal 0 0 1 668 | outer loop 669 | vertex -25 50.8 5 670 | vertex -12.8659 16.1808 5 671 | vertex -12.1341 16.1808 5 672 | endloop 673 | endfacet 674 | facet normal 0 0 1 675 | outer loop 676 | vertex -9.30259 11.2764 5 677 | vertex -9.66844 10.6428 5 678 | vertex 0 0 5 679 | endloop 680 | endfacet 681 | facet normal 0 0 1 682 | outer loop 683 | vertex -25 50.8 5 684 | vertex -12.1341 16.1808 5 685 | vertex -11.4184 16.0287 5 686 | endloop 687 | endfacet 688 | facet normal 0 0 1 689 | outer loop 690 | vertex -25 50.8 5 691 | vertex -11.4184 16.0287 5 692 | vertex -10.75 15.7311 5 693 | endloop 694 | endfacet 695 | facet normal 0 0 1 696 | outer loop 697 | vertex -9.07648 13.4277 5 698 | vertex -9 12.7 5 699 | vertex 0 0 5 700 | endloop 701 | endfacet 702 | facet normal 0 0 1 703 | outer loop 704 | vertex -25 50.8 5 705 | vertex -10.75 15.7311 5 706 | vertex -10.158 15.301 5 707 | endloop 708 | endfacet 709 | facet normal 0 0 1 710 | outer loop 711 | vertex -25 50.8 5 712 | vertex -9.66844 14.7572 5 713 | vertex 0 0 5 714 | endloop 715 | endfacet 716 | facet normal 0 0 1 717 | outer loop 718 | vertex -25 50.8 5 719 | vertex -10.158 15.301 5 720 | vertex -9.66844 14.7572 5 721 | endloop 722 | endfacet 723 | facet normal 0 0 1 724 | outer loop 725 | vertex -9.66844 14.7572 5 726 | vertex -9.30259 14.1236 5 727 | vertex 0 0 5 728 | endloop 729 | endfacet 730 | facet normal 0 0 1 731 | outer loop 732 | vertex -13.5816 9.3713 5 733 | vertex -25 0 5 734 | vertex -12.8659 9.21917 5 735 | endloop 736 | endfacet 737 | facet normal 0 0 1 738 | outer loop 739 | vertex -14.25 9.66891 5 740 | vertex -25 0 5 741 | vertex -13.5816 9.3713 5 742 | endloop 743 | endfacet 744 | facet normal 0 0 1 745 | outer loop 746 | vertex -14.842 10.099 5 747 | vertex -25 0 5 748 | vertex -14.25 9.66891 5 749 | endloop 750 | endfacet 751 | facet normal 0 0 1 752 | outer loop 753 | vertex -15.3316 10.6428 5 754 | vertex -25 0 5 755 | vertex -14.842 10.099 5 756 | endloop 757 | endfacet 758 | facet normal 0 0 1 759 | outer loop 760 | vertex -15.6974 11.2764 5 761 | vertex -25 0 5 762 | vertex -15.3316 10.6428 5 763 | endloop 764 | endfacet 765 | facet normal 0 0 1 766 | outer loop 767 | vertex -15.9235 11.9723 5 768 | vertex -25 0 5 769 | vertex -15.6974 11.2764 5 770 | endloop 771 | endfacet 772 | facet normal 0 0 1 773 | outer loop 774 | vertex -16 38.1 5 775 | vertex -25 50.8 5 776 | vertex -15.9235 37.3723 5 777 | endloop 778 | endfacet 779 | facet normal 0 0 1 780 | outer loop 781 | vertex -15.9235 38.8277 5 782 | vertex -25 50.8 5 783 | vertex -16 38.1 5 784 | endloop 785 | endfacet 786 | facet normal 0 0 1 787 | outer loop 788 | vertex -15.6974 39.5236 5 789 | vertex -25 50.8 5 790 | vertex -15.9235 38.8277 5 791 | endloop 792 | endfacet 793 | facet normal 0 0 1 794 | outer loop 795 | vertex -12.1341 41.5808 5 796 | vertex -11.4184 41.4287 5 797 | vertex 0 50.8 5 798 | endloop 799 | endfacet 800 | facet normal 0 0 1 801 | outer loop 802 | vertex -15.3316 40.1572 5 803 | vertex -25 50.8 5 804 | vertex -15.6974 39.5236 5 805 | endloop 806 | endfacet 807 | facet normal 0 0 1 808 | outer loop 809 | vertex -14.842 40.701 5 810 | vertex -25 50.8 5 811 | vertex -15.3316 40.1572 5 812 | endloop 813 | endfacet 814 | facet normal 0 0 1 815 | outer loop 816 | vertex -14.25 41.1311 5 817 | vertex -25 50.8 5 818 | vertex -14.842 40.701 5 819 | endloop 820 | endfacet 821 | facet normal 0 0 1 822 | outer loop 823 | vertex -13.5816 41.4287 5 824 | vertex -12.8659 41.5808 5 825 | vertex 0 50.8 5 826 | endloop 827 | endfacet 828 | facet normal 0 0 1 829 | outer loop 830 | vertex 0 50.8 5 831 | vertex -25 50.8 5 832 | vertex -14.25 41.1311 5 833 | endloop 834 | endfacet 835 | facet normal 0 0 1 836 | outer loop 837 | vertex -11.4184 41.4287 5 838 | vertex -10.75 41.1311 5 839 | vertex 0 50.8 5 840 | endloop 841 | endfacet 842 | facet normal 0 0 1 843 | outer loop 844 | vertex -9.07648 38.8277 5 845 | vertex -9 38.1 5 846 | vertex 0 0 5 847 | endloop 848 | endfacet 849 | facet normal 0 0 1 850 | outer loop 851 | vertex -15.3316 36.0428 5 852 | vertex -15.6974 36.6764 5 853 | vertex 0 0 5 854 | endloop 855 | endfacet 856 | facet normal 0 0 1 857 | outer loop 858 | vertex -9.30259 36.6764 5 859 | vertex -9.66844 36.0428 5 860 | vertex 0 0 5 861 | endloop 862 | endfacet 863 | facet normal 0 0 1 864 | outer loop 865 | vertex 0 50.8 5 866 | vertex -10.75 41.1311 5 867 | vertex -10.158 40.701 5 868 | endloop 869 | endfacet 870 | facet normal 0 0 1 871 | outer loop 872 | vertex -9.07648 37.3723 5 873 | vertex -9.30259 36.6764 5 874 | vertex 0 0 5 875 | endloop 876 | endfacet 877 | facet normal 0 0 1 878 | outer loop 879 | vertex 0 50.8 5 880 | vertex -10.158 40.701 5 881 | vertex -9.66844 40.1572 5 882 | endloop 883 | endfacet 884 | facet normal 0 0 1 885 | outer loop 886 | vertex -9 38.1 5 887 | vertex -9.07648 37.3723 5 888 | vertex 0 0 5 889 | endloop 890 | endfacet 891 | facet normal 0 0 1 892 | outer loop 893 | vertex 0 50.8 5 894 | vertex -9.66844 40.1572 5 895 | vertex -9.30259 39.5236 5 896 | endloop 897 | endfacet 898 | facet normal 0 0 1 899 | outer loop 900 | vertex 0 50.8 5 901 | vertex -9.07648 38.8277 5 902 | vertex 0 0 5 903 | endloop 904 | endfacet 905 | facet normal 0 0 1 906 | outer loop 907 | vertex 0 50.8 5 908 | vertex -9.30259 39.5236 5 909 | vertex -9.07648 38.8277 5 910 | endloop 911 | endfacet 912 | facet normal 0 0 1 913 | outer loop 914 | vertex -9.66844 36.0428 5 915 | vertex -10.158 35.499 5 916 | vertex 0 0 5 917 | endloop 918 | endfacet 919 | facet normal 0 0 1 920 | outer loop 921 | vertex -10.158 35.499 5 922 | vertex -10.75 35.0689 5 923 | vertex 0 0 5 924 | endloop 925 | endfacet 926 | facet normal 0 0 1 927 | outer loop 928 | vertex -10.75 35.0689 5 929 | vertex -11.4184 34.7713 5 930 | vertex 0 0 5 931 | endloop 932 | endfacet 933 | facet normal 0 0 1 934 | outer loop 935 | vertex -11.4184 34.7713 5 936 | vertex -12.1341 34.6192 5 937 | vertex 0 0 5 938 | endloop 939 | endfacet 940 | facet normal 0 0 1 941 | outer loop 942 | vertex -12.1341 34.6192 5 943 | vertex -12.8659 34.6192 5 944 | vertex 0 0 5 945 | endloop 946 | endfacet 947 | facet normal 0 0 1 948 | outer loop 949 | vertex -12.8659 34.6192 5 950 | vertex -13.5816 34.7713 5 951 | vertex 0 0 5 952 | endloop 953 | endfacet 954 | facet normal 0 0 1 955 | outer loop 956 | vertex -13.5816 34.7713 5 957 | vertex -14.25 35.0689 5 958 | vertex 0 0 5 959 | endloop 960 | endfacet 961 | facet normal 0 0 1 962 | outer loop 963 | vertex -14.25 35.0689 5 964 | vertex -14.842 35.499 5 965 | vertex 0 0 5 966 | endloop 967 | endfacet 968 | facet normal 0 0 1 969 | outer loop 970 | vertex -14.842 35.499 5 971 | vertex -15.3316 36.0428 5 972 | vertex 0 0 5 973 | endloop 974 | endfacet 975 | facet normal 0 0 1 976 | outer loop 977 | vertex -15.9235 37.3723 5 978 | vertex -25 50.8 5 979 | vertex -15.6974 36.6764 5 980 | endloop 981 | endfacet 982 | facet normal 0 0 1 983 | outer loop 984 | vertex -9.30259 14.1236 5 985 | vertex -9.07648 13.4277 5 986 | vertex 0 0 5 987 | endloop 988 | endfacet 989 | facet normal 0 0 1 990 | outer loop 991 | vertex -9 12.7 5 992 | vertex -9.07648 11.9723 5 993 | vertex 0 0 5 994 | endloop 995 | endfacet 996 | facet normal -1 0 0 997 | outer loop 998 | vertex 0 20.2285 57.75 999 | vertex 0 20.2285 57.2065 1000 | vertex 0 0 57.75 1001 | endloop 1002 | endfacet 1003 | facet normal -1 0 0 1004 | outer loop 1005 | vertex 0 0 57.75 1006 | vertex 0 20.2285 57.2065 1007 | vertex 0 20.4545 56.1431 1008 | endloop 1009 | endfacet 1010 | facet normal -1 0 0 1011 | outer loop 1012 | vertex 0 20.4545 56.1431 1013 | vertex 0 20.8967 55.15 1014 | vertex 0 0 57.75 1015 | endloop 1016 | endfacet 1017 | facet normal -1 0 0 1018 | outer loop 1019 | vertex 0 20.8967 55.15 1020 | vertex 0 21.5356 54.2705 1021 | vertex 0 0 57.75 1022 | endloop 1023 | endfacet 1024 | facet normal -1 0 0 1025 | outer loop 1026 | vertex 0 21.5356 54.2705 1027 | vertex 0 22.3435 53.5431 1028 | vertex 0 0 57.75 1029 | endloop 1030 | endfacet 1031 | facet normal -1 0 0 1032 | outer loop 1033 | vertex 0 22.3435 53.5431 1034 | vertex 0 23.285 52.9996 1035 | vertex 0 0 57.75 1036 | endloop 1037 | endfacet 1038 | facet normal -1 0 0 1039 | outer loop 1040 | vertex 0 23.285 52.9996 1041 | vertex 0 24.3189 52.6636 1042 | vertex 0 0 57.75 1043 | endloop 1044 | endfacet 1045 | facet normal -1 0 0 1046 | outer loop 1047 | vertex 0 29.4703 32.35 1048 | vertex 0 24.3189 52.6636 1049 | vertex 0 29.87 31.4524 1050 | endloop 1051 | endfacet 1052 | facet normal -1 0 0 1053 | outer loop 1054 | vertex 0 25.4 52.55 1055 | vertex 0 50.8 5 1056 | vertex 0 24.3189 52.6636 1057 | endloop 1058 | endfacet 1059 | facet normal -1 0 0 1060 | outer loop 1061 | vertex 0 27.515 52.9996 1062 | vertex 0 50.8 57.75 1063 | vertex 0 26.4811 52.6636 1064 | endloop 1065 | endfacet 1066 | facet normal -1 0 0 1067 | outer loop 1068 | vertex 0 28.4565 53.5431 1069 | vertex 0 50.8 57.75 1070 | vertex 0 27.515 52.9996 1071 | endloop 1072 | endfacet 1073 | facet normal -1 0 0 1074 | outer loop 1075 | vertex 0 29.2644 54.2705 1076 | vertex 0 50.8 57.75 1077 | vertex 0 28.4565 53.5431 1078 | endloop 1079 | endfacet 1080 | facet normal -1 0 0 1081 | outer loop 1082 | vertex 0 29.9033 55.15 1083 | vertex 0 50.8 57.75 1084 | vertex 0 29.2644 54.2705 1085 | endloop 1086 | endfacet 1087 | facet normal -1 0 0 1088 | outer loop 1089 | vertex 0 30.3455 56.1431 1090 | vertex 0 50.8 57.75 1091 | vertex 0 29.9033 55.15 1092 | endloop 1093 | endfacet 1094 | facet normal -1 0 0 1095 | outer loop 1096 | vertex 0 30.5715 57.2065 1097 | vertex 0 30.5715 57.75 1098 | vertex 0 50.8 57.75 1099 | endloop 1100 | endfacet 1101 | facet normal -1 0 0 1102 | outer loop 1103 | vertex 0 30.5715 57.2065 1104 | vertex 0 50.8 57.75 1105 | vertex 0 30.3455 56.1431 1106 | endloop 1107 | endfacet 1108 | facet normal -1 0 0 1109 | outer loop 1110 | vertex 0 26.4811 52.6636 1111 | vertex 0 50.8 57.75 1112 | vertex 0 50.8 5 1113 | endloop 1114 | endfacet 1115 | facet normal -1 0 0 1116 | outer loop 1117 | vertex 0 26.4811 52.6636 1118 | vertex 0 50.8 5 1119 | vertex 0 25.4 52.55 1120 | endloop 1121 | endfacet 1122 | facet normal -1 0 0 1123 | outer loop 1124 | vertex 0 25.4 7.5 1125 | vertex 0 50.8 5 1126 | vertex 0 0 5 1127 | endloop 1128 | endfacet 1129 | facet normal -1 0 0 1130 | outer loop 1131 | vertex 0 29.4703 27.65 1132 | vertex 0 50.8 5 1133 | vertex 0 28.8928 26.8551 1134 | endloop 1135 | endfacet 1136 | facet normal -1 0 0 1137 | outer loop 1138 | vertex 0 0 57.75 1139 | vertex 0 20.7257 29.5087 1140 | vertex 0 0 5 1141 | endloop 1142 | endfacet 1143 | facet normal -1 0 0 1144 | outer loop 1145 | vertex 0 26.3772 25.4027 1146 | vertex 0 50.8 5 1147 | vertex 0 25.4 25.3 1148 | endloop 1149 | endfacet 1150 | facet normal -1 0 0 1151 | outer loop 1152 | vertex 0 20.7257 29.5087 1153 | vertex 0 20.93 28.5476 1154 | vertex 0 0 5 1155 | endloop 1156 | endfacet 1157 | facet normal -1 0 0 1158 | outer loop 1159 | vertex 0 25.4 25.3 1160 | vertex 0 50.8 5 1161 | vertex 0 24.4228 25.4027 1162 | endloop 1163 | endfacet 1164 | facet normal -1 0 0 1165 | outer loop 1166 | vertex 0 20.93 28.5476 1167 | vertex 0 21.3297 27.65 1168 | vertex 0 0 5 1169 | endloop 1170 | endfacet 1171 | facet normal -1 0 0 1172 | outer loop 1173 | vertex 0 24.4228 25.4027 1174 | vertex 0 50.8 5 1175 | vertex 0 23.4883 25.7063 1176 | endloop 1177 | endfacet 1178 | facet normal -1 0 0 1179 | outer loop 1180 | vertex 0 21.3297 27.65 1181 | vertex 0 21.9072 26.8551 1182 | vertex 0 0 5 1183 | endloop 1184 | endfacet 1185 | facet normal -1 0 0 1186 | outer loop 1187 | vertex 0 21.9072 26.8551 1188 | vertex 0 22.6374 26.1976 1189 | vertex 0 0 5 1190 | endloop 1191 | endfacet 1192 | facet normal -1 0 0 1193 | outer loop 1194 | vertex 0 21.9072 33.1449 1195 | vertex 0 0 57.75 1196 | vertex 0 22.6374 33.8024 1197 | endloop 1198 | endfacet 1199 | facet normal -1 0 0 1200 | outer loop 1201 | vertex 0 27.3117 25.7063 1202 | vertex 0 50.8 5 1203 | vertex 0 26.3772 25.4027 1204 | endloop 1205 | endfacet 1206 | facet normal -1 0 0 1207 | outer loop 1208 | vertex 0 28.1626 26.1976 1209 | vertex 0 50.8 5 1210 | vertex 0 27.3117 25.7063 1211 | endloop 1212 | endfacet 1213 | facet normal -1 0 0 1214 | outer loop 1215 | vertex 0 28.8928 26.8551 1216 | vertex 0 50.8 5 1217 | vertex 0 28.1626 26.1976 1218 | endloop 1219 | endfacet 1220 | facet normal -1 0 0 1221 | outer loop 1222 | vertex 0 29.87 28.5476 1223 | vertex 0 50.8 5 1224 | vertex 0 29.4703 27.65 1225 | endloop 1226 | endfacet 1227 | facet normal -1 0 0 1228 | outer loop 1229 | vertex 0 30.0743 29.5087 1230 | vertex 0 50.8 5 1231 | vertex 0 29.87 28.5476 1232 | endloop 1233 | endfacet 1234 | facet normal -1 0 0 1235 | outer loop 1236 | vertex 0 30.0743 30.4913 1237 | vertex 0 50.8 5 1238 | vertex 0 30.0743 29.5087 1239 | endloop 1240 | endfacet 1241 | facet normal -1 0 0 1242 | outer loop 1243 | vertex 0 29.87 31.4524 1244 | vertex 0 50.8 5 1245 | vertex 0 30.0743 30.4913 1246 | endloop 1247 | endfacet 1248 | facet normal -1 0 0 1249 | outer loop 1250 | vertex 0 24.3189 52.6636 1251 | vertex 0 50.8 5 1252 | vertex 0 29.87 31.4524 1253 | endloop 1254 | endfacet 1255 | facet normal -1 0 0 1256 | outer loop 1257 | vertex 0 28.8928 33.1449 1258 | vertex 0 24.3189 52.6636 1259 | vertex 0 29.4703 32.35 1260 | endloop 1261 | endfacet 1262 | facet normal -1 0 0 1263 | outer loop 1264 | vertex 0 28.1626 33.8024 1265 | vertex 0 24.3189 52.6636 1266 | vertex 0 28.8928 33.1449 1267 | endloop 1268 | endfacet 1269 | facet normal -1 0 0 1270 | outer loop 1271 | vertex 0 22.6374 33.8024 1272 | vertex 0 0 57.75 1273 | vertex 0 23.4883 34.2937 1274 | endloop 1275 | endfacet 1276 | facet normal -1 0 0 1277 | outer loop 1278 | vertex 0 24.3189 52.6636 1279 | vertex 0 28.1626 33.8024 1280 | vertex 0 0 57.75 1281 | endloop 1282 | endfacet 1283 | facet normal -1 0 0 1284 | outer loop 1285 | vertex 0 28.1626 33.8024 1286 | vertex 0 27.3117 34.2937 1287 | vertex 0 0 57.75 1288 | endloop 1289 | endfacet 1290 | facet normal -1 0 0 1291 | outer loop 1292 | vertex 0 27.3117 34.2937 1293 | vertex 0 26.3772 34.5973 1294 | vertex 0 0 57.75 1295 | endloop 1296 | endfacet 1297 | facet normal -1 0 0 1298 | outer loop 1299 | vertex 0 26.3772 34.5973 1300 | vertex 0 25.4 34.7 1301 | vertex 0 0 57.75 1302 | endloop 1303 | endfacet 1304 | facet normal -1 0 0 1305 | outer loop 1306 | vertex 0 25.4 34.7 1307 | vertex 0 24.4228 34.5973 1308 | vertex 0 0 57.75 1309 | endloop 1310 | endfacet 1311 | facet normal -1 0 0 1312 | outer loop 1313 | vertex 0 24.4228 34.5973 1314 | vertex 0 23.4883 34.2937 1315 | vertex 0 0 57.75 1316 | endloop 1317 | endfacet 1318 | facet normal -1 0 0 1319 | outer loop 1320 | vertex 0 21.3297 32.35 1321 | vertex 0 0 57.75 1322 | vertex 0 21.9072 33.1449 1323 | endloop 1324 | endfacet 1325 | facet normal -1 0 0 1326 | outer loop 1327 | vertex 0 20.93 31.4524 1328 | vertex 0 0 57.75 1329 | vertex 0 21.3297 32.35 1330 | endloop 1331 | endfacet 1332 | facet normal -1 0 0 1333 | outer loop 1334 | vertex 0 26.2732 7.59178 1335 | vertex 0 50.8 5 1336 | vertex 0 25.4 7.5 1337 | endloop 1338 | endfacet 1339 | facet normal -1 0 0 1340 | outer loop 1341 | vertex 0 0 57.75 1342 | vertex 0 20.93 31.4524 1343 | vertex 0 20.7257 30.4913 1344 | endloop 1345 | endfacet 1346 | facet normal -1 0 0 1347 | outer loop 1348 | vertex 0 0 57.75 1349 | vertex 0 20.7257 30.4913 1350 | vertex 0 20.7257 29.5087 1351 | endloop 1352 | endfacet 1353 | facet normal -1 0 0 1354 | outer loop 1355 | vertex 0 28.5212 14.5103 1356 | vertex 0 22.6374 26.1976 1357 | vertex 0 29.0373 13.8 1358 | endloop 1359 | endfacet 1360 | facet normal -1 0 0 1361 | outer loop 1362 | vertex 0 21.223 12.139 1363 | vertex 0 21.223 11.261 1364 | vertex 0 0 5 1365 | endloop 1366 | endfacet 1367 | facet normal -1 0 0 1368 | outer loop 1369 | vertex 0 29.3944 10.4021 1370 | vertex 0 50.8 5 1371 | vertex 0 29.0373 9.6 1372 | endloop 1373 | endfacet 1374 | facet normal -1 0 0 1375 | outer loop 1376 | vertex 0 21.223 11.261 1377 | vertex 0 21.4056 10.4021 1378 | vertex 0 0 5 1379 | endloop 1380 | endfacet 1381 | facet normal -1 0 0 1382 | outer loop 1383 | vertex 0 29.0373 9.6 1384 | vertex 0 50.8 5 1385 | vertex 0 28.5212 8.88965 1386 | endloop 1387 | endfacet 1388 | facet normal -1 0 0 1389 | outer loop 1390 | vertex 0 21.4056 10.4021 1391 | vertex 0 21.7627 9.6 1392 | vertex 0 0 5 1393 | endloop 1394 | endfacet 1395 | facet normal -1 0 0 1396 | outer loop 1397 | vertex 0 28.5212 8.88965 1398 | vertex 0 50.8 5 1399 | vertex 0 27.8687 8.30213 1400 | endloop 1401 | endfacet 1402 | facet normal -1 0 0 1403 | outer loop 1404 | vertex 0 21.7627 9.6 1405 | vertex 0 22.2788 8.88965 1406 | vertex 0 0 5 1407 | endloop 1408 | endfacet 1409 | facet normal -1 0 0 1410 | outer loop 1411 | vertex 0 27.8687 8.30213 1412 | vertex 0 50.8 5 1413 | vertex 0 27.1083 7.86311 1414 | endloop 1415 | endfacet 1416 | facet normal -1 0 0 1417 | outer loop 1418 | vertex 0 22.2788 8.88965 1419 | vertex 0 22.9313 8.30213 1420 | vertex 0 0 5 1421 | endloop 1422 | endfacet 1423 | facet normal -1 0 0 1424 | outer loop 1425 | vertex 0 27.1083 7.86311 1426 | vertex 0 50.8 5 1427 | vertex 0 26.2732 7.59178 1428 | endloop 1429 | endfacet 1430 | facet normal -1 0 0 1431 | outer loop 1432 | vertex 0 22.9313 8.30213 1433 | vertex 0 23.6917 7.86311 1434 | vertex 0 0 5 1435 | endloop 1436 | endfacet 1437 | facet normal -1 0 0 1438 | outer loop 1439 | vertex 0 23.6917 7.86311 1440 | vertex 0 24.5268 7.59178 1441 | vertex 0 0 5 1442 | endloop 1443 | endfacet 1444 | facet normal -1 0 0 1445 | outer loop 1446 | vertex 0 24.5268 7.59178 1447 | vertex 0 25.4 7.5 1448 | vertex 0 0 5 1449 | endloop 1450 | endfacet 1451 | facet normal -1 0 0 1452 | outer loop 1453 | vertex 0 29.577 11.261 1454 | vertex 0 50.8 5 1455 | vertex 0 29.3944 10.4021 1456 | endloop 1457 | endfacet 1458 | facet normal -1 0 0 1459 | outer loop 1460 | vertex 0 29.577 12.139 1461 | vertex 0 50.8 5 1462 | vertex 0 29.577 11.261 1463 | endloop 1464 | endfacet 1465 | facet normal -1 0 0 1466 | outer loop 1467 | vertex 0 29.3944 12.9979 1468 | vertex 0 50.8 5 1469 | vertex 0 29.577 12.139 1470 | endloop 1471 | endfacet 1472 | facet normal -1 0 0 1473 | outer loop 1474 | vertex 0 29.0373 13.8 1475 | vertex 0 50.8 5 1476 | vertex 0 29.3944 12.9979 1477 | endloop 1478 | endfacet 1479 | facet normal -1 0 0 1480 | outer loop 1481 | vertex 0 22.6374 26.1976 1482 | vertex 0 50.8 5 1483 | vertex 0 29.0373 13.8 1484 | endloop 1485 | endfacet 1486 | facet normal -1 0 0 1487 | outer loop 1488 | vertex 0 27.8687 15.0979 1489 | vertex 0 22.6374 26.1976 1490 | vertex 0 28.5212 14.5103 1491 | endloop 1492 | endfacet 1493 | facet normal -1 0 0 1494 | outer loop 1495 | vertex 0 27.1083 15.5369 1496 | vertex 0 22.6374 26.1976 1497 | vertex 0 27.8687 15.0979 1498 | endloop 1499 | endfacet 1500 | facet normal -1 0 0 1501 | outer loop 1502 | vertex 0 21.223 12.139 1503 | vertex 0 22.6374 26.1976 1504 | vertex 0 21.4056 12.9979 1505 | endloop 1506 | endfacet 1507 | facet normal -1 0 0 1508 | outer loop 1509 | vertex 0 22.6374 26.1976 1510 | vertex 0 27.1083 15.5369 1511 | vertex 0 26.2732 15.8082 1512 | endloop 1513 | endfacet 1514 | facet normal -1 0 0 1515 | outer loop 1516 | vertex 0 22.6374 26.1976 1517 | vertex 0 26.2732 15.8082 1518 | vertex 0 25.4 15.9 1519 | endloop 1520 | endfacet 1521 | facet normal -1 0 0 1522 | outer loop 1523 | vertex 0 22.6374 26.1976 1524 | vertex 0 25.4 15.9 1525 | vertex 0 24.5268 15.8082 1526 | endloop 1527 | endfacet 1528 | facet normal -1 0 0 1529 | outer loop 1530 | vertex 0 22.6374 26.1976 1531 | vertex 0 24.5268 15.8082 1532 | vertex 0 23.6917 15.5369 1533 | endloop 1534 | endfacet 1535 | facet normal -1 0 0 1536 | outer loop 1537 | vertex 0 22.6374 26.1976 1538 | vertex 0 23.6917 15.5369 1539 | vertex 0 22.9313 15.0979 1540 | endloop 1541 | endfacet 1542 | facet normal -1 0 0 1543 | outer loop 1544 | vertex 0 22.6374 26.1976 1545 | vertex 0 22.9313 15.0979 1546 | vertex 0 22.2788 14.5103 1547 | endloop 1548 | endfacet 1549 | facet normal -1 0 0 1550 | outer loop 1551 | vertex 0 22.6374 26.1976 1552 | vertex 0 22.2788 14.5103 1553 | vertex 0 21.7627 13.8 1554 | endloop 1555 | endfacet 1556 | facet normal -1 0 0 1557 | outer loop 1558 | vertex 0 22.6374 26.1976 1559 | vertex 0 21.7627 13.8 1560 | vertex 0 21.4056 12.9979 1561 | endloop 1562 | endfacet 1563 | facet normal -1 0 0 1564 | outer loop 1565 | vertex 0 22.6374 26.1976 1566 | vertex 0 21.223 12.139 1567 | vertex 0 0 5 1568 | endloop 1569 | endfacet 1570 | facet normal -1 0 0 1571 | outer loop 1572 | vertex 0 23.4883 25.7063 1573 | vertex 0 50.8 5 1574 | vertex 0 22.6374 26.1976 1575 | endloop 1576 | endfacet 1577 | facet normal 0 0 1 1578 | outer loop 1579 | vertex 0 20.2285 57.75 1580 | vertex 0 0 57.75 1581 | vertex 10 0 57.75 1582 | endloop 1583 | endfacet 1584 | facet normal 0 0 1 1585 | outer loop 1586 | vertex 10 20.2285 57.75 1587 | vertex 0 20.2285 57.75 1588 | vertex 10 0 57.75 1589 | endloop 1590 | endfacet 1591 | facet normal 1 0 0 1592 | outer loop 1593 | vertex 10 26.2732 7.59178 1594 | vertex 10 0 0 1595 | vertex 10 50.8 0 1596 | endloop 1597 | endfacet 1598 | facet normal 1 0 0 1599 | outer loop 1600 | vertex 10 50.8 57.75 1601 | vertex 10 30.5715 57.75 1602 | vertex 10 50.8 0 1603 | endloop 1604 | endfacet 1605 | facet normal 1 0 0 1606 | outer loop 1607 | vertex 10 30.5715 57.75 1608 | vertex 10 30.5715 57.2065 1609 | vertex 10 50.8 0 1610 | endloop 1611 | endfacet 1612 | facet normal 1 0 0 1613 | outer loop 1614 | vertex 10 27.3117 25.7063 1615 | vertex 10 26.3772 25.4027 1616 | vertex 10 50.8 0 1617 | endloop 1618 | endfacet 1619 | facet normal 1 0 0 1620 | outer loop 1621 | vertex 10 30.5715 57.2065 1622 | vertex 10 30.3455 56.1431 1623 | vertex 10 50.8 0 1624 | endloop 1625 | endfacet 1626 | facet normal 1 0 0 1627 | outer loop 1628 | vertex 10 30.3455 56.1431 1629 | vertex 10 29.9033 55.15 1630 | vertex 10 50.8 0 1631 | endloop 1632 | endfacet 1633 | facet normal 1 0 0 1634 | outer loop 1635 | vertex 10 29.9033 55.15 1636 | vertex 10 29.2644 54.2705 1637 | vertex 10 50.8 0 1638 | endloop 1639 | endfacet 1640 | facet normal 1 0 0 1641 | outer loop 1642 | vertex 10 20.4545 56.1431 1643 | vertex 10 20.2285 57.2065 1644 | vertex 10 0 57.75 1645 | endloop 1646 | endfacet 1647 | facet normal 1 0 0 1648 | outer loop 1649 | vertex 10 29.2644 54.2705 1650 | vertex 10 28.4565 53.5431 1651 | vertex 10 50.8 0 1652 | endloop 1653 | endfacet 1654 | facet normal 1 0 0 1655 | outer loop 1656 | vertex 10 28.4565 53.5431 1657 | vertex 10 27.515 52.9996 1658 | vertex 10 50.8 0 1659 | endloop 1660 | endfacet 1661 | facet normal 1 0 0 1662 | outer loop 1663 | vertex 10 27.515 52.9996 1664 | vertex 10 26.4811 52.6636 1665 | vertex 10 50.8 0 1666 | endloop 1667 | endfacet 1668 | facet normal 1 0 0 1669 | outer loop 1670 | vertex 10 26.4811 52.6636 1671 | vertex 10 25.4 52.55 1672 | vertex 10 50.8 0 1673 | endloop 1674 | endfacet 1675 | facet normal 1 0 0 1676 | outer loop 1677 | vertex 10 25.4 52.55 1678 | vertex 10 24.3189 52.6636 1679 | vertex 10 50.8 0 1680 | endloop 1681 | endfacet 1682 | facet normal 1 0 0 1683 | outer loop 1684 | vertex 10 23.285 52.9996 1685 | vertex 10 22.3435 53.5431 1686 | vertex 10 0 57.75 1687 | endloop 1688 | endfacet 1689 | facet normal 1 0 0 1690 | outer loop 1691 | vertex 10 22.3435 53.5431 1692 | vertex 10 21.5356 54.2705 1693 | vertex 10 0 57.75 1694 | endloop 1695 | endfacet 1696 | facet normal 1 0 0 1697 | outer loop 1698 | vertex 10 21.5356 54.2705 1699 | vertex 10 20.8967 55.15 1700 | vertex 10 0 57.75 1701 | endloop 1702 | endfacet 1703 | facet normal 1 0 0 1704 | outer loop 1705 | vertex 10 30.0743 29.5087 1706 | vertex 10 29.87 28.5476 1707 | vertex 10 50.8 0 1708 | endloop 1709 | endfacet 1710 | facet normal 1 0 0 1711 | outer loop 1712 | vertex 10 20.2285 57.2065 1713 | vertex 10 20.2285 57.75 1714 | vertex 10 0 57.75 1715 | endloop 1716 | endfacet 1717 | facet normal 1 0 0 1718 | outer loop 1719 | vertex 10 21.3297 32.35 1720 | vertex 10 21.9072 33.1449 1721 | vertex 10 0 57.75 1722 | endloop 1723 | endfacet 1724 | facet normal 1 0 0 1725 | outer loop 1726 | vertex 10 21.4056 12.9979 1727 | vertex 10 21.7627 13.8 1728 | vertex 10 24.4228 25.4027 1729 | endloop 1730 | endfacet 1731 | facet normal 1 0 0 1732 | outer loop 1733 | vertex 10 0 57.75 1734 | vertex 10 0 0 1735 | vertex 10 20.7257 29.5087 1736 | endloop 1737 | endfacet 1738 | facet normal 1 0 0 1739 | outer loop 1740 | vertex 10 25.4 25.3 1741 | vertex 10 24.4228 25.4027 1742 | vertex 10 50.8 0 1743 | endloop 1744 | endfacet 1745 | facet normal 1 0 0 1746 | outer loop 1747 | vertex 10 0 57.75 1748 | vertex 10 20.7257 29.5087 1749 | vertex 10 20.7257 30.4913 1750 | endloop 1751 | endfacet 1752 | facet normal 1 0 0 1753 | outer loop 1754 | vertex 10 26.3772 25.4027 1755 | vertex 10 25.4 25.3 1756 | vertex 10 50.8 0 1757 | endloop 1758 | endfacet 1759 | facet normal 1 0 0 1760 | outer loop 1761 | vertex 10 0 57.75 1762 | vertex 10 20.7257 30.4913 1763 | vertex 10 20.93 31.4524 1764 | endloop 1765 | endfacet 1766 | facet normal 1 0 0 1767 | outer loop 1768 | vertex 10 29.4703 32.35 1769 | vertex 10 29.87 31.4524 1770 | vertex 10 50.8 0 1771 | endloop 1772 | endfacet 1773 | facet normal 1 0 0 1774 | outer loop 1775 | vertex 10 0 57.75 1776 | vertex 10 20.93 31.4524 1777 | vertex 10 21.3297 32.35 1778 | endloop 1779 | endfacet 1780 | facet normal 1 0 0 1781 | outer loop 1782 | vertex 10 29.3944 12.9979 1783 | vertex 10 29.577 12.139 1784 | vertex 10 50.8 0 1785 | endloop 1786 | endfacet 1787 | facet normal 1 0 0 1788 | outer loop 1789 | vertex 10 24.3189 52.6636 1790 | vertex 10 0 57.75 1791 | vertex 10 21.9072 33.1449 1792 | endloop 1793 | endfacet 1794 | facet normal 1 0 0 1795 | outer loop 1796 | vertex 10 24.3189 52.6636 1797 | vertex 10 21.9072 33.1449 1798 | vertex 10 22.6374 33.8024 1799 | endloop 1800 | endfacet 1801 | facet normal 1 0 0 1802 | outer loop 1803 | vertex 10 28.8928 26.8551 1804 | vertex 10 28.1626 26.1976 1805 | vertex 10 50.8 0 1806 | endloop 1807 | endfacet 1808 | facet normal 1 0 0 1809 | outer loop 1810 | vertex 10 24.3189 52.6636 1811 | vertex 10 22.6374 33.8024 1812 | vertex 10 23.4883 34.2937 1813 | endloop 1814 | endfacet 1815 | facet normal 1 0 0 1816 | outer loop 1817 | vertex 10 29.4703 27.65 1818 | vertex 10 28.8928 26.8551 1819 | vertex 10 50.8 0 1820 | endloop 1821 | endfacet 1822 | facet normal 1 0 0 1823 | outer loop 1824 | vertex 10 24.3189 52.6636 1825 | vertex 10 23.4883 34.2937 1826 | vertex 10 24.4228 34.5973 1827 | endloop 1828 | endfacet 1829 | facet normal 1 0 0 1830 | outer loop 1831 | vertex 10 29.87 28.5476 1832 | vertex 10 29.4703 27.65 1833 | vertex 10 50.8 0 1834 | endloop 1835 | endfacet 1836 | facet normal 1 0 0 1837 | outer loop 1838 | vertex 10 24.3189 52.6636 1839 | vertex 10 24.4228 34.5973 1840 | vertex 10 25.4 34.7 1841 | endloop 1842 | endfacet 1843 | facet normal 1 0 0 1844 | outer loop 1845 | vertex 10 28.1626 26.1976 1846 | vertex 10 27.3117 25.7063 1847 | vertex 10 50.8 0 1848 | endloop 1849 | endfacet 1850 | facet normal 1 0 0 1851 | outer loop 1852 | vertex 10 24.3189 52.6636 1853 | vertex 10 25.4 34.7 1854 | vertex 10 26.3772 34.5973 1855 | endloop 1856 | endfacet 1857 | facet normal 1 0 0 1858 | outer loop 1859 | vertex 10 24.3189 52.6636 1860 | vertex 10 26.3772 34.5973 1861 | vertex 10 27.3117 34.2937 1862 | endloop 1863 | endfacet 1864 | facet normal 1 0 0 1865 | outer loop 1866 | vertex 10 30.0743 30.4913 1867 | vertex 10 30.0743 29.5087 1868 | vertex 10 50.8 0 1869 | endloop 1870 | endfacet 1871 | facet normal 1 0 0 1872 | outer loop 1873 | vertex 10 24.3189 52.6636 1874 | vertex 10 27.3117 34.2937 1875 | vertex 10 28.1626 33.8024 1876 | endloop 1877 | endfacet 1878 | facet normal 1 0 0 1879 | outer loop 1880 | vertex 10 29.87 31.4524 1881 | vertex 10 30.0743 30.4913 1882 | vertex 10 50.8 0 1883 | endloop 1884 | endfacet 1885 | facet normal 1 0 0 1886 | outer loop 1887 | vertex 10 24.3189 52.6636 1888 | vertex 10 28.1626 33.8024 1889 | vertex 10 28.8928 33.1449 1890 | endloop 1891 | endfacet 1892 | facet normal 1 0 0 1893 | outer loop 1894 | vertex 10 24.3189 52.6636 1895 | vertex 10 29.4703 32.35 1896 | vertex 10 50.8 0 1897 | endloop 1898 | endfacet 1899 | facet normal 1 0 0 1900 | outer loop 1901 | vertex 10 24.3189 52.6636 1902 | vertex 10 28.8928 33.1449 1903 | vertex 10 29.4703 32.35 1904 | endloop 1905 | endfacet 1906 | facet normal 1 0 0 1907 | outer loop 1908 | vertex 10 23.4883 25.7063 1909 | vertex 10 0 0 1910 | vertex 10 24.4228 25.4027 1911 | endloop 1912 | endfacet 1913 | facet normal 1 0 0 1914 | outer loop 1915 | vertex 10 22.6374 26.1976 1916 | vertex 10 0 0 1917 | vertex 10 23.4883 25.7063 1918 | endloop 1919 | endfacet 1920 | facet normal 1 0 0 1921 | outer loop 1922 | vertex 10 21.9072 26.8551 1923 | vertex 10 0 0 1924 | vertex 10 22.6374 26.1976 1925 | endloop 1926 | endfacet 1927 | facet normal 1 0 0 1928 | outer loop 1929 | vertex 10 21.3297 27.65 1930 | vertex 10 0 0 1931 | vertex 10 21.9072 26.8551 1932 | endloop 1933 | endfacet 1934 | facet normal 1 0 0 1935 | outer loop 1936 | vertex 10 20.93 28.5476 1937 | vertex 10 0 0 1938 | vertex 10 21.3297 27.65 1939 | endloop 1940 | endfacet 1941 | facet normal 1 0 0 1942 | outer loop 1943 | vertex 10 20.7257 29.5087 1944 | vertex 10 0 0 1945 | vertex 10 20.93 28.5476 1946 | endloop 1947 | endfacet 1948 | facet normal 1 0 0 1949 | outer loop 1950 | vertex 10 26.2732 7.59178 1951 | vertex 10 25.4 7.5 1952 | vertex 10 0 0 1953 | endloop 1954 | endfacet 1955 | facet normal 1 0 0 1956 | outer loop 1957 | vertex 10 21.223 12.139 1958 | vertex 10 0 0 1959 | vertex 10 21.223 11.261 1960 | endloop 1961 | endfacet 1962 | facet normal 1 0 0 1963 | outer loop 1964 | vertex 10 21.4056 12.9979 1965 | vertex 10 0 0 1966 | vertex 10 21.223 12.139 1967 | endloop 1968 | endfacet 1969 | facet normal 1 0 0 1970 | outer loop 1971 | vertex 10 21.7627 13.8 1972 | vertex 10 22.2788 14.5103 1973 | vertex 10 24.4228 25.4027 1974 | endloop 1975 | endfacet 1976 | facet normal 1 0 0 1977 | outer loop 1978 | vertex 10 24.4228 25.4027 1979 | vertex 10 0 0 1980 | vertex 10 21.4056 12.9979 1981 | endloop 1982 | endfacet 1983 | facet normal 1 0 0 1984 | outer loop 1985 | vertex 10 27.8687 15.0979 1986 | vertex 10 28.5212 14.5103 1987 | vertex 10 50.8 0 1988 | endloop 1989 | endfacet 1990 | facet normal 1 0 0 1991 | outer loop 1992 | vertex 10 28.5212 8.88965 1993 | vertex 10 27.8687 8.30213 1994 | vertex 10 50.8 0 1995 | endloop 1996 | endfacet 1997 | facet normal 1 0 0 1998 | outer loop 1999 | vertex 10 29.577 11.261 2000 | vertex 10 29.3944 10.4021 2001 | vertex 10 50.8 0 2002 | endloop 2003 | endfacet 2004 | facet normal 1 0 0 2005 | outer loop 2006 | vertex 10 24.4228 25.4027 2007 | vertex 10 22.2788 14.5103 2008 | vertex 10 22.9313 15.0979 2009 | endloop 2010 | endfacet 2011 | facet normal 1 0 0 2012 | outer loop 2013 | vertex 10 29.577 12.139 2014 | vertex 10 29.577 11.261 2015 | vertex 10 50.8 0 2016 | endloop 2017 | endfacet 2018 | facet normal 1 0 0 2019 | outer loop 2020 | vertex 10 24.4228 25.4027 2021 | vertex 10 22.9313 15.0979 2022 | vertex 10 23.6917 15.5369 2023 | endloop 2024 | endfacet 2025 | facet normal 1 0 0 2026 | outer loop 2027 | vertex 10 24.4228 25.4027 2028 | vertex 10 23.6917 15.5369 2029 | vertex 10 24.5268 15.8082 2030 | endloop 2031 | endfacet 2032 | facet normal 1 0 0 2033 | outer loop 2034 | vertex 10 24.4228 25.4027 2035 | vertex 10 24.5268 15.8082 2036 | vertex 10 25.4 15.9 2037 | endloop 2038 | endfacet 2039 | facet normal 1 0 0 2040 | outer loop 2041 | vertex 10 29.0373 13.8 2042 | vertex 10 29.3944 12.9979 2043 | vertex 10 50.8 0 2044 | endloop 2045 | endfacet 2046 | facet normal 1 0 0 2047 | outer loop 2048 | vertex 10 24.4228 25.4027 2049 | vertex 10 25.4 15.9 2050 | vertex 10 26.2732 15.8082 2051 | endloop 2052 | endfacet 2053 | facet normal 1 0 0 2054 | outer loop 2055 | vertex 10 28.5212 14.5103 2056 | vertex 10 29.0373 13.8 2057 | vertex 10 50.8 0 2058 | endloop 2059 | endfacet 2060 | facet normal 1 0 0 2061 | outer loop 2062 | vertex 10 24.4228 25.4027 2063 | vertex 10 26.2732 15.8082 2064 | vertex 10 27.1083 15.5369 2065 | endloop 2066 | endfacet 2067 | facet normal 1 0 0 2068 | outer loop 2069 | vertex 10 24.4228 25.4027 2070 | vertex 10 27.8687 15.0979 2071 | vertex 10 50.8 0 2072 | endloop 2073 | endfacet 2074 | facet normal 1 0 0 2075 | outer loop 2076 | vertex 10 24.4228 25.4027 2077 | vertex 10 27.1083 15.5369 2078 | vertex 10 27.8687 15.0979 2079 | endloop 2080 | endfacet 2081 | facet normal 1 0 0 2082 | outer loop 2083 | vertex 10 29.3944 10.4021 2084 | vertex 10 29.0373 9.6 2085 | vertex 10 50.8 0 2086 | endloop 2087 | endfacet 2088 | facet normal 1 0 0 2089 | outer loop 2090 | vertex 10 29.0373 9.6 2091 | vertex 10 28.5212 8.88965 2092 | vertex 10 50.8 0 2093 | endloop 2094 | endfacet 2095 | facet normal 1 0 0 2096 | outer loop 2097 | vertex 10 27.8687 8.30213 2098 | vertex 10 27.1083 7.86311 2099 | vertex 10 50.8 0 2100 | endloop 2101 | endfacet 2102 | facet normal 1 0 0 2103 | outer loop 2104 | vertex 10 27.1083 7.86311 2105 | vertex 10 26.2732 7.59178 2106 | vertex 10 50.8 0 2107 | endloop 2108 | endfacet 2109 | facet normal 1 0 0 2110 | outer loop 2111 | vertex 10 25.4 7.5 2112 | vertex 10 24.5268 7.59178 2113 | vertex 10 0 0 2114 | endloop 2115 | endfacet 2116 | facet normal 1 0 0 2117 | outer loop 2118 | vertex 10 23.6917 7.86311 2119 | vertex 10 0 0 2120 | vertex 10 24.5268 7.59178 2121 | endloop 2122 | endfacet 2123 | facet normal 1 0 0 2124 | outer loop 2125 | vertex 10 22.9313 8.30213 2126 | vertex 10 0 0 2127 | vertex 10 23.6917 7.86311 2128 | endloop 2129 | endfacet 2130 | facet normal 1 0 0 2131 | outer loop 2132 | vertex 10 22.2788 8.88965 2133 | vertex 10 0 0 2134 | vertex 10 22.9313 8.30213 2135 | endloop 2136 | endfacet 2137 | facet normal 1 0 0 2138 | outer loop 2139 | vertex 10 21.7627 9.6 2140 | vertex 10 0 0 2141 | vertex 10 22.2788 8.88965 2142 | endloop 2143 | endfacet 2144 | facet normal 1 0 0 2145 | outer loop 2146 | vertex 10 21.4056 10.4021 2147 | vertex 10 0 0 2148 | vertex 10 21.7627 9.6 2149 | endloop 2150 | endfacet 2151 | facet normal 1 0 0 2152 | outer loop 2153 | vertex 10 21.223 11.261 2154 | vertex 10 0 0 2155 | vertex 10 21.4056 10.4021 2156 | endloop 2157 | endfacet 2158 | facet normal 1 0 0 2159 | outer loop 2160 | vertex 10 24.3189 52.6636 2161 | vertex 10 23.285 52.9996 2162 | vertex 10 0 57.75 2163 | endloop 2164 | endfacet 2165 | facet normal 1 0 0 2166 | outer loop 2167 | vertex 10 20.8967 55.15 2168 | vertex 10 20.4545 56.1431 2169 | vertex 10 0 57.75 2170 | endloop 2171 | endfacet 2172 | facet normal 0.994522 -0.104528 0 2173 | outer loop 2174 | vertex -15.9235 13.4277 0 2175 | vertex -15.9235 13.4277 5 2176 | vertex -16 12.7 5 2177 | endloop 2178 | endfacet 2179 | facet normal 0.994522 -0.104528 0 2180 | outer loop 2181 | vertex -16 12.7 0 2182 | vertex -15.9235 13.4277 0 2183 | vertex -16 12.7 5 2184 | endloop 2185 | endfacet 2186 | facet normal 0.994522 0.104528 0 2187 | outer loop 2188 | vertex -16 12.7 5 2189 | vertex -15.9235 11.9723 5 2190 | vertex -15.9235 11.9723 0 2191 | endloop 2192 | endfacet 2193 | facet normal 0.994522 0.104528 0 2194 | outer loop 2195 | vertex -16 12.7 0 2196 | vertex -16 12.7 5 2197 | vertex -15.9235 11.9723 0 2198 | endloop 2199 | endfacet 2200 | facet normal 0.951056 -0.309018 0 2201 | outer loop 2202 | vertex -15.6974 14.1236 0 2203 | vertex -15.6974 14.1236 5 2204 | vertex -15.9235 13.4277 5 2205 | endloop 2206 | endfacet 2207 | facet normal 0.951056 -0.309018 0 2208 | outer loop 2209 | vertex -15.9235 13.4277 0 2210 | vertex -15.6974 14.1236 0 2211 | vertex -15.9235 13.4277 5 2212 | endloop 2213 | endfacet 2214 | facet normal 0.866025 -0.5 0 2215 | outer loop 2216 | vertex -15.3316 14.7572 0 2217 | vertex -15.3316 14.7572 5 2218 | vertex -15.6974 14.1236 5 2219 | endloop 2220 | endfacet 2221 | facet normal 0.866025 -0.5 0 2222 | outer loop 2223 | vertex -15.6974 14.1236 0 2224 | vertex -15.3316 14.7572 0 2225 | vertex -15.6974 14.1236 5 2226 | endloop 2227 | endfacet 2228 | facet normal 0.743145 -0.66913 0 2229 | outer loop 2230 | vertex -14.842 15.301 0 2231 | vertex -14.842 15.301 5 2232 | vertex -15.3316 14.7572 5 2233 | endloop 2234 | endfacet 2235 | facet normal 0.743145 -0.66913 0 2236 | outer loop 2237 | vertex -15.3316 14.7572 0 2238 | vertex -14.842 15.301 0 2239 | vertex -15.3316 14.7572 5 2240 | endloop 2241 | endfacet 2242 | facet normal 0.587785 -0.809017 0 2243 | outer loop 2244 | vertex -14.25 15.7311 0 2245 | vertex -14.25 15.7311 5 2246 | vertex -14.842 15.301 5 2247 | endloop 2248 | endfacet 2249 | facet normal 0.587785 -0.809017 0 2250 | outer loop 2251 | vertex -14.842 15.301 0 2252 | vertex -14.25 15.7311 0 2253 | vertex -14.842 15.301 5 2254 | endloop 2255 | endfacet 2256 | facet normal 0.406737 -0.913546 0 2257 | outer loop 2258 | vertex -13.5816 16.0287 0 2259 | vertex -13.5816 16.0287 5 2260 | vertex -14.25 15.7311 5 2261 | endloop 2262 | endfacet 2263 | facet normal 0.406737 -0.913546 0 2264 | outer loop 2265 | vertex -14.25 15.7311 0 2266 | vertex -13.5816 16.0287 0 2267 | vertex -14.25 15.7311 5 2268 | endloop 2269 | endfacet 2270 | facet normal 0.207912 -0.978148 0 2271 | outer loop 2272 | vertex -12.8659 16.1808 0 2273 | vertex -12.8659 16.1808 5 2274 | vertex -13.5816 16.0287 5 2275 | endloop 2276 | endfacet 2277 | facet normal 0.207912 -0.978148 0 2278 | outer loop 2279 | vertex -13.5816 16.0287 0 2280 | vertex -12.8659 16.1808 0 2281 | vertex -13.5816 16.0287 5 2282 | endloop 2283 | endfacet 2284 | facet normal 0 -1 0 2285 | outer loop 2286 | vertex -12.1341 16.1808 0 2287 | vertex -12.1341 16.1808 5 2288 | vertex -12.8659 16.1808 5 2289 | endloop 2290 | endfacet 2291 | facet normal 0 -1 0 2292 | outer loop 2293 | vertex -12.8659 16.1808 0 2294 | vertex -12.1341 16.1808 0 2295 | vertex -12.8659 16.1808 5 2296 | endloop 2297 | endfacet 2298 | facet normal -0.207912 -0.978148 0 2299 | outer loop 2300 | vertex -11.4184 16.0287 0 2301 | vertex -11.4184 16.0287 5 2302 | vertex -12.1341 16.1808 5 2303 | endloop 2304 | endfacet 2305 | facet normal -0.207912 -0.978148 0 2306 | outer loop 2307 | vertex -12.1341 16.1808 0 2308 | vertex -11.4184 16.0287 0 2309 | vertex -12.1341 16.1808 5 2310 | endloop 2311 | endfacet 2312 | facet normal -0.406737 -0.913546 0 2313 | outer loop 2314 | vertex -10.75 15.7311 0 2315 | vertex -10.75 15.7311 5 2316 | vertex -11.4184 16.0287 5 2317 | endloop 2318 | endfacet 2319 | facet normal -0.406737 -0.913546 0 2320 | outer loop 2321 | vertex -11.4184 16.0287 0 2322 | vertex -10.75 15.7311 0 2323 | vertex -11.4184 16.0287 5 2324 | endloop 2325 | endfacet 2326 | facet normal -0.587785 -0.809017 0 2327 | outer loop 2328 | vertex -10.158 15.301 0 2329 | vertex -10.158 15.301 5 2330 | vertex -10.75 15.7311 5 2331 | endloop 2332 | endfacet 2333 | facet normal -0.587785 -0.809017 0 2334 | outer loop 2335 | vertex -10.75 15.7311 0 2336 | vertex -10.158 15.301 0 2337 | vertex -10.75 15.7311 5 2338 | endloop 2339 | endfacet 2340 | facet normal -0.743145 -0.66913 0 2341 | outer loop 2342 | vertex -9.66844 14.7572 5 2343 | vertex -10.158 15.301 5 2344 | vertex -9.66844 14.7572 0 2345 | endloop 2346 | endfacet 2347 | facet normal -0.743145 -0.66913 0 2348 | outer loop 2349 | vertex -9.66844 14.7572 0 2350 | vertex -10.158 15.301 5 2351 | vertex -10.158 15.301 0 2352 | endloop 2353 | endfacet 2354 | facet normal -0.866025 -0.5 0 2355 | outer loop 2356 | vertex -9.30259 14.1236 5 2357 | vertex -9.66844 14.7572 5 2358 | vertex -9.30259 14.1236 0 2359 | endloop 2360 | endfacet 2361 | facet normal -0.866025 -0.5 0 2362 | outer loop 2363 | vertex -9.30259 14.1236 0 2364 | vertex -9.66844 14.7572 5 2365 | vertex -9.66844 14.7572 0 2366 | endloop 2367 | endfacet 2368 | facet normal -0.951056 -0.309018 0 2369 | outer loop 2370 | vertex -9.07648 13.4277 5 2371 | vertex -9.30259 14.1236 5 2372 | vertex -9.07648 13.4277 0 2373 | endloop 2374 | endfacet 2375 | facet normal -0.951056 -0.309018 0 2376 | outer loop 2377 | vertex -9.07648 13.4277 0 2378 | vertex -9.30259 14.1236 5 2379 | vertex -9.30259 14.1236 0 2380 | endloop 2381 | endfacet 2382 | facet normal -0.994522 -0.104528 0 2383 | outer loop 2384 | vertex -9 12.7 5 2385 | vertex -9.07648 13.4277 5 2386 | vertex -9 12.7 0 2387 | endloop 2388 | endfacet 2389 | facet normal -0.994522 -0.104528 0 2390 | outer loop 2391 | vertex -9 12.7 0 2392 | vertex -9.07648 13.4277 5 2393 | vertex -9.07648 13.4277 0 2394 | endloop 2395 | endfacet 2396 | facet normal -0.994522 0.104528 0 2397 | outer loop 2398 | vertex -9 12.7 5 2399 | vertex -9 12.7 0 2400 | vertex -9.07648 11.9723 5 2401 | endloop 2402 | endfacet 2403 | facet normal -0.994522 0.104528 0 2404 | outer loop 2405 | vertex -9.07648 11.9723 5 2406 | vertex -9 12.7 0 2407 | vertex -9.07648 11.9723 0 2408 | endloop 2409 | endfacet 2410 | facet normal -0.951056 0.309018 0 2411 | outer loop 2412 | vertex -9.07648 11.9723 5 2413 | vertex -9.07648 11.9723 0 2414 | vertex -9.30259 11.2764 5 2415 | endloop 2416 | endfacet 2417 | facet normal -0.951056 0.309018 0 2418 | outer loop 2419 | vertex -9.30259 11.2764 5 2420 | vertex -9.07648 11.9723 0 2421 | vertex -9.30259 11.2764 0 2422 | endloop 2423 | endfacet 2424 | facet normal -0.866025 0.5 0 2425 | outer loop 2426 | vertex -9.30259 11.2764 5 2427 | vertex -9.30259 11.2764 0 2428 | vertex -9.66844 10.6428 5 2429 | endloop 2430 | endfacet 2431 | facet normal -0.866025 0.5 0 2432 | outer loop 2433 | vertex -9.66844 10.6428 5 2434 | vertex -9.30259 11.2764 0 2435 | vertex -9.66844 10.6428 0 2436 | endloop 2437 | endfacet 2438 | facet normal -0.743145 0.66913 0 2439 | outer loop 2440 | vertex -9.66844 10.6428 5 2441 | vertex -9.66844 10.6428 0 2442 | vertex -10.158 10.099 5 2443 | endloop 2444 | endfacet 2445 | facet normal -0.743145 0.66913 0 2446 | outer loop 2447 | vertex -10.158 10.099 5 2448 | vertex -9.66844 10.6428 0 2449 | vertex -10.158 10.099 0 2450 | endloop 2451 | endfacet 2452 | facet normal -0.587785 0.809017 0 2453 | outer loop 2454 | vertex -10.158 10.099 5 2455 | vertex -10.158 10.099 0 2456 | vertex -10.75 9.66891 5 2457 | endloop 2458 | endfacet 2459 | facet normal -0.587785 0.809017 0 2460 | outer loop 2461 | vertex -10.75 9.66891 5 2462 | vertex -10.158 10.099 0 2463 | vertex -10.75 9.66891 0 2464 | endloop 2465 | endfacet 2466 | facet normal -0.406737 0.913546 0 2467 | outer loop 2468 | vertex -10.75 9.66891 5 2469 | vertex -10.75 9.66891 0 2470 | vertex -11.4184 9.3713 5 2471 | endloop 2472 | endfacet 2473 | facet normal -0.406737 0.913546 0 2474 | outer loop 2475 | vertex -11.4184 9.3713 5 2476 | vertex -10.75 9.66891 0 2477 | vertex -11.4184 9.3713 0 2478 | endloop 2479 | endfacet 2480 | facet normal -0.207912 0.978148 0 2481 | outer loop 2482 | vertex -11.4184 9.3713 5 2483 | vertex -11.4184 9.3713 0 2484 | vertex -12.1341 9.21917 5 2485 | endloop 2486 | endfacet 2487 | facet normal -0.207912 0.978148 0 2488 | outer loop 2489 | vertex -12.1341 9.21917 5 2490 | vertex -11.4184 9.3713 0 2491 | vertex -12.1341 9.21917 0 2492 | endloop 2493 | endfacet 2494 | facet normal 0 1 0 2495 | outer loop 2496 | vertex -12.1341 9.21917 5 2497 | vertex -12.1341 9.21917 0 2498 | vertex -12.8659 9.21917 5 2499 | endloop 2500 | endfacet 2501 | facet normal 0 1 0 2502 | outer loop 2503 | vertex -12.8659 9.21917 5 2504 | vertex -12.1341 9.21917 0 2505 | vertex -12.8659 9.21917 0 2506 | endloop 2507 | endfacet 2508 | facet normal 0.207912 0.978148 0 2509 | outer loop 2510 | vertex -12.8659 9.21917 5 2511 | vertex -12.8659 9.21917 0 2512 | vertex -13.5816 9.3713 5 2513 | endloop 2514 | endfacet 2515 | facet normal 0.207912 0.978148 0 2516 | outer loop 2517 | vertex -13.5816 9.3713 5 2518 | vertex -12.8659 9.21917 0 2519 | vertex -13.5816 9.3713 0 2520 | endloop 2521 | endfacet 2522 | facet normal 0.406737 0.913546 0 2523 | outer loop 2524 | vertex -13.5816 9.3713 5 2525 | vertex -13.5816 9.3713 0 2526 | vertex -14.25 9.66891 5 2527 | endloop 2528 | endfacet 2529 | facet normal 0.406737 0.913546 0 2530 | outer loop 2531 | vertex -14.25 9.66891 5 2532 | vertex -13.5816 9.3713 0 2533 | vertex -14.25 9.66891 0 2534 | endloop 2535 | endfacet 2536 | facet normal 0.587785 0.809017 0 2537 | outer loop 2538 | vertex -14.25 9.66891 5 2539 | vertex -14.25 9.66891 0 2540 | vertex -14.842 10.099 5 2541 | endloop 2542 | endfacet 2543 | facet normal 0.587785 0.809017 0 2544 | outer loop 2545 | vertex -14.842 10.099 5 2546 | vertex -14.25 9.66891 0 2547 | vertex -14.842 10.099 0 2548 | endloop 2549 | endfacet 2550 | facet normal 0.743145 0.66913 0 2551 | outer loop 2552 | vertex -15.3316 10.6428 5 2553 | vertex -14.842 10.099 5 2554 | vertex -14.842 10.099 0 2555 | endloop 2556 | endfacet 2557 | facet normal 0.743145 0.66913 0 2558 | outer loop 2559 | vertex -15.3316 10.6428 0 2560 | vertex -15.3316 10.6428 5 2561 | vertex -14.842 10.099 0 2562 | endloop 2563 | endfacet 2564 | facet normal 0.866025 0.5 0 2565 | outer loop 2566 | vertex -15.6974 11.2764 5 2567 | vertex -15.3316 10.6428 5 2568 | vertex -15.3316 10.6428 0 2569 | endloop 2570 | endfacet 2571 | facet normal 0.866025 0.5 0 2572 | outer loop 2573 | vertex -15.6974 11.2764 0 2574 | vertex -15.6974 11.2764 5 2575 | vertex -15.3316 10.6428 0 2576 | endloop 2577 | endfacet 2578 | facet normal 0.951056 0.309018 0 2579 | outer loop 2580 | vertex -15.9235 11.9723 5 2581 | vertex -15.6974 11.2764 5 2582 | vertex -15.6974 11.2764 0 2583 | endloop 2584 | endfacet 2585 | facet normal 0.951056 0.309018 0 2586 | outer loop 2587 | vertex -15.9235 11.9723 0 2588 | vertex -15.9235 11.9723 5 2589 | vertex -15.6974 11.2764 0 2590 | endloop 2591 | endfacet 2592 | facet normal 0.994522 -0.104528 0 2593 | outer loop 2594 | vertex -15.9235 38.8277 0 2595 | vertex -15.9235 38.8277 5 2596 | vertex -16 38.1 5 2597 | endloop 2598 | endfacet 2599 | facet normal 0.994522 -0.104528 0 2600 | outer loop 2601 | vertex -16 38.1 0 2602 | vertex -15.9235 38.8277 0 2603 | vertex -16 38.1 5 2604 | endloop 2605 | endfacet 2606 | facet normal 0.994522 0.104528 0 2607 | outer loop 2608 | vertex -16 38.1 5 2609 | vertex -15.9235 37.3723 5 2610 | vertex -15.9235 37.3723 0 2611 | endloop 2612 | endfacet 2613 | facet normal 0.994522 0.104528 0 2614 | outer loop 2615 | vertex -16 38.1 0 2616 | vertex -16 38.1 5 2617 | vertex -15.9235 37.3723 0 2618 | endloop 2619 | endfacet 2620 | facet normal 0.951056 -0.309018 0 2621 | outer loop 2622 | vertex -15.6974 39.5236 0 2623 | vertex -15.6974 39.5236 5 2624 | vertex -15.9235 38.8277 5 2625 | endloop 2626 | endfacet 2627 | facet normal 0.951056 -0.309018 0 2628 | outer loop 2629 | vertex -15.9235 38.8277 0 2630 | vertex -15.6974 39.5236 0 2631 | vertex -15.9235 38.8277 5 2632 | endloop 2633 | endfacet 2634 | facet normal 0.866025 -0.5 0 2635 | outer loop 2636 | vertex -15.3316 40.1572 0 2637 | vertex -15.3316 40.1572 5 2638 | vertex -15.6974 39.5236 5 2639 | endloop 2640 | endfacet 2641 | facet normal 0.866025 -0.5 0 2642 | outer loop 2643 | vertex -15.6974 39.5236 0 2644 | vertex -15.3316 40.1572 0 2645 | vertex -15.6974 39.5236 5 2646 | endloop 2647 | endfacet 2648 | facet normal 0.743145 -0.66913 0 2649 | outer loop 2650 | vertex -14.842 40.701 0 2651 | vertex -14.842 40.701 5 2652 | vertex -15.3316 40.1572 5 2653 | endloop 2654 | endfacet 2655 | facet normal 0.743145 -0.66913 0 2656 | outer loop 2657 | vertex -15.3316 40.1572 0 2658 | vertex -14.842 40.701 0 2659 | vertex -15.3316 40.1572 5 2660 | endloop 2661 | endfacet 2662 | facet normal 0.587785 -0.809017 0 2663 | outer loop 2664 | vertex -14.25 41.1311 0 2665 | vertex -14.25 41.1311 5 2666 | vertex -14.842 40.701 5 2667 | endloop 2668 | endfacet 2669 | facet normal 0.587785 -0.809017 0 2670 | outer loop 2671 | vertex -14.842 40.701 0 2672 | vertex -14.25 41.1311 0 2673 | vertex -14.842 40.701 5 2674 | endloop 2675 | endfacet 2676 | facet normal 0.406737 -0.913546 0 2677 | outer loop 2678 | vertex -13.5816 41.4287 0 2679 | vertex -13.5816 41.4287 5 2680 | vertex -14.25 41.1311 5 2681 | endloop 2682 | endfacet 2683 | facet normal 0.406737 -0.913546 0 2684 | outer loop 2685 | vertex -14.25 41.1311 0 2686 | vertex -13.5816 41.4287 0 2687 | vertex -14.25 41.1311 5 2688 | endloop 2689 | endfacet 2690 | facet normal 0.207912 -0.978148 0 2691 | outer loop 2692 | vertex -12.8659 41.5808 0 2693 | vertex -12.8659 41.5808 5 2694 | vertex -13.5816 41.4287 5 2695 | endloop 2696 | endfacet 2697 | facet normal 0.207912 -0.978148 0 2698 | outer loop 2699 | vertex -13.5816 41.4287 0 2700 | vertex -12.8659 41.5808 0 2701 | vertex -13.5816 41.4287 5 2702 | endloop 2703 | endfacet 2704 | facet normal 0 -1 0 2705 | outer loop 2706 | vertex -12.1341 41.5808 0 2707 | vertex -12.1341 41.5808 5 2708 | vertex -12.8659 41.5808 5 2709 | endloop 2710 | endfacet 2711 | facet normal 0 -1 0 2712 | outer loop 2713 | vertex -12.8659 41.5808 0 2714 | vertex -12.1341 41.5808 0 2715 | vertex -12.8659 41.5808 5 2716 | endloop 2717 | endfacet 2718 | facet normal -0.207912 -0.978148 0 2719 | outer loop 2720 | vertex -11.4184 41.4287 0 2721 | vertex -11.4184 41.4287 5 2722 | vertex -12.1341 41.5808 5 2723 | endloop 2724 | endfacet 2725 | facet normal -0.207912 -0.978148 0 2726 | outer loop 2727 | vertex -12.1341 41.5808 0 2728 | vertex -11.4184 41.4287 0 2729 | vertex -12.1341 41.5808 5 2730 | endloop 2731 | endfacet 2732 | facet normal -0.406737 -0.913546 0 2733 | outer loop 2734 | vertex -10.75 41.1311 0 2735 | vertex -10.75 41.1311 5 2736 | vertex -11.4184 41.4287 5 2737 | endloop 2738 | endfacet 2739 | facet normal -0.406737 -0.913546 0 2740 | outer loop 2741 | vertex -11.4184 41.4287 0 2742 | vertex -10.75 41.1311 0 2743 | vertex -11.4184 41.4287 5 2744 | endloop 2745 | endfacet 2746 | facet normal -0.587785 -0.809017 0 2747 | outer loop 2748 | vertex -10.158 40.701 0 2749 | vertex -10.158 40.701 5 2750 | vertex -10.75 41.1311 5 2751 | endloop 2752 | endfacet 2753 | facet normal -0.587785 -0.809017 0 2754 | outer loop 2755 | vertex -10.75 41.1311 0 2756 | vertex -10.158 40.701 0 2757 | vertex -10.75 41.1311 5 2758 | endloop 2759 | endfacet 2760 | facet normal -0.743145 -0.66913 0 2761 | outer loop 2762 | vertex -9.66844 40.1572 5 2763 | vertex -10.158 40.701 5 2764 | vertex -9.66844 40.1572 0 2765 | endloop 2766 | endfacet 2767 | facet normal -0.743145 -0.66913 0 2768 | outer loop 2769 | vertex -9.66844 40.1572 0 2770 | vertex -10.158 40.701 5 2771 | vertex -10.158 40.701 0 2772 | endloop 2773 | endfacet 2774 | facet normal -0.866025 -0.5 0 2775 | outer loop 2776 | vertex -9.30259 39.5236 5 2777 | vertex -9.66844 40.1572 5 2778 | vertex -9.30259 39.5236 0 2779 | endloop 2780 | endfacet 2781 | facet normal -0.866025 -0.5 0 2782 | outer loop 2783 | vertex -9.30259 39.5236 0 2784 | vertex -9.66844 40.1572 5 2785 | vertex -9.66844 40.1572 0 2786 | endloop 2787 | endfacet 2788 | facet normal -0.951056 -0.309018 0 2789 | outer loop 2790 | vertex -9.07648 38.8277 5 2791 | vertex -9.30259 39.5236 5 2792 | vertex -9.07648 38.8277 0 2793 | endloop 2794 | endfacet 2795 | facet normal -0.951056 -0.309018 0 2796 | outer loop 2797 | vertex -9.07648 38.8277 0 2798 | vertex -9.30259 39.5236 5 2799 | vertex -9.30259 39.5236 0 2800 | endloop 2801 | endfacet 2802 | facet normal -0.994522 -0.104528 0 2803 | outer loop 2804 | vertex -9 38.1 5 2805 | vertex -9.07648 38.8277 5 2806 | vertex -9 38.1 0 2807 | endloop 2808 | endfacet 2809 | facet normal -0.994522 -0.104528 0 2810 | outer loop 2811 | vertex -9 38.1 0 2812 | vertex -9.07648 38.8277 5 2813 | vertex -9.07648 38.8277 0 2814 | endloop 2815 | endfacet 2816 | facet normal -0.994522 0.104528 0 2817 | outer loop 2818 | vertex -9 38.1 5 2819 | vertex -9 38.1 0 2820 | vertex -9.07648 37.3723 5 2821 | endloop 2822 | endfacet 2823 | facet normal -0.994522 0.104528 0 2824 | outer loop 2825 | vertex -9.07648 37.3723 5 2826 | vertex -9 38.1 0 2827 | vertex -9.07648 37.3723 0 2828 | endloop 2829 | endfacet 2830 | facet normal -0.951056 0.309018 0 2831 | outer loop 2832 | vertex -9.07648 37.3723 5 2833 | vertex -9.07648 37.3723 0 2834 | vertex -9.30259 36.6764 5 2835 | endloop 2836 | endfacet 2837 | facet normal -0.951056 0.309018 0 2838 | outer loop 2839 | vertex -9.30259 36.6764 5 2840 | vertex -9.07648 37.3723 0 2841 | vertex -9.30259 36.6764 0 2842 | endloop 2843 | endfacet 2844 | facet normal -0.866025 0.5 0 2845 | outer loop 2846 | vertex -9.30259 36.6764 5 2847 | vertex -9.30259 36.6764 0 2848 | vertex -9.66844 36.0428 5 2849 | endloop 2850 | endfacet 2851 | facet normal -0.866025 0.5 0 2852 | outer loop 2853 | vertex -9.66844 36.0428 5 2854 | vertex -9.30259 36.6764 0 2855 | vertex -9.66844 36.0428 0 2856 | endloop 2857 | endfacet 2858 | facet normal -0.743145 0.66913 0 2859 | outer loop 2860 | vertex -9.66844 36.0428 5 2861 | vertex -9.66844 36.0428 0 2862 | vertex -10.158 35.499 5 2863 | endloop 2864 | endfacet 2865 | facet normal -0.743145 0.66913 0 2866 | outer loop 2867 | vertex -10.158 35.499 5 2868 | vertex -9.66844 36.0428 0 2869 | vertex -10.158 35.499 0 2870 | endloop 2871 | endfacet 2872 | facet normal -0.587785 0.809017 0 2873 | outer loop 2874 | vertex -10.158 35.499 5 2875 | vertex -10.158 35.499 0 2876 | vertex -10.75 35.0689 5 2877 | endloop 2878 | endfacet 2879 | facet normal -0.587785 0.809017 0 2880 | outer loop 2881 | vertex -10.75 35.0689 5 2882 | vertex -10.158 35.499 0 2883 | vertex -10.75 35.0689 0 2884 | endloop 2885 | endfacet 2886 | facet normal -0.406737 0.913546 0 2887 | outer loop 2888 | vertex -10.75 35.0689 5 2889 | vertex -10.75 35.0689 0 2890 | vertex -11.4184 34.7713 5 2891 | endloop 2892 | endfacet 2893 | facet normal -0.406737 0.913546 0 2894 | outer loop 2895 | vertex -11.4184 34.7713 5 2896 | vertex -10.75 35.0689 0 2897 | vertex -11.4184 34.7713 0 2898 | endloop 2899 | endfacet 2900 | facet normal -0.207912 0.978148 0 2901 | outer loop 2902 | vertex -11.4184 34.7713 5 2903 | vertex -11.4184 34.7713 0 2904 | vertex -12.1341 34.6192 5 2905 | endloop 2906 | endfacet 2907 | facet normal -0.207912 0.978148 0 2908 | outer loop 2909 | vertex -12.1341 34.6192 5 2910 | vertex -11.4184 34.7713 0 2911 | vertex -12.1341 34.6192 0 2912 | endloop 2913 | endfacet 2914 | facet normal 0 1 0 2915 | outer loop 2916 | vertex -12.1341 34.6192 5 2917 | vertex -12.1341 34.6192 0 2918 | vertex -12.8659 34.6192 5 2919 | endloop 2920 | endfacet 2921 | facet normal 0 1 0 2922 | outer loop 2923 | vertex -12.8659 34.6192 5 2924 | vertex -12.1341 34.6192 0 2925 | vertex -12.8659 34.6192 0 2926 | endloop 2927 | endfacet 2928 | facet normal 0.207912 0.978148 0 2929 | outer loop 2930 | vertex -12.8659 34.6192 5 2931 | vertex -12.8659 34.6192 0 2932 | vertex -13.5816 34.7713 5 2933 | endloop 2934 | endfacet 2935 | facet normal 0.207912 0.978148 0 2936 | outer loop 2937 | vertex -13.5816 34.7713 5 2938 | vertex -12.8659 34.6192 0 2939 | vertex -13.5816 34.7713 0 2940 | endloop 2941 | endfacet 2942 | facet normal 0.406737 0.913546 0 2943 | outer loop 2944 | vertex -13.5816 34.7713 5 2945 | vertex -13.5816 34.7713 0 2946 | vertex -14.25 35.0689 5 2947 | endloop 2948 | endfacet 2949 | facet normal 0.406737 0.913546 0 2950 | outer loop 2951 | vertex -14.25 35.0689 5 2952 | vertex -13.5816 34.7713 0 2953 | vertex -14.25 35.0689 0 2954 | endloop 2955 | endfacet 2956 | facet normal 0.587785 0.809017 0 2957 | outer loop 2958 | vertex -14.25 35.0689 5 2959 | vertex -14.25 35.0689 0 2960 | vertex -14.842 35.499 5 2961 | endloop 2962 | endfacet 2963 | facet normal 0.587785 0.809017 0 2964 | outer loop 2965 | vertex -14.842 35.499 5 2966 | vertex -14.25 35.0689 0 2967 | vertex -14.842 35.499 0 2968 | endloop 2969 | endfacet 2970 | facet normal 0.743145 0.66913 0 2971 | outer loop 2972 | vertex -15.3316 36.0428 5 2973 | vertex -14.842 35.499 5 2974 | vertex -14.842 35.499 0 2975 | endloop 2976 | endfacet 2977 | facet normal 0.743145 0.66913 0 2978 | outer loop 2979 | vertex -15.3316 36.0428 0 2980 | vertex -15.3316 36.0428 5 2981 | vertex -14.842 35.499 0 2982 | endloop 2983 | endfacet 2984 | facet normal 0.866025 0.5 0 2985 | outer loop 2986 | vertex -15.6974 36.6764 5 2987 | vertex -15.3316 36.0428 5 2988 | vertex -15.3316 36.0428 0 2989 | endloop 2990 | endfacet 2991 | facet normal 0.866025 0.5 0 2992 | outer loop 2993 | vertex -15.6974 36.6764 0 2994 | vertex -15.6974 36.6764 5 2995 | vertex -15.3316 36.0428 0 2996 | endloop 2997 | endfacet 2998 | facet normal 0.951056 0.309018 0 2999 | outer loop 3000 | vertex -15.9235 37.3723 5 3001 | vertex -15.6974 36.6764 5 3002 | vertex -15.6974 36.6764 0 3003 | endloop 3004 | endfacet 3005 | facet normal 0.951056 0.309018 0 3006 | outer loop 3007 | vertex -15.9235 37.3723 0 3008 | vertex -15.9235 37.3723 5 3009 | vertex -15.6974 36.6764 0 3010 | endloop 3011 | endfacet 3012 | facet normal 0 0 1 3013 | outer loop 3014 | vertex 0 50.8 57.75 3015 | vertex 0 30.5715 57.75 3016 | vertex 10 30.5715 57.75 3017 | endloop 3018 | endfacet 3019 | facet normal 0 0 1 3020 | outer loop 3021 | vertex 10 50.8 57.75 3022 | vertex 0 50.8 57.75 3023 | vertex 10 30.5715 57.75 3024 | endloop 3025 | endfacet 3026 | facet normal 0 -1 0 3027 | outer loop 3028 | vertex 10 30.5715 57.2065 3029 | vertex 10 30.5715 57.75 3030 | vertex 0 30.5715 57.75 3031 | endloop 3032 | endfacet 3033 | facet normal 0 -1 0 3034 | outer loop 3035 | vertex 0 30.5715 57.2065 3036 | vertex 10 30.5715 57.2065 3037 | vertex 0 30.5715 57.75 3038 | endloop 3039 | endfacet 3040 | facet normal -4.61657e-017 -0.978148 0.207912 3041 | outer loop 3042 | vertex 10 30.3455 56.1431 3043 | vertex 10 30.5715 57.2065 3044 | vertex 0 30.5715 57.2065 3045 | endloop 3046 | endfacet 3047 | facet normal -4.61657e-017 -0.978148 0.207912 3048 | outer loop 3049 | vertex 0 30.3455 56.1431 3050 | vertex 10 30.3455 56.1431 3051 | vertex 0 30.5715 57.2065 3052 | endloop 3053 | endfacet 3054 | facet normal -9.03137e-017 -0.913545 0.406737 3055 | outer loop 3056 | vertex 10 29.9033 55.15 3057 | vertex 10 30.3455 56.1431 3058 | vertex 0 30.3455 56.1431 3059 | endloop 3060 | endfacet 3061 | facet normal -9.03137e-017 -0.913545 0.406737 3062 | outer loop 3063 | vertex 0 29.9033 55.15 3064 | vertex 10 29.9033 55.15 3065 | vertex 0 30.3455 56.1431 3066 | endloop 3067 | endfacet 3068 | facet normal -1.30515e-016 -0.809017 0.587785 3069 | outer loop 3070 | vertex 10 29.2644 54.2705 3071 | vertex 10 29.9033 55.15 3072 | vertex 0 29.9033 55.15 3073 | endloop 3074 | endfacet 3075 | facet normal -1.30515e-016 -0.809017 0.587785 3076 | outer loop 3077 | vertex 0 29.2644 54.2705 3078 | vertex 10 29.2644 54.2705 3079 | vertex 0 29.9033 55.15 3080 | endloop 3081 | endfacet 3082 | facet normal -1.65011e-016 -0.66913 0.743145 3083 | outer loop 3084 | vertex 10 28.4565 53.5431 3085 | vertex 10 29.2644 54.2705 3086 | vertex 0 29.2644 54.2705 3087 | endloop 3088 | endfacet 3089 | facet normal -1.65011e-016 -0.66913 0.743145 3090 | outer loop 3091 | vertex 0 28.4565 53.5431 3092 | vertex 10 28.4565 53.5431 3093 | vertex 0 29.2644 54.2705 3094 | endloop 3095 | endfacet 3096 | facet normal -1.92296e-016 -0.5 0.866025 3097 | outer loop 3098 | vertex 10 27.515 52.9996 3099 | vertex 10 28.4565 53.5431 3100 | vertex 0 28.4565 53.5431 3101 | endloop 3102 | endfacet 3103 | facet normal -1.92296e-016 -0.5 0.866025 3104 | outer loop 3105 | vertex 0 27.515 52.9996 3106 | vertex 10 27.515 52.9996 3107 | vertex 0 28.4565 53.5431 3108 | endloop 3109 | endfacet 3110 | facet normal -2.11177e-016 -0.309018 0.951056 3111 | outer loop 3112 | vertex 10 26.4811 52.6636 3113 | vertex 10 27.515 52.9996 3114 | vertex 0 27.515 52.9996 3115 | endloop 3116 | endfacet 3117 | facet normal -2.11177e-016 -0.309018 0.951056 3118 | outer loop 3119 | vertex 0 26.4811 52.6636 3120 | vertex 10 26.4811 52.6636 3121 | vertex 0 27.515 52.9996 3122 | endloop 3123 | endfacet 3124 | facet normal -2.20828e-016 -0.104528 0.994522 3125 | outer loop 3126 | vertex 10 25.4 52.55 3127 | vertex 10 26.4811 52.6636 3128 | vertex 0 26.4811 52.6636 3129 | endloop 3130 | endfacet 3131 | facet normal -2.20828e-016 -0.104528 0.994522 3132 | outer loop 3133 | vertex 0 25.4 52.55 3134 | vertex 10 25.4 52.55 3135 | vertex 0 26.4811 52.6636 3136 | endloop 3137 | endfacet 3138 | facet normal -2.20828e-016 0.104528 0.994522 3139 | outer loop 3140 | vertex 10 24.3189 52.6636 3141 | vertex 10 25.4 52.55 3142 | vertex 0 25.4 52.55 3143 | endloop 3144 | endfacet 3145 | facet normal -2.20828e-016 0.104528 0.994522 3146 | outer loop 3147 | vertex 0 24.3189 52.6636 3148 | vertex 10 24.3189 52.6636 3149 | vertex 0 25.4 52.55 3150 | endloop 3151 | endfacet 3152 | facet normal -2.11177e-016 0.309018 0.951056 3153 | outer loop 3154 | vertex 10 23.285 52.9996 3155 | vertex 10 24.3189 52.6636 3156 | vertex 0 24.3189 52.6636 3157 | endloop 3158 | endfacet 3159 | facet normal -2.11177e-016 0.309018 0.951056 3160 | outer loop 3161 | vertex 0 23.285 52.9996 3162 | vertex 10 23.285 52.9996 3163 | vertex 0 24.3189 52.6636 3164 | endloop 3165 | endfacet 3166 | facet normal -1.92296e-016 0.5 0.866025 3167 | outer loop 3168 | vertex 10 22.3435 53.5431 3169 | vertex 10 23.285 52.9996 3170 | vertex 0 23.285 52.9996 3171 | endloop 3172 | endfacet 3173 | facet normal -1.92296e-016 0.5 0.866025 3174 | outer loop 3175 | vertex 0 22.3435 53.5431 3176 | vertex 10 22.3435 53.5431 3177 | vertex 0 23.285 52.9996 3178 | endloop 3179 | endfacet 3180 | facet normal -1.65011e-016 0.66913 0.743145 3181 | outer loop 3182 | vertex 10 21.5356 54.2705 3183 | vertex 10 22.3435 53.5431 3184 | vertex 0 22.3435 53.5431 3185 | endloop 3186 | endfacet 3187 | facet normal -1.65011e-016 0.66913 0.743145 3188 | outer loop 3189 | vertex 0 21.5356 54.2705 3190 | vertex 10 21.5356 54.2705 3191 | vertex 0 22.3435 53.5431 3192 | endloop 3193 | endfacet 3194 | facet normal -1.30515e-016 0.809017 0.587785 3195 | outer loop 3196 | vertex 10 21.5356 54.2705 3197 | vertex 0 21.5356 54.2705 3198 | vertex 10 20.8967 55.15 3199 | endloop 3200 | endfacet 3201 | facet normal -1.30515e-016 0.809017 0.587785 3202 | outer loop 3203 | vertex 10 20.8967 55.15 3204 | vertex 0 21.5356 54.2705 3205 | vertex 0 20.8967 55.15 3206 | endloop 3207 | endfacet 3208 | facet normal -9.03137e-017 0.913545 0.406737 3209 | outer loop 3210 | vertex 10 20.8967 55.15 3211 | vertex 0 20.8967 55.15 3212 | vertex 10 20.4545 56.1431 3213 | endloop 3214 | endfacet 3215 | facet normal -9.03137e-017 0.913545 0.406737 3216 | outer loop 3217 | vertex 10 20.4545 56.1431 3218 | vertex 0 20.8967 55.15 3219 | vertex 0 20.4545 56.1431 3220 | endloop 3221 | endfacet 3222 | facet normal -4.61657e-017 0.978148 0.207912 3223 | outer loop 3224 | vertex 10 20.4545 56.1431 3225 | vertex 0 20.4545 56.1431 3226 | vertex 10 20.2285 57.2065 3227 | endloop 3228 | endfacet 3229 | facet normal -4.61657e-017 0.978148 0.207912 3230 | outer loop 3231 | vertex 10 20.2285 57.2065 3232 | vertex 0 20.4545 56.1431 3233 | vertex 0 20.2285 57.2065 3234 | endloop 3235 | endfacet 3236 | facet normal 0 1 0 3237 | outer loop 3238 | vertex 10 20.2285 57.75 3239 | vertex 10 20.2285 57.2065 3240 | vertex 0 20.2285 57.75 3241 | endloop 3242 | endfacet 3243 | facet normal 0 1 0 3244 | outer loop 3245 | vertex 0 20.2285 57.75 3246 | vertex 10 20.2285 57.2065 3247 | vertex 0 20.2285 57.2065 3248 | endloop 3249 | endfacet 3250 | facet normal 0 1 0 3251 | outer loop 3252 | vertex 10 20.7257 30.4913 3253 | vertex 10 20.7257 29.5087 3254 | vertex 0 20.7257 30.4913 3255 | endloop 3256 | endfacet 3257 | facet normal 0 1 0 3258 | outer loop 3259 | vertex 0 20.7257 30.4913 3260 | vertex 10 20.7257 29.5087 3261 | vertex 0 20.7257 29.5087 3262 | endloop 3263 | endfacet 3264 | facet normal -4.61656e-017 0.978148 0.207911 3265 | outer loop 3266 | vertex 10 20.93 28.5476 3267 | vertex 0 20.93 28.5476 3268 | vertex 10 20.7257 29.5087 3269 | endloop 3270 | endfacet 3271 | facet normal -4.61656e-017 0.978148 0.207911 3272 | outer loop 3273 | vertex 10 20.7257 29.5087 3274 | vertex 0 20.93 28.5476 3275 | vertex 0 20.7257 29.5087 3276 | endloop 3277 | endfacet 3278 | facet normal 4.61656e-017 0.978148 -0.207911 3279 | outer loop 3280 | vertex 10 20.93 31.4524 3281 | vertex 10 20.7257 30.4913 3282 | vertex 0 20.93 31.4524 3283 | endloop 3284 | endfacet 3285 | facet normal 4.61656e-017 0.978148 -0.207911 3286 | outer loop 3287 | vertex 0 20.93 31.4524 3288 | vertex 10 20.7257 30.4913 3289 | vertex 0 20.7257 30.4913 3290 | endloop 3291 | endfacet 3292 | facet normal 9.03138e-017 0.913545 -0.406737 3293 | outer loop 3294 | vertex 10 21.3297 32.35 3295 | vertex 10 20.93 31.4524 3296 | vertex 0 21.3297 32.35 3297 | endloop 3298 | endfacet 3299 | facet normal 9.03138e-017 0.913545 -0.406737 3300 | outer loop 3301 | vertex 0 21.3297 32.35 3302 | vertex 10 20.93 31.4524 3303 | vertex 0 20.93 31.4524 3304 | endloop 3305 | endfacet 3306 | facet normal 1.30514e-016 0.809017 -0.587785 3307 | outer loop 3308 | vertex 10 21.9072 33.1449 3309 | vertex 10 21.3297 32.35 3310 | vertex 0 21.9072 33.1449 3311 | endloop 3312 | endfacet 3313 | facet normal 1.30514e-016 0.809017 -0.587785 3314 | outer loop 3315 | vertex 0 21.9072 33.1449 3316 | vertex 10 21.3297 32.35 3317 | vertex 0 21.3297 32.35 3318 | endloop 3319 | endfacet 3320 | facet normal 1.65011e-016 0.669131 -0.743145 3321 | outer loop 3322 | vertex 10 22.6374 33.8024 3323 | vertex 10 21.9072 33.1449 3324 | vertex 0 22.6374 33.8024 3325 | endloop 3326 | endfacet 3327 | facet normal 1.65011e-016 0.669131 -0.743145 3328 | outer loop 3329 | vertex 0 22.6374 33.8024 3330 | vertex 10 21.9072 33.1449 3331 | vertex 0 21.9072 33.1449 3332 | endloop 3333 | endfacet 3334 | facet normal 1.92296e-016 0.5 -0.866025 3335 | outer loop 3336 | vertex 10 23.4883 34.2937 3337 | vertex 10 22.6374 33.8024 3338 | vertex 0 23.4883 34.2937 3339 | endloop 3340 | endfacet 3341 | facet normal 1.92296e-016 0.5 -0.866025 3342 | outer loop 3343 | vertex 0 23.4883 34.2937 3344 | vertex 10 22.6374 33.8024 3345 | vertex 0 22.6374 33.8024 3346 | endloop 3347 | endfacet 3348 | facet normal 2.11177e-016 0.309017 -0.951057 3349 | outer loop 3350 | vertex 10 24.4228 34.5973 3351 | vertex 10 23.4883 34.2937 3352 | vertex 0 24.4228 34.5973 3353 | endloop 3354 | endfacet 3355 | facet normal 2.11177e-016 0.309017 -0.951057 3356 | outer loop 3357 | vertex 0 24.4228 34.5973 3358 | vertex 10 23.4883 34.2937 3359 | vertex 0 23.4883 34.2937 3360 | endloop 3361 | endfacet 3362 | facet normal 2.20828e-016 0.104528 -0.994522 3363 | outer loop 3364 | vertex 10 25.4 34.7 3365 | vertex 10 24.4228 34.5973 3366 | vertex 0 25.4 34.7 3367 | endloop 3368 | endfacet 3369 | facet normal 2.20828e-016 0.104528 -0.994522 3370 | outer loop 3371 | vertex 0 25.4 34.7 3372 | vertex 10 24.4228 34.5973 3373 | vertex 0 24.4228 34.5973 3374 | endloop 3375 | endfacet 3376 | facet normal 2.20828e-016 -0.104528 -0.994522 3377 | outer loop 3378 | vertex 10 26.3772 34.5973 3379 | vertex 10 25.4 34.7 3380 | vertex 0 26.3772 34.5973 3381 | endloop 3382 | endfacet 3383 | facet normal 2.20828e-016 -0.104528 -0.994522 3384 | outer loop 3385 | vertex 0 26.3772 34.5973 3386 | vertex 10 25.4 34.7 3387 | vertex 0 25.4 34.7 3388 | endloop 3389 | endfacet 3390 | facet normal 2.11177e-016 -0.309017 -0.951057 3391 | outer loop 3392 | vertex 10 27.3117 34.2937 3393 | vertex 10 26.3772 34.5973 3394 | vertex 0 27.3117 34.2937 3395 | endloop 3396 | endfacet 3397 | facet normal 2.11177e-016 -0.309017 -0.951057 3398 | outer loop 3399 | vertex 0 27.3117 34.2937 3400 | vertex 10 26.3772 34.5973 3401 | vertex 0 26.3772 34.5973 3402 | endloop 3403 | endfacet 3404 | facet normal 1.92296e-016 -0.5 -0.866025 3405 | outer loop 3406 | vertex 10 28.1626 33.8024 3407 | vertex 10 27.3117 34.2937 3408 | vertex 0 28.1626 33.8024 3409 | endloop 3410 | endfacet 3411 | facet normal 1.92296e-016 -0.5 -0.866025 3412 | outer loop 3413 | vertex 0 28.1626 33.8024 3414 | vertex 10 27.3117 34.2937 3415 | vertex 0 27.3117 34.2937 3416 | endloop 3417 | endfacet 3418 | facet normal 1.65011e-016 -0.669131 -0.743145 3419 | outer loop 3420 | vertex 10 28.8928 33.1449 3421 | vertex 10 28.1626 33.8024 3422 | vertex 0 28.8928 33.1449 3423 | endloop 3424 | endfacet 3425 | facet normal 1.65011e-016 -0.669131 -0.743145 3426 | outer loop 3427 | vertex 0 28.8928 33.1449 3428 | vertex 10 28.1626 33.8024 3429 | vertex 0 28.1626 33.8024 3430 | endloop 3431 | endfacet 3432 | facet normal 1.30514e-016 -0.809017 -0.587785 3433 | outer loop 3434 | vertex 0 29.4703 32.35 3435 | vertex 10 29.4703 32.35 3436 | vertex 10 28.8928 33.1449 3437 | endloop 3438 | endfacet 3439 | facet normal 1.30514e-016 -0.809017 -0.587785 3440 | outer loop 3441 | vertex 0 28.8928 33.1449 3442 | vertex 0 29.4703 32.35 3443 | vertex 10 28.8928 33.1449 3444 | endloop 3445 | endfacet 3446 | facet normal 9.03138e-017 -0.913545 -0.406737 3447 | outer loop 3448 | vertex 0 29.87 31.4524 3449 | vertex 10 29.87 31.4524 3450 | vertex 10 29.4703 32.35 3451 | endloop 3452 | endfacet 3453 | facet normal 9.03138e-017 -0.913545 -0.406737 3454 | outer loop 3455 | vertex 0 29.4703 32.35 3456 | vertex 0 29.87 31.4524 3457 | vertex 10 29.4703 32.35 3458 | endloop 3459 | endfacet 3460 | facet normal 4.61656e-017 -0.978148 -0.207911 3461 | outer loop 3462 | vertex 0 30.0743 30.4913 3463 | vertex 10 30.0743 30.4913 3464 | vertex 10 29.87 31.4524 3465 | endloop 3466 | endfacet 3467 | facet normal 4.61656e-017 -0.978148 -0.207911 3468 | outer loop 3469 | vertex 0 29.87 31.4524 3470 | vertex 0 30.0743 30.4913 3471 | vertex 10 29.87 31.4524 3472 | endloop 3473 | endfacet 3474 | facet normal 0 -1 0 3475 | outer loop 3476 | vertex 10 30.0743 29.5087 3477 | vertex 10 30.0743 30.4913 3478 | vertex 0 30.0743 30.4913 3479 | endloop 3480 | endfacet 3481 | facet normal 0 -1 0 3482 | outer loop 3483 | vertex 0 30.0743 29.5087 3484 | vertex 10 30.0743 29.5087 3485 | vertex 0 30.0743 30.4913 3486 | endloop 3487 | endfacet 3488 | facet normal -4.61656e-017 -0.978148 0.207911 3489 | outer loop 3490 | vertex 10 29.87 28.5476 3491 | vertex 10 30.0743 29.5087 3492 | vertex 0 30.0743 29.5087 3493 | endloop 3494 | endfacet 3495 | facet normal -4.61656e-017 -0.978148 0.207911 3496 | outer loop 3497 | vertex 0 29.87 28.5476 3498 | vertex 10 29.87 28.5476 3499 | vertex 0 30.0743 29.5087 3500 | endloop 3501 | endfacet 3502 | facet normal -9.03138e-017 -0.913545 0.406737 3503 | outer loop 3504 | vertex 10 29.4703 27.65 3505 | vertex 10 29.87 28.5476 3506 | vertex 0 29.87 28.5476 3507 | endloop 3508 | endfacet 3509 | facet normal -9.03138e-017 -0.913545 0.406737 3510 | outer loop 3511 | vertex 0 29.4703 27.65 3512 | vertex 10 29.4703 27.65 3513 | vertex 0 29.87 28.5476 3514 | endloop 3515 | endfacet 3516 | facet normal -1.30514e-016 -0.809017 0.587785 3517 | outer loop 3518 | vertex 10 28.8928 26.8551 3519 | vertex 10 29.4703 27.65 3520 | vertex 0 29.4703 27.65 3521 | endloop 3522 | endfacet 3523 | facet normal -1.30514e-016 -0.809017 0.587785 3524 | outer loop 3525 | vertex 0 28.8928 26.8551 3526 | vertex 10 28.8928 26.8551 3527 | vertex 0 29.4703 27.65 3528 | endloop 3529 | endfacet 3530 | facet normal -1.65011e-016 -0.669131 0.743145 3531 | outer loop 3532 | vertex 10 28.1626 26.1976 3533 | vertex 10 28.8928 26.8551 3534 | vertex 0 28.8928 26.8551 3535 | endloop 3536 | endfacet 3537 | facet normal -1.65011e-016 -0.669131 0.743145 3538 | outer loop 3539 | vertex 0 28.1626 26.1976 3540 | vertex 10 28.1626 26.1976 3541 | vertex 0 28.8928 26.8551 3542 | endloop 3543 | endfacet 3544 | facet normal -1.92296e-016 -0.5 0.866025 3545 | outer loop 3546 | vertex 10 27.3117 25.7063 3547 | vertex 10 28.1626 26.1976 3548 | vertex 0 28.1626 26.1976 3549 | endloop 3550 | endfacet 3551 | facet normal -1.92296e-016 -0.5 0.866025 3552 | outer loop 3553 | vertex 0 27.3117 25.7063 3554 | vertex 10 27.3117 25.7063 3555 | vertex 0 28.1626 26.1976 3556 | endloop 3557 | endfacet 3558 | facet normal -2.11177e-016 -0.309017 0.951057 3559 | outer loop 3560 | vertex 10 26.3772 25.4027 3561 | vertex 10 27.3117 25.7063 3562 | vertex 0 27.3117 25.7063 3563 | endloop 3564 | endfacet 3565 | facet normal -2.11177e-016 -0.309017 0.951057 3566 | outer loop 3567 | vertex 0 26.3772 25.4027 3568 | vertex 10 26.3772 25.4027 3569 | vertex 0 27.3117 25.7063 3570 | endloop 3571 | endfacet 3572 | facet normal -2.20828e-016 -0.104528 0.994522 3573 | outer loop 3574 | vertex 10 25.4 25.3 3575 | vertex 10 26.3772 25.4027 3576 | vertex 0 26.3772 25.4027 3577 | endloop 3578 | endfacet 3579 | facet normal -2.20828e-016 -0.104528 0.994522 3580 | outer loop 3581 | vertex 0 25.4 25.3 3582 | vertex 10 25.4 25.3 3583 | vertex 0 26.3772 25.4027 3584 | endloop 3585 | endfacet 3586 | facet normal -2.20828e-016 0.104528 0.994522 3587 | outer loop 3588 | vertex 10 24.4228 25.4027 3589 | vertex 10 25.4 25.3 3590 | vertex 0 25.4 25.3 3591 | endloop 3592 | endfacet 3593 | facet normal -2.20828e-016 0.104528 0.994522 3594 | outer loop 3595 | vertex 0 24.4228 25.4027 3596 | vertex 10 24.4228 25.4027 3597 | vertex 0 25.4 25.3 3598 | endloop 3599 | endfacet 3600 | facet normal -2.11177e-016 0.309017 0.951057 3601 | outer loop 3602 | vertex 10 23.4883 25.7063 3603 | vertex 10 24.4228 25.4027 3604 | vertex 0 24.4228 25.4027 3605 | endloop 3606 | endfacet 3607 | facet normal -2.11177e-016 0.309017 0.951057 3608 | outer loop 3609 | vertex 0 23.4883 25.7063 3610 | vertex 10 23.4883 25.7063 3611 | vertex 0 24.4228 25.4027 3612 | endloop 3613 | endfacet 3614 | facet normal -1.92296e-016 0.5 0.866025 3615 | outer loop 3616 | vertex 10 22.6374 26.1976 3617 | vertex 10 23.4883 25.7063 3618 | vertex 0 23.4883 25.7063 3619 | endloop 3620 | endfacet 3621 | facet normal -1.92296e-016 0.5 0.866025 3622 | outer loop 3623 | vertex 0 22.6374 26.1976 3624 | vertex 10 22.6374 26.1976 3625 | vertex 0 23.4883 25.7063 3626 | endloop 3627 | endfacet 3628 | facet normal -1.65011e-016 0.669131 0.743145 3629 | outer loop 3630 | vertex 10 21.9072 26.8551 3631 | vertex 10 22.6374 26.1976 3632 | vertex 0 22.6374 26.1976 3633 | endloop 3634 | endfacet 3635 | facet normal -1.65011e-016 0.669131 0.743145 3636 | outer loop 3637 | vertex 0 21.9072 26.8551 3638 | vertex 10 21.9072 26.8551 3639 | vertex 0 22.6374 26.1976 3640 | endloop 3641 | endfacet 3642 | facet normal -1.30514e-016 0.809017 0.587785 3643 | outer loop 3644 | vertex 10 21.9072 26.8551 3645 | vertex 0 21.9072 26.8551 3646 | vertex 10 21.3297 27.65 3647 | endloop 3648 | endfacet 3649 | facet normal -1.30514e-016 0.809017 0.587785 3650 | outer loop 3651 | vertex 10 21.3297 27.65 3652 | vertex 0 21.9072 26.8551 3653 | vertex 0 21.3297 27.65 3654 | endloop 3655 | endfacet 3656 | facet normal -9.03138e-017 0.913545 0.406737 3657 | outer loop 3658 | vertex 10 21.3297 27.65 3659 | vertex 0 21.3297 27.65 3660 | vertex 10 20.93 28.5476 3661 | endloop 3662 | endfacet 3663 | facet normal -9.03138e-017 0.913545 0.406737 3664 | outer loop 3665 | vertex 10 20.93 28.5476 3666 | vertex 0 21.3297 27.65 3667 | vertex 0 20.93 28.5476 3668 | endloop 3669 | endfacet 3670 | facet normal 0 1 0 3671 | outer loop 3672 | vertex 10 21.223 12.139 3673 | vertex 10 21.223 11.261 3674 | vertex 0 21.223 12.139 3675 | endloop 3676 | endfacet 3677 | facet normal 0 1 0 3678 | outer loop 3679 | vertex 0 21.223 12.139 3680 | vertex 10 21.223 11.261 3681 | vertex 0 21.223 11.261 3682 | endloop 3683 | endfacet 3684 | facet normal -4.61658e-017 0.978147 0.207912 3685 | outer loop 3686 | vertex 10 21.4056 10.4021 3687 | vertex 0 21.4056 10.4021 3688 | vertex 10 21.223 11.261 3689 | endloop 3690 | endfacet 3691 | facet normal -4.61658e-017 0.978147 0.207912 3692 | outer loop 3693 | vertex 10 21.223 11.261 3694 | vertex 0 21.4056 10.4021 3695 | vertex 0 21.223 11.261 3696 | endloop 3697 | endfacet 3698 | facet normal 4.61658e-017 0.978147 -0.207912 3699 | outer loop 3700 | vertex 10 21.4056 12.9979 3701 | vertex 10 21.223 12.139 3702 | vertex 0 21.4056 12.9979 3703 | endloop 3704 | endfacet 3705 | facet normal 4.61658e-017 0.978147 -0.207912 3706 | outer loop 3707 | vertex 0 21.4056 12.9979 3708 | vertex 10 21.223 12.139 3709 | vertex 0 21.223 12.139 3710 | endloop 3711 | endfacet 3712 | facet normal 9.03135e-017 0.913546 -0.406736 3713 | outer loop 3714 | vertex 10 21.7627 13.8 3715 | vertex 10 21.4056 12.9979 3716 | vertex 0 21.7627 13.8 3717 | endloop 3718 | endfacet 3719 | facet normal 9.03135e-017 0.913546 -0.406736 3720 | outer loop 3721 | vertex 0 21.7627 13.8 3722 | vertex 10 21.4056 12.9979 3723 | vertex 0 21.4056 12.9979 3724 | endloop 3725 | endfacet 3726 | facet normal 1.30515e-016 0.809017 -0.587785 3727 | outer loop 3728 | vertex 10 22.2788 14.5103 3729 | vertex 10 21.7627 13.8 3730 | vertex 0 22.2788 14.5103 3731 | endloop 3732 | endfacet 3733 | facet normal 1.30515e-016 0.809017 -0.587785 3734 | outer loop 3735 | vertex 0 22.2788 14.5103 3736 | vertex 10 21.7627 13.8 3737 | vertex 0 21.7627 13.8 3738 | endloop 3739 | endfacet 3740 | facet normal 1.65011e-016 0.66913 -0.743145 3741 | outer loop 3742 | vertex 10 22.9313 15.0979 3743 | vertex 10 22.2788 14.5103 3744 | vertex 0 22.9313 15.0979 3745 | endloop 3746 | endfacet 3747 | facet normal 1.65011e-016 0.66913 -0.743145 3748 | outer loop 3749 | vertex 0 22.9313 15.0979 3750 | vertex 10 22.2788 14.5103 3751 | vertex 0 22.2788 14.5103 3752 | endloop 3753 | endfacet 3754 | facet normal 1.92296e-016 0.5 -0.866025 3755 | outer loop 3756 | vertex 10 23.6917 15.5369 3757 | vertex 10 22.9313 15.0979 3758 | vertex 0 23.6917 15.5369 3759 | endloop 3760 | endfacet 3761 | facet normal 1.92296e-016 0.5 -0.866025 3762 | outer loop 3763 | vertex 0 23.6917 15.5369 3764 | vertex 10 22.9313 15.0979 3765 | vertex 0 22.9313 15.0979 3766 | endloop 3767 | endfacet 3768 | facet normal 2.11177e-016 0.309017 -0.951057 3769 | outer loop 3770 | vertex 10 24.5268 15.8082 3771 | vertex 10 23.6917 15.5369 3772 | vertex 0 24.5268 15.8082 3773 | endloop 3774 | endfacet 3775 | facet normal 2.11177e-016 0.309017 -0.951057 3776 | outer loop 3777 | vertex 0 24.5268 15.8082 3778 | vertex 10 23.6917 15.5369 3779 | vertex 0 23.6917 15.5369 3780 | endloop 3781 | endfacet 3782 | facet normal 2.20828e-016 0.104528 -0.994522 3783 | outer loop 3784 | vertex 10 25.4 15.9 3785 | vertex 10 24.5268 15.8082 3786 | vertex 0 25.4 15.9 3787 | endloop 3788 | endfacet 3789 | facet normal 2.20828e-016 0.104528 -0.994522 3790 | outer loop 3791 | vertex 0 25.4 15.9 3792 | vertex 10 24.5268 15.8082 3793 | vertex 0 24.5268 15.8082 3794 | endloop 3795 | endfacet 3796 | facet normal 2.20828e-016 -0.104528 -0.994522 3797 | outer loop 3798 | vertex 10 26.2732 15.8082 3799 | vertex 10 25.4 15.9 3800 | vertex 0 26.2732 15.8082 3801 | endloop 3802 | endfacet 3803 | facet normal 2.20828e-016 -0.104528 -0.994522 3804 | outer loop 3805 | vertex 0 26.2732 15.8082 3806 | vertex 10 25.4 15.9 3807 | vertex 0 25.4 15.9 3808 | endloop 3809 | endfacet 3810 | facet normal 2.11177e-016 -0.309017 -0.951057 3811 | outer loop 3812 | vertex 10 27.1083 15.5369 3813 | vertex 10 26.2732 15.8082 3814 | vertex 0 27.1083 15.5369 3815 | endloop 3816 | endfacet 3817 | facet normal 2.11177e-016 -0.309017 -0.951057 3818 | outer loop 3819 | vertex 0 27.1083 15.5369 3820 | vertex 10 26.2732 15.8082 3821 | vertex 0 26.2732 15.8082 3822 | endloop 3823 | endfacet 3824 | facet normal 1.92296e-016 -0.5 -0.866025 3825 | outer loop 3826 | vertex 10 27.8687 15.0979 3827 | vertex 10 27.1083 15.5369 3828 | vertex 0 27.8687 15.0979 3829 | endloop 3830 | endfacet 3831 | facet normal 1.92296e-016 -0.5 -0.866025 3832 | outer loop 3833 | vertex 0 27.8687 15.0979 3834 | vertex 10 27.1083 15.5369 3835 | vertex 0 27.1083 15.5369 3836 | endloop 3837 | endfacet 3838 | facet normal 1.65011e-016 -0.66913 -0.743145 3839 | outer loop 3840 | vertex 10 28.5212 14.5103 3841 | vertex 10 27.8687 15.0979 3842 | vertex 0 28.5212 14.5103 3843 | endloop 3844 | endfacet 3845 | facet normal 1.65011e-016 -0.66913 -0.743145 3846 | outer loop 3847 | vertex 0 28.5212 14.5103 3848 | vertex 10 27.8687 15.0979 3849 | vertex 0 27.8687 15.0979 3850 | endloop 3851 | endfacet 3852 | facet normal 1.30515e-016 -0.809017 -0.587785 3853 | outer loop 3854 | vertex 0 29.0373 13.8 3855 | vertex 10 29.0373 13.8 3856 | vertex 10 28.5212 14.5103 3857 | endloop 3858 | endfacet 3859 | facet normal 1.30515e-016 -0.809017 -0.587785 3860 | outer loop 3861 | vertex 0 28.5212 14.5103 3862 | vertex 0 29.0373 13.8 3863 | vertex 10 28.5212 14.5103 3864 | endloop 3865 | endfacet 3866 | facet normal 9.03135e-017 -0.913546 -0.406736 3867 | outer loop 3868 | vertex 0 29.3944 12.9979 3869 | vertex 10 29.3944 12.9979 3870 | vertex 10 29.0373 13.8 3871 | endloop 3872 | endfacet 3873 | facet normal 9.03135e-017 -0.913546 -0.406736 3874 | outer loop 3875 | vertex 0 29.0373 13.8 3876 | vertex 0 29.3944 12.9979 3877 | vertex 10 29.0373 13.8 3878 | endloop 3879 | endfacet 3880 | facet normal 4.61658e-017 -0.978147 -0.207912 3881 | outer loop 3882 | vertex 0 29.577 12.139 3883 | vertex 10 29.577 12.139 3884 | vertex 10 29.3944 12.9979 3885 | endloop 3886 | endfacet 3887 | facet normal 4.61658e-017 -0.978147 -0.207912 3888 | outer loop 3889 | vertex 0 29.3944 12.9979 3890 | vertex 0 29.577 12.139 3891 | vertex 10 29.3944 12.9979 3892 | endloop 3893 | endfacet 3894 | facet normal 0 -1 0 3895 | outer loop 3896 | vertex 10 29.577 11.261 3897 | vertex 10 29.577 12.139 3898 | vertex 0 29.577 12.139 3899 | endloop 3900 | endfacet 3901 | facet normal 0 -1 0 3902 | outer loop 3903 | vertex 0 29.577 11.261 3904 | vertex 10 29.577 11.261 3905 | vertex 0 29.577 12.139 3906 | endloop 3907 | endfacet 3908 | facet normal -4.61658e-017 -0.978147 0.207912 3909 | outer loop 3910 | vertex 10 29.3944 10.4021 3911 | vertex 10 29.577 11.261 3912 | vertex 0 29.577 11.261 3913 | endloop 3914 | endfacet 3915 | facet normal -4.61658e-017 -0.978147 0.207912 3916 | outer loop 3917 | vertex 0 29.3944 10.4021 3918 | vertex 10 29.3944 10.4021 3919 | vertex 0 29.577 11.261 3920 | endloop 3921 | endfacet 3922 | facet normal -9.03135e-017 -0.913546 0.406736 3923 | outer loop 3924 | vertex 10 29.0373 9.6 3925 | vertex 10 29.3944 10.4021 3926 | vertex 0 29.3944 10.4021 3927 | endloop 3928 | endfacet 3929 | facet normal -9.03135e-017 -0.913546 0.406736 3930 | outer loop 3931 | vertex 0 29.0373 9.6 3932 | vertex 10 29.0373 9.6 3933 | vertex 0 29.3944 10.4021 3934 | endloop 3935 | endfacet 3936 | facet normal -1.30515e-016 -0.809017 0.587785 3937 | outer loop 3938 | vertex 10 28.5212 8.88965 3939 | vertex 10 29.0373 9.6 3940 | vertex 0 29.0373 9.6 3941 | endloop 3942 | endfacet 3943 | facet normal -1.30515e-016 -0.809017 0.587785 3944 | outer loop 3945 | vertex 0 28.5212 8.88965 3946 | vertex 10 28.5212 8.88965 3947 | vertex 0 29.0373 9.6 3948 | endloop 3949 | endfacet 3950 | facet normal -1.65011e-016 -0.66913 0.743145 3951 | outer loop 3952 | vertex 10 27.8687 8.30213 3953 | vertex 10 28.5212 8.88965 3954 | vertex 0 28.5212 8.88965 3955 | endloop 3956 | endfacet 3957 | facet normal -1.65011e-016 -0.66913 0.743145 3958 | outer loop 3959 | vertex 0 27.8687 8.30213 3960 | vertex 10 27.8687 8.30213 3961 | vertex 0 28.5212 8.88965 3962 | endloop 3963 | endfacet 3964 | facet normal -1.92296e-016 -0.5 0.866025 3965 | outer loop 3966 | vertex 10 27.1083 7.86311 3967 | vertex 10 27.8687 8.30213 3968 | vertex 0 27.8687 8.30213 3969 | endloop 3970 | endfacet 3971 | facet normal -1.92296e-016 -0.5 0.866025 3972 | outer loop 3973 | vertex 0 27.1083 7.86311 3974 | vertex 10 27.1083 7.86311 3975 | vertex 0 27.8687 8.30213 3976 | endloop 3977 | endfacet 3978 | facet normal -2.11177e-016 -0.309017 0.951057 3979 | outer loop 3980 | vertex 10 26.2732 7.59178 3981 | vertex 10 27.1083 7.86311 3982 | vertex 0 27.1083 7.86311 3983 | endloop 3984 | endfacet 3985 | facet normal -2.11177e-016 -0.309017 0.951057 3986 | outer loop 3987 | vertex 0 26.2732 7.59178 3988 | vertex 10 26.2732 7.59178 3989 | vertex 0 27.1083 7.86311 3990 | endloop 3991 | endfacet 3992 | facet normal -2.20828e-016 -0.104528 0.994522 3993 | outer loop 3994 | vertex 10 25.4 7.5 3995 | vertex 10 26.2732 7.59178 3996 | vertex 0 26.2732 7.59178 3997 | endloop 3998 | endfacet 3999 | facet normal -2.20828e-016 -0.104528 0.994522 4000 | outer loop 4001 | vertex 0 25.4 7.5 4002 | vertex 10 25.4 7.5 4003 | vertex 0 26.2732 7.59178 4004 | endloop 4005 | endfacet 4006 | facet normal -2.20828e-016 0.104528 0.994522 4007 | outer loop 4008 | vertex 10 24.5268 7.59178 4009 | vertex 10 25.4 7.5 4010 | vertex 0 25.4 7.5 4011 | endloop 4012 | endfacet 4013 | facet normal -2.20828e-016 0.104528 0.994522 4014 | outer loop 4015 | vertex 0 24.5268 7.59178 4016 | vertex 10 24.5268 7.59178 4017 | vertex 0 25.4 7.5 4018 | endloop 4019 | endfacet 4020 | facet normal -2.11177e-016 0.309017 0.951057 4021 | outer loop 4022 | vertex 10 23.6917 7.86311 4023 | vertex 10 24.5268 7.59178 4024 | vertex 0 24.5268 7.59178 4025 | endloop 4026 | endfacet 4027 | facet normal -2.11177e-016 0.309017 0.951057 4028 | outer loop 4029 | vertex 0 23.6917 7.86311 4030 | vertex 10 23.6917 7.86311 4031 | vertex 0 24.5268 7.59178 4032 | endloop 4033 | endfacet 4034 | facet normal -1.92296e-016 0.5 0.866025 4035 | outer loop 4036 | vertex 10 22.9313 8.30213 4037 | vertex 10 23.6917 7.86311 4038 | vertex 0 23.6917 7.86311 4039 | endloop 4040 | endfacet 4041 | facet normal -1.92296e-016 0.5 0.866025 4042 | outer loop 4043 | vertex 0 22.9313 8.30213 4044 | vertex 10 22.9313 8.30213 4045 | vertex 0 23.6917 7.86311 4046 | endloop 4047 | endfacet 4048 | facet normal -1.65011e-016 0.66913 0.743145 4049 | outer loop 4050 | vertex 10 22.2788 8.88965 4051 | vertex 10 22.9313 8.30213 4052 | vertex 0 22.9313 8.30213 4053 | endloop 4054 | endfacet 4055 | facet normal -1.65011e-016 0.66913 0.743145 4056 | outer loop 4057 | vertex 0 22.2788 8.88965 4058 | vertex 10 22.2788 8.88965 4059 | vertex 0 22.9313 8.30213 4060 | endloop 4061 | endfacet 4062 | facet normal -1.30515e-016 0.809017 0.587785 4063 | outer loop 4064 | vertex 10 22.2788 8.88965 4065 | vertex 0 22.2788 8.88965 4066 | vertex 10 21.7627 9.6 4067 | endloop 4068 | endfacet 4069 | facet normal -1.30515e-016 0.809017 0.587785 4070 | outer loop 4071 | vertex 10 21.7627 9.6 4072 | vertex 0 22.2788 8.88965 4073 | vertex 0 21.7627 9.6 4074 | endloop 4075 | endfacet 4076 | facet normal -9.03135e-017 0.913546 0.406736 4077 | outer loop 4078 | vertex 10 21.7627 9.6 4079 | vertex 0 21.7627 9.6 4080 | vertex 10 21.4056 10.4021 4081 | endloop 4082 | endfacet 4083 | facet normal -9.03135e-017 0.913546 0.406736 4084 | outer loop 4085 | vertex 10 21.4056 10.4021 4086 | vertex 0 21.7627 9.6 4087 | vertex 0 21.4056 10.4021 4088 | endloop 4089 | endfacet 4090 | endsolid OpenSCAD_Model 4091 | -------------------------------------------------------------------------------- /3D Files/syringePumpConstants.scad: -------------------------------------------------------------------------------- 1 | 2 | /* === Project-universal Constants === */ 3 | 4 | //Not all of these variables are used in this specific model, 5 | //but the same variable set is used across all models in this project. 6 | 7 | $fs = 0.1; 8 | 9 | inch = 25.4; //for mm conversion 10 | 11 | //width of base 12 | baseSizeY = 2*inch; 13 | centerY = baseSizeY / 2; //both axes go right down the middle of the base 14 | 15 | //stepper motor 16 | stepperZSize = 42; 17 | stepperYSize = 42; 18 | 19 | //608 bearing 20 | bearing608Height = 8.5; 21 | bearing608Diameter = 22.5; 22 | 23 | //height of holder for 80/20 screws 24 | mountPlateHeight = 5; 25 | 26 | //axis heights 27 | threadedAxisHeight = stepperZSize/2 + mountPlateHeight + 4; 28 | smoothAxisHeight = (threadedAxisHeight-6.6) / 2; 29 | smoothRodRadius = 4.2; 30 | 31 | //syringe properties 32 | barrelDiameter = 25; 33 | 34 | barrelSlotThickness = 3; 35 | barrelSlotHeight = 28; 36 | 37 | syringeCenterHeight = threadedAxisHeight + bearing608Diameter/2 + 4 + barrelDiameter/2; 38 | 39 | //fixes render oddities 40 | floatCorrection = 0.001; 41 | floatCorrection2 = 2*floatCorrection; 42 | 43 | //8020 mounting plate 44 | screwPlateSize = 25; 45 | screwRadius = 3.5; 46 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Open Syringe Pump 2 | 3 | Deliver small, accurate amounts of liquid. Good for food engineering, CNCs, and bioscience. Cheaper and more flexible than the $1000+ commercial solutions. 4 | 5 | This was the first open-source syringe pump, back when 3D printing and open-source hardware took off circa 2015. It saw practical use in many lab and hobby environments. I personally used it in [animal training experiments](https://github.com/manimino/ShrewDriver) to deliver juice rewards. 6 | 7 | Successors improved on this design substantially. If you're making a new syringe pump, go find a newer design instead. This repo's for legacy reasons now, to support anyone with one of these pumps. 8 | 9 | ![4 syringe pumps](img/4pumps.jpg) 10 | ![left side](img/pump.jpg) 11 | ![right side](img/sidepump.jpg) 12 | 13 | If you want to build one, refer to the [Assembly instructions](instructions.md) and [Electronics + Printing doc](./Syringe%20Pump%20Guide.docx). 14 | 15 | ## Usage 16 | 17 | The face buttons provide manual operation - adjust bolus size and push / pull. 18 | 19 | It can be triggered to push and pull liquid via the digital pin inputs, and it accepts more complex commands via serial over USB. 20 | 21 | ## Code Layout 22 | 23 | '3D files' contains OpenSCAD and STL files for customizing and printing the plastic pieces. 24 | 25 | 'syringePump' contains the Arduino code. 26 | 27 | It requires the AccelStepper library, which you can find in the 'libraries' dir. Copy it into your Arduino\libraries directory to use. You can also get the library from the author's page here: http://www.airspayce.com/mikem/arduino/AccelStepper/ 28 | 29 | ## Materials 30 | 31 | The total cost should come out to about $250 with shipping. So, that's 32 | substantially cheaper than a commercial syringe pump; they typically go 33 | for $1000+. 34 | 35 | Cost is not the only concern, though. What you get with this thing is: 36 | 37 | **- Hackability:** Open-source software and hardware all the way. Customize the hardware and software to do anything you need. 38 | 39 | **- Modularity:** You can swap out each component for another one of your choosing. Exceptions and concerns noted below. 40 | 41 | **- Extendability:** Want to add [Ethernet]http://arduino.cc/en/Main/ArduinoEthernetShield) or [Bluetooth]http://www.adafruit.com/product/1628)? Both shields are compatible, just stack them on. This [SD card shield]https://www.adafruit.com/product/1141) is compatible too if you want to add data logging. 42 | 43 | **- Ease of assembly:** Minimal soldering required, and tutorials + vendor support are available for most components. 44 | 45 | **- Availability of components:** 46 | Everything's off-the-shelf from stable sources (Adafruit, SparkFun, 47 | Amazon, McMaster-Carr). If you're in the US, all parts should arrive in 48 | well under two weeks. 49 | 50 | ## Electronic Components: 51 | 52 | | Purpose | Product Link | Vendor | Cost (not including shipping) | Notes | 53 | |----------------------------------|----------------------------------------------------------------------------|----------|-------------------------------|----------------------------------------------------------------------------------------------------------------------------| 54 | | Microcontroller | Arduino Uno R3 | Adafruit | $24.95 | -- | 55 | | Stepper Motor | NEMA 17 stepper motor, 12V, 1.3A, Holding Torque 40N*cm. Model 42HS4013A4. | Adafruit | $18.50 | Plenty of power for pushing even thick liquids. | 56 | | Stepper Motor Driver | Big Easy Driver | Sparkfun | $14.95 | Attach to digital pins 2 and 3. | 57 | | User Interface Shield | LCD button shield | Sparkfun | $12.95 | Uses digital pins 4 through 9. | 58 | | Power Source | 24V 1A power supply | Jameco | $11.95 | -- | 59 | | Power Switch | Inline Power Switch | Adafruit | $2.50 | -- | 60 | | Power Jack | Terminal Power Jack | Adafruit | $2.00 | -- | 61 | | Enclosure | Arduino Project Enclosure | Amazon | $8.95 | Fits nicely to the Arduino and to the aluminum rail. Only the bottom half is used. | 62 | | Trigger Inputs & Driver Mounting | Proto-Screwshield (Wingshield) R3 Kit for Arduino | Adafruit | $14.95 | A convenient way to expose digital pins so you can send triggers to the syringe pump. Also fits the Easy Driver perfectly. | 63 | 64 | ## Mechanical Components: 65 | 66 | | Purpose | Product Link | Vendor | Cost (not including shipping) | Notes | 67 | |---------------------------------------|----------------------------------------------------------------|----------------|-------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------| 68 | | Mounting Rail | 18-inch piece of 1"x2" 80/20 extruded aluminum rail. | Amazon | $8.97 | Mounting everything on the rail makes the project modular and space-efficient. And the 18" length means your syringe pump will fit into most rack mount setups. | 69 | | Motor mount | STL + SCAD file (GitHub) | | -- | 3D printed | 70 | | Syringe plunger attachment | STL + SCAD file (GitHub) | | -- | 3D printed | 71 | | Syringe barrel holder | STL + SCAD file (GitHub) | | -- | 3D printed | 72 | | Syringe tip holder | STL + SCAD file (GitHub) | | -- | 3D printed | 73 | | Nuts and bolts for attaching to 80/20 | 80/20 Attachment Nuts and Bolts, Economy, 25-pack | Amazon | $10.00 | Cheap and effective. | 74 | | Shaft coupler | 5mm - 8mm Rigid Coupling 25x30mm For CNC Stepper Motor ST-RC03 | Stepper Online | $7.47 | Attaches the stepper motor to the threaded rod. | 75 | | Threaded Rod | M8 Threaded Rod, Type 316 Stainless Steel, 1m length | McMaster-Carr | $14.72 | Comes as a 1m stick. You'll want to cut this down to around 300mm. There are many ways to do this; I used a chop saw. | 76 | | M8 Nut for Threaded Rod | M8 Nut, Type 316 Stainless Steel, 50-pack | McMaster-Carr | $13.38 | -- | 77 | | Smooth rod | 8mm rod, 330mm long | Amazon | $13.39 | -- | 78 | | Linear Bearing | LM8UU 12-pack | Amazon | $13.00 | -- | 79 | | Syringe | 30mL syringe 5-pack | Amazon | $7.99 | -- 80 | -------------------------------------------------------------------------------- /Syringe Pump Guide.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manimino/OpenSyringePump/3b0604bdb053f92736a2a479deeaa0e6c1782c4d/Syringe Pump Guide.docx -------------------------------------------------------------------------------- /diagrams/12v-easyDriver.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manimino/OpenSyringePump/3b0604bdb053f92736a2a479deeaa0e6c1782c4d/diagrams/12v-easyDriver.fzz -------------------------------------------------------------------------------- /diagrams/12v-easyDriver_bb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manimino/OpenSyringePump/3b0604bdb053f92736a2a479deeaa0e6c1782c4d/diagrams/12v-easyDriver_bb.png -------------------------------------------------------------------------------- /diagrams/24V_BigEasyDriver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manimino/OpenSyringePump/3b0604bdb053f92736a2a479deeaa0e6c1782c4d/diagrams/24V_BigEasyDriver.png -------------------------------------------------------------------------------- /img/4pumps.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manimino/OpenSyringePump/3b0604bdb053f92736a2a479deeaa0e6c1782c4d/img/4pumps.jpg -------------------------------------------------------------------------------- /img/assembly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manimino/OpenSyringePump/3b0604bdb053f92736a2a479deeaa0e6c1782c4d/img/assembly.png -------------------------------------------------------------------------------- /img/assembly2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manimino/OpenSyringePump/3b0604bdb053f92736a2a479deeaa0e6c1782c4d/img/assembly2.png -------------------------------------------------------------------------------- /img/assembly3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manimino/OpenSyringePump/3b0604bdb053f92736a2a479deeaa0e6c1782c4d/img/assembly3.png -------------------------------------------------------------------------------- /img/assembly4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manimino/OpenSyringePump/3b0604bdb053f92736a2a479deeaa0e6c1782c4d/img/assembly4.png -------------------------------------------------------------------------------- /img/assembly5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manimino/OpenSyringePump/3b0604bdb053f92736a2a479deeaa0e6c1782c4d/img/assembly5.png -------------------------------------------------------------------------------- /img/electronics.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manimino/OpenSyringePump/3b0604bdb053f92736a2a479deeaa0e6c1782c4d/img/electronics.jpg -------------------------------------------------------------------------------- /img/pump.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manimino/OpenSyringePump/3b0604bdb053f92736a2a479deeaa0e6c1782c4d/img/pump.jpg -------------------------------------------------------------------------------- /img/sidepump.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manimino/OpenSyringePump/3b0604bdb053f92736a2a479deeaa0e6c1782c4d/img/sidepump.jpg -------------------------------------------------------------------------------- /instructions.md: -------------------------------------------------------------------------------- 1 | # Assembly 2 | 3 | ![assembly steps](img/assembly.png) 4 | 5 | ![assembly steps](img/assembly2.png) 6 | 7 | ![assembly steps](img/assembly3.png) 8 | 9 | ![assembly steps](img/assembly4.png) 10 | 11 | ![assembly steps](img/assembly5.png) 12 | -------------------------------------------------------------------------------- /libraries/LCDKeypad/LCDKeypad.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | LCDKeypad.cpp 3 | */ 4 | #if ARDUINO >= 100 5 | #include "Arduino.h" 6 | #else 7 | #include "WProgram.h" 8 | #endif 9 | 10 | 11 | // include this library's description file 12 | 13 | #include 14 | #include "LCDKeypad.h" 15 | 16 | LCDKeypad::LCDKeypad() : LiquidCrystal(8, 9, 4, 5, 6, 7) 17 | { 18 | } 19 | 20 | int LCDKeypad::button() 21 | { 22 | static int NUM_KEYS=5; 23 | static int adc_key_val[5] ={ 24 | 30, 150, 360, 535, 760 }; 25 | int k, input; 26 | input=analogRead(0); 27 | for (k = 0; k < NUM_KEYS; k++) 28 | { 29 | if (input < adc_key_val[k]) 30 | { 31 | return k; 32 | } 33 | } 34 | if (k >= NUM_KEYS) 35 | k = -1; // No valid key pressed 36 | return k; 37 | } -------------------------------------------------------------------------------- /libraries/LCDKeypad/LCDKeypad.h: -------------------------------------------------------------------------------- 1 | /* 2 | LCDKeypad.h 3 | */ 4 | 5 | // ensure this library description is only included once 6 | #ifndef LCDKeypad_h 7 | #define LCDKeypad_h 8 | 9 | // library interface description 10 | #define KEYPAD_NONE -1 11 | #define KEYPAD_RIGHT 0 12 | #define KEYPAD_UP 1 13 | #define KEYPAD_DOWN 2 14 | #define KEYPAD_LEFT 3 15 | #define KEYPAD_SELECT 4 16 | 17 | class LCDKeypad: public LiquidCrystal 18 | { 19 | public: 20 | LCDKeypad(); 21 | int button(); 22 | }; 23 | 24 | #endif 25 | 26 | -------------------------------------------------------------------------------- /libraries/LCDKeypad/examples/GuessTheNumber/GuessTheNumber.pde: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #define MINVAL 1 5 | #define MAXVAL 1000 6 | 7 | LCDKeypad lcd; 8 | 9 | byte c_up[8] = { 10 | B00100, 11 | B01110, 12 | B10101, 13 | B00100, 14 | B00100, 15 | B00100, 16 | B00100, 17 | B00100, 18 | }; 19 | 20 | byte c_down[8] = { 21 | B00100, 22 | B00100, 23 | B00100, 24 | B00100, 25 | B00100, 26 | B10101, 27 | B01110, 28 | B00100, 29 | }; 30 | 31 | byte c_select[8] = { 32 | B00000, 33 | B01110, 34 | B11111, 35 | B11111, 36 | B11111, 37 | B11111, 38 | B01110, 39 | B00000, 40 | }; 41 | 42 | void setup() 43 | { 44 | int i,k; 45 | 46 | lcd.createChar(1,c_select); 47 | lcd.createChar(2,c_up); 48 | lcd.createChar(3,c_down); 49 | lcd.begin(16, 2); 50 | lcd.clear(); 51 | lcd.print(" Guess"); 52 | lcd.setCursor(0,1); 53 | lcd.print(" The Number"); 54 | delay(3000); 55 | for (k=0;k<3;k++) 56 | { 57 | lcd.scrollDisplayLeft(); 58 | delay(200); 59 | } 60 | for (i=0;i<3;i++) 61 | { 62 | for (k=0;k<6;k++) 63 | { 64 | lcd.scrollDisplayRight(); 65 | delay(200); 66 | } 67 | for (k=0;k<6;k++) 68 | { 69 | lcd.scrollDisplayLeft(); 70 | delay(200); 71 | } 72 | } 73 | for (k=0;k<16;k++) 74 | { 75 | lcd.scrollDisplayLeft(); 76 | delay(200); 77 | } 78 | } 79 | 80 | void loop() 81 | { 82 | int bottom=MINVAL, top=MAXVAL; 83 | int trynumber=0; 84 | int guess, buttonPressed; 85 | 86 | lcd.clear(); 87 | lcd.print("Make up a number"); 88 | lcd.setCursor(0,1); 89 | lcd.print("from "); 90 | lcd.print(MINVAL,DEC); 91 | lcd.print(" to "); 92 | lcd.print(MAXVAL,DEC); 93 | lcd.print(" "); 94 | waitButton(); 95 | waitReleaseButton(); 96 | do 97 | { 98 | lcd.clear(); 99 | guess=bottom+(top-bottom)/2; 100 | trynumber++; 101 | 102 | lcd.print("Is it "); 103 | lcd.print(guess,DEC); 104 | lcd.print("?"); 105 | lcd.setCursor(0,1); 106 | lcd.write(1); 107 | lcd.write(' '); 108 | lcd.write(2); 109 | lcd.write(' '); 110 | lcd.write(3); 111 | lcd.write(' '); 112 | do 113 | { 114 | buttonPressed=waitButton(); 115 | } 116 | while(!(buttonPressed==KEYPAD_SELECT || buttonPressed==KEYPAD_UP || buttonPressed==KEYPAD_DOWN)); 117 | lcd.setCursor(0,1); 118 | lcd.write(buttonPressed==KEYPAD_SELECT?1:' '); 119 | lcd.write(' '); 120 | lcd.write(buttonPressed==KEYPAD_UP?2:' '); 121 | lcd.write(' '); 122 | lcd.write(buttonPressed==KEYPAD_DOWN?3:' '); 123 | delay(100); 124 | waitReleaseButton(); 125 | if (buttonPressed==KEYPAD_UP) 126 | { 127 | bottom=constrain(guess+1,MINVAL,top); 128 | } 129 | else if (buttonPressed==KEYPAD_DOWN) 130 | { 131 | top=constrain(guess-1,bottom,MAXVAL); 132 | } 133 | } 134 | while (buttonPressed!=KEYPAD_SELECT && top!=bottom); 135 | lcd.clear(); 136 | if (top==bottom) 137 | { 138 | lcd.print("It must be "); 139 | guess=top; 140 | } 141 | else 142 | { 143 | lcd.print("It is "); 144 | } 145 | lcd.print(guess,DEC); 146 | lcd.print("!"); 147 | lcd.setCursor(0,1); 148 | lcd.print("Tries: "); 149 | lcd.print(trynumber,DEC); 150 | lcd.print(" "); 151 | waitButton(); 152 | waitReleaseButton(); 153 | } 154 | 155 | int waitButton() 156 | { 157 | int buttonPressed; 158 | waitReleaseButton; 159 | lcd.blink(); 160 | while((buttonPressed=lcd.button())==KEYPAD_NONE) 161 | { 162 | } 163 | delay(50); 164 | lcd.noBlink(); 165 | return buttonPressed; 166 | } 167 | 168 | void waitReleaseButton() 169 | { 170 | delay(50); 171 | while(lcd.button()!=KEYPAD_NONE) 172 | { 173 | } 174 | delay(50); 175 | } 176 | 177 | 178 | -------------------------------------------------------------------------------- /libraries/LCDKeypad/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For Test 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | LCDKeypad KEYWORD1 10 | 11 | ####################################### 12 | # Methods and Functions (KEYWORD2) 13 | ####################################### 14 | 15 | button KEYWORD2 16 | 17 | ####################################### 18 | # Instances (KEYWORD2) 19 | ####################################### 20 | 21 | ####################################### 22 | # Constants (LITERAL1) 23 | ####################################### 24 | KEYPAD_NONE LITERAL1 25 | KEYPAD_RIGHT LITERAL1 26 | KEYPAD_UP LITERAL1 27 | KEYPAD_DOWN LITERAL1 28 | KEYPAD_LEFT LITERAL1 29 | KEYPAD_SELECT LITERAL1 30 | -------------------------------------------------------------------------------- /libraries/LCDKeypad/readme.txt: -------------------------------------------------------------------------------- 1 | Unzip this folder to: 2 | (Arduino sketchbook folder)\libraries 3 | , then restart Arduino. 4 | 5 | Extends the LiquidCrystal library. 6 | -------------------------------------------------------------------------------- /libraries/readme.txt: -------------------------------------------------------------------------------- 1 | For information on installing libraries, see: http://arduino.cc/en/Guide/Libraries 2 | -------------------------------------------------------------------------------- /syringePump/syringePump.ino: -------------------------------------------------------------------------------- 1 | // Controls a stepper motor via an LCD keypad shield. 2 | // Accepts triggers and serial commands. 3 | // To run, you will need the LCDKeypad library installed - see libraries dir. 4 | 5 | // Serial commands: 6 | // Set serial baud rate to 57600 and terminate commands with newlines. 7 | // Send a number, e.g. "100", to set bolus size. 8 | // Send a "+" to push that size bolus. 9 | // Send a "-" to pull that size bolus. 10 | 11 | #include 12 | #include 13 | 14 | /* -- Constants -- */ 15 | #define SYRINGE_VOLUME_ML 30.0 16 | #define SYRINGE_BARREL_LENGTH_MM 80.0 17 | 18 | #define THREADED_ROD_PITCH 1.25 19 | #define STEPS_PER_REVOLUTION 200.0 20 | #define MICROSTEPS_PER_STEP 16.0 21 | 22 | #define SPEED_MICROSECONDS_DELAY 100 //longer delay = lower speed 23 | 24 | long ustepsPerMM = MICROSTEPS_PER_STEP * STEPS_PER_REVOLUTION / THREADED_ROD_PITCH; 25 | long ustepsPerML = (MICROSTEPS_PER_STEP * STEPS_PER_REVOLUTION * SYRINGE_BARREL_LENGTH_MM) / (SYRINGE_VOLUME_ML * THREADED_ROD_PITCH ); 26 | 27 | /* -- Pin definitions -- */ 28 | int motorDirPin = 2; 29 | int motorStepPin = 3; 30 | 31 | int triggerPin = A3; 32 | int bigTriggerPin = A4; 33 | 34 | /* -- Keypad states -- */ 35 | int adc_key_val[5] ={30, 150, 360, 535, 760 }; 36 | 37 | enum{ KEY_RIGHT, KEY_UP, KEY_DOWN, KEY_LEFT, KEY_SELECT, KEY_NONE}; 38 | int NUM_KEYS = 5; 39 | int adc_key_in; 40 | int key = KEY_NONE; 41 | 42 | /* -- Enums and constants -- */ 43 | enum{PUSH,PULL}; //syringe movement direction 44 | enum{MAIN, BOLUS_MENU}; //UI states 45 | 46 | const int mLBolusStepsLength = 9; 47 | float mLBolusSteps[9] = {0.001, 0.005, 0.010, 0.050, 0.100, 0.500, 1.000, 5.000, 10.000}; 48 | 49 | /* -- Default Parameters -- */ 50 | float mLBolus = 0.500; //default bolus size 51 | float mLBigBolus = 1.000; //default large bolus size 52 | float mLUsed = 0.0; 53 | int mLBolusStepIdx = 3; //0.05 mL increments at first 54 | float mLBolusStep = mLBolusSteps[mLBolusStepIdx]; 55 | 56 | long stepperPos = 0; //in microsteps 57 | char charBuf[16]; 58 | 59 | //debounce params 60 | long lastKeyRepeatAt = 0; 61 | long keyRepeatDelay = 400; 62 | long keyDebounce = 125; 63 | int prevKey = KEY_NONE; 64 | 65 | //menu stuff 66 | int uiState = MAIN; 67 | 68 | //triggering 69 | int prevBigTrigger = HIGH; 70 | int prevTrigger = HIGH; 71 | 72 | //serial 73 | String serialStr = ""; 74 | boolean serialStrReady = false; 75 | 76 | /* -- Initialize libraries -- */ 77 | LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7); 78 | 79 | void setup(){ 80 | /* LCD setup */ 81 | lcd.begin(16, 2); 82 | lcd.clear(); 83 | 84 | lcd.print("SyringePump v2.0"); 85 | 86 | /* Triggering setup */ 87 | pinMode(triggerPin, INPUT); 88 | pinMode(bigTriggerPin, INPUT); 89 | digitalWrite(triggerPin, HIGH); //enable pullup resistor 90 | digitalWrite(bigTriggerPin, HIGH); //enable pullup resistor 91 | 92 | /* Motor Setup */ 93 | pinMode(motorDirPin, OUTPUT); 94 | pinMode(motorStepPin, OUTPUT); 95 | 96 | /* Serial setup */ 97 | //Note that serial commands must be terminated with a newline 98 | //to be processed. Check this setting in your serial monitor if 99 | //serial commands aren't doing anything. 100 | Serial.begin(57600); //Note that your serial connection must be set to 57600 to work! 101 | } 102 | 103 | void loop(){ 104 | //check for LCD updates 105 | readKey(); 106 | 107 | //look for triggers on trigger lines 108 | checkTriggers(); 109 | 110 | //check serial port for new commands 111 | readSerial(); 112 | if(serialStrReady){ 113 | processSerial(); 114 | } 115 | } 116 | 117 | void checkTriggers(){ 118 | //check low-reward trigger line 119 | int pushTriggerValue = digitalRead(triggerPin); 120 | if(pushTriggerValue == HIGH && prevTrigger == LOW){ 121 | bolus(PUSH); 122 | updateScreen(); 123 | } 124 | prevTrigger = pushTriggerValue; 125 | 126 | //check high-reward trigger line 127 | int bigTriggerValue = digitalRead(bigTriggerPin); 128 | if(bigTriggerValue == HIGH && prevBigTrigger == LOW){ 129 | //push big reward amount 130 | float mLBolusTemp = mLBolus; 131 | mLBolus = mLBigBolus; 132 | bolus(PUSH); 133 | mLBolus = mLBolusTemp; 134 | 135 | updateScreen(); 136 | } 137 | prevBigTrigger = bigTriggerValue; 138 | } 139 | 140 | void readSerial(){ 141 | //pulls in characters from serial port as they arrive 142 | //builds serialStr and sets ready flag when newline is found 143 | while (Serial.available()) { 144 | char inChar = (char)Serial.read(); 145 | if (inChar == '\n') { 146 | serialStrReady = true; 147 | } 148 | else{ 149 | serialStr += inChar; 150 | } 151 | } 152 | } 153 | 154 | void processSerial(){ 155 | //process serial commands as they are read in 156 | if(serialStr.equals("+")){ 157 | bolus(PUSH); 158 | updateScreen(); 159 | } 160 | else if(serialStr.equals("-")){ 161 | bolus(PULL); 162 | updateScreen(); 163 | } 164 | else if(serialStr.toInt() != 0){ 165 | int uLbolus = serialStr.toInt(); 166 | mLBolus = (float)uLbolus / 1000.0; 167 | updateScreen(); 168 | } 169 | else{ 170 | Serial.write("Invalid command: ["); 171 | char buf[40]; 172 | serialStr.toCharArray(buf, 40); 173 | Serial.write(buf); 174 | Serial.write("]\n"); 175 | } 176 | serialStrReady = false; 177 | serialStr = ""; 178 | } 179 | 180 | void bolus(int direction){ 181 | //Move stepper. Will not return until stepper is done moving. 182 | 183 | //change units to steps 184 | long steps = (mLBolus * ustepsPerML); 185 | if(direction == PUSH){ 186 | digitalWrite(motorDirPin, HIGH); 187 | steps = mLBolus * ustepsPerML; 188 | mLUsed += mLBolus; 189 | } 190 | else if(direction == PULL){ 191 | digitalWrite(motorDirPin, LOW); 192 | if((mLUsed-mLBolus) > 0){ 193 | mLUsed -= mLBolus; 194 | } 195 | else{ 196 | mLUsed = 0; 197 | } 198 | } 199 | 200 | float usDelay = SPEED_MICROSECONDS_DELAY; //can go down to 20 or 30 201 | 202 | for(long i=0; i < steps; i++){ 203 | digitalWrite(motorStepPin, HIGH); 204 | delayMicroseconds(usDelay); 205 | 206 | digitalWrite(motorStepPin, LOW); 207 | delayMicroseconds(usDelay); 208 | } 209 | 210 | } 211 | 212 | void readKey(){ 213 | //Some UI niceness here. 214 | //When user holds down a key, it will repeat every so often (keyRepeatDelay). 215 | //But when user presses and releases a key, 216 | //the key becomes responsive again after the shorter debounce period (keyDebounce). 217 | 218 | adc_key_in = analogRead(0); 219 | key = get_key(adc_key_in); // convert into key press 220 | 221 | long currentTime = millis(); 222 | long timeSinceLastPress = (currentTime-lastKeyRepeatAt); 223 | 224 | boolean processThisKey = false; 225 | if (prevKey == key && timeSinceLastPress > keyRepeatDelay){ 226 | processThisKey = true; 227 | } 228 | if(prevKey == KEY_NONE && timeSinceLastPress > keyDebounce){ 229 | processThisKey = true; 230 | } 231 | if(key == KEY_NONE){ 232 | processThisKey = false; 233 | } 234 | 235 | prevKey = key; 236 | 237 | if(processThisKey){ 238 | doKeyAction(key); 239 | lastKeyRepeatAt = currentTime; 240 | } 241 | } 242 | 243 | void doKeyAction(unsigned int key){ 244 | if(key == KEY_NONE){ 245 | return; 246 | } 247 | 248 | if(key == KEY_SELECT){ 249 | if(uiState == MAIN){ 250 | uiState = BOLUS_MENU; 251 | } 252 | else if(BOLUS_MENU){ 253 | uiState = MAIN; 254 | } 255 | } 256 | 257 | if(uiState == MAIN){ 258 | if(key == KEY_LEFT){ 259 | bolus(PULL); 260 | } 261 | if(key == KEY_RIGHT){ 262 | bolus(PUSH); 263 | } 264 | if(key == KEY_UP){ 265 | mLBolus += mLBolusStep; 266 | } 267 | if(key == KEY_DOWN){ 268 | if((mLBolus - mLBolusStep) > 0){ 269 | mLBolus -= mLBolusStep; 270 | } 271 | else{ 272 | mLBolus = 0; 273 | } 274 | } 275 | } 276 | else if(uiState == BOLUS_MENU){ 277 | if(key == KEY_LEFT){ 278 | //nothin' 279 | } 280 | if(key == KEY_RIGHT){ 281 | //nothin' 282 | } 283 | if(key == KEY_UP){ 284 | if(mLBolusStepIdx < mLBolusStepsLength-1){ 285 | mLBolusStepIdx++; 286 | mLBolusStep = mLBolusSteps[mLBolusStepIdx]; 287 | } 288 | } 289 | if(key == KEY_DOWN){ 290 | if(mLBolusStepIdx > 0){ 291 | mLBolusStepIdx -= 1; 292 | mLBolusStep = mLBolusSteps[mLBolusStepIdx]; 293 | } 294 | } 295 | } 296 | 297 | updateScreen(); 298 | } 299 | 300 | void updateScreen(){ 301 | //build strings for upper and lower lines of screen 302 | String s1; //upper line 303 | String s2; //lower line 304 | 305 | if(uiState == MAIN){ 306 | s1 = String("Used ") + decToString(mLUsed) + String(" mL"); 307 | s2 = (String("Bolus ") + decToString(mLBolus) + String(" mL")); 308 | } 309 | else if(uiState == BOLUS_MENU){ 310 | s1 = String("Menu> BolusStep"); 311 | s2 = decToString(mLBolusStep); 312 | } 313 | 314 | //do actual screen update 315 | lcd.clear(); 316 | 317 | s2.toCharArray(charBuf, 16); 318 | lcd.setCursor(0, 1); //line=2, x=0 319 | lcd.print(charBuf); 320 | 321 | s1.toCharArray(charBuf, 16); 322 | lcd.setCursor(0, 0); //line=1, x=0 323 | lcd.print(charBuf); 324 | } 325 | 326 | 327 | // Convert ADC value to key number 328 | int get_key(unsigned int input){ 329 | int k; 330 | for (k = 0; k < NUM_KEYS; k++){ 331 | if (input < adc_key_val[k]){ 332 | return k; 333 | } 334 | } 335 | if (k >= NUM_KEYS){ 336 | k = KEY_NONE; // No valid key pressed 337 | } 338 | return k; 339 | } 340 | 341 | String decToString(float decNumber){ 342 | //not a general use converter! Just good for the numbers we're working with here. 343 | int wholePart = decNumber; //truncate 344 | int decPart = round(abs(decNumber*1000)-abs(wholePart*1000)); //3 decimal places 345 | String strZeros = String(""); 346 | if(decPart < 10){ 347 | strZeros = String("00"); 348 | } 349 | else if(decPart < 100){ 350 | strZeros = String("0"); 351 | } 352 | return String(wholePart) + String('.') + strZeros + String(decPart); 353 | } 354 | --------------------------------------------------------------------------------