├── LICENSE ├── README.md └── models ├── Right-hand Touchpad Glove80 sidecar bottom.step ├── Right-hand Touchpad Glove80 sidecar bottom.stl ├── Right-hand Touchpad Glove80 sidecar top.step └── Right-hand Touchpad Glove80 sidecar top.stl /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 David Jones 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # glove80-touchpad 2 | Touchpad sidecar mod for the Glove80 keyboard using the [ERGO Touchpad](https://ergonomictouchpad.com/ergonomic_touchpad.php) ([Amazon](https://www.amazon.com/gp/product/B087Z7RGGK/)). 3 | 4 | ![glove80-touchpad](https://github.com/user-attachments/assets/65a0a5c3-9d9c-401b-9a78-cb132499ce76) 5 | 6 | ## Why 7 | 8 | I recently started getting RSI-like pain and went on a deep dive into the word of ergonomic split keyboards, but I knew a large part of my issue was my mouse usage habits, and that moving from the keyboard to the mouse (or trackpad) over and over again certainly wasn't helping. 9 | 10 | Unfortunately, there currently are very few commercially available ergonomic keyboards that have built-in pointing devices. 11 | However, the [MoErgo Glove80](https://www.moergo.com/collections/glove80-keyboards) keyboard tries to be highly ergonomic, as well as [customizable](https://www.moergo.com/pages/glove80-ergonomic-keyboard-customization) platform, and even provides built-in anchor points and some basic 3d models that can be used to add your own pointing devices right between the thumb cluster and forefinger areas. I figured this could be how I could possibly _make_ the Glove80 the perfect keyboard for me. 12 | 13 | So I bought the Glove80, and a 3d printer, and got to work. This is helping me, and so I hope my efforts can help others. 14 | 15 | ## What you'll need 16 | 17 | 1. The [MoErgo Glove80 keyboard](https://www.moergo.com/collections/glove80-keyboards) 18 | 2. A 3D printer (or a friend/library/makerspace/business with one) 19 | 3. [ERGO Touchpad](https://ergonomictouchpad.com/ergonomic_touchpad.php) 20 | 4. 2.5mm screws (for the Glove80 mounting holes). I'm using 8mm deep ones I got in [this kit](https://www.amazon.com/dp/B0BLCFD9HR) 21 | 5. These [3d model files](/models/) 22 | 23 | Optionally, if you want the USB cable to be detachable: 24 | 25 | 6. Soldering equipment, and a steady hand ([this is a great kit for cheap](https://www.amazon.com/gp/product/B07Q2B4ZY9/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&th=1)) 26 | 8. A USB-C breakout board (I used [this treedix board](https://treedix.com/products/treedix-4pcs-usb-type-c-breakout-board-serial-basic-breakout-female-connector-type-pcb-converter-board) also available on [Amazon here](https://www.amazon.com/dp/B096M2HQLK) 27 | 28 | ## Test the touchpad 29 | 30 | While unlikely, it's entirely possible the touchpad may be DOA (Dead on Arrival), so plug it in to a computer and make sure it works before we start questioning our sanity if it somehow no longer works after soldering. 31 | 32 | The ERGO works a little different compared to many touchpads, but I found it very easy to adapt to: 33 | - Tap to left-click 34 | - Tap in the top-right corner to right-click 35 | - Slide your finger along the rightmost edge to scroll 36 | - Double-tap to click and hold (useful for dragging windows/files around) - This one takes a little practice 37 | 38 | ![ergo-touchpad](https://github.com/user-attachments/assets/1c510572-bb2b-4797-a366-e398384f6302) 39 | 40 | It comes with velcro, so if you have a regular sidecar printed, you can use mostly out-of-the-box like that, but I wanted something a bit cleaner. 41 | 42 | ## 3d printing 43 | 44 | This 3d model works pretty well and looks fairly sharp, in my opinion. It's main features are: 45 | 46 | - It is expanded to the edge of the thumb cluster, and flares out to completely support the touchpad 47 | - It is perfectly flush to the Ergo touchpad, when the velcro is removed 48 | - It is angled and tilted just a bit to make it easier to use with your index finger 49 | - It has a hole and platform for a USB-C connector and board (optional) 50 | - It has a bottom plate (also optional) 51 | 52 | ![right-hand-touchpad-model](https://github.com/user-attachments/assets/2e6256ec-1910-475e-8ac6-b583d737a37a) 53 | ![right-hand-touchpad-back](https://github.com/user-attachments/assets/742a2d49-9385-4dbd-80c3-80710523e2c4) 54 | 55 | If you want to use on the left-hand of the Glove80, mirror the model along the flat outer surface. 56 | 57 | ## Assembly 58 | 59 | Carefully peel the velcro off of the back of the Ergo touchpad, making sure to not damage the USB cable that is tucked under it. 60 | 61 | ![peel-velcro](https://github.com/user-attachments/assets/86c6a1ad-99d9-4a55-96e1-f7cc181b328c) 62 | 63 | Note: Those two green buttons are right and left click, so you could possibly wire them up to actual buttons if desired. I might try a version with a left-click button to make dragging easier. 64 | 65 | Now, you should be able to thread the USB cable through the hole in the model, and optionally secure it with some tape on the underside. 66 | 67 | If you don't care about a detachable USB cable, you can stop here, and simply screw the sidecar to your Glove80 and stop here. 68 | 69 | ## Adding a Detachable USB-C Connector 70 | 71 | The model includes a small platform and hole for a Treedix USB-C connector & board. This can be used to make it easy to unplug the whole thing at the box, instead of at the computer. 72 | 73 | 1. Cut the Ergo Touchpad USB cable about 4-5 inches (100-130mm) from the board 74 | 2. Score and peel away an inch (~20mm) or so of the protective jacket to expose the USB wires inside 75 | 3. On each individual wire, score and peel back each wire to expose about 2-3mm of copper 76 | 4. Melt a very small amount of solder onto the exposed copper to get them nice and ready for soldering 77 | 5. Melt a very small amount of solder onto the Treedix connector pads where we will be attaching the wires 78 | 79 | This is how it should look all wired up: 80 | 81 | ![touchpad soldering](https://github.com/user-attachments/assets/a67450a6-9fec-42f3-bcbb-340d8ab4f2c2) 82 | 83 | Here it is in the enclosure, with the USB-C board screwed down (this was a version with a circle for a cutout, which didn't have room for the connector, so I had to cut it some. The updated models account for this): 84 | 85 | ![back-view](https://github.com/user-attachments/assets/a9f4affd-ef56-4a69-a3f1-acc492fe1593) 86 | 87 | Then, tuck the wires inside and screw on the back (if you printed that model), with 2.5mm screws (same as the sidecar mounts). This back model could use wider holes to recess those screws. 88 | 89 | ![back-on](https://github.com/user-attachments/assets/fa1d4154-4ca3-4099-9dc6-7e14ebea7472) 90 | 91 | ## Final product 92 | 93 | This is a video of me using both the Touchpad and Trackpoint sidecars, so you can see how the gestures, & wrist positions, & movements look: 94 | 95 | [![Using the Touchpad & Trackpoint](https://github.com/user-attachments/assets/f33d5ac7-460e-435d-a8ad-7a7cafb262f3)](https://youtu.be/VEFaY-3PMP4) 96 | 97 | ## TODO 98 | 99 | - Experiment with the shape of the outer edge 100 | - Possibly wire up buttons to Kailh switches 101 | 102 | ## See Also 103 | 104 | - My [Glove80 Ergo Trackpoint mod](https://github.com/unixmonkey/glove80-trackpoint) 105 | - My [Glove80 Wireless Trackball mod](https://github.com/unixmonkey/glove80-trackball) (in progress) 106 | 107 | I love the freedom from RSI pain this keyboard has saved me from, and I love it even more with these mouse-replacements. My pain has gotten much more managable, and I've enjoyed getting into 3d modeling and printing! 108 | 109 | Thank you to the many people who have posted on the [MoErgo Discord Community](https://www.moergo.com/discord) that helped inspire me to make this happen, and are always dropping great tips on how to optimize my computing experience. 110 | -------------------------------------------------------------------------------- /models/Right-hand Touchpad Glove80 sidecar bottom.step: -------------------------------------------------------------------------------- 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 */ 'RH Touchpoint back v2.step', 13 | /* time_stamp */ '2024-08-11T14:01:35-04:00', 14 | /* author */ (''), 15 | /* organization */ (''), 16 | /* preprocessor_version */ 'ST-DEVELOPER v20', 17 | /* originating_system */ 'Autodesk Translation Framework v13.14.0.145', 18 | 19 | /* authorisation */ ''); 20 | 21 | FILE_SCHEMA (('AUTOMOTIVE_DESIGN { 1 0 10303 214 3 1 1 }')); 22 | ENDSEC; 23 | 24 | DATA; 25 | #10=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#13),#605); 26 | #11=SHAPE_REPRESENTATION_RELATIONSHIP('SRR','None',#612,#12); 27 | #12=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#14),#604); 28 | #13=STYLED_ITEM('',(#621),#14); 29 | #14=MANIFOLD_SOLID_BREP('rt tp bk',#345); 30 | #15=CYLINDRICAL_SURFACE('',#373,2.5); 31 | #16=CYLINDRICAL_SURFACE('',#375,1.03775); 32 | #17=CYLINDRICAL_SURFACE('',#377,2.5); 33 | #18=CYLINDRICAL_SURFACE('',#379,1.03775); 34 | #19=CYLINDRICAL_SURFACE('',#381,2.50000000000001); 35 | #20=CYLINDRICAL_SURFACE('',#383,1.03775); 36 | #21=CYLINDRICAL_SURFACE('',#385,3.25); 37 | #22=CYLINDRICAL_SURFACE('',#388,3.25); 38 | #23=CYLINDRICAL_SURFACE('',#391,3.25); 39 | #24=CYLINDRICAL_SURFACE('',#400,112.429943925866); 40 | #25=ELLIPSE('',#364,3.25866815107774,3.25); 41 | #26=ELLIPSE('',#365,3.25866815107774,3.25); 42 | #27=ELLIPSE('',#366,3.25866815107774,3.25); 43 | #28=ELLIPSE('',#386,3.25866815107774,3.25); 44 | #29=ELLIPSE('',#389,3.25866815107774,3.25); 45 | #30=ELLIPSE('',#392,3.25866815107774,3.25); 46 | #31=LINE('',#518,#53); 47 | #32=LINE('',#520,#54); 48 | #33=LINE('',#522,#55); 49 | #34=LINE('',#525,#56); 50 | #35=LINE('',#545,#57); 51 | #36=LINE('',#548,#58); 52 | #37=LINE('',#553,#59); 53 | #38=LINE('',#556,#60); 54 | #39=LINE('',#561,#61); 55 | #40=LINE('',#564,#62); 56 | #41=LINE('',#568,#63); 57 | #42=LINE('',#573,#64); 58 | #43=LINE('',#578,#65); 59 | #44=LINE('',#583,#66); 60 | #45=LINE('',#585,#67); 61 | #46=LINE('',#586,#68); 62 | #47=LINE('',#589,#69); 63 | #48=LINE('',#590,#70); 64 | #49=LINE('',#593,#71); 65 | #50=LINE('',#596,#72); 66 | #51=LINE('',#598,#73); 67 | #52=LINE('',#600,#74); 68 | #53=VECTOR('',#411,10.); 69 | #54=VECTOR('',#412,10.); 70 | #55=VECTOR('',#413,10.); 71 | #56=VECTOR('',#416,10.); 72 | #57=VECTOR('',#439,2.); 73 | #58=VECTOR('',#442,1.03775); 74 | #59=VECTOR('',#449,1.99999999999999); 75 | #60=VECTOR('',#452,1.03775); 76 | #61=VECTOR('',#459,2.00000000000001); 77 | #62=VECTOR('',#462,1.03775); 78 | #63=VECTOR('',#467,3.); 79 | #64=VECTOR('',#474,3.); 80 | #65=VECTOR('',#481,3.); 81 | #66=VECTOR('',#488,10.); 82 | #67=VECTOR('',#489,10.); 83 | #68=VECTOR('',#490,10.); 84 | #69=VECTOR('',#493,10.); 85 | #70=VECTOR('',#494,10.); 86 | #71=VECTOR('',#497,10.); 87 | #72=VECTOR('',#500,10.); 88 | #73=VECTOR('',#503,10.); 89 | #74=VECTOR('',#506,10.); 90 | #75=FACE_BOUND('',#110,.T.); 91 | #76=FACE_BOUND('',#112,.T.); 92 | #77=FACE_BOUND('',#113,.T.); 93 | #78=FACE_BOUND('',#114,.T.); 94 | #79=FACE_BOUND('',#116,.T.); 95 | #80=FACE_BOUND('',#118,.T.); 96 | #81=FACE_BOUND('',#127,.T.); 97 | #82=FACE_BOUND('',#130,.T.); 98 | #83=FACE_BOUND('',#133,.T.); 99 | #84=FACE_BOUND('',#137,.T.); 100 | #85=FACE_BOUND('',#138,.T.); 101 | #86=FACE_BOUND('',#139,.T.); 102 | #87=FACE_OUTER_BOUND('',#109,.T.); 103 | #88=FACE_OUTER_BOUND('',#111,.T.); 104 | #89=FACE_OUTER_BOUND('',#115,.T.); 105 | #90=FACE_OUTER_BOUND('',#117,.T.); 106 | #91=FACE_OUTER_BOUND('',#119,.T.); 107 | #92=FACE_OUTER_BOUND('',#120,.T.); 108 | #93=FACE_OUTER_BOUND('',#121,.T.); 109 | #94=FACE_OUTER_BOUND('',#122,.T.); 110 | #95=FACE_OUTER_BOUND('',#123,.T.); 111 | #96=FACE_OUTER_BOUND('',#124,.T.); 112 | #97=FACE_OUTER_BOUND('',#125,.T.); 113 | #98=FACE_OUTER_BOUND('',#126,.T.); 114 | #99=FACE_OUTER_BOUND('',#128,.T.); 115 | #100=FACE_OUTER_BOUND('',#129,.T.); 116 | #101=FACE_OUTER_BOUND('',#131,.T.); 117 | #102=FACE_OUTER_BOUND('',#132,.T.); 118 | #103=FACE_OUTER_BOUND('',#134,.T.); 119 | #104=FACE_OUTER_BOUND('',#135,.T.); 120 | #105=FACE_OUTER_BOUND('',#136,.T.); 121 | #106=FACE_OUTER_BOUND('',#140,.T.); 122 | #107=FACE_OUTER_BOUND('',#141,.T.); 123 | #108=FACE_OUTER_BOUND('',#142,.T.); 124 | #109=EDGE_LOOP('',(#227)); 125 | #110=EDGE_LOOP('',(#228)); 126 | #111=EDGE_LOOP('',(#229,#230,#231,#232,#233)); 127 | #112=EDGE_LOOP('',(#234)); 128 | #113=EDGE_LOOP('',(#235)); 129 | #114=EDGE_LOOP('',(#236)); 130 | #115=EDGE_LOOP('',(#237)); 131 | #116=EDGE_LOOP('',(#238)); 132 | #117=EDGE_LOOP('',(#239)); 133 | #118=EDGE_LOOP('',(#240)); 134 | #119=EDGE_LOOP('',(#241,#242,#243,#244)); 135 | #120=EDGE_LOOP('',(#245,#246,#247,#248)); 136 | #121=EDGE_LOOP('',(#249,#250,#251,#252)); 137 | #122=EDGE_LOOP('',(#253,#254,#255,#256)); 138 | #123=EDGE_LOOP('',(#257,#258,#259,#260)); 139 | #124=EDGE_LOOP('',(#261,#262,#263,#264)); 140 | #125=EDGE_LOOP('',(#265,#266,#267,#268)); 141 | #126=EDGE_LOOP('',(#269)); 142 | #127=EDGE_LOOP('',(#270)); 143 | #128=EDGE_LOOP('',(#271,#272,#273,#274)); 144 | #129=EDGE_LOOP('',(#275)); 145 | #130=EDGE_LOOP('',(#276)); 146 | #131=EDGE_LOOP('',(#277,#278,#279,#280)); 147 | #132=EDGE_LOOP('',(#281)); 148 | #133=EDGE_LOOP('',(#282)); 149 | #134=EDGE_LOOP('',(#283,#284,#285,#286)); 150 | #135=EDGE_LOOP('',(#287,#288,#289,#290)); 151 | #136=EDGE_LOOP('',(#291,#292,#293,#294,#295)); 152 | #137=EDGE_LOOP('',(#296)); 153 | #138=EDGE_LOOP('',(#297)); 154 | #139=EDGE_LOOP('',(#298)); 155 | #140=EDGE_LOOP('',(#299,#300,#301,#302)); 156 | #141=EDGE_LOOP('',(#303,#304,#305,#306)); 157 | #142=EDGE_LOOP('',(#307,#308,#309,#310)); 158 | #143=CIRCLE('',#360,2.50000000000001); 159 | #144=CIRCLE('',#361,1.03775); 160 | #145=CIRCLE('',#363,112.429943981753); 161 | #146=CIRCLE('',#368,2.5); 162 | #147=CIRCLE('',#369,1.03775); 163 | #148=CIRCLE('',#371,2.5); 164 | #149=CIRCLE('',#372,1.03775); 165 | #150=CIRCLE('',#374,2.5); 166 | #151=CIRCLE('',#376,1.03775); 167 | #152=CIRCLE('',#378,2.5); 168 | #153=CIRCLE('',#380,1.03775); 169 | #154=CIRCLE('',#382,2.50000000000001); 170 | #155=CIRCLE('',#384,1.03775); 171 | #156=CIRCLE('',#397,112.429943981753); 172 | #157=VERTEX_POINT('',#511); 173 | #158=VERTEX_POINT('',#513); 174 | #159=VERTEX_POINT('',#516); 175 | #160=VERTEX_POINT('',#517); 176 | #161=VERTEX_POINT('',#519); 177 | #162=VERTEX_POINT('',#521); 178 | #163=VERTEX_POINT('',#523); 179 | #164=VERTEX_POINT('',#526); 180 | #165=VERTEX_POINT('',#528); 181 | #166=VERTEX_POINT('',#530); 182 | #167=VERTEX_POINT('',#533); 183 | #168=VERTEX_POINT('',#535); 184 | #169=VERTEX_POINT('',#538); 185 | #170=VERTEX_POINT('',#540); 186 | #171=VERTEX_POINT('',#543); 187 | #172=VERTEX_POINT('',#547); 188 | #173=VERTEX_POINT('',#551); 189 | #174=VERTEX_POINT('',#555); 190 | #175=VERTEX_POINT('',#559); 191 | #176=VERTEX_POINT('',#563); 192 | #177=VERTEX_POINT('',#567); 193 | #178=VERTEX_POINT('',#572); 194 | #179=VERTEX_POINT('',#577); 195 | #180=VERTEX_POINT('',#582); 196 | #181=VERTEX_POINT('',#584); 197 | #182=VERTEX_POINT('',#588); 198 | #183=VERTEX_POINT('',#592); 199 | #184=VERTEX_POINT('',#594); 200 | #185=EDGE_CURVE('',#157,#157,#143,.F.); 201 | #186=EDGE_CURVE('',#158,#158,#144,.T.); 202 | #187=EDGE_CURVE('',#159,#160,#31,.T.); 203 | #188=EDGE_CURVE('',#160,#161,#32,.T.); 204 | #189=EDGE_CURVE('',#161,#162,#33,.T.); 205 | #190=EDGE_CURVE('',#162,#163,#145,.T.); 206 | #191=EDGE_CURVE('',#163,#159,#34,.T.); 207 | #192=EDGE_CURVE('',#164,#164,#25,.F.); 208 | #193=EDGE_CURVE('',#165,#165,#26,.F.); 209 | #194=EDGE_CURVE('',#166,#166,#27,.T.); 210 | #195=EDGE_CURVE('',#167,#167,#146,.F.); 211 | #196=EDGE_CURVE('',#168,#168,#147,.T.); 212 | #197=EDGE_CURVE('',#169,#169,#148,.F.); 213 | #198=EDGE_CURVE('',#170,#170,#149,.T.); 214 | #199=EDGE_CURVE('',#171,#171,#150,.F.); 215 | #200=EDGE_CURVE('',#171,#169,#35,.T.); 216 | #201=EDGE_CURVE('',#170,#172,#36,.T.); 217 | #202=EDGE_CURVE('',#172,#172,#151,.T.); 218 | #203=EDGE_CURVE('',#173,#173,#152,.F.); 219 | #204=EDGE_CURVE('',#173,#167,#37,.T.); 220 | #205=EDGE_CURVE('',#168,#174,#38,.T.); 221 | #206=EDGE_CURVE('',#174,#174,#153,.T.); 222 | #207=EDGE_CURVE('',#175,#175,#154,.F.); 223 | #208=EDGE_CURVE('',#175,#157,#39,.T.); 224 | #209=EDGE_CURVE('',#158,#176,#40,.T.); 225 | #210=EDGE_CURVE('',#176,#176,#155,.T.); 226 | #211=EDGE_CURVE('',#166,#177,#41,.T.); 227 | #212=EDGE_CURVE('',#177,#177,#28,.F.); 228 | #213=EDGE_CURVE('',#165,#178,#42,.T.); 229 | #214=EDGE_CURVE('',#178,#178,#29,.F.); 230 | #215=EDGE_CURVE('',#164,#179,#43,.T.); 231 | #216=EDGE_CURVE('',#179,#179,#30,.F.); 232 | #217=EDGE_CURVE('',#180,#159,#44,.F.); 233 | #218=EDGE_CURVE('',#181,#180,#45,.F.); 234 | #219=EDGE_CURVE('',#160,#181,#46,.T.); 235 | #220=EDGE_CURVE('',#182,#181,#47,.F.); 236 | #221=EDGE_CURVE('',#161,#182,#48,.F.); 237 | #222=EDGE_CURVE('',#180,#183,#49,.F.); 238 | #223=EDGE_CURVE('',#183,#184,#156,.T.); 239 | #224=EDGE_CURVE('',#184,#182,#50,.F.); 240 | #225=EDGE_CURVE('',#163,#183,#51,.F.); 241 | #226=EDGE_CURVE('',#184,#162,#52,.F.); 242 | #227=ORIENTED_EDGE('',*,*,#185,.F.); 243 | #228=ORIENTED_EDGE('',*,*,#186,.T.); 244 | #229=ORIENTED_EDGE('',*,*,#187,.T.); 245 | #230=ORIENTED_EDGE('',*,*,#188,.T.); 246 | #231=ORIENTED_EDGE('',*,*,#189,.T.); 247 | #232=ORIENTED_EDGE('',*,*,#190,.T.); 248 | #233=ORIENTED_EDGE('',*,*,#191,.T.); 249 | #234=ORIENTED_EDGE('',*,*,#192,.F.); 250 | #235=ORIENTED_EDGE('',*,*,#193,.F.); 251 | #236=ORIENTED_EDGE('',*,*,#194,.T.); 252 | #237=ORIENTED_EDGE('',*,*,#195,.F.); 253 | #238=ORIENTED_EDGE('',*,*,#196,.T.); 254 | #239=ORIENTED_EDGE('',*,*,#197,.F.); 255 | #240=ORIENTED_EDGE('',*,*,#198,.T.); 256 | #241=ORIENTED_EDGE('',*,*,#199,.F.); 257 | #242=ORIENTED_EDGE('',*,*,#200,.T.); 258 | #243=ORIENTED_EDGE('',*,*,#197,.T.); 259 | #244=ORIENTED_EDGE('',*,*,#200,.F.); 260 | #245=ORIENTED_EDGE('',*,*,#198,.F.); 261 | #246=ORIENTED_EDGE('',*,*,#201,.T.); 262 | #247=ORIENTED_EDGE('',*,*,#202,.F.); 263 | #248=ORIENTED_EDGE('',*,*,#201,.F.); 264 | #249=ORIENTED_EDGE('',*,*,#203,.F.); 265 | #250=ORIENTED_EDGE('',*,*,#204,.T.); 266 | #251=ORIENTED_EDGE('',*,*,#195,.T.); 267 | #252=ORIENTED_EDGE('',*,*,#204,.F.); 268 | #253=ORIENTED_EDGE('',*,*,#196,.F.); 269 | #254=ORIENTED_EDGE('',*,*,#205,.T.); 270 | #255=ORIENTED_EDGE('',*,*,#206,.F.); 271 | #256=ORIENTED_EDGE('',*,*,#205,.F.); 272 | #257=ORIENTED_EDGE('',*,*,#207,.F.); 273 | #258=ORIENTED_EDGE('',*,*,#208,.T.); 274 | #259=ORIENTED_EDGE('',*,*,#185,.T.); 275 | #260=ORIENTED_EDGE('',*,*,#208,.F.); 276 | #261=ORIENTED_EDGE('',*,*,#186,.F.); 277 | #262=ORIENTED_EDGE('',*,*,#209,.T.); 278 | #263=ORIENTED_EDGE('',*,*,#210,.F.); 279 | #264=ORIENTED_EDGE('',*,*,#209,.F.); 280 | #265=ORIENTED_EDGE('',*,*,#194,.F.); 281 | #266=ORIENTED_EDGE('',*,*,#211,.T.); 282 | #267=ORIENTED_EDGE('',*,*,#212,.F.); 283 | #268=ORIENTED_EDGE('',*,*,#211,.F.); 284 | #269=ORIENTED_EDGE('',*,*,#212,.T.); 285 | #270=ORIENTED_EDGE('',*,*,#202,.T.); 286 | #271=ORIENTED_EDGE('',*,*,#193,.T.); 287 | #272=ORIENTED_EDGE('',*,*,#213,.T.); 288 | #273=ORIENTED_EDGE('',*,*,#214,.F.); 289 | #274=ORIENTED_EDGE('',*,*,#213,.F.); 290 | #275=ORIENTED_EDGE('',*,*,#214,.T.); 291 | #276=ORIENTED_EDGE('',*,*,#210,.T.); 292 | #277=ORIENTED_EDGE('',*,*,#192,.T.); 293 | #278=ORIENTED_EDGE('',*,*,#215,.T.); 294 | #279=ORIENTED_EDGE('',*,*,#216,.F.); 295 | #280=ORIENTED_EDGE('',*,*,#215,.F.); 296 | #281=ORIENTED_EDGE('',*,*,#216,.T.); 297 | #282=ORIENTED_EDGE('',*,*,#206,.T.); 298 | #283=ORIENTED_EDGE('',*,*,#217,.F.); 299 | #284=ORIENTED_EDGE('',*,*,#218,.F.); 300 | #285=ORIENTED_EDGE('',*,*,#219,.F.); 301 | #286=ORIENTED_EDGE('',*,*,#187,.F.); 302 | #287=ORIENTED_EDGE('',*,*,#219,.T.); 303 | #288=ORIENTED_EDGE('',*,*,#220,.F.); 304 | #289=ORIENTED_EDGE('',*,*,#221,.F.); 305 | #290=ORIENTED_EDGE('',*,*,#188,.F.); 306 | #291=ORIENTED_EDGE('',*,*,#218,.T.); 307 | #292=ORIENTED_EDGE('',*,*,#222,.T.); 308 | #293=ORIENTED_EDGE('',*,*,#223,.T.); 309 | #294=ORIENTED_EDGE('',*,*,#224,.T.); 310 | #295=ORIENTED_EDGE('',*,*,#220,.T.); 311 | #296=ORIENTED_EDGE('',*,*,#199,.T.); 312 | #297=ORIENTED_EDGE('',*,*,#203,.T.); 313 | #298=ORIENTED_EDGE('',*,*,#207,.T.); 314 | #299=ORIENTED_EDGE('',*,*,#217,.T.); 315 | #300=ORIENTED_EDGE('',*,*,#191,.F.); 316 | #301=ORIENTED_EDGE('',*,*,#225,.T.); 317 | #302=ORIENTED_EDGE('',*,*,#222,.F.); 318 | #303=ORIENTED_EDGE('',*,*,#221,.T.); 319 | #304=ORIENTED_EDGE('',*,*,#224,.F.); 320 | #305=ORIENTED_EDGE('',*,*,#226,.T.); 321 | #306=ORIENTED_EDGE('',*,*,#189,.F.); 322 | #307=ORIENTED_EDGE('',*,*,#223,.F.); 323 | #308=ORIENTED_EDGE('',*,*,#225,.F.); 324 | #309=ORIENTED_EDGE('',*,*,#190,.F.); 325 | #310=ORIENTED_EDGE('',*,*,#226,.F.); 326 | #311=PLANE('',#359); 327 | #312=PLANE('',#362); 328 | #313=PLANE('',#367); 329 | #314=PLANE('',#370); 330 | #315=PLANE('',#387); 331 | #316=PLANE('',#390); 332 | #317=PLANE('',#393); 333 | #318=PLANE('',#394); 334 | #319=PLANE('',#395); 335 | #320=PLANE('',#396); 336 | #321=PLANE('',#398); 337 | #322=PLANE('',#399); 338 | #323=ADVANCED_FACE('',(#87,#75),#311,.F.); 339 | #324=ADVANCED_FACE('',(#88,#76,#77,#78),#312,.T.); 340 | #325=ADVANCED_FACE('',(#89,#79),#313,.F.); 341 | #326=ADVANCED_FACE('',(#90,#80),#314,.F.); 342 | #327=ADVANCED_FACE('',(#91),#15,.F.); 343 | #328=ADVANCED_FACE('',(#92),#16,.F.); 344 | #329=ADVANCED_FACE('',(#93),#17,.F.); 345 | #330=ADVANCED_FACE('',(#94),#18,.F.); 346 | #331=ADVANCED_FACE('',(#95),#19,.F.); 347 | #332=ADVANCED_FACE('',(#96),#20,.F.); 348 | #333=ADVANCED_FACE('',(#97),#21,.T.); 349 | #334=ADVANCED_FACE('',(#98,#81),#315,.T.); 350 | #335=ADVANCED_FACE('',(#99),#22,.T.); 351 | #336=ADVANCED_FACE('',(#100,#82),#316,.T.); 352 | #337=ADVANCED_FACE('',(#101),#23,.T.); 353 | #338=ADVANCED_FACE('',(#102,#83),#317,.T.); 354 | #339=ADVANCED_FACE('',(#103),#318,.F.); 355 | #340=ADVANCED_FACE('',(#104),#319,.F.); 356 | #341=ADVANCED_FACE('',(#105,#84,#85,#86),#320,.F.); 357 | #342=ADVANCED_FACE('',(#106),#321,.F.); 358 | #343=ADVANCED_FACE('',(#107),#322,.F.); 359 | #344=ADVANCED_FACE('',(#108),#24,.F.); 360 | #345=CLOSED_SHELL('',(#323,#324,#325,#326,#327,#328,#329,#330,#331,#332, 361 | #333,#334,#335,#336,#337,#338,#339,#340,#341,#342,#343,#344)); 362 | #346=DERIVED_UNIT_ELEMENT(#348,1.); 363 | #347=DERIVED_UNIT_ELEMENT(#607,-3.); 364 | #348=( 365 | MASS_UNIT() 366 | NAMED_UNIT(*) 367 | SI_UNIT(.KILO.,.GRAM.) 368 | ); 369 | #349=DERIVED_UNIT((#346,#347)); 370 | #350=MEASURE_REPRESENTATION_ITEM('density measure', 371 | POSITIVE_RATIO_MEASURE(1060.),#349); 372 | #351=PROPERTY_DEFINITION_REPRESENTATION(#356,#353); 373 | #352=PROPERTY_DEFINITION_REPRESENTATION(#357,#354); 374 | #353=REPRESENTATION('material name',(#355),#604); 375 | #354=REPRESENTATION('density',(#350),#604); 376 | #355=DESCRIPTIVE_REPRESENTATION_ITEM('ABS Plastic','ABS Plastic'); 377 | #356=PROPERTY_DEFINITION('material property','material name',#614); 378 | #357=PROPERTY_DEFINITION('material property','density of part',#614); 379 | #358=AXIS2_PLACEMENT_3D('',#509,#401,#402); 380 | #359=AXIS2_PLACEMENT_3D('',#510,#403,#404); 381 | #360=AXIS2_PLACEMENT_3D('',#512,#405,#406); 382 | #361=AXIS2_PLACEMENT_3D('',#514,#407,#408); 383 | #362=AXIS2_PLACEMENT_3D('',#515,#409,#410); 384 | #363=AXIS2_PLACEMENT_3D('',#524,#414,#415); 385 | #364=AXIS2_PLACEMENT_3D('',#527,#417,#418); 386 | #365=AXIS2_PLACEMENT_3D('',#529,#419,#420); 387 | #366=AXIS2_PLACEMENT_3D('',#531,#421,#422); 388 | #367=AXIS2_PLACEMENT_3D('',#532,#423,#424); 389 | #368=AXIS2_PLACEMENT_3D('',#534,#425,#426); 390 | #369=AXIS2_PLACEMENT_3D('',#536,#427,#428); 391 | #370=AXIS2_PLACEMENT_3D('',#537,#429,#430); 392 | #371=AXIS2_PLACEMENT_3D('',#539,#431,#432); 393 | #372=AXIS2_PLACEMENT_3D('',#541,#433,#434); 394 | #373=AXIS2_PLACEMENT_3D('',#542,#435,#436); 395 | #374=AXIS2_PLACEMENT_3D('',#544,#437,#438); 396 | #375=AXIS2_PLACEMENT_3D('',#546,#440,#441); 397 | #376=AXIS2_PLACEMENT_3D('',#549,#443,#444); 398 | #377=AXIS2_PLACEMENT_3D('',#550,#445,#446); 399 | #378=AXIS2_PLACEMENT_3D('',#552,#447,#448); 400 | #379=AXIS2_PLACEMENT_3D('',#554,#450,#451); 401 | #380=AXIS2_PLACEMENT_3D('',#557,#453,#454); 402 | #381=AXIS2_PLACEMENT_3D('',#558,#455,#456); 403 | #382=AXIS2_PLACEMENT_3D('',#560,#457,#458); 404 | #383=AXIS2_PLACEMENT_3D('',#562,#460,#461); 405 | #384=AXIS2_PLACEMENT_3D('',#565,#463,#464); 406 | #385=AXIS2_PLACEMENT_3D('',#566,#465,#466); 407 | #386=AXIS2_PLACEMENT_3D('',#569,#468,#469); 408 | #387=AXIS2_PLACEMENT_3D('',#570,#470,#471); 409 | #388=AXIS2_PLACEMENT_3D('',#571,#472,#473); 410 | #389=AXIS2_PLACEMENT_3D('',#574,#475,#476); 411 | #390=AXIS2_PLACEMENT_3D('',#575,#477,#478); 412 | #391=AXIS2_PLACEMENT_3D('',#576,#479,#480); 413 | #392=AXIS2_PLACEMENT_3D('',#579,#482,#483); 414 | #393=AXIS2_PLACEMENT_3D('',#580,#484,#485); 415 | #394=AXIS2_PLACEMENT_3D('',#581,#486,#487); 416 | #395=AXIS2_PLACEMENT_3D('',#587,#491,#492); 417 | #396=AXIS2_PLACEMENT_3D('',#591,#495,#496); 418 | #397=AXIS2_PLACEMENT_3D('',#595,#498,#499); 419 | #398=AXIS2_PLACEMENT_3D('',#597,#501,#502); 420 | #399=AXIS2_PLACEMENT_3D('',#599,#504,#505); 421 | #400=AXIS2_PLACEMENT_3D('',#601,#507,#508); 422 | #401=DIRECTION('axis',(0.,0.,1.)); 423 | #402=DIRECTION('refdir',(1.,0.,0.)); 424 | #403=DIRECTION('center_axis',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 425 | #404=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 426 | #405=DIRECTION('center_axis',(0.0137063813188823,0.109169101048533,-0.993928690846278)); 427 | #406=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 428 | #407=DIRECTION('center_axis',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 429 | #408=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 430 | #409=DIRECTION('center_axis',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 431 | #410=DIRECTION('ref_axis',(0.976022540917762,0.214498452777276,0.0370190947564971)); 432 | #411=DIRECTION('',(-0.999102899035192,0.0413285567727969,-0.00923837293864545)); 433 | #412=DIRECTION('',(-0.999162457631933,0.0398238534190003,-0.00940446477887182)); 434 | #413=DIRECTION('',(0.208711943634662,-0.972439074241348,-0.103930608931491)); 435 | #414=DIRECTION('center_axis',(0.0137063813188823,0.109169101048533,-0.993928690846278)); 436 | #415=DIRECTION('ref_axis',(-0.263419127932562,0.959302194750125,0.101733289472236)); 437 | #416=DIRECTION('',(0.067985244514786,0.991620044878413,0.109853052409115)); 438 | #417=DIRECTION('center_axis',(0.0137063813188823,0.109169101048533,-0.993928690846278)); 439 | #418=DIRECTION('ref_axis',(-0.0422824328004322,-0.993069663517125,-0.109657828167718)); 440 | #419=DIRECTION('center_axis',(0.0137063813188823,0.109169101048533,-0.993928690846278)); 441 | #420=DIRECTION('ref_axis',(-0.042282432800432,-0.993069663517125,-0.109657828167718)); 442 | #421=DIRECTION('center_axis',(0.0137063813188823,0.109169101048533,-0.993928690846278)); 443 | #422=DIRECTION('ref_axis',(-0.0422824328004263,-0.993069663517125,-0.109657828167718)); 444 | #423=DIRECTION('center_axis',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 445 | #424=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 446 | #425=DIRECTION('center_axis',(0.0137063813188823,0.109169101048533,-0.993928690846278)); 447 | #426=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 448 | #427=DIRECTION('center_axis',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 449 | #428=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 450 | #429=DIRECTION('center_axis',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 451 | #430=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 452 | #431=DIRECTION('center_axis',(0.0137063813188823,0.109169101048533,-0.993928690846278)); 453 | #432=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 454 | #433=DIRECTION('center_axis',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 455 | #434=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 456 | #435=DIRECTION('center_axis',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 457 | #436=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 458 | #437=DIRECTION('center_axis',(0.0137063813188823,0.109169101048533,-0.993928690846278)); 459 | #438=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 460 | #439=DIRECTION('',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 461 | #440=DIRECTION('center_axis',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 462 | #441=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 463 | #442=DIRECTION('',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 464 | #443=DIRECTION('center_axis',(0.0137063813188823,0.109169101048533,-0.993928690846278)); 465 | #444=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 466 | #445=DIRECTION('center_axis',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 467 | #446=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 468 | #447=DIRECTION('center_axis',(0.0137063813188823,0.109169101048533,-0.993928690846278)); 469 | #448=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 470 | #449=DIRECTION('',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 471 | #450=DIRECTION('center_axis',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 472 | #451=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 473 | #452=DIRECTION('',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 474 | #453=DIRECTION('center_axis',(0.0137063813188823,0.109169101048533,-0.993928690846278)); 475 | #454=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 476 | #455=DIRECTION('center_axis',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 477 | #456=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 478 | #457=DIRECTION('center_axis',(0.0137063813188823,0.109169101048533,-0.993928690846278)); 479 | #458=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 480 | #459=DIRECTION('',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 481 | #460=DIRECTION('center_axis',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 482 | #461=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 483 | #462=DIRECTION('',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 484 | #463=DIRECTION('center_axis',(0.0137063813188823,0.109169101048533,-0.993928690846278)); 485 | #464=DIRECTION('ref_axis',(-0.999904930056909,0.,-0.0137887942869635)); 486 | #465=DIRECTION('center_axis',(0.0167518970951604,0.181263758285153,-0.983291830473565)); 487 | #466=DIRECTION('ref_axis',(0.983204260895076,-0.181738150374326,-0.0167518970951604)); 488 | #467=DIRECTION('',(-0.0167518970951604,-0.181263758285153,0.983291830473565)); 489 | #468=DIRECTION('center_axis',(0.0137063813188823,0.109169101048533,-0.993928690846278)); 490 | #469=DIRECTION('ref_axis',(-0.0422824328004263,-0.993069663517125,-0.109657828167718)); 491 | #470=DIRECTION('center_axis',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 492 | #471=DIRECTION('ref_axis',(0.999904930056909,6.09641680395058E-18,0.0137887942869635)); 493 | #472=DIRECTION('center_axis',(0.0167518970951604,0.181263758285153,-0.983291830473565)); 494 | #473=DIRECTION('ref_axis',(0.983204260895076,-0.181738150374326,-0.0167518970951604)); 495 | #474=DIRECTION('',(-0.0167518970951604,-0.181263758285153,0.983291830473565)); 496 | #475=DIRECTION('center_axis',(0.0137063813188823,0.109169101048533,-0.993928690846278)); 497 | #476=DIRECTION('ref_axis',(-0.0422824328004322,-0.993069663517125,-0.109657828167718)); 498 | #477=DIRECTION('center_axis',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 499 | #478=DIRECTION('ref_axis',(0.999904930056909,6.09641680395058E-18,0.0137887942869635)); 500 | #479=DIRECTION('center_axis',(0.0167518970951604,0.181263758285153,-0.983291830473565)); 501 | #480=DIRECTION('ref_axis',(0.983204260895076,-0.181738150374326,-0.0167518970951604)); 502 | #481=DIRECTION('',(-0.0167518970951604,-0.181263758285153,0.983291830473565)); 503 | #482=DIRECTION('center_axis',(0.0137063813188823,0.109169101048533,-0.993928690846278)); 504 | #483=DIRECTION('ref_axis',(-0.0422824328004322,-0.993069663517125,-0.109657828167718)); 505 | #484=DIRECTION('center_axis',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 506 | #485=DIRECTION('ref_axis',(0.999904930056909,6.09641680395058E-18,0.0137887942869635)); 507 | #486=DIRECTION('center_axis',(-0.0345262046703013,-0.921259056219676,-0.387414109867331)); 508 | #487=DIRECTION('ref_axis',(-2.43765762237369E-18,0.387645226717714,-0.921808645111865)); 509 | #488=DIRECTION('',(0.0324474365011051,0.386407559699738,-0.921757214059863)); 510 | #489=DIRECTION('',(-0.999102899035192,0.0413285567727969,-0.00923837293864545)); 511 | #490=DIRECTION('',(0.024956958727827,0.386729573575632,-0.921855404677473)); 512 | #491=DIRECTION('center_axis',(-0.0330748622419956,-0.921318363583843,-0.387399698516742)); 513 | #492=DIRECTION('ref_axis',(-2.43744723282873E-18,0.38761176980313,-0.921822713926103)); 514 | #493=DIRECTION('',(-0.999162457631933,0.0398238534190003,-0.00940446477887182)); 515 | #494=DIRECTION('',(0.0476571839362209,-0.388624686559635,0.920162836576057)); 516 | #495=DIRECTION('center_axis',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 517 | #496=DIRECTION('ref_axis',(0.976022540917762,0.214498452777276,0.0370190947564971)); 518 | #497=DIRECTION('',(0.067985244514786,0.991620044878413,0.109853052409115)); 519 | #498=DIRECTION('center_axis',(-0.0137063813188823,-0.109169101048533,0.993928690846278)); 520 | #499=DIRECTION('ref_axis',(-0.263419127932562,0.959302194750125,0.101733289472236)); 521 | #500=DIRECTION('',(0.208711943634662,-0.972439074241348,-0.103930608931491)); 522 | #501=DIRECTION('center_axis',(-0.997592313825744,0.0690770428692957,-0.00615934608794272)); 523 | #502=DIRECTION('ref_axis',(-0.0061740939721185,-1.39163483019357E-17,0.999980940100172)); 524 | #503=DIRECTION('',(-0.0136980798659685,-0.109199349641441,0.99392548244115)); 525 | #504=DIRECTION('center_axis',(0.977877765148409,0.205993879510904,0.0363537897941879)); 526 | #505=DIRECTION('ref_axis',(0.0371505471811243,1.41018241784193E-17,-0.999309680151325)); 527 | #506=DIRECTION('',(0.0138917152249639,0.10945680259326,-0.993894475592942)); 528 | #507=DIRECTION('center_axis',(0.0136980756098776,0.109199348147125,-0.993925482663982)); 529 | #508=DIRECTION('ref_axis',(-0.390533360970953,0.915651323426178,0.0952173717166141)); 530 | #509=CARTESIAN_POINT('',(0.,0.,0.)); 531 | #510=CARTESIAN_POINT('Origin',(-136.073366094137,96.4178955607607,10.5342881218835)); 532 | #511=CARTESIAN_POINT('',(-133.573603768995,96.4178955607607,10.5687601076009)); 533 | #512=CARTESIAN_POINT('Origin',(-136.073366094137,96.4178955607607,10.5342881218835)); 534 | #513=CARTESIAN_POINT('',(-135.035714752971,96.4178955607607,10.5485974431548)); 535 | #514=CARTESIAN_POINT('Origin',(-136.073366094137,96.4178955607607,10.5342881218835)); 536 | #515=CARTESIAN_POINT('Origin',(-122.254619259039,-7.20324548812417,-0.656476272882662)); 537 | #516=CARTESIAN_POINT('',(-64.270204294466,102.091953872907,12.1476768644866)); 538 | #517=CARTESIAN_POINT('',(-82.3772888761635,102.840965813474,11.980246698564)); 539 | #518=CARTESIAN_POINT('',(-110.048905770918,103.985620345882,11.7243764043491)); 540 | #519=CARTESIAN_POINT('',(-144.432179349996,105.314301871268,11.3961644370676)); 541 | #520=CARTESIAN_POINT('',(-110.239355752488,103.95147044728,11.7179991925238)); 542 | #521=CARTESIAN_POINT('',(-121.299572691811,-2.46606919478834,-0.122993826196134)); 543 | #522=CARTESIAN_POINT('',(-127.04294521201,24.2936834417387,2.73698728917661)); 544 | #523=CARTESIAN_POINT('',(-68.8076059999062,35.9102623177432,4.8159767153385)); 545 | #524=CARTESIAN_POINT('Origin',(-31.2279593840086,-69.4747876648153,-6.24086298092492)); 546 | #525=CARTESIAN_POINT('',(-69.6407810530173,23.757727021971,3.46970189602122)); 547 | #526=CARTESIAN_POINT('',(-74.0018047151342,94.6318307458654,11.1940873661372)); 548 | #527=CARTESIAN_POINT('Origin',(-70.806952377831,94.0351059364732,11.1726028805611)); 549 | #528=CARTESIAN_POINT('',(-139.48121536169,97.5263338168927,10.6090398894254)); 550 | #529=CARTESIAN_POINT('Origin',(-136.286363024387,96.9296090075005,10.5875554038494)); 551 | #530=CARTESIAN_POINT('',(-122.231741510073,9.86765854116863,1.21883815890789)); 552 | #531=CARTESIAN_POINT('Origin',(-119.03688917277,9.27093373177645,1.19735367333185)); 553 | #532=CARTESIAN_POINT('Origin',(-70.8145552271825,93.3203296219102,11.0939899015977)); 554 | #533=CARTESIAN_POINT('',(-68.3147929020403,93.3203296219101,11.1284618873158)); 555 | #534=CARTESIAN_POINT('Origin',(-70.8145552271825,93.3203296219101,11.0939899015984)); 556 | #535=CARTESIAN_POINT('',(-69.776903886016,93.3203296219102,11.108299222869)); 557 | #536=CARTESIAN_POINT('Origin',(-70.8145552271825,93.3203296219102,11.0939899015977)); 558 | #537=CARTESIAN_POINT('Origin',(-118.983484086156,8.8498451643493,1.15183947266138)); 559 | #538=CARTESIAN_POINT('',(-116.483721761013,8.8498451643493,1.18631145837879)); 560 | #539=CARTESIAN_POINT('Origin',(-118.983484086156,8.8498451643493,1.15183947266138)); 561 | #540=CARTESIAN_POINT('',(-117.945832744989,8.8498451643493,1.16614879393267)); 562 | #541=CARTESIAN_POINT('Origin',(-118.983484086156,8.8498451643493,1.15183947266138)); 563 | #542=CARTESIAN_POINT('Origin',(-118.969777704837,8.95901426539783,0.157910781815101)); 564 | #543=CARTESIAN_POINT('',(-116.456308998376,9.06818336644626,-0.801545923312795)); 565 | #544=CARTESIAN_POINT('Origin',(-118.956071323518,9.06818336644626,-0.836017909030203)); 566 | #545=CARTESIAN_POINT('',(-116.470015379694,8.95901426539783,0.192382767532509)); 567 | #546=CARTESIAN_POINT('Origin',(-119.038309611431,8.41316876015517,5.12755423604649)); 568 | #547=CARTESIAN_POINT('',(-117.973245507627,8.63150696225213,3.1540061756262)); 569 | #548=CARTESIAN_POINT('',(-118.000658270265,8.41316876015517,5.14186355731779)); 570 | #549=CARTESIAN_POINT('Origin',(-119.010896848793,8.63150696225213,3.13969685435491)); 571 | #550=CARTESIAN_POINT('Origin',(-70.8008488458636,93.4294987229588,10.1000612107514)); 572 | #551=CARTESIAN_POINT('',(-68.2873801394025,93.5386678240072,9.14060450562326)); 573 | #552=CARTESIAN_POINT('Origin',(-70.7871424645448,93.5386678240072,9.10613251990585)); 574 | #553=CARTESIAN_POINT('',(-68.3010865207214,93.4294987229588,10.1345331964688)); 575 | #554=CARTESIAN_POINT('Origin',(-70.869380752458,92.8836532177161,15.0697046649828)); 576 | #555=CARTESIAN_POINT('',(-69.8043166486537,93.1019914198131,13.0961566045623)); 577 | #556=CARTESIAN_POINT('',(-69.8317294112915,92.8836532177161,15.0840139862541)); 578 | #557=CARTESIAN_POINT('Origin',(-70.8419679898203,93.1019914198131,13.081847283291)); 579 | #558=CARTESIAN_POINT('Origin',(-136.059659712818,96.5270646618092,9.54035943103721)); 580 | #559=CARTESIAN_POINT('',(-133.546191006357,96.6362337628578,8.5809027259083)); 581 | #560=CARTESIAN_POINT('Origin',(-136.045953331499,96.6362337628578,8.54643074019089)); 582 | #561=CARTESIAN_POINT('',(-133.559897387676,96.5270646618092,9.57483141675462)); 583 | #562=CARTESIAN_POINT('Origin',(-136.128191619413,95.9812191565666,14.5100028852686)); 584 | #563=CARTESIAN_POINT('',(-135.063127515608,96.1995573586636,12.5364548248473)); 585 | #564=CARTESIAN_POINT('',(-135.090540278246,95.9812191565666,14.5243122065399)); 586 | #565=CARTESIAN_POINT('Origin',(-136.100778856775,96.1995573586636,12.522145503576)); 587 | #566=CARTESIAN_POINT('Origin',(-118.945534568511,10.2594354406048,-4.16491876267842)); 588 | #567=CARTESIAN_POINT('',(-122.265334663017,9.50416411897264,3.19066694117198)); 589 | #568=CARTESIAN_POINT('',(-122.14094841642,10.8500844293214,-4.11047509711914)); 590 | #569=CARTESIAN_POINT('Origin',(-119.070482325714,8.90743930958046,3.16918245559593)); 591 | #570=CARTESIAN_POINT('Origin',(-103.628631543854,52.5940653342774,8.18048923435898)); 592 | #571=CARTESIAN_POINT('Origin',(-136.343548678839,96.3108321258595,13.9442013123289)); 593 | #572=CARTESIAN_POINT('',(-139.514808514634,97.1628393946967,12.5808686716894)); 594 | #573=CARTESIAN_POINT('',(-139.538962526748,96.9014811145761,13.9986449778881)); 595 | #574=CARTESIAN_POINT('Origin',(-136.319956177331,96.5661145853045,12.5593841861134)); 596 | #575=CARTESIAN_POINT('Origin',(-103.628631543854,52.5940653342774,8.18048923435898)); 597 | #576=CARTESIAN_POINT('Origin',(-70.8305833699477,93.7794069897365,12.5596793031486)); 598 | #577=CARTESIAN_POINT('',(-74.0353978680783,94.2683363236694,13.1659161484013)); 599 | #578=CARTESIAN_POINT('',(-74.0259972178567,94.370055978453,12.6141229687079)); 600 | #579=CARTESIAN_POINT('Origin',(-70.8405455307751,93.6716115142772,13.1444316628252)); 601 | #580=CARTESIAN_POINT('Origin',(-103.628631543854,52.5940653342774,8.18048923435898)); 602 | #581=CARTESIAN_POINT('Origin',(-102.680495710911,98.3276382420664,24.522216991364)); 603 | #582=CARTESIAN_POINT('',(-64.2025201189529,102.897986025538,10.2249247526273)); 604 | #583=CARTESIAN_POINT('',(-64.6875506631084,97.1218912347959,24.0035295154249)); 605 | #584=CARTESIAN_POINT('',(-82.3252311988283,103.647644366608,10.0573500936618)); 606 | #585=CARTESIAN_POINT('',(-109.997754959306,104.79233641212,9.80147141396056)); 607 | #586=CARTESIAN_POINT('',(-82.6875673754456,98.0329331911632,23.4412550144341)); 608 | #587=CARTESIAN_POINT('Origin',(-102.816658323493,99.3776287378037,21.9618369635208)); 609 | #588=CARTESIAN_POINT('',(-144.531844203992,106.12702766507,9.47183976689824)); 610 | #589=CARTESIAN_POINT('',(-110.189101778183,104.758220891031,9.79508561054098)); 611 | #590=CARTESIAN_POINT('',(-143.760037566151,99.8332627393685,24.3738487927387)); 612 | #591=CARTESIAN_POINT('Origin',(-122.227206496401,-6.9849072860271,-2.64433365457522)); 613 | #592=CARTESIAN_POINT('',(-68.7802098401606,36.1286610171346,2.82812574946806)); 614 | #593=CARTESIAN_POINT('',(-69.6133889429064,23.9760666541503,1.48184438660258)); 615 | #594=CARTESIAN_POINT('',(-121.27178925944,-2.24715557715487,-2.11078289500243)); 616 | #595=CARTESIAN_POINT('Origin',(-31.2005632327752,-69.2563889684125,-8.22871394724101)); 617 | #596=CARTESIAN_POINT('',(-127.015059658478,24.5121212515591,0.749147367829114)); 618 | #597=CARTESIAN_POINT('Origin',(-67.2658341861992,58.3076345612651,6.2908949076759)); 619 | #598=CARTESIAN_POINT('',(-68.8019982847202,35.9549663096368,4.40908384596004)); 620 | #599=CARTESIAN_POINT('Origin',(-133.705978061289,55.4853297130378,5.22210503118611)); 621 | #600=CARTESIAN_POINT('',(-121.293903731932,-2.42140391359789,-0.528569043692779)); 622 | #601=CARTESIAN_POINT('Origin',(-31.2409744825105,-69.5785424047481,-5.29649397400178)); 623 | #602=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.01),#606, 624 | 'DISTANCE_ACCURACY_VALUE', 625 | 'Maximum model space distance between geometric entities at asserted c 626 | onnectivities'); 627 | #603=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.01),#606, 628 | 'DISTANCE_ACCURACY_VALUE', 629 | 'Maximum model space distance between geometric entities at asserted c 630 | onnectivities'); 631 | #604=( 632 | GEOMETRIC_REPRESENTATION_CONTEXT(3) 633 | GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#602)) 634 | GLOBAL_UNIT_ASSIGNED_CONTEXT((#606,#608,#609)) 635 | REPRESENTATION_CONTEXT('','3D') 636 | ); 637 | #605=( 638 | GEOMETRIC_REPRESENTATION_CONTEXT(3) 639 | GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#603)) 640 | GLOBAL_UNIT_ASSIGNED_CONTEXT((#606,#608,#609)) 641 | REPRESENTATION_CONTEXT('','3D') 642 | ); 643 | #606=( 644 | LENGTH_UNIT() 645 | NAMED_UNIT(*) 646 | SI_UNIT(.MILLI.,.METRE.) 647 | ); 648 | #607=( 649 | LENGTH_UNIT() 650 | NAMED_UNIT(*) 651 | SI_UNIT($,.METRE.) 652 | ); 653 | #608=( 654 | NAMED_UNIT(*) 655 | PLANE_ANGLE_UNIT() 656 | SI_UNIT($,.RADIAN.) 657 | ); 658 | #609=( 659 | NAMED_UNIT(*) 660 | SI_UNIT($,.STERADIAN.) 661 | SOLID_ANGLE_UNIT() 662 | ); 663 | #610=SHAPE_DEFINITION_REPRESENTATION(#611,#612); 664 | #611=PRODUCT_DEFINITION_SHAPE('',$,#614); 665 | #612=SHAPE_REPRESENTATION('',(#358),#604); 666 | #613=PRODUCT_DEFINITION_CONTEXT('part definition',#618,'design'); 667 | #614=PRODUCT_DEFINITION('Glove80_LH_Side_Car_large', 668 | 'Glove80_LH_Side_Car_large v71',#615,#613); 669 | #615=PRODUCT_DEFINITION_FORMATION('',$,#620); 670 | #616=PRODUCT_RELATED_PRODUCT_CATEGORY('Glove80_LH_Side_Car_large v71', 671 | 'Glove80_LH_Side_Car_large v71',(#620)); 672 | #617=APPLICATION_PROTOCOL_DEFINITION('international standard', 673 | 'automotive_design',2009,#618); 674 | #618=APPLICATION_CONTEXT( 675 | 'Core Data for Automotive Mechanical Design Process'); 676 | #619=PRODUCT_CONTEXT('part definition',#618,'mechanical'); 677 | #620=PRODUCT('Glove80_LH_Side_Car_large', 678 | 'Glove80_LH_Side_Car_large v71',$,(#619)); 679 | #621=PRESENTATION_STYLE_ASSIGNMENT((#624)); 680 | #622=PRESENTATION_STYLE_ASSIGNMENT((#625)); 681 | #623=PRESENTATION_STYLE_ASSIGNMENT((#626)); 682 | #624=SURFACE_STYLE_USAGE(.BOTH.,#627); 683 | #625=SURFACE_STYLE_USAGE(.BOTH.,#628); 684 | #626=SURFACE_STYLE_USAGE(.BOTH.,#629); 685 | #627=SURFACE_SIDE_STYLE('',(#630)); 686 | #628=SURFACE_SIDE_STYLE('',(#631)); 687 | #629=SURFACE_SIDE_STYLE('',(#632)); 688 | #630=SURFACE_STYLE_FILL_AREA(#633); 689 | #631=SURFACE_STYLE_FILL_AREA(#634); 690 | #632=SURFACE_STYLE_FILL_AREA(#635); 691 | #633=FILL_AREA_STYLE('ABS (White)',(#636)); 692 | #634=FILL_AREA_STYLE('Opaque(246,246,243)',(#637)); 693 | #635=FILL_AREA_STYLE('Steel - Satin',(#638)); 694 | #636=FILL_AREA_STYLE_COLOUR('ABS (White)',#639); 695 | #637=FILL_AREA_STYLE_COLOUR('Opaque(246,246,243)',#640); 696 | #638=FILL_AREA_STYLE_COLOUR('Steel - Satin',#641); 697 | #639=COLOUR_RGB('ABS (White)',0.964705882352941,0.964705882352941,0.952941176470588); 698 | #640=COLOUR_RGB('Opaque(246,246,243)',0.964705882352941,0.964705882352941, 699 | 0.952941176470588); 700 | #641=COLOUR_RGB('Steel - Satin',0.627450980392157,0.627450980392157,0.627450980392157); 701 | ENDSEC; 702 | END-ISO-10303-21; 703 | -------------------------------------------------------------------------------- /models/Right-hand Touchpad Glove80 sidecar bottom.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixmonkey/glove80-touchpad/d135e5e5faae8858a6bea071893209ca6694c64a/models/Right-hand Touchpad Glove80 sidecar bottom.stl -------------------------------------------------------------------------------- /models/Right-hand Touchpad Glove80 sidecar top.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixmonkey/glove80-touchpad/d135e5e5faae8858a6bea071893209ca6694c64a/models/Right-hand Touchpad Glove80 sidecar top.stl --------------------------------------------------------------------------------