aboutsummaryrefslogtreecommitdiffstats
path: root/EE3102/Libraries/USBRegulator
diff options
context:
space:
mode:
Diffstat (limited to 'EE3102/Libraries/USBRegulator')
-rw-r--r--EE3102/Libraries/USBRegulator/2021-03-02_19-41-42.LibPkg1102
-rw-r--r--EE3102/Libraries/USBRegulator/2021-03-02_19-41-42.PcbLibbin0 -> 111616 bytes
-rw-r--r--EE3102/Libraries/USBRegulator/2021-03-02_19-41-42.SchLibbin0 -> 6144 bytes
-rw-r--r--EE3102/Libraries/USBRegulator/2021-03-02_19-41-42.txt106
-rw-r--r--EE3102/Libraries/USBRegulator/T03B.step837
-rw-r--r--EE3102/Libraries/USBRegulator/UL_Form.dfm49
-rw-r--r--EE3102/Libraries/USBRegulator/UL_Form.pas14
-rw-r--r--EE3102/Libraries/USBRegulator/UL_Import.PrjScr945
-rw-r--r--EE3102/Libraries/USBRegulator/UL_Import.pas1081
9 files changed, 4134 insertions, 0 deletions
diff --git a/EE3102/Libraries/USBRegulator/2021-03-02_19-41-42.LibPkg b/EE3102/Libraries/USBRegulator/2021-03-02_19-41-42.LibPkg
new file mode 100644
index 0000000..c39f5f2
--- /dev/null
+++ b/EE3102/Libraries/USBRegulator/2021-03-02_19-41-42.LibPkg
@@ -0,0 +1,1102 @@
+[Design]
+Version=1.0
+HierarchyMode=0
+ChannelRoomNamingStyle=0
+ReleasesFolder=
+ChannelDesignatorFormatString=$Component_$RoomName
+ChannelRoomLevelSeperator=_
+OpenOutputs=1
+ArchiveProject=0
+TimestampOutput=0
+SeparateFolders=0
+TemplateLocationPath=
+PinSwapBy_Netlabel=1
+PinSwapBy_Pin=1
+AllowPortNetNames=0
+AllowSheetEntryNetNames=1
+AppendSheetNumberToLocalNets=0
+NetlistSinglePinNets=0
+DefaultConfiguration=Default - All Constraints
+UserID=0xFFFFFFFF
+DefaultPcbProtel=1
+DefaultPcbPcad=0
+ReorderDocumentsOnCompile=1
+NameNetsHierarchically=0
+PowerPortNamesTakePriority=0
+PushECOToAnnotationFile=1
+DItemRevisionGUID=
+ReportSuppressedErrorsInMessages=0
+FSMCodingStyle=eFMSDropDownList_OneProcess
+FSMEncodingStyle=eFMSDropDownList_OneHot
+OutputPath=
+LogFolderPath=
+ManagedProjectGUID=
+IncludeDesignInRelease=0
+
+[Preferences]
+PrefsVaultGUID=
+PrefsRevisionGUID=
+
+[OutputGroup1]
+Name=Netlist Outputs
+Description=
+TargetPrinter=Microsoft Print to PDF
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=CadnetixNetlist
+OutputName1=Cadnetix Netlist
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+OutputType2=CalayNetlist
+OutputName2=Calay Netlist
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+OutputType3=EDIF
+OutputName3=EDIF for PCB
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+OutputType4=EESofNetlist
+OutputName4=EESof Netlist
+OutputDocumentPath4=
+OutputVariantName4=
+OutputDefault4=0
+OutputType5=IntergraphNetlist
+OutputName5=Intergraph Netlist
+OutputDocumentPath5=
+OutputVariantName5=
+OutputDefault5=0
+OutputType6=MentorBoardStationNetlist
+OutputName6=Mentor BoardStation Netlist
+OutputDocumentPath6=
+OutputVariantName6=
+OutputDefault6=0
+OutputType7=MultiWire
+OutputName7=MultiWire
+OutputDocumentPath7=
+OutputVariantName7=
+OutputDefault7=0
+OutputType8=OrCadPCB2Netlist
+OutputName8=Orcad/PCB2 Netlist
+OutputDocumentPath8=
+OutputVariantName8=
+OutputDefault8=0
+OutputType9=PADSNetlist
+OutputName9=PADS ASCII Netlist
+OutputDocumentPath9=
+OutputVariantName9=
+OutputDefault9=0
+OutputType10=Pcad
+OutputName10=Pcad for PCB
+OutputDocumentPath10=
+OutputVariantName10=
+OutputDefault10=0
+OutputType11=PCADNetlist
+OutputName11=PCAD Netlist
+OutputDocumentPath11=
+OutputVariantName11=
+OutputDefault11=0
+OutputType12=PCADnltNetlist
+OutputName12=PCADnlt Netlist
+OutputDocumentPath12=
+OutputVariantName12=
+OutputDefault12=0
+OutputType13=Protel2Netlist
+OutputName13=Protel2 Netlist
+OutputDocumentPath13=
+OutputVariantName13=
+OutputDefault13=0
+OutputType14=ProtelNetlist
+OutputName14=Protel
+OutputDocumentPath14=
+OutputVariantName14=
+OutputDefault14=0
+OutputType15=RacalNetlist
+OutputName15=Racal Netlist
+OutputDocumentPath15=
+OutputVariantName15=
+OutputDefault15=0
+OutputType16=RINFNetlist
+OutputName16=RINF Netlist
+OutputDocumentPath16=
+OutputVariantName16=
+OutputDefault16=0
+OutputType17=SciCardsNetlist
+OutputName17=SciCards Netlist
+OutputDocumentPath17=
+OutputVariantName17=
+OutputDefault17=0
+OutputType18=SIMetrixNetlist
+OutputName18=SIMetrix
+OutputDocumentPath18=
+OutputVariantName18=
+OutputDefault18=0
+OutputType19=SIMPLISNetlist
+OutputName19=SIMPLIS
+OutputDocumentPath19=
+OutputVariantName19=
+OutputDefault19=0
+OutputType20=TangoNetlist
+OutputName20=Tango Netlist
+OutputDocumentPath20=
+OutputVariantName20=
+OutputDefault20=0
+OutputType21=TelesisNetlist
+OutputName21=Telesis Netlist
+OutputDocumentPath21=
+OutputVariantName21=
+OutputDefault21=0
+OutputType22=WireListNetlist
+OutputName22=WireList Netlist
+OutputDocumentPath22=
+OutputVariantName22=
+OutputDefault22=0
+OutputType23=XSpiceNetlist
+OutputName23=XSpice Netlist
+OutputDocumentPath23=
+OutputVariantName23=
+OutputDefault23=0
+
+[OutputGroup2]
+Name=Simulator Outputs
+Description=
+TargetPrinter=Microsoft Print to PDF
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=AdvSimNetlist
+OutputName1=Mixed Sim
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+OutputType2=SIMetrixSimulation
+OutputName2=SIMetrix
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+OutputType3=SIMPLISSimulation
+OutputName3=SIMPLIS
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+
+[OutputGroup3]
+Name=Documentation Outputs
+Description=
+TargetPrinter=Microsoft Print to PDF
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=Composite
+OutputName1=Composite Drawing
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType2=PCB 3D Print
+OutputName2=PCB 3D Print
+OutputDocumentPath2=
+OutputVariantName2=[No Variations]
+OutputDefault2=0
+PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType3=PCB 3D Video
+OutputName3=PCB 3D Video
+OutputDocumentPath3=
+OutputVariantName3=[No Variations]
+OutputDefault3=0
+PageOptions3=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType4=PCB Print
+OutputName4=PCB Prints
+OutputDocumentPath4=
+OutputVariantName4=
+OutputDefault4=0
+PageOptions4=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType5=PCBDrawing
+OutputName5=Draftsman
+OutputDocumentPath5=
+OutputVariantName5=[No Variations]
+OutputDefault5=0
+PageOptions5=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType6=PCBLIB Print
+OutputName6=PCBLIB Prints
+OutputDocumentPath6=
+OutputVariantName6=
+OutputDefault6=0
+PageOptions6=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType7=PDF3D
+OutputName7=PDF3D
+OutputDocumentPath7=
+OutputVariantName7=[No Variations]
+OutputDefault7=0
+PageOptions7=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType8=PDF3D MBA
+OutputName8=PDF3D MBA
+OutputDocumentPath8=
+OutputVariantName8=
+OutputDefault8=0
+PageOptions8=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType9=Report Print
+OutputName9=Report Prints
+OutputDocumentPath9=
+OutputVariantName9=
+OutputDefault9=0
+PageOptions9=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType10=Schematic Print
+OutputName10=Schematic Prints
+OutputDocumentPath10=
+OutputVariantName10=
+OutputDefault10=0
+PageOptions10=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType11=SimView Print
+OutputName11=SimView Prints
+OutputDocumentPath11=
+OutputVariantName11=
+OutputDefault11=0
+PageOptions11=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+
+[OutputGroup4]
+Name=Assembly Outputs
+Description=
+TargetPrinter=Microsoft Print to PDF
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=Assembly
+OutputName1=Assembly Drawings
+OutputDocumentPath1=
+OutputVariantName1=[No Variations]
+OutputDefault1=0
+PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType2=Pick Place
+OutputName2=Generates pick and place files
+OutputDocumentPath2=
+OutputVariantName2=[No Variations]
+OutputDefault2=0
+OutputType3=Test Points For Assembly
+OutputName3=Test Point Report
+OutputDocumentPath3=
+OutputVariantName3=[No Variations]
+OutputDefault3=0
+
+[OutputGroup5]
+Name=Fabrication Outputs
+Description=
+TargetPrinter=Microsoft Print to PDF
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=Board Stack Report
+OutputName1=Report Board Stack
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType2=CompositeDrill
+OutputName2=Composite Drill Drawing
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType3=Drill
+OutputName3=Drill Drawing/Guides
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+PageOptions3=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType4=Final
+OutputName4=Final Artwork Prints
+OutputDocumentPath4=
+OutputVariantName4=[No Variations]
+OutputDefault4=0
+PageOptions4=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType5=Gerber
+OutputName5=Gerber Files
+OutputDocumentPath5=
+OutputVariantName5=[No Variations]
+OutputDefault5=0
+OutputType6=Gerber X2
+OutputName6=Gerber X2 Files
+OutputDocumentPath6=
+OutputVariantName6=
+OutputDefault6=0
+OutputType7=IPC2581
+OutputName7=IPC-2581 Files
+OutputDocumentPath7=
+OutputVariantName7=
+OutputDefault7=0
+OutputType8=Mask
+OutputName8=Solder/Paste Mask Prints
+OutputDocumentPath8=
+OutputVariantName8=
+OutputDefault8=0
+PageOptions8=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType9=NC Drill
+OutputName9=NC Drill Files
+OutputDocumentPath9=
+OutputVariantName9=
+OutputDefault9=0
+OutputType10=ODB
+OutputName10=ODB++ Files
+OutputDocumentPath10=
+OutputVariantName10=[No Variations]
+OutputDefault10=0
+OutputType11=Plane
+OutputName11=Power-Plane Prints
+OutputDocumentPath11=
+OutputVariantName11=
+OutputDefault11=0
+PageOptions11=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType12=Test Points
+OutputName12=Test Point Report
+OutputDocumentPath12=
+OutputVariantName12=
+OutputDefault12=0
+
+[OutputGroup6]
+Name=Report Outputs
+Description=
+TargetPrinter=Microsoft Print to PDF
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=BOM_PartType
+OutputName1=Bill of Materials
+OutputDocumentPath1=
+OutputVariantName1=[No Variations]
+OutputDefault1=0
+PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType2=ComponentCrossReference
+OutputName2=Component Cross Reference Report
+OutputDocumentPath2=
+OutputVariantName2=[No Variations]
+OutputDefault2=0
+OutputType3=ReportHierarchy
+OutputName3=Report Project Hierarchy
+OutputDocumentPath3=
+OutputVariantName3=[No Variations]
+OutputDefault3=0
+OutputType4=Script
+OutputName4=Script Output
+OutputDocumentPath4=
+OutputVariantName4=[No Variations]
+OutputDefault4=0
+OutputType5=SimpleBOM
+OutputName5=Simple BOM
+OutputDocumentPath5=
+OutputVariantName5=[No Variations]
+OutputDefault5=0
+OutputType6=SinglePinNetReporter
+OutputName6=Report Single Pin Nets
+OutputDocumentPath6=
+OutputVariantName6=[No Variations]
+OutputDefault6=0
+
+[OutputGroup7]
+Name=Other Outputs
+Description=
+TargetPrinter=Microsoft Print to PDF
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=Text Print
+OutputName1=Text Print
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType2=Text Print
+OutputName2=Text Print
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType3=Text Print
+OutputName3=Text Print
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+PageOptions3=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType4=Text Print
+OutputName4=Text Print
+OutputDocumentPath4=
+OutputVariantName4=
+OutputDefault4=0
+PageOptions4=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType5=Text Print
+OutputName5=Text Print
+OutputDocumentPath5=
+OutputVariantName5=
+OutputDefault5=0
+PageOptions5=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType6=Text Print
+OutputName6=Text Print
+OutputDocumentPath6=
+OutputVariantName6=
+OutputDefault6=0
+PageOptions6=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType7=Text Print
+OutputName7=Text Print
+OutputDocumentPath7=
+OutputVariantName7=
+OutputDefault7=0
+PageOptions7=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType8=Text Print
+OutputName8=Text Print
+OutputDocumentPath8=
+OutputVariantName8=
+OutputDefault8=0
+PageOptions8=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType9=Text Print
+OutputName9=Text Print
+OutputDocumentPath9=
+OutputVariantName9=
+OutputDefault9=0
+PageOptions9=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType10=Text Print
+OutputName10=Text Print
+OutputDocumentPath10=
+OutputVariantName10=
+OutputDefault10=0
+PageOptions10=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType11=Text Print
+OutputName11=Text Print
+OutputDocumentPath11=
+OutputVariantName11=
+OutputDefault11=0
+PageOptions11=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType12=Text Print
+OutputName12=Text Print
+OutputDocumentPath12=
+OutputVariantName12=
+OutputDefault12=0
+PageOptions12=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType13=Text Print
+OutputName13=Text Print
+OutputDocumentPath13=
+OutputVariantName13=
+OutputDefault13=0
+PageOptions13=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType14=Text Print
+OutputName14=Text Print
+OutputDocumentPath14=
+OutputVariantName14=
+OutputDefault14=0
+PageOptions14=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType15=Text Print
+OutputName15=Text Print
+OutputDocumentPath15=
+OutputVariantName15=
+OutputDefault15=0
+PageOptions15=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType16=Text Print
+OutputName16=Text Print
+OutputDocumentPath16=
+OutputVariantName16=
+OutputDefault16=0
+PageOptions16=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType17=Text Print
+OutputName17=Text Print
+OutputDocumentPath17=
+OutputVariantName17=
+OutputDefault17=0
+PageOptions17=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType18=Text Print
+OutputName18=Text Print
+OutputDocumentPath18=
+OutputVariantName18=
+OutputDefault18=0
+PageOptions18=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType19=Text Print
+OutputName19=Text Print
+OutputDocumentPath19=
+OutputVariantName19=
+OutputDefault19=0
+PageOptions19=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType20=Text Print
+OutputName20=Text Print
+OutputDocumentPath20=
+OutputVariantName20=
+OutputDefault20=0
+PageOptions20=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType21=Text Print
+OutputName21=Text Print
+OutputDocumentPath21=
+OutputVariantName21=
+OutputDefault21=0
+PageOptions21=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType22=Text Print
+OutputName22=Text Print
+OutputDocumentPath22=
+OutputVariantName22=
+OutputDefault22=0
+PageOptions22=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType23=Text Print
+OutputName23=Text Print
+OutputDocumentPath23=
+OutputVariantName23=
+OutputDefault23=0
+PageOptions23=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType24=Text Print
+OutputName24=Text Print
+OutputDocumentPath24=
+OutputVariantName24=
+OutputDefault24=0
+PageOptions24=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType25=Text Print
+OutputName25=Text Print
+OutputDocumentPath25=
+OutputVariantName25=
+OutputDefault25=0
+PageOptions25=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType26=Text Print
+OutputName26=Text Print
+OutputDocumentPath26=
+OutputVariantName26=
+OutputDefault26=0
+PageOptions26=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType27=Text Print
+OutputName27=Text Print
+OutputDocumentPath27=
+OutputVariantName27=
+OutputDefault27=0
+PageOptions27=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType28=Text Print
+OutputName28=Text Print
+OutputDocumentPath28=
+OutputVariantName28=
+OutputDefault28=0
+PageOptions28=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType29=Text Print
+OutputName29=Text Print
+OutputDocumentPath29=
+OutputVariantName29=
+OutputDefault29=0
+PageOptions29=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+
+[OutputGroup8]
+Name=Validation Outputs
+Description=
+TargetPrinter=Microsoft Print to PDF
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=BOM_Violations
+OutputName1=BOM Checks Report
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+OutputType2=Component states check
+OutputName2=Server's components states check
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+OutputType3=Configuration compliance
+OutputName3=Environment configuration compliance check
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+OutputType4=Design Rules Check
+OutputName4=Design Rules Check
+OutputDocumentPath4=
+OutputVariantName4=
+OutputDefault4=0
+PageOptions4=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType5=Differences Report
+OutputName5=Differences Report
+OutputDocumentPath5=
+OutputVariantName5=
+OutputDefault5=0
+PageOptions5=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType6=Electrical Rules Check
+OutputName6=Electrical Rules Check
+OutputDocumentPath6=
+OutputVariantName6=
+OutputDefault6=0
+PageOptions6=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType7=Footprint Comparison Report
+OutputName7=Footprint Comparison Report
+OutputDocumentPath7=
+OutputVariantName7=
+OutputDefault7=0
+
+[OutputGroup9]
+Name=Export Outputs
+Description=
+TargetPrinter=Microsoft Print to PDF
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=AutoCAD dwg/dxf PCB
+OutputName1=AutoCAD dwg/dxf File PCB
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+OutputType2=AutoCAD dwg/dxf Schematic
+OutputName2=AutoCAD dwg/dxf File Schematic
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+OutputType3=ExportIDF
+OutputName3=Export IDF
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+OutputType4=ExportPARASOLID
+OutputName4=Export PARASOLID
+OutputDocumentPath4=
+OutputVariantName4=[No Variations]
+OutputDefault4=0
+OutputType5=ExportSTEP
+OutputName5=Export STEP
+OutputDocumentPath5=
+OutputVariantName5=[No Variations]
+OutputDefault5=0
+OutputType6=ExportVRML
+OutputName6=Export VRML
+OutputDocumentPath6=
+OutputVariantName6=[No Variations]
+OutputDefault6=0
+OutputType7=MBAExportPARASOLID
+OutputName7=Export PARASOLID
+OutputDocumentPath7=
+OutputVariantName7=
+OutputDefault7=0
+OutputType8=MBAExportSTEP
+OutputName8=Export STEP
+OutputDocumentPath8=
+OutputVariantName8=
+OutputDefault8=0
+OutputType9=Save As/Export PCB
+OutputName9=Save As/Export PCB
+OutputDocumentPath9=
+OutputVariantName9=
+OutputDefault9=0
+OutputType10=Save As/Export Schematic
+OutputName10=Save As/Export Schematic
+OutputDocumentPath10=
+OutputVariantName10=
+OutputDefault10=0
+OutputType11=Specctra Design PCB
+OutputName11=Specctra Design PCB
+OutputDocumentPath11=
+OutputVariantName11=
+OutputDefault11=0
+
+[OutputGroup10]
+Name=PostProcess Outputs
+Description=
+TargetPrinter=Microsoft Print to PDF
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=Copy Files
+OutputName1=Copy Files
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+
+[Modification Levels]
+Type1=1
+Type2=1
+Type3=1
+Type4=1
+Type5=1
+Type6=1
+Type7=1
+Type8=1
+Type9=1
+Type10=1
+Type11=1
+Type12=1
+Type13=1
+Type14=1
+Type15=1
+Type16=1
+Type17=1
+Type18=1
+Type19=1
+Type20=1
+Type21=1
+Type22=1
+Type23=1
+Type24=1
+Type25=1
+Type26=1
+Type27=1
+Type28=1
+Type29=1
+Type30=1
+Type31=1
+Type32=1
+Type33=1
+Type34=1
+Type35=1
+Type36=1
+Type37=1
+Type38=1
+Type39=1
+Type40=1
+Type41=1
+Type42=1
+Type43=1
+Type44=1
+Type45=1
+Type46=1
+Type47=1
+Type48=1
+Type49=1
+Type50=1
+Type51=1
+Type52=1
+Type53=1
+Type54=1
+Type55=1
+Type56=1
+Type57=1
+Type58=1
+Type59=1
+Type60=1
+Type61=1
+Type62=1
+Type63=1
+Type64=1
+Type65=1
+Type66=1
+Type67=1
+Type68=1
+Type69=1
+Type70=1
+Type71=1
+Type72=1
+Type73=1
+Type74=1
+Type75=1
+Type76=1
+Type77=1
+Type78=1
+Type79=1
+Type80=1
+Type81=1
+Type82=1
+Type83=1
+Type84=1
+Type85=1
+Type86=1
+Type87=1
+Type88=1
+Type89=1
+Type90=1
+Type91=1
+Type92=1
+Type93=1
+Type94=1
+Type95=1
+Type96=1
+Type97=1
+Type98=1
+Type99=1
+Type100=1
+Type101=1
+Type102=1
+Type103=1
+Type104=1
+Type105=1
+Type106=1
+Type107=1
+Type108=1
+Type109=1
+Type110=1
+Type111=1
+Type112=1
+Type113=1
+Type114=1
+Type115=1
+Type116=1
+Type117=1
+Type118=1
+Type119=1
+
+[Difference Levels]
+Type1=1
+Type2=1
+Type3=1
+Type4=1
+Type5=1
+Type6=1
+Type7=1
+Type8=1
+Type9=1
+Type10=1
+Type11=1
+Type12=1
+Type13=1
+Type14=1
+Type15=1
+Type16=1
+Type17=1
+Type18=1
+Type19=1
+Type20=1
+Type21=1
+Type22=1
+Type23=1
+Type24=1
+Type25=1
+Type26=1
+Type27=1
+Type28=1
+Type29=1
+Type30=1
+Type31=1
+Type32=1
+Type33=1
+Type34=1
+Type35=1
+Type36=1
+Type37=1
+Type38=1
+Type39=1
+Type40=1
+Type41=1
+Type42=1
+Type43=1
+Type44=1
+Type45=1
+Type46=1
+Type47=1
+Type48=1
+Type49=1
+Type50=1
+Type51=1
+Type52=1
+Type53=1
+Type54=1
+Type55=1
+Type56=1
+Type57=1
+Type58=1
+Type59=1
+Type60=1
+Type61=1
+Type62=1
+Type63=1
+Type64=1
+Type65=1
+Type66=1
+Type67=1
+Type68=1
+
+[Electrical Rules Check]
+Type1=1
+Type2=1
+Type3=2
+Type4=1
+Type5=2
+Type6=2
+Type7=0
+Type8=1
+Type9=1
+Type10=1
+Type11=2
+Type12=0
+Type13=0
+Type14=1
+Type15=1
+Type16=1
+Type17=1
+Type18=1
+Type19=1
+Type20=0
+Type21=0
+Type22=0
+Type23=0
+Type24=1
+Type25=2
+Type26=0
+Type27=2
+Type28=1
+Type29=1
+Type30=1
+Type31=1
+Type32=2
+Type33=0
+Type34=2
+Type35=1
+Type36=2
+Type37=1
+Type38=2
+Type39=2
+Type40=2
+Type41=0
+Type42=2
+Type43=1
+Type44=0
+Type45=0
+Type46=0
+Type47=0
+Type48=0
+Type49=0
+Type50=2
+Type51=0
+Type52=0
+Type53=1
+Type54=1
+Type55=1
+Type56=2
+Type57=1
+Type58=1
+Type59=2
+Type60=0
+Type61=0
+Type62=0
+Type63=0
+Type64=0
+Type65=2
+Type66=3
+Type67=2
+Type68=2
+Type69=2
+Type70=2
+Type71=2
+Type72=2
+Type73=2
+Type74=1
+Type75=2
+Type76=1
+Type77=1
+Type78=1
+Type79=1
+Type80=2
+Type81=3
+Type82=3
+Type83=3
+Type84=3
+Type85=3
+Type86=2
+Type87=2
+Type88=2
+Type89=1
+Type90=1
+Type91=3
+Type92=3
+Type93=2
+Type94=2
+Type95=2
+Type96=2
+Type97=2
+Type98=0
+Type99=1
+Type100=2
+Type101=0
+Type102=2
+Type103=2
+Type104=1
+Type105=2
+Type106=2
+Type107=2
+Type108=2
+Type109=1
+Type110=1
+Type111=1
+Type112=1
+Type113=1
+Type114=2
+Type115=2
+Type116=2
+Type117=3
+Type118=3
+Type119=3
+MultiChannelAlternate=2
+AlternateItemFail=3
+Type122=2
+
+[ERC Connection Matrix]
+L1=NNNNNNNNNNNWNNNWW
+L2=NNWNNNNWWWNWNWNWN
+L3=NWEENEEEENEWNEEWN
+L4=NNENNNWEENNWNENWN
+L5=NNNNNNNNNNNNNNNNN
+L6=NNENNNNEENNWNENWN
+L7=NNEWNNWEENNWNENWN
+L8=NWEENEENEEENNEENN
+L9=NWEENEEEENEWNEEWW
+L10=NWNNNNNENNEWNNEWN
+L11=NNENNNNEEENWNENWN
+L12=WWWWNWWNWWWNWWWNN
+L13=NNNNNNNNNNNWNNNWW
+L14=NWEENEEEENEWNEEWW
+L15=NNENNNNEEENWNENWW
+L16=WWWWNWWNWWWNWWWNW
+L17=WNNNNNNNWNNNWWWWN
+
+[Annotate]
+SortOrder=3
+SortLocation=0
+ReplaceSubparts=0
+MatchParameter1=Comment
+MatchStrictly1=1
+MatchParameter2=Library Reference
+MatchStrictly2=1
+PhysicalNamingFormat=$Component_$RoomName
+GlobalIndexSortOrder=3
+GlobalIndexSortLocation=0
+
+[PrjClassGen]
+CompClassManualEnabled=0
+CompClassManualRoomEnabled=0
+NetClassAutoBusEnabled=1
+NetClassAutoCompEnabled=0
+NetClassAutoNamedHarnessEnabled=0
+NetClassManualEnabled=1
+NetClassSeparateForBusSections=0
+
+[Comparison Options]
+ComparisonOptions0=Kind=Net|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0
+ComparisonOptions1=Kind=Net Class|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0
+ComparisonOptions2=Kind=Component Class|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0
+ComparisonOptions3=Kind=Rule|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0
+ComparisonOptions4=Kind=Differential Pair|MinPercent=50|MinMatch=1|ShowMatch=0|Confirm=0|UseName=0|InclAllRules=0
+ComparisonOptions5=Kind=Structure Class|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0
+
+[Document1]
+DocumentPath=2021-03-02_19-41-42.PcbLib
+AnnotationEnabled=1
+AnnotateStartValue=1
+AnnotationIndexControlEnabled=0
+AnnotateSuffix=
+AnnotateScope=All
+AnnotateOrder=-1
+DoLibraryUpdate=1
+DoDatabaseUpdate=1
+ClassGenCCAutoEnabled=1
+ClassGenCCAutoRoomEnabled=1
+ClassGenNCAutoScope=None
+DItemRevisionGUID=
+GenerateClassCluster=0
+DocumentUniqueId=
+
+[Document2]
+DocumentPath=2021-03-02_19-41-42.SchLib
+AnnotationEnabled=1
+AnnotateStartValue=1
+AnnotationIndexControlEnabled=0
+AnnotateSuffix=
+AnnotateScope=All
+AnnotateOrder=-1
+DoLibraryUpdate=1
+DoDatabaseUpdate=1
+ClassGenCCAutoEnabled=1
+ClassGenCCAutoRoomEnabled=1
+ClassGenNCAutoScope=None
+DItemRevisionGUID=
+GenerateClassCluster=0
+DocumentUniqueId=
+
+[LibraryUpdateOptions]
+SelectedOnly=0
+UpdateVariants=1
+UpdateToLatestRevision=1
+PartTypes=0
+FullReplace=1
+UpdateDesignatorLock=1
+UpdatePartIDLock=1
+PreserveParameterLocations=1
+PreserveParameterVisibility=1
+DoGraphics=1
+DoParameters=1
+DoModels=1
+AddParameters=0
+RemoveParameters=0
+AddModels=1
+RemoveModels=1
+UpdateCurrentModels=1
+
+[DatabaseUpdateOptions]
+SelectedOnly=0
+UpdateVariants=1
+UpdateToLatestRevision=1
+PartTypes=0
+
diff --git a/EE3102/Libraries/USBRegulator/2021-03-02_19-41-42.PcbLib b/EE3102/Libraries/USBRegulator/2021-03-02_19-41-42.PcbLib
new file mode 100644
index 0000000..cd304eb
--- /dev/null
+++ b/EE3102/Libraries/USBRegulator/2021-03-02_19-41-42.PcbLib
Binary files differ
diff --git a/EE3102/Libraries/USBRegulator/2021-03-02_19-41-42.SchLib b/EE3102/Libraries/USBRegulator/2021-03-02_19-41-42.SchLib
new file mode 100644
index 0000000..7540a52
--- /dev/null
+++ b/EE3102/Libraries/USBRegulator/2021-03-02_19-41-42.SchLib
Binary files differ
diff --git a/EE3102/Libraries/USBRegulator/2021-03-02_19-41-42.txt b/EE3102/Libraries/USBRegulator/2021-03-02_19-41-42.txt
new file mode 100644
index 0000000..1ed4429
--- /dev/null
+++ b/EE3102/Libraries/USBRegulator/2021-03-02_19-41-42.txt
@@ -0,0 +1,106 @@
+# Created by Ultra Librarian Gold 8.3.286 Copyright © 1999-2018
+# Frank Frank, Accelerated Designs
+
+StartFootprints
+
+Footprint (Name "T03B")
+Pad (Name "1") (Location -200, -40) (HoleSize 54) (Surface False) (Rotation 0)
+PadShape (Size 74, 74) (Shape Rectangular) (Layer Top)
+PadShape (Size 74, 74) (Shape Rectangular) (Layer Bottom)
+PadShape (Size 74, 74) (Shape Rectangular) (Layer MidLayer)
+EndPad
+Pad (Name "2") (Location -100, -40) (HoleSize 54) (Surface False) (Rotation 0)
+PadShape (Size 74, 74) (Shape Rounded) (Layer Top)
+PadShape (Size 74, 74) (Shape Rounded) (Layer Bottom)
+PadShape (Size 74, 74) (Shape Rounded) (Layer MidLayer)
+EndPad
+Pad (Name "3") (Location 0, -40) (HoleSize 54) (Surface False) (Rotation 0)
+PadShape (Size 74, 74) (Shape Rounded) (Layer Top)
+PadShape (Size 74, 74) (Shape Rounded) (Layer Bottom)
+PadShape (Size 74, 74) (Shape Rounded) (Layer MidLayer)
+EndPad
+Line (Width 6) (Start -317.5, -122.5) (End -317.5, 82.5) (Layer Mechanical15)
+Line (Width 6) (Start -317.5, 82.5) (End 117.5, 82.5) (Layer Mechanical15)
+Line (Width 6) (Start 117.5, 82.5) (End 117.5, -122.5) (Layer Mechanical15)
+Line (Width 6) (Start 117.5, -122.5) (End -317.5, -122.5) (Layer Mechanical15)
+Polygon (PointCount 4) (Layer Mechanical15)
+Point (-317.5, -122.5)
+Point (-317.5, 82.5)
+Point (117.5, 82.5)
+Point (117.5, -122.5)
+EndPolygon
+Polygon (PointCount 4) (Layer Mechanical5)
+Point (232.5, 197.5)
+Point (232.5, -237.5)
+Point (-432.5, -237.5)
+Point (-432.5, 197.5)
+EndPolygon
+Line (Width 1) (Start -307.5, -20) (End -307.5, 137.5) (Layer Mechanical7)
+Line (Width 1) (Start 107.5, -20) (End 107.5, 137.5) (Layer Mechanical7)
+Line (Width 1) (Start -307.5, 122.5) (End 107.5, 122.5) (Layer Mechanical7)
+Line (Width 1) (Start -307.5, 122.5) (End -297.5, 127.5) (Layer Mechanical7)
+Line (Width 1) (Start -307.5, 122.5) (End -297.5, 117.5) (Layer Mechanical7)
+Line (Width 1) (Start -297.5, 127.5) (End -297.5, 117.5) (Layer Mechanical7)
+Line (Width 1) (Start 107.5, 122.5) (End 97.5, 127.5) (Layer Mechanical7)
+Line (Width 1) (Start 107.5, 122.5) (End 97.5, 117.5) (Layer Mechanical7)
+Line (Width 1) (Start 97.5, 127.5) (End 97.5, 117.5) (Layer Mechanical7)
+Line (Width 1) (Start -307.5, 72.5) (End -372.5, 72.5) (Layer Mechanical7)
+Line (Width 1) (Start -307.5, -112.5) (End -372.5, -112.5) (Layer Mechanical7)
+Line (Width 1) (Start -357.5, 72.5) (End -357.5, -112.5) (Layer Mechanical7)
+Line (Width 1) (Start -357.5, 72.5) (End -362.5, 62.5) (Layer Mechanical7)
+Line (Width 1) (Start -357.5, 72.5) (End -352.5, 62.5) (Layer Mechanical7)
+Line (Width 1) (Start -362.5, 62.5) (End -352.5, 62.5) (Layer Mechanical7)
+Line (Width 1) (Start -357.5, -112.5) (End -362.5, -102.5) (Layer Mechanical7)
+Line (Width 1) (Start -357.5, -112.5) (End -352.5, -102.5) (Layer Mechanical7)
+Line (Width 1) (Start -362.5, -102.5) (End -352.5, -102.5) (Layer Mechanical7)
+Line (Width 1) (Start -200, -40) (End -200, -177.5) (Layer Mechanical7)
+Line (Width 1) (Start -100, -40) (End -100, -177.5) (Layer Mechanical7)
+Line (Width 1) (Start -200, -162.5) (End -250, -162.5) (Layer Mechanical7)
+Line (Width 1) (Start -100, -162.5) (End -50, -162.5) (Layer Mechanical7)
+Line (Width 1) (Start -200, -162.5) (End -210, -157.5) (Layer Mechanical7)
+Line (Width 1) (Start -200, -162.5) (End -210, -167.5) (Layer Mechanical7)
+Line (Width 1) (Start -210, -157.5) (End -210, -167.5) (Layer Mechanical7)
+Line (Width 1) (Start -100, -162.5) (End -90, -157.5) (Layer Mechanical7)
+Line (Width 1) (Start -100, -162.5) (End -90, -167.5) (Layer Mechanical7)
+Line (Width 1) (Start -90, -157.5) (End -90, -167.5) (Layer Mechanical7)
+Text (Location -462.5, -312.5) (Height 50) (Width 3) (Rotation 0) (Layer Mechanical7) (Value "Default Padstyle: EX74Y74D54P")
+Text (Location -437.5, -387.5) (Height 50) (Width 3) (Rotation 0) (Layer Mechanical7) (Value "Pin 1 Padstyle: SX74Y74D54P")
+Text (Location -437.5, -462.5) (Height 50) (Width 3) (Rotation 0) (Layer Mechanical7) (Value "Alt 1 Padstyle: OX60Y90D30P")
+Text (Location -437.5, -537.5) (Height 50) (Width 3) (Rotation 0) (Layer Mechanical7) (Value "Alt 2 Padstyle: OX90Y60D30P")
+Text (Location -193.75, 142.5) (Height 25) (Width 1) (Rotation 0) (Layer Mechanical7) (Value ".415in/10.541mm")
+Text (Location -552.5, -32.5) (Height 25) (Width 1) (Rotation 0) (Layer Mechanical7) (Value ".185in/4.699mm")
+Text (Location -218.75, -207.5) (Height 25) (Width 1) (Rotation 0) (Layer Mechanical7) (Value ".1in/2.54mm")
+Line (Width 6) (Start -307.5, -112.5) (End 107.5, -112.5) (Layer TopOverlay)
+Line (Width 6) (Start 107.5, -112.5) (End 107.5, 72.5) (Layer TopOverlay)
+Line (Width 6) (Start 107.5, 72.5) (End -307.5, 72.5) (Layer TopOverlay)
+Line (Width 6) (Start -307.5, 72.5) (End -307.5, -112.5) (Layer TopOverlay)
+Line (Width 1) (Start -307.5, -112.5) (End 107.5, -112.5) (Layer Mechanical13)
+Line (Width 1) (Start 107.5, -112.5) (End 107.5, 72.5) (Layer Mechanical13)
+Line (Width 1) (Start 107.5, 72.5) (End -307.5, 72.5) (Layer Mechanical13)
+Line (Width 1) (Start -307.5, 72.5) (End -307.5, -112.5) (Layer Mechanical13)
+Step (Name T03B.stp)
+EndFootprint
+EndFootprints
+
+StartComponents
+
+Component (Name "LM2937ET-3.3/NOPB") (PartCount 1) (DesPrefix "U?")
+Pin (Location 300, 0) (Rotation 180) (PinType Input) (Length 300) (Width 0) (Designator Visible "1") (Name Visible "IN") (PinSwap 0) (PartSwap 0) (PinSeq 1) (Part 1)
+Pin (Location 1900, -100) (Rotation 0) (PinType Power) (Length 300) (Width 0) (Designator Visible "2") (Name Visible "GND") (PinSwap 0) (PartSwap 0) (PinSeq 2) (Part 1)
+Pin (Location 1900, 0) (Rotation 0) (PinType Output) (Length 300) (Width 0) (Designator Visible "3") (Name Visible "OUT") (PinSwap 0) (PartSwap 0) (PinSeq 3) (Part 1)
+Rectangle (Width 5) (Start 300, -300) (End 1900, 200) (Part 1)
+Parameter (Name "Type") (Location 1100, 300) (Height 82) (Rotation 0) (Justification Center) (Value "DEV") (Part 1)
+Parameter (Name "Comp") (Location 0, 0) (Height 50) (Rotation 0) (Justification Center) (Value "TypeLDO") (Part 1)
+Parameter (Name "PartNumber") (Location 0, 0) (Height 50) (Rotation 0) (Justification Center) (Value "LM2937ET-10") (Part 1)
+Parameter (Name "Vendor") (Location 0, 0) (Height 50) (Rotation 0) (Justification Center) (Value "NationalSemiconductor") (Part 1)
+Parameter (Name "Version") (Location 0, 0) (Height 50) (Rotation 0) (Justification Center) (Value "1") (Part 1)
+Parameter (Name "base_pn") (Location 0, 0) (Height 50) (Rotation 0) (Justification Center) (Value "LM2937") (Part 1)
+Parameter (Name "Symbol") (Location 0, 0) (Height 50) (Rotation 0) (Justification Center) (Value "NameLM2937ET-10") (Part 1)
+Parameter (Name "Library") (Location 0, 0) (Height 50) (Rotation 0) (Justification Center) (Value "ReferenceLM2937ET") (Part 1)
+Parameter (Name "Pin") (Location 0, 0) (Height 50) (Rotation 0) (Justification Center) (Value "Count3") (Part 1)
+Parameter (Name "Copyright") (Location 0, 0) (Height 50) (Rotation 0) (Justification Center) (Value "Copyright (C) 2018 Accelerated Designs. All rights reserved") (Part 1)
+Parameter (Name "RefDes") (Location 1100, 400) (Height 82) (Rotation 0) (Justification Center) (Value "RefDes") (Part 1)
+Description (Value "No Description Available") (Part 1)
+Footprint (Name "T03B")
+EndComponent
+EndComponents
diff --git a/EE3102/Libraries/USBRegulator/T03B.step b/EE3102/Libraries/USBRegulator/T03B.step
new file mode 100644
index 0000000..eacc109
--- /dev/null
+++ b/EE3102/Libraries/USBRegulator/T03B.step
@@ -0,0 +1,837 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('STEP AP214'),'1');
+FILE_NAME('T03B','2021-03-02T19:41:42',(''),(''),'','','');
+FILE_SCHEMA(('AUTOMOTIVE_DESIGN'));
+ENDSEC;
+DATA;
+#1=SHAPE_DEFINITION_REPRESENTATION(#2,#3);
+#2=PRODUCT_DEFINITION_SHAPE('',$,#4);
+#3=SHAPE_REPRESENTATION('',(#80,#135,#190,#246,#1080,#19),#11);
+#4=PRODUCT_DEFINITION('design','example product_definition',#6,#5);
+#5=PRODUCT_DEFINITION_CONTEXT('3D Mechanical Parts',#10,'design');
+#6=PRODUCT_DEFINITION_FORMATION('1.0','first version',#8);
+#7=APPLICATION_PROTOCOL_DEFINITION('international standard','automotive_design',2003,#10);
+#8=PRODUCT('product','part','',(#9));
+#9=PRODUCT_CONTEXT('3D Mechanical Parts',#10,'mechanical');
+#10=APPLICATION_CONTEXT('Core Data for Automotive Mechanical Design Process');
+#11=(GEOMETRIC_REPRESENTATION_CONTEXT(3) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#12)) GLOBAL_UNIT_ASSIGNED_CONTEXT((#13,#14,#18)) REPRESENTATION_CONTEXT('ID1','3D'));
+#12=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-005),#13,'DISTANCE_ACCURACY_VALUE','Maximum model space distance between geometric entities at asserted connectivities');
+#13=(LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.));
+#14=(CONVERSION_BASED_UNIT('degree',#16) NAMED_UNIT(#15) PLANE_ANGLE_UNIT());
+#15=DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
+#16=MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.01745329252),#17);
+#17=(NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.));
+#18=(NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT());
+#19=AXIS2_PLACEMENT_3D('',#20,#21,#22);
+#20=CARTESIAN_POINT('',(0.0,0.0,0.0));
+#21=DIRECTION('',(0.0,0.0,1.0));
+#22=DIRECTION('',(1.0,0.0,0.0));
+#25=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION($,(#132,#133,#134,#187,#188,#189,#242,#243,#244,#248,#323,#448,#499,#550,#609,#658,#717,#766,#815,#864,#913,#962,#1011,#1082,#1151,#1200,#1249,#1298,#1347,#1396,#1445),#11);
+#26=PRODUCT_CATEGORY_RELATIONSHIP('','',#27,#28);
+#27=PRODUCT_CATEGORY('part','');
+#28=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#8));
+#34=PRESENTATION_STYLE_ASSIGNMENT((#35,#40));
+#35=SURFACE_STYLE_USAGE(.BOTH.,#36);
+#36=SURFACE_SIDE_STYLE('',(#37));
+#37=SURFACE_STYLE_FILL_AREA(#38);
+#38=FILL_AREA_STYLE('',(#39));
+#39=FILL_AREA_STYLE_COLOUR('',#41);
+#40=CURVE_STYLE('',#42,POSITIVE_LENGTH_MEASURE(0.1),#41);
+#41=COLOUR_RGB('Aluminum',0.725,0.725,0.725);
+#42=DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
+#43=PRESENTATION_STYLE_ASSIGNMENT((#44,#49));
+#44=SURFACE_STYLE_USAGE(.BOTH.,#45);
+#45=SURFACE_SIDE_STYLE('',(#46));
+#46=SURFACE_STYLE_FILL_AREA(#47);
+#47=FILL_AREA_STYLE('',(#48));
+#48=FILL_AREA_STYLE_COLOUR('',#50);
+#49=CURVE_STYLE('',#51,POSITIVE_LENGTH_MEASURE(0.1),#50);
+#50=COLOUR_RGB('Black',0.196,0.196,0.196);
+#51=DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
+#52=PRESENTATION_STYLE_ASSIGNMENT((#53,#58));
+#53=SURFACE_STYLE_USAGE(.BOTH.,#54);
+#54=SURFACE_SIDE_STYLE('',(#55));
+#55=SURFACE_STYLE_FILL_AREA(#56);
+#56=FILL_AREA_STYLE('',(#57));
+#57=FILL_AREA_STYLE_COLOUR('',#59);
+#58=CURVE_STYLE('',#60,POSITIVE_LENGTH_MEASURE(0.1),#59);
+#59=COLOUR_RGB('Pin1Axial',0.98,0.706,0.176);
+#60=DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
+#61=PRESENTATION_STYLE_ASSIGNMENT((#62,#67));
+#62=SURFACE_STYLE_USAGE(.BOTH.,#63);
+#63=SURFACE_SIDE_STYLE('',(#64));
+#64=SURFACE_STYLE_FILL_AREA(#65);
+#65=FILL_AREA_STYLE('',(#66));
+#66=FILL_AREA_STYLE_COLOUR('',#68);
+#67=CURVE_STYLE('',#69,POSITIVE_LENGTH_MEASURE(0.1),#68);
+#68=COLOUR_RGB('HeatTab',0.588,0.588,0.588);
+#69=DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
+#70=PRESENTATION_STYLE_ASSIGNMENT((#71,#76));
+#71=SURFACE_STYLE_USAGE(.BOTH.,#72);
+#72=SURFACE_SIDE_STYLE('',(#73));
+#73=SURFACE_STYLE_FILL_AREA(#74);
+#74=FILL_AREA_STYLE('',(#75));
+#75=FILL_AREA_STYLE_COLOUR('',#77);
+#76=CURVE_STYLE('',#78,POSITIVE_LENGTH_MEASURE(0.1),#77);
+#77=COLOUR_RGB('MountTab',0.706,0.706,0.706);
+#78=DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
+#80=MANIFOLD_SOLID_BREP($,#81);
+#81=CLOSED_SHELL('',(#82,#83,#84));
+#82=ADVANCED_FACE($,(#88,#87),#105,.T.);
+#83=ADVANCED_FACE($,(#89),#85,.F.);
+#84=ADVANCED_FACE($,(#90),#86,.T.);
+#85=PLANE($,#110);
+#86=PLANE($,#111);
+#87=FACE_BOUND($,#92,.T.);
+#88=FACE_OUTER_BOUND($,#91,.T.);
+#89=FACE_OUTER_BOUND($,#93,.T.);
+#90=FACE_OUTER_BOUND($,#94,.T.);
+#91=EDGE_LOOP($,(#101));
+#92=EDGE_LOOP($,(#102));
+#93=EDGE_LOOP($,(#103));
+#94=EDGE_LOOP($,(#104));
+#95=CIRCLE($,#108,0.5588);
+#96=CIRCLE($,#109,0.5588);
+#97=VERTEX_POINT('',#126);
+#98=VERTEX_POINT('',#128);
+#99=EDGE_CURVE($,#97,#97,#95,.T.);
+#100=EDGE_CURVE($,#98,#98,#96,.T.);
+#101=ORIENTED_EDGE($,*,*,#99,.F.);
+#102=ORIENTED_EDGE($,*,*,#100,.F.);
+#103=ORIENTED_EDGE($,*,*,#100,.T.);
+#104=ORIENTED_EDGE($,*,*,#99,.T.);
+#105=CYLINDRICAL_SURFACE($,#107,0.5588);
+#106=AXIS2_PLACEMENT_3D('placement',#124,#112,#113);
+#107=AXIS2_PLACEMENT_3D($,#125,#114,#115);
+#108=AXIS2_PLACEMENT_3D($,#127,#116,#117);
+#109=AXIS2_PLACEMENT_3D($,#129,#118,#119);
+#110=AXIS2_PLACEMENT_3D($,#130,#120,#121);
+#111=AXIS2_PLACEMENT_3D($,#131,#122,#123);
+#112=DIRECTION('axis',(0.,1.,0.));
+#113=DIRECTION('refdir',(1.,0.,0.));
+#114=DIRECTION('',(0.,0.,1.));
+#115=DIRECTION('',(1.,0.,0.));
+#116=DIRECTION('',(0.,0.,1.));
+#117=DIRECTION('',(1.,0.,0.));
+#118=DIRECTION('',(0.,0.,-1.));
+#119=DIRECTION('',(1.,0.,0.));
+#120=DIRECTION('',(0.,0.,1.));
+#121=DIRECTION('',(0.,1.,0.));
+#122=DIRECTION('',(0.,0.,1.));
+#123=DIRECTION('',(0.,1.,0.));
+#124=CARTESIAN_POINT('',(0.,0.,0.));
+#125=CARTESIAN_POINT('',(0.0,0.0,-7.01));
+#126=CARTESIAN_POINT('',(-0.559,0.0,0.0));
+#127=CARTESIAN_POINT('',(0.0,0.0,0.0));
+#128=CARTESIAN_POINT('',(-0.559,0.0,-7.01));
+#129=CARTESIAN_POINT('',(0.0,0.0,-7.01));
+#130=CARTESIAN_POINT('',(0.0,0.0,-7.01));
+#131=CARTESIAN_POINT('',(0.0,0.0,0.0));
+#132=STYLED_ITEM('color',(#34),#82);
+#133=STYLED_ITEM('color',(#34),#83);
+#134=STYLED_ITEM('color',(#34),#84);
+#135=MANIFOLD_SOLID_BREP($,#136);
+#136=CLOSED_SHELL('',(#137,#138,#139));
+#137=ADVANCED_FACE($,(#143,#142),#160,.T.);
+#138=ADVANCED_FACE($,(#144),#140,.F.);
+#139=ADVANCED_FACE($,(#145),#141,.T.);
+#140=PLANE($,#165);
+#141=PLANE($,#166);
+#142=FACE_BOUND($,#147,.T.);
+#143=FACE_OUTER_BOUND($,#146,.T.);
+#144=FACE_OUTER_BOUND($,#148,.T.);
+#145=FACE_OUTER_BOUND($,#149,.T.);
+#146=EDGE_LOOP($,(#156));
+#147=EDGE_LOOP($,(#157));
+#148=EDGE_LOOP($,(#158));
+#149=EDGE_LOOP($,(#159));
+#150=CIRCLE($,#163,0.5588);
+#151=CIRCLE($,#164,0.5588);
+#152=VERTEX_POINT('',#181);
+#153=VERTEX_POINT('',#183);
+#154=EDGE_CURVE($,#152,#152,#150,.T.);
+#155=EDGE_CURVE($,#153,#153,#151,.T.);
+#156=ORIENTED_EDGE($,*,*,#154,.F.);
+#157=ORIENTED_EDGE($,*,*,#155,.F.);
+#158=ORIENTED_EDGE($,*,*,#155,.T.);
+#159=ORIENTED_EDGE($,*,*,#154,.T.);
+#160=CYLINDRICAL_SURFACE($,#162,0.5588);
+#161=AXIS2_PLACEMENT_3D('placement',#179,#167,#168);
+#162=AXIS2_PLACEMENT_3D($,#180,#169,#170);
+#163=AXIS2_PLACEMENT_3D($,#182,#171,#172);
+#164=AXIS2_PLACEMENT_3D($,#184,#173,#174);
+#165=AXIS2_PLACEMENT_3D($,#185,#175,#176);
+#166=AXIS2_PLACEMENT_3D($,#186,#177,#178);
+#167=DIRECTION('axis',(0.,1.,0.));
+#168=DIRECTION('refdir',(1.,0.,0.));
+#169=DIRECTION('',(0.,0.,1.));
+#170=DIRECTION('',(1.,0.,0.));
+#171=DIRECTION('',(0.,0.,1.));
+#172=DIRECTION('',(1.,0.,0.));
+#173=DIRECTION('',(0.,0.,-1.));
+#174=DIRECTION('',(1.,0.,0.));
+#175=DIRECTION('',(0.,0.,1.));
+#176=DIRECTION('',(0.,1.,0.));
+#177=DIRECTION('',(0.,0.,1.));
+#178=DIRECTION('',(0.,1.,0.));
+#179=CARTESIAN_POINT('',(0.,0.,0.));
+#180=CARTESIAN_POINT('',(2.54,0.0,-7.01));
+#181=CARTESIAN_POINT('',(1.981,0.0,0.0));
+#182=CARTESIAN_POINT('',(2.54,0.0,0.0));
+#183=CARTESIAN_POINT('',(1.981,0.0,-7.01));
+#184=CARTESIAN_POINT('',(2.54,0.0,-7.01));
+#185=CARTESIAN_POINT('',(2.54,0.0,-7.01));
+#186=CARTESIAN_POINT('',(2.54,0.0,0.0));
+#187=STYLED_ITEM('color',(#34),#137);
+#188=STYLED_ITEM('color',(#34),#138);
+#189=STYLED_ITEM('color',(#34),#139);
+#190=MANIFOLD_SOLID_BREP($,#191);
+#191=CLOSED_SHELL('',(#192,#193,#194));
+#192=ADVANCED_FACE($,(#198,#197),#215,.T.);
+#193=ADVANCED_FACE($,(#199),#195,.F.);
+#194=ADVANCED_FACE($,(#200),#196,.T.);
+#195=PLANE($,#220);
+#196=PLANE($,#221);
+#197=FACE_BOUND($,#202,.T.);
+#198=FACE_OUTER_BOUND($,#201,.T.);
+#199=FACE_OUTER_BOUND($,#203,.T.);
+#200=FACE_OUTER_BOUND($,#204,.T.);
+#201=EDGE_LOOP($,(#211));
+#202=EDGE_LOOP($,(#212));
+#203=EDGE_LOOP($,(#213));
+#204=EDGE_LOOP($,(#214));
+#205=CIRCLE($,#218,0.5588);
+#206=CIRCLE($,#219,0.5588);
+#207=VERTEX_POINT('',#236);
+#208=VERTEX_POINT('',#238);
+#209=EDGE_CURVE($,#207,#207,#205,.T.);
+#210=EDGE_CURVE($,#208,#208,#206,.T.);
+#211=ORIENTED_EDGE($,*,*,#209,.F.);
+#212=ORIENTED_EDGE($,*,*,#210,.F.);
+#213=ORIENTED_EDGE($,*,*,#210,.T.);
+#214=ORIENTED_EDGE($,*,*,#209,.T.);
+#215=CYLINDRICAL_SURFACE($,#217,0.5588);
+#216=AXIS2_PLACEMENT_3D('placement',#234,#222,#223);
+#217=AXIS2_PLACEMENT_3D($,#235,#224,#225);
+#218=AXIS2_PLACEMENT_3D($,#237,#226,#227);
+#219=AXIS2_PLACEMENT_3D($,#239,#228,#229);
+#220=AXIS2_PLACEMENT_3D($,#240,#230,#231);
+#221=AXIS2_PLACEMENT_3D($,#241,#232,#233);
+#222=DIRECTION('axis',(0.,1.,0.));
+#223=DIRECTION('refdir',(1.,0.,0.));
+#224=DIRECTION('',(0.,0.,1.));
+#225=DIRECTION('',(1.,0.,0.));
+#226=DIRECTION('',(0.,0.,1.));
+#227=DIRECTION('',(1.,0.,0.));
+#228=DIRECTION('',(0.,0.,-1.));
+#229=DIRECTION('',(1.,0.,0.));
+#230=DIRECTION('',(0.,0.,1.));
+#231=DIRECTION('',(0.,1.,0.));
+#232=DIRECTION('',(0.,0.,1.));
+#233=DIRECTION('',(0.,1.,0.));
+#234=CARTESIAN_POINT('',(0.,0.,0.));
+#235=CARTESIAN_POINT('',(5.08,0.0,-7.01));
+#236=CARTESIAN_POINT('',(4.521,0.0,0.0));
+#237=CARTESIAN_POINT('',(5.08,0.0,0.0));
+#238=CARTESIAN_POINT('',(4.521,0.0,-7.01));
+#239=CARTESIAN_POINT('',(5.08,0.0,-7.01));
+#240=CARTESIAN_POINT('',(5.08,0.0,-7.01));
+#241=CARTESIAN_POINT('',(5.08,0.0,0.0));
+#242=STYLED_ITEM('color',(#34),#192);
+#243=STYLED_ITEM('color',(#34),#193);
+#244=STYLED_ITEM('color',(#34),#194);
+#246=MANIFOLD_SOLID_BREP($,#247);
+#247=CLOSED_SHELL('',(#249,#324,#449,#500,#551,#610,#659,#718,#767,#816,#865,#914,#963,#1012));
+#248=STYLED_ITEM('color',(#34),#249);
+#249=ADVANCED_FACE($,(#255, #299),#250,.T.);
+#250=PLANE($,#251);
+#251=AXIS2_PLACEMENT_3D($,#252,#253,#254);
+#252=CARTESIAN_POINT('',(2.54,1.683,15.646));
+#253=DIRECTION('',(0.0,-1.0,0.0));
+#254=DIRECTION('',(1.,0.,0.));
+#255=FACE_OUTER_BOUND($,#256,.T.);
+#256=EDGE_LOOP($,(#259, #269, #279, #289));
+#262=CARTESIAN_POINT('',(7.709,1.683,19.558));
+#261=VERTEX_POINT('',#262);
+#264=CARTESIAN_POINT('',(7.709,1.683,11.735));
+#263=VERTEX_POINT('',#264);
+#260=EDGE_CURVE('',#261,#263,#265,.T.);
+#265=LINE('',#262,#267);
+#267=VECTOR('',#268,7.8232);
+#268=DIRECTION('',(0.0,0.0,-1.0));
+#259=ORIENTED_EDGE('',*,*,#260,.F.);
+#272=CARTESIAN_POINT('',(-2.629,1.683,19.558));
+#271=VERTEX_POINT('',#272);
+#270=EDGE_CURVE('',#271,#261,#275,.T.);
+#275=LINE('',#272,#277);
+#277=VECTOR('',#278,10.3377999459936);
+#278=DIRECTION('',(1.0,0.0,0.0));
+#269=ORIENTED_EDGE('',*,*,#270,.F.);
+#282=CARTESIAN_POINT('',(-2.629,1.683,11.735));
+#281=VERTEX_POINT('',#282);
+#280=EDGE_CURVE('',#281,#271,#285,.T.);
+#285=LINE('',#282,#287);
+#287=VECTOR('',#288,7.8232);
+#288=DIRECTION('',(0.0,0.0,1.0));
+#279=ORIENTED_EDGE('',*,*,#280,.F.);
+#290=EDGE_CURVE('',#263,#281,#295,.T.);
+#295=LINE('',#264,#297);
+#297=VECTOR('',#298,10.3377999459936);
+#298=DIRECTION('',(-1.0,0.0,0.0));
+#289=ORIENTED_EDGE('',*,*,#290,.F.);
+#299=FACE_BOUND($,#300,.T.);
+#300=EDGE_LOOP($,(#301, #312));
+#304=CARTESIAN_POINT('',(5.278,1.683,15.646));
+#303=VERTEX_POINT('',#304);
+#306=CARTESIAN_POINT('',(-0.198,1.683,15.646));
+#305=VERTEX_POINT('',#306);
+#302=EDGE_CURVE($,#303,#305,#307,.T.);
+#307=CIRCLE($,#308,2.73812);
+#309=CARTESIAN_POINT('',(2.54,1.683,15.646));
+#308=AXIS2_PLACEMENT_3D($,#309,#310,#311);
+#310=DIRECTION('',(0.0,-1.0,0.0));
+#311=DIRECTION('',(-1.0,0.0,0.0));
+#301=ORIENTED_EDGE('',*,*,#302,.F.);
+#313=EDGE_CURVE($,#305,#303,#318,.T.);
+#318=CIRCLE($,#319,2.73812);
+#319=AXIS2_PLACEMENT_3D($,#309,#321,#322);
+#321=DIRECTION('',(0.0,-1.0,0.0));
+#322=DIRECTION('',(-1.0,0.0,0.0));
+#312=ORIENTED_EDGE('',*,*,#313,.F.);
+#323=STYLED_ITEM('color',(#34),#324);
+#324=ADVANCED_FACE($,(#330, #424),#325,.T.);
+#325=PLANE($,#326);
+#326=AXIS2_PLACEMENT_3D($,#327,#328,#329);
+#327=CARTESIAN_POINT('',(2.54,2.857,15.646));
+#328=DIRECTION('',(0.,1.,0.));
+#329=DIRECTION('',(-1.,0.,0.));
+#330=FACE_OUTER_BOUND($,#331,.T.);
+#331=EDGE_LOOP($,(#334, #344, #354, #364, #374, #384, #404, #414));
+#337=CARTESIAN_POINT('',(-2.629,2.858,19.558));
+#336=VERTEX_POINT('',#337);
+#339=CARTESIAN_POINT('',(-2.629,2.858,11.735));
+#338=VERTEX_POINT('',#339);
+#335=EDGE_CURVE('',#336,#338,#340,.T.);
+#340=LINE('',#337,#342);
+#342=VECTOR('',#343,7.8232);
+#343=DIRECTION('',(0.0,0.0,-1.0));
+#334=ORIENTED_EDGE('',*,*,#335,.F.);
+#347=CARTESIAN_POINT('',(7.709,2.857,19.558));
+#346=VERTEX_POINT('',#347);
+#345=EDGE_CURVE('',#346,#336,#350,.T.);
+#350=LINE('',#347,#352);
+#352=VECTOR('',#353,10.3377999082559);
+#353=DIRECTION('',(-1.0,0.0,0.0));
+#344=ORIENTED_EDGE('',*,*,#345,.F.);
+#357=CARTESIAN_POINT('',(7.709,2.857,11.735));
+#356=VERTEX_POINT('',#357);
+#355=EDGE_CURVE('',#356,#346,#360,.T.);
+#360=LINE('',#357,#362);
+#362=VECTOR('',#363,7.8232);
+#363=DIRECTION('',(0.0,0.0,1.0));
+#354=ORIENTED_EDGE('',*,*,#355,.F.);
+#367=CARTESIAN_POINT('',(6.675,2.857,11.735));
+#366=VERTEX_POINT('',#367);
+#365=EDGE_CURVE('',#366,#356,#370,.T.);
+#370=LINE('',#367,#372);
+#372=VECTOR('',#373,1.03377999639361);
+#373=DIRECTION('',(1.0,0.0,0.0));
+#364=ORIENTED_EDGE('',*,*,#365,.F.);
+#377=CARTESIAN_POINT('',(6.675,2.857,3.912));
+#376=VERTEX_POINT('',#377);
+#375=EDGE_CURVE('',#376,#366,#380,.T.);
+#380=LINE('',#377,#382);
+#382=VECTOR('',#383,7.8232);
+#383=DIRECTION('',(0.0,0.0,1.0));
+#374=ORIENTED_EDGE('',*,*,#375,.F.);
+#387=CARTESIAN_POINT('',(-1.595,2.858,3.912));
+#386=VERTEX_POINT('',#387);
+#385=EDGE_CURVE('',#386,#376,#390,.T.);
+#390=LINE('',#387,#392);
+#392=VECTOR('',#393,8.27023991546867);
+#393=DIRECTION('',(1.0,0.0,0.0));
+#384=ORIENTED_EDGE('',*,*,#385,.F.);
+#407=CARTESIAN_POINT('',(-1.595,2.858,11.735));
+#406=VERTEX_POINT('',#407);
+#405=EDGE_CURVE('',#406,#386,#410,.T.);
+#410=LINE('',#407,#412);
+#412=VECTOR('',#413,7.8232);
+#413=DIRECTION('',(0.0,0.0,-1.0));
+#404=ORIENTED_EDGE('',*,*,#405,.F.);
+#415=EDGE_CURVE('',#338,#406,#420,.T.);
+#420=LINE('',#339,#422);
+#422=VECTOR('',#423,1.03377999639361);
+#423=DIRECTION('',(1.0,0.0,0.0));
+#414=ORIENTED_EDGE('',*,*,#415,.F.);
+#424=FACE_BOUND($,#425,.T.);
+#425=EDGE_LOOP($,(#426, #437));
+#429=CARTESIAN_POINT('',(-0.198,2.858,15.646));
+#428=VERTEX_POINT('',#429);
+#431=CARTESIAN_POINT('',(5.278,2.857,15.646));
+#430=VERTEX_POINT('',#431);
+#427=EDGE_CURVE($,#428,#430,#432,.T.);
+#432=CIRCLE($,#433,2.73812);
+#434=CARTESIAN_POINT('',(2.54,2.857,15.646));
+#433=AXIS2_PLACEMENT_3D($,#434,#435,#436);
+#435=DIRECTION('',(0.0,1.0,0.0));
+#436=DIRECTION('',(1.0,0.0,0.0));
+#426=ORIENTED_EDGE('',*,*,#427,.F.);
+#438=EDGE_CURVE($,#430,#428,#443,.T.);
+#443=CIRCLE($,#444,2.73812);
+#444=AXIS2_PLACEMENT_3D($,#434,#446,#447);
+#446=DIRECTION('',(0.0,1.0,0.0));
+#447=DIRECTION('',(1.0,0.0,0.0));
+#437=ORIENTED_EDGE('',*,*,#438,.F.);
+#448=STYLED_ITEM($,(#34),#449);
+#449=ADVANCED_FACE($,(#455),#450,.F.);
+#450=CYLINDRICAL_SURFACE($,#451,2.73812);
+#451=AXIS2_PLACEMENT_3D($,#452,#453,#454);
+#452=CARTESIAN_POINT('',(2.54,1.683,15.646));
+#453=DIRECTION('',(0.0,1.0,0.0));
+#454=DIRECTION('',(0.,0.,1.));
+#455=FACE_OUTER_BOUND($,#456,.T.);
+#456=EDGE_LOOP($,(#468,#478,#489,#457));
+#469=EDGE_CURVE('',#428,#305,#474,.T.);
+#474=LINE('',#429,#476);
+#476=VECTOR('',#477,1.17474998581991);
+#477=DIRECTION('',(0.0,-1.0,0.0));
+#468=ORIENTED_EDGE('',*,*,#469,.F.);
+#478=ORIENTED_EDGE('',*,*,#427,.T.);
+#490=EDGE_CURVE('',#303,#430,#495,.T.);
+#495=LINE('',#304,#497);
+#497=VECTOR('',#498,1.17474998581991);
+#498=DIRECTION('',(0.0,1.0,0.0));
+#489=ORIENTED_EDGE('',*,*,#490,.F.);
+#457=ORIENTED_EDGE('',*,*,#302,.T.);
+#499=STYLED_ITEM($,(#34),#500);
+#500=ADVANCED_FACE($,(#506),#501,.F.);
+#501=CYLINDRICAL_SURFACE($,#502,2.73812);
+#502=AXIS2_PLACEMENT_3D($,#503,#504,#505);
+#503=CARTESIAN_POINT('',(2.54,1.683,15.646));
+#504=DIRECTION('',(0.0,1.0,0.0));
+#505=DIRECTION('',(0.,0.,1.));
+#506=FACE_OUTER_BOUND($,#507,.T.);
+#507=EDGE_LOOP($,(#519,#529,#540,#508));
+#519=ORIENTED_EDGE('',*,*,#490,.T.);
+#529=ORIENTED_EDGE('',*,*,#438,.T.);
+#540=ORIENTED_EDGE('',*,*,#469,.T.);
+#508=ORIENTED_EDGE('',*,*,#313,.T.);
+#550=STYLED_ITEM('',(#34),#551);
+#551=ADVANCED_FACE('',(#557),#552,.T.);
+#552=PLANE('',#553);
+#553=AXIS2_PLACEMENT_3D('',#554,#555,#556);
+#554=CARTESIAN_POINT('',(7.709,1.683,11.735));
+#555=DIRECTION('',(1.0,0.0,0.0));
+#556=DIRECTION('',(0.,1.,0.));
+#557=FACE_OUTER_BOUND('',#558,.T.);
+#558=EDGE_LOOP('',(#559,#569,#579,#589,#599));
+#562=CARTESIAN_POINT('',(7.709,2.756,11.735));
+#561=VERTEX_POINT('',#562);
+#560=EDGE_CURVE('',#561,#263,#565,.T.);
+#565=LINE('',#562,#567);
+#567=VECTOR('',#568,1.07314998355002);
+#568=DIRECTION('',(0.0,-1.0,0.0));
+#559=ORIENTED_EDGE('',*,*,#560,.F.);
+#570=EDGE_CURVE('',#356,#561,#575,.T.);
+#575=LINE('',#357,#577);
+#577=VECTOR('',#578,0.101599998554415);
+#578=DIRECTION('',(0.0,-1.0,0.0));
+#569=ORIENTED_EDGE('',*,*,#570,.F.);
+#579=ORIENTED_EDGE('',*,*,#355,.T.);
+#590=EDGE_CURVE('',#261,#346,#595,.T.);
+#595=LINE('',#262,#597);
+#597=VECTOR('',#598,1.17474998210444);
+#598=DIRECTION('',(0.0,1.0,0.0));
+#589=ORIENTED_EDGE('',*,*,#590,.F.);
+#599=ORIENTED_EDGE('',*,*,#260,.T.);
+#609=STYLED_ITEM('',(#34),#610);
+#610=ADVANCED_FACE('',(#616),#611,.T.);
+#611=PLANE('',#612);
+#612=AXIS2_PLACEMENT_3D('',#613,#614,#615);
+#613=CARTESIAN_POINT('',(7.709,2.857,19.558));
+#614=DIRECTION('',(0.0,0.0,1.0));
+#615=DIRECTION('',(0.,1.,0.));
+#616=FACE_OUTER_BOUND('',#617,.T.);
+#617=EDGE_LOOP('',(#618,#628,#638,#648));
+#618=ORIENTED_EDGE('',*,*,#345,.T.);
+#629=EDGE_CURVE('',#271,#336,#634,.T.);
+#634=LINE('',#272,#636);
+#636=VECTOR('',#637,1.17474998210444);
+#637=DIRECTION('',(0.0,1.0,0.0));
+#628=ORIENTED_EDGE('',*,*,#629,.F.);
+#638=ORIENTED_EDGE('',*,*,#270,.T.);
+#648=ORIENTED_EDGE('',*,*,#590,.T.);
+#658=STYLED_ITEM('',(#34),#659);
+#659=ADVANCED_FACE('',(#665),#660,.T.);
+#660=PLANE('',#661);
+#661=AXIS2_PLACEMENT_3D('',#662,#663,#664);
+#662=CARTESIAN_POINT('',(-2.629,2.858,11.735));
+#663=DIRECTION('',(-1.0,0.0,0.0));
+#664=DIRECTION('',(0.,1.,0.));
+#665=FACE_OUTER_BOUND('',#666,.T.);
+#666=EDGE_LOOP('',(#667,#677,#687,#697,#707));
+#670=CARTESIAN_POINT('',(-2.629,2.756,11.735));
+#669=VERTEX_POINT('',#670);
+#668=EDGE_CURVE('',#669,#338,#673,.T.);
+#673=LINE('',#670,#675);
+#675=VECTOR('',#676,0.101599998554416);
+#676=DIRECTION('',(0.0,1.0,0.0));
+#667=ORIENTED_EDGE('',*,*,#668,.F.);
+#678=EDGE_CURVE('',#281,#669,#683,.T.);
+#683=LINE('',#282,#685);
+#685=VECTOR('',#686,1.07314998355002);
+#686=DIRECTION('',(0.0,1.0,0.0));
+#677=ORIENTED_EDGE('',*,*,#678,.F.);
+#687=ORIENTED_EDGE('',*,*,#280,.T.);
+#697=ORIENTED_EDGE('',*,*,#629,.T.);
+#707=ORIENTED_EDGE('',*,*,#335,.T.);
+#717=STYLED_ITEM('',(#34),#718);
+#718=ADVANCED_FACE('',(#724),#719,.T.);
+#719=PLANE('',#720);
+#720=AXIS2_PLACEMENT_3D('',#721,#722,#723);
+#721=CARTESIAN_POINT('',(7.709,2.857,11.735));
+#722=DIRECTION('',(0.0,0.0,-1.0));
+#723=DIRECTION('',(0.,1.,0.));
+#724=FACE_OUTER_BOUND('',#725,.T.);
+#725=EDGE_LOOP('',(#726,#736,#746,#756));
+#726=ORIENTED_EDGE('',*,*,#570,.T.);
+#739=CARTESIAN_POINT('',(6.675,2.756,11.735));
+#738=VERTEX_POINT('',#739);
+#737=EDGE_CURVE('',#738,#561,#742,.T.);
+#742=LINE('',#739,#744);
+#744=VECTOR('',#745,1.03377999663995);
+#745=DIRECTION('',(1.0,0.0,0.0));
+#736=ORIENTED_EDGE('',*,*,#737,.F.);
+#747=EDGE_CURVE('',#366,#738,#752,.T.);
+#752=LINE('',#367,#754);
+#754=VECTOR('',#755,0.10159999867726);
+#755=DIRECTION('',(0.0,-1.0,0.0));
+#746=ORIENTED_EDGE('',*,*,#747,.F.);
+#756=ORIENTED_EDGE('',*,*,#365,.T.);
+#766=STYLED_ITEM('',(#34),#767);
+#767=ADVANCED_FACE('',(#773),#768,.T.);
+#768=PLANE('',#769);
+#769=AXIS2_PLACEMENT_3D('',#770,#771,#772);
+#770=CARTESIAN_POINT('',(6.675,2.756,3.912));
+#771=DIRECTION('',(1.0,0.0,0.0));
+#772=DIRECTION('',(0.,0.,1.));
+#773=FACE_OUTER_BOUND('',#774,.T.);
+#774=EDGE_LOOP('',(#775,#785,#795,#805));
+#780=CARTESIAN_POINT('',(6.675,2.756,3.912));
+#779=VERTEX_POINT('',#780);
+#776=EDGE_CURVE('',#376,#779,#781,.T.);
+#781=LINE('',#377,#783);
+#783=VECTOR('',#784,0.10159999867726);
+#784=DIRECTION('',(0.0,-1.0,0.0));
+#775=ORIENTED_EDGE('',*,*,#776,.F.);
+#785=ORIENTED_EDGE('',*,*,#375,.T.);
+#795=ORIENTED_EDGE('',*,*,#747,.T.);
+#806=EDGE_CURVE('',#779,#738,#811,.T.);
+#811=LINE('',#780,#813);
+#813=VECTOR('',#814,7.8232);
+#814=DIRECTION('',(0.0,0.0,1.0));
+#805=ORIENTED_EDGE('',*,*,#806,.F.);
+#815=STYLED_ITEM('',(#34),#816);
+#816=ADVANCED_FACE('',(#822),#817,.T.);
+#817=PLANE('',#818);
+#818=AXIS2_PLACEMENT_3D('',#819,#820,#821);
+#819=CARTESIAN_POINT('',(6.675,2.756,3.912));
+#820=DIRECTION('',(0.0,0.0,-1.0));
+#821=DIRECTION('',(0.,1.,0.));
+#822=FACE_OUTER_BOUND('',#823,.T.);
+#823=EDGE_LOOP('',(#824,#834,#844,#854));
+#827=CARTESIAN_POINT('',(-1.595,2.756,3.912));
+#826=VERTEX_POINT('',#827);
+#825=EDGE_CURVE('',#826,#779,#830,.T.);
+#830=LINE('',#827,#832);
+#832=VECTOR('',#833,8.27023991768596);
+#833=DIRECTION('',(1.0,0.0,0.0));
+#824=ORIENTED_EDGE('',*,*,#825,.F.);
+#835=EDGE_CURVE('',#386,#826,#840,.T.);
+#840=LINE('',#387,#842);
+#842=VECTOR('',#843,0.101599998677261);
+#843=DIRECTION('',(0.0,-1.0,0.0));
+#834=ORIENTED_EDGE('',*,*,#835,.F.);
+#844=ORIENTED_EDGE('',*,*,#385,.T.);
+#854=ORIENTED_EDGE('',*,*,#776,.T.);
+#864=STYLED_ITEM('',(#34),#865);
+#865=ADVANCED_FACE('',(#871),#866,.T.);
+#866=PLANE('',#867);
+#867=AXIS2_PLACEMENT_3D('',#868,#869,#870);
+#868=CARTESIAN_POINT('',(-1.595,2.756,3.912));
+#869=DIRECTION('',(-1.0,0.0,0.0));
+#870=DIRECTION('',(0.,0.,1.));
+#871=FACE_OUTER_BOUND('',#872,.T.);
+#872=EDGE_LOOP('',(#873,#883,#893,#903));
+#876=CARTESIAN_POINT('',(-1.595,2.756,11.735));
+#875=VERTEX_POINT('',#876);
+#874=EDGE_CURVE('',#875,#826,#879,.T.);
+#879=LINE('',#876,#881);
+#881=VECTOR('',#882,7.8232);
+#882=DIRECTION('',(0.0,0.0,-1.0));
+#873=ORIENTED_EDGE('',*,*,#874,.F.);
+#884=EDGE_CURVE('',#406,#875,#889,.T.);
+#889=LINE('',#407,#891);
+#891=VECTOR('',#892,0.101599998677261);
+#892=DIRECTION('',(0.0,-1.0,0.0));
+#883=ORIENTED_EDGE('',*,*,#884,.F.);
+#893=ORIENTED_EDGE('',*,*,#405,.T.);
+#903=ORIENTED_EDGE('',*,*,#835,.T.);
+#913=STYLED_ITEM('',(#34),#914);
+#914=ADVANCED_FACE('',(#920),#915,.T.);
+#915=PLANE('',#916);
+#916=AXIS2_PLACEMENT_3D('',#917,#918,#919);
+#917=CARTESIAN_POINT('',(-1.595,2.756,11.735));
+#918=DIRECTION('',(0.0,0.0,-1.0));
+#919=DIRECTION('',(0.,1.,0.));
+#920=FACE_OUTER_BOUND('',#921,.T.);
+#921=EDGE_LOOP('',(#922,#932,#942,#952));
+#923=EDGE_CURVE('',#669,#875,#928,.T.);
+#928=LINE('',#670,#930);
+#930=VECTOR('',#931,1.03377999663995);
+#931=DIRECTION('',(1.0,0.0,0.0));
+#922=ORIENTED_EDGE('',*,*,#923,.F.);
+#932=ORIENTED_EDGE('',*,*,#668,.T.);
+#942=ORIENTED_EDGE('',*,*,#415,.T.);
+#952=ORIENTED_EDGE('',*,*,#884,.T.);
+#962=STYLED_ITEM('',(#34),#963);
+#963=ADVANCED_FACE('',(#969),#964,.T.);
+#964=PLANE('',#965);
+#965=AXIS2_PLACEMENT_3D('',#966,#967,#968);
+#966=CARTESIAN_POINT('',(-1.595,2.756,3.912));
+#967=DIRECTION('',(0.0,-1.0,0.0));
+#968=DIRECTION('',(0.,0.,1.));
+#969=FACE_OUTER_BOUND('',#970,.T.);
+#970=EDGE_LOOP('',(#971,#981,#991,#1001));
+#971=ORIENTED_EDGE('',*,*,#825,.T.);
+#981=ORIENTED_EDGE('',*,*,#806,.T.);
+#992=EDGE_CURVE('',#875,#738,#997,.T.);
+#997=LINE('',#876,#999);
+#999=VECTOR('',#1000,8.27023991768596);
+#1000=DIRECTION('',(1.0,0.0,0.0));
+#991=ORIENTED_EDGE('',*,*,#992,.F.);
+#1001=ORIENTED_EDGE('',*,*,#874,.T.);
+#1011=STYLED_ITEM('',(#34),#1012);
+#1012=ADVANCED_FACE('',(#1018),#1013,.T.);
+#1013=PLANE('',#1014);
+#1014=AXIS2_PLACEMENT_3D('',#1015,#1016,#1017);
+#1015=CARTESIAN_POINT('',(7.709,1.683,11.735));
+#1016=DIRECTION('',(0.0,0.0,-1.0));
+#1017=DIRECTION('',(0.,1.,0.));
+#1018=FACE_OUTER_BOUND('',#1019,.T.);
+#1019=EDGE_LOOP('',(#1020,#1030,#1040,#1050,#1060,#1070));
+#1020=ORIENTED_EDGE('',*,*,#290,.T.);
+#1030=ORIENTED_EDGE('',*,*,#678,.T.);
+#1040=ORIENTED_EDGE('',*,*,#923,.T.);
+#1050=ORIENTED_EDGE('',*,*,#992,.T.);
+#1060=ORIENTED_EDGE('',*,*,#737,.T.);
+#1070=ORIENTED_EDGE('',*,*,#560,.T.);
+#1080=MANIFOLD_SOLID_BREP($,#1081);
+#1081=CLOSED_SHELL('',(#1083,#1152,#1201,#1250,#1299,#1348,#1397,#1446));
+#1082=STYLED_ITEM('',(#43),#1083);
+#1083=ADVANCED_FACE('',(#1089),#1084,.T.);
+#1084=PLANE('',#1085);
+#1085=AXIS2_PLACEMENT_3D('',#1086,#1087,#1088);
+#1086=CARTESIAN_POINT('',(7.81,-0.808,0.0));
+#1087=DIRECTION('',(0.0,0.0,-1.0));
+#1088=DIRECTION('',(0.,1.,0.));
+#1089=FACE_OUTER_BOUND('',#1090,.T.);
+#1090=EDGE_LOOP('',(#1091,#1101,#1111,#1121,#1131,#1141));
+#1094=CARTESIAN_POINT('',(6.777,-1.842,0.0));
+#1093=VERTEX_POINT('',#1094);
+#1096=CARTESIAN_POINT('',(7.81,-0.808,0.0));
+#1095=VERTEX_POINT('',#1096);
+#1092=EDGE_CURVE('',#1093,#1095,#1097,.T.);
+#1097=LINE('',#1094,#1099);
+#1099=VECTOR('',#1100,1.46198567573955);
+#1100=DIRECTION('',(0.707,0.707,0.0));
+#1091=ORIENTED_EDGE('',*,*,#1092,.F.);
+#1104=CARTESIAN_POINT('',(-1.697,-1.841,0.0));
+#1103=VERTEX_POINT('',#1104);
+#1102=EDGE_CURVE('',#1103,#1093,#1107,.T.);
+#1107=LINE('',#1104,#1109);
+#1109=VECTOR('',#1110,8.47343991463898);
+#1110=DIRECTION('',(1.0,0.0,0.0));
+#1101=ORIENTED_EDGE('',*,*,#1102,.F.);
+#1114=CARTESIAN_POINT('',(-2.731,-0.808,0.0));
+#1113=VERTEX_POINT('',#1114);
+#1112=EDGE_CURVE('',#1113,#1103,#1117,.T.);
+#1117=LINE('',#1114,#1119);
+#1119=VECTOR('',#1120,1.46198567573955);
+#1120=DIRECTION('',(0.707,-0.707,0.0));
+#1111=ORIENTED_EDGE('',*,*,#1112,.F.);
+#1124=CARTESIAN_POINT('',(-2.73,2.756,0.0));
+#1123=VERTEX_POINT('',#1124);
+#1122=EDGE_CURVE('',#1123,#1113,#1127,.T.);
+#1127=LINE('',#1124,#1129);
+#1129=VECTOR('',#1130,3.56361994181506);
+#1130=DIRECTION('',(0.0,-1.0,0.0));
+#1121=ORIENTED_EDGE('',*,*,#1122,.F.);
+#1134=CARTESIAN_POINT('',(7.811,2.756,0.0));
+#1133=VERTEX_POINT('',#1134);
+#1132=EDGE_CURVE('',#1133,#1123,#1137,.T.);
+#1137=LINE('',#1134,#1139);
+#1139=VECTOR('',#1140,10.540999910424);
+#1140=DIRECTION('',(-1.0,0.0,0.0));
+#1131=ORIENTED_EDGE('',*,*,#1132,.F.);
+#1142=EDGE_CURVE('',#1095,#1133,#1147,.T.);
+#1147=LINE('',#1096,#1149);
+#1149=VECTOR('',#1150,3.56362050670507);
+#1150=DIRECTION('',(0.0,1.0,0.0));
+#1141=ORIENTED_EDGE('',*,*,#1142,.F.);
+#1151=STYLED_ITEM('',(#43),#1152);
+#1152=ADVANCED_FACE('',(#1158),#1153,.T.);
+#1153=PLANE('',#1154);
+#1154=AXIS2_PLACEMENT_3D('',#1155,#1156,#1157);
+#1155=CARTESIAN_POINT('',(-1.697,-1.841,0.0));
+#1156=DIRECTION('',(0.0,-1.0,0.0));
+#1157=DIRECTION('',(0.,0.,1.));
+#1158=FACE_OUTER_BOUND('',#1159,.T.);
+#1159=EDGE_LOOP('',(#1160,#1170,#1180,#1190));
+#1160=ORIENTED_EDGE('',*,*,#1102,.T.);
+#1173=CARTESIAN_POINT('',(6.777,-1.842,11.735));
+#1172=VERTEX_POINT('',#1173);
+#1171=EDGE_CURVE('',#1172,#1093,#1176,.T.);
+#1176=LINE('',#1173,#1178);
+#1178=VECTOR('',#1179,11.7348);
+#1179=DIRECTION('',(0.0,0.0,-1.0));
+#1170=ORIENTED_EDGE('',*,*,#1171,.F.);
+#1183=CARTESIAN_POINT('',(-1.697,-1.841,11.735));
+#1182=VERTEX_POINT('',#1183);
+#1181=EDGE_CURVE('',#1182,#1172,#1186,.T.);
+#1186=LINE('',#1183,#1188);
+#1188=VECTOR('',#1189,8.47343991463898);
+#1189=DIRECTION('',(1.0,0.0,0.0));
+#1180=ORIENTED_EDGE('',*,*,#1181,.F.);
+#1191=EDGE_CURVE('',#1103,#1182,#1196,.T.);
+#1196=LINE('',#1104,#1198);
+#1198=VECTOR('',#1199,11.7348);
+#1199=DIRECTION('',(0.0,0.0,1.0));
+#1190=ORIENTED_EDGE('',*,*,#1191,.F.);
+#1200=STYLED_ITEM('',(#43),#1201);
+#1201=ADVANCED_FACE('',(#1207),#1202,.T.);
+#1202=PLANE('',#1203);
+#1203=AXIS2_PLACEMENT_3D('',#1204,#1205,#1206);
+#1204=CARTESIAN_POINT('',(6.777,-1.842,0.0));
+#1205=DIRECTION('',(0.707,-0.707,0.0));
+#1206=DIRECTION('',(0.,0.,1.));
+#1207=FACE_OUTER_BOUND('',#1208,.T.);
+#1208=EDGE_LOOP('',(#1209,#1219,#1229,#1239));
+#1209=ORIENTED_EDGE('',*,*,#1092,.T.);
+#1222=CARTESIAN_POINT('',(7.81,-0.808,11.735));
+#1221=VERTEX_POINT('',#1222);
+#1220=EDGE_CURVE('',#1221,#1095,#1225,.T.);
+#1225=LINE('',#1222,#1227);
+#1227=VECTOR('',#1228,11.7348);
+#1228=DIRECTION('',(0.0,0.0,-1.0));
+#1219=ORIENTED_EDGE('',*,*,#1220,.F.);
+#1230=EDGE_CURVE('',#1172,#1221,#1235,.T.);
+#1235=LINE('',#1173,#1237);
+#1237=VECTOR('',#1238,1.46198567573955);
+#1238=DIRECTION('',(0.707,0.707,0.0));
+#1229=ORIENTED_EDGE('',*,*,#1230,.F.);
+#1239=ORIENTED_EDGE('',*,*,#1171,.T.);
+#1249=STYLED_ITEM('',(#43),#1250);
+#1250=ADVANCED_FACE('',(#1256),#1251,.T.);
+#1251=PLANE('',#1252);
+#1252=AXIS2_PLACEMENT_3D('',#1253,#1254,#1255);
+#1253=CARTESIAN_POINT('',(7.81,-0.808,0.0));
+#1254=DIRECTION('',(1.0,0.0,0.0));
+#1255=DIRECTION('',(0.,0.,1.));
+#1256=FACE_OUTER_BOUND('',#1257,.T.);
+#1257=EDGE_LOOP('',(#1258,#1268,#1278,#1288));
+#1258=ORIENTED_EDGE('',*,*,#1142,.T.);
+#1271=CARTESIAN_POINT('',(7.811,2.756,11.735));
+#1270=VERTEX_POINT('',#1271);
+#1269=EDGE_CURVE('',#1270,#1133,#1274,.T.);
+#1274=LINE('',#1271,#1276);
+#1276=VECTOR('',#1277,11.7348);
+#1277=DIRECTION('',(0.0,0.0,-1.0));
+#1268=ORIENTED_EDGE('',*,*,#1269,.F.);
+#1279=EDGE_CURVE('',#1221,#1270,#1284,.T.);
+#1284=LINE('',#1222,#1286);
+#1286=VECTOR('',#1287,3.56362050670507);
+#1287=DIRECTION('',(0.0,1.0,0.0));
+#1278=ORIENTED_EDGE('',*,*,#1279,.F.);
+#1288=ORIENTED_EDGE('',*,*,#1220,.T.);
+#1298=STYLED_ITEM('',(#43),#1299);
+#1299=ADVANCED_FACE('',(#1305),#1300,.T.);
+#1300=PLANE('',#1301);
+#1301=AXIS2_PLACEMENT_3D('',#1302,#1303,#1304);
+#1302=CARTESIAN_POINT('',(7.811,2.756,0.0));
+#1303=DIRECTION('',(0.0,1.0,0.0));
+#1304=DIRECTION('',(0.,0.,1.));
+#1305=FACE_OUTER_BOUND('',#1306,.T.);
+#1306=EDGE_LOOP('',(#1307,#1317,#1327,#1337));
+#1307=ORIENTED_EDGE('',*,*,#1132,.T.);
+#1320=CARTESIAN_POINT('',(-2.73,2.756,11.735));
+#1319=VERTEX_POINT('',#1320);
+#1318=EDGE_CURVE('',#1319,#1123,#1323,.T.);
+#1323=LINE('',#1320,#1325);
+#1325=VECTOR('',#1326,11.7348);
+#1326=DIRECTION('',(0.0,0.0,-1.0));
+#1317=ORIENTED_EDGE('',*,*,#1318,.F.);
+#1328=EDGE_CURVE('',#1270,#1319,#1333,.T.);
+#1333=LINE('',#1271,#1335);
+#1335=VECTOR('',#1336,10.540999910424);
+#1336=DIRECTION('',(-1.0,0.0,0.0));
+#1327=ORIENTED_EDGE('',*,*,#1328,.F.);
+#1337=ORIENTED_EDGE('',*,*,#1269,.T.);
+#1347=STYLED_ITEM('',(#43),#1348);
+#1348=ADVANCED_FACE('',(#1354),#1349,.T.);
+#1349=PLANE('',#1350);
+#1350=AXIS2_PLACEMENT_3D('',#1351,#1352,#1353);
+#1351=CARTESIAN_POINT('',(-2.73,2.756,0.0));
+#1352=DIRECTION('',(-1.0,0.0,0.0));
+#1353=DIRECTION('',(0.,0.,1.));
+#1354=FACE_OUTER_BOUND('',#1355,.T.);
+#1355=EDGE_LOOP('',(#1356,#1366,#1376,#1386));
+#1356=ORIENTED_EDGE('',*,*,#1122,.T.);
+#1369=CARTESIAN_POINT('',(-2.731,-0.808,11.735));
+#1368=VERTEX_POINT('',#1369);
+#1367=EDGE_CURVE('',#1368,#1113,#1372,.T.);
+#1372=LINE('',#1369,#1374);
+#1374=VECTOR('',#1375,11.7348);
+#1375=DIRECTION('',(0.0,0.0,-1.0));
+#1366=ORIENTED_EDGE('',*,*,#1367,.F.);
+#1377=EDGE_CURVE('',#1319,#1368,#1382,.T.);
+#1382=LINE('',#1320,#1384);
+#1384=VECTOR('',#1385,3.56361994181506);
+#1385=DIRECTION('',(0.0,-1.0,0.0));
+#1376=ORIENTED_EDGE('',*,*,#1377,.F.);
+#1386=ORIENTED_EDGE('',*,*,#1318,.T.);
+#1396=STYLED_ITEM('',(#43),#1397);
+#1397=ADVANCED_FACE('',(#1403),#1398,.T.);
+#1398=PLANE('',#1399);
+#1399=AXIS2_PLACEMENT_3D('',#1400,#1401,#1402);
+#1400=CARTESIAN_POINT('',(-2.731,-0.808,0.0));
+#1401=DIRECTION('',(-0.707,-0.707,0.0));
+#1402=DIRECTION('',(0.,0.,1.));
+#1403=FACE_OUTER_BOUND('',#1404,.T.);
+#1404=EDGE_LOOP('',(#1405,#1415,#1425,#1435));
+#1405=ORIENTED_EDGE('',*,*,#1112,.T.);
+#1415=ORIENTED_EDGE('',*,*,#1191,.T.);
+#1426=EDGE_CURVE('',#1368,#1182,#1431,.T.);
+#1431=LINE('',#1369,#1433);
+#1433=VECTOR('',#1434,1.46198567573955);
+#1434=DIRECTION('',(0.707,-0.707,0.0));
+#1425=ORIENTED_EDGE('',*,*,#1426,.F.);
+#1435=ORIENTED_EDGE('',*,*,#1367,.T.);
+#1445=STYLED_ITEM('',(#43),#1446);
+#1446=ADVANCED_FACE('',(#1452),#1447,.T.);
+#1447=PLANE('',#1448);
+#1448=AXIS2_PLACEMENT_3D('',#1449,#1450,#1451);
+#1449=CARTESIAN_POINT('',(7.811,2.756,11.735));
+#1450=DIRECTION('',(0.0,0.0,1.0));
+#1451=DIRECTION('',(0.,1.,0.));
+#1452=FACE_OUTER_BOUND('',#1453,.T.);
+#1453=EDGE_LOOP('',(#1454,#1464,#1474,#1484,#1494,#1504));
+#1454=ORIENTED_EDGE('',*,*,#1328,.T.);
+#1464=ORIENTED_EDGE('',*,*,#1377,.T.);
+#1474=ORIENTED_EDGE('',*,*,#1426,.T.);
+#1484=ORIENTED_EDGE('',*,*,#1181,.T.);
+#1494=ORIENTED_EDGE('',*,*,#1230,.T.);
+#1504=ORIENTED_EDGE('',*,*,#1279,.T.);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/EE3102/Libraries/USBRegulator/UL_Form.dfm b/EE3102/Libraries/USBRegulator/UL_Form.dfm
new file mode 100644
index 0000000..2d57e92
--- /dev/null
+++ b/EE3102/Libraries/USBRegulator/UL_Form.dfm
@@ -0,0 +1,49 @@
+object UL_Form: TUL_Form
+ Left = 0
+ Top = 0
+ BorderStyle = bsDialog
+ Caption = 'UL Import'
+ ClientHeight = 80
+ ClientWidth = 473
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poScreenCenter
+ PixelsPerInch = 96
+ TextHeight = 13
+ object TxtFile: TEdit
+ Left = 80
+ Top = 8
+ Width = 384
+ Height = 21
+ TabOrder = 0
+ end
+ object BtnFile: TButton
+ Left = 8
+ Top = 8
+ Width = 64
+ Height = 24
+ Caption = 'File...'
+ TabOrder = 1
+ OnClick = BtnFileClick
+ end
+ object BtnImport: TButton
+ Left = 188
+ Top = 40
+ Width = 96
+ Height = 32
+ Caption = 'Start Import'
+ TabOrder = 2
+ OnClick = BtnImportClick
+ end
+ object OpenDlg: TOpenDialog
+ DefaultExt = '.txt'
+ Filter = 'UL Altium Output (*.txt)|*.txt'
+ Left = 8
+ Top = 40
+ end
+end
diff --git a/EE3102/Libraries/USBRegulator/UL_Form.pas b/EE3102/Libraries/USBRegulator/UL_Form.pas
new file mode 100644
index 0000000..a79f13c
--- /dev/null
+++ b/EE3102/Libraries/USBRegulator/UL_Form.pas
@@ -0,0 +1,14 @@
+
+procedure TUL_Form.BtnFileClick(Sender: TObject);
+begin
+ If OpenDlg.Execute Then Begin
+ TxtFile.Text := OpenDlg.FileName;
+ End;
+end;
+
+procedure TUL_Form.BtnImportClick(Sender: TObject);
+begin
+ ImportAscIIData(TxtFile.Text);
+ Close;
+end;
+
diff --git a/EE3102/Libraries/USBRegulator/UL_Import.PrjScr b/EE3102/Libraries/USBRegulator/UL_Import.PrjScr
new file mode 100644
index 0000000..1238b5d
--- /dev/null
+++ b/EE3102/Libraries/USBRegulator/UL_Import.PrjScr
@@ -0,0 +1,945 @@
+[Design]
+Version=1.0
+HierarchyMode=0
+ChannelRoomNamingStyle=0
+ReleasesFolder=
+ReleaseVaultGUID=
+ReleaseVaultName=
+ChannelDesignatorFormatString=$Component_$RoomName
+ChannelRoomLevelSeperator=_
+OpenOutputs=1
+ArchiveProject=0
+TimestampOutput=0
+SeparateFolders=0
+TemplateLocationPath=
+PinSwapBy_Netlabel=1
+PinSwapBy_Pin=1
+AllowPortNetNames=0
+AllowSheetEntryNetNames=1
+AppendSheetNumberToLocalNets=0
+NetlistSinglePinNets=0
+DefaultConfiguration=Default - All Constraints
+UserID=0xFFFFFFFF
+DefaultPcbProtel=1
+DefaultPcbPcad=0
+ReorderDocumentsOnCompile=1
+NameNetsHierarchically=0
+PowerPortNamesTakePriority=0
+PushECOToAnnotationFile=1
+DItemRevisionGUID=
+ReportSuppressedErrorsInMessages=0
+FSMCodingStyle=eFMSDropDownList_OneProcess
+FSMEncodingStyle=eFMSDropDownList_OneHot
+OutputPath=
+LogFolderPath=
+ManagedProjectGUID=
+
+[Preferences]
+PrefsVaultGUID=
+PrefsRevisionGUID=
+
+[Document1]
+DocumentPath=UL_Import.pas
+AnnotationEnabled=1
+AnnotateStartValue=1
+AnnotationIndexControlEnabled=0
+AnnotateSuffix=
+AnnotateScope=All
+AnnotateOrder=-1
+DoLibraryUpdate=1
+DoDatabaseUpdate=1
+ClassGenCCAutoEnabled=1
+ClassGenCCAutoRoomEnabled=1
+ClassGenNCAutoScope=None
+DItemRevisionGUID=
+GenerateClassCluster=0
+DocumentUniqueId=
+
+[Document2]
+DocumentPath=UL_Form.pas
+AnnotationEnabled=1
+AnnotateStartValue=1
+AnnotationIndexControlEnabled=0
+AnnotateSuffix=
+AnnotateScope=All
+AnnotateOrder=-1
+DoLibraryUpdate=1
+DoDatabaseUpdate=1
+ClassGenCCAutoEnabled=1
+ClassGenCCAutoRoomEnabled=1
+ClassGenNCAutoScope=None
+DItemRevisionGUID=
+GenerateClassCluster=0
+DocumentUniqueId=
+
+[Generic_ScriptingSystem]
+StartProcName=UL_Form.pas>
+
+[OutputGroup1]
+Name=Netlist Outputs
+Description=
+TargetPrinter=Canon MX920 series Printer
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=PCADNetlist
+OutputName1=PCAD Netlist
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+OutputType2=SIMetrixNetlist
+OutputName2=SIMetrix
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+OutputType3=SIMPLISNetlist
+OutputName3=SIMPLIS
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+OutputType4=Verilog
+OutputName4=Verilog File
+OutputDocumentPath4=
+OutputVariantName4=
+OutputDefault4=0
+OutputType5=VHDL
+OutputName5=VHDL File
+OutputDocumentPath5=
+OutputVariantName5=
+OutputDefault5=0
+OutputType6=XSpiceNetlist
+OutputName6=XSpice Netlist
+OutputDocumentPath6=
+OutputVariantName6=
+OutputDefault6=0
+
+[OutputGroup2]
+Name=Simulator Outputs
+Description=
+TargetPrinter=Canon MX920 series Printer
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=AdvSimNetlist
+OutputName1=Mixed Sim
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+OutputType2=SIMetrixSimulation
+OutputName2=SIMetrix
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+OutputType3=SIMPLISSimulation
+OutputName3=SIMPLIS
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+
+[OutputGroup3]
+Name=Documentation Outputs
+Description=
+TargetPrinter=Virtual Printer
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=Composite
+OutputName1=Composite Drawing
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType2=Logic Analyser Print
+OutputName2=Logic Analyser Prints
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType3=OpenBus Print
+OutputName3=OpenBus Prints
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+PageOptions3=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType4=PCB 3D Print
+OutputName4=PCB 3D Prints
+OutputDocumentPath4=
+OutputVariantName4=[No Variations]
+OutputDefault4=0
+PageOptions4=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType5=PCB Print
+OutputName5=PCB Prints
+OutputDocumentPath5=
+OutputVariantName5=
+OutputDefault5=0
+PageOptions5=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType6=Schematic Print
+OutputName6=Schematic Prints
+OutputDocumentPath6=
+OutputVariantName6=
+OutputDefault6=0
+PageOptions6=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType7=SimView Print
+OutputName7=SimView Prints
+OutputDocumentPath7=
+OutputVariantName7=
+OutputDefault7=0
+PageOptions7=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType8=Wave Print
+OutputName8=Wave Prints
+OutputDocumentPath8=
+OutputVariantName8=
+OutputDefault8=0
+PageOptions8=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType9=WaveSim Print
+OutputName9=WaveSim Prints
+OutputDocumentPath9=
+OutputVariantName9=
+OutputDefault9=0
+PageOptions9=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType10=Assembler Source Print
+OutputName10=Assembler Source Prints
+OutputDocumentPath10=
+OutputVariantName10=
+OutputDefault10=0
+PageOptions10=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType11=C Source Print
+OutputName11=C Source Prints
+OutputDocumentPath11=
+OutputVariantName11=
+OutputDefault11=0
+PageOptions11=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType12=C/C++ Header Print
+OutputName12=C/C++ Header Prints
+OutputDocumentPath12=
+OutputVariantName12=
+OutputDefault12=0
+PageOptions12=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType13=C++ Source Print
+OutputName13=C++ Source Prints
+OutputDocumentPath13=
+OutputVariantName13=
+OutputDefault13=0
+PageOptions13=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType14=FSM Print
+OutputName14=FSM Prints
+OutputDocumentPath14=
+OutputVariantName14=
+OutputDefault14=0
+PageOptions14=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType15=PCB 3D Video
+OutputName15=PCB 3D Video
+OutputDocumentPath15=
+OutputVariantName15=[No Variations]
+OutputDefault15=0
+PageOptions15=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType16=PCBLIB Print
+OutputName16=PCBLIB Prints
+OutputDocumentPath16=
+OutputVariantName16=
+OutputDefault16=0
+PageOptions16=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType17=PDF3D
+OutputName17=PDF3D
+OutputDocumentPath17=
+OutputVariantName17=[No Variations]
+OutputDefault17=0
+PageOptions17=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType18=Report Print
+OutputName18=Report Prints
+OutputDocumentPath18=
+OutputVariantName18=
+OutputDefault18=0
+PageOptions18=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType19=VHDL Print
+OutputName19=VHDL Prints
+OutputDocumentPath19=
+OutputVariantName19=
+OutputDefault19=0
+PageOptions19=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+
+[OutputGroup4]
+Name=Assembly Outputs
+Description=
+TargetPrinter=Canon MX920 series Printer
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=Assembly
+OutputName1=Assembly Drawings
+OutputDocumentPath1=
+OutputVariantName1=[No Variations]
+OutputDefault1=0
+PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType2=Pick Place
+OutputName2=Generates pick and place files
+OutputDocumentPath2=
+OutputVariantName2=[No Variations]
+OutputDefault2=0
+OutputType3=Test Points For Assembly
+OutputName3=Test Point Report
+OutputDocumentPath3=
+OutputVariantName3=[No Variations]
+OutputDefault3=0
+
+[OutputGroup5]
+Name=Fabrication Outputs
+Description=
+TargetPrinter=Canon MX920 series Printer
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=CompositeDrill
+OutputName1=Composite Drill Drawing
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType2=Drill
+OutputName2=Drill Drawing/Guides
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType3=Final
+OutputName3=Final Artwork Prints
+OutputDocumentPath3=
+OutputVariantName3=[No Variations]
+OutputDefault3=0
+PageOptions3=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType4=Gerber
+OutputName4=Gerber Files
+OutputDocumentPath4=
+OutputVariantName4=[No Variations]
+OutputDefault4=0
+OutputType5=Mask
+OutputName5=Solder/Paste Mask Prints
+OutputDocumentPath5=
+OutputVariantName5=
+OutputDefault5=0
+PageOptions5=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType6=NC Drill
+OutputName6=NC Drill Files
+OutputDocumentPath6=
+OutputVariantName6=
+OutputDefault6=0
+OutputType7=ODB
+OutputName7=ODB++ Files
+OutputDocumentPath7=
+OutputVariantName7=[No Variations]
+OutputDefault7=0
+OutputType8=Plane
+OutputName8=Power-Plane Prints
+OutputDocumentPath8=
+OutputVariantName8=
+OutputDefault8=0
+PageOptions8=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType9=Test Points
+OutputName9=Test Point Report
+OutputDocumentPath9=
+OutputVariantName9=
+OutputDefault9=0
+OutputType10=Board Stack Report
+OutputName10=Report Board Stack
+OutputDocumentPath10=
+OutputVariantName10=
+OutputDefault10=0
+PageOptions10=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType11=Gerber X2
+OutputName11=Gerber X2 Files
+OutputDocumentPath11=
+OutputVariantName11=
+OutputDefault11=0
+OutputType12=IPC2581
+OutputName12=IPC-2581 Files
+OutputDocumentPath12=
+OutputVariantName12=
+OutputDefault12=0
+
+[OutputGroup6]
+Name=Report Outputs
+Description=
+TargetPrinter=Canon MX920 series Printer
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=BOM_PartType
+OutputName1=Bill of Materials
+OutputDocumentPath1=
+OutputVariantName1=[No Variations]
+OutputDefault1=0
+PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType2=ComponentCrossReference
+OutputName2=Component Cross Reference Report
+OutputDocumentPath2=
+OutputVariantName2=[No Variations]
+OutputDefault2=0
+OutputType3=ReportHierarchy
+OutputName3=Report Project Hierarchy
+OutputDocumentPath3=
+OutputVariantName3=[No Variations]
+OutputDefault3=0
+OutputType4=SimpleBOM
+OutputName4=Simple BOM
+OutputDocumentPath4=
+OutputVariantName4=[No Variations]
+OutputDefault4=0
+OutputType5=SinglePinNetReporter
+OutputName5=Report Single Pin Nets
+OutputDocumentPath5=
+OutputVariantName5=[No Variations]
+OutputDefault5=0
+OutputType6=Script
+OutputName6=Script Output
+OutputDocumentPath6=
+OutputVariantName6=[No Variations]
+OutputDefault6=0
+
+[OutputGroup7]
+Name=Other Outputs
+Description=
+TargetPrinter=Canon MX920 series Printer
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=Text Print
+OutputName1=Text Print
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType2=Text Print
+OutputName2=Text Print
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType3=Text Print
+OutputName3=Text Print
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+PageOptions3=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType4=Text Print
+OutputName4=Text Print
+OutputDocumentPath4=
+OutputVariantName4=
+OutputDefault4=0
+PageOptions4=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType5=Text Print
+OutputName5=Text Print
+OutputDocumentPath5=
+OutputVariantName5=
+OutputDefault5=0
+PageOptions5=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType6=Text Print
+OutputName6=Text Print
+OutputDocumentPath6=
+OutputVariantName6=
+OutputDefault6=0
+PageOptions6=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType7=Text Print
+OutputName7=Text Print
+OutputDocumentPath7=
+OutputVariantName7=
+OutputDefault7=0
+PageOptions7=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType8=Text Print
+OutputName8=Text Print
+OutputDocumentPath8=
+OutputVariantName8=
+OutputDefault8=0
+PageOptions8=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType9=Text Print
+OutputName9=Text Print
+OutputDocumentPath9=
+OutputVariantName9=
+OutputDefault9=0
+PageOptions9=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType10=Text Print
+OutputName10=Text Print
+OutputDocumentPath10=
+OutputVariantName10=
+OutputDefault10=0
+PageOptions10=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType11=Text Print
+OutputName11=Text Print
+OutputDocumentPath11=
+OutputVariantName11=
+OutputDefault11=0
+PageOptions11=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType12=Text Print
+OutputName12=Text Print
+OutputDocumentPath12=
+OutputVariantName12=
+OutputDefault12=0
+PageOptions12=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType13=Text Print
+OutputName13=Text Print
+OutputDocumentPath13=
+OutputVariantName13=
+OutputDefault13=0
+PageOptions13=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType14=Text Print
+OutputName14=Text Print
+OutputDocumentPath14=
+OutputVariantName14=
+OutputDefault14=0
+PageOptions14=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType15=Text Print
+OutputName15=Text Print
+OutputDocumentPath15=
+OutputVariantName15=
+OutputDefault15=0
+PageOptions15=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType16=Text Print
+OutputName16=Text Print
+OutputDocumentPath16=
+OutputVariantName16=
+OutputDefault16=0
+PageOptions16=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType17=Text Print
+OutputName17=Text Print
+OutputDocumentPath17=
+OutputVariantName17=
+OutputDefault17=0
+PageOptions17=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType18=Text Print
+OutputName18=Text Print
+OutputDocumentPath18=
+OutputVariantName18=
+OutputDefault18=0
+PageOptions18=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType19=Text Print
+OutputName19=Text Print
+OutputDocumentPath19=
+OutputVariantName19=
+OutputDefault19=0
+PageOptions19=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType20=Text Print
+OutputName20=Text Print
+OutputDocumentPath20=
+OutputVariantName20=
+OutputDefault20=0
+PageOptions20=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType21=Text Print
+OutputName21=Text Print
+OutputDocumentPath21=
+OutputVariantName21=
+OutputDefault21=0
+PageOptions21=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType22=Text Print
+OutputName22=Text Print
+OutputDocumentPath22=
+OutputVariantName22=
+OutputDefault22=0
+PageOptions22=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType23=Text Print
+OutputName23=Text Print
+OutputDocumentPath23=
+OutputVariantName23=
+OutputDefault23=0
+PageOptions23=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType24=Text Print
+OutputName24=Text Print
+OutputDocumentPath24=
+OutputVariantName24=
+OutputDefault24=0
+PageOptions24=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType25=Text Print
+OutputName25=Text Print
+OutputDocumentPath25=
+OutputVariantName25=
+OutputDefault25=0
+PageOptions25=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType26=Text Print
+OutputName26=Text Print
+OutputDocumentPath26=
+OutputVariantName26=
+OutputDefault26=0
+PageOptions26=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType27=Text Print
+OutputName27=Text Print
+OutputDocumentPath27=
+OutputVariantName27=
+OutputDefault27=0
+PageOptions27=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType28=Text Print
+OutputName28=Text Print
+OutputDocumentPath28=
+OutputVariantName28=
+OutputDefault28=0
+PageOptions28=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType29=Text Print
+OutputName29=Text Print
+OutputDocumentPath29=
+OutputVariantName29=
+OutputDefault29=0
+PageOptions29=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+
+[OutputGroup8]
+Name=Validation Outputs
+Description=
+TargetPrinter=Canon MX920 series Printer
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=Design Rules Check
+OutputName1=Design Rules Check
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType2=Electrical Rules Check
+OutputName2=Electrical Rules Check
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+OutputType3=Component states check
+OutputName3=Vault's components states check
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+OutputType4=Configuration compliance
+OutputName4=Environment configuration compliance check
+OutputDocumentPath4=
+OutputVariantName4=
+OutputDefault4=0
+OutputType5=Differences Report
+OutputName5=Differences Report
+OutputDocumentPath5=
+OutputVariantName5=
+OutputDefault5=0
+PageOptions5=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
+OutputType6=Footprint Comparison Report
+OutputName6=Footprint Comparison Report
+OutputDocumentPath6=
+OutputVariantName6=
+OutputDefault6=0
+
+[OutputGroup9]
+Name=Export Outputs
+Description=
+TargetPrinter=Canon MX920 series Printer
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=AutoCAD dwg/dxf PCB
+OutputName1=AutoCAD dwg/dxf File PCB
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+OutputType2=AutoCAD dwg/dxf Schematic
+OutputName2=AutoCAD dwg/dxf File Schematic
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+OutputType3=ExportIDF
+OutputName3=Export IDF
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+OutputType4=ExportSTEP
+OutputName4=Export STEP
+OutputDocumentPath4=
+OutputVariantName4=[No Variations]
+OutputDefault4=0
+
+[Modification Levels]
+Type1=1
+Type2=1
+Type3=1
+Type4=1
+Type5=1
+Type6=1
+Type7=1
+Type8=1
+Type9=1
+Type10=1
+Type11=1
+Type12=1
+Type13=1
+Type14=1
+Type15=1
+Type16=1
+Type17=1
+Type18=1
+Type19=1
+Type20=1
+Type21=1
+Type22=1
+Type23=1
+Type24=1
+Type25=1
+Type26=1
+Type27=1
+Type28=1
+Type29=1
+Type30=1
+Type31=1
+Type32=1
+Type33=1
+Type34=1
+Type35=1
+Type36=1
+Type37=1
+Type38=1
+Type39=1
+Type40=1
+Type41=1
+Type42=1
+Type43=1
+Type44=1
+Type45=1
+Type46=1
+Type47=1
+Type48=1
+Type49=1
+Type50=1
+Type51=1
+Type52=1
+Type53=1
+Type54=1
+Type55=1
+Type56=1
+Type57=1
+Type58=1
+Type59=1
+Type60=1
+Type61=1
+Type62=1
+Type63=1
+Type64=1
+Type65=1
+Type66=1
+Type67=1
+Type68=1
+Type69=1
+Type70=1
+Type71=1
+Type72=1
+Type73=1
+Type74=1
+Type75=1
+Type76=1
+Type77=1
+Type78=1
+Type79=1
+Type80=1
+
+[Difference Levels]
+Type1=1
+Type2=1
+Type3=1
+Type4=1
+Type5=1
+Type6=1
+Type7=1
+Type8=1
+Type9=1
+Type10=1
+Type11=1
+Type12=1
+Type13=1
+Type14=1
+Type15=1
+Type16=1
+Type17=1
+Type18=1
+Type19=1
+Type20=1
+Type21=1
+Type22=1
+Type23=1
+Type24=1
+Type25=1
+Type26=1
+Type27=1
+Type28=1
+Type29=1
+Type30=1
+Type31=1
+Type32=1
+Type33=1
+Type34=1
+Type35=1
+Type36=1
+Type37=1
+Type38=1
+Type39=1
+Type40=1
+Type41=1
+Type42=1
+Type43=1
+Type44=0
+Type45=1
+
+[Electrical Rules Check]
+Type1=1
+Type2=1
+Type3=2
+Type4=1
+Type5=2
+Type6=2
+Type7=1
+Type8=1
+Type9=1
+Type10=1
+Type11=2
+Type12=2
+Type13=2
+Type14=1
+Type15=1
+Type16=1
+Type17=1
+Type18=1
+Type19=1
+Type20=1
+Type21=1
+Type22=1
+Type23=1
+Type24=1
+Type25=2
+Type26=2
+Type27=2
+Type28=1
+Type29=1
+Type30=1
+Type31=1
+Type32=2
+Type33=2
+Type34=2
+Type35=1
+Type36=2
+Type37=1
+Type38=2
+Type39=2
+Type40=2
+Type41=0
+Type42=2
+Type43=1
+Type44=1
+Type45=2
+Type46=1
+Type47=2
+Type48=2
+Type49=1
+Type50=2
+Type51=1
+Type52=1
+Type53=1
+Type54=1
+Type55=1
+Type56=2
+Type57=1
+Type58=1
+Type59=0
+Type60=1
+Type61=2
+Type62=2
+Type63=1
+Type64=0
+Type65=2
+Type66=3
+Type67=2
+Type68=2
+Type69=1
+Type70=2
+Type71=2
+Type72=2
+Type73=2
+Type74=1
+Type75=2
+Type76=1
+Type77=1
+Type78=1
+Type79=1
+Type80=2
+Type81=3
+Type82=3
+Type83=3
+Type84=3
+Type85=3
+Type86=2
+Type87=2
+Type88=2
+Type89=1
+Type90=1
+Type91=3
+Type92=3
+Type93=2
+Type94=2
+Type95=2
+Type96=2
+Type97=2
+Type98=0
+Type99=1
+Type100=2
+Type101=1
+Type102=2
+Type103=2
+Type104=1
+Type105=2
+Type106=2
+Type107=2
+Type108=2
+Type109=1
+Type110=1
+Type111=1
+
+[ERC Connection Matrix]
+L1=NNNNNNNNNNNWNNNWW
+L2=NNWNNNNWWWNWNWNWN
+L3=NWEENEEEENEWNEEWN
+L4=NNENNNWEENNWNENWN
+L5=NNNNNNNNNNNNNNNNN
+L6=NNENNNNEENNWNENWN
+L7=NNEWNNWEENNWNENWN
+L8=NWEENEENEEENNEENN
+L9=NWEENEEEENEWNEEWW
+L10=NWNNNNNENNEWNNEWN
+L11=NNENNNNEEENWNENWN
+L12=WWWWNWWNWWWNWWWNN
+L13=NNNNNNNNNNNWNNNWW
+L14=NWEENEEEENEWNEEWW
+L15=NNENNNNEEENWNENWW
+L16=WWWWNWWNWWWNWWWNW
+L17=WNNNNNNNWNNNWWWWN
+
+[Annotate]
+SortOrder=3
+SortLocation=0
+MatchParameter1=Comment
+MatchStrictly1=1
+MatchParameter2=Library Reference
+MatchStrictly2=1
+PhysicalNamingFormat=$Component_$RoomName
+GlobalIndexSortOrder=3
+GlobalIndexSortLocation=0
+
+[PrjClassGen]
+CompClassManualEnabled=0
+CompClassManualRoomEnabled=0
+NetClassAutoBusEnabled=1
+NetClassAutoCompEnabled=0
+NetClassAutoNamedHarnessEnabled=0
+NetClassManualEnabled=0
+NetClassSeparateForBusSections=0
+
+[LibraryUpdateOptions]
+SelectedOnly=0
+UpdateVariants=1
+PartTypes=0
+FullReplace=1
+UpdateDesignatorLock=1
+UpdatePartIDLock=1
+PreserveParameterLocations=1
+PreserveParameterVisibility=1
+DoGraphics=1
+DoParameters=1
+DoModels=1
+AddParameters=0
+RemoveParameters=0
+AddModels=1
+RemoveModels=1
+UpdateCurrentModels=1
+
+[DatabaseUpdateOptions]
+SelectedOnly=0
+UpdateVariants=1
+PartTypes=0
+
+[Comparison Options]
+ComparisonOptions0=Kind=Net|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0
+ComparisonOptions1=Kind=Net Class|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0
+ComparisonOptions2=Kind=Component Class|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0
+ComparisonOptions3=Kind=Rule|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0
+ComparisonOptions4=Kind=Differential Pair|MinPercent=50|MinMatch=1|ShowMatch=0|Confirm=0|UseName=0|InclAllRules=0
+ComparisonOptions5=Kind=Code Memory|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0
+
+[SmartPDF]
+PageOptions=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter
+
diff --git a/EE3102/Libraries/USBRegulator/UL_Import.pas b/EE3102/Libraries/USBRegulator/UL_Import.pas
new file mode 100644
index 0000000..fd9b912
--- /dev/null
+++ b/EE3102/Libraries/USBRegulator/UL_Import.pas
@@ -0,0 +1,1081 @@
+
+const ForceSchFontID = 1;
+
+var
+ BrokenSCHFontManager : Integer; // for Alitum 19's broken SCH FontManager
+
+{==============================================================================}
+{==== String Utility Routines ===============================================}
+{==============================================================================}
+
+Function CheckLeft(BaseStr: String, Srch: String): Boolean;
+Var
+ i : Integer;
+Begin
+ Result := False;
+ i := Length(Srch);
+ If Length(BaseStr) < i Then Exit;
+ If Copy(BaseStr, 1, i) = Srch Then Result := True;
+End;
+
+Function LeftOf(BaseStr: String, Srch: String): String;
+Var
+ i : Integer;
+Begin
+ i := Pos(Srch, BaseStr);
+ If i > 0 Then Begin
+ Result := Copy(BaseStr, 1, i - 1);
+ End Else Begin
+ Result := BaseStr;
+ End;
+End;
+
+Function LeftOfLast(BaseStr: String, Srch: String): String;
+Var
+ i, ls : Integer;
+ lft, rgt : String;
+Begin
+ rgt := BaseStr;
+ i := Pos(Srch, rgt);
+ lft := '';
+ If i > 0 Then Begin
+ ls := Length(Srch);
+ While i > 0 Do Begin
+ lft := lft + Copy(rgt, 1, i - 1);
+ rgt := Copy(rgt, i + ls, Length(rgt) - i + ls);
+ i := Pos(Srch, rgt);
+ If i > 0 then Begin
+ lft := lft + Srch;
+ End;
+ End;
+ Result := lft;
+ End Else Begin
+ Result := BaseStr;
+ End;
+End;
+
+Function RightOf(BaseStr: String, Srch: String): String;
+Var
+ i, ls : Integer;
+Begin
+ i := Pos(Srch, BaseStr);
+ If i > 0 Then Begin
+ ls := Length(Srch);
+ Result := Copy(BaseStr, i + ls, Length(BaseStr) - i + ls);
+ End Else Begin
+ Result := '';
+ End;
+End;
+
+Procedure StrChop(BaseStr: String, Srch: String, Out LeftSide: String, Out RightSide: String);
+Var
+ i, ls : Integer;
+Begin
+ i := Pos(Srch, BaseStr);
+ If i <= 0 Then Begin
+ LeftSide := BaseStr;
+ RightSide := '';
+ End Else Begin
+ ls := Length(Srch);
+ LeftSide := Copy(BaseStr, 1, i - 1);
+ RightSide := Copy(BaseStr, i + ls, Length(BaseStr) - i + ls);
+ End;
+End;
+
+Function GetBetween(BaseStr: String, StartStr: String, EndStr: String): String;
+Begin
+ Result := Leftof(RightOf(BaseStr, StartStr), EndStr);
+End;
+
+Function GetFileLocation(FilePath: String): String;
+Var
+ i : Integer;
+ filename : String;
+Begin
+ filename := RightOf(FilePath, '\');
+ i := Pos('\', filename);
+ While i > 0 Do Begin
+ filename := RightOf(filename, '\');
+ i := Pos('\', filename);
+ End;
+ Result := LeftOf(Filepath, filename);
+End;
+
+{==============================================================================}
+{==== Footprint Routines ====================================================}
+{==============================================================================}
+
+Function LayerFromString(LName: String): TLayer;
+Begin
+ Case LName Of
+ 'NoLayer': Result := eNoLayer;
+ 'TopLayer': Result := eTopLayer;
+ 'MidLayer1': Result := eMidLayer1;
+ 'MidLayer2': Result := eMidLayer2;
+ 'MidLayer3': Result := eMidLayer3;
+ 'MidLayer4': Result := eMidLayer4;
+ 'MidLayer5': Result := eMidLayer5;
+ 'MidLayer6': Result := eMidLayer6;
+ 'MidLayer7': Result := eMidLayer7;
+ 'MidLayer8': Result := eMidLayer8;
+ 'MidLayer9': Result := eMidLayer9;
+ 'MidLayer10': Result := eMidLayer10;
+ 'MidLayer11': Result := eMidLayer11;
+ 'MidLayer12': Result := eMidLayer12;
+ 'MidLayer13': Result := eMidLayer13;
+ 'MidLayer14': Result := eMidLayer14;
+ 'MidLayer15': Result := eMidLayer15;
+ 'MidLayer16': Result := eMidLayer16;
+ 'MidLayer17': Result := eMidLayer17;
+ 'MidLayer18': Result := eMidLayer18;
+ 'MidLayer19': Result := eMidLayer19;
+ 'MidLayer20': Result := eMidLayer20;
+ 'MidLayer21': Result := eMidLayer21;
+ 'MidLayer22': Result := eMidLayer22;
+ 'MidLayer23': Result := eMidLayer23;
+ 'MidLayer24': Result := eMidLayer24;
+ 'MidLayer25': Result := eMidLayer25;
+ 'MidLayer26': Result := eMidLayer26;
+ 'MidLayer27': Result := eMidLayer27;
+ 'MidLayer28': Result := eMidLayer28;
+ 'MidLayer29': Result := eMidLayer29;
+ 'MidLayer30': Result := eMidLayer30;
+ 'BottomLayer': Result := eBottomLayer;
+ 'TopOverlay': Result := eTopOverlay;
+ 'BottomOverlay': Result := eBottomOverlay;
+ 'TopPaste': Result := eTopPaste;
+ 'BottomPaste': Result := eBottomPaste;
+ 'TopSolder': Result := eTopSolder;
+ 'BottomSolder': Result := eBottomSolder;
+ 'InternalPlane1': Result := eInternalPlane1;
+ 'InternalPlane2': Result := eInternalPlane2;
+ 'InternalPlane3': Result := eInternalPlane3;
+ 'InternalPlane4': Result := eInternalPlane4;
+ 'InternalPlane5': Result := eInternalPlane5;
+ 'InternalPlane6': Result := eInternalPlane6;
+ 'InternalPlane7': Result := eInternalPlane7;
+ 'InternalPlane8': Result := eInternalPlane8;
+ 'InternalPlane9': Result := eInternalPlane9;
+ 'InternalPlane10': Result := eInternalPlane10;
+ 'InternalPlane11': Result := eInternalPlane11;
+ 'InternalPlane12': Result := eInternalPlane12;
+ 'InternalPlane13': Result := eInternalPlane13;
+ 'InternalPlane14': Result := eInternalPlane14;
+ 'InternalPlane15': Result := eInternalPlane15;
+ 'InternalPlane16': Result := eInternalPlane16;
+ 'DrillGuide': Result := eDrillGuide;
+ 'KeepOutLayer': Result := eKeepOutLayer;
+ 'Mechanical1': Result := eMechanical1;
+ 'Mechanical2': Result := eMechanical2;
+ 'Mechanical3': Result := eMechanical3;
+ 'Mechanical4': Result := eMechanical4;
+ 'Mechanical5': Result := eMechanical5;
+ 'Mechanical6': Result := eMechanical6;
+ 'Mechanical7': Result := eMechanical7;
+ 'Mechanical8': Result := eMechanical8;
+ 'Mechanical9': Result := eMechanical9;
+ 'Mechanical10': Result := eMechanical10;
+ 'Mechanical11': Result := eMechanical11;
+ 'Mechanical12': Result := eMechanical12;
+ 'Mechanical13': Result := eMechanical13;
+ 'Mechanical14': Result := eMechanical14;
+ 'Mechanical15': Result := eMechanical15;
+ 'Mechanical16': Result := eMechanical16;
+ 'DrillDrawing': Result := eDrillDrawing;
+ 'MultiLayer': Result := eMultiLayer;
+ 'ConnectLayer': Result := eConnectLayer;
+ 'BackGroundLayer': Result := eBackGroundLayer;
+ 'DRCErrorLayer': Result := eDRCErrorLayer;
+ 'HighlightLayer': Result := eHighlightLayer;
+ 'GridColor1': Result := eGridColor1;
+ 'GridColor10': Result := eGridColor10;
+ 'PadHoleLayer': Result := ePadHoleLayer;
+ 'ViaHoleLayer': Result := eViaHoleLayer;
+ Else
+ Result := eNoLayer;
+ End;
+End;
+
+
+Procedure FP_AddStep(fp: IPCB_LibComponent, Data: String, InFileName: String);
+Var
+ STEPFileName : String;
+ STEPmodel : IPCB_ComponentBody;
+ Model : IPCB_Model;
+Begin
+ STEPFileName := GetFileLocation(InFileName) + '\' + GetBetween(Data, '(Name ', ')');
+ STEPmodel := PcbServer.PCBObjectFactory(eComponentBodyObject,eNoDimension,eCreate_Default);
+ Model := STEPmodel.ModelFactory_FromFilename(STEPFileName, false);
+ STEPmodel.SetState_FromModel;
+ // Model.SetState(0,0,0,0);
+ STEPmodel.Model := Model;
+ fp.AddPCBObject(STEPmodel);
+ //PCBServer.SendMessageToRobots(fp.I_ObjectAddress, c_Broadcast, PCBM_BoardRegisteration, arc.I_ObjectAddress);
+End;
+
+Procedure FP_AddLine(fp: IPCB_Component, Data: String);
+Var
+ lin : IPCB_track;
+ s1, s2 : String;
+Begin
+ lin := PCBServer.PCBObjectFactory(eTrackObject, eNoDimension, eCreate_Default);
+ If lin = Nil Then Exit;
+ StrChop(GetBetween(Data, '(Start ', ')'), ',', s1, s2);
+ lin.X1 := MilsToCoord(Evaluate(s1));
+ lin.Y1 := MilsToCoord(Evaluate(s2));
+ StrChop(GetBetween(Data, '(End ', ')'), ',', s1, s2);
+ lin.X2 := MilsToCoord(Evaluate(s1));
+ lin.Y2 := MilsToCoord(Evaluate(s2));
+ lin.Layer := LayerFromString(GetBetween(Data, '(Layer ', ')'));
+ lin.Width := MilsToCoord(Evaluate(GetBetween(Data, '(Width ', ')')));
+ fp.AddPCBObject(lin);
+ PCBServer.SendMessageToRobots(fp.I_ObjectAddress, c_Broadcast, PCBM_BoardRegisteration, lin.I_ObjectAddress);
+End;
+
+Procedure FP_AddArc(fp: IPCB_Component, Data: String);
+Var
+ arc : IPCB_Arc;
+ s1, s2 : String;
+Begin
+ arc := PCBServer.PCBObjectFactory(eArcObject, eNoDimension, eCreate_Default);
+ If arc = Nil Then Exit;
+ StrChop(GetBetween(Data, '(Location ', ')'), ',', s1, s2);
+ arc.XCenter := MilsToCoord(Evaluate(s1));
+ arc.YCenter := MilsToCoord(Evaluate(s2));
+ arc.Radius := MilsToCoord(Evaluate(GetBetween(Data, '(Radius ', ')')));
+ arc.LineWidth := MilsToCoord(Evaluate(GetBetween(Data, '(Width ', ')')));
+ arc.StartAngle := Evaluate(GetBetween(Data, '(StartAngle ', ')'));
+ arc.EndAngle := Evaluate(GetBetween(Data, '(EndAngle ', ')'));
+ arc.Layer := LayerFromString(GetBetween(Data, '(Layer ', ')'));;
+ fp.AddPCBObject(arc);
+ PCBServer.SendMessageToRobots(fp.I_ObjectAddress, c_Broadcast, PCBM_BoardRegisteration, arc.I_ObjectAddress);
+End;
+
+Procedure FP_AddPoly(fp: IPCB_Component, Data: String, InFile: TextFile);
+Var
+ pol : IPCB_Region;
+ cont : IPCB_Contour;
+ pc: Integer;
+ s1, s2, inp, tag : String;
+Begin
+ pol := PCBServer.PCBObjectFactory(eRegionObject, eNoDimension,eCreate_Default);
+ If pol = Nil Then Exit;
+ cont := pol.MainContour.Replicate();
+ pol.Layer := LayerFromString(GetBetween(Data, '(Layer ', ')'));
+ cont.Count := Evaluate(GetBetween(Data, '(PointCount ', ')'));
+ pc := 0;
+ While Not EOF(InFile) Do Begin
+ ReadLn(InFile, inp);
+ If VarIsNull(inp) Then Continue;
+ inp := Trim(inp);
+ StrChop(inp, ' ', tag, inp);
+ tag := Trim(tag);
+ Case tag Of
+ 'Point': Begin
+ pc := pc + 1;
+ StrChop(GetBetween(inp, '(', ')'), ',', s1, s2);
+ cont.X[pc] := MilsToCoord(Evaluate(s1));
+ cont.Y[pc] := MilsToCoord(Evaluate(s2));
+ End;
+ 'EndPolygon': Break;
+ Else Begin
+ ShowMessage('Keyword Error: ' + tag);
+ End;
+ End;
+ End;
+ pol.SetOutlineContour(cont);
+ If GetBetween(Data, '(Type ', ')') = 'KeepOut' Then Begin
+ pol.IsKeepout := True;
+ End;
+ fp.AddPCBObject(pol);
+ PCBServer.SendMessageToRobots(fp.I_ObjectAddress, c_Broadcast, PCBM_BoardRegisteration, pol.I_ObjectAddress);
+End;
+
+Procedure FP_AddText(fp: IPCB_Component, Data: STring);
+Var
+ txt : IPCB_Text;
+ s1, s2 : String;
+Begin
+ txt := PCBServer.PCBObjectFactory(eTextObject, eNoDimension, eCreate_Default);
+ If txt = Nil Then Exit;
+ StrChop(GetBetween(Data, '(Location ', ')'), ',', s1, s2);
+ txt.XLocation := MilsToCoord(Evaluate(s1));
+ txt.YLocation := MilsToCoord(Evaluate(s2));
+ txt.Layer := LayerFromString(GetBetween(Data, '(Layer ', ')'));
+ txt.Size := MilsToCoord(Evaluate(GetBetween(Data, '(Height ', ')')));
+ txt.Width := MilsToCoord(Evaluate(GetBetween(Data, '(Width ', ')')));
+ If GetBetween(Data, '(Mirrored ', ')') = 'True' Then Begin
+ txt.MirrorFlag := True;
+ End;
+ txt.Rotation := Evaluate(GetBetween(Data, '(Rotation ', ')'));
+ txt.Text := GetBetween(Data, '(Value "', '")');
+ // Justification? NOTE: TODO:
+ fp.AddPCBObject(txt);
+ PCBServer.SendMessageToRobots(fp.I_ObjectAddress, c_Broadcast, PCBM_BoardRegisteration, txt.I_ObjectAddress);
+End;
+
+Procedure FP_AddPad(fp: IPCB_Component, Data: String, InFile: TextFile);
+Var
+ s1, s2, inp, tag, lay : String;
+ pad : IPCB_Pad;
+ padsh : TShape;
+ cache : TPadCache;
+Begin
+ pad := PcbServer.PCBObjectFactory(ePadObject, eNoDimension, eCreate_Default);
+ pad.Name := GetBetween(Data, '(Name "', '")');
+// pad.Layer := LayerFromString(GetBetween(Data, '(Layer ', ')'));
+ StrChop(GetBetween(Data, '(Location ', ')'), ',', s1, s2);
+ pad.X := MilsToCoord(Evaluate(s1));
+ pad.Y := MilsToCoord(Evaluate(s2));
+ pad.Rotation := Evaluate(GetBetween(Data, '(Rotation ', ')')); // 2010-07-06 gbn
+// pad.Mode := ePadMode_LocalStack; // ePadMode_Simple, ePadMode_ExternalStack
+ s1 := GetBetween(Data, '(ExpandPaste ', ')');
+ s2 := GetBetween(Data, '(ExpandMask ', ')');
+ If s1 <> '' || s2 <> '' Then Begin
+ cache := pad.Cache;
+ If s1 <> '' Then Begin
+ cache.PasteMaskExpansionValid := eCacheManual;
+ cache.PasteMaskExpansion := MilsToCoord(Evaluate(s1));
+ End;
+ If s2 <> '' Then Begin
+ cache.SolderMaskExpansionValid := eCacheManual;
+ cache.SolderMaskExpansion := MilsToCoord(Evaluate(s2));
+ End;
+ pad.Cache := cache;
+ End;
+ If GetBetween(Data, '(Surface ', ')') = 'True' Then Begin
+ pad.Mode := ePadMode_Simple;
+ pad.Layer := eTopLayer;
+ End Else Begin
+ pad.Mode := ePadMode_LocalStack;
+ End;
+ pad.Moveable := False;
+ pad.HoleType := eRoundHole; // eSquareHole, eSlotHole
+ pad.HoleSize := MilsToCoord(Evaluate(GetBetween(Data, '(HoleSize ', ')')));
+ //2020-11-18 JRR Start; Let's set the Plated value, if present
+ If GetBetween(Data, '(Plated ', ')') <> '' Then Begin
+ pad.Plated := (GetBetween(Data, '(Plated ', ')')='True');
+ End;
+ //2020-11-18 JRR End
+ While Not EOF(InFile) Do Begin
+ ReadLn(InFile, inp);
+ If VarIsNull(inp) Then Continue;
+ inp := Trim(inp);
+ StrChop(inp, ' ', tag, inp);
+ tag := Trim(tag);
+ Case tag Of
+ 'PadShape': Begin
+ padsh := eNoShape;
+ StrChop(GetBetween(inp, '(Size ', ')'), ',', s1, s2);
+ Case GetBetween(inp, '(Shape ', ')') Of
+ 'NoShape': padsh := eNoShape;
+ 'Rounded': padsh := eRounded;
+ 'Rectangular': padsh := eRectangular;
+ 'Octagonal': padsh := eOctagonal;
+ 'CircleShape': padsh := eCircleShape;
+ 'ArcShape': padsh := eArcShape;
+ 'Terminator': padsh := eTerminator;
+ 'RoundedRectangle': padsh := eRoundedRectangular;
+ 'RotatedRectangle': padsh := eRotatedRectShape;
+ Else padsh := eNoShape;
+ End;
+ lay := GetBetween(inp, '(Layer ', ')');
+ If CheckLeft(lay, 'Top') Then Begin
+ pad.TopShape := padsh;
+ pad.TopXSize := MilsToCoord(Evaluate(s1));
+ pad.TopYSize := MilsToCoord(Evaluate(s2));
+ End Else If CheckLeft(lay, 'Mid') Then Begin
+ pad.MidShape := padsh;
+ pad.MidXSize := MilsToCoord(Evaluate(s1));
+ pad.MidYSize := MilsToCoord(Evaluate(s2));
+ End Else If CheckLeft(lay, 'Bot') Then Begin
+ pad.BotShape := padsh;
+ pad.BotXSize := MilsToCoord(Evaluate(s1));
+ pad.BotYSize := MilsToCoord(Evaluate(s2));
+ End;
+ End;
+ 'EndPad': Begin
+ Break;
+ End;
+ Else Begin
+ ShowMessage('Keyword Error: ' + tag);
+ End;
+ End;
+ End;
+ fp.AddPCBObject(pad);
+ PCBServer.SendMessageToRobots(fp.I_ObjectAddress, c_Broadcast, PCBM_BoardRegisteration, pad.I_ObjectAddress);
+End;
+
+Procedure ImportFootprints(InFile: TextFile, Lib: IPCB_Library, Errors: TStringList, InFileName : String);
+Var
+ inp, tag, s, t : String;
+ fp : IPCB_Component;
+Begin
+ While Not EOF(InFile) Do Begin
+ ReadLn(InFile, inp);
+ If VarIsNull(inp) Then Continue;
+ inp := Trim(inp);
+
+ StrChop(inp, ' ', tag, inp);
+ tag := Trim(tag);
+ Case tag Of
+ 'Footprint': Begin
+ // create a footprint reference
+ fp := PCBServer.CreatePCBLibComp();
+ If fp = Nil Then Begin
+ Errors.Add('Error creating footprint.');
+ Break;
+ End;
+ // add data to it
+ fp.Name := GetBetween(inp, '(Name "', '")');
+ // assign it to library
+ Lib.RegisterComponent(fp);
+ PCBServer.PreProcess();
+ // add data to it
+ fp.BeginModify();
+ // set height
+ t := GetBetween(inp, '(Height ', ')');
+ If t <> '' Then Begin
+ fp.Height := MilsToCoord(Evaluate(t));
+ End;
+
+ While Not EOF(InFile) Do Begin
+ ReadLn(InFile, inp);
+ If VarIsNull(inp) Then Continue;
+ inp := Trim(inp);
+ If CheckLeft(inp, '#') Then Continue;
+
+ StrChop(inp, ' ', tag, inp);
+ tag := Trim(tag);
+ Case tag Of
+ 'Pad': Begin
+ FP_AddPad(fp, inp, InFile);
+ End;
+ 'Line': Begin
+ FP_AddLine(fp, inp);
+ End;
+ 'Arc': Begin
+ FP_AddArc(fp, inp);
+ End;
+ 'Polygon': Begin
+ FP_AddPoly(fp, inp, InFile);
+ End;
+ 'Text': Begin
+ FP_AddText(fp, inp);
+ End;
+ 'Step': Begin
+ FP_AddStep(fp, inp, InFileName);
+ End;
+ 'EndFootprint': Begin
+ //ShowMessage('EndFootprint');
+ Break;
+ End;
+ '': Continue;
+ Else Begin
+ ShowMessage('Keyword Error: ' + tag);
+ Break;
+ End;
+ End;
+ End; // while not eof()
+ fp.EndModify();
+ PCBServer.PostProcess();
+ // done with footprint
+ End;
+ 'EndFootprints': Begin
+ //ShowMessage('EndFootprint');
+ Break;
+ End;
+ '': Continue;
+ Else Begin
+ ShowMessage('Keyword Error: ' + tag);
+ Break;
+ End;
+ End; // case tag
+ End; // while not eof()
+ PCBServer.PostProcess();
+End;
+
+{==============================================================================}
+{==== Symbol Routines =======================================================}
+{==============================================================================}
+
+Function TextJustificationFromString(Value: String): TTextJustification;
+Begin
+ Case Value Of
+ 'BottomLeft': Result := eJustify_BottomLeft;
+ 'BottomCenter': Result := eJustify_BottomCenter;
+ 'BottomRight': Result := eJustify_BottomRight;
+ 'CenterLeft': Result := eJustify_CenterLeft;
+ 'Center': Result := eJustify_Center;
+ 'CenterRight': Result := eJustify_CenterRight;
+ 'TopLeft': Result := eJustify_TopLeft;
+ 'TopCenter': Result := eJustify_TopCenter;
+ 'TopRight': Result := eJustify_TopRight;
+ Else Result := eJustify_Center;
+ End;
+End;
+
+Function SY_GetFont(Height: Double, Angle: TRotationBy90): TFontID;
+Var
+ sz : Integer;
+Begin
+ // 2012-11-07 gbn start
+ { sz := Round(Height / 10);
+ According to this page's bugs 4604 and 5552, Altium 10.890.23450 may have this fixed.
+ http://wiki.altium.com/pages/viewpage.action?pageId=34210039
+ }
+ sz := (Height * 0.1);
+ // 2012-11-07 gbn end
+
+ // 2019-01-16 gbn start, this should hopefully be temporary until Altium fixes their FontManager
+ If BrokenSCHFontManager > 0 Then Begin
+ Result := ForceSchFontID;
+ Exit;
+ End;
+ // 2019-01-16 gbn
+
+ Result := SchServer.FontManager.GetFontID(sz, Angle, False, False, False, False, 'Courier New');
+End;
+
+Function SY_GetAngle(Angle : String): TRotationBy90;
+Begin
+ Case Angle Of
+ '90': Result := eRotate90;
+ '180': Result := eRotate180;
+ '270': Result := eRotate270;
+ Else Result := eRotate0;
+ End;
+End;
+
+Procedure SY_AddLine(sy: ISch_Component, Data: String);
+Var
+ lin : ISch_Line;
+ s1, s2 ,s3: String;
+Begin
+ lin := SchServer.SchObjectFactory(eLine, eCreate_Default);
+ If lin = Nil Then Exit;
+ StrChop(GetBetween(Data, '(Start ', ')'), ',', s1, s2);
+ lin.Location := Point(MilsToCoord(Evaluate(s1)), MilsToCoord(Evaluate(s2)));
+ StrChop(GetBetween(Data, '(End ', ')'), ',', s1, s2);
+ lin.Corner := Point(MilsToCoord(Evaluate(s1)), MilsToCoord(Evaluate(s2)));
+ GetBetween(Data, 'Width ', ')');
+ If s3 < 10 Then Begin
+ lin.LineWidth := eSmall;
+ End;
+ If s3 > 10 Then Begin
+ lin.LineWidth := eMedium;
+ End;
+ If s3 > 12 Then Begin
+ lin.LineWidth := eLarge;
+ End;
+ lin.LineStyle := eLineStyleSolid;
+ lin.Color := $000000; // NOTE: TODO:
+ lin.OwnerPartId := Evaluate(GetBetween(Data, '(Part ', ')'));
+ lin.OwnerPartDisplayMode := sy.DisplayMode;
+ sy.AddSchObject(lin);
+ SchServer.RobotManager.SendMessage(sy.I_ObjectAddress, c_BroadCast, SCHM_PrimitiveRegistration, lin.I_ObjectAddress);
+End;
+
+Procedure SY_AddRect(sy: ISch_Component, Data: String);
+Var
+ rect : ISch_Rectangle;
+ s1, s2 ,s3: String;
+Begin
+ rect := SchServer.SchObjectFactory(eRectangle, eCreate_Default);
+ If rect = Nil Then Exit;
+ StrChop(GetBetween(Data, '(Start ', ')'), ',', s1, s2);
+ rect.Location := Point(MilsToCoord(Evaluate(s1)), MilsToCoord(Evaluate(s2)));
+ StrChop(GetBetween(Data, '(End ', ')'), ',', s1, s2);
+ rect.Corner := Point(MilsToCoord(Evaluate(s1)), MilsToCoord(Evaluate(s2)));
+ GetBetween(Data, 'Width ', ')');
+ s3 := GetBetween(Data, '(Width ', ')');
+ If s3 < 10 Then Begin
+ rect.LineWidth := eSmall;
+ End;
+ If s3 > 10 Then Begin
+ rect.LineWidth := eMedium;
+ End;
+ If s3 > 12 Then Begin
+ rect.LineWidth := eLarge;
+ End;
+ rect.Transparent := True;
+ rect.Color := $000000; // NOTE: TODO:
+ rect.OwnerPartId := Evaluate(GetBetween(Data, '(Part ', ')'));
+ rect.OwnerPartDisplayMode := sy.DisplayMode;
+ sy.AddSchObject(rect);
+ SchServer.RobotManager.SendMessage(sy.I_ObjectAddress, c_BroadCast, SCHM_PrimitiveRegistration, rect.I_ObjectAddress);
+End;
+
+Procedure SY_AddArc(sy: ISch_Component, Data: String);
+Var
+ arc : ISch_Arc;
+ s1, s2, s3 : String;
+Begin
+ arc := SchServer.SchObjectFactory(eArc, eCreate_Default);
+ If arc = Nil Then Exit;
+ StrChop(GetBetween(Data, '(Location ', ')'), ',', s1, s2);
+ arc.Location := Point(MilsToCoord(Evaluate(s1)), MilsToCoord(Evaluate(s2)));
+ arc.Radius := MilsToCoord(Evaluate(GetBetween(Data, '(Radius ', ')')));
+ s3 := GetBetween(Data, '(Width ', ')');
+ If s3 < 10 Then Begin
+ arc.LineWidth := eSmall;
+ End;
+ If s3 > 10 Then Begin
+ arc.LineWidth := eMedium;
+ End;
+ If s3 > 12 Then Begin
+ arc.LineWidth := eLarge;
+ End;
+ arc.Color := $000000; // NOTE: TODO:
+ arc.StartAngle := Evaluate(GetBetween(Data, '(StartAngle ', ')'));
+ arc.EndAngle := Evaluate(GetBetween(Data, '(EndAngle ', ')'));
+ arc.OwnerPartId := Evaluate(GetBetween(Data, '(Part ', ')'));
+ arc.OwnerPartDisplayMode := sy.DisplayMode;
+ sy.AddSchObject(arc);
+ SchServer.RobotManager.SendMessage(sy.I_ObjectAddress, c_BroadCast, SCHM_PrimitiveRegistration, arc.I_ObjectAddress);
+End;
+
+Procedure SY_AddPoly(sy: ISch_Component, Data: String, InFile: TextFile);
+Var
+ pol : ISch_Polygon;
+ pc: Integer;
+ s1, s2, inp, tag : String;
+Begin
+ pol := SchServer.SchObjectFactory(ePolygon, eCreate_Default);
+ If pol = Nil Then Exit;
+
+ pol.VerticesCount := Evaluate(GetBetween(Data, '(PointCount ', ')'));
+ pc := 0;
+ While Not EOF(InFile) Do Begin
+ ReadLn(InFile, inp);
+ If VarIsNull(inp) Then Continue;
+ inp := Trim(inp);
+ StrChop(inp, ' ', tag, inp);
+ tag := Trim(tag);
+ Case tag Of
+ 'Point': Begin
+ pc := pc + 1;
+ StrChop(GetBetween(inp, '(', ')'), ',', s1, s2);
+ pol.Vertex[pc] := Point(MilsToCoord(Evaluate(s1)), MilsToCoord(Evaluate(s2)));
+ End;
+ 'EndPolygon': Break;
+ Else Begin
+ ShowMessage('Keyword Error: ' + tag);
+ End;
+ End;
+ End;
+ pol.LineWidth := eZeroSize; // NOTE: TODO:
+ pol.Color := $000000; // NOTE: TODO:
+ pol.IsSolid := True;
+ pol.OwnerPartId := Evaluate(GetBetween(Data, '(Part ', ')'));
+ pol.OwnerPartDisplayMode := sy.DisplayMode;
+ sy.AddSchObject(pol);
+ SchServer.RobotManager.SendMessage(sy.I_ObjectAddress, c_BroadCast, SCHM_PrimitiveRegistration, pol.I_ObjectAddress);
+End;
+
+Procedure SY_AddText(sy: ISch_Component, Data: String);
+Var
+ txt : ISch_Label;
+ s1, s2 : String;
+Begin
+ txt := SchServer.SchObjectFactory(eLabel, eCreate_Default);
+ If txt = Nil Then Exit;
+ StrChop(GetBetween(Data, '(Location ', ')'), ',', s1, s2);
+ txt.Location := Point(MilsToCoord(Evaluate(s1)), MilsToCoord(Evaluate(s2)));
+ If GetBetween(Data, '(Mirrored ', ')') = 'True' Then Begin
+ txt.IsMirrored := True;
+ End;
+ txt.Orientation := SY_GetAngle(GetBetween(Data, '(Rotation ', ')'));
+ txt.FontID := SY_GetFont(Evaluate(GetBetween(Data, 'Height ', ')')), txt.Orientation);
+ txt.Justification := TextJustificationFromString(GetBetween(Data, '(Justification ', ')'));
+ txt.Color := $000000; // NOTE: TODO:
+ txt.Text := GetBetween(Data, '(Value "', '")');
+ txt.OwnerPartId := Evaluate(GetBetween(Data, '(Part ', ')'));
+ txt.OwnerPartDisplayMode := sy.DisplayMode;
+ sy.AddSchObject(txt);
+ SchServer.RobotManager.SendMessage(sy.I_ObjectAddress, c_BroadCast, SCHM_PrimitiveRegistration, txt.I_ObjectAddress);
+End;
+
+Procedure SY_AddParam(sy: ISch_Component, Data: String);
+Var
+ prm : ISch_Parameter;
+ s1, s2: String;
+Begin
+ prm := SchServer.SchObjectFactory(eParameter, eCreate_Default);
+ If prm = Nil Then Exit;
+ prm.IsHidden := True;
+ If GetBetween(Data, '(Name ', '"') = 'Visible' Then Begin
+ prm.IsHidden := False;
+ End;
+ prm.Name := GetBetween(Data, '(Name "', '")');
+ StrChop(GetBetween(Data, '(Location ', ')'), ',', s1, s2);
+ prm.Location := Point(MilsToCoord(Evaluate(s1)), MilsToCoord(Evaluate(s2)));
+ If GetBetween(Data, '(Mirrored ', ')') = 'True' Then Begin
+ prm.IsMirrored := True;
+ End;
+ prm.Orientation := SY_GetAngle(GetBetween(Data, '(Rotation ', ')'));
+ prm.FontID := SY_GetFont(Evaluate(GetBetween(Data, 'Height ', ')')), prm.Orientation);
+ prm.Justification := TextJustificationFromString(GetBetween(Data, '(Justification ', ')'));
+ prm.Color := $000000; // NOTE: TODO:
+ prm.Text := GetBetween(Data, '(Value "', '")');
+ prm.OwnerPartId := Evaluate(GetBetween(Data, '(Part ', ')'));
+ prm.OwnerPartDisplayMode := sy.DisplayMode;
+ sy.AddSchObject(prm);
+ SchServer.RobotManager.SendMessage(sy.I_ObjectAddress, c_BroadCast, SCHM_PrimitiveRegistration, prm.I_ObjectAddress);
+End;
+
+Procedure SY_AddComment(sy: ISch_Component, Data: String);
+Var
+ prm : ISch_Parameter;
+ s1, s2: String;
+Begin
+ prm := SchServer.SchObjectFactory(eParameter, eCreate_Default);
+ If prm = Nil Then Exit;
+ prm.IsHidden := True;
+ If GetBetween(Data, '(Name ', '"') = 'Visible' Then Begin
+ prm.IsHidden := False;
+ End;
+ prm.Name := GetBetween(Data, '(Name "', '")');
+ StrChop(GetBetween(Data, '(Location ', ')'), ',', s1, s2);
+ prm.Location := Point(MilsToCoord(Evaluate(s1)), MilsToCoord(Evaluate(s2)));
+ If GetBetween(Data, '(Mirrored ', ')') = 'True' Then Begin
+ prm.IsMirrored := True;
+ End;
+ prm.Orientation := SY_GetAngle(GetBetween(Data, '(Rotation ', ')'));
+ prm.FontID := SY_GetFont(Evaluate(GetBetween(Data, 'Height ', ')')), prm.Orientation);
+ prm.Justification := TextJustificationFromString(GetBetween(Data, '(Justification ', ')'));
+ prm.Color := $000000; // NOTE: TODO:
+ prm.Text := GetBetween(Data, '(Value "', '")');
+ prm.OwnerPartId := Evaluate(GetBetween(Data, '(Part ', ')'));
+ prm.OwnerPartDisplayMode := sy.DisplayMode;
+ sy.Comment := prm; // crashes, as of Altium 16.0.5
+ SchServer.RobotManager.SendMessage(sy.I_ObjectAddress, c_BroadCast, SCHM_PrimitiveRegistration, prm.I_ObjectAddress);
+End;
+
+Procedure SY_AddPin(sy: ISch_Component, Data: String);
+Var
+ pin : ISch_Pin;
+ s1, s2 : String;
+Begin
+ pin := SchServer.SchObjectFactory(ePin, eCreate_Default);
+ If pin = Nil Then Exit;
+
+ // Define the pin parameters.
+ StrChop(GetBetween(Data, '(Location ', ')'), ',', s1, s2);
+ pin.Location := Point(MilsToCoord(Evaluate(s1)), MilsToCoord(Evaluate(s2)));
+ pin.Color := $000000; // NOTE: TODO:
+ pin.Orientation := SY_GetAngle(GetBetween(Data, '(Rotation ', ')'));
+ Case GetBetween(Data, '(PinType ', ')') Of
+ 'IO': pin.Electrical := eElectricIO;
+ 'Input': pin.Electrical := eElectricInput;
+ 'Output': pin.Electrical := eElectricOutput;
+ 'Passive': pin.Electrical := eElectricPassive;
+ 'OpenCollector': pin.Electrical := eElectricOpenCollector;
+ 'OpenEmitter': pin.Electrical := eElectricOpenEmitter;
+ 'HiZ': pin.Electrical := eElectricHiZ;
+ 'Power': pin.Electrical := eElectricPower;
+ Else pin.Electrical := eElectricPassive;
+ End;
+ pin.PinLength := MilsToCoord(Evaluate(GetBetween(Data, '(Length ', ')')));
+ pin.SwapId_Pin := GetBetween(Data, '(PinSwap ', ')');
+ pin.SwapId_Part := GetBetween(Data, '(PartSwap ', ')');
+ pin.SwapId_PartPin := GetBetween(Data, '(PinSeq ', ')');
+ s1 := GetBetween(Data, '(Designator ', '")');
+ pin.ShowDesignator := CheckLeft(s1, 'Visible');
+ pin.Designator := RightOf(s1, '"');
+ s1 := GetBetween(Data, '(Name ', '")');
+ pin.ShowName := CheckLeft(s1, 'Visible');
+ pin.Name := RightOf(s1, '"');
+ pin.OwnerPartId := Evaluate(GetBetween(Data, '(Part ', ')'));
+
+ pin.OwnerPartDisplayMode := sy.DisplayMode;
+ sy.AddSchObject(pin);
+ SchServer.RobotManager.SendMessage(sy.I_ObjectAddress, c_BroadCast, SCHM_PrimitiveRegistration, pin.I_ObjectAddress);
+End;
+
+Procedure ImportComponents(InFile: TextFile, Lib: ISch_Document, Errors: TStringList);
+Var
+ inp, tag, s, t : String;
+ sy : ISch_Component;
+ simp : ISch_Implementation;
+Begin
+ While Not EOF(InFile) Do Begin
+ ReadLn(InFile, inp);
+ If VarIsNull(inp) Then Continue;
+
+ StrChop(inp, ' ', tag, inp);
+ tag := Trim(tag);
+ Case tag Of
+ 'Component': Begin
+ // create a component reference
+ sy := SchServer.SchObjectFactory(eSchComponent, eCreate_Default);
+ If sy = Nil Then Begin
+ Errors.Add('Error creating component.');
+ Break;
+ End;
+ // Set up parameters for the library component.
+ SchServer.ProcessControl.PreProcess(Lib, '');
+ // Define the LibReference and add the component to the library.
+ sy.LibReference := GetBetween(inp, '(Name "', '")');
+ sy.Designator.Text := GetBetween(inp, '(DesPrefix "', '")');
+ sy.ComponentDescription := 'Imported';
+ sy.PartCount := Evaluate(GetBetween(inp, '(PartCount ', ')'));
+ sy.CurrentPartId := 1;
+
+ // add data to it
+ While Not EOF(InFile) Do Begin
+ ReadLn(InFile, inp);
+ If VarIsNull(inp) Then Continue;
+ StrChop(inp, ' ', tag, inp);
+ Case tag Of
+ 'Description': Begin
+ //sy.SourceDescription := GetBetween(inp, '(Value "', '")'); ' SourceDescription doesnt exist (as of 16.0.5)
+ sy.ComponentDescription := GetBetween(inp, '(Value "', '")');
+ End;
+ 'Comment': Begin
+ //sy.Comment.UnderlyingString := GetBetween(inp, '(Value "', '")'); ' Comment.UnderlyingString doesnt exist (as of 16.0.5)
+ //sy.Comment.DisplayString := GetBetween(inp, '(Value "', '")'); // crashes
+ //SY_AddComment(sy, inp); // crashes (see function)
+ sy.Comment.text :=getbetween(inp, '(Value "', '")');
+ End;
+ 'Parameter': Begin
+ SY_AddParam(sy, inp);
+ End;
+ 'Pin': Begin
+ SY_AddPin(sy, inp);
+ End;
+ 'Line': Begin
+ SY_AddLine(sy, inp);
+ End;
+ 'Rectangle': Begin
+ SY_AddRect(sy, inp);
+ End;
+ 'Arc': Begin
+ SY_AddArc(sy, inp);
+ End;
+ 'Polygon': Begin
+ SY_AddPoly(sy, inp, InFile);
+ End;
+ 'Text': Begin
+ SY_AddText(sy, inp);
+ End;
+ 'Footprint': Begin
+ simp := sy.AddSchImplementation();
+ simp.ModelName := GetBetween(inp, '(Name "', '")');
+ simp.ModelType := cDocKind_PcbLib;
+ simp.AddDataFileLink(simp.ModelName, '', cDocKind_PcbLib);
+ simp.MapAsString := GetBetween(inp, '(Map "', '")');
+ End;
+ 'EndComponent': Begin
+ Lib.AddSchComponent(sy);
+ // Send a system notification that a new component has been added to the library.
+ SchServer.RobotManager.SendMessage(Lib.I_ObjectAddress, c_BroadCast, SCHM_PrimitiveRegistration, sy.I_ObjectAddress);
+ Lib.CurrentSchComponent := sy;
+ Break;
+ End;
+ '': Continue;
+ Else Begin
+ ShowMessage('Keyword Error: ' + tag);
+ Break;
+ End;
+ End;
+ End; // while not eof()
+ // done with component
+ SchServer.ProcessControl.PostProcess(Lib, '');
+ End;
+ 'EndComponents': Begin
+ Break;
+ End;
+ '': Continue;
+ Else Begin
+ ShowMessage('Keyword Error: ' + tag);
+ Break;
+ End;
+ End; // case tag
+ End; // while not eof()
+End;
+
+{==============================================================================}
+{==== Main Routines =========================================================}
+{==============================================================================}
+
+Function InitLibDocs(BasePath: String,
+ Out Proj : IProject,
+ Out ProjDoc : IServerDocument,
+ Out PcbLibDoc : IServerDocument,
+ Out SchLibDoc : IServerDocument,
+ Out pLib : IPCB_Library,
+ Out sLib : ISch_Document): Boolean;
+Var
+ WorkSpace : IWorkSpace;
+Begin
+ Result := False;
+ WorkSpace := GetWorkSpace;
+ If WorkSpace = Nil Then Begin
+ ShowMessage('Nil WorkSpace');
+ Exit;
+ End;
+ // Integrated library, and the project it creates
+ ProjDoc := Client.OpenNewDocument(cDocKind_IntegratedLibrary, 'UL_Imported_Lib', 'UL_Imported_Lib', False);
+ If ProjDoc = Nil Then Begin
+ ShowMessage('Nil ProjDoc');
+ Exit;
+ End;
+ If Not ProjDoc.DoSafeChangeFileNameAndSave(BasePath + '.LibPkg', cDocKind_IntegratedLibrary) Then Begin
+ ShowMessage('ProjDoc Save failed');
+ Exit;
+ End;
+ Proj := WorkSpace.DM_GetProjectFromPath(BasePath + '.LibPkg');
+ If Proj = Nil Then Begin
+ ShowMessage('Nil Proj');
+ Exit;
+ End;
+ // Footprint library
+ PcbLibDoc := Client.OpenNewDocument(cDocKind_PcbLib, 'UL_Footprints', 'UL_Footprints', False);
+ If PcbLibDoc = Nil Then Begin
+ ShowMessage('Nil PcbLibDoc');
+ Exit;
+ End;
+ If Not PcbLibDoc.DoSafeChangeFileNameAndSave(BasePath + '.PcbLib', cDocKind_PcbLib) Then Begin
+ ShowMessage('PcbLibDoc Save failed');
+ Exit;
+ End;
+ Proj.DM_AddSourceDocument(BasePath + '.PcbLib');
+ pLib := PCBServer.GetPCBLibraryByPath(BasePath + '.PcbLib');
+ If pLib = Nil Then Begin
+ ShowMessage('Nil pLib');
+ Exit;
+ End;
+ // Symbol Library
+ SchLibDoc := Client.OpenNewDocument(cDocKind_SchLib, 'UL_Components', 'UL_Components', False);
+ If SchLibDoc = Nil Then Begin
+ ShowMessage('Nil SchLibDoc');
+ Exit;
+ End;
+ If Not SchLibDoc.DoSafeChangeFileNameAndSave(BasePath + '.SchLib', cDocKind_SchLib) Then Begin
+ ShowMessage('SchLibDoc Save failed');
+ Exit;
+ End;
+ Proj.DM_AddSourceDocument(BasePath + '.SchLib');
+ sLib := SchServer.GetSchDocumentByPath(BasePath + '.SchLib');
+ If sLib = Nil Then Begin
+ ShowMessage('Nil sLib');
+ Exit;
+ End;
+ // Done
+ Result := True;
+End;
+
+Procedure ImportAscIIData(InFileName : String);
+Var
+ WorkSpace : IWorkSpace;
+ dProj : IProject;
+
+ Proj : IProject;
+ ProjDoc : IServerDocument;
+ PcbLibDoc : IServerDocument;
+ SchLibDoc : IServerDocument;
+ pLib : IPCB_Library;
+ sLib : ISch_Document;
+
+ DefFP : IPCB_Component; // default initial blank footprint
+ DefSY : ISch_Component; // default initial blank symbol
+
+ SavePath: String;
+
+ InFile : TextFile;
+ Errors : TStringList;
+ inp, tag : String;
+Begin
+
+ // 2019-01-16 gbn start, try to detect Altium 19, so we can kludge around its broken SCH FontMangaer
+ If '19.0' < GetCurrentProductBuild Then Begin
+ ShowMessage('NOTE: This version of Altium has issues with the Schematic FontManger''s scripting interface.' +
+ ' All symbol texts and parameters will use the FontID specified by the ForceSchFontID integer at the top of UL_Import.pas.');
+ BrokenSCHFontManager := 1;
+ End;
+ // 2019-01-16 gbn end
+
+ //SavePath := LeftOf(InFileName, '.'); // 2019-10-02 gbn
+ SavePath := LeftOfLast(InFileName, '.');
+ Errors := TStringList.Create();
+
+ WorkSpace := GetWorkSpace;
+ If WorkSpace = Nil Then Begin
+ ShowMessage('Nil WorkSpace');
+ Exit;
+ End;
+ dProj := WorkSpace.DM_FocusedProject();
+
+ // create integerated library documents
+ If InitLibDocs(SavePath, Proj, ProjDoc, PcbLibDoc, SchLibDoc, pLib, sLib) = False Then Begin
+ ShowMessage('Error initializing library');
+ Exit;
+ End;
+ Proj.DM_SetAsCurrentProject();
+
+ // get the original blank footprint for later deletion when we are done
+ DefFP := pLib.CurrentComponent;
+ // get the original blank symbol for later deletion when we are done
+ DefSy := sLib.CurrentSchComponent;
+
+ // start importing data
+ AssignFile(InFile, InFileName);
+ Reset(InFile);
+
+ While Not EOF(InFile) Do Begin
+ ReadLn(InFile, inp);
+ If VarIsNull(inp) Then Continue;
+
+ StrChop(inp, ' ', tag, inp);
+ tag := Trim(tag);
+ Case tag Of
+ 'StartFootprints': Begin
+ ImportFootprints(InFile, pLib, Errors, InFileName);
+ End;
+ 'StartComponents': Begin
+ ImportComponents(InFile, sLib, Errors);
+ End;
+ '': Continue;
+ End;
+ End;
+ CloseFile(InFile);
+
+ // delete the original default blank footprint
+ If Not VarIsNull(DefFP) Then Begin
+ pLib.DeRegisterComponent(DefFP);
+ pLib.RemoveComponent(DefFP);
+ End Else Begin
+ ShowMessage('DefFP was Nil');
+ End;
+ // delete the original default blank symbol
+ // NOTE: TODO: looks broken; does nothing noticable
+ If Not VarIsNull(DefSY) Then Begin
+ //ShowMessage('trying to delete DefSym "' + DefSy.LibReference + '"');
+ sLib.UnRegisterSchObjectFromContainer(DefSY);
+ sLib.RemoveSchObject(DefSy);
+ //DefSY.Container.RemoveSchObject(DefSy);
+ End Else Begin
+ ShowMessage('DefSym was Nil');
+ End;
+
+ // update views?
+ pLib.Board.ViewManager_FullUpdate();
+ // Refresh symbol library.
+ sLib.GraphicallyInvalidate();
+
+ // save files again
+ ProjDoc.DoFileSave(cDocKind_IntegratedLibrary);
+ PcbLibDoc.DoFileSave(cDocKind_PcbLib);
+ SchLibDoc.DoFileSave(cDocKind_SchLib);
+
+ //2021-01-19 JRR Start; commenting out the below section since the autoit routine does not catch the message box frrom the script
+ //// set the original project back to its focus
+ //If dProj <> Nil Then Begin
+ // dProj.DM_SetAsCurrentProject();
+ //End;
+
+ //ShowMessage('Done with "' + SavePath + '"');
+ //2021-01-19 JRR End
+End;
+