├── 3MF ├── Split Flap Module - All Parts.3mf └── Split Flap Module - Flaps.3mf ├── README.md ├── STL ├── Enclosure │ ├── S_28BYJ-48_Stepper - Center Gear.stl │ ├── S_28BYJ-48_Stepper - Gear Plate.stl │ ├── S_28BYJ-48_Stepper - Motor Gear.stl │ ├── S_28BYJ-48_Stepper - Shim.stl │ ├── Split Flap Module - Character Drum.stl │ ├── Split Flap Module - Enclosure.stl │ ├── Split Flap Module - Endplate L.stl │ ├── Split Flap Module - Endplate R.stl │ ├── Split Flap Module - Sandwich Plate L.stl │ ├── Split Flap Module - Sandwich Plate R.stl │ └── Split Flap Module - Wire Retainer.stl └── Flaps │ ├── Flap01 │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── Flap12 │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── Flap23 │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── Flap34 │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── Flap45 │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── Flap56 │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── Flap67 │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── Flap78 │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── Flap89 │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ ├── Flap - Rear Text (1).stl │ └── Flap - Rear Text.stl │ ├── Flap9Blank │ ├── Flap - Flap.stl │ └── Flap - Front Text.stl │ ├── FlapAB │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapBC │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapBlankA │ ├── Flap - Flap.stl │ └── Flap - Rear Text.stl │ ├── FlapCD │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapDE │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapEF │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapFG │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapGH │ ├── Flap - Flap.stl │ ├── Flap - Front Text (1).stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapHI │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapIJ │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapJK │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapKL │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapLM │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ ├── Flap - Rear Text (1).stl │ ├── Flap - Rear Text (2).stl │ └── Flap - Rear Text.stl │ ├── FlapMN │ ├── Flap - Flap.stl │ ├── Flap - M Front (1).stl │ ├── Flap - M Front.stl │ ├── Flap - Rear Text (1).stl │ └── Flap - Rear Text.stl │ ├── FlapNO │ ├── Flap - Flap.stl │ ├── Flap - Front Text (1).stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapOP │ ├── Flap - Flap.stl │ ├── Flap - O.stl │ └── Flap - Rear Text.stl │ ├── FlapPQ │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapQR │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapRS │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapST │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapTU │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapUV │ ├── Flap - Flap.stl │ ├── Flap - Front Text (1).stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapVW │ ├── Flap - Flap.stl │ ├── Flap - Front Text (1).stl │ ├── Flap - Front Text.stl │ ├── Flap - W (1).stl │ └── Flap - W.stl │ ├── FlapWX │ ├── Flap - Flap.stl │ ├── Flap - Rear Text.stl │ ├── Flap - W (1).stl │ ├── Flap - W (2).stl │ └── Flap - W.stl │ ├── FlapXY │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapYZ │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ ├── FlapZ0 │ ├── Flap - Flap.stl │ ├── Flap - Front Text.stl │ └── Flap - Rear Text.stl │ └── Zipped │ ├── Flap01.zip │ ├── Flap12.zip │ ├── Flap23.zip │ ├── Flap34.zip │ ├── Flap45.zip │ ├── Flap56.zip │ ├── Flap67.zip │ ├── Flap78.zip │ ├── Flap89.zip │ ├── Flap9Blank.zip │ ├── FlapAB.zip │ ├── FlapBC.zip │ ├── FlapBlankA.zip │ ├── FlapCD.zip │ ├── FlapDE.zip │ ├── FlapEF.zip │ ├── FlapFG.zip │ ├── FlapGH.zip │ ├── FlapHI.zip │ ├── FlapIJ.zip │ ├── FlapJK.zip │ ├── FlapKL.zip │ ├── FlapLM.zip │ ├── FlapMN.zip │ ├── FlapNO.zip │ ├── FlapOP.zip │ ├── FlapPQ.zip │ ├── FlapQR.zip │ ├── FlapRS.zip │ ├── FlapST.zip │ ├── FlapTU.zip │ ├── FlapUV.zip │ ├── FlapVW.zip │ ├── FlapWX.zip │ ├── FlapXY.zip │ ├── FlapYZ.zip │ └── FlapZ0.zip ├── other ├── A1Mini_Filament_Change_Gcode_Modified.ptp ├── InstructionsV1.pdf ├── MasterSchematic.fzz ├── Schematic.fzz └── images │ ├── DSCF8561.JPG │ ├── DSCF8566.JPG │ ├── DSCF8581.JPG │ └── DSCF8585.JPG ├── src └── SplitFlapDisplay │ ├── SplitFlapDisplay.cpp │ ├── SplitFlapDisplay.h │ ├── SplitFlapDisplay.ino │ ├── SplitFlapModule.cpp │ ├── SplitFlapModule.h │ ├── SplitFlapWebServer.cpp │ ├── SplitFlapWebServer.h │ └── data │ ├── custom-text-script.js │ ├── custom-text.html │ ├── index.html │ ├── mode-script.js │ ├── mode.html │ ├── settings-script.js │ ├── settings.html │ └── style.css └── step ├── S_28BYJ-48_Stepper - Center Gear.step ├── S_28BYJ-48_Stepper - Gear Plate.step ├── S_28BYJ-48_Stepper - Motor Gear.step ├── S_28BYJ-48_Stepper - Shim.step ├── S_28BYJ-48_Stepper.zip ├── Split Flap Module - Character Drum.step ├── Split Flap Module - Enclosure.step ├── Split Flap Module - Endplate L.step ├── Split Flap Module - Endplate R.step ├── Split Flap Module - Flap (1).step ├── Split Flap Module - Flap.step ├── Split Flap Module - Sandwich Plate L.step ├── Split Flap Module - Sandwich Plate R.step ├── Split Flap Module - Wire Retainer.step └── Split Flap Module.zip /3MF/Split Flap Module - All Parts.3mf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/3MF/Split Flap Module - All Parts.3mf -------------------------------------------------------------------------------- /3MF/Split Flap Module - Flaps.3mf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/3MF/Split Flap Module - Flaps.3mf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | A few months later and I have finally finished this project. 2 | 3 | Fully 3D Printed Modular Split Flap Display with 37 Characters Per Module 4 | Small Size, 8 Modules are 320mm, 3 Modules are 130mm Wide. 80mm Tall 5 | Web Interface To Switch Between Operation Modes, modes include custom input, date mode, time mode 6 | 7 | Instructables: https://www.instructables.com/Split-Flap-Display-3D-Printed-Modular-Compact-Encl/ 8 | 9 | Print Files: https://makerworld.com/en/models/1116618#profileId-1114192 10 | -------------------------------------------------------------------------------- /STL/Enclosure/S_28BYJ-48_Stepper - Center Gear.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Enclosure/S_28BYJ-48_Stepper - Center Gear.stl -------------------------------------------------------------------------------- /STL/Enclosure/S_28BYJ-48_Stepper - Gear Plate.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Enclosure/S_28BYJ-48_Stepper - Gear Plate.stl -------------------------------------------------------------------------------- /STL/Enclosure/S_28BYJ-48_Stepper - Motor Gear.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Enclosure/S_28BYJ-48_Stepper - Motor Gear.stl -------------------------------------------------------------------------------- /STL/Enclosure/S_28BYJ-48_Stepper - Shim.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Enclosure/S_28BYJ-48_Stepper - Shim.stl -------------------------------------------------------------------------------- /STL/Enclosure/Split Flap Module - Character Drum.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Enclosure/Split Flap Module - Character Drum.stl -------------------------------------------------------------------------------- /STL/Enclosure/Split Flap Module - Enclosure.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Enclosure/Split Flap Module - Enclosure.stl -------------------------------------------------------------------------------- /STL/Enclosure/Split Flap Module - Endplate L.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Enclosure/Split Flap Module - Endplate L.stl -------------------------------------------------------------------------------- /STL/Enclosure/Split Flap Module - Endplate R.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Enclosure/Split Flap Module - Endplate R.stl -------------------------------------------------------------------------------- /STL/Enclosure/Split Flap Module - Sandwich Plate L.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Enclosure/Split Flap Module - Sandwich Plate L.stl -------------------------------------------------------------------------------- /STL/Enclosure/Split Flap Module - Sandwich Plate R.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Enclosure/Split Flap Module - Sandwich Plate R.stl -------------------------------------------------------------------------------- /STL/Enclosure/Split Flap Module - Wire Retainer.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Enclosure/Split Flap Module - Wire Retainer.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap01/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap01/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap01/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap01/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap01/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap01/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap12/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap12/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap12/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap12/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap12/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap12/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap23/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap23/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap23/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap23/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap23/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap23/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap34/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap34/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap34/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap34/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap34/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap34/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap45/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap45/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap45/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap45/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap45/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap45/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap56/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap56/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap56/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap56/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap56/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap56/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap67/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap67/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap67/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap67/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap67/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap67/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap78/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap78/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap78/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap78/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap78/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap78/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap89/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap89/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap89/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap89/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap89/Flap - Rear Text (1).stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap89/Flap - Rear Text (1).stl -------------------------------------------------------------------------------- /STL/Flaps/Flap89/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap89/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap9Blank/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap9Blank/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/Flap9Blank/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Flap9Blank/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapAB/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapAB/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapAB/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapAB/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapAB/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapAB/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapBC/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapBC/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapBC/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapBC/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapBC/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapBC/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapBlankA/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapBlankA/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapBlankA/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapBlankA/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapCD/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapCD/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapCD/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapCD/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapCD/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapCD/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapDE/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapDE/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapDE/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapDE/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapDE/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapDE/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapEF/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapEF/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapEF/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapEF/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapEF/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapEF/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapFG/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapFG/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapFG/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapFG/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapFG/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapFG/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapGH/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapGH/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapGH/Flap - Front Text (1).stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapGH/Flap - Front Text (1).stl -------------------------------------------------------------------------------- /STL/Flaps/FlapGH/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapGH/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapGH/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapGH/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapHI/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapHI/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapHI/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapHI/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapHI/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapHI/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapIJ/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapIJ/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapIJ/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapIJ/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapIJ/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapIJ/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapJK/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapJK/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapJK/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapJK/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapJK/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapJK/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapKL/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapKL/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapKL/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapKL/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapKL/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapKL/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapLM/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapLM/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapLM/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapLM/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapLM/Flap - Rear Text (1).stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapLM/Flap - Rear Text (1).stl -------------------------------------------------------------------------------- /STL/Flaps/FlapLM/Flap - Rear Text (2).stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapLM/Flap - Rear Text (2).stl -------------------------------------------------------------------------------- /STL/Flaps/FlapLM/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapLM/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapMN/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapMN/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapMN/Flap - M Front (1).stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapMN/Flap - M Front (1).stl -------------------------------------------------------------------------------- /STL/Flaps/FlapMN/Flap - M Front.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapMN/Flap - M Front.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapMN/Flap - Rear Text (1).stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapMN/Flap - Rear Text (1).stl -------------------------------------------------------------------------------- /STL/Flaps/FlapMN/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapMN/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapNO/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapNO/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapNO/Flap - Front Text (1).stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapNO/Flap - Front Text (1).stl -------------------------------------------------------------------------------- /STL/Flaps/FlapNO/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapNO/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapNO/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapNO/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapOP/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapOP/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapOP/Flap - O.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapOP/Flap - O.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapOP/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapOP/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapPQ/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapPQ/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapPQ/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapPQ/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapPQ/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapPQ/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapQR/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapQR/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapQR/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapQR/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapQR/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapQR/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapRS/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapRS/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapRS/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapRS/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapRS/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapRS/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapST/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapST/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapST/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapST/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapST/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapST/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapTU/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapTU/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapTU/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapTU/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapTU/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapTU/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapUV/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapUV/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapUV/Flap - Front Text (1).stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapUV/Flap - Front Text (1).stl -------------------------------------------------------------------------------- /STL/Flaps/FlapUV/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapUV/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapUV/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapUV/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapVW/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapVW/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapVW/Flap - Front Text (1).stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapVW/Flap - Front Text (1).stl -------------------------------------------------------------------------------- /STL/Flaps/FlapVW/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapVW/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapVW/Flap - W (1).stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapVW/Flap - W (1).stl -------------------------------------------------------------------------------- /STL/Flaps/FlapVW/Flap - W.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapVW/Flap - W.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapWX/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapWX/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapWX/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapWX/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapWX/Flap - W (1).stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapWX/Flap - W (1).stl -------------------------------------------------------------------------------- /STL/Flaps/FlapWX/Flap - W (2).stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapWX/Flap - W (2).stl -------------------------------------------------------------------------------- /STL/Flaps/FlapWX/Flap - W.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapWX/Flap - W.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapXY/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapXY/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapXY/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapXY/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapXY/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapXY/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapYZ/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapYZ/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapYZ/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapYZ/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapYZ/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapYZ/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapZ0/Flap - Flap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapZ0/Flap - Flap.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapZ0/Flap - Front Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapZ0/Flap - Front Text.stl -------------------------------------------------------------------------------- /STL/Flaps/FlapZ0/Flap - Rear Text.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/FlapZ0/Flap - Rear Text.stl -------------------------------------------------------------------------------- /STL/Flaps/Zipped/Flap01.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/Flap01.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/Flap12.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/Flap12.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/Flap23.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/Flap23.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/Flap34.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/Flap34.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/Flap45.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/Flap45.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/Flap56.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/Flap56.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/Flap67.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/Flap67.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/Flap78.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/Flap78.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/Flap89.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/Flap89.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/Flap9Blank.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/Flap9Blank.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapAB.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapAB.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapBC.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapBC.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapBlankA.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapBlankA.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapCD.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapCD.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapDE.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapDE.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapEF.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapEF.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapFG.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapFG.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapGH.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapGH.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapHI.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapHI.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapIJ.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapIJ.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapJK.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapJK.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapKL.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapKL.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapLM.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapLM.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapMN.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapMN.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapNO.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapNO.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapOP.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapOP.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapPQ.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapPQ.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapQR.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapQR.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapRS.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapRS.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapST.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapST.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapTU.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapTU.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapUV.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapUV.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapVW.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapVW.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapWX.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapWX.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapXY.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapXY.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapYZ.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapYZ.zip -------------------------------------------------------------------------------- /STL/Flaps/Zipped/FlapZ0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/STL/Flaps/Zipped/FlapZ0.zip -------------------------------------------------------------------------------- /other/A1Mini_Filament_Change_Gcode_Modified.ptp: -------------------------------------------------------------------------------- 1 | ;Modified to pause mid layer for manual filament changes 2 | ;Morgan Manly 3 | ;22/01/2025 4 | 5 | ;===== machine: A1 mini ========================= 6 | ;===== date: 20240830 ======================= 7 | G392 S0 8 | M1007 S0 9 | ;REMOVED: skips all next code if no AMS is available 10 | ;M620 S[next_extruder]A 11 | M204 S9000 12 | {if toolchange_count > 1} 13 | G17 14 | G2 Z{max_layer_z + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift 15 | ;=endif= ; MOVED DOWN: To ensure all needed code is executed. Changed curly braces signs to equal signs to solve parse error. 16 | G1 Z{max_layer_z + 3.0} F1200 ;move up 17 | 18 | M400 19 | M106 P1 S0 20 | M106 P2 S0 21 | {if old_filament_temp > 142 && next_extruder < 255} 22 | M104 S[old_filament_temp] 23 | {endif} 24 | 25 | ;G1 X180 F18000 ;Removed, can't see why this is needed 26 | G1 X-13.5 F9000 ;moves to flushing location before pause 27 | M620.1 E F[old_filament_e_feedrate] T{nozzle_temperature_range_high[previous_extruder]} 28 | M620.10 A0 F[old_filament_e_feedrate] 29 | T[next_extruder] 30 | M620.1 E F[new_filament_e_feedrate] T{nozzle_temperature_range_high[next_extruder]} 31 | M620.10 A1 F[new_filament_e_feedrate] L[flush_length] H[nozzle_diameter] T[nozzle_temperature_range_high] 32 | 33 | G1 Y90 F9000 34 | ; -- BEGIN ADDED LINES -- 35 | ; pause for user to load and press resume 36 | ; I believe that pausing automatically homes x 37 | M400 U1 38 | ; -- END ADDED LINES -- 39 | {if next_extruder < 255} 40 | M400 41 | 42 | G92 E0 43 | ;M628 S0 ; REMOVED: causes printer to crash without AMS 44 | 45 | {if flush_length_1 > 1} 46 | ; FLUSH_START 47 | ; always use highest temperature to flush 48 | M400 49 | M1002 set_filament_type:UNKNOWN 50 | M109 S[nozzle_temperature_range_high] 51 | M106 P1 S60 52 | {if flush_length_1 > 23.7} 53 | G1 E23.7 F{old_filament_e_feedrate} ; do not need pulsatile flushing for start part 54 | G1 E{(flush_length_1 - 23.7) * 0.02} F50 55 | G1 E{(flush_length_1 - 23.7) * 0.23} F{old_filament_e_feedrate} 56 | G1 E{(flush_length_1 - 23.7) * 0.02} F50 57 | G1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate} 58 | G1 E{(flush_length_1 - 23.7) * 0.02} F50 59 | G1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate} 60 | G1 E{(flush_length_1 - 23.7) * 0.02} F50 61 | G1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate} 62 | {else} 63 | G1 E{flush_length_1} F{old_filament_e_feedrate} 64 | {endif} 65 | ; FLUSH_END 66 | G1 E-[old_retract_length_toolchange] F1800 67 | G1 E[old_retract_length_toolchange] F300 68 | M400 69 | M1002 set_filament_type:{filament_type[next_extruder]} 70 | {endif} 71 | 72 | {if flush_length_1 > 45 && flush_length_2 > 1} 73 | ; WIPE 74 | M400 75 | M106 P1 S178 76 | M400 S3 77 | G1 X-3.5 F18000 78 | G1 X-13.5 F3000 79 | G1 X-3.5 F18000 80 | G1 X-13.5 F3000 81 | G1 X-3.5 F18000 82 | G1 X-13.5 F3000 83 | M400 84 | M106 P1 S0 85 | {endif} 86 | 87 | {if flush_length_2 > 1} 88 | M106 P1 S60 89 | ; FLUSH_START 90 | G1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate} 91 | G1 E{flush_length_2 * 0.02} F50 92 | G1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate} 93 | G1 E{flush_length_2 * 0.02} F50 94 | G1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate} 95 | G1 E{flush_length_2 * 0.02} F50 96 | G1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate} 97 | G1 E{flush_length_2 * 0.02} F50 98 | G1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate} 99 | G1 E{flush_length_2 * 0.02} F50 100 | ; FLUSH_END 101 | G1 E-[new_retract_length_toolchange] F1800 102 | G1 E[new_retract_length_toolchange] F300 103 | {endif} 104 | 105 | {if flush_length_2 > 45 && flush_length_3 > 1} 106 | ; WIPE 107 | M400 108 | M106 P1 S178 109 | M400 S3 110 | G1 X-3.5 F18000 111 | G1 X-13.5 F3000 112 | G1 X-3.5 F18000 113 | G1 X-13.5 F3000 114 | G1 X-3.5 F18000 115 | G1 X-13.5 F3000 116 | M400 117 | M106 P1 S0 118 | {endif} 119 | 120 | {if flush_length_3 > 1} 121 | M106 P1 S60 122 | ; FLUSH_START 123 | G1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate} 124 | G1 E{flush_length_3 * 0.02} F50 125 | G1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate} 126 | G1 E{flush_length_3 * 0.02} F50 127 | G1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate} 128 | G1 E{flush_length_3 * 0.02} F50 129 | G1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate} 130 | G1 E{flush_length_3 * 0.02} F50 131 | G1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate} 132 | G1 E{flush_length_3 * 0.02} F50 133 | ; FLUSH_END 134 | G1 E-[new_retract_length_toolchange] F1800 135 | G1 E[new_retract_length_toolchange] F300 136 | {endif} 137 | 138 | {if flush_length_3 > 45 && flush_length_4 > 1} 139 | ; WIPE 140 | M400 141 | M106 P1 S178 142 | M400 S3 143 | G1 X-3.5 F18000 144 | G1 X-13.5 F3000 145 | G1 X-3.5 F18000 146 | G1 X-13.5 F3000 147 | G1 X-3.5 F18000 148 | G1 X-13.5 F3000 149 | M400 150 | M106 P1 S0 151 | {endif} 152 | 153 | {if flush_length_4 > 1} 154 | M106 P1 S60 155 | ; FLUSH_START 156 | G1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate} 157 | G1 E{flush_length_4 * 0.02} F50 158 | G1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate} 159 | G1 E{flush_length_4 * 0.02} F50 160 | G1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate} 161 | G1 E{flush_length_4 * 0.02} F50 162 | G1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate} 163 | G1 E{flush_length_4 * 0.02} F50 164 | G1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate} 165 | G1 E{flush_length_4 * 0.02} F50 166 | ; FLUSH_END 167 | {endif} 168 | 169 | M629 170 | 171 | M400 172 | M106 P1 S60 173 | M109 S[new_filament_temp] 174 | G1 E5 F{new_filament_e_feedrate} ;Compensate for filament spillage during waiting temperature 175 | M400 176 | G92 E0 177 | G1 E-[new_retract_length_toolchange] F1800 178 | M400 179 | M106 P1 S178 180 | M400 S3 181 | G1 X-3.5 F18000 182 | G1 X-13.5 F3000 183 | G1 X-3.5 F18000 184 | G1 X-13.5 F3000 185 | G1 X-3.5 F18000 186 | G1 X-13.5 F3000 187 | G1 X-3.5 F18000 188 | G1 X-13.5 F3000 189 | M400 190 | G1 Z{max_layer_z + 3.0} F3000 191 | M106 P1 S0 192 | {if layer_z <= (initial_layer_print_height + 0.001)} 193 | M204 S[initial_layer_acceleration] 194 | {else} 195 | M204 S[default_acceleration] 196 | {endif} 197 | {else} 198 | G1 X[x_after_toolchange] Y[y_after_toolchange] Z[z_after_toolchange] F12000 199 | {endif} 200 | 201 | 202 | ; -- BEGIN ADDED LINES -- 203 | {endif} 204 | M620 S[next_extruder]A 205 | T[next_extruder] 206 | ; -- END ADDED LINES -- 207 | M621 S[next_extruder]A 208 | 209 | 210 | M622.1 S0 211 | 212 | M9833 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation 213 | M1002 judge_flag filament_need_cali_flag 214 | M622 J1 215 | G92 E0 216 | G1 E-[new_retract_length_toolchange] F1800 217 | M400 218 | 219 | M106 P1 S178 220 | M400 S7 221 | G1 X0 F18000 222 | G1 X-13.5 F3000 223 | G1 X0 F18000 ;wipe and shake 224 | G1 X-13.5 F3000 225 | G1 X0 F12000 ;wipe and shake 226 | G1 X-13.5 F3000 227 | G1 X0 F12000 ;wipe and shake 228 | M400 229 | M106 P1 S0 230 | M623 231 | 232 | G392 S0 233 | M1007 S1 -------------------------------------------------------------------------------- /other/InstructionsV1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/other/InstructionsV1.pdf -------------------------------------------------------------------------------- /other/MasterSchematic.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/other/MasterSchematic.fzz -------------------------------------------------------------------------------- /other/Schematic.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/other/Schematic.fzz -------------------------------------------------------------------------------- /other/images/DSCF8561.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/other/images/DSCF8561.JPG -------------------------------------------------------------------------------- /other/images/DSCF8566.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/other/images/DSCF8566.JPG -------------------------------------------------------------------------------- /other/images/DSCF8581.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/other/images/DSCF8581.JPG -------------------------------------------------------------------------------- /other/images/DSCF8585.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/other/images/DSCF8585.JPG -------------------------------------------------------------------------------- /src/SplitFlapDisplay/SplitFlapDisplay.cpp: -------------------------------------------------------------------------------- 1 | #include "SplitFlapDisplay.h" 2 | #include "SplitFlapModule.h" 3 | 4 | const int SplitFlapDisplay::numModules = 8; 5 | const uint8_t SplitFlapDisplay::moduleAddresses[] = {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27}; // Module I2C Addresses, In Order 6 | 7 | //Solder the contacts on PCF8575 for these addresses 8 | // ADDR | A0 | A1 | A2 9 | // ---------------------- 10 | // 0x20 | L | L | L 11 | // 0x21 | H | L | L 12 | // 0x22 | L | H | L 13 | // 0x23 | H | H | L 14 | // 0x24 | L | L | H 15 | // 0x25 | H | L | H 16 | // 0x26 | L | H | H 17 | // 0x27 | H | H | H 18 | 19 | const int SplitFlapDisplay::magnetPosition = 730; //position of character drum when the magnet is detected, this sets position 0 to be the blank flap 20 | const int SplitFlapDisplay::moduleOffsets[] = {0,0,-5,10,5,0,0,-15}; //Tuning offsets (55 steps per character) +ve values move backwards on the character drum, shift flaps upwards 21 | 22 | const int SplitFlapDisplay::SDAPin = 8; // SDA pin 23 | const int SplitFlapDisplay::SCLPin = 9; // SCL pin 24 | 25 | const int SplitFlapDisplay::stepsPerRotation = 2048; //Number of stepper steps per 1 revolution of the motor, gear ratio is 1:1 to char drum 26 | const float SplitFlapDisplay::maxVel = MAX_RPM; //Max Rotations Per Minute 27 | 28 | SplitFlapDisplay::SplitFlapDisplay() { //Constructor 29 | 30 | // Initialize each SplitFlapModule object with the correct address 31 | for (uint8_t i = 0; i < numModules; i++) { 32 | modules[i] = SplitFlapModule(moduleAddresses[i],stepsPerRotation,moduleOffsets[i],magnetPosition); 33 | } 34 | } 35 | 36 | void SplitFlapDisplay::init() { 37 | 38 | Wire.begin(SDAPin,SCLPin); 39 | Wire.setClock(400000); 40 | 41 | for (uint8_t i = 0; i < numModules; i++) { 42 | modules[i].init(); 43 | } 44 | 45 | } 46 | 47 | void SplitFlapDisplay::testAll() { 48 | char testChars[37] = {' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}; 49 | int numChars = sizeof(testChars) / sizeof(testChars[0]); 50 | int targetPositions[numModules]; 51 | 52 | int charPos; 53 | for (int i = 0; i < numChars; i++) { 54 | // Serial.print("Target Positions: ["); 55 | //fill array with same char 56 | 57 | for (int j = 0; j < numModules; j++) { 58 | targetPositions[j] = modules[j].getCharPosition(testChars[i]); 59 | // Serial.print(targetPositions[j]); 60 | // Serial.print(" , "); 61 | } 62 | // Serial.println("]"); 63 | 64 | moveTo(targetPositions); 65 | delay(500); 66 | } 67 | 68 | } 69 | 70 | void SplitFlapDisplay::testRandom(float speed) { 71 | char testChars[37] = {' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}; 72 | 73 | int targetPositions[numModules]; 74 | char randChar; 75 | 76 | Serial.print("Target: "); 77 | for (int i = 0; i < numModules; i++) { 78 | randChar = testChars[random(0, 37)]; 79 | targetPositions[i] = modules[i].getCharPosition(randChar); 80 | Serial.print(randChar); 81 | } 82 | Serial.println(" "); 83 | moveTo(targetPositions,speed); 84 | 85 | } 86 | 87 | void SplitFlapDisplay::testCount() { 88 | 89 | int count = 0; 90 | int maxCount = pow(10,numModules); 91 | char targetChar; 92 | int targetInteger; 93 | 94 | int targetPositions[numModules]; 95 | 96 | for (int i = 0; i < maxCount; i++) { 97 | //get each character in the count integer 98 | for (int j = 0; j < numModules; j++) { 99 | targetInteger = (i % (int)pow(10,j+1)) / (int)pow(10,j); 100 | targetChar = targetInteger + '0'; //convert to char 101 | targetPositions[numModules-j-1] = modules[j].getCharPosition(targetChar); 102 | } 103 | 104 | moveTo(targetPositions); 105 | delay(250); 106 | 107 | } 108 | } 109 | 110 | void SplitFlapDisplay::home(float speed) { 111 | Serial.println("Homing"); 112 | int targetPositions[numModules]; 113 | for (int i = 0; i < numModules; i++) { 114 | targetPositions[i] = (modules[i].getPosition() - 1 + stepsPerRotation) % stepsPerRotation; 115 | } 116 | startMotors(); 117 | moveTo(targetPositions,speed,false); 118 | char homeChar = ' '; 119 | int charPosition; 120 | for (int i = 0; i < numModules; i++) { 121 | targetPositions[i] = modules[i].getCharPosition(homeChar); 122 | } 123 | moveTo(targetPositions,speed); 124 | } 125 | 126 | void SplitFlapDisplay::homeToString(String homeString,float speed,bool centering) { 127 | Serial.println("Homing"); 128 | int targetPositions[numModules]; 129 | for (int i = 0; i < numModules; i++) { 130 | targetPositions[i] = (modules[i].getPosition() - 1 + stepsPerRotation) % stepsPerRotation; 131 | } 132 | startMotors(); 133 | moveTo(targetPositions,speed,false); 134 | writeString(homeString,speed,centering); 135 | } 136 | 137 | void SplitFlapDisplay::homeToChar(char homeChar,float speed) { 138 | Serial.println("Homing"); 139 | int targetPositions[numModules]; 140 | for (int i = 0; i < numModules; i++) { 141 | targetPositions[i] = (modules[i].getPosition() - 1 + stepsPerRotation) % stepsPerRotation; 142 | } 143 | startMotors(); 144 | moveTo(targetPositions,speed,false); 145 | 146 | for (int i = 0; i < numModules; i++) { 147 | targetPositions[i] = modules[i].getCharPosition(homeChar); 148 | } 149 | moveTo(targetPositions,true,speed); 150 | } 151 | 152 | void SplitFlapDisplay::writeChar(char inputChar,float speed) { 153 | 154 | int targetPositions[numModules]; 155 | // Iterate through the input string and process each character 156 | for (int i = 0; i < numModules; i++) { 157 | targetPositions[i] = modules[i].getCharPosition(inputChar); 158 | } 159 | moveTo(targetPositions,speed); 160 | 161 | } 162 | 163 | void SplitFlapDisplay::writeString(String inputString,float speed,bool centering) { 164 | 165 | String displayString = inputString.substring(0, numModules); 166 | 167 | if (centering) { 168 | int totalPadding = numModules - displayString.length(); 169 | int paddingLeft = totalPadding / 2; 170 | int paddingRight = totalPadding - paddingLeft; 171 | 172 | // Add padding to the left 173 | String result = ""; 174 | for (int i = 0; i < paddingLeft; i++) { 175 | result += " "; 176 | } 177 | 178 | // Add the original string 179 | result += displayString; 180 | 181 | // Add padding to the right 182 | for (int i = 0; i < paddingRight; i++) { 183 | result += " "; 184 | } 185 | displayString = result; 186 | } 187 | else{ //pad blanks to end, if no centering 188 | while (displayString.length() < numModules) { // Pad with spaces 189 | displayString += " "; // Padding with space 190 | } 191 | } 192 | 193 | int targetPositions[numModules]; 194 | // Iterate through the input string and process each character 195 | for (int i = 0; i < displayString.length(); i++) { 196 | char currentChar = displayString[i]; 197 | // Serial.println(currentChar); 198 | targetPositions[i] = modules[i].getCharPosition(currentChar); 199 | } 200 | moveTo(targetPositions,speed); 201 | 202 | } 203 | 204 | void SplitFlapDisplay::moveTo(int targetPositions[],float speed, bool releaseMotors) { 205 | 206 | //TODO check length of array and return if empty 207 | 208 | speed = constrain(speed,2,maxVel); 209 | float stepsPerSecond = (speed/60) * stepsPerRotation; 210 | float timePerStep = 1000000/stepsPerSecond; 211 | 212 | unsigned long currentTime = micros(); 213 | 214 | int checkIntervalUs = 20 * 1000;//How often to check each modules hall effect sensor, less than 20ms causes issues with bouncing 215 | int startStopDelay = 200; //time to wait to let motor realign itself to magnetic field on stop and start 216 | 217 | bool resetLatches[numModules] = {}; // Initialize to false //start with latch on to prevent case where the motion starts with the magnet over the sensor 218 | bool needsStepping[numModules] = {}; // Initialize to false; //modules that still require moving 219 | unsigned long lastStepTimes[numModules] = {}; // Initialize to false; //track when each module was last stepped 220 | unsigned long lastSensorCheckTime = currentTime; //track when we last read all the hall effect sensors 221 | 222 | for (int i = 0; i < numModules; i++) { 223 | targetPositions[i] = constrain(targetPositions[i], 0, stepsPerRotation-1); //Constrain to avoid errors with incorrect inputs 224 | resetLatches[i] = true; 225 | lastStepTimes[i] = currentTime; 226 | if (modules[i].getPosition() != targetPositions[i]) { 227 | needsStepping[i] = true; 228 | } 229 | else{ 230 | needsStepping[i] = false; 231 | } 232 | } 233 | 234 | startMotors(); //not sure if this helps or not, likely that it does not based on testing 235 | delay(startStopDelay); //give the motor time to align to magnetic field 236 | 237 | bool isFinished = checkAllFalse(needsStepping,numModules); 238 | while (!isFinished) { 239 | 240 | currentTime = micros(); 241 | for (int i = 0; i < numModules; i++) { 242 | if (((currentTime - lastStepTimes[i]) > timePerStep) && needsStepping[i]) { 243 | modules[i].step(); 244 | lastStepTimes[i] = micros(); 245 | if (modules[i].getPosition() == targetPositions[i]) { //this module is not in the correct position, requires stepping 246 | needsStepping[i] = false; 247 | } 248 | } 249 | } 250 | 251 | if ((currentTime - lastSensorCheckTime) > checkIntervalUs) { //check hall effect sensor every checkIntervalMs 252 | //check every modules sensor 253 | for (int i = 0; i < numModules; i++) { 254 | if (needsStepping[i] && (modules[i].readHallEffectSensor() == true)) { //only check sensors where the module is still moving 255 | if (!resetLatches[i]){ 256 | //UNCOMMENTING THIS WILL PROBBALY MAKE THE MOTORS INACCURATE, DUE TO TIME TAKEN TO PRINT 257 | // Serial.print("Module: "); 258 | // Serial.print(i); 259 | // Serial.print(" Magnet Position: "); 260 | // Serial.print(modules[i].getMagnetPosition()); 261 | // Serial.print(" Actual Position: "); 262 | // Serial.print(modules[i].getPosition()); 263 | // Serial.print(" Error: "); 264 | // Serial.println((modules[i].getMagnetPosition() - modules[i].getPosition())); 265 | modules[i].magnetDetected(); //update position to the modules magnet position 266 | resetLatches[i] = true; 267 | } 268 | } 269 | else if (resetLatches[i] == true) { 270 | resetLatches[i] = false; 271 | } 272 | } 273 | isFinished = checkAllFalse(needsStepping,numModules); 274 | lastSensorCheckTime = currentTime; //recall micros because for loop may take a moment to execute 275 | } 276 | 277 | } 278 | if (releaseMotors) { 279 | delay(startStopDelay); //allow all motors time to settle 280 | stopMotors(); 281 | } 282 | 283 | } 284 | 285 | bool SplitFlapDisplay::checkAllFalse(bool array[], int size) { 286 | for (int i = 0; i < size; i++) { 287 | if (array[i] == true) { 288 | return false; // As soon as a true value is found, return false 289 | } 290 | } 291 | return true; // All values were false 292 | } 293 | 294 | void SplitFlapDisplay::startMotors() { //Probably broken somewhere, not sure why, haven't looked 295 | for (int i = 0; i < numModules; i++) { 296 | modules[i].start(); 297 | } 298 | } 299 | 300 | void SplitFlapDisplay::stopMotors() { 301 | // Serial.println("Stopping Motors"); 302 | for (int i = 0; i < numModules; i++) { 303 | modules[i].stop(); 304 | } 305 | } 306 | 307 | 308 | 309 | 310 | 311 | 312 | -------------------------------------------------------------------------------- /src/SplitFlapDisplay/SplitFlapDisplay.h: -------------------------------------------------------------------------------- 1 | // SplitFlapDisplay.h (header file) 2 | #ifndef SplitFlapDisplay_h 3 | #define SplitFlapDisplay_h 4 | 5 | #include 6 | #include "SplitFlapModule.h" 7 | 8 | #define MAX_MODULES 8 //for memory allocation, update if more modules 9 | #define MAX_RPM 15.0f 10 | 11 | class SplitFlapDisplay { 12 | public: 13 | 14 | SplitFlapDisplay(); //Constructor 15 | void init(); 16 | void writeString(String inputString,float speed=MAX_RPM,bool centering=true); //Move all modules at once to show a specific string 17 | void writeChar(char inputChar,float speed = MAX_RPM); //sets all modules to a single char 18 | void moveTo(int targetPositions[], float speed = MAX_RPM, bool releaseMotors = true); 19 | void home(float speed = MAX_RPM); //move home 20 | void homeToString(String homeString,float speed = MAX_RPM,bool centering = true); //moves home and then writes a string 21 | void homeToChar(char homeChar,float speed = MAX_RPM); //moves home and then sets all modules to a char 22 | void testAll(); 23 | void testCount(); 24 | void testRandom(float speed = MAX_RPM); 25 | int getNumModules() { return numModules; } 26 | 27 | private: 28 | bool checkAllFalse(bool array[], int size); 29 | void stopMotors(); 30 | void startMotors(); 31 | 32 | static const int numModules; // Number of modules in the display 33 | SplitFlapModule modules[MAX_MODULES]; // Array of SplitFlapModule objects, size of array is maximum number of modules allowed in class 34 | static const int moduleOffsets[MAX_MODULES]; 35 | static const uint8_t moduleAddresses[MAX_MODULES]; 36 | 37 | static const float maxVel; //Max Velocity In RPM 38 | float maxStepsPerSecond; //calculated from maxVel 39 | static const int stepsPerRotation; //number of motor steps per full rotation of character drum 40 | static const int magnetPosition; //position of drum wheel when magnet is detected 41 | static const int SDAPin; // SDA pin 42 | static const int SCLPin; // SCL pin 43 | 44 | }; 45 | 46 | #endif 47 | // __ 48 | // (QUACK)>(o )___ 49 | // ( ._> / 50 | // `---' 51 | // Morgan Manly 52 | // 28/01/2025 -------------------------------------------------------------------------------- /src/SplitFlapDisplay/SplitFlapDisplay.ino: -------------------------------------------------------------------------------- 1 | // Split Flap Display 2 | // Morgan Manly 3 | // 16/02/2025 4 | 5 | // Enter SplitFlapDisplay.cpp to alter number of modules, and set addresses 6 | // Enjoy :) 7 | 8 | #include "Arduino.h" 9 | #include "SplitFlapDisplay.h" 10 | #include "SplitFlapWebServer.h" 11 | 12 | SplitFlapDisplay display; //Create Display Object 13 | SplitFlapWebServer webServer; //Create Webserver Object 14 | 15 | void setup() { 16 | // put your setup code here, to run once: 17 | Serial.begin(115200); 18 | 19 | Serial.println("Init Display"); 20 | display.init(); //Initialise Display, and All Modules Within 21 | 22 | display.homeToString(""); 23 | 24 | Serial.println("Init Web Server"); 25 | webServer.init(); 26 | 27 | if (!webServer.connectToWifi()) { 28 | webServer.startAccessPoint(); 29 | webServer.startWebServer(); //Start Webserver 30 | 31 | if (display.getNumModules() == 8){ 32 | display.writeString("Wifi Err"); 33 | } 34 | else{ 35 | display.writeChar('X'); 36 | } 37 | } 38 | else{ 39 | webServer.startWebServer(); //Start Webserver 40 | display.writeString("OK"); 41 | delay(250); 42 | display.writeString(""); 43 | } 44 | 45 | } 46 | 47 | void loop() { 48 | 49 | // check what mode the display is in, this value is updated by the web server 50 | switch (webServer.getMode()) { 51 | case 0: { //single input mode 52 | singleInputMode(); 53 | break; 54 | } 55 | case 1: { //multi input mode 56 | multiInputMode(); 57 | break; 58 | } 59 | case 2: {//Date Mode 60 | dateMode(); 61 | break; 62 | } 63 | case 3: {//Time Mode 64 | timeMode(); 65 | break; 66 | } 67 | case 4: {//Count Mode 68 | break; 69 | } 70 | case 5: {//Random Test Mode 71 | randomTest(); 72 | break; 73 | } 74 | default: 75 | break; 76 | } 77 | 78 | checkConnection(); 79 | 80 | reconnectIfNeeded(); 81 | 82 | yield(); 83 | } 84 | 85 | void singleInputMode(){ 86 | String userInput = webServer.getInputString(); 87 | if (userInput!=webServer.getWrittenString()){ 88 | display.writeString(userInput,MAX_RPM,webServer.getCentering()); 89 | webServer.setWrittenString(userInput); 90 | } 91 | } 92 | 93 | void multiInputMode() { 94 | if (millis() - webServer.getLastSwitchMultiTime() > webServer.getMultiWordDelay()) { 95 | //get user input, extract correct word from index using webserver counter, and display 96 | String userInput = webServer.getMultiInputString(); 97 | String currWord = extractFromCSV(userInput,webServer.getMultiWordCurrentIndex()); 98 | if (currWord!=webServer.getWrittenString()){ 99 | display.writeString(currWord,MAX_RPM,webServer.getCentering()); 100 | webServer.setWrittenString(currWord); 101 | } 102 | webServer.setLastSwitchMultiTime(millis()); 103 | webServer.setMultiWordCurrentIndex((webServer.getMultiWordCurrentIndex()+1)%(webServer.getNumMultiWords())); 104 | } 105 | } 106 | 107 | void dateMode() { 108 | if (millis() - webServer.getLastCheckDateTime() > webServer.getDateCheckInterval()) { 109 | webServer.setLastCheckDateTime(millis()); 110 | //get date and output to display 111 | String outputString = " "; 112 | switch(display.getNumModules()) { 113 | case 1: { 114 | break; 115 | } 116 | case 2: { 117 | outputString = webServer.getCurrentDay(); 118 | break; 119 | } 120 | case 3: { 121 | outputString = webServer.getDayPrefix(3); 122 | break; 123 | } 124 | case 4: { 125 | outputString = " " + webServer.getCurrentDay() + " "; 126 | break; 127 | } 128 | case 5: { 129 | outputString = String(webServer.getDayPrefix(3)) + webServer.getCurrentDay(); 130 | break; 131 | } 132 | case 6: { 133 | outputString = String(webServer.getDayPrefix(3)) + " " + webServer.getCurrentDay(); 134 | break; 135 | } 136 | case 7: { 137 | outputString = String(webServer.getDayPrefix(3)) + " " + webServer.getCurrentDay(); 138 | break; 139 | } 140 | case 8: { 141 | outputString = String(webServer.getDayPrefix(3)) + webServer.getCurrentDay() + webServer.getMonthPrefix(3); 142 | break; 143 | } 144 | } 145 | 146 | if (outputString!=webServer.getWrittenString()){ 147 | display.homeToString(outputString,10); 148 | webServer.setWrittenString(outputString); 149 | } 150 | } 151 | } 152 | 153 | void timeMode() { 154 | if (millis() - webServer.getLastCheckDateTime() > webServer.getDateCheckInterval()) { 155 | webServer.setLastCheckDateTime(millis()); 156 | //get time 157 | String outputString = " "; 158 | switch(display.getNumModules()) { 159 | case 1: { 160 | break; 161 | } 162 | case 2: { 163 | outputString = webServer.getCurrentMinute(); 164 | break; 165 | } 166 | case 3: { 167 | outputString = " " + webServer.getCurrentMinute(); 168 | break; 169 | } 170 | case 4: { 171 | outputString = webServer.getCurrentHour() + webServer.getCurrentMinute(); 172 | break; 173 | } 174 | case 5: { 175 | outputString = webServer.getCurrentHour() +" "+ webServer.getCurrentMinute(); 176 | break; 177 | } 178 | case 6: { 179 | outputString = " " + webServer.getCurrentHour() +" "+ webServer.getCurrentMinute(); 180 | break; 181 | } 182 | case 7: { 183 | outputString = " " + webServer.getCurrentHour() +" "+ webServer.getCurrentMinute() + " "; 184 | break; 185 | } 186 | case 8: { 187 | outputString = " " + webServer.getCurrentHour() + webServer.getCurrentMinute() + " "; 188 | break; 189 | } 190 | default: 191 | break; 192 | } 193 | 194 | if (outputString!=webServer.getWrittenString()){ 195 | display.writeString(outputString,10,false); 196 | webServer.setWrittenString(outputString); 197 | } 198 | } 199 | } 200 | 201 | void randomTest(){ 202 | display.testRandom(); 203 | delay(2500); 204 | } 205 | 206 | void checkConnection() { 207 | if (millis()-webServer.getLastCheckWifiTime() > webServer.getWifiCheckInterval()){ //check wifi to see if disconnected 208 | webServer.checkWiFi(); 209 | webServer.setLastCheckWifiTime(millis()); 210 | } 211 | } 212 | 213 | void reconnectIfNeeded(){ 214 | if (webServer.getAttemptReconnect()) { //check if the device should attempt reconnection to wifi 215 | webServer.setAttemptReconnect(false); 216 | display.writeString(""); 217 | if (!webServer.connectToWifi()) { 218 | webServer.startAccessPoint(); 219 | display.writeChar('X'); 220 | } 221 | else{ 222 | display.writeString("OK"); 223 | webServer.setWrittenString("OK"); 224 | delay(500); 225 | display.writeString(""); 226 | webServer.setWrittenString(""); 227 | } 228 | } 229 | } 230 | 231 | String extractFromCSV(String str, int index) { 232 | int startIndex = 0; 233 | int endIndex = str.length(); 234 | 235 | int commaCount = 0; 236 | for (int i = 0; i < str.length(); i++) { 237 | if (str[i] == ','){ 238 | commaCount++; 239 | if (commaCount == index){ 240 | startIndex = i+1; //skip past the comma 241 | } 242 | else if (commaCount == index+1){ 243 | endIndex = i; 244 | } 245 | } 246 | } 247 | 248 | return str.substring(startIndex, endIndex); 249 | } 250 | 251 | // __ 252 | // (QUACK)>(o )___ 253 | // ( ._> / 254 | // `---' 255 | -------------------------------------------------------------------------------- /src/SplitFlapDisplay/SplitFlapModule.cpp: -------------------------------------------------------------------------------- 1 | // SplitFlapModule_h.cpp (implementation file)c:\Users\morga\Documents\Arduino\libraries\PCF8575_library\PCF8575_library.h 2 | #include "SplitFlapModule.h" 3 | #include // Required for tolower() 4 | 5 | // Array of characters, in order, the first item is located on the magnet on the character drum 6 | const char SplitFlapModule::chars[37] = {' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}; 7 | const int SplitFlapModule::numChars = sizeof(SplitFlapModule::chars) / sizeof(SplitFlapModule::chars[0]); 8 | int SplitFlapModule::charPositions[37]; //to be written in init function 9 | 10 | // Not used but useful to have 11 | // const int SplitFlapModule::motorPins[] = {P06, P05, P04, P03}; // List of pins to set as OUTPUT 12 | // const int SplitFlapModule::HallEffectPIN = P17; //Input pin for Hall effect sensor 13 | 14 | //Default Constructor 15 | SplitFlapModule::SplitFlapModule() 16 | : address(0), position(0), stepNumber(0),stepsPerRotation(0){ //default values 17 | magnetPosition = 710; //sort of guessing 18 | } 19 | 20 | // Constructor implementation 21 | SplitFlapModule::SplitFlapModule(uint8_t I2Caddress,int stepsPerFullRotation, int stepOffset,int magnetPos) 22 | : address(I2Caddress), position(0), stepNumber(0), stepsPerRotation(stepsPerFullRotation){ 23 | magnetPosition = magnetPos + stepOffset; 24 | } 25 | 26 | void SplitFlapModule::writeIO(uint16_t data) { 27 | Wire.beginTransmission(address); 28 | Wire.write(data & 0xFF); // Send lower byte 29 | Wire.write((data >> 8) & 0xFF); // Send upper byte 30 | 31 | byte error = Wire.endTransmission(); 32 | if (error == 0) { 33 | // Serial.println("Data written successfully."); 34 | } else { 35 | Serial.print("Error writing data, error code: "); 36 | Serial.println(error); // Error codes: 37 | // 0 = success 38 | // 1 = data too long to fit in transmit buffer 39 | // 2 = received NACK on transmit of address 40 | // 3 = received NACK on transmit of data 41 | // 4 = other error 42 | } 43 | } 44 | 45 | //Init Module, Setup IO Board 46 | void SplitFlapModule::init() { 47 | 48 | uint16_t initState = 0b1111111111100001; // Pin 15 (17) as INPUT, Pins 1-4 as OUTPUT 49 | writeIO(initState); 50 | 51 | stop(); //Write all motor coil inputs LOW 52 | 53 | int initDelay = 100; 54 | 55 | delay(initDelay); 56 | step(); 57 | delay(initDelay); 58 | step(); 59 | delay(initDelay); 60 | step(); 61 | delay(initDelay); 62 | step(); 63 | delay(initDelay); 64 | 65 | stop(); 66 | 67 | //Generate Character Position Array 68 | float stepSize = (float)stepsPerRotation / (float)numChars; 69 | float currentPosition = 0; 70 | for (int i = 0; i < numChars; i++) { 71 | charPositions[i] = (int)currentPosition; 72 | currentPosition += stepSize; 73 | } 74 | } 75 | 76 | int SplitFlapModule::getCharPosition(char inputChar) { 77 | inputChar = toupper(inputChar); 78 | for (int i = 0; i < numChars; i++) { 79 | if (chars[i] == inputChar) { 80 | return charPositions[i]; 81 | } 82 | } 83 | return 0; // Character not found, return blank 84 | } 85 | 86 | void SplitFlapModule::stop() { 87 | 88 | uint16_t stepState = 0b1111111111100001; 89 | writeIO(stepState); 90 | } 91 | 92 | void SplitFlapModule::start() { 93 | stepNumber = (stepNumber + 3) % 4; //effectively take one off stepNumber 94 | step(false); //write the "previous" step high again, in case turned off 95 | } 96 | 97 | void SplitFlapModule::step(bool updatePosition) { 98 | uint16_t stepState; 99 | switch(stepNumber){ 100 | case 0: 101 | stepState = 0b1111111111100111; 102 | writeIO(stepState); 103 | break; 104 | case 1: 105 | stepState = 0b1111111111110011; 106 | writeIO(stepState); 107 | break; 108 | case 2: 109 | stepState = 0b1111111111111001; 110 | writeIO(stepState); 111 | break; 112 | case 3: 113 | stepState = 0b1111111111101101; 114 | writeIO(stepState); 115 | break; 116 | } 117 | if (updatePosition){ 118 | position = (position + 1) % stepsPerRotation; 119 | stepNumber = (stepNumber + 1) % 4; 120 | } 121 | } 122 | 123 | 124 | bool SplitFlapModule::readHallEffectSensor(){ 125 | 126 | uint8_t requestBytes = 2; 127 | Wire.requestFrom(address, requestBytes); 128 | // Make sure the data is available 129 | if (Wire.available() == 2) { 130 | uint16_t inputState = 0; 131 | 132 | // Read the two bytes and combine them into a 16-bit value 133 | inputState = Wire.read(); // Read the lower byte 134 | inputState |= (Wire.read() << 8); // Read the upper byte and shift it left 135 | 136 | return (inputState & (1 << 15)) != 0; // If bit is 15, return HIGH, else LOW 137 | 138 | } 139 | return false; 140 | } 141 | 142 | 143 | 144 | 145 | -------------------------------------------------------------------------------- /src/SplitFlapDisplay/SplitFlapModule.h: -------------------------------------------------------------------------------- 1 | // SplitFlapModule.h (header file) 2 | 3 | #ifndef SplitFlapModule_h 4 | #define SplitFlapModule_h 5 | #include "Arduino.h" 6 | #include //I2C Communication Between Modules 7 | 8 | class SplitFlapModule { 9 | public: 10 | // Constructor declarationS 11 | SplitFlapModule(); //default constructor required to allocate memory for SplitFlapDisplay class 12 | SplitFlapModule(uint8_t I2Caddress,int stepsPerFullRotation, int stepOffset,int magnetPos); 13 | 14 | void init(); 15 | 16 | void step(bool updatePosition = true); //step motor 17 | void stop(); //write all motor input pins to low 18 | void start(); //re-energize coils to last position, not stepping motor 19 | 20 | int getMagnetPosition() const { return magnetPosition;} //position where magnet is detected 21 | int getCharPosition(char inputChar); //get integer position given single character 22 | int getPosition() const { return position; } //get integer position 23 | 24 | bool readHallEffectSensor(); //return the value read by the hall effect sensor 25 | void magnetDetected() { position = magnetPosition; } //update position to magnetposition, called when magnet is detected 26 | 27 | private: 28 | 29 | uint8_t address; //i2c address of module 30 | int position; //character drum position 31 | int stepNumber; //current position in the stepping order, to make motor move 32 | int stepsPerRotation; //number of steps per rotation 33 | 34 | void writeIO(uint16_t data); //write to motor in pins 35 | 36 | int magnetPosition; //altered by offsets 37 | static const int motorPins[]; // Array of motor pins 38 | static const int HallEffectPIN; //Hall Effect Sensor Pin (On PCF8575) 39 | 40 | static const char chars[37]; //all characters in order 41 | static int charPositions[37]; //will be generated based on the characters and the magnetPosition variable 42 | static const int numChars; //number of characters in module 43 | }; 44 | 45 | #endif 46 | // __ 47 | // (QUACK)>(o )___ 48 | // ( ._> / 49 | // `---' 50 | // Morgan Manly 51 | // 28/01/2025 52 | 53 | // //PINs on the PCF8575 Board 54 | // #define P00 0 55 | // #define P01 1 56 | // #define P02 2 57 | // #define P03 3 58 | // #define P04 4 59 | // #define P05 5 60 | // #define P06 6 61 | // #define P07 7 62 | // #define P10 8 63 | // #define P11 9 64 | // #define P12 10 65 | // #define P13 11 66 | // #define P14 12 67 | // #define P15 13 68 | // #define P16 14 69 | // #define P17 15 70 | -------------------------------------------------------------------------------- /src/SplitFlapDisplay/SplitFlapWebServer.cpp: -------------------------------------------------------------------------------- 1 | #include "SplitFlapWebServer.h" 2 | 3 | //Constructor 4 | SplitFlapWebServer::SplitFlapWebServer() : server(80), multiWordDelay(1000),attemptReconnect(false),multiWordCurrentIndex(0), numMultiWords(0) 5 | ,wifiCheckInterval(1000),connectionMode(0),mode(0),checkDateInterval(250),centering(1) { 6 | lastSwitchMultiTime = millis(); 7 | } 8 | 9 | void SplitFlapWebServer::init() { 10 | 11 | // NTP Server 12 | const char* ntpServer = "pool.ntp.org"; 13 | // UK timezone (with automatic daylight saving adjustment) 14 | const char* tzInfo = "GMT0BST,M3.5.0/1,M10.5.0"; // UK: GMT in winter, BST (UTC+1) in summer 15 | 16 | configTzTime(tzInfo, ntpServer); 17 | 18 | mode = readMode(); //read last mode from memory 19 | 20 | } 21 | 22 | //Totally didn't use AI to make these functions 23 | // Function to get current minute as a string 24 | String SplitFlapWebServer::getCurrentMinute() { 25 | struct tm timeinfo; 26 | if (!getLocalTime(&timeinfo)) { 27 | return ""; 28 | } 29 | char minuteStr[3]; // Max "59" + null terminator 30 | sprintf(minuteStr, "%02d", timeinfo.tm_min); // Format as two-digit string 31 | return String(minuteStr); 32 | } 33 | 34 | // Function to get current hour as a string 35 | String SplitFlapWebServer::getCurrentHour() { 36 | struct tm timeinfo; 37 | if (!getLocalTime(&timeinfo)) { 38 | return ""; 39 | } 40 | char hourStr[3]; // Max "59" + null terminator 41 | sprintf(hourStr, "%02d", timeinfo.tm_hour); // Format as two-digit string 42 | return String(hourStr); 43 | } 44 | 45 | // Function to get the first n characters of the day 46 | String SplitFlapWebServer::getDayPrefix(int n) { 47 | struct tm timeinfo; 48 | if (!getLocalTime(&timeinfo)) { 49 | return "Err"; // Return error if time not available 50 | } 51 | 52 | // Get full weekday name 53 | char fullDay[10]; // Buffer for full day name 54 | strftime(fullDay, sizeof(fullDay), "%A", &timeinfo); 55 | 56 | // Extract first n characters 57 | char dayPrefix[n + 1]; 58 | strncpy(dayPrefix, fullDay, n); 59 | dayPrefix[n] = '\0'; // Null-terminate the string 60 | 61 | return String(dayPrefix); 62 | } 63 | 64 | // Function to get the first n characters of the month 65 | String SplitFlapWebServer::getMonthPrefix(int n) { 66 | struct tm timeinfo; 67 | if (!getLocalTime(&timeinfo)) { 68 | return "Err"; // Return error if time not available 69 | } 70 | 71 | // Get full month name 72 | char fullMonth[10]; // Buffer for full month name 73 | strftime(fullMonth, sizeof(fullMonth), "%B", &timeinfo); 74 | 75 | // Extract first n characters 76 | char monthPrefix[n + 1]; 77 | strncpy(monthPrefix, fullMonth, n); 78 | monthPrefix[n] = '\0'; // Null-terminate the string 79 | 80 | return String(monthPrefix); 81 | } 82 | 83 | String SplitFlapWebServer::getCurrentDay() { 84 | struct tm timeinfo; 85 | if (!getLocalTime(&timeinfo)) { 86 | return "Err"; // Return error if time is not available 87 | } 88 | 89 | char dayStr[3]; // Buffer for the day number (max "31" + null terminator) 90 | sprintf(dayStr, "%02d", timeinfo.tm_mday); // Format as two-digit string 91 | 92 | return String(dayStr); 93 | } 94 | 95 | int SplitFlapWebServer::readMode(){ 96 | preferences.begin("display", true); // Open the preferences for Wi-Fi with write access 97 | int lastMode = preferences.getInt("mode", 0); // Retrieve SSID, default empty if not found 98 | preferences.end(); // Close preferences 99 | return lastMode; 100 | } 101 | 102 | void SplitFlapWebServer::setMode(int targetMode){ 103 | mode = targetMode; 104 | preferences.begin("display", false); // Open the preferences for Wi-Fi with write access 105 | preferences.putInt("mode", targetMode); // Save Mode 106 | preferences.end(); // Close preferences 107 | } 108 | 109 | int SplitFlapWebServer::getMode(){ 110 | return mode; 111 | } 112 | 113 | 114 | void SplitFlapWebServer::checkWiFi() { 115 | if (connectionMode == 1) { 116 | if (WiFi.status() != WL_CONNECTED) { 117 | Serial.println("Wi-Fi lost! Forcing reconnect..."); 118 | WiFi.disconnect(); 119 | WiFi.reconnect(); 120 | } 121 | } 122 | } 123 | 124 | bool SplitFlapWebServer::loadWiFiCredentials() { 125 | preferences.begin("wifi", true); // Open the preferences for Wi-Fi with read-only access 126 | String ssid = preferences.getString("ssid", ""); // Retrieve SSID, default empty if not found 127 | String password = preferences.getString("password", ""); // Retrieve password, default empty if not found 128 | preferences.end(); 129 | 130 | if (ssid != "" && password != "") { 131 | Serial.println("Wi-Fi credentials loaded successfully."); 132 | Serial.print("Connecting to Network: "); 133 | Serial.print(ssid); 134 | WiFi.begin(ssid.c_str(), password.c_str()); 135 | return true; // Return true if credentials exist 136 | } 137 | return false; // Return false if no credentials were found 138 | } 139 | 140 | bool SplitFlapWebServer::connectToWifi(){ 141 | 142 | if (loadWiFiCredentials()){ 143 | unsigned long startAttemptTime = millis(); 144 | const unsigned long timeout = 10000; //timeout 145 | unsigned long lastPrintTime = startAttemptTime; 146 | 147 | while (WiFi.status() != WL_CONNECTED) { 148 | if (millis() - startAttemptTime >= timeout) { 149 | Serial.println("_"); 150 | Serial.println("Wi-Fi connection failed! Timeout reached."); 151 | return false; // Return false if unable to connect in 30 seconds 152 | } 153 | if ((millis() - lastPrintTime) > 1000) { 154 | Serial.print("."); 155 | lastPrintTime = millis(); 156 | } 157 | yield(); 158 | } 159 | //connected succesfully 160 | connectionMode = 1; 161 | WiFi.softAPdisconnect(); // Turns off SoftAP mode only after connected to actual network 162 | WiFi.setAutoReconnect(true); 163 | WiFi.persistent(true); //Saves Wi-Fi settings to flash memory 164 | WiFi.setSleep(false); 165 | Serial.println("o"); 166 | Serial.println("Connected to Wi-Fi!"); 167 | Serial.println(WiFi.localIP()); // Print IP address 168 | return true; 169 | } 170 | } 171 | 172 | void SplitFlapWebServer::startAccessPoint() { 173 | connectionMode = 0; 174 | const char* apSSID = "Split Flap Display"; 175 | WiFi.softAP(apSSID); 176 | Serial.println("AP Mode Started!"); 177 | Serial.println("Connect to: " + String(apSSID)); 178 | Serial.println("AP IP Address: " + WiFi.softAPIP().toString()); 179 | } 180 | 181 | void SplitFlapWebServer::startWebServer(){ 182 | 183 | // Initialize mDNS 184 | if (!MDNS.begin("splitflap")) { // Set the hostname to "esp32.local" 185 | Serial.println("Error setting up MDNS responder!"); 186 | while(1) { 187 | delay(1000); 188 | } 189 | } 190 | Serial.println("mDNS responder started"); 191 | 192 | if(!LittleFS.begin()){ 193 | Serial.println("An Error has occurred while mounting LittleFS"); 194 | return; 195 | } 196 | 197 | // Route to load style.css file 198 | server.on("/style.css", HTTP_GET, [](AsyncWebServerRequest *request){ 199 | request->send(LittleFS, "/style.css", "text/css"); 200 | }); 201 | 202 | server.on("/settings-script.js", HTTP_GET, [](AsyncWebServerRequest *request){ 203 | request->send(LittleFS, "/settings-script.js", "application/javascript"); 204 | }); 205 | 206 | server.on("/custom-text-script.js", HTTP_GET, [](AsyncWebServerRequest *request){ 207 | request->send(LittleFS, "/custom-text-script.js", "application/javascript"); 208 | }); 209 | 210 | server.on("/mode-script.js", HTTP_GET, [](AsyncWebServerRequest *request){ 211 | request->send(LittleFS, "/mode-script.js", "application/javascript"); 212 | }); 213 | 214 | // Route for root / web page 215 | server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){ 216 | request->send(LittleFS, "/index.html"); 217 | }); 218 | 219 | server.on("/custom-text", HTTP_GET, [](AsyncWebServerRequest* request) { 220 | request->send(LittleFS, "/custom-text.html"); 221 | }); 222 | 223 | server.on("/mode", HTTP_GET, [](AsyncWebServerRequest* request) { 224 | request->send(LittleFS, "/mode.html"); 225 | }); 226 | 227 | server.on("/settings", HTTP_GET, [](AsyncWebServerRequest* request) { 228 | request->send(LittleFS, "/settings.html"); 229 | }); 230 | 231 | // Handle the form POST request 232 | server.on("/submit", HTTP_POST, [this](AsyncWebServerRequest *request){ 233 | 234 | if (request->hasParam("inputType", true)) { 235 | String inputType = decodeURIComponent(request->getParam("inputType", true)->value()); 236 | 237 | centering = (request->getParam("centering", true)->value().toInt()); 238 | // Serial.println(centering); 239 | 240 | if (inputType == "multiple" && request->hasParam("words", true)) { 241 | String words = decodeURIComponent(request->getParam("words", true)->value()); 242 | Serial.println("Multi Words: " + words); 243 | 244 | this->setMultiInputString(words); 245 | //count how many words 246 | int wordCount = 1; 247 | for (int i = 0; i < words.length(); i++) { 248 | if (words.charAt(i) == ',') { 249 | wordCount++; 250 | } 251 | } 252 | this->numMultiWords = wordCount; 253 | 254 | if (request->hasParam("delay", true)) { 255 | float delay = (request->getParam("delay", true)->value().toFloat()); 256 | // Serial.println("Delay: " + String(delay)); 257 | this->setMultiDelay(int(delay*1000)); 258 | } 259 | this->setLastSwitchMultiTime(0); //force first word to appear instantly, rather than delay 260 | this->setMode(1);//change mode last once all variables updated 261 | } 262 | 263 | else if (inputType == "single" && request->hasParam("word", true)) { 264 | String word = decodeURIComponent(request->getParam("word", true)->value()); 265 | Serial.println("Single word: " + word); 266 | this->setInputString(word); 267 | this->setMode(0); 268 | } 269 | } 270 | 271 | if (request->hasParam("mode", true)){ //mode selection page 272 | String selectedMode = decodeURIComponent(request->getParam("mode", true)->value()); 273 | // Serial.println(selectedMode); 274 | if (selectedMode == "Date"){ 275 | Serial.println("Date Mode"); 276 | this->setMode(2); 277 | } 278 | else if (selectedMode == "Time"){ 279 | Serial.println("Time Mode"); 280 | this->setMode(3); 281 | } 282 | else if (selectedMode == "Count"){ 283 | Serial.println("Count Mode"); 284 | this->setMode(4); 285 | } 286 | else if (selectedMode == "Random"){ 287 | Serial.println("Random Mode"); 288 | this->setMode(5); 289 | } 290 | } 291 | 292 | if (request->hasParam("ssid", true) && request->hasParam("password", true)) { //wifi settings page 293 | String ssid = decodeURIComponent(request->getParam("ssid", true)->value()); 294 | String password = decodeURIComponent(request->getParam("password", true)->value()); 295 | preferences.begin("wifi", false); // Open the preferences for Wi-Fi with write access 296 | if (ssid!=""){ //dont save empty ssid 297 | preferences.putString("ssid", ssid); // Save SSID 298 | } 299 | preferences.putString("password", password); // Save Password 300 | preferences.end(); // Close preferences 301 | Serial.println("Received SSID: " + ssid); 302 | Serial.println("Received Password: " + password); 303 | 304 | this->attemptReconnect = true; 305 | } 306 | 307 | request->send(200, "application/json", "{\"message\":\"Text updated successfully\"}"); // Send JSON response 308 | }); 309 | 310 | // Start the server 311 | server.begin(); 312 | 313 | } 314 | 315 | 316 | String SplitFlapWebServer::decodeURIComponent(String encodedString) { 317 | String decodedString = encodedString; 318 | // Replace common URL-encoded characters with their actual symbols 319 | decodedString.replace("%20", " "); // space 320 | decodedString.replace("%21", "!"); // exclamation mark 321 | decodedString.replace("%22", "\""); // double quote 322 | decodedString.replace("%23", "#"); // hash 323 | decodedString.replace("%24", "$"); // dollar sign 324 | decodedString.replace("%25", "%"); // percent 325 | decodedString.replace("%26", "&"); // ampersand 326 | decodedString.replace("%27", "'"); // single quote 327 | decodedString.replace("%28", "("); // left parenthesis 328 | decodedString.replace("%29", ")"); // right parenthesis 329 | decodedString.replace("%2A", "*"); // asterisk 330 | decodedString.replace("%2B", "+"); // plus 331 | decodedString.replace("%2C", ","); // comma 332 | decodedString.replace("%2D", "-"); // hyphen 333 | decodedString.replace("%2E", "."); // period 334 | decodedString.replace("%2F", "/"); // forward slash 335 | decodedString.replace("%3A", ":"); // colon 336 | decodedString.replace("%3B", ";"); // semicolon 337 | decodedString.replace("%3C", "<"); // less than 338 | decodedString.replace("%3D", "="); // equal sign 339 | decodedString.replace("%3E", ">"); // greater than 340 | decodedString.replace("%3F", "?"); // question mark 341 | decodedString.replace("%40", "@"); // at symbol 342 | decodedString.replace("%5B", "["); // left bracket 343 | decodedString.replace("%5C", "\\"); // backslash 344 | decodedString.replace("%5D", "]"); // right bracket 345 | decodedString.replace("%5E", "^"); // caret 346 | decodedString.replace("%5F", "_"); // underscore 347 | decodedString.replace("%60", "`"); // grave accent 348 | decodedString.replace("%7B", "{"); // left brace 349 | decodedString.replace("%7C", "|"); // vertical bar 350 | decodedString.replace("%7D", "}"); // right brace 351 | decodedString.replace("%7E", "~"); // tilde 352 | 353 | // Handle percent-encoded values for characters beyond basic ASCII (e.g., extended Unicode) 354 | decodedString.replace("%", ""); 355 | 356 | return decodedString; 357 | } -------------------------------------------------------------------------------- /src/SplitFlapDisplay/SplitFlapWebServer.h: -------------------------------------------------------------------------------- 1 | // SplitFlapWebServer.h (header file) 2 | 3 | #ifndef SplitFlapWebServer_h 4 | #define SplitFlapWebServer_h 5 | #include "Arduino.h" 6 | #include 7 | #include //by ESP32Async, Requires AsyncTCP by ESP32Async 8 | #include 9 | #include "LittleFS.h" // also using a plugin to upload files https://github.com/earlephilhower/arduino-littlefs-upload 10 | #include //for ssid, pass, mode 11 | #include "time.h" //for network time protocol 12 | 13 | class SplitFlapWebServer { 14 | public: 15 | SplitFlapWebServer(); 16 | void init(); 17 | 18 | //Wifi Connectivity 19 | bool loadWiFiCredentials(); 20 | bool connectToWifi(); 21 | bool getAttemptReconnect() const { return attemptReconnect; } 22 | void setAttemptReconnect(bool input){attemptReconnect = input;} 23 | void startWebServer(); 24 | void startAccessPoint(); 25 | void checkWiFi(); 26 | unsigned long getLastCheckWifiTime() { return lastCheckWifiTime;} 27 | void setLastCheckWifiTime(unsigned long input) { lastCheckWifiTime=input; } 28 | int getWifiCheckInterval() { return wifiCheckInterval; } 29 | 30 | //Mode 31 | int getMode(); 32 | 33 | //Mode 0 - Single String 34 | String getInputString() const { return inputString; } 35 | String getWrittenString() const { return writtenString; } 36 | void setWrittenString(String input) {writtenString=input; } 37 | 38 | //Mode 1, Multi Input 39 | String getMultiInputString() const { return multiInputString; } 40 | int getMultiWordDelay() const {return multiWordDelay; } 41 | unsigned long getLastSwitchMultiTime() { return lastSwitchMultiTime;} 42 | void setLastSwitchMultiTime(unsigned long input) { lastSwitchMultiTime=input; } 43 | int getMultiWordCurrentIndex() {return multiWordCurrentIndex;} 44 | void setMultiWordCurrentIndex(int input) { multiWordCurrentIndex = input; } 45 | int getNumMultiWords() const {return numMultiWords; } 46 | 47 | //Mode 2, Date 48 | // Function to get current minute as a string 49 | String getCurrentMinute(); 50 | String getCurrentHour(); 51 | String getDayPrefix(int n); 52 | String getMonthPrefix(int n); 53 | String getCurrentDay(); 54 | unsigned long getLastCheckDateTime() { return lastCheckDateTime;} 55 | void setLastCheckDateTime(unsigned long input) { lastCheckDateTime=input; } 56 | int getDateCheckInterval() { return checkDateInterval; } 57 | 58 | int getCentering() { return centering; } 59 | private: 60 | 61 | String decodeURIComponent(String encodedString); 62 | void setInputString(String input) {inputString=input; } 63 | void setMultiInputString(String input) {multiInputString=input; } 64 | 65 | void setMode(int targetMode); 66 | int readMode(); 67 | void setMultiDelay(int input) {multiWordDelay = input;} 68 | 69 | unsigned long lastCheckDateTime; 70 | int checkDateInterval; 71 | 72 | int connectionMode; //0 is AP mode, 1 is Internet Mode 73 | int centering; //whether to center text from custom imput 74 | int mode; //current display mode 75 | 76 | int numMultiWords; 77 | unsigned long lastSwitchMultiTime; 78 | int multiWordDelay; 79 | int multiWordCurrentIndex; 80 | String multiInputString; // latest multi input from user 81 | 82 | String inputString; // latest single input from user 83 | String writtenString; //string for whatever is currently written to the display 84 | 85 | bool attemptReconnect; 86 | unsigned long lastCheckWifiTime; 87 | int wifiCheckInterval; 88 | AsyncWebServer server; // Declare server as a class member 89 | Preferences preferences; // For storing ssid, password, mode, written string 90 | 91 | }; 92 | #endif 93 | // __ 94 | // (QUACK)>(o )___ 95 | // ( ._> / 96 | // `---' 97 | // Morgan Manly 98 | // 07/02/2025 -------------------------------------------------------------------------------- /src/SplitFlapDisplay/data/custom-text-script.js: -------------------------------------------------------------------------------- 1 | document.addEventListener("DOMContentLoaded", function () { 2 | const inputField = document.getElementById("custom-text"); 3 | const button = document.getElementById("sendBtn"); 4 | const modeToggle = document.getElementById("word-toggle"); 5 | const centreToggle = document.getElementById("centre-toggle"); 6 | const delayField = document.getElementById("delay") 7 | modeToggle.checked=false; 8 | centreToggle.checked=true; 9 | 10 | function sendData() { 11 | var originalContent = button.textContent; 12 | 13 | if ((delayField.value.trim() === "") && (modeToggle.checked)) { 14 | alert("Delay cannot be empty!"); 15 | button.textContent = originalContent; 16 | ssidField.value = ""; 17 | passwordField.value = ""; 18 | button.disabled = false; 19 | return; // Prevent further execution 20 | } 21 | 22 | button.disabled = true; 23 | button.textContent = "Updating..."; 24 | var centreChecked = centreToggle.checked? 1 : 0; 25 | 26 | if (modeToggle.checked) { 27 | // If the modeToggle is checked, send multiple words data 28 | body = "inputType=multiple&words=" + encodeURIComponent(words.join(",")) + "&delay=" + encodeURIComponent(delayField.value)+"¢ering="+centreChecked; 29 | } else { 30 | // If the modeToggle is unchecked, send single word data 31 | body = "inputType=single&word=" + encodeURIComponent(inputField.value)+"¢ering="+centreChecked; 32 | } 33 | 34 | fetch("/submit", { 35 | method: "POST", 36 | headers: { "Content-Type": "application/x-www-form-urlencoded" }, 37 | body: body, 38 | }) 39 | .then(response => { 40 | if (!response.ok) { 41 | throw new Error("Failed to update text"); 42 | } 43 | return response.json(); 44 | }) 45 | .then(data => { 46 | inputField.value = ""; 47 | // alert("Text updated: " + inputText); 48 | }) 49 | .catch(error => { 50 | alert(error.message); 51 | }) 52 | .finally(() => { 53 | button.disabled = false; 54 | button.textContent = originalContent; 55 | }); 56 | } 57 | 58 | // Submit when Enter key is pressed 59 | inputField.addEventListener("keypress", function (event) { 60 | if (event.key === "Enter") { 61 | event.preventDefault(); // Prevent form submission (if inside a form) 62 | sendData(); 63 | } 64 | }); 65 | 66 | // Attach click event to button 67 | button.addEventListener("click", sendData); 68 | }); -------------------------------------------------------------------------------- /src/SplitFlapDisplay/data/custom-text.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Split Flap Config 7 | 8 | 9 | 122 | 123 | 124 |
125 |

Split Flap Config

126 | 127 |
128 | 129 | 133 |
134 | 135 |
136 | 137 | 138 |
139 | 140 |
141 | 142 | 146 |
147 | 148 | 162 | 163 | 164 | 165 | 166 |
167 | 168 | 216 | 217 | 218 | -------------------------------------------------------------------------------- /src/SplitFlapDisplay/data/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Split Flap Config 8 | 9 | 10 |
11 |

Split Flap Config

12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | -------------------------------------------------------------------------------- /src/SplitFlapDisplay/data/mode-script.js: -------------------------------------------------------------------------------- 1 | document.addEventListener("DOMContentLoaded", function () { 2 | const inputField = document.getElementById("modeDropDown"); 3 | const button = document.getElementById("sendBtn"); 4 | 5 | function sendData() { 6 | var originalContent = button.textContent; 7 | 8 | button.disabled = true; 9 | button.textContent = "Updating..."; 10 | 11 | const body = new URLSearchParams(); 12 | body.append("mode", encodeURIComponent(inputField.value)); 13 | 14 | fetch("/submit", { 15 | method: "POST", 16 | headers: { "Content-Type": "application/x-www-form-urlencoded" }, 17 | body: body, 18 | }) 19 | .then(response => { 20 | if (!response.ok) { 21 | throw new Error("Failed to update text"); 22 | } 23 | return response.json(); 24 | }) 25 | .then(data => { 26 | // inputField.value = ""; 27 | // alert("Text updated: " + inputText); 28 | }) 29 | .catch(error => { 30 | alert(error.message); 31 | }) 32 | .finally(() => { 33 | button.disabled = false; 34 | button.textContent = originalContent; 35 | }); 36 | } 37 | 38 | // // Submit when Enter key is pressed 39 | // inputField.addEventListener("keypress", function (event) { 40 | // if (event.key === "Enter") { 41 | // event.preventDefault(); // Prevent form submission (if inside a form) 42 | // sendData(); 43 | // } 44 | // }); 45 | 46 | // Attach click event to button 47 | button.addEventListener("click", sendData); 48 | }); -------------------------------------------------------------------------------- /src/SplitFlapDisplay/data/mode.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Split Flap Config 9 | 10 | 11 |
12 |

Split Flap Config

13 | 14 | 15 | 21 | 22 | 23 | 24 |
25 | 26 | -------------------------------------------------------------------------------- /src/SplitFlapDisplay/data/settings-script.js: -------------------------------------------------------------------------------- 1 | document.addEventListener("DOMContentLoaded", function () { 2 | const ssidField = document.getElementById("ssid"); 3 | const passwordField = document.getElementById("password"); 4 | const button = document.getElementById("saveBtn"); 5 | 6 | function sendData() { 7 | var originalContent = button.textContent; 8 | // Get values from input fields 9 | const ssid = ssidField.value; 10 | const password = passwordField.value; 11 | 12 | if (ssid.trim() === "") { 13 | alert("SSID cannot be empty!"); 14 | button.textContent = originalContent; 15 | ssidField.value = ""; 16 | passwordField.value = ""; 17 | button.disabled = false; 18 | return; // Prevent further execution 19 | } 20 | 21 | button.disabled = true; 22 | button.textContent = "Connecting..."; 23 | 24 | // Prepare the data to be sent 25 | const data = new URLSearchParams(); 26 | data.append("ssid", encodeURIComponent(ssid)); 27 | data.append("password", encodeURIComponent(password)); 28 | 29 | // Send the data via POST request 30 | fetch("/submit", { 31 | method: "POST", 32 | headers: { "Content-Type": "application/x-www-form-urlencoded" }, 33 | body: data.toString(), 34 | }) 35 | .then(response => { 36 | if (!response.ok) { 37 | throw new Error("Failed to save settings"); 38 | } 39 | return response.json(); 40 | }) 41 | .then(data => { 42 | // ssidField.value = ""; 43 | passwordField.value = ""; 44 | // alert("Settings saved successfully!"); 45 | 46 | }) 47 | .catch(error => { 48 | alert(error.message); 49 | }) 50 | .finally(() => { 51 | passwordField.value = ""; 52 | // Change button text to "Settings Saved" 53 | button.textContent = "Saving.."; 54 | // After 2 seconds, change button text back to "Save" 55 | setTimeout(() => { 56 | button.disabled = false; 57 | button.textContent = originalContent; 58 | }, 500); //ms 59 | // alert("Settings Saved, Connect Back To Your Network and Reload Site"); 60 | }); 61 | } 62 | 63 | // Submit when Enter key is pressed 64 | ssidField.addEventListener("keypress", function (event) { 65 | if (event.key === "Enter") { 66 | event.preventDefault(); // Prevent form submission (if inside a form) 67 | sendData(); 68 | } 69 | }); 70 | 71 | passwordField.addEventListener("keypress", function (event) { 72 | if (event.key === "Enter") { 73 | event.preventDefault(); // Prevent form submission (if inside a form) 74 | sendData(); 75 | } 76 | }); 77 | 78 | // Attach click event to button 79 | button.addEventListener("click", sendData); 80 | }); -------------------------------------------------------------------------------- /src/SplitFlapDisplay/data/settings.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Split Flap Settings 9 | 10 | 11 |
12 |

Split Flap Settings

13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | -------------------------------------------------------------------------------- /src/SplitFlapDisplay/data/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | margin: 0; 4 | padding: 0; 5 | } 6 | 7 | body { 8 | font-family: Arial, sans-serif; 9 | display: flex; 10 | flex-direction: column; 11 | align-items: center; 12 | justify-content: center; 13 | min-height: 100vh; 14 | background-color: #f4f4f4; 15 | } 16 | 17 | .container { 18 | align-items: center; 19 | justify-content: center; 20 | display: flex; 21 | flex-direction: column; 22 | background: white; 23 | padding: 20px; 24 | border-radius: 10px; 25 | box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); 26 | max-width: 400px; 27 | width: 90%; 28 | text-align: center; 29 | } 30 | 31 | h1 { 32 | font-size: 2em; 33 | margin-bottom: 30px; 34 | } 35 | 36 | button { 37 | display: block; 38 | width: 80%; 39 | padding: 20px; 40 | margin: 15px 0; 41 | font-size: 1.5em; 42 | text-align: center; 43 | background-color: #007BFF; 44 | color: white; 45 | border: none; 46 | border-radius: 8px; 47 | cursor: pointer; 48 | transition: background-color 0.3s; 49 | } 50 | 51 | .submitButton { 52 | margin-top: 15px; 53 | width: 100%; 54 | padding: 12px; 55 | font-size: 1em; 56 | border: 1px solid #ccc; 57 | border-radius: 5px; 58 | } 59 | 60 | label { 61 | display: block; 62 | margin-top: 15px; 63 | font-size: 1.1em; 64 | text-align: left; 65 | } 66 | 67 | input,select{ 68 | width: 100%; 69 | padding: 12px; 70 | margin-top: 5px; 71 | font-size: 1em; 72 | border: 1px solid #ccc; 73 | border-radius: 5px; 74 | text-align: center; 75 | } 76 | 77 | button:hover { 78 | background-color: #0056b3; 79 | } 80 | 81 | .footer { 82 | font-size: 0.8em; 83 | color: #777; 84 | margin-top: 30px; 85 | } 86 | -------------------------------------------------------------------------------- /step/S_28BYJ-48_Stepper - Shim.step: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | /* Generated by software containing ST-Developer 4 | * from STEP Tools, Inc. (www.steptools.com) 5 | */ 6 | /* OPTION: using custom renumber hook */ 7 | 8 | FILE_DESCRIPTION( 9 | /* description */ ('STEP AP242', 10 | 'CAx-IF Rec.Pracs.---Representation and Presentation of Product Manufa 11 | cturing Information (PMI)---4.0---2014-10-13', 12 | 'CAx-IF Rec.Pracs.---3D Tessellated Geometry---0.4---2014-09-14','2;1'), 13 | 14 | /* implementation_level */ '2;1'); 15 | 16 | FILE_NAME( 17 | /* name */ 'S_28BYJ-48_Stepper - Shim', 18 | /* time_stamp */ '2025-02-16T18:00:25Z', 19 | /* author */ (''), 20 | /* organization */ (''), 21 | /* preprocessor_version */ 'ST-DEVELOPER v20', 22 | /* originating_system */ 'ONSHAPE BY PTC INC, 1.193', 23 | /* authorisation */ ' '); 24 | 25 | FILE_SCHEMA (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF { 1 0 10303 442 1 1 4 }')); 26 | ENDSEC; 27 | 28 | DATA; 29 | #10=SHAPE_REPRESENTATION_RELATIONSHIP('','',#67,#11); 30 | #11=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#65),#109); 31 | #12=PLANE('',#75); 32 | #13=PLANE('',#76); 33 | #14=ORIENTED_EDGE('',*,*,#22,.F.); 34 | #15=ORIENTED_EDGE('',*,*,#23,.T.); 35 | #16=ORIENTED_EDGE('',*,*,#24,.T.); 36 | #17=ORIENTED_EDGE('',*,*,#25,.F.); 37 | #18=ORIENTED_EDGE('',*,*,#22,.T.); 38 | #19=ORIENTED_EDGE('',*,*,#24,.F.); 39 | #20=ORIENTED_EDGE('',*,*,#23,.F.); 40 | #21=ORIENTED_EDGE('',*,*,#25,.T.); 41 | #22=EDGE_CURVE('',#26,#26,#30,.T.); 42 | #23=EDGE_CURVE('',#27,#27,#31,.T.); 43 | #24=EDGE_CURVE('',#28,#28,#32,.T.); 44 | #25=EDGE_CURVE('',#29,#29,#33,.T.); 45 | #26=VERTEX_POINT('',#98); 46 | #27=VERTEX_POINT('',#100); 47 | #28=VERTEX_POINT('',#103); 48 | #29=VERTEX_POINT('',#105); 49 | #30=CIRCLE('',#70,0.005); 50 | #31=CIRCLE('',#71,0.005); 51 | #32=CIRCLE('',#73,0.0023); 52 | #33=CIRCLE('',#74,0.0023); 53 | #34=EDGE_LOOP('',(#14)); 54 | #35=EDGE_LOOP('',(#15)); 55 | #36=EDGE_LOOP('',(#16)); 56 | #37=EDGE_LOOP('',(#17)); 57 | #38=EDGE_LOOP('',(#18)); 58 | #39=EDGE_LOOP('',(#19)); 59 | #40=EDGE_LOOP('',(#20)); 60 | #41=EDGE_LOOP('',(#21)); 61 | #42=FACE_BOUND('',#34,.T.); 62 | #43=FACE_BOUND('',#35,.T.); 63 | #44=FACE_BOUND('',#36,.T.); 64 | #45=FACE_BOUND('',#37,.T.); 65 | #46=FACE_BOUND('',#38,.T.); 66 | #47=FACE_BOUND('',#39,.T.); 67 | #48=FACE_BOUND('',#40,.T.); 68 | #49=FACE_BOUND('',#41,.T.); 69 | #50=CYLINDRICAL_SURFACE('',#69,0.005); 70 | #51=CYLINDRICAL_SURFACE('',#72,0.0023); 71 | #52=ADVANCED_FACE('',(#42,#43),#50,.T.); 72 | #53=ADVANCED_FACE('',(#44,#45),#51,.F.); 73 | #54=ADVANCED_FACE('',(#46,#47),#12,.T.); 74 | #55=ADVANCED_FACE('',(#48,#49),#13,.F.); 75 | #56=CLOSED_SHELL('',(#52,#53,#54,#55)); 76 | #57=STYLED_ITEM('',(#58),#65); 77 | #58=PRESENTATION_STYLE_ASSIGNMENT((#59)); 78 | #59=SURFACE_STYLE_USAGE(.BOTH.,#60); 79 | #60=SURFACE_SIDE_STYLE('',(#61)); 80 | #61=SURFACE_STYLE_FILL_AREA(#62); 81 | #62=FILL_AREA_STYLE('',(#63)); 82 | #63=FILL_AREA_STYLE_COLOUR('',#64); 83 | #64=COLOUR_RGB('',0.301960784313725,0.301960784313725,0.301960784313725); 84 | #65=MANIFOLD_SOLID_BREP('Shim',#56); 85 | #66=SHAPE_DEFINITION_REPRESENTATION(#114,#67); 86 | #67=SHAPE_REPRESENTATION('Shim',(#68),#109); 87 | #68=AXIS2_PLACEMENT_3D('',#95,#77,#78); 88 | #69=AXIS2_PLACEMENT_3D('',#96,#79,#80); 89 | #70=AXIS2_PLACEMENT_3D('',#97,#81,#82); 90 | #71=AXIS2_PLACEMENT_3D('',#99,#83,#84); 91 | #72=AXIS2_PLACEMENT_3D('',#101,#85,#86); 92 | #73=AXIS2_PLACEMENT_3D('',#102,#87,#88); 93 | #74=AXIS2_PLACEMENT_3D('',#104,#89,#90); 94 | #75=AXIS2_PLACEMENT_3D('',#106,#91,#92); 95 | #76=AXIS2_PLACEMENT_3D('',#107,#93,#94); 96 | #77=DIRECTION('',(0.,0.,1.)); 97 | #78=DIRECTION('',(1.,0.,0.)); 98 | #79=DIRECTION('',(0.,0.,1.)); 99 | #80=DIRECTION('',(1.,0.,0.)); 100 | #81=DIRECTION('',(0.,0.,-1.)); 101 | #82=DIRECTION('',(-1.,0.,0.)); 102 | #83=DIRECTION('',(0.,0.,-1.)); 103 | #84=DIRECTION('',(-1.,0.,0.)); 104 | #85=DIRECTION('',(0.,0.,1.)); 105 | #86=DIRECTION('',(1.,0.,0.)); 106 | #87=DIRECTION('',(0.,0.,-1.)); 107 | #88=DIRECTION('',(-1.,0.,0.)); 108 | #89=DIRECTION('',(0.,0.,-1.)); 109 | #90=DIRECTION('',(-1.,0.,0.)); 110 | #91=DIRECTION('',(0.,0.,-1.)); 111 | #92=DIRECTION('',(1.,0.,0.)); 112 | #93=DIRECTION('',(0.,0.,-1.)); 113 | #94=DIRECTION('',(1.,0.,0.)); 114 | #95=CARTESIAN_POINT('',(0.,0.,0.)); 115 | #96=CARTESIAN_POINT('',(0.,-0.000500000000000007,-0.0156)); 116 | #97=CARTESIAN_POINT('',(0.,-0.000500000000000007,-0.0156)); 117 | #98=CARTESIAN_POINT('',(-0.005,-0.000500000000000007,-0.0156)); 118 | #99=CARTESIAN_POINT('',(0.,-0.000500000000000007,-0.0151)); 119 | #100=CARTESIAN_POINT('',(-0.005,-0.000500000000000007,-0.0151)); 120 | #101=CARTESIAN_POINT('',(0.,-0.000500000000000007,-0.0156)); 121 | #102=CARTESIAN_POINT('',(0.,-0.000500000000000007,-0.0156)); 122 | #103=CARTESIAN_POINT('',(-0.0023,-0.000500000000000007,-0.0156)); 123 | #104=CARTESIAN_POINT('',(0.,-0.000500000000000007,-0.0151)); 124 | #105=CARTESIAN_POINT('',(-0.0023,-0.000500000000000007,-0.0151)); 125 | #106=CARTESIAN_POINT('',(0.,-0.000500000000000007,-0.0156)); 126 | #107=CARTESIAN_POINT('',(0.,-0.000500000000000007,-0.0151)); 127 | #108=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#57),#109); 128 | #109=( 129 | GEOMETRIC_REPRESENTATION_CONTEXT(3) 130 | GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#110)) 131 | GLOBAL_UNIT_ASSIGNED_CONTEXT((#113,#112,#111)) 132 | REPRESENTATION_CONTEXT('Shim','TOP_LEVEL_ASSEMBLY_PART') 133 | ); 134 | #110=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-8),#113, 135 | 'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); 136 | #111=( 137 | NAMED_UNIT(*) 138 | SI_UNIT($,.STERADIAN.) 139 | SOLID_ANGLE_UNIT() 140 | ); 141 | #112=( 142 | NAMED_UNIT(*) 143 | PLANE_ANGLE_UNIT() 144 | SI_UNIT($,.RADIAN.) 145 | ); 146 | #113=( 147 | LENGTH_UNIT() 148 | NAMED_UNIT(*) 149 | SI_UNIT($,.METRE.) 150 | ); 151 | #114=PRODUCT_DEFINITION_SHAPE('','',#115); 152 | #115=PRODUCT_DEFINITION('','',#117,#116); 153 | #116=PRODUCT_DEFINITION_CONTEXT('',#123,'design'); 154 | #117=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#119, 155 | .NOT_KNOWN.); 156 | #118=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#119)); 157 | #119=PRODUCT('Shim','Shim','Shim',(#121)); 158 | #120=PRODUCT_CATEGORY('',''); 159 | #121=PRODUCT_CONTEXT('',#123,'mechanical'); 160 | #122=APPLICATION_PROTOCOL_DEFINITION('international standard', 161 | 'ap242_managed_model_based_3d_engineering',2011,#123); 162 | #123=APPLICATION_CONTEXT('managed model based 3d engineering'); 163 | ENDSEC; 164 | END-ISO-10303-21; 165 | -------------------------------------------------------------------------------- /step/S_28BYJ-48_Stepper.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/step/S_28BYJ-48_Stepper.zip -------------------------------------------------------------------------------- /step/Split Flap Module - Flap.step: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | /* Generated by software containing ST-Developer 4 | * from STEP Tools, Inc. (www.steptools.com) 5 | */ 6 | /* OPTION: using custom renumber hook */ 7 | 8 | FILE_DESCRIPTION( 9 | /* description */ ('STEP AP242', 10 | 'CAx-IF Rec.Pracs.---Representation and Presentation of Product Manufa 11 | cturing Information (PMI)---4.0---2014-10-13', 12 | 'CAx-IF Rec.Pracs.---3D Tessellated Geometry---0.4---2014-09-14','2;1'), 13 | 14 | /* implementation_level */ '2;1'); 15 | 16 | FILE_NAME( 17 | /* name */ 'Split Flap Module - Flap', 18 | /* time_stamp */ '2025-02-16T18:00:15Z', 19 | /* author */ (''), 20 | /* organization */ (''), 21 | /* preprocessor_version */ 'ST-DEVELOPER v20', 22 | /* originating_system */ 'ONSHAPE BY PTC INC, 1.193', 23 | /* authorisation */ ' '); 24 | 25 | FILE_SCHEMA (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF { 1 0 10303 442 1 1 4 }')); 26 | ENDSEC; 27 | 28 | DATA; 29 | #10=SHAPE_REPRESENTATION_RELATIONSHIP('','',#519,#11); 30 | #11=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#517),#853); 31 | #12=CYLINDRICAL_SURFACE('',#555,0.0005); 32 | #13=CYLINDRICAL_SURFACE('',#556,0.0005); 33 | #14=CYLINDRICAL_SURFACE('',#557,0.0005); 34 | #15=CYLINDRICAL_SURFACE('',#558,0.0005); 35 | #16=CYLINDRICAL_SURFACE('',#559,0.0005); 36 | #17=CYLINDRICAL_SURFACE('',#560,0.0005); 37 | #18=CYLINDRICAL_SURFACE('',#561,0.0005); 38 | #19=CYLINDRICAL_SURFACE('',#562,0.0005); 39 | #20=CIRCLE('',#538,0.0005); 40 | #21=CIRCLE('',#539,0.0005); 41 | #22=CIRCLE('',#540,0.0005); 42 | #23=CIRCLE('',#541,0.0005); 43 | #24=CIRCLE('',#542,0.0005); 44 | #25=CIRCLE('',#543,0.0005); 45 | #26=CIRCLE('',#544,0.0005); 46 | #27=CIRCLE('',#545,0.0005); 47 | #28=CIRCLE('',#547,0.0005); 48 | #29=CIRCLE('',#548,0.0005); 49 | #30=CIRCLE('',#549,0.0005); 50 | #31=CIRCLE('',#550,0.0005); 51 | #32=CIRCLE('',#551,0.0005); 52 | #33=CIRCLE('',#552,0.0005); 53 | #34=CIRCLE('',#553,0.0005); 54 | #35=CIRCLE('',#554,0.0005); 55 | #36=ORIENTED_EDGE('',*,*,#180,.T.); 56 | #37=ORIENTED_EDGE('',*,*,#181,.T.); 57 | #38=ORIENTED_EDGE('',*,*,#182,.F.); 58 | #39=ORIENTED_EDGE('',*,*,#183,.T.); 59 | #40=ORIENTED_EDGE('',*,*,#184,.T.); 60 | #41=ORIENTED_EDGE('',*,*,#185,.T.); 61 | #42=ORIENTED_EDGE('',*,*,#186,.F.); 62 | #43=ORIENTED_EDGE('',*,*,#187,.T.); 63 | #44=ORIENTED_EDGE('',*,*,#188,.T.); 64 | #45=ORIENTED_EDGE('',*,*,#189,.T.); 65 | #46=ORIENTED_EDGE('',*,*,#190,.F.); 66 | #47=ORIENTED_EDGE('',*,*,#191,.T.); 67 | #48=ORIENTED_EDGE('',*,*,#192,.T.); 68 | #49=ORIENTED_EDGE('',*,*,#193,.T.); 69 | #50=ORIENTED_EDGE('',*,*,#194,.F.); 70 | #51=ORIENTED_EDGE('',*,*,#195,.T.); 71 | #52=ORIENTED_EDGE('',*,*,#196,.T.); 72 | #53=ORIENTED_EDGE('',*,*,#197,.T.); 73 | #54=ORIENTED_EDGE('',*,*,#198,.F.); 74 | #55=ORIENTED_EDGE('',*,*,#199,.T.); 75 | #56=ORIENTED_EDGE('',*,*,#200,.F.); 76 | #57=ORIENTED_EDGE('',*,*,#201,.T.); 77 | #58=ORIENTED_EDGE('',*,*,#202,.T.); 78 | #59=ORIENTED_EDGE('',*,*,#203,.F.); 79 | #60=ORIENTED_EDGE('',*,*,#204,.T.); 80 | #61=ORIENTED_EDGE('',*,*,#205,.F.); 81 | #62=ORIENTED_EDGE('',*,*,#206,.F.); 82 | #63=ORIENTED_EDGE('',*,*,#203,.T.); 83 | #64=ORIENTED_EDGE('',*,*,#207,.F.); 84 | #65=ORIENTED_EDGE('',*,*,#208,.F.); 85 | #66=ORIENTED_EDGE('',*,*,#209,.T.); 86 | #67=ORIENTED_EDGE('',*,*,#205,.T.); 87 | #68=ORIENTED_EDGE('',*,*,#210,.F.); 88 | #69=ORIENTED_EDGE('',*,*,#211,.F.); 89 | #70=ORIENTED_EDGE('',*,*,#212,.T.); 90 | #71=ORIENTED_EDGE('',*,*,#208,.T.); 91 | #72=ORIENTED_EDGE('',*,*,#213,.T.); 92 | #73=ORIENTED_EDGE('',*,*,#214,.T.); 93 | #74=ORIENTED_EDGE('',*,*,#215,.F.); 94 | #75=ORIENTED_EDGE('',*,*,#211,.T.); 95 | #76=ORIENTED_EDGE('',*,*,#216,.T.); 96 | #77=ORIENTED_EDGE('',*,*,#217,.T.); 97 | #78=ORIENTED_EDGE('',*,*,#218,.F.); 98 | #79=ORIENTED_EDGE('',*,*,#219,.T.); 99 | #80=ORIENTED_EDGE('',*,*,#220,.T.); 100 | #81=ORIENTED_EDGE('',*,*,#221,.T.); 101 | #82=ORIENTED_EDGE('',*,*,#222,.F.); 102 | #83=ORIENTED_EDGE('',*,*,#223,.F.); 103 | #84=ORIENTED_EDGE('',*,*,#224,.F.); 104 | #85=ORIENTED_EDGE('',*,*,#225,.F.); 105 | #86=ORIENTED_EDGE('',*,*,#226,.T.); 106 | #87=ORIENTED_EDGE('',*,*,#223,.T.); 107 | #88=ORIENTED_EDGE('',*,*,#227,.T.); 108 | #89=ORIENTED_EDGE('',*,*,#228,.F.); 109 | #90=ORIENTED_EDGE('',*,*,#229,.F.); 110 | #91=ORIENTED_EDGE('',*,*,#225,.T.); 111 | #92=ORIENTED_EDGE('',*,*,#230,.F.); 112 | #93=ORIENTED_EDGE('',*,*,#231,.F.); 113 | #94=ORIENTED_EDGE('',*,*,#232,.T.); 114 | #95=ORIENTED_EDGE('',*,*,#228,.T.); 115 | #96=ORIENTED_EDGE('',*,*,#233,.F.); 116 | #97=ORIENTED_EDGE('',*,*,#234,.T.); 117 | #98=ORIENTED_EDGE('',*,*,#235,.T.); 118 | #99=ORIENTED_EDGE('',*,*,#231,.T.); 119 | #100=ORIENTED_EDGE('',*,*,#215,.T.); 120 | #101=ORIENTED_EDGE('',*,*,#236,.T.); 121 | #102=ORIENTED_EDGE('',*,*,#216,.F.); 122 | #103=ORIENTED_EDGE('',*,*,#237,.T.); 123 | #104=ORIENTED_EDGE('',*,*,#220,.F.); 124 | #105=ORIENTED_EDGE('',*,*,#226,.F.); 125 | #106=ORIENTED_EDGE('',*,*,#229,.T.); 126 | #107=ORIENTED_EDGE('',*,*,#232,.F.); 127 | #108=ORIENTED_EDGE('',*,*,#235,.F.); 128 | #109=ORIENTED_EDGE('',*,*,#238,.T.); 129 | #110=ORIENTED_EDGE('',*,*,#182,.T.); 130 | #111=ORIENTED_EDGE('',*,*,#239,.T.); 131 | #112=ORIENTED_EDGE('',*,*,#186,.T.); 132 | #113=ORIENTED_EDGE('',*,*,#240,.T.); 133 | #114=ORIENTED_EDGE('',*,*,#190,.T.); 134 | #115=ORIENTED_EDGE('',*,*,#241,.T.); 135 | #116=ORIENTED_EDGE('',*,*,#192,.F.); 136 | #117=ORIENTED_EDGE('',*,*,#242,.T.); 137 | #118=ORIENTED_EDGE('',*,*,#196,.F.); 138 | #119=ORIENTED_EDGE('',*,*,#243,.T.); 139 | #120=ORIENTED_EDGE('',*,*,#200,.T.); 140 | #121=ORIENTED_EDGE('',*,*,#206,.T.); 141 | #122=ORIENTED_EDGE('',*,*,#209,.F.); 142 | #123=ORIENTED_EDGE('',*,*,#212,.F.); 143 | #124=ORIENTED_EDGE('',*,*,#218,.T.); 144 | #125=ORIENTED_EDGE('',*,*,#244,.T.); 145 | #126=ORIENTED_EDGE('',*,*,#213,.F.); 146 | #127=ORIENTED_EDGE('',*,*,#210,.T.); 147 | #128=ORIENTED_EDGE('',*,*,#207,.T.); 148 | #129=ORIENTED_EDGE('',*,*,#204,.F.); 149 | #130=ORIENTED_EDGE('',*,*,#202,.F.); 150 | #131=ORIENTED_EDGE('',*,*,#245,.T.); 151 | #132=ORIENTED_EDGE('',*,*,#198,.T.); 152 | #133=ORIENTED_EDGE('',*,*,#246,.T.); 153 | #134=ORIENTED_EDGE('',*,*,#194,.T.); 154 | #135=ORIENTED_EDGE('',*,*,#247,.T.); 155 | #136=ORIENTED_EDGE('',*,*,#188,.F.); 156 | #137=ORIENTED_EDGE('',*,*,#248,.T.); 157 | #138=ORIENTED_EDGE('',*,*,#184,.F.); 158 | #139=ORIENTED_EDGE('',*,*,#249,.T.); 159 | #140=ORIENTED_EDGE('',*,*,#180,.F.); 160 | #141=ORIENTED_EDGE('',*,*,#250,.T.); 161 | #142=ORIENTED_EDGE('',*,*,#233,.T.); 162 | #143=ORIENTED_EDGE('',*,*,#230,.T.); 163 | #144=ORIENTED_EDGE('',*,*,#227,.F.); 164 | #145=ORIENTED_EDGE('',*,*,#224,.T.); 165 | #146=ORIENTED_EDGE('',*,*,#222,.T.); 166 | #147=ORIENTED_EDGE('',*,*,#251,.T.); 167 | #148=ORIENTED_EDGE('',*,*,#236,.F.); 168 | #149=ORIENTED_EDGE('',*,*,#214,.F.); 169 | #150=ORIENTED_EDGE('',*,*,#244,.F.); 170 | #151=ORIENTED_EDGE('',*,*,#217,.F.); 171 | #152=ORIENTED_EDGE('',*,*,#237,.F.); 172 | #153=ORIENTED_EDGE('',*,*,#219,.F.); 173 | #154=ORIENTED_EDGE('',*,*,#251,.F.); 174 | #155=ORIENTED_EDGE('',*,*,#221,.F.); 175 | #156=ORIENTED_EDGE('',*,*,#241,.F.); 176 | #157=ORIENTED_EDGE('',*,*,#189,.F.); 177 | #158=ORIENTED_EDGE('',*,*,#247,.F.); 178 | #159=ORIENTED_EDGE('',*,*,#193,.F.); 179 | #160=ORIENTED_EDGE('',*,*,#240,.F.); 180 | #161=ORIENTED_EDGE('',*,*,#185,.F.); 181 | #162=ORIENTED_EDGE('',*,*,#248,.F.); 182 | #163=ORIENTED_EDGE('',*,*,#191,.F.); 183 | #164=ORIENTED_EDGE('',*,*,#239,.F.); 184 | #165=ORIENTED_EDGE('',*,*,#181,.F.); 185 | #166=ORIENTED_EDGE('',*,*,#249,.F.); 186 | #167=ORIENTED_EDGE('',*,*,#187,.F.); 187 | #168=ORIENTED_EDGE('',*,*,#238,.F.); 188 | #169=ORIENTED_EDGE('',*,*,#234,.F.); 189 | #170=ORIENTED_EDGE('',*,*,#250,.F.); 190 | #171=ORIENTED_EDGE('',*,*,#183,.F.); 191 | #172=ORIENTED_EDGE('',*,*,#242,.F.); 192 | #173=ORIENTED_EDGE('',*,*,#195,.F.); 193 | #174=ORIENTED_EDGE('',*,*,#246,.F.); 194 | #175=ORIENTED_EDGE('',*,*,#197,.F.); 195 | #176=ORIENTED_EDGE('',*,*,#243,.F.); 196 | #177=ORIENTED_EDGE('',*,*,#199,.F.); 197 | #178=ORIENTED_EDGE('',*,*,#245,.F.); 198 | #179=ORIENTED_EDGE('',*,*,#201,.F.); 199 | #180=EDGE_CURVE('',#252,#253,#300,.T.); 200 | #181=EDGE_CURVE('',#253,#254,#301,.F.); 201 | #182=EDGE_CURVE('',#255,#254,#302,.T.); 202 | #183=EDGE_CURVE('',#255,#252,#303,.T.); 203 | #184=EDGE_CURVE('',#256,#257,#304,.T.); 204 | #185=EDGE_CURVE('',#257,#258,#305,.F.); 205 | #186=EDGE_CURVE('',#259,#258,#306,.T.); 206 | #187=EDGE_CURVE('',#259,#256,#307,.T.); 207 | #188=EDGE_CURVE('',#260,#261,#308,.T.); 208 | #189=EDGE_CURVE('',#261,#262,#309,.F.); 209 | #190=EDGE_CURVE('',#263,#262,#310,.T.); 210 | #191=EDGE_CURVE('',#263,#260,#311,.T.); 211 | #192=EDGE_CURVE('',#264,#265,#312,.T.); 212 | #193=EDGE_CURVE('',#265,#266,#313,.T.); 213 | #194=EDGE_CURVE('',#267,#266,#314,.T.); 214 | #195=EDGE_CURVE('',#267,#264,#315,.F.); 215 | #196=EDGE_CURVE('',#268,#269,#316,.T.); 216 | #197=EDGE_CURVE('',#269,#270,#317,.T.); 217 | #198=EDGE_CURVE('',#271,#270,#318,.T.); 218 | #199=EDGE_CURVE('',#271,#268,#319,.F.); 219 | #200=EDGE_CURVE('',#272,#273,#320,.T.); 220 | #201=EDGE_CURVE('',#272,#274,#321,.T.); 221 | #202=EDGE_CURVE('',#274,#275,#322,.T.); 222 | #203=EDGE_CURVE('',#273,#275,#323,.T.); 223 | #204=EDGE_CURVE('',#275,#276,#324,.T.); 224 | #205=EDGE_CURVE('',#277,#276,#325,.T.); 225 | #206=EDGE_CURVE('',#273,#277,#326,.T.); 226 | #207=EDGE_CURVE('',#278,#276,#327,.T.); 227 | #208=EDGE_CURVE('',#279,#278,#328,.T.); 228 | #209=EDGE_CURVE('',#279,#277,#329,.T.); 229 | #210=EDGE_CURVE('',#280,#278,#330,.T.); 230 | #211=EDGE_CURVE('',#281,#280,#331,.T.); 231 | #212=EDGE_CURVE('',#281,#279,#332,.T.); 232 | #213=EDGE_CURVE('',#280,#282,#333,.T.); 233 | #214=EDGE_CURVE('',#282,#283,#334,.F.); 234 | #215=EDGE_CURVE('',#281,#283,#335,.T.); 235 | #216=EDGE_CURVE('',#284,#285,#336,.T.); 236 | #217=EDGE_CURVE('',#285,#286,#337,.T.); 237 | #218=EDGE_CURVE('',#287,#286,#338,.T.); 238 | #219=EDGE_CURVE('',#287,#284,#339,.F.); 239 | #220=EDGE_CURVE('',#288,#289,#340,.T.); 240 | #221=EDGE_CURVE('',#289,#290,#341,.T.); 241 | #222=EDGE_CURVE('',#291,#290,#342,.T.); 242 | #223=EDGE_CURVE('',#288,#291,#343,.T.); 243 | #224=EDGE_CURVE('',#292,#291,#344,.T.); 244 | #225=EDGE_CURVE('',#293,#292,#345,.T.); 245 | #226=EDGE_CURVE('',#293,#288,#346,.T.); 246 | #227=EDGE_CURVE('',#292,#294,#347,.T.); 247 | #228=EDGE_CURVE('',#295,#294,#348,.T.); 248 | #229=EDGE_CURVE('',#293,#295,#349,.T.); 249 | #230=EDGE_CURVE('',#296,#294,#350,.T.); 250 | #231=EDGE_CURVE('',#297,#296,#351,.T.); 251 | #232=EDGE_CURVE('',#297,#295,#352,.T.); 252 | #233=EDGE_CURVE('',#298,#296,#353,.T.); 253 | #234=EDGE_CURVE('',#298,#299,#354,.F.); 254 | #235=EDGE_CURVE('',#299,#297,#355,.T.); 255 | #236=EDGE_CURVE('',#283,#285,#20,.T.); 256 | #237=EDGE_CURVE('',#284,#289,#21,.T.); 257 | #238=EDGE_CURVE('',#299,#255,#22,.F.); 258 | #239=EDGE_CURVE('',#254,#259,#23,.T.); 259 | #240=EDGE_CURVE('',#258,#263,#24,.T.); 260 | #241=EDGE_CURVE('',#262,#265,#25,.T.); 261 | #242=EDGE_CURVE('',#264,#269,#26,.T.); 262 | #243=EDGE_CURVE('',#268,#272,#27,.F.); 263 | #244=EDGE_CURVE('',#286,#282,#28,.F.); 264 | #245=EDGE_CURVE('',#274,#271,#29,.T.); 265 | #246=EDGE_CURVE('',#270,#267,#30,.F.); 266 | #247=EDGE_CURVE('',#266,#261,#31,.F.); 267 | #248=EDGE_CURVE('',#260,#257,#32,.F.); 268 | #249=EDGE_CURVE('',#256,#253,#33,.F.); 269 | #250=EDGE_CURVE('',#252,#298,#34,.T.); 270 | #251=EDGE_CURVE('',#290,#287,#35,.F.); 271 | #252=VERTEX_POINT('',#708); 272 | #253=VERTEX_POINT('',#709); 273 | #254=VERTEX_POINT('',#711); 274 | #255=VERTEX_POINT('',#713); 275 | #256=VERTEX_POINT('',#717); 276 | #257=VERTEX_POINT('',#718); 277 | #258=VERTEX_POINT('',#720); 278 | #259=VERTEX_POINT('',#722); 279 | #260=VERTEX_POINT('',#726); 280 | #261=VERTEX_POINT('',#727); 281 | #262=VERTEX_POINT('',#729); 282 | #263=VERTEX_POINT('',#731); 283 | #264=VERTEX_POINT('',#735); 284 | #265=VERTEX_POINT('',#736); 285 | #266=VERTEX_POINT('',#738); 286 | #267=VERTEX_POINT('',#740); 287 | #268=VERTEX_POINT('',#744); 288 | #269=VERTEX_POINT('',#745); 289 | #270=VERTEX_POINT('',#747); 290 | #271=VERTEX_POINT('',#749); 291 | #272=VERTEX_POINT('',#753); 292 | #273=VERTEX_POINT('',#754); 293 | #274=VERTEX_POINT('',#756); 294 | #275=VERTEX_POINT('',#758); 295 | #276=VERTEX_POINT('',#762); 296 | #277=VERTEX_POINT('',#764); 297 | #278=VERTEX_POINT('',#768); 298 | #279=VERTEX_POINT('',#770); 299 | #280=VERTEX_POINT('',#774); 300 | #281=VERTEX_POINT('',#776); 301 | #282=VERTEX_POINT('',#780); 302 | #283=VERTEX_POINT('',#782); 303 | #284=VERTEX_POINT('',#786); 304 | #285=VERTEX_POINT('',#787); 305 | #286=VERTEX_POINT('',#789); 306 | #287=VERTEX_POINT('',#791); 307 | #288=VERTEX_POINT('',#795); 308 | #289=VERTEX_POINT('',#796); 309 | #290=VERTEX_POINT('',#798); 310 | #291=VERTEX_POINT('',#800); 311 | #292=VERTEX_POINT('',#804); 312 | #293=VERTEX_POINT('',#806); 313 | #294=VERTEX_POINT('',#810); 314 | #295=VERTEX_POINT('',#812); 315 | #296=VERTEX_POINT('',#816); 316 | #297=VERTEX_POINT('',#818); 317 | #298=VERTEX_POINT('',#822); 318 | #299=VERTEX_POINT('',#824); 319 | #300=LINE('',#707,#356); 320 | #301=LINE('',#710,#357); 321 | #302=LINE('',#712,#358); 322 | #303=LINE('',#714,#359); 323 | #304=LINE('',#716,#360); 324 | #305=LINE('',#719,#361); 325 | #306=LINE('',#721,#362); 326 | #307=LINE('',#723,#363); 327 | #308=LINE('',#725,#364); 328 | #309=LINE('',#728,#365); 329 | #310=LINE('',#730,#366); 330 | #311=LINE('',#732,#367); 331 | #312=LINE('',#734,#368); 332 | #313=LINE('',#737,#369); 333 | #314=LINE('',#739,#370); 334 | #315=LINE('',#741,#371); 335 | #316=LINE('',#743,#372); 336 | #317=LINE('',#746,#373); 337 | #318=LINE('',#748,#374); 338 | #319=LINE('',#750,#375); 339 | #320=LINE('',#752,#376); 340 | #321=LINE('',#755,#377); 341 | #322=LINE('',#757,#378); 342 | #323=LINE('',#759,#379); 343 | #324=LINE('',#761,#380); 344 | #325=LINE('',#763,#381); 345 | #326=LINE('',#765,#382); 346 | #327=LINE('',#767,#383); 347 | #328=LINE('',#769,#384); 348 | #329=LINE('',#771,#385); 349 | #330=LINE('',#773,#386); 350 | #331=LINE('',#775,#387); 351 | #332=LINE('',#777,#388); 352 | #333=LINE('',#779,#389); 353 | #334=LINE('',#781,#390); 354 | #335=LINE('',#783,#391); 355 | #336=LINE('',#785,#392); 356 | #337=LINE('',#788,#393); 357 | #338=LINE('',#790,#394); 358 | #339=LINE('',#792,#395); 359 | #340=LINE('',#794,#396); 360 | #341=LINE('',#797,#397); 361 | #342=LINE('',#799,#398); 362 | #343=LINE('',#801,#399); 363 | #344=LINE('',#803,#400); 364 | #345=LINE('',#805,#401); 365 | #346=LINE('',#807,#402); 366 | #347=LINE('',#809,#403); 367 | #348=LINE('',#811,#404); 368 | #349=LINE('',#813,#405); 369 | #350=LINE('',#815,#406); 370 | #351=LINE('',#817,#407); 371 | #352=LINE('',#819,#408); 372 | #353=LINE('',#821,#409); 373 | #354=LINE('',#823,#410); 374 | #355=LINE('',#825,#411); 375 | #356=VECTOR('',#567,1.); 376 | #357=VECTOR('',#568,1.); 377 | #358=VECTOR('',#569,1.); 378 | #359=VECTOR('',#570,1.); 379 | #360=VECTOR('',#573,1.); 380 | #361=VECTOR('',#574,1.); 381 | #362=VECTOR('',#575,1.); 382 | #363=VECTOR('',#576,1.); 383 | #364=VECTOR('',#579,1.); 384 | #365=VECTOR('',#580,1.); 385 | #366=VECTOR('',#581,1.); 386 | #367=VECTOR('',#582,1.); 387 | #368=VECTOR('',#585,1.); 388 | #369=VECTOR('',#586,1.); 389 | #370=VECTOR('',#587,1.); 390 | #371=VECTOR('',#588,1.); 391 | #372=VECTOR('',#591,1.); 392 | #373=VECTOR('',#592,1.); 393 | #374=VECTOR('',#593,1.); 394 | #375=VECTOR('',#594,1.); 395 | #376=VECTOR('',#597,1.); 396 | #377=VECTOR('',#598,1.); 397 | #378=VECTOR('',#599,1.); 398 | #379=VECTOR('',#600,1.); 399 | #380=VECTOR('',#603,1.); 400 | #381=VECTOR('',#604,1.); 401 | #382=VECTOR('',#605,1.); 402 | #383=VECTOR('',#608,1.); 403 | #384=VECTOR('',#609,1.); 404 | #385=VECTOR('',#610,1.); 405 | #386=VECTOR('',#613,1.); 406 | #387=VECTOR('',#614,1.); 407 | #388=VECTOR('',#615,1.); 408 | #389=VECTOR('',#618,1.); 409 | #390=VECTOR('',#619,1.); 410 | #391=VECTOR('',#620,1.); 411 | #392=VECTOR('',#623,1.); 412 | #393=VECTOR('',#624,1.); 413 | #394=VECTOR('',#625,1.); 414 | #395=VECTOR('',#626,1.); 415 | #396=VECTOR('',#629,1.); 416 | #397=VECTOR('',#630,1.); 417 | #398=VECTOR('',#631,1.); 418 | #399=VECTOR('',#632,1.); 419 | #400=VECTOR('',#635,1.); 420 | #401=VECTOR('',#636,1.); 421 | #402=VECTOR('',#637,1.); 422 | #403=VECTOR('',#640,1.); 423 | #404=VECTOR('',#641,1.); 424 | #405=VECTOR('',#642,1.); 425 | #406=VECTOR('',#645,1.); 426 | #407=VECTOR('',#646,1.); 427 | #408=VECTOR('',#647,1.); 428 | #409=VECTOR('',#650,1.); 429 | #410=VECTOR('',#651,1.); 430 | #411=VECTOR('',#652,1.); 431 | #412=EDGE_LOOP('',(#36,#37,#38,#39)); 432 | #413=EDGE_LOOP('',(#40,#41,#42,#43)); 433 | #414=EDGE_LOOP('',(#44,#45,#46,#47)); 434 | #415=EDGE_LOOP('',(#48,#49,#50,#51)); 435 | #416=EDGE_LOOP('',(#52,#53,#54,#55)); 436 | #417=EDGE_LOOP('',(#56,#57,#58,#59)); 437 | #418=EDGE_LOOP('',(#60,#61,#62,#63)); 438 | #419=EDGE_LOOP('',(#64,#65,#66,#67)); 439 | #420=EDGE_LOOP('',(#68,#69,#70,#71)); 440 | #421=EDGE_LOOP('',(#72,#73,#74,#75)); 441 | #422=EDGE_LOOP('',(#76,#77,#78,#79)); 442 | #423=EDGE_LOOP('',(#80,#81,#82,#83)); 443 | #424=EDGE_LOOP('',(#84,#85,#86,#87)); 444 | #425=EDGE_LOOP('',(#88,#89,#90,#91)); 445 | #426=EDGE_LOOP('',(#92,#93,#94,#95)); 446 | #427=EDGE_LOOP('',(#96,#97,#98,#99)); 447 | #428=EDGE_LOOP('',(#100,#101,#102,#103,#104,#105,#106,#107,#108,#109,#110, 448 | #111,#112,#113,#114,#115,#116,#117,#118,#119,#120,#121,#122,#123)); 449 | #429=EDGE_LOOP('',(#124,#125,#126,#127,#128,#129,#130,#131,#132,#133,#134, 450 | #135,#136,#137,#138,#139,#140,#141,#142,#143,#144,#145,#146,#147)); 451 | #430=EDGE_LOOP('',(#148,#149,#150,#151)); 452 | #431=EDGE_LOOP('',(#152,#153,#154,#155)); 453 | #432=EDGE_LOOP('',(#156,#157,#158,#159)); 454 | #433=EDGE_LOOP('',(#160,#161,#162,#163)); 455 | #434=EDGE_LOOP('',(#164,#165,#166,#167)); 456 | #435=EDGE_LOOP('',(#168,#169,#170,#171)); 457 | #436=EDGE_LOOP('',(#172,#173,#174,#175)); 458 | #437=EDGE_LOOP('',(#176,#177,#178,#179)); 459 | #438=FACE_BOUND('',#412,.T.); 460 | #439=FACE_BOUND('',#413,.T.); 461 | #440=FACE_BOUND('',#414,.T.); 462 | #441=FACE_BOUND('',#415,.T.); 463 | #442=FACE_BOUND('',#416,.T.); 464 | #443=FACE_BOUND('',#417,.T.); 465 | #444=FACE_BOUND('',#418,.T.); 466 | #445=FACE_BOUND('',#419,.T.); 467 | #446=FACE_BOUND('',#420,.T.); 468 | #447=FACE_BOUND('',#421,.T.); 469 | #448=FACE_BOUND('',#422,.T.); 470 | #449=FACE_BOUND('',#423,.T.); 471 | #450=FACE_BOUND('',#424,.T.); 472 | #451=FACE_BOUND('',#425,.T.); 473 | #452=FACE_BOUND('',#426,.T.); 474 | #453=FACE_BOUND('',#427,.T.); 475 | #454=FACE_BOUND('',#428,.T.); 476 | #455=FACE_BOUND('',#429,.T.); 477 | #456=FACE_BOUND('',#430,.T.); 478 | #457=FACE_BOUND('',#431,.T.); 479 | #458=FACE_BOUND('',#432,.T.); 480 | #459=FACE_BOUND('',#433,.T.); 481 | #460=FACE_BOUND('',#434,.T.); 482 | #461=FACE_BOUND('',#435,.T.); 483 | #462=FACE_BOUND('',#436,.T.); 484 | #463=FACE_BOUND('',#437,.T.); 485 | #464=PLANE('',#521); 486 | #465=PLANE('',#522); 487 | #466=PLANE('',#523); 488 | #467=PLANE('',#524); 489 | #468=PLANE('',#525); 490 | #469=PLANE('',#526); 491 | #470=PLANE('',#527); 492 | #471=PLANE('',#528); 493 | #472=PLANE('',#529); 494 | #473=PLANE('',#530); 495 | #474=PLANE('',#531); 496 | #475=PLANE('',#532); 497 | #476=PLANE('',#533); 498 | #477=PLANE('',#534); 499 | #478=PLANE('',#535); 500 | #479=PLANE('',#536); 501 | #480=PLANE('',#537); 502 | #481=PLANE('',#546); 503 | #482=ADVANCED_FACE('',(#438),#464,.F.); 504 | #483=ADVANCED_FACE('',(#439),#465,.F.); 505 | #484=ADVANCED_FACE('',(#440),#466,.F.); 506 | #485=ADVANCED_FACE('',(#441),#467,.T.); 507 | #486=ADVANCED_FACE('',(#442),#468,.T.); 508 | #487=ADVANCED_FACE('',(#443),#469,.F.); 509 | #488=ADVANCED_FACE('',(#444),#470,.F.); 510 | #489=ADVANCED_FACE('',(#445),#471,.T.); 511 | #490=ADVANCED_FACE('',(#446),#472,.T.); 512 | #491=ADVANCED_FACE('',(#447),#473,.F.); 513 | #492=ADVANCED_FACE('',(#448),#474,.T.); 514 | #493=ADVANCED_FACE('',(#449),#475,.T.); 515 | #494=ADVANCED_FACE('',(#450),#476,.T.); 516 | #495=ADVANCED_FACE('',(#451),#477,.F.); 517 | #496=ADVANCED_FACE('',(#452),#478,.T.); 518 | #497=ADVANCED_FACE('',(#453),#479,.T.); 519 | #498=ADVANCED_FACE('',(#454),#480,.T.); 520 | #499=ADVANCED_FACE('',(#455),#481,.F.); 521 | #500=ADVANCED_FACE('',(#456),#12,.T.); 522 | #501=ADVANCED_FACE('',(#457),#13,.T.); 523 | #502=ADVANCED_FACE('',(#458),#14,.T.); 524 | #503=ADVANCED_FACE('',(#459),#15,.T.); 525 | #504=ADVANCED_FACE('',(#460),#16,.T.); 526 | #505=ADVANCED_FACE('',(#461),#17,.F.); 527 | #506=ADVANCED_FACE('',(#462),#18,.T.); 528 | #507=ADVANCED_FACE('',(#463),#19,.F.); 529 | #508=CLOSED_SHELL('',(#482,#483,#484,#485,#486,#487,#488,#489,#490,#491, 530 | #492,#493,#494,#495,#496,#497,#498,#499,#500,#501,#502,#503,#504,#505,#506, 531 | #507)); 532 | #509=STYLED_ITEM('',(#510),#517); 533 | #510=PRESENTATION_STYLE_ASSIGNMENT((#511)); 534 | #511=SURFACE_STYLE_USAGE(.BOTH.,#512); 535 | #512=SURFACE_SIDE_STYLE('',(#513)); 536 | #513=SURFACE_STYLE_FILL_AREA(#514); 537 | #514=FILL_AREA_STYLE('',(#515)); 538 | #515=FILL_AREA_STYLE_COLOUR('',#516); 539 | #516=COLOUR_RGB('',0.301960784313725,0.301960784313725,0.301960784313725); 540 | #517=MANIFOLD_SOLID_BREP('Flap',#508); 541 | #518=SHAPE_DEFINITION_REPRESENTATION(#858,#519); 542 | #519=SHAPE_REPRESENTATION('Flap',(#520),#853); 543 | #520=AXIS2_PLACEMENT_3D('',#705,#563,#564); 544 | #521=AXIS2_PLACEMENT_3D('',#706,#565,#566); 545 | #522=AXIS2_PLACEMENT_3D('',#715,#571,#572); 546 | #523=AXIS2_PLACEMENT_3D('',#724,#577,#578); 547 | #524=AXIS2_PLACEMENT_3D('',#733,#583,#584); 548 | #525=AXIS2_PLACEMENT_3D('',#742,#589,#590); 549 | #526=AXIS2_PLACEMENT_3D('',#751,#595,#596); 550 | #527=AXIS2_PLACEMENT_3D('',#760,#601,#602); 551 | #528=AXIS2_PLACEMENT_3D('',#766,#606,#607); 552 | #529=AXIS2_PLACEMENT_3D('',#772,#611,#612); 553 | #530=AXIS2_PLACEMENT_3D('',#778,#616,#617); 554 | #531=AXIS2_PLACEMENT_3D('',#784,#621,#622); 555 | #532=AXIS2_PLACEMENT_3D('',#793,#627,#628); 556 | #533=AXIS2_PLACEMENT_3D('',#802,#633,#634); 557 | #534=AXIS2_PLACEMENT_3D('',#808,#638,#639); 558 | #535=AXIS2_PLACEMENT_3D('',#814,#643,#644); 559 | #536=AXIS2_PLACEMENT_3D('',#820,#648,#649); 560 | #537=AXIS2_PLACEMENT_3D('',#826,#653,#654); 561 | #538=AXIS2_PLACEMENT_3D('',#827,#655,#656); 562 | #539=AXIS2_PLACEMENT_3D('',#828,#657,#658); 563 | #540=AXIS2_PLACEMENT_3D('',#829,#659,#660); 564 | #541=AXIS2_PLACEMENT_3D('',#830,#661,#662); 565 | #542=AXIS2_PLACEMENT_3D('',#831,#663,#664); 566 | #543=AXIS2_PLACEMENT_3D('',#832,#665,#666); 567 | #544=AXIS2_PLACEMENT_3D('',#833,#667,#668); 568 | #545=AXIS2_PLACEMENT_3D('',#834,#669,#670); 569 | #546=AXIS2_PLACEMENT_3D('',#835,#671,#672); 570 | #547=AXIS2_PLACEMENT_3D('',#836,#673,#674); 571 | #548=AXIS2_PLACEMENT_3D('',#837,#675,#676); 572 | #549=AXIS2_PLACEMENT_3D('',#838,#677,#678); 573 | #550=AXIS2_PLACEMENT_3D('',#839,#679,#680); 574 | #551=AXIS2_PLACEMENT_3D('',#840,#681,#682); 575 | #552=AXIS2_PLACEMENT_3D('',#841,#683,#684); 576 | #553=AXIS2_PLACEMENT_3D('',#842,#685,#686); 577 | #554=AXIS2_PLACEMENT_3D('',#843,#687,#688); 578 | #555=AXIS2_PLACEMENT_3D('',#844,#689,#690); 579 | #556=AXIS2_PLACEMENT_3D('',#845,#691,#692); 580 | #557=AXIS2_PLACEMENT_3D('',#846,#693,#694); 581 | #558=AXIS2_PLACEMENT_3D('',#847,#695,#696); 582 | #559=AXIS2_PLACEMENT_3D('',#848,#697,#698); 583 | #560=AXIS2_PLACEMENT_3D('',#849,#699,#700); 584 | #561=AXIS2_PLACEMENT_3D('',#850,#701,#702); 585 | #562=AXIS2_PLACEMENT_3D('',#851,#703,#704); 586 | #563=DIRECTION('',(0.,0.,1.)); 587 | #564=DIRECTION('',(1.,0.,0.)); 588 | #565=DIRECTION('',(0.,1.,0.)); 589 | #566=DIRECTION('',(0.,0.,1.)); 590 | #567=DIRECTION('',(1.60297232590263E-14,0.,1.)); 591 | #568=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 592 | #569=DIRECTION('',(1.60297232590263E-14,0.,1.)); 593 | #570=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 594 | #571=DIRECTION('',(-1.60297232590263E-14,-1.22819531720255E-16,-1.)); 595 | #572=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 596 | #573=DIRECTION('',(-1.96876310427889E-30,1.,-1.22819531720255E-16)); 597 | #574=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 598 | #575=DIRECTION('',(-1.96876310427889E-30,1.,-1.22819531720255E-16)); 599 | #576=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 600 | #577=DIRECTION('',(3.36037912396911E-30,-1.,2.09634256915627E-16)); 601 | #578=DIRECTION('',(0.,-2.09634256915627E-16,-1.)); 602 | #579=DIRECTION('',(-1.60297232590263E-14,-2.09634256915627E-16,-1.)); 603 | #580=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 604 | #581=DIRECTION('',(-1.60297232590263E-14,-2.09634256915627E-16,-1.)); 605 | #582=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 606 | #583=DIRECTION('',(-1.60297232590263E-14,0.,-1.)); 607 | #584=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 608 | #585=DIRECTION('',(0.,1.,0.)); 609 | #586=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 610 | #587=DIRECTION('',(0.,1.,0.)); 611 | #588=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 612 | #589=DIRECTION('',(0.,-1.,0.)); 613 | #590=DIRECTION('',(0.,0.,-1.)); 614 | #591=DIRECTION('',(-1.60297232590263E-14,0.,-1.)); 615 | #592=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 616 | #593=DIRECTION('',(-1.60297232590263E-14,0.,-1.)); 617 | #594=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 618 | #595=DIRECTION('',(1.60297232590263E-14,3.75987248855485E-16,1.)); 619 | #596=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 620 | #597=DIRECTION('',(6.02697154807606E-30,-1.,3.75987248855485E-16)); 621 | #598=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 622 | #599=DIRECTION('',(6.02697154807606E-30,-1.,3.75987248855485E-16)); 623 | #600=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 624 | #601=DIRECTION('',(4.63452287514065E-30,-1.,2.89120579329464E-16)); 625 | #602=DIRECTION('',(0.,-2.89120579329464E-16,-1.)); 626 | #603=DIRECTION('',(-1.60297232590263E-14,-2.89120579329464E-16,-1.)); 627 | #604=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 628 | #605=DIRECTION('',(-1.60297232590263E-14,-2.89120579329464E-16,-1.)); 629 | #606=DIRECTION('',(-1.60297232590263E-14,0.,-1.)); 630 | #607=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 631 | #608=DIRECTION('',(0.,1.,0.)); 632 | #609=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 633 | #610=DIRECTION('',(0.,1.,0.)); 634 | #611=DIRECTION('',(0.,-1.,0.)); 635 | #612=DIRECTION('',(0.,0.,-1.)); 636 | #613=DIRECTION('',(-1.60297232590263E-14,0.,-1.)); 637 | #614=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 638 | #615=DIRECTION('',(-1.60297232590263E-14,0.,-1.)); 639 | #616=DIRECTION('',(1.60297232590263E-14,0.,1.)); 640 | #617=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 641 | #618=DIRECTION('',(0.,-1.,0.)); 642 | #619=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 643 | #620=DIRECTION('',(0.,-1.,0.)); 644 | #621=DIRECTION('',(0.,-1.,0.)); 645 | #622=DIRECTION('',(0.,0.,-1.)); 646 | #623=DIRECTION('',(-1.60297232590263E-14,0.,-1.)); 647 | #624=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 648 | #625=DIRECTION('',(-1.60297232590263E-14,0.,-1.)); 649 | #626=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 650 | #627=DIRECTION('',(1.60297232590263E-14,0.,1.)); 651 | #628=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 652 | #629=DIRECTION('',(0.,-1.,0.)); 653 | #630=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 654 | #631=DIRECTION('',(0.,-1.,0.)); 655 | #632=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 656 | #633=DIRECTION('',(0.,-1.,0.)); 657 | #634=DIRECTION('',(0.,0.,-1.)); 658 | #635=DIRECTION('',(-1.60297232590263E-14,0.,-1.)); 659 | #636=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 660 | #637=DIRECTION('',(-1.60297232590263E-14,0.,-1.)); 661 | #638=DIRECTION('',(-1.60297232590263E-14,-1.35525271560687E-16,-1.)); 662 | #639=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 663 | #640=DIRECTION('',(-2.17243259772219E-30,1.,-1.35525271560687E-16)); 664 | #641=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 665 | #642=DIRECTION('',(-2.17243259772219E-30,1.,-1.35525271560687E-16)); 666 | #643=DIRECTION('',(0.,1.,0.)); 667 | #644=DIRECTION('',(0.,0.,1.)); 668 | #645=DIRECTION('',(1.60297232590263E-14,0.,1.)); 669 | #646=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 670 | #647=DIRECTION('',(1.60297232590263E-14,0.,1.)); 671 | #648=DIRECTION('',(1.60297232590263E-14,0.,1.)); 672 | #649=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 673 | #650=DIRECTION('',(0.,-1.,0.)); 674 | #651=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 675 | #652=DIRECTION('',(0.,-1.,0.)); 676 | #653=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 677 | #654=DIRECTION('',(0.,-1.,0.)); 678 | #655=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 679 | #656=DIRECTION('',(1.60297232590263E-14,0.,1.)); 680 | #657=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 681 | #658=DIRECTION('',(1.60297232590263E-14,0.,1.)); 682 | #659=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 683 | #660=DIRECTION('',(1.60297232590263E-14,0.,1.)); 684 | #661=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 685 | #662=DIRECTION('',(1.60297232590263E-14,0.,1.)); 686 | #663=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 687 | #664=DIRECTION('',(1.60297232590263E-14,0.,1.)); 688 | #665=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 689 | #666=DIRECTION('',(1.60297232590263E-14,0.,1.)); 690 | #667=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 691 | #668=DIRECTION('',(1.60297232590263E-14,0.,1.)); 692 | #669=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 693 | #670=DIRECTION('',(1.60297232590263E-14,0.,1.)); 694 | #671=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 695 | #672=DIRECTION('',(0.,-1.,0.)); 696 | #673=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 697 | #674=DIRECTION('',(1.60297232590263E-14,0.,1.)); 698 | #675=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 699 | #676=DIRECTION('',(1.60297232590263E-14,0.,1.)); 700 | #677=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 701 | #678=DIRECTION('',(1.60297232590263E-14,0.,1.)); 702 | #679=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 703 | #680=DIRECTION('',(1.60297232590263E-14,0.,1.)); 704 | #681=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 705 | #682=DIRECTION('',(1.60297232590263E-14,0.,1.)); 706 | #683=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 707 | #684=DIRECTION('',(1.60297232590263E-14,0.,1.)); 708 | #685=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 709 | #686=DIRECTION('',(1.60297232590263E-14,0.,1.)); 710 | #687=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 711 | #688=DIRECTION('',(1.60297232590263E-14,0.,1.)); 712 | #689=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 713 | #690=DIRECTION('',(1.60297232590263E-14,0.,1.)); 714 | #691=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 715 | #692=DIRECTION('',(-1.60297232590263E-14,0.,-1.)); 716 | #693=DIRECTION('',(-1.,0.,1.60297232590263E-14)); 717 | #694=DIRECTION('',(1.60297232590263E-14,0.,1.)); 718 | #695=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 719 | #696=DIRECTION('',(-1.60297232590263E-14,0.,-1.)); 720 | #697=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 721 | #698=DIRECTION('',(-1.60297232590263E-14,0.,-1.)); 722 | #699=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 723 | #700=DIRECTION('',(-1.60297232590263E-14,0.,-1.)); 724 | #701=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 725 | #702=DIRECTION('',(-1.60297232590263E-14,0.,-1.)); 726 | #703=DIRECTION('',(1.,0.,-1.60297232590263E-14)); 727 | #704=DIRECTION('',(-1.60297232590263E-14,0.,-1.)); 728 | #705=CARTESIAN_POINT('',(0.,0.,0.)); 729 | #706=CARTESIAN_POINT('',(-0.0237651608551775,0.0126247449840964,-0.000850043387423035)); 730 | #707=CARTESIAN_POINT('',(-0.0231651608551775,0.0126247449840964,-0.000850043387423044)); 731 | #708=CARTESIAN_POINT('',(-0.0231651608551775,0.0126247449840964,-0.00130004338742305)); 732 | #709=CARTESIAN_POINT('',(-0.0231651608551775,0.0126247449840964,-0.000400043387423039)); 733 | #710=CARTESIAN_POINT('',(-0.0237651608551775,0.0126247449840964,-0.00040004338742303)); 734 | #711=CARTESIAN_POINT('',(-0.0237651608551775,0.0126247449840964,-0.00040004338742303)); 735 | #712=CARTESIAN_POINT('',(-0.0237651608551775,0.0126247449840964,-0.000850043387423035)); 736 | #713=CARTESIAN_POINT('',(-0.0237651608551775,0.0126247449840964,-0.00130004338742304)); 737 | #714=CARTESIAN_POINT('',(-0.0237651608551775,0.0126247449840964,-0.00130004338742304)); 738 | #715=CARTESIAN_POINT('',(-0.0237651608551775,0.0178109622527475,9.99566125769702E-5)); 739 | #716=CARTESIAN_POINT('',(-0.0231651608551775,0.0178109622527475,9.99566125769605E-5)); 740 | #717=CARTESIAN_POINT('',(-0.0231651608551775,0.0131247449840964,9.99566125769611E-5)); 741 | #718=CARTESIAN_POINT('',(-0.0231651608551775,0.0224971795213986,9.995661257696E-5)); 742 | #719=CARTESIAN_POINT('',(-0.0237651608551775,0.0224971795213986,9.99566125769696E-5)); 743 | #720=CARTESIAN_POINT('',(-0.0237651608551775,0.0224971795213986,9.99566125769696E-5)); 744 | #721=CARTESIAN_POINT('',(-0.0237651608551775,0.0178109622527475,9.99566125769702E-5)); 745 | #722=CARTESIAN_POINT('',(-0.0237651608551775,0.0131247449840964,9.99566125769707E-5)); 746 | #723=CARTESIAN_POINT('',(-0.0237651608551775,0.0131247449840964,9.99566125769707E-5)); 747 | #724=CARTESIAN_POINT('',(-0.0237651608551777,0.0229971795213986,-0.016450043387423)); 748 | #725=CARTESIAN_POINT('',(-0.0231651608551777,0.0229971795213986,-0.016450043387423)); 749 | #726=CARTESIAN_POINT('',(-0.0231651608551775,0.0229971795213986,-0.000400043387423041)); 750 | #727=CARTESIAN_POINT('',(-0.0231651608551779,0.0229971795213986,-0.032500043387423)); 751 | #728=CARTESIAN_POINT('',(-0.0237651608551779,0.0229971795213986,-0.032500043387423)); 752 | #729=CARTESIAN_POINT('',(-0.0237651608551779,0.0229971795213986,-0.032500043387423)); 753 | #730=CARTESIAN_POINT('',(-0.0237651608551777,0.0229971795213986,-0.016450043387423)); 754 | #731=CARTESIAN_POINT('',(-0.0237651608551775,0.0229971795213986,-0.00040004338742303)); 755 | #732=CARTESIAN_POINT('',(-0.0237651608551775,0.0229971795213986,-0.00040004338742303)); 756 | #733=CARTESIAN_POINT('',(-0.0237651608551779,0.0178109622527475,-0.0330000433874229)); 757 | #734=CARTESIAN_POINT('',(-0.0237651608551779,0.0178109622527475,-0.0330000433874229)); 758 | #735=CARTESIAN_POINT('',(-0.0237651608551779,0.0131247449840964,-0.0330000433874229)); 759 | #736=CARTESIAN_POINT('',(-0.0237651608551779,0.0224971795213986,-0.0330000433874229)); 760 | #737=CARTESIAN_POINT('',(-0.0231651608551779,0.0224971795213986,-0.0330000433874229)); 761 | #738=CARTESIAN_POINT('',(-0.0231651608551779,0.0224971795213986,-0.0330000433874229)); 762 | #739=CARTESIAN_POINT('',(-0.0231651608551779,0.0178109622527475,-0.0330000433874229)); 763 | #740=CARTESIAN_POINT('',(-0.0231651608551779,0.0131247449840964,-0.0330000433874229)); 764 | #741=CARTESIAN_POINT('',(-0.0237651608551779,0.0131247449840964,-0.0330000433874229)); 765 | #742=CARTESIAN_POINT('',(-0.0237651608551779,0.0126247449840964,-0.0320500433874229)); 766 | #743=CARTESIAN_POINT('',(-0.0237651608551779,0.0126247449840964,-0.0320500433874229)); 767 | #744=CARTESIAN_POINT('',(-0.0237651608551779,0.0126247449840964,-0.0316000433874229)); 768 | #745=CARTESIAN_POINT('',(-0.0237651608551779,0.0126247449840964,-0.032500043387423)); 769 | #746=CARTESIAN_POINT('',(-0.0237651608551779,0.0126247449840964,-0.032500043387423)); 770 | #747=CARTESIAN_POINT('',(-0.0231651608551779,0.0126247449840964,-0.032500043387423)); 771 | #748=CARTESIAN_POINT('',(-0.0231651608551779,0.0126247449840964,-0.0320500433874229)); 772 | #749=CARTESIAN_POINT('',(-0.0231651608551779,0.0126247449840964,-0.0316000433874229)); 773 | #750=CARTESIAN_POINT('',(-0.0237651608551779,0.0126247449840964,-0.0316000433874229)); 774 | #751=CARTESIAN_POINT('',(-0.0237651608551779,0.0080109622527475,-0.031100043387423)); 775 | #752=CARTESIAN_POINT('',(-0.0237651608551779,0.0080109622527475,-0.031100043387423)); 776 | #753=CARTESIAN_POINT('',(-0.0237651608551779,0.0121247449840964,-0.031100043387423)); 777 | #754=CARTESIAN_POINT('',(-0.0237651608551779,0.00339717952139863,-0.031100043387423)); 778 | #755=CARTESIAN_POINT('',(-0.0237651608551779,0.0121247449840964,-0.031100043387423)); 779 | #756=CARTESIAN_POINT('',(-0.0231651608551779,0.0121247449840964,-0.031100043387423)); 780 | #757=CARTESIAN_POINT('',(-0.0231651608551779,0.0080109622527475,-0.031100043387423)); 781 | #758=CARTESIAN_POINT('',(-0.0231651608551779,0.00339717952139863,-0.031100043387423)); 782 | #759=CARTESIAN_POINT('',(-0.0237651608551779,0.00339717952139863,-0.031100043387423)); 783 | #760=CARTESIAN_POINT('',(-0.0237651608551779,0.00339717952139863,-0.0318500433874229)); 784 | #761=CARTESIAN_POINT('',(-0.0231651608551779,0.00339717952139863,-0.0318500433874229)); 785 | #762=CARTESIAN_POINT('',(-0.0231651608551779,0.00339717952139863,-0.032600043387423)); 786 | #763=CARTESIAN_POINT('',(-0.0237651608551779,0.00339717952139863,-0.032600043387423)); 787 | #764=CARTESIAN_POINT('',(-0.0237651608551779,0.00339717952139863,-0.032600043387423)); 788 | #765=CARTESIAN_POINT('',(-0.0237651608551779,0.00339717952139863,-0.0318500433874229)); 789 | #766=CARTESIAN_POINT('',(-0.0237651608551779,0.00299717952139864,-0.032600043387423)); 790 | #767=CARTESIAN_POINT('',(-0.0231651608551779,0.00299717952139864,-0.032600043387423)); 791 | #768=CARTESIAN_POINT('',(-0.0231651608551779,0.00259717952139864,-0.032600043387423)); 792 | #769=CARTESIAN_POINT('',(-0.0237651608551779,0.00259717952139864,-0.032600043387423)); 793 | #770=CARTESIAN_POINT('',(-0.0237651608551779,0.00259717952139864,-0.032600043387423)); 794 | #771=CARTESIAN_POINT('',(-0.0237651608551779,0.00299717952139864,-0.032600043387423)); 795 | #772=CARTESIAN_POINT('',(-0.0237651608551779,0.00259717952139864,-0.0318500433874229)); 796 | #773=CARTESIAN_POINT('',(-0.0231651608551779,0.00259717952139864,-0.0318500433874229)); 797 | #774=CARTESIAN_POINT('',(-0.0231651608551779,0.00259717952139864,-0.031100043387423)); 798 | #775=CARTESIAN_POINT('',(-0.0237651608551779,0.00259717952139864,-0.031100043387423)); 799 | #776=CARTESIAN_POINT('',(-0.0237651608551779,0.00259717952139864,-0.031100043387423)); 800 | #777=CARTESIAN_POINT('',(-0.0237651608551779,0.00259717952139864,-0.0318500433874229)); 801 | #778=CARTESIAN_POINT('',(-0.0237651608551779,0.00142358976069932,-0.031100043387423)); 802 | #779=CARTESIAN_POINT('',(-0.0231651608551779,0.00142358976069932,-0.031100043387423)); 803 | #780=CARTESIAN_POINT('',(-0.0231651608551779,0.00075,-0.031100043387423)); 804 | #781=CARTESIAN_POINT('',(-0.0237651608551779,0.00075,-0.031100043387423)); 805 | #782=CARTESIAN_POINT('',(-0.0237651608551779,0.00075,-0.031100043387423)); 806 | #783=CARTESIAN_POINT('',(-0.0237651608551779,0.00142358976069932,-0.031100043387423)); 807 | #784=CARTESIAN_POINT('',(-0.0237651608551777,0.00025,-0.016450043387423)); 808 | #785=CARTESIAN_POINT('',(-0.0237651608551777,0.00025,-0.016450043387423)); 809 | #786=CARTESIAN_POINT('',(-0.0237651608551775,0.00025,-0.00230004338742304)); 810 | #787=CARTESIAN_POINT('',(-0.0237651608551779,0.00025,-0.030600043387423)); 811 | #788=CARTESIAN_POINT('',(-0.0231651608551779,0.00025,-0.030600043387423)); 812 | #789=CARTESIAN_POINT('',(-0.0231651608551779,0.00025,-0.030600043387423)); 813 | #790=CARTESIAN_POINT('',(-0.0231651608551777,0.00025,-0.016450043387423)); 814 | #791=CARTESIAN_POINT('',(-0.0231651608551775,0.00025,-0.00230004338742305)); 815 | #792=CARTESIAN_POINT('',(-0.0237651608551775,0.00025,-0.00230004338742304)); 816 | #793=CARTESIAN_POINT('',(-0.0237651608551775,0.00142358976069932,-0.00180004338742304)); 817 | #794=CARTESIAN_POINT('',(-0.0237651608551775,0.00142358976069932,-0.00180004338742304)); 818 | #795=CARTESIAN_POINT('',(-0.0237651608551775,0.00259717952139864,-0.00180004338742304)); 819 | #796=CARTESIAN_POINT('',(-0.0237651608551775,0.00075,-0.00180004338742304)); 820 | #797=CARTESIAN_POINT('',(-0.0237651608551775,0.00075,-0.00180004338742304)); 821 | #798=CARTESIAN_POINT('',(-0.0231651608551775,0.00075,-0.00180004338742305)); 822 | #799=CARTESIAN_POINT('',(-0.0231651608551775,0.00142358976069932,-0.00180004338742305)); 823 | #800=CARTESIAN_POINT('',(-0.0231651608551775,0.00259717952139864,-0.00180004338742305)); 824 | #801=CARTESIAN_POINT('',(-0.0237651608551775,0.00259717952139864,-0.00180004338742304)); 825 | #802=CARTESIAN_POINT('',(-0.0237651608551775,0.00259717952139864,-0.00105004338742303)); 826 | #803=CARTESIAN_POINT('',(-0.0231651608551775,0.00259717952139864,-0.00105004338742304)); 827 | #804=CARTESIAN_POINT('',(-0.0231651608551775,0.00259717952139864,-0.000300043387423039)); 828 | #805=CARTESIAN_POINT('',(-0.0237651608551775,0.00259717952139864,-0.000300043387423029)); 829 | #806=CARTESIAN_POINT('',(-0.0237651608551775,0.00259717952139864,-0.000300043387423029)); 830 | #807=CARTESIAN_POINT('',(-0.0237651608551775,0.00259717952139864,-0.00105004338742303)); 831 | #808=CARTESIAN_POINT('',(-0.0237651608551775,0.00299717952139864,-0.000300043387423029)); 832 | #809=CARTESIAN_POINT('',(-0.0231651608551775,0.00299717952139864,-0.000300043387423039)); 833 | #810=CARTESIAN_POINT('',(-0.0231651608551775,0.00339717952139864,-0.000300043387423039)); 834 | #811=CARTESIAN_POINT('',(-0.0237651608551775,0.00339717952139864,-0.000300043387423029)); 835 | #812=CARTESIAN_POINT('',(-0.0237651608551775,0.00339717952139864,-0.000300043387423029)); 836 | #813=CARTESIAN_POINT('',(-0.0237651608551775,0.00299717952139864,-0.000300043387423029)); 837 | #814=CARTESIAN_POINT('',(-0.0237651608551775,0.00339717952139863,-0.00105004338742303)); 838 | #815=CARTESIAN_POINT('',(-0.0231651608551775,0.00339717952139863,-0.00105004338742304)); 839 | #816=CARTESIAN_POINT('',(-0.0231651608551775,0.00339717952139863,-0.00180004338742305)); 840 | #817=CARTESIAN_POINT('',(-0.0237651608551775,0.00339717952139863,-0.00180004338742304)); 841 | #818=CARTESIAN_POINT('',(-0.0237651608551775,0.00339717952139863,-0.00180004338742304)); 842 | #819=CARTESIAN_POINT('',(-0.0237651608551775,0.00339717952139863,-0.00105004338742303)); 843 | #820=CARTESIAN_POINT('',(-0.0237651608551775,0.0080109622527475,-0.00180004338742304)); 844 | #821=CARTESIAN_POINT('',(-0.0231651608551775,0.0080109622527475,-0.00180004338742305)); 845 | #822=CARTESIAN_POINT('',(-0.0231651608551775,0.0121247449840964,-0.00180004338742305)); 846 | #823=CARTESIAN_POINT('',(-0.0237651608551775,0.0121247449840964,-0.00180004338742304)); 847 | #824=CARTESIAN_POINT('',(-0.0237651608551775,0.0121247449840964,-0.00180004338742304)); 848 | #825=CARTESIAN_POINT('',(-0.0237651608551775,0.0080109622527475,-0.00180004338742304)); 849 | #826=CARTESIAN_POINT('',(-0.0237651608551777,0.0116235897606993,-0.016450043387423)); 850 | #827=CARTESIAN_POINT('',(-0.0237651608551779,0.00075,-0.030600043387423)); 851 | #828=CARTESIAN_POINT('',(-0.0237651608551775,0.00075,-0.00230004338742304)); 852 | #829=CARTESIAN_POINT('',(-0.0237651608551775,0.0121247449840964,-0.00130004338742304)); 853 | #830=CARTESIAN_POINT('',(-0.0237651608551775,0.0131247449840964,-0.00040004338742303)); 854 | #831=CARTESIAN_POINT('',(-0.0237651608551775,0.0224971795213986,-0.00040004338742303)); 855 | #832=CARTESIAN_POINT('',(-0.0237651608551779,0.0224971795213986,-0.032500043387423)); 856 | #833=CARTESIAN_POINT('',(-0.0237651608551779,0.0131247449840964,-0.032500043387423)); 857 | #834=CARTESIAN_POINT('',(-0.0237651608551779,0.0121247449840964,-0.0316000433874229)); 858 | #835=CARTESIAN_POINT('',(-0.0231651608551777,0.0116235897606993,-0.016450043387423)); 859 | #836=CARTESIAN_POINT('',(-0.0231651608551779,0.00075,-0.030600043387423)); 860 | #837=CARTESIAN_POINT('',(-0.0231651608551779,0.0121247449840964,-0.0316000433874229)); 861 | #838=CARTESIAN_POINT('',(-0.0231651608551779,0.0131247449840964,-0.032500043387423)); 862 | #839=CARTESIAN_POINT('',(-0.0231651608551779,0.0224971795213986,-0.032500043387423)); 863 | #840=CARTESIAN_POINT('',(-0.0231651608551775,0.0224971795213986,-0.00040004338742304)); 864 | #841=CARTESIAN_POINT('',(-0.0231651608551775,0.0131247449840964,-0.000400043387423039)); 865 | #842=CARTESIAN_POINT('',(-0.0231651608551775,0.0121247449840964,-0.00130004338742305)); 866 | #843=CARTESIAN_POINT('',(-0.0231651608551775,0.00075,-0.00230004338742305)); 867 | #844=CARTESIAN_POINT('',(-0.0237651608551779,0.00075,-0.030600043387423)); 868 | #845=CARTESIAN_POINT('',(-0.0237651608551775,0.00075,-0.00230004338742304)); 869 | #846=CARTESIAN_POINT('',(-0.0237651608551779,0.0224971795213986,-0.032500043387423)); 870 | #847=CARTESIAN_POINT('',(-0.0237651608551775,0.0224971795213986,-0.00040004338742303)); 871 | #848=CARTESIAN_POINT('',(-0.0237651608551775,0.0131247449840964,-0.00040004338742303)); 872 | #849=CARTESIAN_POINT('',(-0.0237651608551775,0.0121247449840964,-0.00130004338742304)); 873 | #850=CARTESIAN_POINT('',(-0.0237651608551779,0.0131247449840964,-0.032500043387423)); 874 | #851=CARTESIAN_POINT('',(-0.0237651608551779,0.0121247449840964,-0.0316000433874229)); 875 | #852=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#509), 876 | #853); 877 | #853=( 878 | GEOMETRIC_REPRESENTATION_CONTEXT(3) 879 | GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#854)) 880 | GLOBAL_UNIT_ASSIGNED_CONTEXT((#857,#856,#855)) 881 | REPRESENTATION_CONTEXT('Flap','TOP_LEVEL_ASSEMBLY_PART') 882 | ); 883 | #854=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-8),#857, 884 | 'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); 885 | #855=( 886 | NAMED_UNIT(*) 887 | SI_UNIT($,.STERADIAN.) 888 | SOLID_ANGLE_UNIT() 889 | ); 890 | #856=( 891 | NAMED_UNIT(*) 892 | PLANE_ANGLE_UNIT() 893 | SI_UNIT($,.RADIAN.) 894 | ); 895 | #857=( 896 | LENGTH_UNIT() 897 | NAMED_UNIT(*) 898 | SI_UNIT($,.METRE.) 899 | ); 900 | #858=PRODUCT_DEFINITION_SHAPE('','',#859); 901 | #859=PRODUCT_DEFINITION('','',#861,#860); 902 | #860=PRODUCT_DEFINITION_CONTEXT('',#867,'design'); 903 | #861=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#863, 904 | .NOT_KNOWN.); 905 | #862=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#863)); 906 | #863=PRODUCT('Flap','Flap','Flap',(#865)); 907 | #864=PRODUCT_CATEGORY('',''); 908 | #865=PRODUCT_CONTEXT('',#867,'mechanical'); 909 | #866=APPLICATION_PROTOCOL_DEFINITION('international standard', 910 | 'ap242_managed_model_based_3d_engineering',2011,#867); 911 | #867=APPLICATION_CONTEXT('managed model based 3d engineering'); 912 | ENDSEC; 913 | END-ISO-10303-21; 914 | -------------------------------------------------------------------------------- /step/Split Flap Module - Wire Retainer.step: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | /* Generated by software containing ST-Developer 4 | * from STEP Tools, Inc. (www.steptools.com) 5 | */ 6 | /* OPTION: using custom renumber hook */ 7 | 8 | FILE_DESCRIPTION( 9 | /* description */ ('STEP AP242', 10 | 'CAx-IF Rec.Pracs.---Representation and Presentation of Product Manufa 11 | cturing Information (PMI)---4.0---2014-10-13', 12 | 'CAx-IF Rec.Pracs.---3D Tessellated Geometry---0.4---2014-09-14','2;1'), 13 | 14 | /* implementation_level */ '2;1'); 15 | 16 | FILE_NAME( 17 | /* name */ 'Split Flap Module - Wire Retainer', 18 | /* time_stamp */ '2025-02-16T18:00:15Z', 19 | /* author */ (''), 20 | /* organization */ (''), 21 | /* preprocessor_version */ 'ST-DEVELOPER v20', 22 | /* originating_system */ 'ONSHAPE BY PTC INC, 1.193', 23 | /* authorisation */ ' '); 24 | 25 | FILE_SCHEMA (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF { 1 0 10303 442 1 1 4 }')); 26 | ENDSEC; 27 | 28 | DATA; 29 | #10=SHAPE_REPRESENTATION_RELATIONSHIP('','',#391,#11); 30 | #11=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#389),#657); 31 | #12=CONICAL_SURFACE('',#426,0.00336,0.785398163397448); 32 | #13=CONICAL_SURFACE('',#427,0.00336,0.785398163397448); 33 | #14=CYLINDRICAL_SURFACE('',#407,0.00476); 34 | #15=CYLINDRICAL_SURFACE('',#417,0.00486); 35 | #16=CYLINDRICAL_SURFACE('',#419,0.0021); 36 | #17=CYLINDRICAL_SURFACE('',#421,0.0005); 37 | #18=CYLINDRICAL_SURFACE('',#423,0.0005); 38 | #19=CYLINDRICAL_SURFACE('',#425,0.005); 39 | #20=CYLINDRICAL_SURFACE('',#431,0.0476366311679548); 40 | #21=CYLINDRICAL_SURFACE('',#432,0.0534555562683525); 41 | #22=LINE('',#554,#54); 42 | #23=LINE('',#558,#55); 43 | #24=LINE('',#560,#56); 44 | #25=LINE('',#562,#57); 45 | #26=LINE('',#564,#58); 46 | #27=LINE('',#566,#59); 47 | #28=LINE('',#568,#60); 48 | #29=LINE('',#570,#61); 49 | #30=LINE('',#572,#62); 50 | #31=LINE('',#574,#63); 51 | #32=LINE('',#577,#64); 52 | #33=LINE('',#578,#65); 53 | #34=LINE('',#580,#66); 54 | #35=LINE('',#582,#67); 55 | #36=LINE('',#584,#68); 56 | #37=LINE('',#586,#69); 57 | #38=LINE('',#593,#70); 58 | #39=LINE('',#597,#71); 59 | #40=LINE('',#601,#72); 60 | #41=LINE('',#605,#73); 61 | #42=LINE('',#617,#74); 62 | #43=LINE('',#621,#75); 63 | #44=LINE('',#625,#76); 64 | #45=LINE('',#629,#77); 65 | #46=LINE('',#633,#78); 66 | #47=LINE('',#635,#79); 67 | #48=LINE('',#637,#80); 68 | #49=LINE('',#639,#81); 69 | #50=LINE('',#641,#82); 70 | #51=LINE('',#643,#83); 71 | #52=LINE('',#645,#84); 72 | #53=LINE('',#647,#85); 73 | #54=VECTOR('',#441,1.); 74 | #55=VECTOR('',#444,1.); 75 | #56=VECTOR('',#447,1.); 76 | #57=VECTOR('',#448,1.); 77 | #58=VECTOR('',#449,1.); 78 | #59=VECTOR('',#450,1.); 79 | #60=VECTOR('',#451,1.); 80 | #61=VECTOR('',#452,1.); 81 | #62=VECTOR('',#453,1.); 82 | #63=VECTOR('',#456,1.); 83 | #64=VECTOR('',#457,1.); 84 | #65=VECTOR('',#458,1.); 85 | #66=VECTOR('',#459,1.); 86 | #67=VECTOR('',#460,1.); 87 | #68=VECTOR('',#461,1.); 88 | #69=VECTOR('',#462,1.); 89 | #70=VECTOR('',#471,1.); 90 | #71=VECTOR('',#474,1.); 91 | #72=VECTOR('',#477,1.); 92 | #73=VECTOR('',#480,1.); 93 | #74=VECTOR('',#495,1.); 94 | #75=VECTOR('',#498,1.); 95 | #76=VECTOR('',#501,1.); 96 | #77=VECTOR('',#504,1.); 97 | #78=VECTOR('',#509,1.); 98 | #79=VECTOR('',#512,1.); 99 | #80=VECTOR('',#515,1.); 100 | #81=VECTOR('',#518,1.); 101 | #82=VECTOR('',#521,1.); 102 | #83=VECTOR('',#524,1.); 103 | #84=VECTOR('',#527,1.); 104 | #85=VECTOR('',#530,1.); 105 | #86=ORIENTED_EDGE('',*,*,#190,.F.); 106 | #87=ORIENTED_EDGE('',*,*,#191,.F.); 107 | #88=ORIENTED_EDGE('',*,*,#192,.F.); 108 | #89=ORIENTED_EDGE('',*,*,#193,.F.); 109 | #90=ORIENTED_EDGE('',*,*,#194,.T.); 110 | #91=ORIENTED_EDGE('',*,*,#195,.F.); 111 | #92=ORIENTED_EDGE('',*,*,#196,.T.); 112 | #93=ORIENTED_EDGE('',*,*,#197,.T.); 113 | #94=ORIENTED_EDGE('',*,*,#198,.T.); 114 | #95=ORIENTED_EDGE('',*,*,#199,.T.); 115 | #96=ORIENTED_EDGE('',*,*,#200,.T.); 116 | #97=ORIENTED_EDGE('',*,*,#201,.F.); 117 | #98=ORIENTED_EDGE('',*,*,#192,.T.); 118 | #99=ORIENTED_EDGE('',*,*,#202,.F.); 119 | #100=ORIENTED_EDGE('',*,*,#203,.T.); 120 | #101=ORIENTED_EDGE('',*,*,#194,.F.); 121 | #102=ORIENTED_EDGE('',*,*,#204,.T.); 122 | #103=ORIENTED_EDGE('',*,*,#205,.F.); 123 | #104=ORIENTED_EDGE('',*,*,#206,.F.); 124 | #105=ORIENTED_EDGE('',*,*,#207,.F.); 125 | #106=ORIENTED_EDGE('',*,*,#208,.F.); 126 | #107=ORIENTED_EDGE('',*,*,#209,.F.); 127 | #108=ORIENTED_EDGE('',*,*,#198,.F.); 128 | #109=ORIENTED_EDGE('',*,*,#210,.T.); 129 | #110=ORIENTED_EDGE('',*,*,#207,.T.); 130 | #111=ORIENTED_EDGE('',*,*,#211,.F.); 131 | #112=ORIENTED_EDGE('',*,*,#212,.F.); 132 | #113=ORIENTED_EDGE('',*,*,#213,.F.); 133 | #114=ORIENTED_EDGE('',*,*,#214,.T.); 134 | #115=ORIENTED_EDGE('',*,*,#215,.T.); 135 | #116=ORIENTED_EDGE('',*,*,#216,.F.); 136 | #117=ORIENTED_EDGE('',*,*,#217,.T.); 137 | #118=ORIENTED_EDGE('',*,*,#218,.T.); 138 | #119=ORIENTED_EDGE('',*,*,#219,.T.); 139 | #120=ORIENTED_EDGE('',*,*,#204,.F.); 140 | #121=ORIENTED_EDGE('',*,*,#193,.T.); 141 | #122=ORIENTED_EDGE('',*,*,#201,.T.); 142 | #123=ORIENTED_EDGE('',*,*,#220,.T.); 143 | #124=ORIENTED_EDGE('',*,*,#221,.T.); 144 | #125=ORIENTED_EDGE('',*,*,#222,.T.); 145 | #126=ORIENTED_EDGE('',*,*,#200,.F.); 146 | #127=ORIENTED_EDGE('',*,*,#223,.T.); 147 | #128=ORIENTED_EDGE('',*,*,#224,.T.); 148 | #129=ORIENTED_EDGE('',*,*,#225,.T.); 149 | #130=ORIENTED_EDGE('',*,*,#226,.F.); 150 | #131=ORIENTED_EDGE('',*,*,#227,.T.); 151 | #132=ORIENTED_EDGE('',*,*,#228,.T.); 152 | #133=ORIENTED_EDGE('',*,*,#229,.F.); 153 | #134=ORIENTED_EDGE('',*,*,#230,.F.); 154 | #135=ORIENTED_EDGE('',*,*,#231,.F.); 155 | #136=ORIENTED_EDGE('',*,*,#205,.T.); 156 | #137=ORIENTED_EDGE('',*,*,#220,.F.); 157 | #138=ORIENTED_EDGE('',*,*,#232,.F.); 158 | #139=ORIENTED_EDGE('',*,*,#211,.T.); 159 | #140=ORIENTED_EDGE('',*,*,#206,.T.); 160 | #141=ORIENTED_EDGE('',*,*,#231,.T.); 161 | #142=ORIENTED_EDGE('',*,*,#233,.F.); 162 | #143=ORIENTED_EDGE('',*,*,#212,.T.); 163 | #144=ORIENTED_EDGE('',*,*,#232,.T.); 164 | #145=ORIENTED_EDGE('',*,*,#230,.T.); 165 | #146=ORIENTED_EDGE('',*,*,#234,.F.); 166 | #147=ORIENTED_EDGE('',*,*,#213,.T.); 167 | #148=ORIENTED_EDGE('',*,*,#233,.T.); 168 | #149=ORIENTED_EDGE('',*,*,#229,.T.); 169 | #150=ORIENTED_EDGE('',*,*,#214,.F.); 170 | #151=ORIENTED_EDGE('',*,*,#234,.T.); 171 | #152=ORIENTED_EDGE('',*,*,#228,.F.); 172 | #153=ORIENTED_EDGE('',*,*,#235,.F.); 173 | #154=ORIENTED_EDGE('',*,*,#215,.F.); 174 | #155=ORIENTED_EDGE('',*,*,#235,.T.); 175 | #156=ORIENTED_EDGE('',*,*,#227,.F.); 176 | #157=ORIENTED_EDGE('',*,*,#236,.F.); 177 | #158=ORIENTED_EDGE('',*,*,#237,.F.); 178 | #159=ORIENTED_EDGE('',*,*,#216,.T.); 179 | #160=ORIENTED_EDGE('',*,*,#236,.T.); 180 | #161=ORIENTED_EDGE('',*,*,#226,.T.); 181 | #162=ORIENTED_EDGE('',*,*,#217,.F.); 182 | #163=ORIENTED_EDGE('',*,*,#237,.T.); 183 | #164=ORIENTED_EDGE('',*,*,#225,.F.); 184 | #165=ORIENTED_EDGE('',*,*,#238,.F.); 185 | #166=ORIENTED_EDGE('',*,*,#218,.F.); 186 | #167=ORIENTED_EDGE('',*,*,#238,.T.); 187 | #168=ORIENTED_EDGE('',*,*,#224,.F.); 188 | #169=ORIENTED_EDGE('',*,*,#239,.F.); 189 | #170=ORIENTED_EDGE('',*,*,#219,.F.); 190 | #171=ORIENTED_EDGE('',*,*,#239,.T.); 191 | #172=ORIENTED_EDGE('',*,*,#223,.F.); 192 | #173=ORIENTED_EDGE('',*,*,#199,.F.); 193 | #174=ORIENTED_EDGE('',*,*,#222,.F.); 194 | #175=ORIENTED_EDGE('',*,*,#209,.T.); 195 | #176=ORIENTED_EDGE('',*,*,#221,.F.); 196 | #177=ORIENTED_EDGE('',*,*,#190,.T.); 197 | #178=ORIENTED_EDGE('',*,*,#240,.T.); 198 | #179=ORIENTED_EDGE('',*,*,#202,.T.); 199 | #180=ORIENTED_EDGE('',*,*,#241,.F.); 200 | #181=ORIENTED_EDGE('',*,*,#196,.F.); 201 | #182=ORIENTED_EDGE('',*,*,#195,.T.); 202 | #183=ORIENTED_EDGE('',*,*,#191,.T.); 203 | #184=ORIENTED_EDGE('',*,*,#203,.F.); 204 | #185=ORIENTED_EDGE('',*,*,#240,.F.); 205 | #186=ORIENTED_EDGE('',*,*,#241,.T.); 206 | #187=ORIENTED_EDGE('',*,*,#208,.T.); 207 | #188=ORIENTED_EDGE('',*,*,#210,.F.); 208 | #189=ORIENTED_EDGE('',*,*,#197,.F.); 209 | #190=EDGE_CURVE('',#242,#242,#278,.F.); 210 | #191=EDGE_CURVE('',#243,#244,#279,.T.); 211 | #192=EDGE_CURVE('',#245,#243,#22,.T.); 212 | #193=EDGE_CURVE('',#246,#245,#280,.T.); 213 | #194=EDGE_CURVE('',#246,#244,#23,.T.); 214 | #195=EDGE_CURVE('',#247,#243,#24,.F.); 215 | #196=EDGE_CURVE('',#247,#248,#25,.T.); 216 | #197=EDGE_CURVE('',#248,#249,#26,.F.); 217 | #198=EDGE_CURVE('',#249,#250,#27,.T.); 218 | #199=EDGE_CURVE('',#250,#251,#28,.T.); 219 | #200=EDGE_CURVE('',#251,#252,#29,.T.); 220 | #201=EDGE_CURVE('',#245,#252,#30,.T.); 221 | #202=EDGE_CURVE('',#253,#254,#31,.T.); 222 | #203=EDGE_CURVE('',#253,#244,#32,.F.); 223 | #204=EDGE_CURVE('',#246,#255,#33,.F.); 224 | #205=EDGE_CURVE('',#256,#255,#34,.T.); 225 | #206=EDGE_CURVE('',#257,#256,#35,.T.); 226 | #207=EDGE_CURVE('',#258,#257,#36,.T.); 227 | #208=EDGE_CURVE('',#254,#258,#37,.F.); 228 | #209=EDGE_CURVE('',#259,#259,#281,.F.); 229 | #210=EDGE_CURVE('',#249,#258,#282,.T.); 230 | #211=EDGE_CURVE('',#260,#257,#283,.T.); 231 | #212=EDGE_CURVE('',#261,#260,#38,.T.); 232 | #213=EDGE_CURVE('',#262,#261,#284,.F.); 233 | #214=EDGE_CURVE('',#262,#263,#39,.T.); 234 | #215=EDGE_CURVE('',#263,#264,#285,.F.); 235 | #216=EDGE_CURVE('',#265,#264,#40,.T.); 236 | #217=EDGE_CURVE('',#265,#266,#286,.F.); 237 | #218=EDGE_CURVE('',#266,#267,#41,.T.); 238 | #219=EDGE_CURVE('',#267,#250,#287,.F.); 239 | #220=EDGE_CURVE('',#252,#255,#288,.F.); 240 | #221=EDGE_CURVE('',#268,#268,#289,.T.); 241 | #222=EDGE_CURVE('',#269,#269,#290,.T.); 242 | #223=EDGE_CURVE('',#251,#270,#291,.T.); 243 | #224=EDGE_CURVE('',#270,#271,#42,.T.); 244 | #225=EDGE_CURVE('',#271,#272,#292,.T.); 245 | #226=EDGE_CURVE('',#273,#272,#43,.T.); 246 | #227=EDGE_CURVE('',#273,#274,#293,.T.); 247 | #228=EDGE_CURVE('',#274,#275,#44,.T.); 248 | #229=EDGE_CURVE('',#276,#275,#294,.T.); 249 | #230=EDGE_CURVE('',#277,#276,#45,.T.); 250 | #231=EDGE_CURVE('',#256,#277,#295,.T.); 251 | #232=EDGE_CURVE('',#260,#277,#46,.T.); 252 | #233=EDGE_CURVE('',#261,#276,#47,.T.); 253 | #234=EDGE_CURVE('',#262,#275,#48,.F.); 254 | #235=EDGE_CURVE('',#263,#274,#49,.T.); 255 | #236=EDGE_CURVE('',#264,#273,#50,.T.); 256 | #237=EDGE_CURVE('',#265,#272,#51,.T.); 257 | #238=EDGE_CURVE('',#266,#271,#52,.T.); 258 | #239=EDGE_CURVE('',#267,#270,#53,.T.); 259 | #240=EDGE_CURVE('',#247,#253,#296,.T.); 260 | #241=EDGE_CURVE('',#248,#254,#297,.T.); 261 | #242=VERTEX_POINT('',#550); 262 | #243=VERTEX_POINT('',#552); 263 | #244=VERTEX_POINT('',#553); 264 | #245=VERTEX_POINT('',#555); 265 | #246=VERTEX_POINT('',#557); 266 | #247=VERTEX_POINT('',#561); 267 | #248=VERTEX_POINT('',#563); 268 | #249=VERTEX_POINT('',#565); 269 | #250=VERTEX_POINT('',#567); 270 | #251=VERTEX_POINT('',#569); 271 | #252=VERTEX_POINT('',#571); 272 | #253=VERTEX_POINT('',#575); 273 | #254=VERTEX_POINT('',#576); 274 | #255=VERTEX_POINT('',#579); 275 | #256=VERTEX_POINT('',#581); 276 | #257=VERTEX_POINT('',#583); 277 | #258=VERTEX_POINT('',#585); 278 | #259=VERTEX_POINT('',#589); 279 | #260=VERTEX_POINT('',#592); 280 | #261=VERTEX_POINT('',#594); 281 | #262=VERTEX_POINT('',#596); 282 | #263=VERTEX_POINT('',#598); 283 | #264=VERTEX_POINT('',#600); 284 | #265=VERTEX_POINT('',#602); 285 | #266=VERTEX_POINT('',#604); 286 | #267=VERTEX_POINT('',#606); 287 | #268=VERTEX_POINT('',#612); 288 | #269=VERTEX_POINT('',#614); 289 | #270=VERTEX_POINT('',#616); 290 | #271=VERTEX_POINT('',#618); 291 | #272=VERTEX_POINT('',#620); 292 | #273=VERTEX_POINT('',#622); 293 | #274=VERTEX_POINT('',#624); 294 | #275=VERTEX_POINT('',#626); 295 | #276=VERTEX_POINT('',#628); 296 | #277=VERTEX_POINT('',#630); 297 | #278=CIRCLE('',#394,0.00206); 298 | #279=CIRCLE('',#395,0.0476366311679548); 299 | #280=CIRCLE('',#396,0.00476); 300 | #281=CIRCLE('',#400,0.00206); 301 | #282=CIRCLE('',#401,0.0534555562683525); 302 | #283=CIRCLE('',#402,0.00486); 303 | #284=CIRCLE('',#403,0.0021); 304 | #285=CIRCLE('',#404,0.0005); 305 | #286=CIRCLE('',#405,0.0005); 306 | #287=CIRCLE('',#406,0.005); 307 | #288=CIRCLE('',#408,0.00476); 308 | #289=CIRCLE('',#410,0.00336); 309 | #290=CIRCLE('',#411,0.00336); 310 | #291=CIRCLE('',#412,0.005); 311 | #292=CIRCLE('',#413,0.0005); 312 | #293=CIRCLE('',#414,0.0005); 313 | #294=CIRCLE('',#415,0.0021); 314 | #295=CIRCLE('',#416,0.00486); 315 | #296=CIRCLE('',#429,0.0476366311679548); 316 | #297=CIRCLE('',#430,0.0534555562683525); 317 | #298=EDGE_LOOP('',(#86)); 318 | #299=EDGE_LOOP('',(#87,#88,#89,#90)); 319 | #300=EDGE_LOOP('',(#91,#92,#93,#94,#95,#96,#97,#98)); 320 | #301=EDGE_LOOP('',(#99,#100,#101,#102,#103,#104,#105,#106)); 321 | #302=EDGE_LOOP('',(#107)); 322 | #303=EDGE_LOOP('',(#108,#109,#110,#111,#112,#113,#114,#115,#116,#117,#118, 323 | #119)); 324 | #304=EDGE_LOOP('',(#120,#121,#122,#123)); 325 | #305=EDGE_LOOP('',(#124)); 326 | #306=EDGE_LOOP('',(#125)); 327 | #307=EDGE_LOOP('',(#126,#127,#128,#129,#130,#131,#132,#133,#134,#135,#136, 328 | #137)); 329 | #308=EDGE_LOOP('',(#138,#139,#140,#141)); 330 | #309=EDGE_LOOP('',(#142,#143,#144,#145)); 331 | #310=EDGE_LOOP('',(#146,#147,#148,#149)); 332 | #311=EDGE_LOOP('',(#150,#151,#152,#153)); 333 | #312=EDGE_LOOP('',(#154,#155,#156,#157)); 334 | #313=EDGE_LOOP('',(#158,#159,#160,#161)); 335 | #314=EDGE_LOOP('',(#162,#163,#164,#165)); 336 | #315=EDGE_LOOP('',(#166,#167,#168,#169)); 337 | #316=EDGE_LOOP('',(#170,#171,#172,#173)); 338 | #317=EDGE_LOOP('',(#174)); 339 | #318=EDGE_LOOP('',(#175)); 340 | #319=EDGE_LOOP('',(#176)); 341 | #320=EDGE_LOOP('',(#177)); 342 | #321=EDGE_LOOP('',(#178,#179,#180,#181)); 343 | #322=EDGE_LOOP('',(#182,#183,#184,#185)); 344 | #323=EDGE_LOOP('',(#186,#187,#188,#189)); 345 | #324=FACE_BOUND('',#298,.T.); 346 | #325=FACE_BOUND('',#299,.T.); 347 | #326=FACE_BOUND('',#300,.T.); 348 | #327=FACE_BOUND('',#301,.T.); 349 | #328=FACE_BOUND('',#302,.T.); 350 | #329=FACE_BOUND('',#303,.T.); 351 | #330=FACE_BOUND('',#304,.T.); 352 | #331=FACE_BOUND('',#305,.T.); 353 | #332=FACE_BOUND('',#306,.T.); 354 | #333=FACE_BOUND('',#307,.T.); 355 | #334=FACE_BOUND('',#308,.T.); 356 | #335=FACE_BOUND('',#309,.T.); 357 | #336=FACE_BOUND('',#310,.T.); 358 | #337=FACE_BOUND('',#311,.T.); 359 | #338=FACE_BOUND('',#312,.T.); 360 | #339=FACE_BOUND('',#313,.T.); 361 | #340=FACE_BOUND('',#314,.T.); 362 | #341=FACE_BOUND('',#315,.T.); 363 | #342=FACE_BOUND('',#316,.T.); 364 | #343=FACE_BOUND('',#317,.T.); 365 | #344=FACE_BOUND('',#318,.T.); 366 | #345=FACE_BOUND('',#319,.T.); 367 | #346=FACE_BOUND('',#320,.T.); 368 | #347=FACE_BOUND('',#321,.T.); 369 | #348=FACE_BOUND('',#322,.T.); 370 | #349=FACE_BOUND('',#323,.T.); 371 | #350=PLANE('',#393); 372 | #351=PLANE('',#397); 373 | #352=PLANE('',#398); 374 | #353=PLANE('',#399); 375 | #354=PLANE('',#409); 376 | #355=PLANE('',#418); 377 | #356=PLANE('',#420); 378 | #357=PLANE('',#422); 379 | #358=PLANE('',#424); 380 | #359=PLANE('',#428); 381 | #360=ADVANCED_FACE('',(#324,#325),#350,.F.); 382 | #361=ADVANCED_FACE('',(#326),#351,.F.); 383 | #362=ADVANCED_FACE('',(#327),#352,.T.); 384 | #363=ADVANCED_FACE('',(#328,#329),#353,.F.); 385 | #364=ADVANCED_FACE('',(#330),#14,.T.); 386 | #365=ADVANCED_FACE('',(#331,#332,#333),#354,.T.); 387 | #366=ADVANCED_FACE('',(#334),#15,.T.); 388 | #367=ADVANCED_FACE('',(#335),#355,.F.); 389 | #368=ADVANCED_FACE('',(#336),#16,.F.); 390 | #369=ADVANCED_FACE('',(#337),#356,.T.); 391 | #370=ADVANCED_FACE('',(#338),#17,.T.); 392 | #371=ADVANCED_FACE('',(#339),#357,.F.); 393 | #372=ADVANCED_FACE('',(#340),#18,.T.); 394 | #373=ADVANCED_FACE('',(#341),#358,.T.); 395 | #374=ADVANCED_FACE('',(#342),#19,.T.); 396 | #375=ADVANCED_FACE('',(#343,#344),#12,.F.); 397 | #376=ADVANCED_FACE('',(#345,#346),#13,.F.); 398 | #377=ADVANCED_FACE('',(#347),#359,.F.); 399 | #378=ADVANCED_FACE('',(#348),#20,.T.); 400 | #379=ADVANCED_FACE('',(#349),#21,.F.); 401 | #380=CLOSED_SHELL('',(#360,#361,#362,#363,#364,#365,#366,#367,#368,#369, 402 | #370,#371,#372,#373,#374,#375,#376,#377,#378,#379)); 403 | #381=STYLED_ITEM('',(#382),#389); 404 | #382=PRESENTATION_STYLE_ASSIGNMENT((#383)); 405 | #383=SURFACE_STYLE_USAGE(.BOTH.,#384); 406 | #384=SURFACE_SIDE_STYLE('',(#385)); 407 | #385=SURFACE_STYLE_FILL_AREA(#386); 408 | #386=FILL_AREA_STYLE('',(#387)); 409 | #387=FILL_AREA_STYLE_COLOUR('',#388); 410 | #388=COLOUR_RGB('',0.301960784313725,0.301960784313725,0.301960784313725); 411 | #389=MANIFOLD_SOLID_BREP('Wire Retainer',#380); 412 | #390=SHAPE_DEFINITION_REPRESENTATION(#662,#391); 413 | #391=SHAPE_REPRESENTATION('Wire Retainer',(#392),#657); 414 | #392=AXIS2_PLACEMENT_3D('',#547,#433,#434); 415 | #393=AXIS2_PLACEMENT_3D('',#548,#435,#436); 416 | #394=AXIS2_PLACEMENT_3D('',#549,#437,#438); 417 | #395=AXIS2_PLACEMENT_3D('',#551,#439,#440); 418 | #396=AXIS2_PLACEMENT_3D('',#556,#442,#443); 419 | #397=AXIS2_PLACEMENT_3D('',#559,#445,#446); 420 | #398=AXIS2_PLACEMENT_3D('',#573,#454,#455); 421 | #399=AXIS2_PLACEMENT_3D('',#587,#463,#464); 422 | #400=AXIS2_PLACEMENT_3D('',#588,#465,#466); 423 | #401=AXIS2_PLACEMENT_3D('',#590,#467,#468); 424 | #402=AXIS2_PLACEMENT_3D('',#591,#469,#470); 425 | #403=AXIS2_PLACEMENT_3D('',#595,#472,#473); 426 | #404=AXIS2_PLACEMENT_3D('',#599,#475,#476); 427 | #405=AXIS2_PLACEMENT_3D('',#603,#478,#479); 428 | #406=AXIS2_PLACEMENT_3D('',#607,#481,#482); 429 | #407=AXIS2_PLACEMENT_3D('',#608,#483,#484); 430 | #408=AXIS2_PLACEMENT_3D('',#609,#485,#486); 431 | #409=AXIS2_PLACEMENT_3D('',#610,#487,#488); 432 | #410=AXIS2_PLACEMENT_3D('',#611,#489,#490); 433 | #411=AXIS2_PLACEMENT_3D('',#613,#491,#492); 434 | #412=AXIS2_PLACEMENT_3D('',#615,#493,#494); 435 | #413=AXIS2_PLACEMENT_3D('',#619,#496,#497); 436 | #414=AXIS2_PLACEMENT_3D('',#623,#499,#500); 437 | #415=AXIS2_PLACEMENT_3D('',#627,#502,#503); 438 | #416=AXIS2_PLACEMENT_3D('',#631,#505,#506); 439 | #417=AXIS2_PLACEMENT_3D('',#632,#507,#508); 440 | #418=AXIS2_PLACEMENT_3D('',#634,#510,#511); 441 | #419=AXIS2_PLACEMENT_3D('',#636,#513,#514); 442 | #420=AXIS2_PLACEMENT_3D('',#638,#516,#517); 443 | #421=AXIS2_PLACEMENT_3D('',#640,#519,#520); 444 | #422=AXIS2_PLACEMENT_3D('',#642,#522,#523); 445 | #423=AXIS2_PLACEMENT_3D('',#644,#525,#526); 446 | #424=AXIS2_PLACEMENT_3D('',#646,#528,#529); 447 | #425=AXIS2_PLACEMENT_3D('',#648,#531,#532); 448 | #426=AXIS2_PLACEMENT_3D('',#649,#533,#534); 449 | #427=AXIS2_PLACEMENT_3D('',#650,#535,#536); 450 | #428=AXIS2_PLACEMENT_3D('',#651,#537,#538); 451 | #429=AXIS2_PLACEMENT_3D('',#652,#539,#540); 452 | #430=AXIS2_PLACEMENT_3D('',#653,#541,#542); 453 | #431=AXIS2_PLACEMENT_3D('',#654,#543,#544); 454 | #432=AXIS2_PLACEMENT_3D('',#655,#545,#546); 455 | #433=DIRECTION('',(0.,0.,1.)); 456 | #434=DIRECTION('',(1.,0.,0.)); 457 | #435=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 458 | #436=DIRECTION('',(1.,8.95054015489422E-29,-1.62401258950381E-14)); 459 | #437=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 460 | #438=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 461 | #439=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 462 | #440=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 463 | #441=DIRECTION('',(1.23574173447567E-14,-1.,-5.51137362649957E-15)); 464 | #442=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 465 | #443=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 466 | #444=DIRECTION('',(1.23574173447567E-14,-1.,-5.51137362649957E-15)); 467 | #445=DIRECTION('',(-1.,-1.23574173447568E-14,1.6240125895038E-14)); 468 | #446=DIRECTION('',(1.6240125895038E-14,0.,1.)); 469 | #447=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 470 | #448=DIRECTION('',(1.23574173447567E-14,-1.,-5.51137362649957E-15)); 471 | #449=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 472 | #450=DIRECTION('',(1.23574173447567E-14,-1.,-5.51137362649957E-15)); 473 | #451=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 474 | #452=DIRECTION('',(-1.23574173447567E-14,1.,5.51137362649957E-15)); 475 | #453=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 476 | #454=DIRECTION('',(-1.,-1.23574173447568E-14,1.6240125895038E-14)); 477 | #455=DIRECTION('',(1.6240125895038E-14,0.,1.)); 478 | #456=DIRECTION('',(1.23574173447567E-14,-1.,-5.51137362649957E-15)); 479 | #457=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 480 | #458=DIRECTION('',(1.6240125895038E-14,0.,1.)); 481 | #459=DIRECTION('',(-1.23574173447567E-14,1.,5.51137362649957E-15)); 482 | #460=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 483 | #461=DIRECTION('',(1.23574173447567E-14,-1.,-5.51137362649957E-15)); 484 | #462=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 485 | #463=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 486 | #464=DIRECTION('',(1.,8.95054015489422E-29,-1.62401258950381E-14)); 487 | #465=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 488 | #466=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 489 | #467=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 490 | #468=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 491 | #469=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 492 | #470=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 493 | #471=DIRECTION('',(-0.552606322014065,0.833442411249924,1.35678087644712E-14)); 494 | #472=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 495 | #473=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 496 | #474=DIRECTION('',(-0.5,-0.866025403784438,3.34707337722302E-15)); 497 | #475=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 498 | #476=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 499 | #477=DIRECTION('',(-0.766871242182369,0.641800979988089,1.59912905128937E-14)); 500 | #478=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 501 | #479=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 502 | #480=DIRECTION('',(0.5,0.866025403784438,-3.34707337722302E-15)); 503 | #481=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 504 | #482=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 505 | #483=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 506 | #484=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 507 | #485=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 508 | #486=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 509 | #487=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 510 | #488=DIRECTION('',(1.,8.95054015489422E-29,-1.62401258950381E-14)); 511 | #489=DIRECTION('',(1.62401258950381E-14,-5.51137362649937E-15,1.)); 512 | #490=DIRECTION('',(1.,0.,-1.62401258950381E-14)); 513 | #491=DIRECTION('',(1.62401258950381E-14,-5.51137362649937E-15,1.)); 514 | #492=DIRECTION('',(1.,0.,-1.62401258950381E-14)); 515 | #493=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 516 | #494=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 517 | #495=DIRECTION('',(-0.5,-0.866025403784438,3.34707337722302E-15)); 518 | #496=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 519 | #497=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 520 | #498=DIRECTION('',(0.766871242182369,-0.641800979988089,-1.59912905128937E-14)); 521 | #499=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 522 | #500=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 523 | #501=DIRECTION('',(0.5,0.866025403784438,-3.34707337722302E-15)); 524 | #502=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 525 | #503=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 526 | #504=DIRECTION('',(0.552606322014065,-0.833442411249924,-1.35678087644712E-14)); 527 | #505=DIRECTION('',(1.62401258950381E-14,-5.51137362649937E-15,1.)); 528 | #506=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 529 | #507=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 530 | #508=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 531 | #509=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 532 | #510=DIRECTION('',(0.833442411249924,0.552606322014065,-1.04895897759777E-14)); 533 | #511=DIRECTION('',(-0.552606322014065,0.833442411249924,0.)); 534 | #512=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 535 | #513=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 536 | #514=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 537 | #515=DIRECTION('',(1.45665892064265E-14,-8.41002419950508E-15,1.)); 538 | #516=DIRECTION('',(-0.866025403784438,0.5,1.68200483990102E-14)); 539 | #517=DIRECTION('',(-0.5,-0.866025403784438,0.)); 540 | #518=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 541 | #519=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 542 | #520=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 543 | #521=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 544 | #522=DIRECTION('',(0.641800979988089,0.766871242182369,-6.19641477548064E-15)); 545 | #523=DIRECTION('',(-0.766871242182369,0.641800979988089,0.)); 546 | #524=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 547 | #525=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 548 | #526=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 549 | #527=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 550 | #528=DIRECTION('',(0.866025403784438,-0.5,-1.68200483990102E-14)); 551 | #529=DIRECTION('',(0.5,0.866025403784438,0.)); 552 | #530=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 553 | #531=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 554 | #532=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 555 | #533=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 556 | #534=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 557 | #535=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 558 | #536=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 559 | #537=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 560 | #538=DIRECTION('',(1.,8.95054015489422E-29,-1.62401258950381E-14)); 561 | #539=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 562 | #540=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 563 | #541=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 564 | #542=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 565 | #543=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 566 | #544=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 567 | #545=DIRECTION('',(-1.62401258950381E-14,5.51137362649937E-15,-1.)); 568 | #546=DIRECTION('',(-1.,0.,1.62401258950381E-14)); 569 | #547=CARTESIAN_POINT('',(0.,0.,0.)); 570 | #548=CARTESIAN_POINT('',(0.0137348391448222,-0.00139999999999946,-0.0355000433874235)); 571 | #549=CARTESIAN_POINT('',(0.0137038675452205,0.00956312683163462,-0.0355000433874235)); 572 | #550=CARTESIAN_POINT('',(0.0116438675452205,0.00956312683163462,-0.0355000433874235)); 573 | #551=CARTESIAN_POINT('',(0.0420177047805312,0.0430291820692578,-0.0355000433874238)); 574 | #552=CARTESIAN_POINT('',(0.0184638675452207,0.00162307888960248,-0.0355000433874237)); 575 | #553=CARTESIAN_POINT('',(0.00894386754522056,0.0087455136604667,-0.0355000433874234)); 576 | #554=CARTESIAN_POINT('',(0.0184638675452207,0.00100000000000069,-0.0355000433874237)); 577 | #555=CARTESIAN_POINT('',(0.0184638675452206,0.00956312683163468,-0.0355000433874236)); 578 | #556=CARTESIAN_POINT('',(0.0137038675452205,0.00956312683163462,-0.0355000433874235)); 579 | #557=CARTESIAN_POINT('',(0.00894386754522054,0.00956312683163455,-0.0355000433874234)); 580 | #558=CARTESIAN_POINT('',(0.00894386754522064,0.00100000000000058,-0.0355000433874234)); 581 | #559=CARTESIAN_POINT('',(0.0184638675452207,0.00100000000000069,-0.0352980433874236)); 582 | #560=CARTESIAN_POINT('',(0.0184638675452207,0.00162307888960247,-0.0344980433874248)); 583 | #561=CARTESIAN_POINT('',(0.0184638675452207,0.00162307888960247,-0.0360000433874237)); 584 | #562=CARTESIAN_POINT('',(0.0184638675452207,0.0010000000000007,-0.0360000433874237)); 585 | #563=CARTESIAN_POINT('',(0.0184638675452208,-0.00495741238639933,-0.0360000433874237)); 586 | #564=CARTESIAN_POINT('',(0.0184638675452208,-0.00495741238639933,-0.0344980433874249)); 587 | #565=CARTESIAN_POINT('',(0.0184638675452208,-0.00495741238639933,-0.0355000433874237)); 588 | #566=CARTESIAN_POINT('',(0.0184638675452207,0.00100000000000069,-0.0355000433874237)); 589 | #567=CARTESIAN_POINT('',(0.0184638675452209,-0.015185620953037,-0.0355000433874237)); 590 | #568=CARTESIAN_POINT('',(0.0184638675452209,-0.015185620953037,-0.0352980433874237)); 591 | #569=CARTESIAN_POINT('',(0.0184638675452209,-0.015185620953037,-0.0368000433874237)); 592 | #570=CARTESIAN_POINT('',(0.0184638675452207,-0.0013999999999994,-0.0368000433874237)); 593 | #571=CARTESIAN_POINT('',(0.0184638675452205,0.00956312683163469,-0.0368000433874236)); 594 | #572=CARTESIAN_POINT('',(0.0184638675452206,0.00956312683163468,-0.0352980433874236)); 595 | #573=CARTESIAN_POINT('',(0.00894386754522065,0.00100000000000058,-0.0352980433874234)); 596 | #574=CARTESIAN_POINT('',(0.00894386754522064,0.00100000000000058,-0.0360000433874234)); 597 | #575=CARTESIAN_POINT('',(0.00894386754522054,0.00874551366046671,-0.0360000433874234)); 598 | #576=CARTESIAN_POINT('',(0.00894386754522063,0.00103373247657695,-0.0360000433874234)); 599 | #577=CARTESIAN_POINT('',(0.00894386754522058,0.00874551366046669,-0.0344980433874246)); 600 | #578=CARTESIAN_POINT('',(0.00894386754522054,0.00956312683163455,-0.0352980433874234)); 601 | #579=CARTESIAN_POINT('',(0.00894386754522052,0.00956312683163456,-0.0368000433874235)); 602 | #580=CARTESIAN_POINT('',(0.00894386754522065,-0.00139999999999951,-0.0368000433874235)); 603 | #581=CARTESIAN_POINT('',(0.00894386754522073,-0.00753298646187739,-0.0368000433874235)); 604 | #582=CARTESIAN_POINT('',(0.00894386754522075,-0.0075329864618774,-0.0352980433874235)); 605 | #583=CARTESIAN_POINT('',(0.00894386754522075,-0.0075329864618774,-0.0355000433874235)); 606 | #584=CARTESIAN_POINT('',(0.00894386754522064,0.00100000000000058,-0.0355000433874234)); 607 | #585=CARTESIAN_POINT('',(0.00894386754522066,0.00103373247657695,-0.0355000433874234)); 608 | #586=CARTESIAN_POINT('',(0.00894386754522067,0.00103373247657694,-0.0344980433874247)); 609 | #587=CARTESIAN_POINT('',(0.0137348391448222,-0.00139999999999946,-0.0355000433874235)); 610 | #588=CARTESIAN_POINT('',(0.0137038675452208,-0.00756312683163334,-0.0355000433874236)); 611 | #589=CARTESIAN_POINT('',(0.0116438675452208,-0.00756312683163334,-0.0355000433874236)); 612 | #590=CARTESIAN_POINT('',(0.0420177047805297,0.0430291820692564,-0.0355000433874238)); 613 | #591=CARTESIAN_POINT('',(0.0138038675452208,-0.00753298646187733,-0.0355000433874236)); 614 | #592=CARTESIAN_POINT('',(0.00975333742654612,-0.0102186531868657,-0.0355000433874235)); 615 | #593=CARTESIAN_POINT('',(0.0110512046515342,-0.0121761001909715,-0.0355000433874236)); 616 | #594=CARTESIAN_POINT('',(0.0123657276353974,-0.0141586674575227,-0.0355000433874236)); 617 | #595=CARTESIAN_POINT('',(0.0106154985717725,-0.0153191407337523,-0.0355000433874236)); 618 | #596=CARTESIAN_POINT('',(0.0124341519197199,-0.0163691407337522,-0.0355000433874237)); 619 | #597=CARTESIAN_POINT('',(0.0113238635901038,-0.0182922165316981,-0.0355000433874236)); 620 | #598=CARTESIAN_POINT('',(0.0102555851117483,-0.0201425291328423,-0.0355000433874236)); 621 | #599=CARTESIAN_POINT('',(0.0106885978136405,-0.0203925291328423,-0.0355000433874236)); 622 | #600=CARTESIAN_POINT('',(0.0103676973236464,-0.0207759647539335,-0.0355000433874236)); 623 | #601=CARTESIAN_POINT('',(0.015430781388296,-0.0250133023090708,-0.0355000433874237)); 624 | #602=CARTESIAN_POINT('',(0.0137153565599195,-0.0235776488702812,-0.0355000433874237)); 625 | #603=CARTESIAN_POINT('',(0.0140362570499136,-0.0231942132491901,-0.0355000433874237)); 626 | #604=CARTESIAN_POINT('',(0.0144692697518058,-0.0234442132491901,-0.0355000433874237)); 627 | #605=CARTESIAN_POINT('',(0.0161085759621549,-0.0206048516037023,-0.0355000433874237)); 628 | #606=CARTESIAN_POINT('',(0.0177939945641431,-0.0176856209530371,-0.0355000433874237)); 629 | #607=CARTESIAN_POINT('',(0.0134638675452208,-0.015185620953037,-0.0355000433874237)); 630 | #608=CARTESIAN_POINT('',(0.0137038675452205,0.00956312683163462,-0.0352980433874235)); 631 | #609=CARTESIAN_POINT('',(0.0137038675452205,0.00956312683163463,-0.0368000433874235)); 632 | #610=CARTESIAN_POINT('',(0.0137348391448221,-0.00139999999999946,-0.0368000433874235)); 633 | #611=CARTESIAN_POINT('',(0.0137038675452205,0.00956312683163463,-0.0368000433874235)); 634 | #612=CARTESIAN_POINT('',(0.0170638675452205,0.00956312683163463,-0.0368000433874236)); 635 | #613=CARTESIAN_POINT('',(0.0137038675452207,-0.00756312683163334,-0.0368000433874236)); 636 | #614=CARTESIAN_POINT('',(0.0170638675452207,-0.00756312683163334,-0.0368000433874237)); 637 | #615=CARTESIAN_POINT('',(0.0134638675452208,-0.015185620953037,-0.0368000433874237)); 638 | #616=CARTESIAN_POINT('',(0.017793994564143,-0.0176856209530371,-0.0368000433874238)); 639 | #617=CARTESIAN_POINT('',(0.0238310864401802,-0.00722907109377945,-0.0368000433874238)); 640 | #618=CARTESIAN_POINT('',(0.0144692697518058,-0.0234442132491901,-0.0368000433874237)); 641 | #619=CARTESIAN_POINT('',(0.0140362570499135,-0.0231942132491901,-0.0368000433874237)); 642 | #620=CARTESIAN_POINT('',(0.0137153565599195,-0.0235776488702812,-0.0368000433874237)); 643 | #621=CARTESIAN_POINT('',(0.00281144738522484,-0.0144520757504642,-0.0368000433874235)); 644 | #622=CARTESIAN_POINT('',(0.0103676973236464,-0.0207759647539335,-0.0368000433874236)); 645 | #623=CARTESIAN_POINT('',(0.0106885978136405,-0.0203925291328423,-0.0368000433874236)); 646 | #624=CARTESIAN_POINT('',(0.0102555851117482,-0.0201425291328423,-0.0368000433874236)); 647 | #625=CARTESIAN_POINT('',(0.0192411518001226,-0.00457907109377944,-0.0368000433874237)); 648 | #626=CARTESIAN_POINT('',(0.0124341519197199,-0.0163691407337522,-0.0368000433874237)); 649 | #627=CARTESIAN_POINT('',(0.0106154985717725,-0.0153191407337523,-0.0368000433874236)); 650 | #628=CARTESIAN_POINT('',(0.0123657276353974,-0.0141586674575227,-0.0368000433874236)); 651 | #629=CARTESIAN_POINT('',(0.00690761570995212,-0.00592672767906451,-0.0368000433874235)); 652 | #630=CARTESIAN_POINT('',(0.0097533374265461,-0.0102186531868657,-0.0368000433874235)); 653 | #631=CARTESIAN_POINT('',(0.0138038675452207,-0.00753298646187732,-0.0368000433874236)); 654 | #632=CARTESIAN_POINT('',(0.0138038675452208,-0.00753298646187733,-0.0352980433874236)); 655 | #633=CARTESIAN_POINT('',(0.00975333742654613,-0.0102186531868657,-0.0352980433874235)); 656 | #634=CARTESIAN_POINT('',(0.0110512046515342,-0.0121761001909715,-0.0352980433874236)); 657 | #635=CARTESIAN_POINT('',(0.0123657276353974,-0.0141586674575227,-0.0352980433874236)); 658 | #636=CARTESIAN_POINT('',(0.0106154985717725,-0.0153191407337523,-0.0352980433874236)); 659 | #637=CARTESIAN_POINT('',(0.0124341519197199,-0.0163691407337522,-0.0352980433874236)); 660 | #638=CARTESIAN_POINT('',(0.0113238635901038,-0.0182922165316981,-0.0352980433874236)); 661 | #639=CARTESIAN_POINT('',(0.0102555851117483,-0.0201425291328423,-0.0352980433874236)); 662 | #640=CARTESIAN_POINT('',(0.0106885978136405,-0.0203925291328423,-0.0352980433874236)); 663 | #641=CARTESIAN_POINT('',(0.0103676973236464,-0.0207759647539335,-0.0352980433874236)); 664 | #642=CARTESIAN_POINT('',(0.015430781388296,-0.0250133023090708,-0.0352980433874237)); 665 | #643=CARTESIAN_POINT('',(0.0137153565599195,-0.0235776488702812,-0.0352980433874237)); 666 | #644=CARTESIAN_POINT('',(0.0140362570499136,-0.0231942132491901,-0.0352980433874237)); 667 | #645=CARTESIAN_POINT('',(0.0144692697518058,-0.0234442132491901,-0.0352980433874237)); 668 | #646=CARTESIAN_POINT('',(0.0161085759621549,-0.0206048516037023,-0.0352980433874237)); 669 | #647=CARTESIAN_POINT('',(0.0177939945641431,-0.0176856209530371,-0.0352980433874237)); 670 | #648=CARTESIAN_POINT('',(0.0134638675452208,-0.015185620953037,-0.0352980433874236)); 671 | #649=CARTESIAN_POINT('',(0.0137038675452207,-0.00756312683163334,-0.0368000433874236)); 672 | #650=CARTESIAN_POINT('',(0.0137038675452205,0.00956312683163463,-0.0368000433874235)); 673 | #651=CARTESIAN_POINT('',(0.0137348391448221,-0.00139999999999946,-0.0360000433874235)); 674 | #652=CARTESIAN_POINT('',(0.0420177047805312,0.0430291820692578,-0.0360000433874238)); 675 | #653=CARTESIAN_POINT('',(0.0420177047805297,0.0430291820692564,-0.0360000433874238)); 676 | #654=CARTESIAN_POINT('',(0.0420177047805312,0.0430291820692578,-0.034498043387425)); 677 | #655=CARTESIAN_POINT('',(0.0420177047805297,0.0430291820692564,-0.034498043387425)); 678 | #656=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#381), 679 | #657); 680 | #657=( 681 | GEOMETRIC_REPRESENTATION_CONTEXT(3) 682 | GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#658)) 683 | GLOBAL_UNIT_ASSIGNED_CONTEXT((#661,#660,#659)) 684 | REPRESENTATION_CONTEXT('Wire Retainer','TOP_LEVEL_ASSEMBLY_PART') 685 | ); 686 | #658=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-8),#661, 687 | 'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); 688 | #659=( 689 | NAMED_UNIT(*) 690 | SI_UNIT($,.STERADIAN.) 691 | SOLID_ANGLE_UNIT() 692 | ); 693 | #660=( 694 | NAMED_UNIT(*) 695 | PLANE_ANGLE_UNIT() 696 | SI_UNIT($,.RADIAN.) 697 | ); 698 | #661=( 699 | LENGTH_UNIT() 700 | NAMED_UNIT(*) 701 | SI_UNIT($,.METRE.) 702 | ); 703 | #662=PRODUCT_DEFINITION_SHAPE('','',#663); 704 | #663=PRODUCT_DEFINITION('','',#665,#664); 705 | #664=PRODUCT_DEFINITION_CONTEXT('',#671,'design'); 706 | #665=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#667, 707 | .NOT_KNOWN.); 708 | #666=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#667)); 709 | #667=PRODUCT('Wire Retainer','Wire Retainer','Wire Retainer',(#669)); 710 | #668=PRODUCT_CATEGORY('',''); 711 | #669=PRODUCT_CONTEXT('',#671,'mechanical'); 712 | #670=APPLICATION_PROTOCOL_DEFINITION('international standard', 713 | 'ap242_managed_model_based_3d_engineering',2011,#671); 714 | #671=APPLICATION_CONTEXT('managed model based 3d engineering'); 715 | ENDSEC; 716 | END-ISO-10303-21; 717 | -------------------------------------------------------------------------------- /step/Split Flap Module.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManlyMorgan/Split-Flap-Display/d71d1cea46124314b58eac17758556e20c5fbb7f/step/Split Flap Module.zip --------------------------------------------------------------------------------