├── Images and Videos ├── Images │ ├── Bot_images │ │ ├── Real_Bot_1.jpeg │ │ ├── Real_Bot_2.jpeg │ │ ├── Real_Bot_3.jpeg │ │ └── Real_Bot_4.jpeg │ └── Shapes │ │ ├── L-shape.png │ │ ├── Line.png │ │ ├── Square.png │ │ └── Triangle.png └── Videos │ ├── Bot_Propagation.mp4 │ └── Opencv_Bot_Recognition.mp4 ├── Mechanical Design ├── Bot_3d pdf.PDF └── Solidworks_design │ ├── CAD_and_circuit_images │ ├── Img1.jpeg │ ├── Img2.jpeg │ ├── Img3.jpeg │ ├── Img4.jpeg │ ├── Img5.png │ └── Img6.jpeg │ ├── Final Assmebly.SLDASM │ ├── base.SLDPRT │ ├── caster-metal-wheel-1.snapshot.2 │ └── Caster Wheel.stp │ ├── dc-motor-2 │ └── motor │ │ ├── Part1.SLDPRT │ │ ├── Part2.SLDPRT │ │ ├── Part3.SLDPRT │ │ ├── Part4.SLDPRT │ │ ├── Part5.SLDPRT │ │ ├── Part6.SLDPRT │ │ ├── Part7.SLDPRT │ │ ├── arbor 1.SLDPRT │ │ └── motor assembly.SLDASM │ ├── esp8266-nodemcu-1.snapshot.6 │ └── Esp8266 Node MCU.STEP │ ├── height stable.SLDPRT │ ├── l298n-stepper-motor-driver-red-1.snapshot.3 │ ├── L298N Stepper Motor Driver (Red).SLDASM │ └── L298N Stepper Motor Driver (Red).SLDPRT │ ├── mpu-92-65-1.snapshot.2 │ └── MPU 92_65 │ │ ├── C1.SLDPRT │ │ ├── C2.SLDPRT │ │ ├── MP92.SLDPRT │ │ ├── MPU9250.SLDASM │ │ ├── PCB.SLDPRT │ │ ├── R1.SLDPRT │ │ └── V1.SLDPRT │ ├── robo-s-wheel-1.snapshot.2 │ └── tyre.SLDPRT │ ├── steel-angle-bracket-1.snapshot.2 │ └── angled part.SLDPRT │ └── top.SLDPRT ├── Poster and Report ├── Swarm_Poster.jpg └── Swarm_Robotics(Srishti) Report.pdf ├── README.md └── src ├── Nodemcu_Code ├── Data Flowchart.html ├── final_bot │ └── final_bot.ino └── flowchart_final.html └── Opencv_Code ├── flowchart.html └── qr_code_detection.py /Images and Videos/Images/Bot_images/Real_Bot_1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Images and Videos/Images/Bot_images/Real_Bot_1.jpeg -------------------------------------------------------------------------------- /Images and Videos/Images/Bot_images/Real_Bot_2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Images and Videos/Images/Bot_images/Real_Bot_2.jpeg -------------------------------------------------------------------------------- /Images and Videos/Images/Bot_images/Real_Bot_3.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Images and Videos/Images/Bot_images/Real_Bot_3.jpeg -------------------------------------------------------------------------------- /Images and Videos/Images/Bot_images/Real_Bot_4.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Images and Videos/Images/Bot_images/Real_Bot_4.jpeg -------------------------------------------------------------------------------- /Images and Videos/Images/Shapes/L-shape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Images and Videos/Images/Shapes/L-shape.png -------------------------------------------------------------------------------- /Images and Videos/Images/Shapes/Line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Images and Videos/Images/Shapes/Line.png -------------------------------------------------------------------------------- /Images and Videos/Images/Shapes/Square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Images and Videos/Images/Shapes/Square.png -------------------------------------------------------------------------------- /Images and Videos/Images/Shapes/Triangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Images and Videos/Images/Shapes/Triangle.png -------------------------------------------------------------------------------- /Images and Videos/Videos/Bot_Propagation.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Images and Videos/Videos/Bot_Propagation.mp4 -------------------------------------------------------------------------------- /Images and Videos/Videos/Opencv_Bot_Recognition.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Images and Videos/Videos/Opencv_Bot_Recognition.mp4 -------------------------------------------------------------------------------- /Mechanical Design/Bot_3d pdf.PDF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Bot_3d pdf.PDF -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/CAD_and_circuit_images/Img1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/CAD_and_circuit_images/Img1.jpeg -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/CAD_and_circuit_images/Img2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/CAD_and_circuit_images/Img2.jpeg -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/CAD_and_circuit_images/Img3.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/CAD_and_circuit_images/Img3.jpeg -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/CAD_and_circuit_images/Img4.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/CAD_and_circuit_images/Img4.jpeg -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/CAD_and_circuit_images/Img5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/CAD_and_circuit_images/Img5.png -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/CAD_and_circuit_images/Img6.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/CAD_and_circuit_images/Img6.jpeg -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/Final Assmebly.SLDASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/Final Assmebly.SLDASM -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/base.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/base.SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/caster-metal-wheel-1.snapshot.2/Caster Wheel.stp: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | /* Generated by software containing ST-Developer 4 | * from STEP Tools, Inc. (www.steptools.com) 5 | */ 6 | 7 | FILE_DESCRIPTION( 8 | /* description */ (''), 9 | /* implementation_level */ '2;1'); 10 | 11 | FILE_NAME( 12 | /* name */ 'C:\\Users\\Vinayak J\\Desktop\\Caster Wheel.stp', 13 | /* time_stamp */ '2020-02-13T13:20:55+06:00', 14 | /* author */ ('DesignPro'), 15 | /* organization */ (''), 16 | /* preprocessor_version */ 'ST-DEVELOPER v17.2', 17 | /* originating_system */ 'Autodesk Inventor 2019', 18 | /* authorisation */ ''); 19 | 20 | FILE_SCHEMA (('AUTOMOTIVE_DESIGN { 1 0 10303 214 3 1 1 }')); 21 | ENDSEC; 22 | 23 | DATA; 24 | #10=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#539,#540, 25 | #541,#542,#543,#544,#545,#546,#547,#548,#549,#550,#551,#552,#553,#554,#555, 26 | #556,#557,#558,#559,#560,#561,#562,#563,#564,#565,#566,#567,#568,#569,#570, 27 | #571,#572),#1107); 28 | #11=SHAPE_REPRESENTATION_RELATIONSHIP('SRR','None',#1114,#12); 29 | #12=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#13),#1106); 30 | #13=MANIFOLD_SOLID_BREP('Solid1',#606); 31 | #14=( 32 | BOUNDED_SURFACE() 33 | B_SPLINE_SURFACE(2,2,((#1075,#1076,#1077,#1078,#1079,#1080,#1081,#1082, 34 | #1083),(#1084,#1085,#1086,#1087,#1088,#1089,#1090,#1091,#1092),(#1093,#1094, 35 | #1095,#1096,#1097,#1098,#1099,#1100,#1101)),.UNSPECIFIED.,.F.,.T.,.F.) 36 | B_SPLINE_SURFACE_WITH_KNOTS((3,3),(3,2,2,2,3),(-1.56233955305045,-0.557909055707331), 37 | (-3.14159265358979,-1.5707963267949,0.,1.5707963267949,3.14159265358979), 38 | .UNSPECIFIED.) 39 | GEOMETRIC_REPRESENTATION_ITEM() 40 | RATIONAL_B_SPLINE_SURFACE(((1.,0.707106781186548,1.,0.707106781186548,1., 41 | 0.707106781186548,1.,0.707106781186548,1.),(0.876518362680228,0.619792078085719, 42 | 0.876518362680228,0.619792078085719,0.876518362680228,0.619792078085719, 43 | 0.876518362680228,0.619792078085719,0.876518362680228),(1.,0.707106781186548, 44 | 1.,0.707106781186548,1.,0.707106781186548,1.,0.707106781186548,1.))) 45 | REPRESENTATION_ITEM('') 46 | SURFACE() 47 | ); 48 | #15=FACE_BOUND('',#88,.T.); 49 | #16=FACE_BOUND('',#89,.T.); 50 | #17=FACE_BOUND('',#90,.T.); 51 | #18=FACE_BOUND('',#92,.T.); 52 | #19=FACE_BOUND('',#94,.T.); 53 | #20=FACE_BOUND('',#97,.T.); 54 | #21=FACE_BOUND('',#100,.T.); 55 | #22=FACE_BOUND('',#103,.T.); 56 | #23=FACE_BOUND('',#106,.T.); 57 | #24=FACE_BOUND('',#116,.T.); 58 | #25=FACE_BOUND('',#117,.T.); 59 | #26=PLANE('',#652); 60 | #27=PLANE('',#655); 61 | #28=PLANE('',#656); 62 | #29=PLANE('',#661); 63 | #30=PLANE('',#665); 64 | #31=PLANE('',#673); 65 | #32=PLANE('',#679); 66 | #33=PLANE('',#685); 67 | #34=PLANE('',#691); 68 | #35=PLANE('',#695); 69 | #36=PLANE('',#700); 70 | #37=PLANE('',#708); 71 | #38=TOROIDAL_SURFACE('',#629,6.93038642329781,0.25); 72 | #39=TOROIDAL_SURFACE('',#635,25.75,0.25); 73 | #40=TOROIDAL_SURFACE('',#641,7.20648582596838,0.25); 74 | #41=TOROIDAL_SURFACE('',#647,25.75,0.25); 75 | #42=FACE_OUTER_BOUND('',#75,.T.); 76 | #43=FACE_OUTER_BOUND('',#76,.T.); 77 | #44=FACE_OUTER_BOUND('',#77,.T.); 78 | #45=FACE_OUTER_BOUND('',#78,.T.); 79 | #46=FACE_OUTER_BOUND('',#79,.T.); 80 | #47=FACE_OUTER_BOUND('',#80,.T.); 81 | #48=FACE_OUTER_BOUND('',#81,.T.); 82 | #49=FACE_OUTER_BOUND('',#82,.T.); 83 | #50=FACE_OUTER_BOUND('',#83,.T.); 84 | #51=FACE_OUTER_BOUND('',#84,.T.); 85 | #52=FACE_OUTER_BOUND('',#85,.T.); 86 | #53=FACE_OUTER_BOUND('',#86,.T.); 87 | #54=FACE_OUTER_BOUND('',#87,.T.); 88 | #55=FACE_OUTER_BOUND('',#91,.T.); 89 | #56=FACE_OUTER_BOUND('',#93,.T.); 90 | #57=FACE_OUTER_BOUND('',#95,.T.); 91 | #58=FACE_OUTER_BOUND('',#96,.T.); 92 | #59=FACE_OUTER_BOUND('',#98,.T.); 93 | #60=FACE_OUTER_BOUND('',#99,.T.); 94 | #61=FACE_OUTER_BOUND('',#101,.T.); 95 | #62=FACE_OUTER_BOUND('',#102,.T.); 96 | #63=FACE_OUTER_BOUND('',#104,.T.); 97 | #64=FACE_OUTER_BOUND('',#105,.T.); 98 | #65=FACE_OUTER_BOUND('',#107,.T.); 99 | #66=FACE_OUTER_BOUND('',#108,.T.); 100 | #67=FACE_OUTER_BOUND('',#109,.T.); 101 | #68=FACE_OUTER_BOUND('',#110,.T.); 102 | #69=FACE_OUTER_BOUND('',#111,.T.); 103 | #70=FACE_OUTER_BOUND('',#112,.T.); 104 | #71=FACE_OUTER_BOUND('',#113,.T.); 105 | #72=FACE_OUTER_BOUND('',#114,.T.); 106 | #73=FACE_OUTER_BOUND('',#115,.T.); 107 | #74=FACE_OUTER_BOUND('',#118,.T.); 108 | #75=EDGE_LOOP('',(#363,#364,#365,#366)); 109 | #76=EDGE_LOOP('',(#367,#368,#369,#370)); 110 | #77=EDGE_LOOP('',(#371,#372,#373,#374)); 111 | #78=EDGE_LOOP('',(#375,#376,#377,#378)); 112 | #79=EDGE_LOOP('',(#379,#380,#381,#382)); 113 | #80=EDGE_LOOP('',(#383,#384,#385,#386)); 114 | #81=EDGE_LOOP('',(#387,#388,#389,#390)); 115 | #82=EDGE_LOOP('',(#391,#392,#393,#394)); 116 | #83=EDGE_LOOP('',(#395,#396,#397,#398)); 117 | #84=EDGE_LOOP('',(#399,#400,#401,#402)); 118 | #85=EDGE_LOOP('',(#403,#404,#405,#406)); 119 | #86=EDGE_LOOP('',(#407,#408,#409,#410)); 120 | #87=EDGE_LOOP('',(#411,#412,#413,#414,#415,#416,#417,#418)); 121 | #88=EDGE_LOOP('',(#419,#420)); 122 | #89=EDGE_LOOP('',(#421)); 123 | #90=EDGE_LOOP('',(#422)); 124 | #91=EDGE_LOOP('',(#423,#424)); 125 | #92=EDGE_LOOP('',(#425)); 126 | #93=EDGE_LOOP('',(#426,#427)); 127 | #94=EDGE_LOOP('',(#428,#429)); 128 | #95=EDGE_LOOP('',(#430,#431,#432,#433,#434,#435)); 129 | #96=EDGE_LOOP('',(#436,#437)); 130 | #97=EDGE_LOOP('',(#438,#439)); 131 | #98=EDGE_LOOP('',(#440,#441,#442,#443,#444,#445)); 132 | #99=EDGE_LOOP('',(#446,#447)); 133 | #100=EDGE_LOOP('',(#448,#449)); 134 | #101=EDGE_LOOP('',(#450,#451,#452,#453,#454,#455)); 135 | #102=EDGE_LOOP('',(#456,#457)); 136 | #103=EDGE_LOOP('',(#458,#459)); 137 | #104=EDGE_LOOP('',(#460,#461,#462,#463,#464,#465)); 138 | #105=EDGE_LOOP('',(#466,#467)); 139 | #106=EDGE_LOOP('',(#468,#469)); 140 | #107=EDGE_LOOP('',(#470,#471,#472,#473,#474,#475)); 141 | #108=EDGE_LOOP('',(#476,#477,#478,#479)); 142 | #109=EDGE_LOOP('',(#480,#481,#482,#483)); 143 | #110=EDGE_LOOP('',(#484,#485,#486,#487)); 144 | #111=EDGE_LOOP('',(#488,#489,#490,#491)); 145 | #112=EDGE_LOOP('',(#492,#493,#494,#495,#496)); 146 | #113=EDGE_LOOP('',(#497,#498,#499,#500,#501)); 147 | #114=EDGE_LOOP('',(#502,#503,#504,#505,#506,#507)); 148 | #115=EDGE_LOOP('',(#508,#509,#510,#511,#512,#513,#514,#515)); 149 | #116=EDGE_LOOP('',(#516,#517)); 150 | #117=EDGE_LOOP('',(#518,#519)); 151 | #118=EDGE_LOOP('',(#520,#521,#522)); 152 | #119=LINE('',#914,#147); 153 | #120=LINE('',#917,#148); 154 | #121=LINE('',#928,#149); 155 | #122=LINE('',#929,#150); 156 | #123=LINE('',#940,#151); 157 | #124=LINE('',#941,#152); 158 | #125=LINE('',#952,#153); 159 | #126=LINE('',#953,#154); 160 | #127=LINE('',#959,#155); 161 | #128=LINE('',#962,#156); 162 | #129=LINE('',#965,#157); 163 | #130=LINE('',#966,#158); 164 | #131=LINE('',#969,#159); 165 | #132=LINE('',#973,#160); 166 | #133=LINE('',#974,#161); 167 | #134=LINE('',#1005,#162); 168 | #135=LINE('',#1016,#163); 169 | #136=LINE('',#1027,#164); 170 | #137=LINE('',#1038,#165); 171 | #138=LINE('',#1045,#166); 172 | #139=LINE('',#1048,#167); 173 | #140=LINE('',#1049,#168); 174 | #141=LINE('',#1053,#169); 175 | #142=LINE('',#1056,#170); 176 | #143=LINE('',#1059,#171); 177 | #144=LINE('',#1065,#172); 178 | #145=LINE('',#1071,#173); 179 | #146=LINE('',#1073,#174); 180 | #147=VECTOR('',#716,10.); 181 | #148=VECTOR('',#719,10.); 182 | #149=VECTOR('',#732,10.); 183 | #150=VECTOR('',#733,10.); 184 | #151=VECTOR('',#746,10.); 185 | #152=VECTOR('',#747,10.); 186 | #153=VECTOR('',#760,10.); 187 | #154=VECTOR('',#761,10.); 188 | #155=VECTOR('',#770,10.); 189 | #156=VECTOR('',#773,10.); 190 | #157=VECTOR('',#776,10.); 191 | #158=VECTOR('',#777,10.); 192 | #159=VECTOR('',#780,10.); 193 | #160=VECTOR('',#785,10.); 194 | #161=VECTOR('',#786,10.); 195 | #162=VECTOR('',#821,21.1679682371002); 196 | #163=VECTOR('',#834,19.6132787783433); 197 | #164=VECTOR('',#847,17.6132787783433); 198 | #165=VECTOR('',#860,15.6132787783433); 199 | #166=VECTOR('',#869,13.6132787783433); 200 | #167=VECTOR('',#872,10.); 201 | #168=VECTOR('',#873,10.); 202 | #169=VECTOR('',#878,10.); 203 | #170=VECTOR('',#881,10.); 204 | #171=VECTOR('',#886,10.); 205 | #172=VECTOR('',#893,3.5); 206 | #173=VECTOR('',#900,3.5); 207 | #174=VECTOR('',#903,22.); 208 | #175=CIRCLE('',#627,0.25); 209 | #176=CIRCLE('',#628,0.250000000000001); 210 | #177=CIRCLE('',#630,0.249999999999996); 211 | #178=CIRCLE('',#631,6.93038642329781); 212 | #179=CIRCLE('',#632,7.18038642329781); 213 | #180=CIRCLE('',#634,0.250000000000001); 214 | #181=CIRCLE('',#636,0.249999999999998); 215 | #182=CIRCLE('',#637,25.75); 216 | #183=CIRCLE('',#638,26.); 217 | #184=CIRCLE('',#640,0.249999999999992); 218 | #185=CIRCLE('',#642,0.250000000000006); 219 | #186=CIRCLE('',#643,7.20648582596838); 220 | #187=CIRCLE('',#644,7.45648582596838); 221 | #188=CIRCLE('',#646,0.250000000000006); 222 | #189=CIRCLE('',#648,25.75); 223 | #190=CIRCLE('',#649,26.); 224 | #191=CIRCLE('',#651,26.); 225 | #192=CIRCLE('',#654,7.18038642329781); 226 | #193=CIRCLE('',#657,22.); 227 | #194=CIRCLE('',#658,22.); 228 | #195=CIRCLE('',#659,3.5); 229 | #196=CIRCLE('',#660,3.5); 230 | #197=CIRCLE('',#662,13.6132787783433); 231 | #198=CIRCLE('',#663,13.6132787783433); 232 | #199=CIRCLE('',#664,10.6668222767949); 233 | #200=CIRCLE('',#666,22.); 234 | #201=CIRCLE('',#667,22.); 235 | #202=CIRCLE('',#668,21.1679682371002); 236 | #203=CIRCLE('',#669,21.1679682371002); 237 | #204=CIRCLE('',#671,21.1679682371002); 238 | #205=CIRCLE('',#672,21.1679682371002); 239 | #206=CIRCLE('',#674,19.6132787783433); 240 | #207=CIRCLE('',#675,19.6132787783433); 241 | #208=CIRCLE('',#677,19.6132787783433); 242 | #209=CIRCLE('',#678,19.6132787783433); 243 | #210=CIRCLE('',#680,17.6132787783433); 244 | #211=CIRCLE('',#681,17.6132787783433); 245 | #212=CIRCLE('',#683,17.6132787783433); 246 | #213=CIRCLE('',#684,17.6132787783433); 247 | #214=CIRCLE('',#686,15.6132787783433); 248 | #215=CIRCLE('',#687,15.6132787783433); 249 | #216=CIRCLE('',#689,15.6132787783433); 250 | #217=CIRCLE('',#690,15.6132787783433); 251 | #218=CIRCLE('',#692,13.6132787783433); 252 | #219=CIRCLE('',#693,13.6132787783433); 253 | #220=CIRCLE('',#697,7.45648582596838); 254 | #221=CIRCLE('',#699,26.); 255 | #222=CIRCLE('',#702,3.5); 256 | #223=CIRCLE('',#703,3.5); 257 | #224=CIRCLE('',#705,3.5); 258 | #225=CIRCLE('',#706,3.5); 259 | #226=CIRCLE('',#709,12.7); 260 | #227=VERTEX_POINT('',#910); 261 | #228=VERTEX_POINT('',#911); 262 | #229=VERTEX_POINT('',#913); 263 | #230=VERTEX_POINT('',#915); 264 | #231=VERTEX_POINT('',#919); 265 | #232=VERTEX_POINT('',#920); 266 | #233=VERTEX_POINT('',#925); 267 | #234=VERTEX_POINT('',#926); 268 | #235=VERTEX_POINT('',#931); 269 | #236=VERTEX_POINT('',#932); 270 | #237=VERTEX_POINT('',#937); 271 | #238=VERTEX_POINT('',#938); 272 | #239=VERTEX_POINT('',#943); 273 | #240=VERTEX_POINT('',#944); 274 | #241=VERTEX_POINT('',#949); 275 | #242=VERTEX_POINT('',#950); 276 | #243=VERTEX_POINT('',#958); 277 | #244=VERTEX_POINT('',#960); 278 | #245=VERTEX_POINT('',#964); 279 | #246=VERTEX_POINT('',#968); 280 | #247=VERTEX_POINT('',#972); 281 | #248=VERTEX_POINT('',#976); 282 | #249=VERTEX_POINT('',#977); 283 | #250=VERTEX_POINT('',#980); 284 | #251=VERTEX_POINT('',#982); 285 | #252=VERTEX_POINT('',#985); 286 | #253=VERTEX_POINT('',#986); 287 | #254=VERTEX_POINT('',#989); 288 | #255=VERTEX_POINT('',#992); 289 | #256=VERTEX_POINT('',#993); 290 | #257=VERTEX_POINT('',#996); 291 | #258=VERTEX_POINT('',#997); 292 | #259=VERTEX_POINT('',#1001); 293 | #260=VERTEX_POINT('',#1002); 294 | #261=VERTEX_POINT('',#1007); 295 | #262=VERTEX_POINT('',#1008); 296 | #263=VERTEX_POINT('',#1012); 297 | #264=VERTEX_POINT('',#1013); 298 | #265=VERTEX_POINT('',#1018); 299 | #266=VERTEX_POINT('',#1019); 300 | #267=VERTEX_POINT('',#1023); 301 | #268=VERTEX_POINT('',#1024); 302 | #269=VERTEX_POINT('',#1029); 303 | #270=VERTEX_POINT('',#1030); 304 | #271=VERTEX_POINT('',#1034); 305 | #272=VERTEX_POINT('',#1035); 306 | #273=VERTEX_POINT('',#1040); 307 | #274=VERTEX_POINT('',#1041); 308 | #275=VERTEX_POINT('',#1047); 309 | #276=VERTEX_POINT('',#1051); 310 | #277=VERTEX_POINT('',#1055); 311 | #278=VERTEX_POINT('',#1061); 312 | #279=VERTEX_POINT('',#1062); 313 | #280=VERTEX_POINT('',#1067); 314 | #281=VERTEX_POINT('',#1068); 315 | #282=VERTEX_POINT('',#1102); 316 | #283=EDGE_CURVE('',#227,#228,#175,.T.); 317 | #284=EDGE_CURVE('',#228,#229,#119,.T.); 318 | #285=EDGE_CURVE('',#229,#230,#176,.T.); 319 | #286=EDGE_CURVE('',#230,#227,#120,.T.); 320 | #287=EDGE_CURVE('',#231,#232,#177,.T.); 321 | #288=EDGE_CURVE('',#232,#230,#178,.T.); 322 | #289=EDGE_CURVE('',#229,#231,#179,.T.); 323 | #290=EDGE_CURVE('',#233,#234,#180,.T.); 324 | #291=EDGE_CURVE('',#234,#232,#121,.T.); 325 | #292=EDGE_CURVE('',#231,#233,#122,.T.); 326 | #293=EDGE_CURVE('',#235,#236,#181,.T.); 327 | #294=EDGE_CURVE('',#236,#234,#182,.T.); 328 | #295=EDGE_CURVE('',#233,#235,#183,.T.); 329 | #296=EDGE_CURVE('',#237,#238,#184,.T.); 330 | #297=EDGE_CURVE('',#238,#236,#123,.T.); 331 | #298=EDGE_CURVE('',#235,#237,#124,.T.); 332 | #299=EDGE_CURVE('',#239,#240,#185,.T.); 333 | #300=EDGE_CURVE('',#240,#238,#186,.T.); 334 | #301=EDGE_CURVE('',#237,#239,#187,.T.); 335 | #302=EDGE_CURVE('',#241,#242,#188,.T.); 336 | #303=EDGE_CURVE('',#242,#240,#125,.T.); 337 | #304=EDGE_CURVE('',#239,#241,#126,.T.); 338 | #305=EDGE_CURVE('',#227,#242,#189,.T.); 339 | #306=EDGE_CURVE('',#241,#228,#190,.T.); 340 | #307=EDGE_CURVE('',#243,#233,#127,.T.); 341 | #308=EDGE_CURVE('',#244,#243,#191,.T.); 342 | #309=EDGE_CURVE('',#244,#235,#128,.T.); 343 | #310=EDGE_CURVE('',#245,#231,#129,.T.); 344 | #311=EDGE_CURVE('',#243,#245,#130,.T.); 345 | #312=EDGE_CURVE('',#246,#229,#131,.T.); 346 | #313=EDGE_CURVE('',#245,#246,#192,.T.); 347 | #314=EDGE_CURVE('',#247,#228,#132,.T.); 348 | #315=EDGE_CURVE('',#246,#247,#133,.T.); 349 | #316=EDGE_CURVE('',#248,#249,#193,.T.); 350 | #317=EDGE_CURVE('',#249,#248,#194,.T.); 351 | #318=EDGE_CURVE('',#250,#250,#195,.T.); 352 | #319=EDGE_CURVE('',#251,#251,#196,.T.); 353 | #320=EDGE_CURVE('',#252,#253,#197,.T.); 354 | #321=EDGE_CURVE('',#253,#252,#198,.T.); 355 | #322=EDGE_CURVE('',#254,#254,#199,.T.); 356 | #323=EDGE_CURVE('',#255,#256,#200,.T.); 357 | #324=EDGE_CURVE('',#256,#255,#201,.T.); 358 | #325=EDGE_CURVE('',#257,#258,#202,.T.); 359 | #326=EDGE_CURVE('',#258,#257,#203,.T.); 360 | #327=EDGE_CURVE('',#259,#260,#204,.T.); 361 | #328=EDGE_CURVE('',#260,#259,#205,.T.); 362 | #329=EDGE_CURVE('',#260,#258,#134,.T.); 363 | #330=EDGE_CURVE('',#261,#262,#206,.T.); 364 | #331=EDGE_CURVE('',#262,#261,#207,.T.); 365 | #332=EDGE_CURVE('',#263,#264,#208,.T.); 366 | #333=EDGE_CURVE('',#264,#263,#209,.T.); 367 | #334=EDGE_CURVE('',#264,#262,#135,.T.); 368 | #335=EDGE_CURVE('',#265,#266,#210,.T.); 369 | #336=EDGE_CURVE('',#266,#265,#211,.T.); 370 | #337=EDGE_CURVE('',#267,#268,#212,.T.); 371 | #338=EDGE_CURVE('',#268,#267,#213,.T.); 372 | #339=EDGE_CURVE('',#268,#266,#136,.T.); 373 | #340=EDGE_CURVE('',#269,#270,#214,.T.); 374 | #341=EDGE_CURVE('',#270,#269,#215,.T.); 375 | #342=EDGE_CURVE('',#271,#272,#216,.T.); 376 | #343=EDGE_CURVE('',#272,#271,#217,.T.); 377 | #344=EDGE_CURVE('',#272,#270,#137,.T.); 378 | #345=EDGE_CURVE('',#273,#274,#218,.T.); 379 | #346=EDGE_CURVE('',#274,#273,#219,.T.); 380 | #347=EDGE_CURVE('',#253,#274,#138,.T.); 381 | #348=EDGE_CURVE('',#275,#244,#139,.T.); 382 | #349=EDGE_CURVE('',#275,#237,#140,.T.); 383 | #350=EDGE_CURVE('',#276,#275,#220,.T.); 384 | #351=EDGE_CURVE('',#276,#239,#141,.T.); 385 | #352=EDGE_CURVE('',#277,#241,#142,.T.); 386 | #353=EDGE_CURVE('',#247,#277,#221,.T.); 387 | #354=EDGE_CURVE('',#277,#276,#143,.T.); 388 | #355=EDGE_CURVE('',#278,#279,#222,.T.); 389 | #356=EDGE_CURVE('',#279,#278,#223,.T.); 390 | #357=EDGE_CURVE('',#279,#251,#144,.T.); 391 | #358=EDGE_CURVE('',#280,#281,#224,.T.); 392 | #359=EDGE_CURVE('',#281,#280,#225,.T.); 393 | #360=EDGE_CURVE('',#281,#250,#145,.T.); 394 | #361=EDGE_CURVE('',#249,#256,#146,.T.); 395 | #362=EDGE_CURVE('',#254,#282,#226,.T.); 396 | #363=ORIENTED_EDGE('',*,*,#283,.T.); 397 | #364=ORIENTED_EDGE('',*,*,#284,.T.); 398 | #365=ORIENTED_EDGE('',*,*,#285,.T.); 399 | #366=ORIENTED_EDGE('',*,*,#286,.T.); 400 | #367=ORIENTED_EDGE('',*,*,#287,.T.); 401 | #368=ORIENTED_EDGE('',*,*,#288,.T.); 402 | #369=ORIENTED_EDGE('',*,*,#285,.F.); 403 | #370=ORIENTED_EDGE('',*,*,#289,.T.); 404 | #371=ORIENTED_EDGE('',*,*,#290,.T.); 405 | #372=ORIENTED_EDGE('',*,*,#291,.T.); 406 | #373=ORIENTED_EDGE('',*,*,#287,.F.); 407 | #374=ORIENTED_EDGE('',*,*,#292,.T.); 408 | #375=ORIENTED_EDGE('',*,*,#293,.T.); 409 | #376=ORIENTED_EDGE('',*,*,#294,.T.); 410 | #377=ORIENTED_EDGE('',*,*,#290,.F.); 411 | #378=ORIENTED_EDGE('',*,*,#295,.T.); 412 | #379=ORIENTED_EDGE('',*,*,#296,.T.); 413 | #380=ORIENTED_EDGE('',*,*,#297,.T.); 414 | #381=ORIENTED_EDGE('',*,*,#293,.F.); 415 | #382=ORIENTED_EDGE('',*,*,#298,.T.); 416 | #383=ORIENTED_EDGE('',*,*,#299,.T.); 417 | #384=ORIENTED_EDGE('',*,*,#300,.T.); 418 | #385=ORIENTED_EDGE('',*,*,#296,.F.); 419 | #386=ORIENTED_EDGE('',*,*,#301,.T.); 420 | #387=ORIENTED_EDGE('',*,*,#302,.T.); 421 | #388=ORIENTED_EDGE('',*,*,#303,.T.); 422 | #389=ORIENTED_EDGE('',*,*,#299,.F.); 423 | #390=ORIENTED_EDGE('',*,*,#304,.T.); 424 | #391=ORIENTED_EDGE('',*,*,#283,.F.); 425 | #392=ORIENTED_EDGE('',*,*,#305,.T.); 426 | #393=ORIENTED_EDGE('',*,*,#302,.F.); 427 | #394=ORIENTED_EDGE('',*,*,#306,.T.); 428 | #395=ORIENTED_EDGE('',*,*,#295,.F.); 429 | #396=ORIENTED_EDGE('',*,*,#307,.F.); 430 | #397=ORIENTED_EDGE('',*,*,#308,.F.); 431 | #398=ORIENTED_EDGE('',*,*,#309,.T.); 432 | #399=ORIENTED_EDGE('',*,*,#292,.F.); 433 | #400=ORIENTED_EDGE('',*,*,#310,.F.); 434 | #401=ORIENTED_EDGE('',*,*,#311,.F.); 435 | #402=ORIENTED_EDGE('',*,*,#307,.T.); 436 | #403=ORIENTED_EDGE('',*,*,#289,.F.); 437 | #404=ORIENTED_EDGE('',*,*,#312,.F.); 438 | #405=ORIENTED_EDGE('',*,*,#313,.F.); 439 | #406=ORIENTED_EDGE('',*,*,#310,.T.); 440 | #407=ORIENTED_EDGE('',*,*,#284,.F.); 441 | #408=ORIENTED_EDGE('',*,*,#314,.F.); 442 | #409=ORIENTED_EDGE('',*,*,#315,.F.); 443 | #410=ORIENTED_EDGE('',*,*,#312,.T.); 444 | #411=ORIENTED_EDGE('',*,*,#286,.F.); 445 | #412=ORIENTED_EDGE('',*,*,#288,.F.); 446 | #413=ORIENTED_EDGE('',*,*,#291,.F.); 447 | #414=ORIENTED_EDGE('',*,*,#294,.F.); 448 | #415=ORIENTED_EDGE('',*,*,#297,.F.); 449 | #416=ORIENTED_EDGE('',*,*,#300,.F.); 450 | #417=ORIENTED_EDGE('',*,*,#303,.F.); 451 | #418=ORIENTED_EDGE('',*,*,#305,.F.); 452 | #419=ORIENTED_EDGE('',*,*,#316,.T.); 453 | #420=ORIENTED_EDGE('',*,*,#317,.T.); 454 | #421=ORIENTED_EDGE('',*,*,#318,.T.); 455 | #422=ORIENTED_EDGE('',*,*,#319,.T.); 456 | #423=ORIENTED_EDGE('',*,*,#320,.T.); 457 | #424=ORIENTED_EDGE('',*,*,#321,.T.); 458 | #425=ORIENTED_EDGE('',*,*,#322,.F.); 459 | #426=ORIENTED_EDGE('',*,*,#323,.T.); 460 | #427=ORIENTED_EDGE('',*,*,#324,.T.); 461 | #428=ORIENTED_EDGE('',*,*,#325,.F.); 462 | #429=ORIENTED_EDGE('',*,*,#326,.F.); 463 | #430=ORIENTED_EDGE('',*,*,#327,.F.); 464 | #431=ORIENTED_EDGE('',*,*,#328,.F.); 465 | #432=ORIENTED_EDGE('',*,*,#329,.T.); 466 | #433=ORIENTED_EDGE('',*,*,#326,.T.); 467 | #434=ORIENTED_EDGE('',*,*,#325,.T.); 468 | #435=ORIENTED_EDGE('',*,*,#329,.F.); 469 | #436=ORIENTED_EDGE('',*,*,#327,.T.); 470 | #437=ORIENTED_EDGE('',*,*,#328,.T.); 471 | #438=ORIENTED_EDGE('',*,*,#330,.F.); 472 | #439=ORIENTED_EDGE('',*,*,#331,.F.); 473 | #440=ORIENTED_EDGE('',*,*,#332,.F.); 474 | #441=ORIENTED_EDGE('',*,*,#333,.F.); 475 | #442=ORIENTED_EDGE('',*,*,#334,.T.); 476 | #443=ORIENTED_EDGE('',*,*,#331,.T.); 477 | #444=ORIENTED_EDGE('',*,*,#330,.T.); 478 | #445=ORIENTED_EDGE('',*,*,#334,.F.); 479 | #446=ORIENTED_EDGE('',*,*,#332,.T.); 480 | #447=ORIENTED_EDGE('',*,*,#333,.T.); 481 | #448=ORIENTED_EDGE('',*,*,#335,.F.); 482 | #449=ORIENTED_EDGE('',*,*,#336,.F.); 483 | #450=ORIENTED_EDGE('',*,*,#337,.F.); 484 | #451=ORIENTED_EDGE('',*,*,#338,.F.); 485 | #452=ORIENTED_EDGE('',*,*,#339,.T.); 486 | #453=ORIENTED_EDGE('',*,*,#336,.T.); 487 | #454=ORIENTED_EDGE('',*,*,#335,.T.); 488 | #455=ORIENTED_EDGE('',*,*,#339,.F.); 489 | #456=ORIENTED_EDGE('',*,*,#337,.T.); 490 | #457=ORIENTED_EDGE('',*,*,#338,.T.); 491 | #458=ORIENTED_EDGE('',*,*,#340,.F.); 492 | #459=ORIENTED_EDGE('',*,*,#341,.F.); 493 | #460=ORIENTED_EDGE('',*,*,#342,.F.); 494 | #461=ORIENTED_EDGE('',*,*,#343,.F.); 495 | #462=ORIENTED_EDGE('',*,*,#344,.T.); 496 | #463=ORIENTED_EDGE('',*,*,#341,.T.); 497 | #464=ORIENTED_EDGE('',*,*,#340,.T.); 498 | #465=ORIENTED_EDGE('',*,*,#344,.F.); 499 | #466=ORIENTED_EDGE('',*,*,#342,.T.); 500 | #467=ORIENTED_EDGE('',*,*,#343,.T.); 501 | #468=ORIENTED_EDGE('',*,*,#345,.F.); 502 | #469=ORIENTED_EDGE('',*,*,#346,.F.); 503 | #470=ORIENTED_EDGE('',*,*,#320,.F.); 504 | #471=ORIENTED_EDGE('',*,*,#321,.F.); 505 | #472=ORIENTED_EDGE('',*,*,#347,.T.); 506 | #473=ORIENTED_EDGE('',*,*,#346,.T.); 507 | #474=ORIENTED_EDGE('',*,*,#345,.T.); 508 | #475=ORIENTED_EDGE('',*,*,#347,.F.); 509 | #476=ORIENTED_EDGE('',*,*,#298,.F.); 510 | #477=ORIENTED_EDGE('',*,*,#309,.F.); 511 | #478=ORIENTED_EDGE('',*,*,#348,.F.); 512 | #479=ORIENTED_EDGE('',*,*,#349,.T.); 513 | #480=ORIENTED_EDGE('',*,*,#301,.F.); 514 | #481=ORIENTED_EDGE('',*,*,#349,.F.); 515 | #482=ORIENTED_EDGE('',*,*,#350,.F.); 516 | #483=ORIENTED_EDGE('',*,*,#351,.T.); 517 | #484=ORIENTED_EDGE('',*,*,#306,.F.); 518 | #485=ORIENTED_EDGE('',*,*,#352,.F.); 519 | #486=ORIENTED_EDGE('',*,*,#353,.F.); 520 | #487=ORIENTED_EDGE('',*,*,#314,.T.); 521 | #488=ORIENTED_EDGE('',*,*,#304,.F.); 522 | #489=ORIENTED_EDGE('',*,*,#351,.F.); 523 | #490=ORIENTED_EDGE('',*,*,#354,.F.); 524 | #491=ORIENTED_EDGE('',*,*,#352,.T.); 525 | #492=ORIENTED_EDGE('',*,*,#355,.F.); 526 | #493=ORIENTED_EDGE('',*,*,#356,.F.); 527 | #494=ORIENTED_EDGE('',*,*,#357,.T.); 528 | #495=ORIENTED_EDGE('',*,*,#319,.F.); 529 | #496=ORIENTED_EDGE('',*,*,#357,.F.); 530 | #497=ORIENTED_EDGE('',*,*,#358,.F.); 531 | #498=ORIENTED_EDGE('',*,*,#359,.F.); 532 | #499=ORIENTED_EDGE('',*,*,#360,.T.); 533 | #500=ORIENTED_EDGE('',*,*,#318,.F.); 534 | #501=ORIENTED_EDGE('',*,*,#360,.F.); 535 | #502=ORIENTED_EDGE('',*,*,#316,.F.); 536 | #503=ORIENTED_EDGE('',*,*,#317,.F.); 537 | #504=ORIENTED_EDGE('',*,*,#361,.T.); 538 | #505=ORIENTED_EDGE('',*,*,#323,.F.); 539 | #506=ORIENTED_EDGE('',*,*,#324,.F.); 540 | #507=ORIENTED_EDGE('',*,*,#361,.F.); 541 | #508=ORIENTED_EDGE('',*,*,#350,.T.); 542 | #509=ORIENTED_EDGE('',*,*,#348,.T.); 543 | #510=ORIENTED_EDGE('',*,*,#308,.T.); 544 | #511=ORIENTED_EDGE('',*,*,#311,.T.); 545 | #512=ORIENTED_EDGE('',*,*,#313,.T.); 546 | #513=ORIENTED_EDGE('',*,*,#315,.T.); 547 | #514=ORIENTED_EDGE('',*,*,#353,.T.); 548 | #515=ORIENTED_EDGE('',*,*,#354,.T.); 549 | #516=ORIENTED_EDGE('',*,*,#355,.T.); 550 | #517=ORIENTED_EDGE('',*,*,#356,.T.); 551 | #518=ORIENTED_EDGE('',*,*,#358,.T.); 552 | #519=ORIENTED_EDGE('',*,*,#359,.T.); 553 | #520=ORIENTED_EDGE('',*,*,#322,.T.); 554 | #521=ORIENTED_EDGE('',*,*,#362,.T.); 555 | #522=ORIENTED_EDGE('',*,*,#362,.F.); 556 | #523=CYLINDRICAL_SURFACE('',#626,0.25); 557 | #524=CYLINDRICAL_SURFACE('',#633,0.25); 558 | #525=CYLINDRICAL_SURFACE('',#639,0.25); 559 | #526=CYLINDRICAL_SURFACE('',#645,0.25); 560 | #527=CYLINDRICAL_SURFACE('',#650,26.); 561 | #528=CYLINDRICAL_SURFACE('',#653,7.18038642329781); 562 | #529=CYLINDRICAL_SURFACE('',#670,21.1679682371002); 563 | #530=CYLINDRICAL_SURFACE('',#676,19.6132787783433); 564 | #531=CYLINDRICAL_SURFACE('',#682,17.6132787783433); 565 | #532=CYLINDRICAL_SURFACE('',#688,15.6132787783433); 566 | #533=CYLINDRICAL_SURFACE('',#694,13.6132787783433); 567 | #534=CYLINDRICAL_SURFACE('',#696,7.45648582596838); 568 | #535=CYLINDRICAL_SURFACE('',#698,26.); 569 | #536=CYLINDRICAL_SURFACE('',#701,3.5); 570 | #537=CYLINDRICAL_SURFACE('',#704,3.5); 571 | #538=CYLINDRICAL_SURFACE('',#707,22.); 572 | #539=STYLED_ITEM('',(#1124),#573); 573 | #540=STYLED_ITEM('',(#1124),#574); 574 | #541=STYLED_ITEM('',(#1124),#575); 575 | #542=STYLED_ITEM('',(#1124),#576); 576 | #543=STYLED_ITEM('',(#1124),#577); 577 | #544=STYLED_ITEM('',(#1124),#578); 578 | #545=STYLED_ITEM('',(#1124),#579); 579 | #546=STYLED_ITEM('',(#1124),#580); 580 | #547=STYLED_ITEM('',(#1124),#581); 581 | #548=STYLED_ITEM('',(#1124),#582); 582 | #549=STYLED_ITEM('',(#1124),#583); 583 | #550=STYLED_ITEM('',(#1124),#584); 584 | #551=STYLED_ITEM('',(#1124),#585); 585 | #552=STYLED_ITEM('',(#1124),#586); 586 | #553=STYLED_ITEM('',(#1124),#587); 587 | #554=STYLED_ITEM('',(#1124),#588); 588 | #555=STYLED_ITEM('',(#1124),#589); 589 | #556=STYLED_ITEM('',(#1124),#590); 590 | #557=STYLED_ITEM('',(#1124),#591); 591 | #558=STYLED_ITEM('',(#1124),#592); 592 | #559=STYLED_ITEM('',(#1124),#593); 593 | #560=STYLED_ITEM('',(#1124),#594); 594 | #561=STYLED_ITEM('',(#1124),#595); 595 | #562=STYLED_ITEM('',(#1124),#596); 596 | #563=STYLED_ITEM('',(#1124),#597); 597 | #564=STYLED_ITEM('',(#1124),#598); 598 | #565=STYLED_ITEM('',(#1124),#599); 599 | #566=STYLED_ITEM('',(#1124),#600); 600 | #567=STYLED_ITEM('',(#1124),#601); 601 | #568=STYLED_ITEM('',(#1124),#602); 602 | #569=STYLED_ITEM('',(#1124),#603); 603 | #570=STYLED_ITEM('',(#1124),#604); 604 | #571=STYLED_ITEM('',(#1125),#605); 605 | #572=STYLED_ITEM('',(#1123),#13); 606 | #573=ADVANCED_FACE('',(#42),#523,.T.); 607 | #574=ADVANCED_FACE('',(#43),#38,.T.); 608 | #575=ADVANCED_FACE('',(#44),#524,.T.); 609 | #576=ADVANCED_FACE('',(#45),#39,.T.); 610 | #577=ADVANCED_FACE('',(#46),#525,.T.); 611 | #578=ADVANCED_FACE('',(#47),#40,.T.); 612 | #579=ADVANCED_FACE('',(#48),#526,.T.); 613 | #580=ADVANCED_FACE('',(#49),#41,.T.); 614 | #581=ADVANCED_FACE('',(#50),#527,.T.); 615 | #582=ADVANCED_FACE('',(#51),#26,.T.); 616 | #583=ADVANCED_FACE('',(#52),#528,.T.); 617 | #584=ADVANCED_FACE('',(#53),#27,.T.); 618 | #585=ADVANCED_FACE('',(#54,#15,#16,#17),#28,.T.); 619 | #586=ADVANCED_FACE('',(#55,#18),#29,.T.); 620 | #587=ADVANCED_FACE('',(#56,#19),#30,.T.); 621 | #588=ADVANCED_FACE('',(#57),#529,.T.); 622 | #589=ADVANCED_FACE('',(#58,#20),#31,.T.); 623 | #590=ADVANCED_FACE('',(#59),#530,.T.); 624 | #591=ADVANCED_FACE('',(#60,#21),#32,.T.); 625 | #592=ADVANCED_FACE('',(#61),#531,.T.); 626 | #593=ADVANCED_FACE('',(#62,#22),#33,.T.); 627 | #594=ADVANCED_FACE('',(#63),#532,.T.); 628 | #595=ADVANCED_FACE('',(#64,#23),#34,.T.); 629 | #596=ADVANCED_FACE('',(#65),#533,.T.); 630 | #597=ADVANCED_FACE('',(#66),#35,.T.); 631 | #598=ADVANCED_FACE('',(#67),#534,.T.); 632 | #599=ADVANCED_FACE('',(#68),#535,.T.); 633 | #600=ADVANCED_FACE('',(#69),#36,.T.); 634 | #601=ADVANCED_FACE('',(#70),#536,.F.); 635 | #602=ADVANCED_FACE('',(#71),#537,.F.); 636 | #603=ADVANCED_FACE('',(#72),#538,.T.); 637 | #604=ADVANCED_FACE('',(#73,#24,#25),#37,.T.); 638 | #605=ADVANCED_FACE('',(#74),#14,.F.); 639 | #606=CLOSED_SHELL('',(#573,#574,#575,#576,#577,#578,#579,#580,#581,#582, 640 | #583,#584,#585,#586,#587,#588,#589,#590,#591,#592,#593,#594,#595,#596,#597, 641 | #598,#599,#600,#601,#602,#603,#604,#605)); 642 | #607=DERIVED_UNIT_ELEMENT(#609,1.); 643 | #608=DERIVED_UNIT_ELEMENT(#1109,3.); 644 | #609=( 645 | MASS_UNIT() 646 | NAMED_UNIT(*) 647 | SI_UNIT($,.GRAM.) 648 | ); 649 | #610=DERIVED_UNIT((#607,#608)); 650 | #611=MEASURE_REPRESENTATION_ITEM('density measure', 651 | POSITIVE_RATIO_MEASURE(1.),#610); 652 | #612=PROPERTY_DEFINITION_REPRESENTATION(#617,#614); 653 | #613=PROPERTY_DEFINITION_REPRESENTATION(#618,#615); 654 | #614=REPRESENTATION('material name',(#616),#1106); 655 | #615=REPRESENTATION('density',(#611),#1106); 656 | #616=DESCRIPTIVE_REPRESENTATION_ITEM('Generic','Generic'); 657 | #617=PROPERTY_DEFINITION('material property','material name',#1116); 658 | #618=PROPERTY_DEFINITION('material property','density of part',#1116); 659 | #619=DATE_TIME_ROLE('creation_date'); 660 | #620=APPLIED_DATE_AND_TIME_ASSIGNMENT(#621,#619,(#1116)); 661 | #621=DATE_AND_TIME(#622,#623); 662 | #622=CALENDAR_DATE(2020,13,2); 663 | #623=LOCAL_TIME(5,10,54.,#624); 664 | #624=COORDINATED_UNIVERSAL_TIME_OFFSET(0,0,.BEHIND.); 665 | #625=AXIS2_PLACEMENT_3D('placement',#908,#710,#711); 666 | #626=AXIS2_PLACEMENT_3D('',#909,#712,#713); 667 | #627=AXIS2_PLACEMENT_3D('',#912,#714,#715); 668 | #628=AXIS2_PLACEMENT_3D('',#916,#717,#718); 669 | #629=AXIS2_PLACEMENT_3D('',#918,#720,#721); 670 | #630=AXIS2_PLACEMENT_3D('',#921,#722,#723); 671 | #631=AXIS2_PLACEMENT_3D('',#922,#724,#725); 672 | #632=AXIS2_PLACEMENT_3D('',#923,#726,#727); 673 | #633=AXIS2_PLACEMENT_3D('',#924,#728,#729); 674 | #634=AXIS2_PLACEMENT_3D('',#927,#730,#731); 675 | #635=AXIS2_PLACEMENT_3D('',#930,#734,#735); 676 | #636=AXIS2_PLACEMENT_3D('',#933,#736,#737); 677 | #637=AXIS2_PLACEMENT_3D('',#934,#738,#739); 678 | #638=AXIS2_PLACEMENT_3D('',#935,#740,#741); 679 | #639=AXIS2_PLACEMENT_3D('',#936,#742,#743); 680 | #640=AXIS2_PLACEMENT_3D('',#939,#744,#745); 681 | #641=AXIS2_PLACEMENT_3D('',#942,#748,#749); 682 | #642=AXIS2_PLACEMENT_3D('',#945,#750,#751); 683 | #643=AXIS2_PLACEMENT_3D('',#946,#752,#753); 684 | #644=AXIS2_PLACEMENT_3D('',#947,#754,#755); 685 | #645=AXIS2_PLACEMENT_3D('',#948,#756,#757); 686 | #646=AXIS2_PLACEMENT_3D('',#951,#758,#759); 687 | #647=AXIS2_PLACEMENT_3D('',#954,#762,#763); 688 | #648=AXIS2_PLACEMENT_3D('',#955,#764,#765); 689 | #649=AXIS2_PLACEMENT_3D('',#956,#766,#767); 690 | #650=AXIS2_PLACEMENT_3D('',#957,#768,#769); 691 | #651=AXIS2_PLACEMENT_3D('',#961,#771,#772); 692 | #652=AXIS2_PLACEMENT_3D('',#963,#774,#775); 693 | #653=AXIS2_PLACEMENT_3D('',#967,#778,#779); 694 | #654=AXIS2_PLACEMENT_3D('',#970,#781,#782); 695 | #655=AXIS2_PLACEMENT_3D('',#971,#783,#784); 696 | #656=AXIS2_PLACEMENT_3D('',#975,#787,#788); 697 | #657=AXIS2_PLACEMENT_3D('',#978,#789,#790); 698 | #658=AXIS2_PLACEMENT_3D('',#979,#791,#792); 699 | #659=AXIS2_PLACEMENT_3D('',#981,#793,#794); 700 | #660=AXIS2_PLACEMENT_3D('',#983,#795,#796); 701 | #661=AXIS2_PLACEMENT_3D('',#984,#797,#798); 702 | #662=AXIS2_PLACEMENT_3D('',#987,#799,#800); 703 | #663=AXIS2_PLACEMENT_3D('',#988,#801,#802); 704 | #664=AXIS2_PLACEMENT_3D('',#990,#803,#804); 705 | #665=AXIS2_PLACEMENT_3D('',#991,#805,#806); 706 | #666=AXIS2_PLACEMENT_3D('',#994,#807,#808); 707 | #667=AXIS2_PLACEMENT_3D('',#995,#809,#810); 708 | #668=AXIS2_PLACEMENT_3D('',#998,#811,#812); 709 | #669=AXIS2_PLACEMENT_3D('',#999,#813,#814); 710 | #670=AXIS2_PLACEMENT_3D('',#1000,#815,#816); 711 | #671=AXIS2_PLACEMENT_3D('',#1003,#817,#818); 712 | #672=AXIS2_PLACEMENT_3D('',#1004,#819,#820); 713 | #673=AXIS2_PLACEMENT_3D('',#1006,#822,#823); 714 | #674=AXIS2_PLACEMENT_3D('',#1009,#824,#825); 715 | #675=AXIS2_PLACEMENT_3D('',#1010,#826,#827); 716 | #676=AXIS2_PLACEMENT_3D('',#1011,#828,#829); 717 | #677=AXIS2_PLACEMENT_3D('',#1014,#830,#831); 718 | #678=AXIS2_PLACEMENT_3D('',#1015,#832,#833); 719 | #679=AXIS2_PLACEMENT_3D('',#1017,#835,#836); 720 | #680=AXIS2_PLACEMENT_3D('',#1020,#837,#838); 721 | #681=AXIS2_PLACEMENT_3D('',#1021,#839,#840); 722 | #682=AXIS2_PLACEMENT_3D('',#1022,#841,#842); 723 | #683=AXIS2_PLACEMENT_3D('',#1025,#843,#844); 724 | #684=AXIS2_PLACEMENT_3D('',#1026,#845,#846); 725 | #685=AXIS2_PLACEMENT_3D('',#1028,#848,#849); 726 | #686=AXIS2_PLACEMENT_3D('',#1031,#850,#851); 727 | #687=AXIS2_PLACEMENT_3D('',#1032,#852,#853); 728 | #688=AXIS2_PLACEMENT_3D('',#1033,#854,#855); 729 | #689=AXIS2_PLACEMENT_3D('',#1036,#856,#857); 730 | #690=AXIS2_PLACEMENT_3D('',#1037,#858,#859); 731 | #691=AXIS2_PLACEMENT_3D('',#1039,#861,#862); 732 | #692=AXIS2_PLACEMENT_3D('',#1042,#863,#864); 733 | #693=AXIS2_PLACEMENT_3D('',#1043,#865,#866); 734 | #694=AXIS2_PLACEMENT_3D('',#1044,#867,#868); 735 | #695=AXIS2_PLACEMENT_3D('',#1046,#870,#871); 736 | #696=AXIS2_PLACEMENT_3D('',#1050,#874,#875); 737 | #697=AXIS2_PLACEMENT_3D('',#1052,#876,#877); 738 | #698=AXIS2_PLACEMENT_3D('',#1054,#879,#880); 739 | #699=AXIS2_PLACEMENT_3D('',#1057,#882,#883); 740 | #700=AXIS2_PLACEMENT_3D('',#1058,#884,#885); 741 | #701=AXIS2_PLACEMENT_3D('',#1060,#887,#888); 742 | #702=AXIS2_PLACEMENT_3D('',#1063,#889,#890); 743 | #703=AXIS2_PLACEMENT_3D('',#1064,#891,#892); 744 | #704=AXIS2_PLACEMENT_3D('',#1066,#894,#895); 745 | #705=AXIS2_PLACEMENT_3D('',#1069,#896,#897); 746 | #706=AXIS2_PLACEMENT_3D('',#1070,#898,#899); 747 | #707=AXIS2_PLACEMENT_3D('',#1072,#901,#902); 748 | #708=AXIS2_PLACEMENT_3D('',#1074,#904,#905); 749 | #709=AXIS2_PLACEMENT_3D('',#1103,#906,#907); 750 | #710=DIRECTION('axis',(0.,0.,1.)); 751 | #711=DIRECTION('refdir',(1.,0.,0.)); 752 | #712=DIRECTION('center_axis',(0.774765096759824,2.85316381702663E-16,-0.632249195209247)); 753 | #713=DIRECTION('ref_axis',(0.447067693332209,0.707106781186542,0.547841653745519)); 754 | #714=DIRECTION('center_axis',(0.774765096759813,0.,-0.63224919520926)); 755 | #715=DIRECTION('ref_axis',(0.,1.,0.)); 756 | #716=DIRECTION('',(0.774765096759824,2.85316381702663E-16,-0.632249195209247)); 757 | #717=DIRECTION('center_axis',(-0.774765096759823,0.,0.632249195209248)); 758 | #718=DIRECTION('ref_axis',(0.632249195209248,0.,0.774765096759823)); 759 | #719=DIRECTION('',(-0.774765096759824,-2.85316381702663E-16,0.632249195209247)); 760 | #720=DIRECTION('center_axis',(-3.68261790439316E-16,1.,0.)); 761 | #721=DIRECTION('ref_axis',(0.,0.,1.)); 762 | #722=DIRECTION('center_axis',(0.774765096759826,0.,0.632249195209244)); 763 | #723=DIRECTION('ref_axis',(0.632249195209244,4.4408920985007E-15,-0.774765096759826)); 764 | #724=DIRECTION('center_axis',(3.68261790439316E-16,-1.,0.)); 765 | #725=DIRECTION('ref_axis',(1.,3.68261790439316E-16,1.546188407107E-16)); 766 | #726=DIRECTION('center_axis',(-3.68261790439316E-16,1.,0.)); 767 | #727=DIRECTION('ref_axis',(1.,3.67219746687912E-16,1.546188407107E-16)); 768 | #728=DIRECTION('center_axis',(-0.774765096759824,-2.85316381702663E-16, 769 | -0.632249195209247)); 770 | #729=DIRECTION('ref_axis',(0.447067693332207,0.707106781186544,-0.547841653745519)); 771 | #730=DIRECTION('center_axis',(0.774765096759829,0.,0.632249195209241)); 772 | #731=DIRECTION('ref_axis',(0.632249195209241,4.44089209850062E-15,-0.774765096759829)); 773 | #732=DIRECTION('',(0.774765096759824,2.85316381702663E-16,0.632249195209247)); 774 | #733=DIRECTION('',(-0.774765096759824,-2.85316381702663E-16,-0.632249195209247)); 775 | #734=DIRECTION('center_axis',(-3.68261790439316E-16,1.,0.)); 776 | #735=DIRECTION('ref_axis',(0.00197883221849999,0.,-0.999998042109609)); 777 | #736=DIRECTION('center_axis',(0.777261254401318,0.,-0.629177989448526)); 778 | #737=DIRECTION('ref_axis',(-0.629177989448526,-4.44089209850065E-15,-0.777261254401318)); 779 | #738=DIRECTION('center_axis',(3.68261790439316E-16,-1.,0.)); 780 | #739=DIRECTION('ref_axis',(0.00197883221850049,7.28728295763994E-19,-0.999998042109609)); 781 | #740=DIRECTION('center_axis',(-3.68261790439316E-16,1.,0.)); 782 | #741=DIRECTION('ref_axis',(0.00197883221850049,1.33440267382831E-18,-0.999998042109609)); 783 | #742=DIRECTION('center_axis',(-0.77726125440132,-2.86235621184939E-16,0.629177989448524)); 784 | #743=DIRECTION('ref_axis',(-0.444896022912367,0.707106781186544,-0.549606703740742)); 785 | #744=DIRECTION('center_axis',(0.777261254401334,0.,-0.629177989448506)); 786 | #745=DIRECTION('ref_axis',(-0.629177989448506,0.,-0.777261254401334)); 787 | #746=DIRECTION('',(0.77726125440132,2.86235621184939E-16,-0.629177989448524)); 788 | #747=DIRECTION('',(-0.77726125440132,-2.86235621184939E-16,0.629177989448524)); 789 | #748=DIRECTION('center_axis',(-3.68261790439316E-16,1.,0.)); 790 | #749=DIRECTION('ref_axis',(0.,0.,1.)); 791 | #750=DIRECTION('center_axis',(-0.77726125440132,0.,-0.629177989448523)); 792 | #751=DIRECTION('ref_axis',(-0.629177989448523,0.,0.77726125440132)); 793 | #752=DIRECTION('center_axis',(3.68261790439316E-16,-1.,0.)); 794 | #753=DIRECTION('ref_axis',(-1.,-3.68261790439316E-16,-3.72234002228848E-16)); 795 | #754=DIRECTION('center_axis',(-3.68261790439316E-16,1.,0.)); 796 | #755=DIRECTION('ref_axis',(-1.,-3.67581077200988E-16,-3.72234002228848E-16)); 797 | #756=DIRECTION('center_axis',(0.77726125440132,2.86235621184939E-16,0.629177989448524)); 798 | #757=DIRECTION('ref_axis',(-0.444896022912377,0.70710678118654,0.549606703740739)); 799 | #758=DIRECTION('center_axis',(-0.777261254401312,0.,-0.629177989448533)); 800 | #759=DIRECTION('ref_axis',(-0.629177989448533,0.,0.777261254401313)); 801 | #760=DIRECTION('',(-0.77726125440132,-2.86235621184939E-16,-0.629177989448524)); 802 | #761=DIRECTION('',(0.77726125440132,2.86235621184939E-16,0.629177989448524)); 803 | #762=DIRECTION('center_axis',(-3.68261790439316E-16,1.,0.)); 804 | #763=DIRECTION('ref_axis',(0.,0.,1.)); 805 | #764=DIRECTION('center_axis',(3.68261790439316E-16,-1.,0.)); 806 | #765=DIRECTION('ref_axis',(0.00197883221850006,7.28728295763837E-19,0.999998042109609)); 807 | #766=DIRECTION('center_axis',(-3.68261790439316E-16,1.,0.)); 808 | #767=DIRECTION('ref_axis',(0.00197883221850006,1.33440267382831E-18,0.999998042109609)); 809 | #768=DIRECTION('center_axis',(-4.44089209850063E-16,1.,0.)); 810 | #769=DIRECTION('ref_axis',(0.629177989448524,2.79411156189246E-16,0.77726125440132)); 811 | #770=DIRECTION('',(-4.44089209850063E-16,1.,0.)); 812 | #771=DIRECTION('center_axis',(3.68261790439316E-16,-1.,0.)); 813 | #772=DIRECTION('ref_axis',(0.629177989448524,2.79411156189246E-16,0.77726125440132)); 814 | #773=DIRECTION('',(-4.44089209850063E-16,1.,0.)); 815 | #774=DIRECTION('center_axis',(0.632249195209247,2.80775045528813E-16,-0.774765096759824)); 816 | #775=DIRECTION('ref_axis',(-0.774765096759824,-2.85316381702663E-16,-0.632249195209247)); 817 | #776=DIRECTION('',(-4.44089209850063E-16,1.,0.)); 818 | #777=DIRECTION('',(0.774765096759824,2.85316381702663E-16,0.632249195209247)); 819 | #778=DIRECTION('center_axis',(-4.44089209850063E-16,1.,0.)); 820 | #779=DIRECTION('ref_axis',(-0.632249195209248,-2.80775045528813E-16,0.774765096759823)); 821 | #780=DIRECTION('',(-4.44089209850063E-16,1.,0.)); 822 | #781=DIRECTION('center_axis',(3.68261790439316E-16,-1.,0.)); 823 | #782=DIRECTION('ref_axis',(-0.632249195209248,-2.80775045528813E-16,0.774765096759823)); 824 | #783=DIRECTION('center_axis',(0.632249195209247,2.80775045528813E-16,0.774765096759824)); 825 | #784=DIRECTION('ref_axis',(0.774765096759824,2.85316381702663E-16,-0.632249195209247)); 826 | #785=DIRECTION('',(-4.44089209850063E-16,1.,0.)); 827 | #786=DIRECTION('',(-0.774765096759824,-2.85316381702663E-16,0.632249195209247)); 828 | #787=DIRECTION('center_axis',(-3.68261790439316E-16,1.,0.)); 829 | #788=DIRECTION('ref_axis',(0.,0.,1.)); 830 | #789=DIRECTION('center_axis',(3.68261790439316E-16,-1.,0.)); 831 | #790=DIRECTION('ref_axis',(1.,3.68261790439316E-16,0.)); 832 | #791=DIRECTION('center_axis',(3.68261790439316E-16,-1.,0.)); 833 | #792=DIRECTION('ref_axis',(1.,3.68261790439316E-16,0.)); 834 | #793=DIRECTION('center_axis',(3.68261790439316E-16,-1.,0.)); 835 | #794=DIRECTION('ref_axis',(1.,3.68261790439316E-16,0.)); 836 | #795=DIRECTION('center_axis',(3.68261790439316E-16,-1.,0.)); 837 | #796=DIRECTION('ref_axis',(1.,3.68261790439316E-16,0.)); 838 | #797=DIRECTION('center_axis',(0.,1.,0.)); 839 | #798=DIRECTION('ref_axis',(0.,0.,1.)); 840 | #799=DIRECTION('center_axis',(0.,1.,0.)); 841 | #800=DIRECTION('ref_axis',(1.,0.,0.)); 842 | #801=DIRECTION('center_axis',(0.,1.,0.)); 843 | #802=DIRECTION('ref_axis',(1.,0.,0.)); 844 | #803=DIRECTION('center_axis',(-1.84130895219658E-16,1.,0.)); 845 | #804=DIRECTION('ref_axis',(0.,0.,-1.)); 846 | #805=DIRECTION('center_axis',(0.,1.,0.)); 847 | #806=DIRECTION('ref_axis',(0.,0.,1.)); 848 | #807=DIRECTION('center_axis',(0.,1.,0.)); 849 | #808=DIRECTION('ref_axis',(1.,0.,0.)); 850 | #809=DIRECTION('center_axis',(0.,1.,0.)); 851 | #810=DIRECTION('ref_axis',(1.,0.,0.)); 852 | #811=DIRECTION('center_axis',(0.,1.,0.)); 853 | #812=DIRECTION('ref_axis',(1.,0.,0.)); 854 | #813=DIRECTION('center_axis',(0.,1.,0.)); 855 | #814=DIRECTION('ref_axis',(1.,0.,0.)); 856 | #815=DIRECTION('center_axis',(0.,1.,0.)); 857 | #816=DIRECTION('ref_axis',(0.,0.,1.)); 858 | #817=DIRECTION('center_axis',(0.,1.,0.)); 859 | #818=DIRECTION('ref_axis',(1.,0.,0.)); 860 | #819=DIRECTION('center_axis',(0.,1.,0.)); 861 | #820=DIRECTION('ref_axis',(1.,0.,0.)); 862 | #821=DIRECTION('',(0.,-1.,0.)); 863 | #822=DIRECTION('center_axis',(0.,1.,0.)); 864 | #823=DIRECTION('ref_axis',(0.,0.,1.)); 865 | #824=DIRECTION('center_axis',(0.,1.,0.)); 866 | #825=DIRECTION('ref_axis',(1.,0.,0.)); 867 | #826=DIRECTION('center_axis',(0.,1.,0.)); 868 | #827=DIRECTION('ref_axis',(1.,0.,0.)); 869 | #828=DIRECTION('center_axis',(0.,1.,0.)); 870 | #829=DIRECTION('ref_axis',(0.,0.,1.)); 871 | #830=DIRECTION('center_axis',(0.,1.,0.)); 872 | #831=DIRECTION('ref_axis',(1.,0.,0.)); 873 | #832=DIRECTION('center_axis',(0.,1.,0.)); 874 | #833=DIRECTION('ref_axis',(1.,0.,0.)); 875 | #834=DIRECTION('',(0.,-1.,0.)); 876 | #835=DIRECTION('center_axis',(0.,1.,0.)); 877 | #836=DIRECTION('ref_axis',(0.,0.,1.)); 878 | #837=DIRECTION('center_axis',(0.,1.,0.)); 879 | #838=DIRECTION('ref_axis',(1.,0.,0.)); 880 | #839=DIRECTION('center_axis',(0.,1.,0.)); 881 | #840=DIRECTION('ref_axis',(1.,0.,0.)); 882 | #841=DIRECTION('center_axis',(0.,1.,0.)); 883 | #842=DIRECTION('ref_axis',(0.,0.,1.)); 884 | #843=DIRECTION('center_axis',(0.,1.,0.)); 885 | #844=DIRECTION('ref_axis',(1.,0.,0.)); 886 | #845=DIRECTION('center_axis',(0.,1.,0.)); 887 | #846=DIRECTION('ref_axis',(1.,0.,0.)); 888 | #847=DIRECTION('',(0.,-1.,0.)); 889 | #848=DIRECTION('center_axis',(0.,1.,0.)); 890 | #849=DIRECTION('ref_axis',(0.,0.,1.)); 891 | #850=DIRECTION('center_axis',(0.,1.,0.)); 892 | #851=DIRECTION('ref_axis',(1.,0.,0.)); 893 | #852=DIRECTION('center_axis',(0.,1.,0.)); 894 | #853=DIRECTION('ref_axis',(1.,0.,0.)); 895 | #854=DIRECTION('center_axis',(0.,1.,0.)); 896 | #855=DIRECTION('ref_axis',(0.,0.,1.)); 897 | #856=DIRECTION('center_axis',(0.,1.,0.)); 898 | #857=DIRECTION('ref_axis',(1.,0.,0.)); 899 | #858=DIRECTION('center_axis',(0.,1.,0.)); 900 | #859=DIRECTION('ref_axis',(1.,0.,0.)); 901 | #860=DIRECTION('',(0.,-1.,0.)); 902 | #861=DIRECTION('center_axis',(0.,1.,0.)); 903 | #862=DIRECTION('ref_axis',(0.,0.,1.)); 904 | #863=DIRECTION('center_axis',(0.,1.,0.)); 905 | #864=DIRECTION('ref_axis',(1.,0.,0.)); 906 | #865=DIRECTION('center_axis',(0.,1.,0.)); 907 | #866=DIRECTION('ref_axis',(1.,0.,0.)); 908 | #867=DIRECTION('center_axis',(0.,1.,0.)); 909 | #868=DIRECTION('ref_axis',(0.,0.,1.)); 910 | #869=DIRECTION('',(0.,-1.,0.)); 911 | #870=DIRECTION('center_axis',(-0.629177989448524,-2.79411156189246E-16, 912 | -0.77726125440132)); 913 | #871=DIRECTION('ref_axis',(-0.77726125440132,-2.86235621184939E-16,0.629177989448524)); 914 | #872=DIRECTION('',(0.77726125440132,2.86235621184939E-16,-0.629177989448524)); 915 | #873=DIRECTION('',(-4.44089209850063E-16,1.,0.)); 916 | #874=DIRECTION('center_axis',(-4.44089209850063E-16,1.,0.)); 917 | #875=DIRECTION('ref_axis',(0.629177989448524,2.79411156189246E-16,-0.77726125440132)); 918 | #876=DIRECTION('center_axis',(3.68261790439316E-16,-1.,0.)); 919 | #877=DIRECTION('ref_axis',(0.629177989448524,2.79411156189246E-16,-0.77726125440132)); 920 | #878=DIRECTION('',(-4.44089209850063E-16,1.,0.)); 921 | #879=DIRECTION('center_axis',(-4.44089209850063E-16,1.,0.)); 922 | #880=DIRECTION('ref_axis',(-0.632249195209247,-2.80775045528813E-16,-0.774765096759824)); 923 | #881=DIRECTION('',(-4.44089209850063E-16,1.,0.)); 924 | #882=DIRECTION('center_axis',(3.68261790439316E-16,-1.,0.)); 925 | #883=DIRECTION('ref_axis',(-0.632249195209247,-2.80775045528813E-16,-0.774765096759824)); 926 | #884=DIRECTION('center_axis',(-0.629177989448524,-2.79411156189246E-16, 927 | 0.77726125440132)); 928 | #885=DIRECTION('ref_axis',(0.77726125440132,2.86235621184939E-16,0.629177989448524)); 929 | #886=DIRECTION('',(-0.77726125440132,-2.86235621184939E-16,-0.629177989448524)); 930 | #887=DIRECTION('center_axis',(3.68261790439316E-16,-1.,0.)); 931 | #888=DIRECTION('ref_axis',(1.,3.68261790439316E-16,0.)); 932 | #889=DIRECTION('center_axis',(-3.68261790439316E-16,1.,0.)); 933 | #890=DIRECTION('ref_axis',(1.,3.68261790439316E-16,0.)); 934 | #891=DIRECTION('center_axis',(-3.68261790439316E-16,1.,0.)); 935 | #892=DIRECTION('ref_axis',(1.,3.68261790439316E-16,0.)); 936 | #893=DIRECTION('',(-3.68261790439316E-16,1.,0.)); 937 | #894=DIRECTION('center_axis',(3.68261790439316E-16,-1.,0.)); 938 | #895=DIRECTION('ref_axis',(1.,3.68261790439316E-16,0.)); 939 | #896=DIRECTION('center_axis',(-3.68261790439316E-16,1.,0.)); 940 | #897=DIRECTION('ref_axis',(1.,3.68261790439316E-16,0.)); 941 | #898=DIRECTION('center_axis',(-3.68261790439316E-16,1.,0.)); 942 | #899=DIRECTION('ref_axis',(1.,3.68261790439316E-16,0.)); 943 | #900=DIRECTION('',(-3.68261790439316E-16,1.,0.)); 944 | #901=DIRECTION('center_axis',(3.68261790439316E-16,-1.,0.)); 945 | #902=DIRECTION('ref_axis',(1.,3.39165026281802E-16,0.)); 946 | #903=DIRECTION('',(-3.68261790439316E-16,1.,0.)); 947 | #904=DIRECTION('center_axis',(3.68261790439316E-16,-1.,0.)); 948 | #905=DIRECTION('ref_axis',(0.,0.,-1.)); 949 | #906=DIRECTION('center_axis',(-1.,-3.68261790439316E-16,-1.22464679914735E-16)); 950 | #907=DIRECTION('ref_axis',(-1.22464679914735E-16,0.,1.)); 951 | #908=CARTESIAN_POINT('',(0.,0.,0.)); 952 | #909=CARTESIAN_POINT('Origin',(27.3852444470474,-9.27355112980259,10.8880759768671)); 953 | #910=CARTESIAN_POINT('',(16.2804167766381,-9.02355112980259,19.9502012415655)); 954 | #911=CARTESIAN_POINT('',(16.4384790754404,-9.27355112980259,20.1438925157554)); 955 | #912=CARTESIAN_POINT('Origin',(16.2804167766381,-9.27355112980259,19.9502012415655)); 956 | #913=CARTESIAN_POINT('',(34.3059264472051,-9.27355112980259,5.56311278201924)); 957 | #914=CARTESIAN_POINT('',(27.5433067458497,-9.27355112980259,11.0817672510571)); 958 | #915=CARTESIAN_POINT('',(34.1478641484028,-9.02355112980259,5.36942150782928)); 959 | #916=CARTESIAN_POINT('Origin',(34.1478641484028,-9.27355112980259,5.36942150782928)); 960 | #917=CARTESIAN_POINT('',(27.3852444470474,-9.02355112980259,10.8880759768671)); 961 | #918=CARTESIAN_POINT('Origin',(29.7661329097837,-9.27355112980259,0.)); 962 | #919=CARTESIAN_POINT('',(34.3059264472051,-9.27355112980259,-5.56311278201924)); 963 | #920=CARTESIAN_POINT('',(34.1478641484028,-9.02355112980259,-5.36942150782929)); 964 | #921=CARTESIAN_POINT('Origin',(34.1478641484028,-9.27355112980259,-5.36942150782929)); 965 | #922=CARTESIAN_POINT('Origin',(29.7661329097837,-9.02355112980259,0.)); 966 | #923=CARTESIAN_POINT('Origin',(29.7661329097837,-9.27355112980259,0.)); 967 | #924=CARTESIAN_POINT('Origin',(36.3189681329298,-9.27355112980259,-3.59768610999903)); 968 | #925=CARTESIAN_POINT('',(16.4384790754404,-9.27355112980259,-20.1438925157554)); 969 | #926=CARTESIAN_POINT('',(16.2804167766381,-9.02355112980259,-19.9502012415655)); 970 | #927=CARTESIAN_POINT('Origin',(16.2804167766381,-9.27355112980259,-19.9502012415655)); 971 | #928=CARTESIAN_POINT('',(36.3189681329298,-9.02355112980258,-3.59768610999903)); 972 | #929=CARTESIAN_POINT('',(36.4770304317321,-9.27355112980259,-3.79137738418899)); 973 | #930=CARTESIAN_POINT('Origin',(3.2065691394121E-15,-9.2735511298026,0.)); 974 | #931=CARTESIAN_POINT('',(-16.3586277256616,-9.27355112980261,-20.2087926144343)); 975 | #932=CARTESIAN_POINT('',(-16.2013332282995,-9.0235511298026,-20.014477300834)); 976 | #933=CARTESIAN_POINT('Origin',(-16.2013332282995,-9.27355112980261,-20.014477300834)); 977 | #934=CARTESIAN_POINT('Origin',(3.11450369180227E-15,-9.0235511298026,0.)); 978 | #935=CARTESIAN_POINT('Origin',(3.2065691394121E-15,-9.2735511298026,0.)); 979 | #936=CARTESIAN_POINT('Origin',(-5.0248346628195,-9.2735511298026,-29.0616372572625)); 980 | #937=CARTESIAN_POINT('',(-34.1640614683995,-9.27355112980261,-5.79563752651785)); 981 | #938=CARTESIAN_POINT('',(-34.0067669710374,-9.02355112980261,-5.60132221291752)); 982 | #939=CARTESIAN_POINT('Origin',(-34.0067669710374,-9.27355112980261,-5.60132221291752)); 983 | #940=CARTESIAN_POINT('',(-5.0248346628195,-9.0235511298026,-29.0616372572625)); 984 | #941=CARTESIAN_POINT('',(-5.18212916018162,-9.2735511298026,-29.2559525708628)); 985 | #942=CARTESIAN_POINT('Origin',(-29.4726047080653,-9.27355112980262,0.)); 986 | #943=CARTESIAN_POINT('',(-34.1640614683995,-9.27355112980262,5.79563752651785)); 987 | #944=CARTESIAN_POINT('',(-34.0067669710374,-9.02355112980261,5.60132221291751)); 988 | #945=CARTESIAN_POINT('Origin',(-34.0067669710374,-9.27355112980262,5.60132221291751)); 989 | #946=CARTESIAN_POINT('Origin',(-29.4726047080653,-9.02355112980261,0.)); 990 | #947=CARTESIAN_POINT('Origin',(-29.4726047080653,-9.27355112980262,0.)); 991 | #948=CARTESIAN_POINT('Origin',(-13.9275515341884,-9.2735511298026,21.8550597133043)); 992 | #949=CARTESIAN_POINT('',(-16.3586277256616,-9.27355112980261,20.2087926144343)); 993 | #950=CARTESIAN_POINT('',(-16.2013332282995,-9.02355112980261,20.014477300834)); 994 | #951=CARTESIAN_POINT('Origin',(-16.2013332282995,-9.27355112980261,20.014477300834)); 995 | #952=CARTESIAN_POINT('',(-13.9275515341884,-9.0235511298026,21.8550597133043)); 996 | #953=CARTESIAN_POINT('',(-14.0848460315505,-9.2735511298026,22.0493750269046)); 997 | #954=CARTESIAN_POINT('Origin',(3.2065691394121E-15,-9.2735511298026,0.)); 998 | #955=CARTESIAN_POINT('Origin',(3.11450369180227E-15,-9.0235511298026,0.)); 999 | #956=CARTESIAN_POINT('Origin',(3.2065691394121E-15,-9.2735511298026,0.)); 1000 | #957=CARTESIAN_POINT('Origin',(4.42781446649976E-15,-12.0235511298026,0.)); 1001 | #958=CARTESIAN_POINT('',(16.4384790754404,-12.0235511298026,-20.1438925157554)); 1002 | #959=CARTESIAN_POINT('',(16.4384790754404,-12.0235511298026,-20.1438925157554)); 1003 | #960=CARTESIAN_POINT('',(-16.3586277256616,-12.0235511298026,-20.2087926144343)); 1004 | #961=CARTESIAN_POINT('Origin',(4.42781446649976E-15,-12.0235511298026,0.)); 1005 | #962=CARTESIAN_POINT('',(-16.3586277256616,-12.0235511298026,-20.2087926144343)); 1006 | #963=CARTESIAN_POINT('Origin',(34.3059264472051,-12.0235511298026,-5.56311278201924)); 1007 | #964=CARTESIAN_POINT('',(34.3059264472051,-12.0235511298026,-5.56311278201924)); 1008 | #965=CARTESIAN_POINT('',(34.3059264472051,-12.0235511298026,-5.56311278201924)); 1009 | #966=CARTESIAN_POINT('',(25.3722027613228,-12.0235511298026,-12.8535026488873)); 1010 | #967=CARTESIAN_POINT('Origin',(29.7661329097837,-12.0235511298026,0.)); 1011 | #968=CARTESIAN_POINT('',(34.3059264472051,-12.0235511298026,5.56311278201924)); 1012 | #969=CARTESIAN_POINT('',(34.3059264472051,-12.0235511298026,5.56311278201924)); 1013 | #970=CARTESIAN_POINT('Origin',(29.7661329097837,-12.0235511298026,0.)); 1014 | #971=CARTESIAN_POINT('Origin',(16.4384790754404,-12.0235511298026,20.1438925157554)); 1015 | #972=CARTESIAN_POINT('',(16.4384790754404,-12.0235511298026,20.1438925157554)); 1016 | #973=CARTESIAN_POINT('',(16.4384790754404,-12.0235511298026,20.1438925157554)); 1017 | #974=CARTESIAN_POINT('',(16.4384790754404,-12.0235511298026,20.1438925157554)); 1018 | #975=CARTESIAN_POINT('Origin',(37.,-9.02355112980258,0.)); 1019 | #976=CARTESIAN_POINT('',(22.,-9.02355112980258,0.)); 1020 | #977=CARTESIAN_POINT('',(-22.,-9.0235511298026,-2.69422295812418E-15)); 1021 | #978=CARTESIAN_POINT('Origin',(3.33610672718268E-15,-9.02355112980259,0.)); 1022 | #979=CARTESIAN_POINT('Origin',(3.33610672718268E-15,-9.02355112980259,0.)); 1023 | #980=CARTESIAN_POINT('',(26.5,-9.02355112980258,-4.28626379701574E-16)); 1024 | #981=CARTESIAN_POINT('Origin',(30.,-9.02355112980258,0.)); 1025 | #982=CARTESIAN_POINT('',(-33.5,-9.0235511298026,-4.28626379701574E-16)); 1026 | #983=CARTESIAN_POINT('Origin',(-30.,-9.0235511298026,0.)); 1027 | #984=CARTESIAN_POINT('Origin',(0.,17.,0.)); 1028 | #985=CARTESIAN_POINT('',(0.,17.,13.6132787783433)); 1029 | #986=CARTESIAN_POINT('',(-1.66714582817987E-15,17.,-13.6132787783433)); 1030 | #987=CARTESIAN_POINT('Origin',(0.,17.,0.)); 1031 | #988=CARTESIAN_POINT('Origin',(0.,17.,0.)); 1032 | #989=CARTESIAN_POINT('',(-3.70305034104676E-15,17.,10.6668222767949)); 1033 | #990=CARTESIAN_POINT('Origin',(-5.00935931688182E-15,17.,0.)); 1034 | #991=CARTESIAN_POINT('Origin',(0.,14.269840459236,21.1679682371002)); 1035 | #992=CARTESIAN_POINT('',(0.,14.269840459236,22.)); 1036 | #993=CARTESIAN_POINT('',(-22.,14.269840459236,-2.69422295812418E-15)); 1037 | #994=CARTESIAN_POINT('Origin',(0.,14.269840459236,0.)); 1038 | #995=CARTESIAN_POINT('Origin',(0.,14.269840459236,0.)); 1039 | #996=CARTESIAN_POINT('',(0.,14.269840459236,21.1679682371002)); 1040 | #997=CARTESIAN_POINT('',(-2.59232845460176E-15,14.269840459236,-21.1679682371002)); 1041 | #998=CARTESIAN_POINT('Origin',(0.,14.269840459236,0.)); 1042 | #999=CARTESIAN_POINT('Origin',(0.,14.269840459236,0.)); 1043 | #1000=CARTESIAN_POINT('Origin',(0.,14.7025552088825,0.)); 1044 | #1001=CARTESIAN_POINT('',(0.,15.1352699585289,21.1679682371002)); 1045 | #1002=CARTESIAN_POINT('',(-2.59232845460176E-15,15.1352699585289,-21.1679682371002)); 1046 | #1003=CARTESIAN_POINT('Origin',(0.,15.1352699585289,0.)); 1047 | #1004=CARTESIAN_POINT('Origin',(0.,15.1352699585289,0.)); 1048 | #1005=CARTESIAN_POINT('',(-2.59232845460176E-15,14.7025552088825,-21.1679682371002)); 1049 | #1006=CARTESIAN_POINT('Origin',(0.,15.1352699585289,19.6132787783433)); 1050 | #1007=CARTESIAN_POINT('',(0.,15.1352699585289,19.6132787783433)); 1051 | #1008=CARTESIAN_POINT('',(-2.40193390766828E-15,15.1352699585289,-19.6132787783433)); 1052 | #1009=CARTESIAN_POINT('Origin',(0.,15.1352699585289,0.)); 1053 | #1010=CARTESIAN_POINT('Origin',(0.,15.1352699585289,0.)); 1054 | #1011=CARTESIAN_POINT('Origin',(0.,15.6926349792645,0.)); 1055 | #1012=CARTESIAN_POINT('',(0.,16.25,19.6132787783433)); 1056 | #1013=CARTESIAN_POINT('',(-2.40193390766828E-15,16.25,-19.6132787783433)); 1057 | #1014=CARTESIAN_POINT('Origin',(0.,16.25,0.)); 1058 | #1015=CARTESIAN_POINT('Origin',(0.,16.25,0.)); 1059 | #1016=CARTESIAN_POINT('',(-2.40193390766828E-15,15.6926349792645,-19.6132787783433)); 1060 | #1017=CARTESIAN_POINT('Origin',(0.,16.25,17.6132787783433)); 1061 | #1018=CARTESIAN_POINT('',(0.,16.25,17.6132787783433)); 1062 | #1019=CARTESIAN_POINT('',(-2.15700454783881E-15,16.25,-17.6132787783433)); 1063 | #1020=CARTESIAN_POINT('Origin',(0.,16.25,0.)); 1064 | #1021=CARTESIAN_POINT('Origin',(0.,16.25,0.)); 1065 | #1022=CARTESIAN_POINT('Origin',(0.,16.375,0.)); 1066 | #1023=CARTESIAN_POINT('',(0.,16.5,17.6132787783433)); 1067 | #1024=CARTESIAN_POINT('',(-2.15700454783881E-15,16.5,-17.6132787783433)); 1068 | #1025=CARTESIAN_POINT('Origin',(0.,16.5,0.)); 1069 | #1026=CARTESIAN_POINT('Origin',(0.,16.5,0.)); 1070 | #1027=CARTESIAN_POINT('',(-2.15700454783881E-15,16.375,-17.6132787783433)); 1071 | #1028=CARTESIAN_POINT('Origin',(0.,16.5,15.6132787783433)); 1072 | #1029=CARTESIAN_POINT('',(0.,16.5,15.6132787783433)); 1073 | #1030=CARTESIAN_POINT('',(-1.91207518800934E-15,16.5,-15.6132787783433)); 1074 | #1031=CARTESIAN_POINT('Origin',(0.,16.5,0.)); 1075 | #1032=CARTESIAN_POINT('Origin',(0.,16.5,0.)); 1076 | #1033=CARTESIAN_POINT('Origin',(0.,16.625,0.)); 1077 | #1034=CARTESIAN_POINT('',(0.,16.75,15.6132787783433)); 1078 | #1035=CARTESIAN_POINT('',(-1.91207518800934E-15,16.75,-15.6132787783433)); 1079 | #1036=CARTESIAN_POINT('Origin',(0.,16.75,0.)); 1080 | #1037=CARTESIAN_POINT('Origin',(0.,16.75,0.)); 1081 | #1038=CARTESIAN_POINT('',(-1.91207518800934E-15,16.625,-15.6132787783433)); 1082 | #1039=CARTESIAN_POINT('Origin',(0.,16.75,13.6132787783433)); 1083 | #1040=CARTESIAN_POINT('',(0.,16.75,13.6132787783433)); 1084 | #1041=CARTESIAN_POINT('',(-1.66714582817987E-15,16.75,-13.6132787783433)); 1085 | #1042=CARTESIAN_POINT('Origin',(0.,16.75,0.)); 1086 | #1043=CARTESIAN_POINT('Origin',(0.,16.75,0.)); 1087 | #1044=CARTESIAN_POINT('Origin',(0.,16.875,0.)); 1088 | #1045=CARTESIAN_POINT('',(-1.66714582817987E-15,16.875,-13.6132787783433)); 1089 | #1046=CARTESIAN_POINT('Origin',(-16.3586277256616,-12.0235511298026,-20.2087926144343)); 1090 | #1047=CARTESIAN_POINT('',(-34.1640614683995,-12.0235511298026,-5.79563752651785)); 1091 | #1048=CARTESIAN_POINT('',(-16.3586277256616,-12.0235511298026,-20.2087926144343)); 1092 | #1049=CARTESIAN_POINT('',(-34.1640614683995,-12.0235511298026,-5.79563752651785)); 1093 | #1050=CARTESIAN_POINT('Origin',(-29.4726047080653,-12.0235511298026,0.)); 1094 | #1051=CARTESIAN_POINT('',(-34.1640614683995,-12.0235511298026,5.79563752651785)); 1095 | #1052=CARTESIAN_POINT('Origin',(-29.4726047080653,-12.0235511298026,0.)); 1096 | #1053=CARTESIAN_POINT('',(-34.1640614683995,-12.0235511298026,5.79563752651785)); 1097 | #1054=CARTESIAN_POINT('Origin',(4.42781446649976E-15,-12.0235511298026, 1098 | 0.)); 1099 | #1055=CARTESIAN_POINT('',(-16.3586277256616,-12.0235511298026,20.2087926144343)); 1100 | #1056=CARTESIAN_POINT('',(-16.3586277256616,-12.0235511298026,20.2087926144343)); 1101 | #1057=CARTESIAN_POINT('Origin',(4.42781446649976E-15,-12.0235511298026, 1102 | 0.)); 1103 | #1058=CARTESIAN_POINT('Origin',(-34.1640614683995,-12.0235511298026,5.79563752651785)); 1104 | #1059=CARTESIAN_POINT('',(-25.2613445970306,-12.0235511298026,13.0022150704761)); 1105 | #1060=CARTESIAN_POINT('Origin',(-30.,98.325749779081,0.)); 1106 | #1061=CARTESIAN_POINT('',(-26.5,-12.0235511298026,0.)); 1107 | #1062=CARTESIAN_POINT('',(-33.5,-12.0235511298026,-4.28626379701574E-16)); 1108 | #1063=CARTESIAN_POINT('Origin',(-30.,-12.0235511298026,0.)); 1109 | #1064=CARTESIAN_POINT('Origin',(-30.,-12.0235511298026,0.)); 1110 | #1065=CARTESIAN_POINT('',(-33.5,98.325749779081,-4.28626379701574E-16)); 1111 | #1066=CARTESIAN_POINT('Origin',(30.,98.3257497790811,0.)); 1112 | #1067=CARTESIAN_POINT('',(33.5,-12.0235511298026,0.)); 1113 | #1068=CARTESIAN_POINT('',(26.5,-12.0235511298026,-4.28626379701574E-16)); 1114 | #1069=CARTESIAN_POINT('Origin',(30.,-12.0235511298026,0.)); 1115 | #1070=CARTESIAN_POINT('Origin',(30.,-12.0235511298026,0.)); 1116 | #1071=CARTESIAN_POINT('',(26.5,98.3257497790811,-4.28626379701574E-16)); 1117 | #1072=CARTESIAN_POINT('Origin',(-8.98903862869456E-16,2.47644887019741, 1118 | 0.)); 1119 | #1073=CARTESIAN_POINT('',(-22.,2.4764488701974,-2.69422295812418E-15)); 1120 | #1074=CARTESIAN_POINT('Origin',(4.44089209850063E-15,-12.0235511298026, 1121 | 0.)); 1122 | #1075=CARTESIAN_POINT('Ctrl Pts',(-8.44810332800705E-15,22.9759947398132, 1123 | -2.77555756156289E-16)); 1124 | #1076=CARTESIAN_POINT('Ctrl Pts',(-8.17054757185076E-15,22.9759947398132, 1125 | -2.77555756156289E-16)); 1126 | #1077=CARTESIAN_POINT('Ctrl Pts',(-8.17054757185076E-15,22.9759947398132, 1127 | 0.)); 1128 | #1078=CARTESIAN_POINT('Ctrl Pts',(-8.17054757185076E-15,22.9759947398132, 1129 | 2.77555756156289E-16)); 1130 | #1079=CARTESIAN_POINT('Ctrl Pts',(-8.44810332800705E-15,22.9759947398132, 1131 | 2.77555756156289E-16)); 1132 | #1080=CARTESIAN_POINT('Ctrl Pts',(-8.72565908416334E-15,22.9759947398132, 1133 | 2.77555756156289E-16)); 1134 | #1081=CARTESIAN_POINT('Ctrl Pts',(-8.72565908416334E-15,22.9759947398132, 1135 | 0.)); 1136 | #1082=CARTESIAN_POINT('Ctrl Pts',(-8.72565908416334E-15,22.9759947398132, 1137 | -2.77555756156289E-16)); 1138 | #1083=CARTESIAN_POINT('Ctrl Pts',(-8.44810332800705E-15,22.9759947398132, 1139 | -2.77555756156289E-16)); 1140 | #1084=CARTESIAN_POINT('Ctrl Pts',(-8.42638249401711E-15,22.9170126934705, 1141 | 6.97436659000638)); 1142 | #1085=CARTESIAN_POINT('Ctrl Pts',(-6.97436659000639,22.9170126934705,6.97436659000638)); 1143 | #1086=CARTESIAN_POINT('Ctrl Pts',(-6.97436659000639,22.9170126934705,1.97215226305253E-30)); 1144 | #1087=CARTESIAN_POINT('Ctrl Pts',(-6.97436659000639,22.9170126934705,-6.97436659000638)); 1145 | #1088=CARTESIAN_POINT('Ctrl Pts',(-8.42638249401712E-15,22.9170126934705, 1146 | -6.97436659000638)); 1147 | #1089=CARTESIAN_POINT('Ctrl Pts',(6.97436659000637,22.9170126934705,-6.97436659000638)); 1148 | #1090=CARTESIAN_POINT('Ctrl Pts',(6.97436659000637,22.9170126934705,-1.97215226305253E-30)); 1149 | #1091=CARTESIAN_POINT('Ctrl Pts',(6.97436659000637,22.9170126934705,6.97436659000638)); 1150 | #1092=CARTESIAN_POINT('Ctrl Pts',(-8.42638249401711E-15,22.9170126934705, 1151 | 6.97436659000638)); 1152 | #1093=CARTESIAN_POINT('Ctrl Pts',(-6.24737280546751E-15,17.,10.6668222767949)); 1153 | #1094=CARTESIAN_POINT('Ctrl Pts',(-10.6668222767949,17.,10.6668222767949)); 1154 | #1095=CARTESIAN_POINT('Ctrl Pts',(-10.6668222767949,17.,0.)); 1155 | #1096=CARTESIAN_POINT('Ctrl Pts',(-10.6668222767949,17.,-10.6668222767949)); 1156 | #1097=CARTESIAN_POINT('Ctrl Pts',(-6.24737280546751E-15,17.,-10.6668222767949)); 1157 | #1098=CARTESIAN_POINT('Ctrl Pts',(10.6668222767949,17.,-10.6668222767949)); 1158 | #1099=CARTESIAN_POINT('Ctrl Pts',(10.6668222767949,17.,0.)); 1159 | #1100=CARTESIAN_POINT('Ctrl Pts',(10.6668222767949,17.,10.6668222767949)); 1160 | #1101=CARTESIAN_POINT('Ctrl Pts',(-6.24737280546751E-15,17.,10.6668222767949)); 1161 | #1102=CARTESIAN_POINT('',(-8.44810332800705E-15,22.9759947398132,0.)); 1162 | #1103=CARTESIAN_POINT('Origin',(-3.75819315273128E-15,10.2764488701974, 1163 | -0.107399746392179)); 1164 | #1104=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.01),#1108, 1165 | 'DISTANCE_ACCURACY_VALUE', 1166 | 'Maximum model space distance between geometric entities at asserted c 1167 | onnectivities'); 1168 | #1105=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.01),#1108, 1169 | 'DISTANCE_ACCURACY_VALUE', 1170 | 'Maximum model space distance between geometric entities at asserted c 1171 | onnectivities'); 1172 | #1106=( 1173 | GEOMETRIC_REPRESENTATION_CONTEXT(3) 1174 | GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#1104)) 1175 | GLOBAL_UNIT_ASSIGNED_CONTEXT((#1108,#1110,#1111)) 1176 | REPRESENTATION_CONTEXT('','3D') 1177 | ); 1178 | #1107=( 1179 | GEOMETRIC_REPRESENTATION_CONTEXT(3) 1180 | GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#1105)) 1181 | GLOBAL_UNIT_ASSIGNED_CONTEXT((#1108,#1110,#1111)) 1182 | REPRESENTATION_CONTEXT('','3D') 1183 | ); 1184 | #1108=( 1185 | LENGTH_UNIT() 1186 | NAMED_UNIT(*) 1187 | SI_UNIT(.MILLI.,.METRE.) 1188 | ); 1189 | #1109=( 1190 | LENGTH_UNIT() 1191 | NAMED_UNIT(*) 1192 | SI_UNIT(.CENTI.,.METRE.) 1193 | ); 1194 | #1110=( 1195 | NAMED_UNIT(*) 1196 | PLANE_ANGLE_UNIT() 1197 | SI_UNIT($,.RADIAN.) 1198 | ); 1199 | #1111=( 1200 | NAMED_UNIT(*) 1201 | SI_UNIT($,.STERADIAN.) 1202 | SOLID_ANGLE_UNIT() 1203 | ); 1204 | #1112=SHAPE_DEFINITION_REPRESENTATION(#1113,#1114); 1205 | #1113=PRODUCT_DEFINITION_SHAPE('',$,#1116); 1206 | #1114=SHAPE_REPRESENTATION('',(#625),#1106); 1207 | #1115=PRODUCT_DEFINITION_CONTEXT('part definition',#1120,'design'); 1208 | #1116=PRODUCT_DEFINITION('Caster Wheel','Caster Wheel',#1117,#1115); 1209 | #1117=PRODUCT_DEFINITION_FORMATION('',$,#1122); 1210 | #1118=PRODUCT_RELATED_PRODUCT_CATEGORY('Caster Wheel','Caster Wheel',(#1122)); 1211 | #1119=APPLICATION_PROTOCOL_DEFINITION('international standard', 1212 | 'automotive_design',2009,#1120); 1213 | #1120=APPLICATION_CONTEXT( 1214 | 'Core Data for Automotive Mechanical Design Process'); 1215 | #1121=PRODUCT_CONTEXT('part definition',#1120,'mechanical'); 1216 | #1122=PRODUCT('Caster Wheel','Caster Wheel',$,(#1121)); 1217 | #1123=PRESENTATION_STYLE_ASSIGNMENT((#1126)); 1218 | #1124=PRESENTATION_STYLE_ASSIGNMENT((#1127)); 1219 | #1125=PRESENTATION_STYLE_ASSIGNMENT((#1128)); 1220 | #1126=SURFACE_STYLE_USAGE(.BOTH.,#1135); 1221 | #1127=SURFACE_STYLE_USAGE(.BOTH.,#1136); 1222 | #1128=SURFACE_STYLE_USAGE(.BOTH.,#1137); 1223 | #1129=SURFACE_STYLE_RENDERING_WITH_PROPERTIES($,#1147,(#1132)); 1224 | #1130=SURFACE_STYLE_RENDERING_WITH_PROPERTIES($,#1148,(#1133)); 1225 | #1131=SURFACE_STYLE_RENDERING_WITH_PROPERTIES($,#1149,(#1134)); 1226 | #1132=SURFACE_STYLE_TRANSPARENT(0.); 1227 | #1133=SURFACE_STYLE_TRANSPARENT(0.); 1228 | #1134=SURFACE_STYLE_TRANSPARENT(0.); 1229 | #1135=SURFACE_SIDE_STYLE('',(#1138,#1129)); 1230 | #1136=SURFACE_SIDE_STYLE('',(#1139,#1130)); 1231 | #1137=SURFACE_SIDE_STYLE('',(#1140,#1131)); 1232 | #1138=SURFACE_STYLE_FILL_AREA(#1141); 1233 | #1139=SURFACE_STYLE_FILL_AREA(#1142); 1234 | #1140=SURFACE_STYLE_FILL_AREA(#1143); 1235 | #1141=FILL_AREA_STYLE('',(#1144)); 1236 | #1142=FILL_AREA_STYLE('',(#1145)); 1237 | #1143=FILL_AREA_STYLE('',(#1146)); 1238 | #1144=FILL_AREA_STYLE_COLOUR('',#1147); 1239 | #1145=FILL_AREA_STYLE_COLOUR('',#1148); 1240 | #1146=FILL_AREA_STYLE_COLOUR('',#1149); 1241 | #1147=COLOUR_RGB('',0.749019607843137,0.749019607843137,0.749019607843137); 1242 | #1148=COLOUR_RGB('',0.0196078431372549,0.0196078431372549,0.0196078431372549); 1243 | #1149=COLOUR_RGB('',0.956862745098039,0.956862745098039,0.956862745098039); 1244 | ENDSEC; 1245 | END-ISO-10303-21; 1246 | -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/dc-motor-2/motor/Part1.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/dc-motor-2/motor/Part1.SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/dc-motor-2/motor/Part2.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/dc-motor-2/motor/Part2.SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/dc-motor-2/motor/Part3.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/dc-motor-2/motor/Part3.SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/dc-motor-2/motor/Part4.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/dc-motor-2/motor/Part4.SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/dc-motor-2/motor/Part5.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/dc-motor-2/motor/Part5.SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/dc-motor-2/motor/Part6.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/dc-motor-2/motor/Part6.SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/dc-motor-2/motor/Part7.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/dc-motor-2/motor/Part7.SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/dc-motor-2/motor/arbor 1.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/dc-motor-2/motor/arbor 1.SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/dc-motor-2/motor/motor assembly.SLDASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/dc-motor-2/motor/motor assembly.SLDASM -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/height stable.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/height stable.SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/l298n-stepper-motor-driver-red-1.snapshot.3/L298N Stepper Motor Driver (Red).SLDASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/l298n-stepper-motor-driver-red-1.snapshot.3/L298N Stepper Motor Driver (Red).SLDASM -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/l298n-stepper-motor-driver-red-1.snapshot.3/L298N Stepper Motor Driver (Red).SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/l298n-stepper-motor-driver-red-1.snapshot.3/L298N Stepper Motor Driver (Red).SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/mpu-92-65-1.snapshot.2/MPU 92_65/C1.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/mpu-92-65-1.snapshot.2/MPU 92_65/C1.SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/mpu-92-65-1.snapshot.2/MPU 92_65/C2.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/mpu-92-65-1.snapshot.2/MPU 92_65/C2.SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/mpu-92-65-1.snapshot.2/MPU 92_65/MP92.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/mpu-92-65-1.snapshot.2/MPU 92_65/MP92.SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/mpu-92-65-1.snapshot.2/MPU 92_65/MPU9250.SLDASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/mpu-92-65-1.snapshot.2/MPU 92_65/MPU9250.SLDASM -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/mpu-92-65-1.snapshot.2/MPU 92_65/PCB.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/mpu-92-65-1.snapshot.2/MPU 92_65/PCB.SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/mpu-92-65-1.snapshot.2/MPU 92_65/R1.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/mpu-92-65-1.snapshot.2/MPU 92_65/R1.SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/mpu-92-65-1.snapshot.2/MPU 92_65/V1.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/mpu-92-65-1.snapshot.2/MPU 92_65/V1.SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/robo-s-wheel-1.snapshot.2/tyre.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/robo-s-wheel-1.snapshot.2/tyre.SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/steel-angle-bracket-1.snapshot.2/angled part.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/steel-angle-bracket-1.snapshot.2/angled part.SLDPRT -------------------------------------------------------------------------------- /Mechanical Design/Solidworks_design/top.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Mechanical Design/Solidworks_design/top.SLDPRT -------------------------------------------------------------------------------- /Poster and Report/Swarm_Poster.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Poster and Report/Swarm_Poster.jpg -------------------------------------------------------------------------------- /Poster and Report/Swarm_Robotics(Srishti) Report.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marsiitr/Swarm_Robotics/f864f090549cb0b0d992a4c2e8d93d2bd35c4f64/Poster and Report/Swarm_Robotics(Srishti) Report.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Swarm_Robotics 2 | ## Srishti 2020 3 |
4 |
5 |
Swarm robotics is an approach to the coordination of the multiple robots as a system which consist of large numbers of mostly simple physical robots. Only through their interactions a collective behavior emerges that is able to solve complex tasks. These characteristics lead to the main advantages of swarms: adaptability, robustness, and scalability. Under this excuse we made multiple bots which coordinate among themselves to form different shapes.
9 | 10 | ## Motivation 11 |As swarm of ants work in unison to achieve an intimidating task, similarly multiple bots can work in unison to achieve a seemingly difficult task. As the newbies, out of curiosity we choose to work on the same.
12 | 13 | ## Working 14 |Open cv facilitates the process of reading QR codes, including loading images from disk, grabbing a new frame from a video stream, and processing it. Important libraries we imported are pyzbar, argparse and cv2. 15 | The ZBar library will decode the barcode or QR code. OpenCV can come back in to perform any further processing and display the result. For Python, we use pyzbar, which has a simple decode function to locate and decode all symbols in the image. The decode function simply wraps pyzbar’s decode function and loops over the located barcodes and QR codes and prints the data. The decoded symbols from the previous step are passed on to the display function . If the points form a quad ( e.g. in a QR code ), we simply draw the quad. If the location is not a quad, we draw the outer boundary of all the points ( also called the convex hull ) of all the points. This is done using an OpenCV function called cv2.convexHull. Finally, the main function simply reads an image, decodes it and displays the results.
16 |
17 |
18 |
Firstly ,a function handleSpecificArg() is defined that receives data that is sent by the python code that is doing image recognition. Python returns the data in the form of string which is then sent to the NodeMCU. All of the NodeMCUs are connected to the hotspot of the same laptop so it directly sends the data to each NodeMCU. 20 | Then several functions such that backward(), forward(), etc are defined that helps the bots to move. Then a function get_gyro() is defined that gives the angle turned by bot. Then setup of different pins takes place. Then the function data() gets all the coordinates and the current angle from x-axis and which shape is to be made. 21 | Then the real loop function starts. First we get data from the camera . Then the bot starts to rotate until it is turned in the direction of target position . Then it starts to move forward until it reaches the target position on reaching the target position it starts rotating until it reaches the required orientation. All the bots do the same to make the required shape.
22 | 23 | ## Mechanical Aspect of the Design 24 |This project consists of four mechanically identical bots which move in unison to form the shape specified by the user. But each of the bot has a unique identity because of the unique QR code pasted on its roof.
25 |
26 |
27 |
Each bot has 2 sheets of ply one over the other with electrical components between them. A single bot consists of 2 normal wheels at the back, 1 castor wheel at the front and 2 L-brackets for holding motors in them.
30 | 31 |
32 |
33 |
In each of the bot, the microcontroller used is ESP8266(NodeMCU). For angle detection fron the initial position for a particular bot, a gyroscope sensor(particularly MPU-92/65 is used. For controlling the motors, a motor driver(particularly L298) is used in each bot.
37 |
38 |
39 |
Initially each bot is set to a particular same direction, but when the user calls for a shape using a user friendy interface, each bot is assigned its final coordinates in the field of view of the overhead camera. Thus each bot reaches to its final position one by one. And the final shape is achieved.
41 | 42 | ## Cost Structure 43 | 44 | | Part | Quantity | Cost per unit | Total cost | 45 | |--------------------------|:--------:|:-------------:|-----------:| 46 | | ESP8266 (NodeMCU) | 4 | 330 | 1320 | 47 | | L298 (Motor Driver) | 4 | 250 | 1000 | 48 | | 60rpm DC Motor | 8 | 200 | 1600 | 49 | | MPU 92/65 (Gyroscope) | 4 | 300 | 1200 | 50 | | Overhead Camera (WebCam) | 1 | 3000 | 3000 | 51 | | 12V Li-polymer Battery | 4 | 2000 | 8000 | 52 | | Jumpers | 60 | 5 | 300 | 53 | | Nut & Bolt (Medium) | 16 | 5 | 80 | 54 | | Nut & Bolt (Long) | 16 | 10 | 160 | 55 | | L - Brackets | 8 | 15 | 120 | 56 | | Normal Wheels | 8 | 30 | 240 | 57 | | Castor Wheels | 4 | 25 | 100 | 58 | | PlyWood | 1 | 280 | 280 | 59 | | Miscellaneous | - | - | 600 | 60 | | Total | | | Rs.18000/- | 61 | 62 | ## Applications 63 | Potential applications of swarms are many. To list the few: 64 | * Tasks that demand miniaturization, like distributed sensing tasks in micromachinery or the human body. 65 | * One of the promising use of the swarms is in disaster rescue missions. 66 | * Swarms can be used in traffic handling. 67 | * Swarms can form different shapes and designs so they can reach forbidden area. 68 | 69 | ## Limitations 70 | * Formation of limited number of shapes. 71 | * Initial relative distance of the bots depends on the field of view of the camera use. 72 | * Dependency on QR code recognition. 73 | * Gyroscope must be used with intense care, as a slight slip of gyro in any of the direction, may give a large error in angle calculation. 74 | 75 | ## Future Improvement 76 | * Many more shapes can be added to the list. 77 | * Providing the sensors to prevent collision. 78 | * Use of PID, to improve the movement of the bots. 79 | * Assembling(to form the shape), independent of their initial positions. 80 | * Use of GPS instead, to reach their destination. 81 | 82 | ## Team Members 83 | 84 | 1. [Paritosh Sanadhya](https://github.com/Pasa1912) 85 | 2. [Prathamesh Bhaktan](https://github.com/prathamb) 86 | 3. [Samiksha Jain](https://github.com/samiksha-jain003) 87 | 4. [Sarthak Malik](https://github.com/ganzagun) 88 | 5. [Vidhi Mittal](https://github.com/Vidhi-mittal01) 89 | 90 | ## Mentors 91 | 1. [Annu Shree](https://github.com/annushree21) 92 | 2. [Shubhanshu Agarwal](https://github.com/Shubhanshu07) 93 | 94 | ## References 95 | * [OpenCV Python Tutorial For Beginners](https://www.youtube.com/playlist?list=PLS1QulWo1RIa7D1O6skqDQ-JZ1GGHKK-K) 96 | * [Stack Overflow](https://stackoverflow.com/) 97 | * [Pyimagesearch](https://pyimagesearch.com/) 98 | * [Arduino](https://www.arduino.cc/) 99 | -------------------------------------------------------------------------------- /src/Nodemcu_Code/Data Flowchart.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |p) 123 | { 124 | pause(); 125 | Serial.println("pause"); 126 | //data(); 127 | k = 1; 128 | } 129 | } 130 | } 131 | void pause() 132 | { 133 | digitalWrite(inputPin1, LOW); 134 | digitalWrite(inputPin2,LOW); 135 | digitalWrite(inputPin3,LOW); 136 | digitalWrite(inputPin4,LOW); 137 | analogWrite(inputPin5,0); 138 | analogWrite(inputPin6,0); 139 | Serial.println("pause"); 140 | } 141 | float get_gyro() 142 | { 143 | IMU.readGyroData(gyro); 144 | dt = micros() - Time; 145 | angle = angle + (gyro[2] - a) * dt / 131.0 / 1000000.0; 146 | Time = micros(); 147 | // IMU.readAccelData(acc); 148 | 149 | //Serial.println(offset); 150 | return angle; 151 | 152 | } 153 | void setup () { 154 | Serial.begin(9600); 155 | for (int i = 0; i < 1000; i++) { 156 | IMU.readGyroData(gyro); 157 | // gyroBias[2] += gyro[2]; 158 | a += gyro[2]; 159 | } 160 | a = a / 1000; 161 | // gyroBias[2] = gyroBias[2]/1000; 162 | Time = micros(); 163 | pinMode(inputPin1, OUTPUT); 164 | pinMode(inputPin2, OUTPUT); 165 | pinMode(inputPin3, OUTPUT); 166 | pinMode(inputPin4, OUTPUT); 167 | pinMode(inputPin5,OUTPUT ); 168 | pinMode(inputPin6, OUTPUT); 169 | analogWrite(inputPin5,0 ); 170 | analogWrite(inputPin6,0); 171 | 172 | WiFi.begin(ssid, password); 173 | 174 | while (WiFi.status() != WL_CONNECTED) { 175 | 176 | delay(1000); 177 | Serial.println("Connecting.."); 178 | 179 | } 180 | Serial.println("Connected to WiFi Network"); 181 | Serial.print("Connected"); 182 | Serial.print("Connected, IP address: "); 183 | Serial.println(WiFi.localIP()); 184 | 185 | /////////////////////////////////////////////////////////// 186 | 187 | server.on("/specificArgs", handleSpecificArg); 188 | server.begin(); 189 | 190 | Serial.println("HTTP server started"); 191 | } 192 | 193 | 194 | void data() 195 | { 196 | int e=0; 197 | server.handleClient(); 198 | int a=payload.indexOf("O"); 199 | int b=payload.indexOf("A"); 200 | int c=payload.indexOf("B"); 201 | int d=payload.indexOf("C"); 202 | e=payload.indexOf("D"); 203 | //Serial.println(e); 204 | if(e>0) 205 | { 206 | //Serial.println(1); 207 | String subo=payload.substring(a+1,b); 208 | String subx=payload.substring(b+1,c); 209 | String suby=payload.substring(c+1,d); 210 | String subs=payload.substring(d+1,e); 211 | X=subx.toInt(); 212 | Y=suby.toInt(); 213 | O=subo.toFloat();//current angle from x axis 214 | S=subs.toInt(); 215 | /*Serial.println(X); 216 | Serial.println(Y); 217 | Serial.println(O); 218 | Serial.println(S);*/ 219 | int xd=xf[S]-X; 220 | int yd=yf[S]-Y; 221 | if(xd>0&&yd>0) 222 | oi=atan(yd/xd)*rad; 223 | if(xd<0&&yd>0) 224 | oi=180+(atan(xd/yd)*rad); 225 | if(xd<0&&yd<0) 226 | oi=180+(atan(xd/yd)*rad); 227 | if(xd>0&&yd<0) 228 | oi=360-(atan(xd/yd)*rad); 229 | if(xd==0) 230 | { 231 | if(yd>0) 232 | oi=90; 233 | else 234 | oi=270; 235 | } 236 | if(yd==0){ 237 | if(xd>0) 238 | oi=0; 239 | else 240 | oi=180; 241 | } 242 | } 243 | } 244 | int g=0,h=1,p=-10; 245 | void loop() { 246 | data(); 247 | Serial.println(oi); 248 | if(p!=S) 249 | { 250 | if(S>-1) 251 | { 252 | float angledi=-oi; 253 | if(angledi>0) 254 | left(angledi); 255 | else{ 256 | right(angledi); 257 | } 258 | while(h>0) 259 | { 260 | data(); 261 | if(X>xf[S]+80||Xyf[S]+80||Y yf[S]+80) 263 | { 264 | forward(); 265 | } 266 | else 267 | { 268 | pause(); 269 | h=-1; 270 | } 271 | /*for(int w=0;w<3;w++) 272 | { 273 | backward(); 274 | }*/ 275 | } 276 | float angledf=-of[S]; 277 | if(angledf>0) 278 | left(angledf); 279 | if(angledf<0) 280 | right(angledf); 281 | p=S; 282 | } 283 | } 284 | else{ 285 | data(); 286 | h=1; 287 | g=0; 288 | } 289 | } 290 | -------------------------------------------------------------------------------- /src/Nodemcu_Code/flowchart_final.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | flowchart_final.html 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/Opencv_Code/flowchart.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |flowchart.html 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/Opencv_Code/qr_code_detection.py: -------------------------------------------------------------------------------- 1 | # import all the required packages 2 | from __future__ import print_function 3 | import pyzbar.pyzbar as pyzbar 4 | import numpy 5 | import cv2 6 | import time 7 | from bs4 import BeautifulSoup 8 | import urllib3.reque 9 | 10 | def decode(im): 11 | # Find QR codes 12 | decodedObjects = pyzbar.decode(im) 13 | # Print results 14 | for obj in decodedObjects: 15 | print('Type : ', obj.type) 16 | print('Data : ', obj.data, '\n') 17 | return decodedObjects 18 | 19 | # get the webcam: 20 | cap = cv2.VideoCapture(cv2.CAP_DSHOW) 21 | #set the length and breadth 22 | cap.set(3, 720) 23 | cap.set(4, 720) 24 | print(cap.get(3)) 25 | print(cap.get(4)) 26 | time.sleep(2) 27 | font = cv2.FONT_HERSHEY_SIMPLEX 28 | 29 | while (cap.isOpened()): 30 | # set different urls for different bots 31 | e_url1 = "192.168.137.165/specificArgs?direction=" 32 | e_url2 = "192.168.137.182/specificArgs?direction=" 33 | 34 | # Capture frame-by-frame 35 | ret, frame = cap.read() 36 | # Our operations on the frame come here 37 | im = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 38 | decodedObjects = decode(im) 39 | for decodedObject in decodedObjects: 40 | 41 | points = decodedObject.polygon 42 | print(points) 43 | #calculate the centre's coordinates 44 | a=(points[0][0]+points[1][0]+points[2][0]+points[3][0])/4 45 | b=(points[0][1]+points[1][1]+points[2][1]+points[3][1])/4 46 | print(a) 47 | print(b) 48 | 49 | # If the points do not form a quad, find convex hull 50 | if len(points) > 4: 51 | hull = cv2.convexHull(np.array([point for point in points], dtype=np.float32)) 52 | hull = list(map(tuple, np.squeeze(hull))) 53 | else: 54 | hull = points; 55 | 56 | # Number of points in the convex hull 57 | n = len(hull) 58 | # Draw the convext hull 59 | for j in range(0, n): 60 | cv2.line(frame, hull[j], hull[(j + 1) % n], (255, 0, 0), 3) 61 | 62 | x = decodedObject.rect.left 63 | y = decodedObject.rect.top 64 | 65 | qrCode = str(decodedObject.data) 66 | cv2.putText(frame, barCode, (x, y), font, 1, (0, 255, 255), 2, cv2.LINE_AA) 67 | s = 'O' + str(0) + 'A' + str(a) + 'B' + str(b) + 'C' + str(0) + 'D' 68 | 69 | if(qrCode== str(b'QR Code' )): 70 | 71 | e_url1 = e_url1 + str(s) 72 | print(e_url1) 73 | http=urllib3.PoolManager() 74 | response=http.request('GET',e_url1) 75 | soup=BeautifulSoup(response.data) 76 | if (qrCode == str (b'http://qrly.me/bdft' )): 77 | 78 | e_url2 = e_url2 + str(s) 79 | print(e_url2) 80 | http = urllib3.PoolManager() 81 | response = http.request('GET', e_url2) 82 | soup = BeautifulSoup(response.data) 83 | 84 | # Display the resulting frame 85 | cv2.imshow('frame', frame) 86 | key = cv2.waitKey(1) 87 | if key & 0xFF == ord('q'): 88 | break 89 | 90 | # When everything done, release the capture 91 | cap.release() 92 | cv2.destroyAllWindows() --------------------------------------------------------------------------------