Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add .PrjPcb support, possibly .PrjPcbStructure #2

Open
tgross35 opened this issue Apr 15, 2022 · 2 comments
Open

Add .PrjPcb support, possibly .PrjPcbStructure #2

tgross35 opened this issue Apr 15, 2022 · 2 comments

Comments

@tgross35
Copy link
Collaborator

tgross35 commented Apr 15, 2022

File types seem to be sort of an ini. PrjPcb has information about included files, error checking, etc. PrjPcbStructure has one line per hierarchical block.

@tgross35
Copy link
Collaborator Author

Sample .PrjPcb file:

[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=0
AllowPortNetNames=0
AllowSheetEntryNetNames=1
AppendSheetNumberToLocalNets=0
NetlistSinglePinNets=0
DefaultConfiguration=
UserID=0xFFFFFFFF
DefaultPcbProtel=1
DefaultPcbPcad=0
ReorderDocumentsOnCompile=1
NameNetsHierarchically=1
PowerPortNamesTakePriority=0
AutoSheetNumbering=1
AutoCrossReferences=0
NewIndexingOfSheetSymbols=0
PushECOToAnnotationFile=1
DItemRevisionGUID=
ReportSuppressedErrorsInMessages=0
FSMCodingStyle=eFMSDropDownList_OneProcess
FSMEncodingStyle=eFMSDropDownList_OneHot
IsProjectConflictPreventionWarningsEnabled=1
IsVirtualBomDocumentRemoved=1
OutputPath=
LogFolderPath=
ManagedProjectGUID=
IncludeDesignInRelease=0
CrossRefSheetStyle=1
CrossRefLocationStyle=1
CrossRefPorts=3
CrossRefCrossSheets=1
CrossRefSheetEntries=0
CrossRefFollowFromMainSettings=1
CurrentVariant=Variant Name

[Preferences]
PrefsVaultGUID=
PrefsRevisionGUID=

[Release]
ReleaseTarget=1
ReleaseFolderPath=[OutputPath]
ReleaseZipPath=[OutputPath][ProjectName].zip

[Document1]
DocumentPath=Document Name.SchDoc
AnnotationEnabled=1
AnnotateStartValue=1
AnnotationIndexControlEnabled=0
AnnotateSuffix=
AnnotateScope=All
AnnotateOrder=0
DoLibraryUpdate=1
DoDatabaseUpdate=1
ClassGenCCAutoEnabled=1
ClassGenCCAutoRoomEnabled=0
ClassGenNCAutoScope=None
DItemRevisionGUID=
GenerateClassCluster=0
DocumentUniqueId=EDSSJRPM

[Document2]
...

[ProjectVariant1]
UniqueID=1ec0920e-2b7c-4887-b0a2-3652b0ec2d53 # uuidv4
Description=Variant Name
AllowFabrication=0 # Whether to allow fabrication variations (I believe)
ParameterCount=1
VariationCount=34
Variation1=Designator=R2|UniqueId=\GGEJDZVJ\HPRWOIHM|Kind=1|AlternatePart=  # DNP variation
Variation2=Designator=R3|UniqueId=\GGEJDZVJ\LPFITBRI|Kind=1|AlternatePart= # DNP variation
...
ParamVariationCount=0

[Parameter2_1] # Variant parameter. Assuming this is {variantindex}_{variantparamindex}
Name=VariantParameterName
Value=1

[ProjectVariant2]
...
[Parameter3_1] # Variant parameter
Name=VariantParameterName
Value=2

# Project parameters
[Parameter1]
Name=ParamName
Value=01

[Parameter2]
Name=ParamName2
Value=StringValue


[Configuration1]
Name=Sources
ParameterCount=0
ConstraintFileCount=0
ReleaseItemId=
Variant=[No Variations]
OutputJobsCount=0
ContentTypeGUID=0ab2839e-bd16-11ec-9d64-0242ac120002 # v1 uuid
ConfigurationType=Source # "Source", "Fabrication", "Assembly" or "Custom"

[Configuration2]
Name=Fabrication
ParameterCount=0
ConstraintFileCount=0
ReleaseItemId=
Variant=[No Variations] # Can be variant name
OutputJobsCount=1
DocumentReferenceClass1=DocumentReference
OutputJobFileName1=Fabrication.OutJob
ContentTypeGUID=0ee8b8ac-bd16-11ec-9d64-0242ac120002 # v1 uuid
ConfigurationType=Fabrication

# These output groups are pretty lengthy. Seem to almost be a copy of the output jobs, possibly copied via project releaser
[OutputGroup1]
Name=Netlist Outputs

[OutputGroup2]
Name=Simulator Outputs

[OutputGroup3]
Name=Documentation Outputs
Description=

# Possibly for. Levels are 1, 2 or 3
[Modification Levels]
Type1=1
Type2=1
Type3=1
...

# Possibly for
[Difference Levels]
Type1=1
Type2=1
Type3=1
...

# 
[Electrical Rules Check]
Type1=1
Type2=1
Type3=2
...
MultiChannelAlternate=2
AlternateItemFail=3

# This probably maps pretty directly
[ERC Connection Matrix]
L1=WWNNNNNNNNNWNNNWW
L2=NNNNNNNWNNNWNWNWN
L3=NNEENEEEENEWNEEWN
L4=NNENNNWEENNWNENWN
L5=NNNNNNNNNNNNNNNNN
L6=NNENNNNEENNWNENWN
L7=NNEWNNWEENNWNENWN
L8=NWEENEENEEENNEENN
L9=NNEENEEEENEWNEEWW
L10=NNNNNNNENNEWNNEWN
L11=NNENNNNEEENWNENWN
L12=WWWWNWWNWWWNWWWNN
L13=NNNNNNNNNNNWNNNWW
L14=NWEENEEEENEWNEEWW
L15=NNENNNNEEENWNENWW
L16=WWWWNWWNWWWNWWWNW
L17=WNNNNNNNWNNNWWWWN

[Annotate]
SortOrder=3
SortLocation=0
ReplaceSubparts=0
...

[PrjClassGen]
CompClassManualEnabled=0
CompClassManualRoomEnabled=0
NetClassAutoBusEnabled=1
NetClassAutoCompEnabled=0
NetClassAutoNamedHarnessEnabled=1
NetClassManualEnabled=1
NetClassSeparateForBusSections=0

[Comparison Options]
ComparisonOptions0=Kind=Net|MinPercent=75|MinMatch=3|ShowMatch=-1|UseName=-1|InclAllRules=0
ComparisonOptions1=Kind=Net Class|MinPercent=75|MinMatch=3|ShowMatch=-1|UseName=-1|InclAllRules=0
ComparisonOptions2=Kind=Component Class|MinPercent=75|MinMatch=3|ShowMatch=-1|UseName=-1|InclAllRules=0
ComparisonOptions3=Kind=Rule|MinPercent=75|MinMatch=3|ShowMatch=-1|UseName=-1|InclAllRules=0
ComparisonOptions4=Kind=Differential Pair|MinPercent=50|MinMatch=1|ShowMatch=0|UseName=0|InclAllRules=0
ComparisonOptions5=Kind=Structure Class|MinPercent=75|MinMatch=3|ShowMatch=-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=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1

[LibraryUpdateOptions]
SelectedOnly=1
UpdateVariants=1
UpdateToLatestRevision=1
PartTypes=0
...

[DatabaseUpdateOptions]
SelectedOnly=0
UpdateVariants=1
UpdateToLatestRevision=1
PartTypes=0
...

@tgross35
Copy link
Collaborator Author

Sample .PrjPcbStructure

Record=TopLevelDocument|FileName=Title Page.SchDoc|SheetNumber=1
Record=SheetSymbol|SourceDocument=Title Page.SchDoc|Designator=XX|SchDesignator=XX|FileName=XX.SchDoc|SheetNumber=8|SymbolType=Normal|RawFileName=XX.SchDoc|DesignItemId= |SourceLibraryName= |ObjectKind=Sheet Symbol|RevisionGUID= |ItemGUID= |VaultGUID= 
Record=SheetSymbol|SourceDocument=Title Page.SchDoc|Designator=XX|SchDesignator=XX|FileName=XX.SchDoc|SheetNumber=20|SymbolType=Normal|RawFileName=XX.SchDoc|DesignItemId= |SourceLibraryName= |ObjectKind=Sheet Symbol|RevisionGUID= |ItemGUID= |VaultGUID= 

All later lines look the same as the second

One line per sheet symbol

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant