diff --git a/bom.csv b/bom.csv index 6b033444b..e72f2a38f 100644 --- a/bom.csv +++ b/bom.csv @@ -51,7 +51,7 @@ board-support,,8,FDM,Download all 3D printed parts at the link at the top of the adj-strip-feeder,,-,FDM,Download all 3D printed parts at the link at the top of the page.,,Optional,This 2-piece part can be mounted to the staging plate and adjusted to hold varying widths of tape (32mm+). Each side uses 2x M3x10mm-ultra-low-profile-button-head screws and 2x M3 wing nuts for attachment. cp40-nozzle-camera-mask,,-,FDM,Download all 3D printed parts at the link at the top of the page.,,Optional,This part can be pressed onto the CP40 nozzle holder to prevent any bright objects above the machine from interfering with bottom vision. Should be printed in a dark color. PLA-filament ,https://90a1c75758623581b3f8-5c119c3de181c9857fcb2784776b17ef.ssl.cf2.rackcdn.com/611532_989269_03_front_zoom.jpg,1.2,FIL,https://www.microcenter.com/product/611532/inland-175mm-black-pla-3d-printer-filament-1kg-spool-(22-lbs),,,Units in kg. Print both nozzle-rack and 2x z-gantry in a black color. Print top-light-mount and bottom-light-mount in a white color. -PETG-filament,https://90a1c75758623581b3f8-5c119c3de181c9857fcb2784776b17ef.ssl.cf2.rackcdn.com/503741_715474_01_front_zoom.jpg,0.004,FIL,https://www.microcenter.com/product/503741/inland-175mm-white-petg-3d-printer-filament-1kg-spool-%2822-lbs%29,,,Units in kg. Use a white material. Use for universal PCB fixture components. +PETG-filament,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/filament.png?v=1686314492,0.004,FIL,https://www.microcenter.com/product/503741/inland-175mm-white-petg-3d-printer-filament-1kg-spool-%2822-lbs%29,,,Units in kg. Use a white material. Use for universal PCB fixture components. M5-tslot-nut,https://m.media-amazon.com/images/I/51AI2rmWaML._AC_SX466_.jpg,60,FST,https://amzn.to/3b1d14V,,, M3-cap-nut,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M3-cap-nut.png?v=1696266636,3,FST,https://www.mcmaster.com/94000A330,,, M3-hex-nut,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M3-hex-nut.png?v=1696266635,23,FST,https://www.mcmaster.com/90592A085/,,,ISO4032 @@ -99,9 +99,9 @@ z-limit-harness,,1,CHA,,,,Click link above to download source down-light-harness,,1,CHA,,,,Click link above to download source up-light-harness,,1,CHA,,,,Click link above to download source pump-harness,,2,CHA,,,,Click link above to download source -mobo-to-slot1-harness,,1,CHA,https://www.mouser.com/ProductDetail/Samtec/FFSD-03-D-13.00-01?qs=PB6%2FjmICvI1f3Ok8%2FnZ2SA%3D%3D,,,320mm in length with a 2x3 1.27mm pitch IDC connector at both ends -slot25-to-slot26-harness,,1,CHA,https://www.mouser.com/ProductDetail/Samtec/FFSD-03-D-13.00-01?qs=PB6%2FjmICvI1f3Ok8%2FnZ2SA%3D%3D,,,720mm in length with a 2x3 1.27mm pitch IDC connector at both ends -blade-jumper-harness,,2,CHA,,,,30mm in length with a 2x3 1.27mm pitch IDC connector at both ends +mobo-to-slot1-harness,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/mobo-to-slot1-harness.jpg?v=1710186450,1,CHA,https://www.mouser.com/ProductDetail/Samtec/FFSD-03-D-13.00-01?qs=PB6%2FjmICvI1f3Ok8%2FnZ2SA%3D%3D,,,320mm in length with a 2x3 1.27mm pitch IDC connector at both ends +slot25-to-slot26-harness,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/slot25-to-slot26-harness.jpg?v=1710186601,1,CHA,https://www.mouser.com/ProductDetail/Samtec/FFSD-03-D-13.00-01?qs=PB6%2FjmICvI1f3Ok8%2FnZ2SA%3D%3D,,,720mm in length with a 2x3 1.27mm pitch IDC connector at both ends +blade-jumper-harness,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/blade-jumper-harness.jpg?v=1710186746,2,CHA,,,,30mm in length with a 2x3 1.27mm pitch IDC connector at both ends usb-b-to-usb-a-cable,https://m.media-amazon.com/images/I/71bhL-Kx6+L._AC_SL1500_.jpg,1,CHA,https://a.co/d/gq71q7P,,,A cable between 1-2m in length is recommended. vslot-extrusion-20mmx20mmx600mm,https://i5.walmartimages.com/asr/2e0cf04c-2ff3-49aa-80cb-8f5a66d72a9c.e854f9777be16e51343f11e4f4cb7f11.jpeg,7,MISC,https://www.amazon.com/gp/product/B085BMVZM7/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1,,, corner-bracket,https://www.mcmaster.com/mvD/Contents/gfx/ImageCache/553/5537T498p1-h03a-digitall@4x_637057412454218652.png?ver=ImageNotFound,6,MISC,https://www.mcmaster.com/5537T498/,,, @@ -110,7 +110,7 @@ NEMA11-hollow-shaft-stepper,https://www.robotdigg.com/crab/image/2016/09/24/4667 LML9B-linear-rail-100mm,https://m.media-amazon.com/images/I/51WG8VNpIYL._AC_SX466_.jpg,2,MISC,https://amzn.to/2Y2p8vJ,,, 525mm-MGN12H,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/MGN12H-525mm.png?v=1693326600,1,MISC,https://www.printedsolid.com/products/ldo-linear-rail-mgn12h-with-one-carriage-in-300-400-500-700mm-lengths,,,500mm is OK if 525mm is hard to source. 550mm-MGN12H,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/MGN12H-550mm.png?v=1693326513,2,MISC,https://www.zyltech.com/zyltech-mgn12-h-type-linear-rail-with-single-or-double-carriage-block/,,, -m3_t-nut_bar-525mm,,3,MISC,,,,This is custom made by LDO for Opulo. Individuals self-sourcing their v3.1 can instead use an additional 36x m3-t-nut. +m3_t-nut_bar-525mm,,3,MISC,,,Optional,This is custom made by LDO for Opulo. Individuals self-sourcing their machine should instead buy an additional 36x m3-t-nut. GT2-idler,https://cdn.reprapworld.com/images/default/dynamic/products/details/imgprd1273_2128908372.jpg,4,MISC,https://www.amazon.com/WINSINN-Aluminum-Timing-Pulley-Printer/dp/B07BPGYX3G/ref=psdc_16411441_t1_B078SD2XGL,,, GT2-pulley,https://cdn.reprapworld.com/images/default/dynamic/products/productoverview/imgprd1269_129687697.jpg,4,MISC,https://www.amazon.com/WINSINN-Aluminum-Synchronous-Timing-Printer/dp/B077GNZK3J/ref=psdc_16411441_t1_B07JJLZTLV?th=1,,, GT2-timing-belt,https://cdn11.bigcommerce.com/s-itwgldve/images/stencil/1280x1280/products/161/3703/profile_picture__60204.1540579835.png?c=2,4.2,MISC,https://www.amazon.com/Mercurry-Meters-timing-Rostock-GT2-6mm/dp/B071K8HYB4/ref=sr_1_3?crid=1HKUJHXOT3UPI&dchild=1&keywords=gt2+timing+belt&qid=1595949621&s=industrial&sprefix=gt2+timing+%2Cindustrial%2C144&sr=1-3,,,"Units in meters. Amount listed is the exact QTY required, we suggest ordering 5m for slack length." @@ -120,10 +120,16 @@ vacuum-pump,https://sc04.alicdn.com/kf/H1b9f842676a343bcb7e4decfded9bcc9H.jpg,2, solenoid-valve,https://ae01.alicdn.com/kf/Hafe8a28e79b74bfd869df5bc6ba64cb3d.jpg,2,MISC,https://opulo.io/products/vacuum-pump-and-valve-set,,, pneumatic-y-adapter,https://cdn.automationdirect.com/images/products/medium/m_ury6m4m.jpg,2,MISC,https://www.automationdirect.com/adc/shopping/catalog/pneumatic_components/push-to-connect_union_pneumatic_fittings_(thermoplastic)/union_y_reducer/ury6m-4m,,, rotary-pneumatic-adapter,https://us.misumi-ec.com/vona2/detail/221006294602/?HissuCode=KSH04-M5,2,MISC,,,, -pneumatic-tubing-4mmOD,https://cdn.automationdirect.com/images/products/large/l_pu532blk100.jpg,4.05,MISC,https://www.automationdirect.com/adc/shopping/catalog/pneumatic_components/flexible_pneumatic_tubing_-a-_hoses/straight_polyurethane_(pur)_tubing/5-z-32_inch_(4_mm)/pu532blk100,,,Units in meters. -pneumatic-tubing-6mmOD,https://cdn.automationdirect.com/images/products/medium/m_pu6mblk100.jpg,0.6,MISC,https://www.automationdirect.com/adc/shopping/catalog/pneumatic_components/flexible_pneumatic_tubing_-a-_hoses/straight_polyurethane_(pur)_tubing/6_mm/pu6mblk100,,,Units in meters. +pneumatic-tubing-4mmOD,https://cdn.automationdirect.com/images/products/large/l_pu532blk100.jpg,4.05,MISC,https://www.automationdirect.com/adc/shopping/catalog/pneumatic_components/flexible_pneumatic_tubing_-a-_hoses/straight_polyurethane_(pur)_tubing/5-z-32_inch_(4_mm)/pu532blk100,,,Units in meters +pneumatic-tubing-6mmOD,https://cdn.automationdirect.com/images/products/medium/m_pu6mblk100.jpg,0.6,MISC,https://www.automationdirect.com/adc/shopping/catalog/pneumatic_components/flexible_pneumatic_tubing_-a-_hoses/straight_polyurethane_(pur)_tubing/6_mm/pu6mblk100,,,Units in meters 24v-power-supply,https://avacomtech.com/pub/media/catalog/product/cache/image/1000x1320/e9c3970ab036de70892d86c6d221abfe/w/e/web1_2.png,1,MISC,,,,A power supply that can output at least 6A @ 24v DC is recommended. Assumed that any requisite AC power cord is included. -cp40-holder,https://www.robotdigg.com/crab/image/2016/09/24/2dc797b0066ef492441f43c2f25c37a9-300-300.jpeg,2,MISC,https://opulo.io/products/wired-toolhead-assembly,https://www.robotdigg.com/product/799/OpenPnP-CP40-Holder,, +nozzle-holder,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/nozzle-holder.jpg?v=1710185336,2,MISC,https://opulo.io/products/wired-toolhead-assembly,https://www.robotdigg.com/product/799/OpenPnP-CP40-Holder,, +nozzle-holder-inner-body,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/nozzle-holder-inner-body.jpg?v=1710185336,2,MISC,,,Optional,Click link above to download source +nozzle-holder-outer-body,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/nozzle-holder-outer-body.jpg?v=1710185336,2,MISC,,,Optional,Click link above to download source +nozzle-holder-spring,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/spr-0002.png?v=1710185336,2,MISC,https://www.leespring.com/compression-springs?search=LCM050C03M,,Optional,Click link above to download source +4mmIDx0.6mmCS-o-ring,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/4mmIDx0.6mmCS-o-ring.jpg?v=1710185336,4,MISC,https://www.polymax.co.uk/o-ring-4mm-id-x-0-6mm-cs-nitrile-70-sha,,Optional,Click link above to download source +2mm-pin,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/2mm-pin.jpg?v=1710185481,2,MISC,https://www.mcmaster.com/97049A101/,,Optional,ISO 2338-H8 undersized 2mm dowel pin +precision-machine-oil,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/DeoxIT_X10S_Precison_Oil.jpg?v=1710185336,0.02,MISC,https://www.mcmaster.com/2278N13/,,Optional,Unit in milliliters N045-CP40-nozzle-tip,https://www.robotdigg.com/crab/image/2016/09/24/ccdb354070f2d1d75e808806046dd125-300-300.jpeg,1,MISC,https://opulo.io/products/cp40-pnp-nozzle,https://www.robotdigg.com/product/800/OpenPnP-nozzle-CP40LV,, N08-CP40-nozzle-tip,https://www.robotdigg.com/crab/image/2016/09/24/ccdb354070f2d1d75e808806046dd125-300-300.jpeg,1,MISC,https://opulo.io/products/cp40-pnp-nozzle,https://www.robotdigg.com/product/800/OpenPnP-nozzle-CP40LV,, N14-CP40-nozzle-tip,https://www.robotdigg.com/crab/image/2016/09/24/ccdb354070f2d1d75e808806046dd125-300-300.jpeg,1,MISC,https://opulo.io/products/cp40-pnp-nozzle,https://www.robotdigg.com/product/800/OpenPnP-nozzle-CP40LV,, diff --git a/lib/drawing-templates/A4_LandscapeTD.svg b/lib/drawing-templates/A4_LandscapeTD.svg new file mode 100644 index 000000000..03fb3e310 --- /dev/null +++ b/lib/drawing-templates/A4_LandscapeTD.svg @@ -0,0 +1,273 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + APPROVED + + + DATE + + + REV + + + DESCRIPTION + + + REVISION HISTORY + + + 00 + + + INITAL RELEASE + + + 2024-01-10 + + + APPROVED + + + 01 + + + PART NUMBER UPDATE + + + 2024-03-11 + + + APPROVED + + + + + + + + + + + + + Opulo Inc. + + + SCALE + + + SHEET + + + REV + + + FINISH + + + MATERIAL + + + PART NUMBER + + + TITLE + + + DRAWING TEMPLATE REV 1 + + + CP40 INNER BODY + + + MCM-0010 + + + AS MACHINED + + + BRASS + + + 4:1 + + + 1 OF 1 + + + 01 + + + the GNU General Public License v3.0 + + + LumenPnP is proudly licensed under + + + diff --git a/lib/drawing-templates/opulo-black-alpha-small.png b/lib/drawing-templates/opulo-black-alpha-small.png new file mode 100644 index 000000000..dc39152e9 Binary files /dev/null and b/lib/drawing-templates/opulo-black-alpha-small.png differ diff --git a/pnp/cad/MISC/2mm-Pin.STEP b/pnp/cad/MISC/2mm-Pin.STEP new file mode 100644 index 000000000..bdc493b76 --- /dev/null +++ b/pnp/cad/MISC/2mm-Pin.STEP @@ -0,0 +1,240 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('FreeCAD Model'),'2;1'); +FILE_NAME('Open CASCADE Shape Model','2024-03-11T12:11:21',(''),(''), + 'Open CASCADE STEP processor 7.6','FreeCAD','Unknown'); +FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }')); +ENDSEC; +DATA; +#1 = APPLICATION_PROTOCOL_DEFINITION('international standard', + 'automotive_design',2000,#2); +#2 = APPLICATION_CONTEXT( + 'core data for automotive mechanical design processes'); +#3 = SHAPE_DEFINITION_REPRESENTATION(#4,#10); +#4 = PRODUCT_DEFINITION_SHAPE('','',#5); +#5 = PRODUCT_DEFINITION('design','',#6,#9); +#6 = PRODUCT_DEFINITION_FORMATION('','',#7); +#7 = PRODUCT('2mm-Pin','2mm-Pin','',(#8)); +#8 = PRODUCT_CONTEXT('',#2,'mechanical'); +#9 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design'); +#10 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#15),#205); +#11 = AXIS2_PLACEMENT_3D('',#12,#13,#14); +#12 = CARTESIAN_POINT('',(0.,0.,0.)); +#13 = DIRECTION('',(0.,0.,1.)); +#14 = DIRECTION('',(1.,0.,-0.)); +#15 = MANIFOLD_SOLID_BREP('',#16); +#16 = CLOSED_SHELL('',(#17,#52,#90,#122,#147,#164,#182,#194)); +#17 = ADVANCED_FACE('',(#18),#47,.T.); +#18 = FACE_BOUND('',#19,.T.); +#19 = EDGE_LOOP('',(#20,#31,#40)); +#20 = ORIENTED_EDGE('',*,*,#21,.T.); +#21 = EDGE_CURVE('',#22,#24,#26,.T.); +#22 = VERTEX_POINT('',#23); +#23 = CARTESIAN_POINT('',(0.,0.895499814952,1.74)); +#24 = VERTEX_POINT('',#25); +#25 = CARTESIAN_POINT('',(1.160658890583E-16,-0.895499814952,1.74)); +#26 = CIRCLE('',#27,0.895499814952); +#27 = AXIS2_PLACEMENT_3D('',#28,#29,#30); +#28 = CARTESIAN_POINT('',(0.,-5.471722612042E-17,1.74)); +#29 = DIRECTION('',(-0.,2.104508696939E-16,1.)); +#30 = DIRECTION('',(0.,-1.,2.104508696939E-16)); +#31 = ORIENTED_EDGE('',*,*,#32,.T.); +#32 = EDGE_CURVE('',#24,#33,#35,.T.); +#33 = VERTEX_POINT('',#34); +#34 = CARTESIAN_POINT('',(0.,4.542960814139E-16,2.)); +#35 = CIRCLE('',#36,1.672153689575); +#36 = AXIS2_PLACEMENT_3D('',#37,#38,#39); +#37 = CARTESIAN_POINT('',(0.,0.,0.327846310425)); +#38 = DIRECTION('',(-1.,1.224646799147E-16,-2.577279839484E-32)); +#39 = DIRECTION('',(-1.224646799147E-16,-1.,-6.077163357286E-64)); +#40 = ORIENTED_EDGE('',*,*,#41,.F.); +#41 = EDGE_CURVE('',#22,#33,#42,.T.); +#42 = CIRCLE('',#43,1.672153689575); +#43 = AXIS2_PLACEMENT_3D('',#44,#45,#46); +#44 = CARTESIAN_POINT('',(0.,0.,0.327846310425)); +#45 = DIRECTION('',(1.,0.,0.)); +#46 = DIRECTION('',(0.,0.,-1.)); +#47 = SPHERICAL_SURFACE('',#48,1.672153689575); +#48 = AXIS2_PLACEMENT_3D('',#49,#50,#51); +#49 = CARTESIAN_POINT('',(0.,0.,0.327846310425)); +#50 = DIRECTION('',(-1.,0.,0.)); +#51 = DIRECTION('',(0.,1.,-1.945160027894E-16)); +#52 = ADVANCED_FACE('',(#53),#85,.T.); +#53 = FACE_BOUND('',#54,.T.); +#54 = EDGE_LOOP('',(#55,#62,#70,#79)); +#55 = ORIENTED_EDGE('',*,*,#56,.F.); +#56 = EDGE_CURVE('',#24,#22,#57,.T.); +#57 = CIRCLE('',#58,0.895499814952); +#58 = AXIS2_PLACEMENT_3D('',#59,#60,#61); +#59 = CARTESIAN_POINT('',(0.,-5.471722612042E-17,1.74)); +#60 = DIRECTION('',(-0.,2.104508696939E-16,1.)); +#61 = DIRECTION('',(0.,-1.,2.104508696939E-16)); +#62 = ORIENTED_EDGE('',*,*,#63,.T.); +#63 = EDGE_CURVE('',#24,#64,#66,.T.); +#64 = VERTEX_POINT('',#65); +#65 = CARTESIAN_POINT('',(0.,-1.,1.35)); +#66 = LINE('',#67,#68); +#67 = CARTESIAN_POINT('',(1.224646799147E-16,-1.,1.35)); +#68 = VECTOR('',#69,1.); +#69 = DIRECTION('',(3.169619151432E-17,-0.258819045103,-0.965925826289) + ); +#70 = ORIENTED_EDGE('',*,*,#71,.T.); +#71 = EDGE_CURVE('',#64,#72,#74,.T.); +#72 = VERTEX_POINT('',#73); +#73 = CARTESIAN_POINT('',(1.224646799147E-16,1.,1.35)); +#74 = CIRCLE('',#75,1.); +#75 = AXIS2_PLACEMENT_3D('',#76,#77,#78); +#76 = CARTESIAN_POINT('',(0.,-1.36793065301E-16,1.35)); +#77 = DIRECTION('',(-0.,2.104508696939E-16,1.)); +#78 = DIRECTION('',(0.,-1.,2.104508696939E-16)); +#79 = ORIENTED_EDGE('',*,*,#80,.F.); +#80 = EDGE_CURVE('',#22,#72,#81,.T.); +#81 = LINE('',#82,#83); +#82 = CARTESIAN_POINT('',(0.,1.,1.35)); +#83 = VECTOR('',#84,1.); +#84 = DIRECTION('',(0.,0.258819045103,-0.965925826289)); +#85 = CONICAL_SURFACE('',#86,1.,0.261799387799); +#86 = AXIS2_PLACEMENT_3D('',#87,#88,#89); +#87 = CARTESIAN_POINT('',(0.,-1.36793065301E-16,1.35)); +#88 = DIRECTION('',(0.,-2.104508696939E-16,-1.)); +#89 = DIRECTION('',(0.,1.,-2.104508696939E-16)); +#90 = ADVANCED_FACE('',(#91),#117,.T.); +#91 = FACE_BOUND('',#92,.T.); +#92 = EDGE_LOOP('',(#93,#104,#110,#111)); +#93 = ORIENTED_EDGE('',*,*,#94,.T.); +#94 = EDGE_CURVE('',#95,#97,#99,.T.); +#95 = VERTEX_POINT('',#96); +#96 = CARTESIAN_POINT('',(0.,-1.,-1.7)); +#97 = VERTEX_POINT('',#98); +#98 = CARTESIAN_POINT('',(1.224646799147E-16,1.,-1.7)); +#99 = CIRCLE('',#100,1.); +#100 = AXIS2_PLACEMENT_3D('',#101,#102,#103); +#101 = CARTESIAN_POINT('',(0.,-7.786682178675E-16,-1.7)); +#102 = DIRECTION('',(-0.,2.104508696939E-16,1.)); +#103 = DIRECTION('',(0.,-1.,2.104508696939E-16)); +#104 = ORIENTED_EDGE('',*,*,#105,.T.); +#105 = EDGE_CURVE('',#97,#72,#106,.T.); +#106 = LINE('',#107,#108); +#107 = CARTESIAN_POINT('',(1.224646799147E-16,1.,2.)); +#108 = VECTOR('',#109,1.); +#109 = DIRECTION('',(-0.,2.104508696939E-16,1.)); +#110 = ORIENTED_EDGE('',*,*,#71,.F.); +#111 = ORIENTED_EDGE('',*,*,#112,.F.); +#112 = EDGE_CURVE('',#95,#64,#113,.T.); +#113 = LINE('',#114,#115); +#114 = CARTESIAN_POINT('',(0.,-1.,2.)); +#115 = VECTOR('',#116,1.); +#116 = DIRECTION('',(-0.,2.104508696939E-16,1.)); +#117 = CYLINDRICAL_SURFACE('',#118,1.); +#118 = AXIS2_PLACEMENT_3D('',#119,#120,#121); +#119 = CARTESIAN_POINT('',(0.,0.,2.)); +#120 = DIRECTION('',(-0.,2.104508696939E-16,1.)); +#121 = DIRECTION('',(0.,-1.,2.104508696939E-16)); +#122 = ADVANCED_FACE('',(#123),#142,.T.); +#123 = FACE_BOUND('',#124,.T.); +#124 = EDGE_LOOP('',(#125,#134,#141)); +#125 = ORIENTED_EDGE('',*,*,#126,.F.); +#126 = EDGE_CURVE('',#127,#95,#129,.T.); +#127 = VERTEX_POINT('',#128); +#128 = CARTESIAN_POINT('',(0.,1.674846514105E-15,-2.)); +#129 = CIRCLE('',#130,1.816666666667); +#130 = AXIS2_PLACEMENT_3D('',#131,#132,#133); +#131 = CARTESIAN_POINT('',(0.,2.168404344971E-15,-0.183333333333)); +#132 = DIRECTION('',(-1.,-0.,0.)); +#133 = DIRECTION('',(0.,0.,1.)); +#134 = ORIENTED_EDGE('',*,*,#135,.T.); +#135 = EDGE_CURVE('',#127,#97,#136,.T.); +#136 = CIRCLE('',#137,1.816666666667); +#137 = AXIS2_PLACEMENT_3D('',#138,#139,#140); +#138 = CARTESIAN_POINT('',(0.,2.168404344971E-15,-0.183333333333)); +#139 = DIRECTION('',(1.,-1.224646799147E-16,2.577279839484E-32)); +#140 = DIRECTION('',(1.224646799147E-16,1.,0.)); +#141 = ORIENTED_EDGE('',*,*,#94,.F.); +#142 = SPHERICAL_SURFACE('',#143,1.816666666667); +#143 = AXIS2_PLACEMENT_3D('',#144,#145,#146); +#144 = CARTESIAN_POINT('',(0.,2.168404344971E-15,-0.183333333333)); +#145 = DIRECTION('',(1.,0.,0.)); +#146 = DIRECTION('',(0.,-1.,2.088829873596E-16)); +#147 = ADVANCED_FACE('',(#148),#159,.T.); +#148 = FACE_BOUND('',#149,.T.); +#149 = EDGE_LOOP('',(#150,#151,#152)); +#150 = ORIENTED_EDGE('',*,*,#135,.F.); +#151 = ORIENTED_EDGE('',*,*,#126,.T.); +#152 = ORIENTED_EDGE('',*,*,#153,.F.); +#153 = EDGE_CURVE('',#97,#95,#154,.T.); +#154 = CIRCLE('',#155,1.); +#155 = AXIS2_PLACEMENT_3D('',#156,#157,#158); +#156 = CARTESIAN_POINT('',(0.,-7.786682178675E-16,-1.7)); +#157 = DIRECTION('',(-0.,2.104508696939E-16,1.)); +#158 = DIRECTION('',(0.,-1.,2.104508696939E-16)); +#159 = SPHERICAL_SURFACE('',#160,1.816666666667); +#160 = AXIS2_PLACEMENT_3D('',#161,#162,#163); +#161 = CARTESIAN_POINT('',(0.,2.168404344971E-15,-0.183333333333)); +#162 = DIRECTION('',(1.,0.,0.)); +#163 = DIRECTION('',(0.,-1.,2.088829873596E-16)); +#164 = ADVANCED_FACE('',(#165),#177,.T.); +#165 = FACE_BOUND('',#166,.T.); +#166 = EDGE_LOOP('',(#167,#168,#169,#170)); +#167 = ORIENTED_EDGE('',*,*,#105,.F.); +#168 = ORIENTED_EDGE('',*,*,#153,.T.); +#169 = ORIENTED_EDGE('',*,*,#112,.T.); +#170 = ORIENTED_EDGE('',*,*,#171,.F.); +#171 = EDGE_CURVE('',#72,#64,#172,.T.); +#172 = CIRCLE('',#173,1.); +#173 = AXIS2_PLACEMENT_3D('',#174,#175,#176); +#174 = CARTESIAN_POINT('',(0.,-1.36793065301E-16,1.35)); +#175 = DIRECTION('',(-0.,2.104508696939E-16,1.)); +#176 = DIRECTION('',(0.,-1.,2.104508696939E-16)); +#177 = CYLINDRICAL_SURFACE('',#178,1.); +#178 = AXIS2_PLACEMENT_3D('',#179,#180,#181); +#179 = CARTESIAN_POINT('',(0.,0.,2.)); +#180 = DIRECTION('',(-0.,2.104508696939E-16,1.)); +#181 = DIRECTION('',(0.,-1.,2.104508696939E-16)); +#182 = ADVANCED_FACE('',(#183),#189,.T.); +#183 = FACE_BOUND('',#184,.T.); +#184 = EDGE_LOOP('',(#185,#186,#187,#188)); +#185 = ORIENTED_EDGE('',*,*,#63,.F.); +#186 = ORIENTED_EDGE('',*,*,#21,.F.); +#187 = ORIENTED_EDGE('',*,*,#80,.T.); +#188 = ORIENTED_EDGE('',*,*,#171,.T.); +#189 = CONICAL_SURFACE('',#190,1.,0.261799387799); +#190 = AXIS2_PLACEMENT_3D('',#191,#192,#193); +#191 = CARTESIAN_POINT('',(0.,-1.36793065301E-16,1.35)); +#192 = DIRECTION('',(0.,-2.104508696939E-16,-1.)); +#193 = DIRECTION('',(0.,1.,-2.104508696939E-16)); +#194 = ADVANCED_FACE('',(#195),#200,.T.); +#195 = FACE_BOUND('',#196,.T.); +#196 = EDGE_LOOP('',(#197,#198,#199)); +#197 = ORIENTED_EDGE('',*,*,#32,.F.); +#198 = ORIENTED_EDGE('',*,*,#56,.T.); +#199 = ORIENTED_EDGE('',*,*,#41,.T.); +#200 = SPHERICAL_SURFACE('',#201,1.672153689575); +#201 = AXIS2_PLACEMENT_3D('',#202,#203,#204); +#202 = CARTESIAN_POINT('',(0.,0.,0.327846310425)); +#203 = DIRECTION('',(-1.,0.,0.)); +#204 = DIRECTION('',(0.,1.,-1.945160027894E-16)); +#205 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#209)) GLOBAL_UNIT_ASSIGNED_CONTEXT +((#206,#207,#208)) REPRESENTATION_CONTEXT('Context #1', + '3D Context with UNIT and UNCERTAINTY') ); +#206 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); +#207 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); +#208 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); +#209 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#206, + 'distance_accuracy_value','confusion accuracy'); +#210 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#7)); +#211 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#212) + ,#205); +#212 = STYLED_ITEM('color',(#213),#15); +#213 = PRESENTATION_STYLE_ASSIGNMENT((#214,#220)); +#214 = SURFACE_STYLE_USAGE(.BOTH.,#215); +#215 = SURFACE_SIDE_STYLE('',(#216)); +#216 = SURFACE_STYLE_FILL_AREA(#217); +#217 = FILL_AREA_STYLE('',(#218)); +#218 = FILL_AREA_STYLE_COLOUR('',#219); +#219 = COLOUR_RGB('',0.108908773725,0.42979452543,0.55643289889); +#220 = CURVE_STYLE('',#221,POSITIVE_LENGTH_MEASURE(0.1),#222); +#221 = DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous'); +#222 = DRAUGHTING_PRE_DEFINED_COLOUR('black'); +ENDSEC; +END-ISO-10303-21; diff --git a/pnp/cad/MISC/4mmIDx0.6mmCS-o-ring.FCStd b/pnp/cad/MISC/4mmIDx0.6mmCS-o-ring.FCStd new file mode 100644 index 000000000..d249da18a Binary files /dev/null and b/pnp/cad/MISC/4mmIDx0.6mmCS-o-ring.FCStd differ diff --git a/pnp/cad/MISC/drawings/nozzle-holder-inner-body.pdf b/pnp/cad/MISC/drawings/nozzle-holder-inner-body.pdf new file mode 100644 index 000000000..18bcf0af2 Binary files /dev/null and b/pnp/cad/MISC/drawings/nozzle-holder-inner-body.pdf differ diff --git a/pnp/cad/MISC/drawings/nozzle-holder-outer-body.pdf b/pnp/cad/MISC/drawings/nozzle-holder-outer-body.pdf new file mode 100644 index 000000000..d0d76821b Binary files /dev/null and b/pnp/cad/MISC/drawings/nozzle-holder-outer-body.pdf differ diff --git a/pnp/cad/MISC/drawings/nozzle-holder-spring.pdf b/pnp/cad/MISC/drawings/nozzle-holder-spring.pdf new file mode 100644 index 000000000..744d19c25 Binary files /dev/null and b/pnp/cad/MISC/drawings/nozzle-holder-spring.pdf differ diff --git a/pnp/cad/MISC/nozzle-holder-inner-body.FCStd b/pnp/cad/MISC/nozzle-holder-inner-body.FCStd new file mode 100644 index 000000000..d0bf3f3e5 Binary files /dev/null and b/pnp/cad/MISC/nozzle-holder-inner-body.FCStd differ diff --git a/pnp/cad/MISC/nozzle-holder-outer-body.FCStd b/pnp/cad/MISC/nozzle-holder-outer-body.FCStd new file mode 100644 index 000000000..4400f5a20 Binary files /dev/null and b/pnp/cad/MISC/nozzle-holder-outer-body.FCStd differ diff --git a/pnp/cad/MISC/nozzle-holder-spring.FCStd b/pnp/cad/MISC/nozzle-holder-spring.FCStd new file mode 100644 index 000000000..c82f04d61 Binary files /dev/null and b/pnp/cad/MISC/nozzle-holder-spring.FCStd differ diff --git a/pnp/cad/MISC/nozzle-holder.FCStd b/pnp/cad/MISC/nozzle-holder.FCStd new file mode 100644 index 000000000..96e0180d6 Binary files /dev/null and b/pnp/cad/MISC/nozzle-holder.FCStd differ diff --git a/pnp/cad/assembly.FCStd b/pnp/cad/assembly.FCStd index 6e62e2086..1271c50e0 100644 Binary files a/pnp/cad/assembly.FCStd and b/pnp/cad/assembly.FCStd differ