From f07ef437b6bb448207001aa474f6869c119350d6 Mon Sep 17 00:00:00 2001 From: "ig.zawitaj" Date: Wed, 19 Aug 2026 16:14:17 +0200 Subject: [PATCH 1/5] Add ImportProjectParametersFromCSV script --- .../ImportProjectParametersFromCSV.PrjScr | 73 +++ .../ImportProjectParametersFromCSV.dfm | 57 ++ .../ImportProjectParametersFromCSV.pas | 508 ++++++++++++++++++ ImportProjectParametersFromCSV/README.md | 55 ++ 4 files changed, 693 insertions(+) create mode 100644 ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.PrjScr create mode 100644 ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.dfm create mode 100644 ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.pas create mode 100644 ImportProjectParametersFromCSV/README.md diff --git a/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.PrjScr b/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.PrjScr new file mode 100644 index 00000000..f6d60ef6 --- /dev/null +++ b/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.PrjScr @@ -0,0 +1,73 @@ +[Design] +Version=1.0 +HierarchyMode=0 +ChannelRoomNamingStyle=0 +OutputPath= +LogFolderPath= +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= +UserID=0xFFFFFFFF +DefaultPcbProtel=1 +DefaultPcbPcad=0 +ReorderDocumentsOnCompile=1 +NameNetsHierarchically=0 +PowerPortNamesTakePriority=0 +PushECOToAnnotationFile=1 +DItemRevisionGUID= + +[Document1] +DocumentPath=ImportProjectParametersFromCSV.dfm +AnnotationEnabled=1 +AnnotateStartValue=1 +AnnotationIndexControlEnabled=0 +AnnotateSuffix= +AnnotateScope=All +AnnotateOrder=-1 +DoLibraryUpdate=1 +DoDatabaseUpdate=1 +ClassGenCCAutoEnabled=1 +ClassGenCCAutoRoomEnabled=1 +ClassGenNCAutoScope=None +DItemRevisionGUID= +GenerateClassCluster=0 + +[Document2] +DocumentPath=ImportProjectParametersFromCSV.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 + +[PCBConfiguration1] +ReleaseItemId= +CurrentRevision= +Name=Default Configuration +Variant=[No Variations] +GenerateBOM=0 + +[Generic_ScriptingSystem] +StartProcName=ImportProjectParametersFromCSV.pas>ImportProjectParametersFromCSV diff --git a/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.dfm b/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.dfm new file mode 100644 index 00000000..310cc968 --- /dev/null +++ b/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.dfm @@ -0,0 +1,57 @@ +object ImportProjectParamsForm: TImportProjectParamsForm + Left = 640 + Top = 320 + Caption = 'Import Project Parameters from CSV' + ClientHeight = 125 + ClientWidth = 512 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + PixelsPerInch = 96 + TextHeight = 13 + object LabelFile: TLabel + Left = 16 + Top = 24 + Width = 132 + Height = 13 + Caption = 'CSV file path:' + end + object EditFile: TEdit + Left = 16 + Top = 44 + Width = 392 + Height = 21 + TabOrder = 0 + end + object ButtonBrowse: TButton + Left = 416 + Top = 42 + Width = 81 + Height = 25 + Caption = 'Browse...' + TabOrder = 1 + OnClick = ButtonBrowseClick + end + object ButtonOK: TButton + Left = 328 + Top = 88 + Width = 81 + Height = 25 + Caption = 'Import' + TabOrder = 2 + OnClick = ButtonOKClick + end + object ButtonCancel: TButton + Left = 416 + Top = 88 + Width = 81 + Height = 25 + Caption = 'Cancel' + TabOrder = 3 + OnClick = ButtonCancelClick + end +end diff --git a/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.pas b/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.pas new file mode 100644 index 00000000..4830b45f --- /dev/null +++ b/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.pas @@ -0,0 +1,508 @@ +{..............................................................................} +{ Summary Imports project parameters into the focused PCB project (.PrjPcb) } +{ from a delimited text file (.txt / .csv). } +{ } +{ File layout (two rows): } +{ - Row 1 contains the parameter names (headers). } +{ - Row 2 contains the corresponding values. } +{ Header names must match the parameter names in the project. } +{ Fields may be quoted with double quotes (e.g. "Doe, John"). } +{ } +{ Existing project parameters are updated in place, parameters that } +{ do not yet exist in the project are added. } +{ } +{ The script prompts for the path and file name of the file to use. } +{ } +{ Excel/Access files must first be converted to this CSV format } +{ using the supplied Python helper script (see README). } +{ } +{ Created by: GitHub Copilot } +{..............................................................................} + +{..............................................................................} + +uses +SysUtils; + +Interface + +type + TImportProjectParamsForm = class(TForm) + LabelFile : TLabel; + EditFile : TEdit; + ButtonBrowse : TButton; + ButtonOK : TButton; + ButtonCancel : TButton; + procedure ButtonBrowseClick(Sender: TObject); + procedure ButtonOKClick(Sender: TObject); + procedure ButtonCancelClick(Sender: TObject); + end; + +var + ImportProjectParamsForm : TImportProjectParamsForm; + FocusedProject : IProject; + +{..............................................................................} +{ Case-insensitive search for a string in a TStringList. Returns -1 if not } +{ found. } +{..............................................................................} +function FindNameCI(List : TStringList; Name : String) : Integer; +var + i : Integer; +begin + Result := -1; + for i := 0 to List.Count - 1 do + begin + if AnsiUpperCase(List[i]) = AnsiUpperCase(Name) then + begin + Result := i; + Exit; + end; + end; +end; + +{..............................................................................} +{ Detects the field delimiter used in a CSV line. } +{ } +{ Supports comma (','), semicolon (';') and tab. Whichever occurs most often } +{ (outside double-quoted fields) wins, so regional settings that use } +{ semicolons instead of commas are handled automatically. } +{..............................................................................} +function DetectDelimiter(Line : String) : Char; +var + i : Integer; + inQuotes : Boolean; + commaCnt : Integer; + semiCnt : Integer; + tabCnt : Integer; + ch : Char; +begin + Result := ','; + + commaCnt := 0; + semiCnt := 0; + tabCnt := 0; + inQuotes := False; + + for i := 1 to Length(Line) do + begin + ch := Line[i]; + + if ch = '"' then + begin + inQuotes := not inQuotes; + Continue; + end; + + if not inQuotes then + begin + if ch = ',' then commaCnt := commaCnt + 1 + else if ch = ';' then semiCnt := semiCnt + 1 + else if ch = #9 then tabCnt := tabCnt + 1; + end; + end; + + if (semiCnt > commaCnt) and (semiCnt >= tabCnt) then + Result := ';' + else if (tabCnt > commaCnt) and (tabCnt > semiCnt) then + Result := #9 + else + Result := ','; +end; + +{..............................................................................} +{ Reads a delimited text file (two rows). } +{ Row 1 -> parameter names, Row 2 -> parameter values. } +{ } +{ The delimiter is detected automatically (comma, semicolon or tab). } +{ Fields may be enclosed in double quotes; quotes are stripped. } +{ Names and Values are filled with one entry per non-empty header cell. } +{ Returns True on success. } +{..............................................................................} +function ReadCsvFile(FileName : String; Names, Values : TStringList) : Boolean; +var + Lines : TStringList; + HeaderFields : TStringList; + ValueFields : TStringList; + Delim : Char; + i : Integer; +begin + Result := False; + Names.Clear; + Values.Clear; + + if not FileExists(FileName) then Exit; + + Lines := TStringList.Create; + HeaderFields := TStringList.Create; + ValueFields := TStringList.Create; + try + Lines.LoadFromFile(FileName); + + { We need at least two rows. } + if Lines.Count < 2 then Exit; + + { Detect the field delimiter from the first row. } + Delim := DetectDelimiter(Lines[0]); + + { Parse row 1 (names) and row 2 (values), honouring double-quoted fields. } + { StrictDelimiter=True means only the delimiter separates fields; } + { spaces inside a field (e.g. "test 4") are preserved. } + HeaderFields.Delimiter := Delim; + HeaderFields.QuoteChar := '"'; + HeaderFields.StrictDelimiter := True; + HeaderFields.DelimitedText := Lines[0]; + + ValueFields.Delimiter := Delim; + ValueFields.QuoteChar := '"'; + ValueFields.StrictDelimiter := True; + ValueFields.DelimitedText := Lines[1]; + + { Pair each header with the matching value. } + for i := 0 to HeaderFields.Count - 1 do + begin + if Trim(HeaderFields[i]) = '' then Continue; + + Names.Add(Trim(HeaderFields[i])); + + if i < ValueFields.Count then + Values.Add(Trim(ValueFields[i])) + else + Values.Add(''); + end; + + Result := Names.Count > 0; + finally + Lines.Free; + HeaderFields.Free; + ValueFields.Free; + end; +end; + +{..............................................................................} +{ Reads the current project parameters from the .PrjPcb file. } +{ } +{ Names and Values are filled in file order. Returns True on success. } +{..............................................................................} +function ReadProjectParameters(Project; Names, Values : TStringList) : Boolean; +var + lines : TStringList; + projPath : String; + i, k : Integer; + inParam : Boolean; + curName : String; + line : String; +begin + Result := False; + Names.Clear; + Values.Clear; + + projPath := Project.DM_ProjectFullPath; + lines := TStringList.Create; + try + lines.LoadFromFile(projPath); + + { Parse every "[Parameter...]" block in the file. } + inParam := False; + curName := ''; + for i := 0 to lines.Count - 1 do + begin + line := Trim(lines[i]); + + if Copy(line, 1, 10) = '[Parameter' then + begin + inParam := True; + curName := ''; + Continue; + end; + + if inParam then + begin + { End of this parameter block when another section starts. } + if Copy(line, 1, 1) = '[' then + begin + inParam := False; + curName := ''; + Continue; + end; + + if Copy(line, 1, 5) = 'Name=' then + curName := Copy(line, 6, Length(line)) + else if Copy(line, 1, 6) = 'Value=' then + begin + Names.Add(curName); + Values.Add(Copy(line, 7, Length(line))); + curName := ''; + end; + end; + end; + + { Deduplicate: keep only the first occurrence of each parameter name. } + { This removes stale duplicates that can accumulate after re-runs. } + i := 0; + while i < Names.Count - 1 do + begin + k := i + 1; + while k < Names.Count do + begin + if AnsiUpperCase(Names[k]) = AnsiUpperCase(Names[i]) then + begin + Names.Delete(k); + Values.Delete(k); + end + else + k := k + 1; + end; + i := i + 1; + end; + + Result := True; + finally + lines.Free; + end; +end; + +{..............................................................................} +{ Writes the project parameters (Names/Values) back to the .PrjPcb file. } +{ } +{ The existing "[Parameter...]" block is replaced, preserving the rest of the } +{ file. Returns True on success. } +{..............................................................................} +function WriteProjectFile(Project; Names, Values : TStringList) : Boolean; +var + lines : TStringList; + outLines : TStringList; + projPath : String; + f : TextFile; + i, k : Integer; + inParam : Boolean; + insertAt : Integer; + line : String; + sawAnyParam: Boolean; +begin + Result := False; + projPath := Project.DM_ProjectFullPath; + + lines := TStringList.Create; + outLines := TStringList.Create; + try + lines.LoadFromFile(projPath); + + { Remove ALL "[Parameter...]" blocks from the file (wherever they are), } + { so stale duplicate blocks left by earlier runs are cleaned up too. } + inParam := False; + insertAt := -1; + sawAnyParam := False; + for i := 0 to lines.Count - 1 do + begin + line := Trim(lines[i]); + + if Copy(line, 1, 10) = '[Parameter' then + begin + inParam := True; + if insertAt = -1 then insertAt := outLines.Count; + sawAnyParam := True; + Continue; + end; + + if inParam then + begin + { A non-parameter section header ends the parameter block. } + if Copy(line, 1, 1) = '[' then + begin + inParam := False; + outLines.Add(lines[i]); + end; + { Otherwise skip the line (Name= / Value= / blank inside block). } + Continue; + end; + + outLines.Add(lines[i]); + end; + + { If no parameter block was found, append the new block at the end, } + { after a blank line. } + if not sawAnyParam then + begin + if (outLines.Count > 0) and (Trim(outLines[outLines.Count - 1]) <> '') then + outLines.Add(''); + insertAt := outLines.Count; + end; + + { Build the (merged) parameter block as a separate list. } + k := 0; + while k < Names.Count do + begin + outLines.Insert(insertAt + k * 4 + 0, '[Parameter' + IntToStr(k + 1) + ']'); + outLines.Insert(insertAt + k * 4 + 1, 'Name=' + Names[k]); + outLines.Insert(insertAt + k * 4 + 2, 'Value=' + Values[k]); + outLines.Insert(insertAt + k * 4 + 3, ''); + k := k + 1; + end; + + { Write the modified project file back to disk. } + AssignFile(f, projPath); + Rewrite(f); + for i := 0 to outLines.Count - 1 do WriteLn(f, outLines[i]); + CloseFile(f); + + Result := True; + finally + lines.Free; + outLines.Free; + end; +end; + +{..............................................................................} +{ Event handler: Browse button opens a file dialog filtered to CSV/text files. } +{..............................................................................} +procedure TImportProjectParamsForm.ButtonBrowseClick(Sender: TObject); +var + dlg : TOpenDialog; +begin + dlg := TOpenDialog.Create(Application); + try + dlg.Title := 'Select the CSV file to import'; + dlg.Filter := 'CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*.*'; + if dlg.Execute then + EditFile.Text := dlg.FileName; + finally + dlg.Free; + end; +end; + +{..............................................................................} +{ Event handler: Cancel button closes the dialog. } +{..............................................................................} +procedure TImportProjectParamsForm.ButtonCancelClick(Sender: TObject); +begin + Close; +end; + +{..............................................................................} +{ Event handler: Import button performs the actual import. } +{..............................................................................} +procedure TImportProjectParamsForm.ButtonOKClick(Sender: TObject); +var + FileName : String; + ImportNames : TStringList; + ImportValues : TStringList; + ProjNames : TStringList; + ProjValues : TStringList; + i, idx : Integer; + updatedCount : Integer; + addedCount : Integer; + msg : String; +begin + FileName := Trim(EditFile.Text); + if FileName = '' then + begin + ShowMessage('Please enter the path and file name of the CSV file to import.'); + Exit; + end; + + if not FileExists(FileName) then + begin + ShowMessage('The specified file was not found:' + #13#10 + FileName); + Exit; + end; + + ImportNames := TStringList.Create; + ImportValues := TStringList.Create; + ProjNames := TStringList.Create; + ProjValues := TStringList.Create; + try + if not ReadCsvFile(FileName, ImportNames, ImportValues) then + begin + ShowMessage('Failed to read the file. Ensure it is a two-row delimited text file.' + #13#10 + + 'Row 1 = parameter names, row 2 = parameter values.'); + Exit; + end; + + if ImportNames.Count = 0 then + begin + ShowMessage('No parameters found in the file.' + #13#10 + + 'Row 1 must contain the parameter names and row 2 the parameter values.'); + Exit; + end; + + if not ReadProjectParameters(FocusedProject, ProjNames, ProjValues) then + begin + ShowMessage('Failed to read the current project parameters.'); + Exit; + end; + + { Merge imported values into the project parameters. } + updatedCount := 0; + addedCount := 0; + for i := 0 to ImportNames.Count - 1 do + begin + idx := FindNameCI(ProjNames, ImportNames[i]); + if idx >= 0 then + begin + ProjValues[idx] := ImportValues[i]; + updatedCount := updatedCount + 1; + end + else + begin + ProjNames.Add(ImportNames[i]); + ProjValues.Add(ImportValues[i]); + addedCount := addedCount + 1; + end; + end; + + if not WriteProjectFile(FocusedProject, ProjNames, ProjValues) then + begin + ShowMessage('Failed to write the updated project parameters to the project file.'); + Exit; + end; + + { NOTE: Do NOT call DoFileLoad here. Altium automatically notices the } + { project file changed on disk and reloads it. Explicitly reloading } + { (DoFileLoad) causes Altium to KEEP its old in-memory parameters and } + { re-add the on-disk ones, producing duplicates on the next run. } + { (This is the same finding documented in the XIA_Release_Manager } + { script in this repository.) } + + msg := 'Import complete.' + #13#10#13#10 + + 'Updated: ' + IntToStr(updatedCount) + #13#10 + + 'Added: ' + IntToStr(addedCount) + #13#10#13#10 + + 'Project parameters:' + #13#10; + for i := 0 to ProjNames.Count - 1 do + msg := msg + ' ' + ProjNames[i] + ' = ' + ProjValues[i] + #13#10; + + ShowMessage(msg); + Close; + finally + ImportNames.Free; + ImportValues.Free; + ProjNames.Free; + ProjValues.Free; + end; +end; + +{..............................................................................} +{ Entry point. Validates the focused project, then shows the import dialog. } +{..............................................................................} +procedure ImportProjectParametersFromCSV; +var + WS : IWorkspace; +begin + WS := GetWorkspace; + FocusedProject := WS.DM_FocusedProject; + + if FocusedProject = nil then + begin + ShowMessage('No project is currently focused.'); + Exit; + end; + + if AnsiUpperCase(ExtractFileExt(FocusedProject.DM_ProjectFileName)) <> '.PRJPCB' then + begin + ShowMessage('The focused project is not a PCB project (.PrjPcb).'); + Exit; + end; + + ImportProjectParamsForm.EditFile.Text := ''; + ImportProjectParamsForm.ShowModal; +end; diff --git a/ImportProjectParametersFromCSV/README.md b/ImportProjectParametersFromCSV/README.md new file mode 100644 index 00000000..07f5ce4f --- /dev/null +++ b/ImportProjectParametersFromCSV/README.md @@ -0,0 +1,55 @@ +# ImportProjectParametersFromCSV + +Imports project parameters into the currently focused PCB project (`.PrjPcb`) +from a simple two-row, comma-delimited text file (`.txt` / `.csv`). + +> **Why not read Excel directly?** +> Altium's DelphiScript engine does **not** support COM/OLE automation +> (`CreateOleObject` is an "Undeclared identifier"). So Excel/Access files must +> be converted to the CSV format first + +## CSV file layout + +Two rows: + +- **Row 1** – parameter names (headers). Must match the parameter names used in the project. +- **Row 2** – the corresponding parameter values. + +Example (`params.csv`): + +```csv +Title,Author,Revision,ApprovedBy +My Board,"J. Smith",B,"A. Jones" +``` + +Fields containing commas can be quoted with double quotes (`"J. Smith, Jr."`). + +## What the Altium script does + +1. Prompts for the path and file name of the CSV file (Browse button or type it in). +2. Reads row 1 (names) and row 2 (values). +3. Reads the current project parameters from the focused `.PrjPcb` project file. +4. For each CSV header: + - if the parameter already exists, its value is **updated**; + - if it does not exist, the parameter is **added**. +5. Writes the merged parameters back and reloads the project file. + +## Requirements + +- Altium Designer (DelphiScript). +- A PCB project (`.PrjPcb`) must be focused when the script is run. + +## Running the Altium script + +1. Open `ImportProjectParametersFromCSV.PrjScr` in Altium Designer. +2. Focus the PCB project you want to update. +3. Run the `ImportProjectParametersFromCSV` procedure (File » Run Script). + +## Notes / limitations + +- Project-level parameters cannot be added/updated through the standard + DelphiScript API, so the script edits the `.PrjPcb` file directly (the same + approach used by the `XIA_Release_Manager` script) and reloads it. +- The `[Parameter…]` section of the project file is rewritten; the rest of the + file is preserved unchanged. +- Test on a copy of a project first. From 9c4c3cd74b2e17f89eb947b06dfc4e51d389278d Mon Sep 17 00:00:00 2001 From: "ig.zawitaj" Date: Thu, 20 Aug 2026 13:02:37 +0200 Subject: [PATCH 2/5] --- .../ImportProjectParametersFromCSV.PrjScr | 1084 ++++++++++++++++- 1 file changed, 1071 insertions(+), 13 deletions(-) diff --git a/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.PrjScr b/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.PrjScr index f6d60ef6..f3915735 100644 --- a/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.PrjScr +++ b/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.PrjScr @@ -1,12 +1,8 @@ -[Design] +[Design] Version=1.0 HierarchyMode=0 ChannelRoomNamingStyle=0 -OutputPath= -LogFolderPath= ReleasesFolder= -ReleaseVaultGUID= -ReleaseVaultName= ChannelDesignatorFormatString=$Component_$RoomName ChannelRoomLevelSeperator=_ OpenOutputs=1 @@ -20,15 +16,40 @@ AllowPortNetNames=0 AllowSheetEntryNetNames=1 AppendSheetNumberToLocalNets=0 NetlistSinglePinNets=0 -DefaultConfiguration= +DefaultConfiguration=Default - All Constraints UserID=0xFFFFFFFF DefaultPcbProtel=1 DefaultPcbPcad=0 ReorderDocumentsOnCompile=1 NameNetsHierarchically=0 PowerPortNamesTakePriority=0 +AutoSheetNumbering=0 +NewIndexingOfSheetSymbols=1 PushECOToAnnotationFile=1 DItemRevisionGUID= +ReportSuppressedErrorsInMessages=0 +FSMCodingStyle=eFMSDropDownList_OneProcess +FSMEncodingStyle=eFMSDropDownList_OneHot +IsProjectConflictPreventionWarningsEnabled=1 +ConstraintManagerFlow=0 +IsVirtualBomDocumentRemoved=0 +OutputPath= +LogFolderPath= +ManagedProjectGUID=95EDD5C7-392F-461A-BCC4-CAFF30621BCD +VaultGUID=087038B0-FC6A-44C6-93AF-D35B5E3FF4BA +ReleaseVaultName=Altium Vault +ItemGUID=95EDD5C7-392F-461A-BCC4-CAFF30621BCD +IncludeDesignInRelease=0 +CrossRefSheetStyle=1 +CrossRefLocationStyle=1 +CrossRefPorts=3 +CrossRefCrossSheets=1 +CrossRefSheetEntries=0 +CrossRefFollowFromMainSettings=1 + +[Preferences] +PrefsVaultGUID= +PrefsRevisionGUID= [Document1] DocumentPath=ImportProjectParametersFromCSV.dfm @@ -45,6 +66,7 @@ ClassGenCCAutoRoomEnabled=1 ClassGenNCAutoScope=None DItemRevisionGUID= GenerateClassCluster=0 +DocumentUniqueId= [Document2] DocumentPath=ImportProjectParametersFromCSV.pas @@ -61,13 +83,1049 @@ ClassGenCCAutoRoomEnabled=1 ClassGenNCAutoScope=None DItemRevisionGUID= GenerateClassCluster=0 - -[PCBConfiguration1] -ReleaseItemId= -CurrentRevision= -Name=Default Configuration -Variant=[No Variations] -GenerateBOM=0 +DocumentUniqueId= [Generic_ScriptingSystem] StartProcName=ImportProjectParametersFromCSV.pas>ImportProjectParametersFromCSV + +[OutputGroup1] +Name=Netlist Outputs +Description= +TargetPrinter=\\THYONE\B&W VersaLink C7020 +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=TangoNetlist +OutputName18=Tango Netlist +OutputDocumentPath18= +OutputVariantName18= +OutputDefault18=0 +OutputType19=TelesisNetlist +OutputName19=Telesis Netlist +OutputDocumentPath19= +OutputVariantName19= +OutputDefault19=0 +OutputType20=WireListNetlist +OutputName20=WireList Netlist +OutputDocumentPath20= +OutputVariantName20= +OutputDefault20=0 +OutputType21=XSpiceNetlist +OutputName21=Mixed Sim Netlist +OutputDocumentPath21= +OutputVariantName21= +OutputDefault21=0 + +[OutputGroup2] +Name=Simulator Outputs +Description= +TargetPrinter=\\THYONE\B&W VersaLink C7020 +PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1 +OutputType1=AdvSimNetlist +OutputName1=Mixed Sim +OutputDocumentPath1= +OutputVariantName1= +OutputDefault1=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=[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=A4|PaperIndex=9 +OutputType2=Harness Layout Drawing Print +OutputName2=Harness Layout Drawing 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=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 +OutputType3=Harness Wiring Diagram Print +OutputName3=Harness Wiring Diagram 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=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 +OutputType4=PCB 3D Print +OutputName4=PCB 3D Print +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=A4|PaperIndex=9 +OutputType5=PCB 3D Video +OutputName5=PCB 3D Video +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=A4|PaperIndex=9 +OutputType6=PCB Print +OutputName6=PCB Prints +OutputDocumentPath6= +OutputVariantName6=[No Variations] +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=A4|PaperIndex=9 +OutputType7=PCBDrawing +OutputName7=Draftsman +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=A4|PaperIndex=9 +OutputType8=PCBLIB Print +OutputName8=PCBLIB Prints +OutputDocumentPath8= +OutputVariantName8=[No Variations] +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=A4|PaperIndex=9 +OutputType9=PDF3D +OutputName9=PDF3D +OutputDocumentPath9= +OutputVariantName9=[No Variations] +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=A4|PaperIndex=9 +OutputType10=PDF3D MBA +OutputName10=PDF3D MBA +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=A4|PaperIndex=9 +OutputType11=Report Print +OutputName11=Report 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=A4|PaperIndex=9 +OutputType12=Schematic Print +OutputName12=Schematic 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=A4|PaperIndex=9 +OutputType13=SimView Print +OutputName13=SimView 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=A4|PaperIndex=9 + +[OutputGroup4] +Name=Assembly Outputs +Description= +TargetPrinter=\\THYONE\B&W VersaLink C7020 +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=A4|PaperIndex=9 +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 +OutputType4=Wire Bonding Table +OutputName4=Wire Bonding Table Report +OutputDocumentPath4= +OutputVariantName4=[No Variations] +OutputDefault4=0 + +[OutputGroup5] +Name=Fabrication Outputs +Description= +TargetPrinter=\\THYONE\B&W VersaLink C7020 +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=A4|PaperIndex=9 +OutputType2=CompositeDrill +OutputName2=Composite Drill Drawing +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=A4|PaperIndex=9 +OutputType3=Drill +OutputName3=Drill Drawing/Guides +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=A4|PaperIndex=9 +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=A4|PaperIndex=9 +OutputType5=Gerber +OutputName5=Gerber Files +OutputDocumentPath5= +OutputVariantName5=[No Variations] +OutputDefault5=0 +OutputType6=Gerber X2 +OutputName6=Gerber X2 Files +OutputDocumentPath6= +OutputVariantName6=[No Variations] +OutputDefault6=0 +OutputType7=IPC2581 +OutputName7=IPC-2581 Files +OutputDocumentPath7= +OutputVariantName7=[No Variations] +OutputDefault7=0 +OutputType8=Mask +OutputName8=Solder/Paste Mask Prints +OutputDocumentPath8= +OutputVariantName8=[No Variations] +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=A4|PaperIndex=9 +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=[No Variations] +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=A4|PaperIndex=9 +OutputType12=Test Points +OutputName12=Test Point Report +OutputDocumentPath12= +OutputVariantName12= +OutputDefault12=0 + +[OutputGroup6] +Name=Report Outputs +Description= +TargetPrinter=\\THYONE\B&W VersaLink C7020 +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=A4|PaperIndex=9 +OutputType2=BOM_ReportCompare +OutputName2=BOM Compare +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=A4|PaperIndex=9 +OutputType3=BOM_ReportManufacturing +OutputName3=Manufacturing Data +OutputDocumentPath3= +OutputVariantName3=[No Variations] +OutputDefault3=0 +OutputType4=ComponentCrossReference +OutputName4=Component Cross Reference Report +OutputDocumentPath4= +OutputVariantName4=[No Variations] +OutputDefault4=0 +OutputType5=Export Comments +OutputName5=Export Comments +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=A4|PaperIndex=9 +OutputType6=Project History +OutputName6=Project History +OutputDocumentPath6= +OutputVariantName6=[No Variations] +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=A4|PaperIndex=9 +OutputType7=ReportHierarchy +OutputName7=Report Project Hierarchy +OutputDocumentPath7= +OutputVariantName7=[No Variations] +OutputDefault7=0 +OutputType8=Script +OutputName8=Script Output +OutputDocumentPath8= +OutputVariantName8=[No Variations] +OutputDefault8=0 +OutputType9=SimpleBOM +OutputName9=Simple BOM +OutputDocumentPath9= +OutputVariantName9=[No Variations] +OutputDefault9=0 +OutputType10=SinglePinNetReporter +OutputName10=Report Single Pin Nets +OutputDocumentPath10= +OutputVariantName10=[No Variations] +OutputDefault10=0 + +[OutputGroup7] +Name=Other Outputs +Description= +TargetPrinter=\\THYONE\B&W VersaLink C7020 +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=A4|PaperIndex=9 + +[OutputGroup8] +Name=Validation Outputs +Description= +TargetPrinter=\\THYONE\B&W VersaLink C7020 +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=A4|PaperIndex=9 +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=A4|PaperIndex=9 +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=A4|PaperIndex=9 +OutputType7=Footprint Comparison Report +OutputName7=Footprint Comparison Report +OutputDocumentPath7= +OutputVariantName7= +OutputDefault7=0 + +[OutputGroup9] +Name=Export Outputs +Description= +TargetPrinter=\\THYONE\B&W VersaLink C7020 +PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1 +OutputType1=Ansoft Neutral +OutputName1=Ansoft Neutral (AutoPCB) +OutputDocumentPath1= +OutputVariantName1= +OutputDefault1=0 +OutputType2=AutoCAD dwg/dxf PCB +OutputName2=AutoCAD dwg/dxf File PCB +OutputDocumentPath2= +OutputVariantName2= +OutputDefault2=0 +OutputType3=AutoCAD dwg/dxf Schematic +OutputName3=AutoCAD dwg/dxf File Schematic +OutputDocumentPath3= +OutputVariantName3= +OutputDefault3=0 +OutputType4=ExportIDF +OutputName4=Export IDF +OutputDocumentPath4= +OutputVariantName4= +OutputDefault4=0 +OutputType5=ExportPARASOLID +OutputName5=Export PARASOLID +OutputDocumentPath5= +OutputVariantName5=[No Variations] +OutputDefault5=0 +OutputType6=ExportSTEP +OutputName6=Export STEP +OutputDocumentPath6= +OutputVariantName6=[No Variations] +OutputDefault6=0 +OutputType7=ExportVRML +OutputName7=Export VRML +OutputDocumentPath7= +OutputVariantName7=[No Variations] +OutputDefault7=0 +OutputType8=HyperLynx +OutputName8=HyperLynx (AutoPCB) +OutputDocumentPath8= +OutputVariantName8= +OutputDefault8=0 +OutputType9=MathWorks +OutputName9=MathWorks (AutoPCB) +OutputDocumentPath9= +OutputVariantName9= +OutputDefault9=0 +OutputType10=MBAExportPARASOLID +OutputName10=Export PARASOLID +OutputDocumentPath10= +OutputVariantName10= +OutputDefault10=0 +OutputType11=MBAExportSTEP +OutputName11=Export STEP +OutputDocumentPath11= +OutputVariantName11= +OutputDefault11=0 +OutputType12=Orcad v7 Capture Design +OutputName12=Orcad v7 Capture Design (AutoSCH) +OutputDocumentPath12= +OutputVariantName12= +OutputDefault12=0 +OutputType13=P-CAD ASCII +OutputName13=P-CAD ASCII (AutoPCB) +OutputDocumentPath13= +OutputVariantName13= +OutputDefault13=0 +OutputType14=P-CAD V16 Schematic Design +OutputName14=P-CAD V16 Schematic Design (AutoSCH) +OutputDocumentPath14= +OutputVariantName14= +OutputDefault14=0 +OutputType15=Save As/Export PCB +OutputName15=Save As/Export PCB +OutputDocumentPath15= +OutputVariantName15= +OutputDefault15=0 +OutputType16=Save As/Export Schematic +OutputName16=Save As/Export Schematic +OutputDocumentPath16= +OutputVariantName16= +OutputDefault16=0 +OutputType17=Specctra Design PCB +OutputName17=Specctra Design PCB +OutputDocumentPath17= +OutputVariantName17= +OutputDefault17=0 +OutputType18=Web ReviewOutputName +OutputName18=Web Review Data +OutputDocumentPath18= +OutputVariantName18= +OutputDefault18=0 + +[OutputGroup10] +Name=PostProcess Outputs +Description= +TargetPrinter=\\THYONE\B&W VersaLink C7020 +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 +Type120=1 +Type121=1 +Type122=1 +Type123=1 +Type124=1 +Type125=1 +Type126=1 +Type127=1 +Type128=1 +Type129=1 +Type130=1 +Type131=1 +Type132=1 +Type133=1 +Type134=1 +Type135=1 +Type136=1 +Type137=1 +Type138=1 +Type139=1 +Type140=1 +Type141=1 +Type142=1 +Type143=1 +Type144=1 +Type145=1 +Type146=1 +Type147=1 +Type148=1 +Type149=1 +Type150=1 +Type151=1 +Type152=1 +Type153=1 +Type154=1 +Type155=1 +Type156=1 +Type157=1 +Type158=1 +Type159=1 +Type160=1 +Type161=1 +Type162=1 +Type163=1 +Type164=1 +Type165=1 +Type166=1 +Type167=1 +Type168=1 +Type169=1 +Type170=1 +Type171=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 +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 + +[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=2 +Type13=2 +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=0 +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=0 +AlternateItemFail=3 +Type122=2 +Type123=1 +Type124=1 +Type125=1 +Type126=1 +Type127=1 +Type128=2 +Type129=2 +Type130=2 +Type131=2 +Type132=2 +Type133=2 +Type134=2 +Type135=2 +Type136=2 +Type137=2 +Type138=1 +Type139=1 +Type140=1 +Type141=1 +Type142=1 +Type143=1 +Type144=1 +Type145=1 +Type146=1 +Type147=2 +Type148=2 +Type149=2 +Type150=2 +Type151=2 +Type152=1 +Type153=1 +Type154=0 +Type155=0 +Type156=0 +Type157=0 +Type158=0 +Type159=0 +Type160=0 +Type161=0 +Type162=1 +Type163=1 +Type164=1 +Type165=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=0 +NetClassSeparateForBusSections=0 + +[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 + +[Comparison Options] +ComparisonOptions0=Kind=Net|MinPercent=75|MinMatch=3|ShowMatch=0|UseName=-1|InclAllRules=0 +ComparisonOptions1=Kind=Net Class|MinPercent=75|MinMatch=3|ShowMatch=0|UseName=-1|InclAllRules=0 +ComparisonOptions2=Kind=Component Class|MinPercent=75|MinMatch=3|ShowMatch=0|UseName=-1|InclAllRules=0 +ComparisonOptions3=Kind=Rule|MinPercent=75|MinMatch=3|ShowMatch=0|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=0|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=A4|PaperIndex=9 + From ca1569136ddca5885a271cc6f23d5263c6370bed Mon Sep 17 00:00:00 2001 From: "ig.zawitaj" Date: Thu, 20 Aug 2026 14:15:41 +0200 Subject: [PATCH 3/5] (auto) --- .../ImportProjectParametersFromCSV.PrjScr | 1131 ----------------- 1 file changed, 1131 deletions(-) delete mode 100644 ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.PrjScr diff --git a/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.PrjScr b/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.PrjScr deleted file mode 100644 index f3915735..00000000 --- a/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.PrjScr +++ /dev/null @@ -1,1131 +0,0 @@ -[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 -AutoSheetNumbering=0 -NewIndexingOfSheetSymbols=1 -PushECOToAnnotationFile=1 -DItemRevisionGUID= -ReportSuppressedErrorsInMessages=0 -FSMCodingStyle=eFMSDropDownList_OneProcess -FSMEncodingStyle=eFMSDropDownList_OneHot -IsProjectConflictPreventionWarningsEnabled=1 -ConstraintManagerFlow=0 -IsVirtualBomDocumentRemoved=0 -OutputPath= -LogFolderPath= -ManagedProjectGUID=95EDD5C7-392F-461A-BCC4-CAFF30621BCD -VaultGUID=087038B0-FC6A-44C6-93AF-D35B5E3FF4BA -ReleaseVaultName=Altium Vault -ItemGUID=95EDD5C7-392F-461A-BCC4-CAFF30621BCD -IncludeDesignInRelease=0 -CrossRefSheetStyle=1 -CrossRefLocationStyle=1 -CrossRefPorts=3 -CrossRefCrossSheets=1 -CrossRefSheetEntries=0 -CrossRefFollowFromMainSettings=1 - -[Preferences] -PrefsVaultGUID= -PrefsRevisionGUID= - -[Document1] -DocumentPath=ImportProjectParametersFromCSV.dfm -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=ImportProjectParametersFromCSV.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=ImportProjectParametersFromCSV.pas>ImportProjectParametersFromCSV - -[OutputGroup1] -Name=Netlist Outputs -Description= -TargetPrinter=\\THYONE\B&W VersaLink C7020 -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=TangoNetlist -OutputName18=Tango Netlist -OutputDocumentPath18= -OutputVariantName18= -OutputDefault18=0 -OutputType19=TelesisNetlist -OutputName19=Telesis Netlist -OutputDocumentPath19= -OutputVariantName19= -OutputDefault19=0 -OutputType20=WireListNetlist -OutputName20=WireList Netlist -OutputDocumentPath20= -OutputVariantName20= -OutputDefault20=0 -OutputType21=XSpiceNetlist -OutputName21=Mixed Sim Netlist -OutputDocumentPath21= -OutputVariantName21= -OutputDefault21=0 - -[OutputGroup2] -Name=Simulator Outputs -Description= -TargetPrinter=\\THYONE\B&W VersaLink C7020 -PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1 -OutputType1=AdvSimNetlist -OutputName1=Mixed Sim -OutputDocumentPath1= -OutputVariantName1= -OutputDefault1=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=[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=A4|PaperIndex=9 -OutputType2=Harness Layout Drawing Print -OutputName2=Harness Layout Drawing 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=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType3=Harness Wiring Diagram Print -OutputName3=Harness Wiring Diagram 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=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType4=PCB 3D Print -OutputName4=PCB 3D Print -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=A4|PaperIndex=9 -OutputType5=PCB 3D Video -OutputName5=PCB 3D Video -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=A4|PaperIndex=9 -OutputType6=PCB Print -OutputName6=PCB Prints -OutputDocumentPath6= -OutputVariantName6=[No Variations] -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=A4|PaperIndex=9 -OutputType7=PCBDrawing -OutputName7=Draftsman -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=A4|PaperIndex=9 -OutputType8=PCBLIB Print -OutputName8=PCBLIB Prints -OutputDocumentPath8= -OutputVariantName8=[No Variations] -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=A4|PaperIndex=9 -OutputType9=PDF3D -OutputName9=PDF3D -OutputDocumentPath9= -OutputVariantName9=[No Variations] -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=A4|PaperIndex=9 -OutputType10=PDF3D MBA -OutputName10=PDF3D MBA -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=A4|PaperIndex=9 -OutputType11=Report Print -OutputName11=Report 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=A4|PaperIndex=9 -OutputType12=Schematic Print -OutputName12=Schematic 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=A4|PaperIndex=9 -OutputType13=SimView Print -OutputName13=SimView 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=A4|PaperIndex=9 - -[OutputGroup4] -Name=Assembly Outputs -Description= -TargetPrinter=\\THYONE\B&W VersaLink C7020 -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=A4|PaperIndex=9 -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 -OutputType4=Wire Bonding Table -OutputName4=Wire Bonding Table Report -OutputDocumentPath4= -OutputVariantName4=[No Variations] -OutputDefault4=0 - -[OutputGroup5] -Name=Fabrication Outputs -Description= -TargetPrinter=\\THYONE\B&W VersaLink C7020 -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=A4|PaperIndex=9 -OutputType2=CompositeDrill -OutputName2=Composite Drill Drawing -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=A4|PaperIndex=9 -OutputType3=Drill -OutputName3=Drill Drawing/Guides -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=A4|PaperIndex=9 -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=A4|PaperIndex=9 -OutputType5=Gerber -OutputName5=Gerber Files -OutputDocumentPath5= -OutputVariantName5=[No Variations] -OutputDefault5=0 -OutputType6=Gerber X2 -OutputName6=Gerber X2 Files -OutputDocumentPath6= -OutputVariantName6=[No Variations] -OutputDefault6=0 -OutputType7=IPC2581 -OutputName7=IPC-2581 Files -OutputDocumentPath7= -OutputVariantName7=[No Variations] -OutputDefault7=0 -OutputType8=Mask -OutputName8=Solder/Paste Mask Prints -OutputDocumentPath8= -OutputVariantName8=[No Variations] -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=A4|PaperIndex=9 -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=[No Variations] -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=A4|PaperIndex=9 -OutputType12=Test Points -OutputName12=Test Point Report -OutputDocumentPath12= -OutputVariantName12= -OutputDefault12=0 - -[OutputGroup6] -Name=Report Outputs -Description= -TargetPrinter=\\THYONE\B&W VersaLink C7020 -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=A4|PaperIndex=9 -OutputType2=BOM_ReportCompare -OutputName2=BOM Compare -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=A4|PaperIndex=9 -OutputType3=BOM_ReportManufacturing -OutputName3=Manufacturing Data -OutputDocumentPath3= -OutputVariantName3=[No Variations] -OutputDefault3=0 -OutputType4=ComponentCrossReference -OutputName4=Component Cross Reference Report -OutputDocumentPath4= -OutputVariantName4=[No Variations] -OutputDefault4=0 -OutputType5=Export Comments -OutputName5=Export Comments -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=A4|PaperIndex=9 -OutputType6=Project History -OutputName6=Project History -OutputDocumentPath6= -OutputVariantName6=[No Variations] -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=A4|PaperIndex=9 -OutputType7=ReportHierarchy -OutputName7=Report Project Hierarchy -OutputDocumentPath7= -OutputVariantName7=[No Variations] -OutputDefault7=0 -OutputType8=Script -OutputName8=Script Output -OutputDocumentPath8= -OutputVariantName8=[No Variations] -OutputDefault8=0 -OutputType9=SimpleBOM -OutputName9=Simple BOM -OutputDocumentPath9= -OutputVariantName9=[No Variations] -OutputDefault9=0 -OutputType10=SinglePinNetReporter -OutputName10=Report Single Pin Nets -OutputDocumentPath10= -OutputVariantName10=[No Variations] -OutputDefault10=0 - -[OutputGroup7] -Name=Other Outputs -Description= -TargetPrinter=\\THYONE\B&W VersaLink C7020 -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=A4|PaperIndex=9 - -[OutputGroup8] -Name=Validation Outputs -Description= -TargetPrinter=\\THYONE\B&W VersaLink C7020 -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=A4|PaperIndex=9 -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=A4|PaperIndex=9 -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=A4|PaperIndex=9 -OutputType7=Footprint Comparison Report -OutputName7=Footprint Comparison Report -OutputDocumentPath7= -OutputVariantName7= -OutputDefault7=0 - -[OutputGroup9] -Name=Export Outputs -Description= -TargetPrinter=\\THYONE\B&W VersaLink C7020 -PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1 -OutputType1=Ansoft Neutral -OutputName1=Ansoft Neutral (AutoPCB) -OutputDocumentPath1= -OutputVariantName1= -OutputDefault1=0 -OutputType2=AutoCAD dwg/dxf PCB -OutputName2=AutoCAD dwg/dxf File PCB -OutputDocumentPath2= -OutputVariantName2= -OutputDefault2=0 -OutputType3=AutoCAD dwg/dxf Schematic -OutputName3=AutoCAD dwg/dxf File Schematic -OutputDocumentPath3= -OutputVariantName3= -OutputDefault3=0 -OutputType4=ExportIDF -OutputName4=Export IDF -OutputDocumentPath4= -OutputVariantName4= -OutputDefault4=0 -OutputType5=ExportPARASOLID -OutputName5=Export PARASOLID -OutputDocumentPath5= -OutputVariantName5=[No Variations] -OutputDefault5=0 -OutputType6=ExportSTEP -OutputName6=Export STEP -OutputDocumentPath6= -OutputVariantName6=[No Variations] -OutputDefault6=0 -OutputType7=ExportVRML -OutputName7=Export VRML -OutputDocumentPath7= -OutputVariantName7=[No Variations] -OutputDefault7=0 -OutputType8=HyperLynx -OutputName8=HyperLynx (AutoPCB) -OutputDocumentPath8= -OutputVariantName8= -OutputDefault8=0 -OutputType9=MathWorks -OutputName9=MathWorks (AutoPCB) -OutputDocumentPath9= -OutputVariantName9= -OutputDefault9=0 -OutputType10=MBAExportPARASOLID -OutputName10=Export PARASOLID -OutputDocumentPath10= -OutputVariantName10= -OutputDefault10=0 -OutputType11=MBAExportSTEP -OutputName11=Export STEP -OutputDocumentPath11= -OutputVariantName11= -OutputDefault11=0 -OutputType12=Orcad v7 Capture Design -OutputName12=Orcad v7 Capture Design (AutoSCH) -OutputDocumentPath12= -OutputVariantName12= -OutputDefault12=0 -OutputType13=P-CAD ASCII -OutputName13=P-CAD ASCII (AutoPCB) -OutputDocumentPath13= -OutputVariantName13= -OutputDefault13=0 -OutputType14=P-CAD V16 Schematic Design -OutputName14=P-CAD V16 Schematic Design (AutoSCH) -OutputDocumentPath14= -OutputVariantName14= -OutputDefault14=0 -OutputType15=Save As/Export PCB -OutputName15=Save As/Export PCB -OutputDocumentPath15= -OutputVariantName15= -OutputDefault15=0 -OutputType16=Save As/Export Schematic -OutputName16=Save As/Export Schematic -OutputDocumentPath16= -OutputVariantName16= -OutputDefault16=0 -OutputType17=Specctra Design PCB -OutputName17=Specctra Design PCB -OutputDocumentPath17= -OutputVariantName17= -OutputDefault17=0 -OutputType18=Web ReviewOutputName -OutputName18=Web Review Data -OutputDocumentPath18= -OutputVariantName18= -OutputDefault18=0 - -[OutputGroup10] -Name=PostProcess Outputs -Description= -TargetPrinter=\\THYONE\B&W VersaLink C7020 -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 -Type120=1 -Type121=1 -Type122=1 -Type123=1 -Type124=1 -Type125=1 -Type126=1 -Type127=1 -Type128=1 -Type129=1 -Type130=1 -Type131=1 -Type132=1 -Type133=1 -Type134=1 -Type135=1 -Type136=1 -Type137=1 -Type138=1 -Type139=1 -Type140=1 -Type141=1 -Type142=1 -Type143=1 -Type144=1 -Type145=1 -Type146=1 -Type147=1 -Type148=1 -Type149=1 -Type150=1 -Type151=1 -Type152=1 -Type153=1 -Type154=1 -Type155=1 -Type156=1 -Type157=1 -Type158=1 -Type159=1 -Type160=1 -Type161=1 -Type162=1 -Type163=1 -Type164=1 -Type165=1 -Type166=1 -Type167=1 -Type168=1 -Type169=1 -Type170=1 -Type171=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 -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 - -[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=2 -Type13=2 -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=0 -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=0 -AlternateItemFail=3 -Type122=2 -Type123=1 -Type124=1 -Type125=1 -Type126=1 -Type127=1 -Type128=2 -Type129=2 -Type130=2 -Type131=2 -Type132=2 -Type133=2 -Type134=2 -Type135=2 -Type136=2 -Type137=2 -Type138=1 -Type139=1 -Type140=1 -Type141=1 -Type142=1 -Type143=1 -Type144=1 -Type145=1 -Type146=1 -Type147=2 -Type148=2 -Type149=2 -Type150=2 -Type151=2 -Type152=1 -Type153=1 -Type154=0 -Type155=0 -Type156=0 -Type157=0 -Type158=0 -Type159=0 -Type160=0 -Type161=0 -Type162=1 -Type163=1 -Type164=1 -Type165=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=0 -NetClassSeparateForBusSections=0 - -[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 - -[Comparison Options] -ComparisonOptions0=Kind=Net|MinPercent=75|MinMatch=3|ShowMatch=0|UseName=-1|InclAllRules=0 -ComparisonOptions1=Kind=Net Class|MinPercent=75|MinMatch=3|ShowMatch=0|UseName=-1|InclAllRules=0 -ComparisonOptions2=Kind=Component Class|MinPercent=75|MinMatch=3|ShowMatch=0|UseName=-1|InclAllRules=0 -ComparisonOptions3=Kind=Rule|MinPercent=75|MinMatch=3|ShowMatch=0|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=0|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=A4|PaperIndex=9 - From 0ef6d3bd85f4a8a2ff1c80e526f28545166d6bc5 Mon Sep 17 00:00:00 2001 From: "ig.zawitaj" Date: Thu, 20 Aug 2026 14:15:46 +0200 Subject: [PATCH 4/5] --- .../ImportProjectParametersFromCSV.PrjScr | 1101 +++++++++++++++++ 1 file changed, 1101 insertions(+) create mode 100644 ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.PrjScr diff --git a/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.PrjScr b/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.PrjScr new file mode 100644 index 00000000..f18982d0 --- /dev/null +++ b/ImportProjectParametersFromCSV/ImportProjectParametersFromCSV.PrjScr @@ -0,0 +1,1101 @@ +[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 +AutoSheetNumbering=0 +NewIndexingOfSheetSymbols=1 +PushECOToAnnotationFile=1 +DItemRevisionGUID= +ReportSuppressedErrorsInMessages=0 +FSMCodingStyle=eFMSDropDownList_OneProcess +FSMEncodingStyle=eFMSDropDownList_OneHot +IsProjectConflictPreventionWarningsEnabled=1 +ConstraintManagerFlow=0 +IsVirtualBomDocumentRemoved=0 +OutputPath= +LogFolderPath= +ManagedProjectGUID=95EDD5C7-392F-461A-BCC4-CAFF30621BCD +VaultGUID=087038B0-FC6A-44C6-93AF-D35B5E3FF4BA +ReleaseVaultName=Altium Vault +ItemGUID=95EDD5C7-392F-461A-BCC4-CAFF30621BCD +IncludeDesignInRelease=0 +CrossRefSheetStyle=1 +CrossRefLocationStyle=1 +CrossRefPorts=3 +CrossRefCrossSheets=1 +CrossRefSheetEntries=0 +CrossRefFollowFromMainSettings=1 + +[Preferences] +PrefsVaultGUID= +PrefsRevisionGUID= + +[Document1] +DocumentPath=ImportProjectParametersFromCSV.dfm +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=ImportProjectParametersFromCSV.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=ImportProjectParametersFromCSV.pas>ImportProjectParametersFromCSV + +[OutputGroup1] +Name=Netlist Outputs +Description= +TargetPrinter=\\THYONE\B&W VersaLink C7020 +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=TangoNetlist +OutputName18=Tango Netlist +OutputDocumentPath18= +OutputVariantName18= +OutputDefault18=0 +OutputType19=TelesisNetlist +OutputName19=Telesis Netlist +OutputDocumentPath19= +OutputVariantName19= +OutputDefault19=0 +OutputType20=WireListNetlist +OutputName20=WireList Netlist +OutputDocumentPath20= +OutputVariantName20= +OutputDefault20=0 +OutputType21=XSpiceNetlist +OutputName21=Mixed Sim Netlist +OutputDocumentPath21= +OutputVariantName21= +OutputDefault21=0 + +[OutputGroup2] +Name=Simulator Outputs +Description= +TargetPrinter=\\THYONE\B&W VersaLink C7020 +PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1 +OutputType1=AdvSimNetlist +OutputName1=Mixed Sim +OutputDocumentPath1= +OutputVariantName1= +OutputDefault1=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=[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=A4|PaperIndex=9 +OutputType2=Harness Layout Drawing Print +OutputName2=Harness Layout Drawing 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=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 +OutputType3=Harness Wiring Diagram Print +OutputName3=Harness Wiring Diagram 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=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 +OutputType4=PCB 3D Print +OutputName4=PCB 3D Print +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=A4|PaperIndex=9 +OutputType5=PCB 3D Video +OutputName5=PCB 3D Video +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=A4|PaperIndex=9 +OutputType6=PCB Print +OutputName6=PCB Prints +OutputDocumentPath6= +OutputVariantName6=[No Variations] +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=A4|PaperIndex=9 +OutputType7=PCBDrawing +OutputName7=Draftsman +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=A4|PaperIndex=9 +OutputType8=PCBLIB Print +OutputName8=PCBLIB Prints +OutputDocumentPath8= +OutputVariantName8=[No Variations] +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=A4|PaperIndex=9 +OutputType9=PDF3D +OutputName9=PDF3D +OutputDocumentPath9= +OutputVariantName9=[No Variations] +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=A4|PaperIndex=9 +OutputType10=PDF3D MBA +OutputName10=PDF3D MBA +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=A4|PaperIndex=9 +OutputType11=Report Print +OutputName11=Report 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=A4|PaperIndex=9 +OutputType12=Schematic Print +OutputName12=Schematic 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=A4|PaperIndex=9 +OutputType13=SimView Print +OutputName13=SimView 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=A4|PaperIndex=9 + +[OutputGroup4] +Name=Assembly Outputs +Description= +TargetPrinter=\\THYONE\B&W VersaLink C7020 +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=A4|PaperIndex=9 +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 +OutputType4=Wire Bonding Table +OutputName4=Wire Bonding Table Report +OutputDocumentPath4= +OutputVariantName4=[No Variations] +OutputDefault4=0 + +[OutputGroup5] +Name=Fabrication Outputs +Description= +TargetPrinter=\\THYONE\B&W VersaLink C7020 +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=A4|PaperIndex=9 +OutputType2=CompositeDrill +OutputName2=Composite Drill Drawing +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=A4|PaperIndex=9 +OutputType3=Drill +OutputName3=Drill Drawing/Guides +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=A4|PaperIndex=9 +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=A4|PaperIndex=9 +OutputType5=Gerber +OutputName5=Gerber Files +OutputDocumentPath5= +OutputVariantName5=[No Variations] +OutputDefault5=0 +OutputType6=Gerber X2 +OutputName6=Gerber X2 Files +OutputDocumentPath6= +OutputVariantName6=[No Variations] +OutputDefault6=0 +OutputType7=IPC2581 +OutputName7=IPC-2581 Files +OutputDocumentPath7= +OutputVariantName7=[No Variations] +OutputDefault7=0 +OutputType8=Mask +OutputName8=Solder/Paste Mask Prints +OutputDocumentPath8= +OutputVariantName8=[No Variations] +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=A4|PaperIndex=9 +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=[No Variations] +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=A4|PaperIndex=9 +OutputType12=Test Points +OutputName12=Test Point Report +OutputDocumentPath12= +OutputVariantName12= +OutputDefault12=0 + +[OutputGroup6] +Name=Report Outputs +Description= +TargetPrinter=\\THYONE\B&W VersaLink C7020 +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=A4|PaperIndex=9 +OutputType2=BOM_ReportCompare +OutputName2=BOM Compare +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=A4|PaperIndex=9 +OutputType3=BOM_ReportManufacturing +OutputName3=Manufacturing Data +OutputDocumentPath3= +OutputVariantName3=[No Variations] +OutputDefault3=0 +OutputType4=ComponentCrossReference +OutputName4=Component Cross Reference Report +OutputDocumentPath4= +OutputVariantName4=[No Variations] +OutputDefault4=0 +OutputType5=Export Comments +OutputName5=Export Comments +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=A4|PaperIndex=9 +OutputType6=Project History +OutputName6=Project History +OutputDocumentPath6= +OutputVariantName6=[No Variations] +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=A4|PaperIndex=9 +OutputType7=ReportHierarchy +OutputName7=Report Project Hierarchy +OutputDocumentPath7= +OutputVariantName7=[No Variations] +OutputDefault7=0 +OutputType8=Script +OutputName8=Script Output +OutputDocumentPath8= +OutputVariantName8=[No Variations] +OutputDefault8=0 +OutputType9=SimpleBOM +OutputName9=Simple BOM +OutputDocumentPath9= +OutputVariantName9=[No Variations] +OutputDefault9=0 +OutputType10=SinglePinNetReporter +OutputName10=Report Single Pin Nets +OutputDocumentPath10= +OutputVariantName10=[No Variations] +OutputDefault10=0 + +[OutputGroup7] +Name=Other Outputs +Description= +TargetPrinter=\\THYONE\B&W VersaLink C7020 +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=A4|PaperIndex=9 + +[OutputGroup8] +Name=Validation Outputs +Description= +TargetPrinter=\\THYONE\B&W VersaLink C7020 +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=A4|PaperIndex=9 +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=A4|PaperIndex=9 +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=A4|PaperIndex=9 +OutputType7=Footprint Comparison Report +OutputName7=Footprint Comparison Report +OutputDocumentPath7= +OutputVariantName7= +OutputDefault7=0 + +[OutputGroup9] +Name=Export Outputs +Description= +TargetPrinter=\\THYONE\B&W VersaLink C7020 +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 +OutputType12=Web ReviewOutputName +OutputName12=Web Review Data +OutputDocumentPath12= +OutputVariantName12= +OutputDefault12=0 + +[OutputGroup10] +Name=PostProcess Outputs +Description= +TargetPrinter=\\THYONE\B&W VersaLink C7020 +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 +Type120=1 +Type121=1 +Type122=1 +Type123=1 +Type124=1 +Type125=1 +Type126=1 +Type127=1 +Type128=1 +Type129=1 +Type130=1 +Type131=1 +Type132=1 +Type133=1 +Type134=1 +Type135=1 +Type136=1 +Type137=1 +Type138=1 +Type139=1 +Type140=1 +Type141=1 +Type142=1 +Type143=1 +Type144=1 +Type145=1 +Type146=1 +Type147=1 +Type148=1 +Type149=1 +Type150=1 +Type151=1 +Type152=1 +Type153=1 +Type154=1 +Type155=1 +Type156=1 +Type157=1 +Type158=1 +Type159=1 +Type160=1 +Type161=1 +Type162=1 +Type163=1 +Type164=1 +Type165=1 +Type166=1 +Type167=1 +Type168=1 +Type169=1 +Type170=1 +Type171=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 +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 + +[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=2 +Type13=2 +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=0 +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=0 +AlternateItemFail=3 +Type122=2 +Type123=1 +Type124=1 +Type125=1 +Type126=1 +Type127=1 +Type128=2 +Type129=2 +Type130=2 +Type131=2 +Type132=2 +Type133=2 +Type134=2 +Type135=2 +Type136=2 +Type137=2 +Type138=1 +Type139=1 +Type140=1 +Type141=1 +Type142=1 +Type143=1 +Type144=1 +Type145=1 +Type146=1 +Type147=2 +Type148=2 +Type149=2 +Type150=2 +Type151=2 +Type152=1 +Type153=1 +Type154=0 +Type155=0 +Type156=0 +Type157=0 +Type158=0 +Type159=0 +Type160=0 +Type161=0 +Type162=1 +Type163=1 +Type164=1 +Type165=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=0 +NetClassSeparateForBusSections=0 + +[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 + +[Comparison Options] +ComparisonOptions0=Kind=Net|MinPercent=75|MinMatch=3|ShowMatch=0|UseName=-1|InclAllRules=0 +ComparisonOptions1=Kind=Net Class|MinPercent=75|MinMatch=3|ShowMatch=0|UseName=-1|InclAllRules=0 +ComparisonOptions2=Kind=Component Class|MinPercent=75|MinMatch=3|ShowMatch=0|UseName=-1|InclAllRules=0 +ComparisonOptions3=Kind=Rule|MinPercent=75|MinMatch=3|ShowMatch=0|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=0|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=A4|PaperIndex=9 + From b2db6d43f3b8386aa7a0244379291ff931f1c658 Mon Sep 17 00:00:00 2001 From: "ig.zawitaj" Date: Fri, 21 Aug 2026 15:49:26 +0200 Subject: [PATCH 5/5] Add ImportVariantParametersFromCSV script --- .../ImportVariantParametersFromCSV.PrjScr | 73 ++ .../ImportVariantParametersFromCSV.dfm | 91 ++ .../ImportVariantParametersFromCSV.pas | 939 ++++++++++++++++++ ImportVariantParametersFromCSV/README.md | 53 + 4 files changed, 1156 insertions(+) create mode 100644 ImportVariantParametersFromCSV/ImportVariantParametersFromCSV.PrjScr create mode 100644 ImportVariantParametersFromCSV/ImportVariantParametersFromCSV.dfm create mode 100644 ImportVariantParametersFromCSV/ImportVariantParametersFromCSV.pas create mode 100644 ImportVariantParametersFromCSV/README.md diff --git a/ImportVariantParametersFromCSV/ImportVariantParametersFromCSV.PrjScr b/ImportVariantParametersFromCSV/ImportVariantParametersFromCSV.PrjScr new file mode 100644 index 00000000..fa3d6b95 --- /dev/null +++ b/ImportVariantParametersFromCSV/ImportVariantParametersFromCSV.PrjScr @@ -0,0 +1,73 @@ +[Design] +Version=1.0 +HierarchyMode=0 +ChannelRoomNamingStyle=0 +OutputPath= +LogFolderPath= +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= +UserID=0xFFFFFFFF +DefaultPcbProtel=1 +DefaultPcbPcad=0 +ReorderDocumentsOnCompile=1 +NameNetsHierarchically=0 +PowerPortNamesTakePriority=0 +PushECOToAnnotationFile=1 +DItemRevisionGUID= + +[Document1] +DocumentPath=ImportVariantParametersFromCSV.dfm +AnnotationEnabled=1 +AnnotateStartValue=1 +AnnotationIndexControlEnabled=0 +AnnotateSuffix= +AnnotateScope=All +AnnotateOrder=-1 +DoLibraryUpdate=1 +DoDatabaseUpdate=1 +ClassGenCCAutoEnabled=1 +ClassGenCCAutoRoomEnabled=1 +ClassGenNCAutoScope=None +DItemRevisionGUID= +GenerateClassCluster=0 + +[Document2] +DocumentPath=ImportVariantParametersFromCSV.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 + +[PCBConfiguration1] +ReleaseItemId= +CurrentRevision= +Name=Default Configuration +Variant=[No Variations] +GenerateBOM=0 + +[Generic_ScriptingSystem] +StartProcName=ImportVariantParametersFromCSV.pas>ImportVariantParametersFromCSV diff --git a/ImportVariantParametersFromCSV/ImportVariantParametersFromCSV.dfm b/ImportVariantParametersFromCSV/ImportVariantParametersFromCSV.dfm new file mode 100644 index 00000000..3f16e81f --- /dev/null +++ b/ImportVariantParametersFromCSV/ImportVariantParametersFromCSV.dfm @@ -0,0 +1,91 @@ +object ImportVariantParamsForm: TImportVariantParamsForm + Left = 640 + Top = 320 + Caption = 'Import Variant Parameters from CSV' + ClientHeight = 240 + ClientWidth = 512 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + OnShow = FormVariantShow + PixelsPerInch = 96 + TextHeight = 13 + object LabelVariant: TLabel + Left = 16 + Top = 24 + Width = 92 + Height = 13 + Caption = 'Select variant:' + end + object ComboBoxVariants: TComboBox + Left = 16 + Top = 44 + Width = 296 + Height = 21 + Style = csDropDownList + TabOrder = 0 + end + object ButtonNewVariant: TButton + Left = 328 + Top = 42 + Width = 169 + Height = 25 + Caption = 'New Variant (next number)' + TabOrder = 1 + OnClick = ButtonNewVariantClick + end + object CheckBoxCopyParams: TCheckBox + Left = 16 + Top = 76 + Width = 300 + Height = 17 + Caption = 'Copy parameters from previous variant' + Checked = True + TabOrder = 2 + end + object LabelFile: TLabel + Left = 16 + Top = 112 + Width = 132 + Height = 13 + Caption = 'CSV file path:' + end + object EditFile: TEdit + Left = 16 + Top = 132 + Width = 392 + Height = 21 + TabOrder = 3 + end + object ButtonBrowse: TButton + Left = 416 + Top = 130 + Width = 81 + Height = 25 + Caption = 'Browse...' + TabOrder = 4 + OnClick = ButtonBrowseClick + end + object ButtonOK: TButton + Left = 328 + Top = 188 + Width = 81 + Height = 25 + Caption = 'Import' + TabOrder = 5 + OnClick = ButtonOKClick + end + object ButtonCancel: TButton + Left = 416 + Top = 188 + Width = 81 + Height = 25 + Caption = 'Cancel' + TabOrder = 6 + OnClick = ButtonCancelClick + end +end diff --git a/ImportVariantParametersFromCSV/ImportVariantParametersFromCSV.pas b/ImportVariantParametersFromCSV/ImportVariantParametersFromCSV.pas new file mode 100644 index 00000000..ca706897 --- /dev/null +++ b/ImportVariantParametersFromCSV/ImportVariantParametersFromCSV.pas @@ -0,0 +1,939 @@ +{..............................................................................} +{ Summary Imports parameter overrides for a SINGLE project VARIANT from a } +{ delimited text file (.txt / .csv) into the focused PCB project. } +{ } +{ The script: } +{ - Lists all variants defined in the project. } +{ - Supports variant names in the format "00", "01", "02", ... } +{ - Can create a new variant, named as the next consecutive } +{ two-digit number after the current highest, inheriting the } +{ configuration of the previous highest variant. } +{ - Imports the CSV parameters ONLY into the selected variant } +{ (not into the whole project). } +{ } +{ CSV layout (two rows): } +{ - Row 1 contains the parameter names (headers). } +{ - Row 2 contains the corresponding values. } +{ Header names must match the parameter names in the project. } +{ Fields may be quoted with double quotes (e.g. "Doe, John"). } +{ } +{ Based on ImportProjectParametersFromCSV. } +{ } +{ Created by: GitHub Copilot } +{..............................................................................} + +{..............................................................................} + +uses +SysUtils; + +Interface + +type + TImportVariantParamsForm = class(TForm) + LabelVariant : TLabel; + ComboBoxVariants : TComboBox; + ButtonNewVariant : TButton; + CheckBoxCopyParams: TCheckBox; + LabelFile : TLabel; + EditFile : TEdit; + ButtonBrowse : TButton; + ButtonOK : TButton; + ButtonCancel : TButton; + procedure FormVariantShow(Sender: TObject); + procedure ButtonBrowseClick(Sender: TObject); + procedure ButtonNewVariantClick(Sender: TObject); + procedure ButtonOKClick(Sender: TObject); + procedure ButtonCancelClick(Sender: TObject); + end; + +var + ImportVariantParamsForm : TImportVariantParamsForm; + FocusedProject : IProject; + ProjLines : TStringList; + VariantHeaders : TStringList; + VariantStart : TStringList; + VariantEnd : TStringList; + +{..............................................................................} +{ Case-insensitive search for a string in a TStringList. Returns -1 if not } +{ found. } +{..............................................................................} +function FindNameCI(List : TStringList; Name : String) : Integer; +var + i : Integer; +begin + Result := -1; + for i := 0 to List.Count - 1 do + begin + if AnsiUpperCase(List[i]) = AnsiUpperCase(Name) then + begin + Result := i; + Exit; + end; + end; +end; + +{..............................................................................} +{ Returns True if S is non-empty and contains only digits 0..9. } +{..............................................................................} +function IsAllDigits(S : String) : Boolean; +var + i : Integer; +begin + Result := (S <> ''); + for i := 1 to Length(S) do + begin + if (S[i] < '0') or (S[i] > '9') then + begin + Result := False; + Exit; + end; + end; +end; + +{..............................................................................} +{ Formats a number as a two-digit zero-padded variant name ("0" -> "00"). } +{ Values >= 100 are returned without extra leading zeros. } +{..............................................................................} +function FormatVariantName(N : Integer) : String; +begin + if N < 10 then + Result := '0' + IntToStr(N) + else + Result := IntToStr(N); +end; + +{..............................................................................} +{ Returns a single lowercase hex digit for N (0..15). } +{..............................................................................} +function HexDigit(N : Integer) : String; +const + HexChars = '0123456789abcdef'; +begin + Result := Copy(HexChars, N + 1, 1); +end; + +{..............................................................................} +{ Generates a random GUID string (version 4, like Altium's variant UniqueId). } +{..............................................................................} +function GenerateGuid : String; +var + i : Integer; +begin + Result := ''; + for i := 1 to 8 do Result := Result + HexDigit(Random(16)); + Result := Result + '-'; + for i := 1 to 4 do Result := Result + HexDigit(Random(16)); + Result := Result + '-4'; + for i := 1 to 3 do Result := Result + HexDigit(Random(16)); + Result := Result + '-'; + Result := Result + HexDigit(8 + Random(4)); + for i := 1 to 3 do Result := Result + HexDigit(Random(16)); + Result := Result + '-'; + for i := 1 to 12 do Result := Result + HexDigit(Random(16)); +end; + +{..............................................................................} +{ Detects the field delimiter used in a CSV line. } +{ } +{ Supports comma (','), semicolon (';') and tab. Whichever occurs most often } +{ (outside double-quoted fields) wins, so regional settings that use } +{ semicolons instead of commas are handled automatically. } +{..............................................................................} +function DetectDelimiter(Line : String) : Char; +var + i : Integer; + inQuotes : Boolean; + commaCnt : Integer; + semiCnt : Integer; + tabCnt : Integer; + ch : Char; +begin + Result := ','; + + commaCnt := 0; + semiCnt := 0; + tabCnt := 0; + inQuotes := False; + + for i := 1 to Length(Line) do + begin + ch := Line[i]; + + if ch = '"' then + begin + inQuotes := not inQuotes; + Continue; + end; + + if not inQuotes then + begin + if ch = ',' then commaCnt := commaCnt + 1 + else if ch = ';' then semiCnt := semiCnt + 1 + else if ch = #9 then tabCnt := tabCnt + 1; + end; + end; + + if (semiCnt > commaCnt) and (semiCnt >= tabCnt) then + Result := ';' + else if (tabCnt > commaCnt) and (tabCnt > semiCnt) then + Result := #9 + else + Result := ','; +end; + +{..............................................................................} +{ Reads a delimited text file (two rows). } +{ Row 1 -> parameter names, Row 2 -> parameter values. } +{ } +{ The delimiter is detected automatically (comma, semicolon or tab). } +{ Fields may be enclosed in double quotes; quotes are stripped. } +{ Names and Values are filled with one entry per non-empty header cell. } +{ Returns True on success. } +{..............................................................................} +function ReadCsvFile(FileName : String; Names, Values : TStringList) : Boolean; +var + Lines : TStringList; + HeaderFields : TStringList; + ValueFields : TStringList; + Delim : Char; + i : Integer; +begin + Result := False; + Names.Clear; + Values.Clear; + + if not FileExists(FileName) then Exit; + + Lines := TStringList.Create; + HeaderFields := TStringList.Create; + ValueFields := TStringList.Create; + try + Lines.LoadFromFile(FileName); + + { We need at least two rows. } + if Lines.Count < 2 then Exit; + + { Detect the field delimiter from the first row. } + Delim := DetectDelimiter(Lines[0]); + + { Parse row 1 (names) and row 2 (values), honouring double-quoted fields. } + { StrictDelimiter=True means only the delimiter separates fields; } + { spaces inside a field (e.g. "test 4") are preserved. } + HeaderFields.Delimiter := Delim; + HeaderFields.QuoteChar := '"'; + HeaderFields.StrictDelimiter := True; + HeaderFields.DelimitedText := Lines[0]; + + ValueFields.Delimiter := Delim; + ValueFields.QuoteChar := '"'; + ValueFields.StrictDelimiter := True; + ValueFields.DelimitedText := Lines[1]; + + { Pair each header with the matching value. } + for i := 0 to HeaderFields.Count - 1 do + begin + if Trim(HeaderFields[i]) = '' then Continue; + + Names.Add(Trim(HeaderFields[i])); + + if i < ValueFields.Count then + Values.Add(Trim(ValueFields[i])) + else + Values.Add(''); + end; + + Result := Names.Count > 0; + finally + Lines.Free; + HeaderFields.Free; + ValueFields.Free; + end; +end; + +{..............................................................................} +{ Loads the project file and locates all "[ProjectVariant...]" blocks. } +{ } +{ Populates the globals: } +{ VariantHeaders - the header line of each variant block } +{ VariantStart - line index where each block starts (as string) } +{ VariantEnd - line index where each block ends (exclusive, as string) } +{..............................................................................} +procedure LoadProjectStructure; +var + i : Integer; + line : String; + trimmed : String; + inVariant: Boolean; +begin + ProjLines.LoadFromFile(FocusedProject.DM_ProjectFullPath); + + VariantHeaders.Clear; + VariantStart.Clear; + VariantEnd.Clear; + + inVariant := False; + for i := 0 to ProjLines.Count - 1 do + begin + line := ProjLines[i]; + trimmed := Trim(line); + + if Copy(trimmed, 1, 15) = '[ProjectVariant' then + begin + { Start of a new variant block. Close the previous one first. } + if inVariant then VariantEnd.Add(IntToStr(i)); + VariantHeaders.Add(trimmed); + VariantStart.Add(IntToStr(i)); + inVariant := True; + end + else if inVariant and (Copy(trimmed, 1, 1) = '[') then + begin + { A non-variant section header ends the current block. } + VariantEnd.Add(IntToStr(i)); + inVariant := False; + end; + end; + + { If the file ends while still inside a block. } + if inVariant then VariantEnd.Add(IntToStr(ProjLines.Count)); +end; + +{..............................................................................} +{ Returns the description (name) of the variant block at the given index. } +{..............................................................................} +function GetVariantDescription(BlockIdx : Integer) : String; +var + i, s, e : Integer; + trimmed : String; +begin + Result := ''; + s := StrToInt(VariantStart[BlockIdx]); + e := StrToInt(VariantEnd[BlockIdx]); + for i := s to e - 1 do + begin + trimmed := Trim(ProjLines[i]); + if Copy(trimmed, 1, 12) = 'Description=' then + begin + Result := Trim(Copy(trimmed, 13, Length(trimmed))); + Exit; + end; + end; +end; + +{..............................................................................} +{ Returns the block index of the variant whose description matches Desc } +{ (case-insensitive), or -1 if not found. } +{..............................................................................} +function GetBlockIndexByDescription(Desc : String) : Integer; +var + k : Integer; +begin + Result := -1; + for k := 0 to VariantHeaders.Count - 1 do + begin + if AnsiUpperCase(GetVariantDescription(k)) = AnsiUpperCase(Desc) then + begin + Result := k; + Exit; + end; + end; +end; + +{..............................................................................} +{ Refreshes the variant combo box from the current project structure. } +{..............................................................................} +procedure PopulateVariantCombo; +var + k : Integer; +begin + ComboBoxVariants.Clear; + for k := 0 to VariantHeaders.Count - 1 do + ComboBoxVariants.Items.Add(GetVariantDescription(k)); + + if ComboBoxVariants.Items.Count > 0 then + ComboBoxVariants.ItemIndex := 0; +end; + +{..............................................................................} +{ Returns the numeric index of a variant block (e.g. "[ProjectVariant2]" -> 2) } +{..............................................................................} +function GetVariantNumber(BlockIdx : Integer) : Integer; +var + hdr : String; +begin + hdr := VariantHeaders[BlockIdx]; + hdr := StringReplace(hdr, '[ProjectVariant', '', MkSet(rfReplaceAll)); + hdr := StringReplace(hdr, ']', '', MkSet(rfReplaceAll)); + Result := StrToInt(hdr); +end; + +{..............................................................................} +{ Returns True if the given trimmed line is a variant parameter section } +{ header belonging to variant block number N, i.e. "[Parameter(N+1)_Y]" } +{ with Y all digits. } +{..............................................................................} +function IsVariantParamHeaderFor(Line : String; N : Integer) : Boolean; +var + prefix : String; + ys : String; +begin + Result := False; + prefix := '[Parameter' + IntToStr(N + 1) + '_'; + if Copy(Line, 1, Length(prefix)) <> prefix then Exit; + + ys := Copy(Line, Length(prefix) + 1, Length(Line) - Length(prefix) - 1); + Result := IsAllDigits(ys); +end; + +{..............................................................................} +{ Reads the per-variant parameters of the variant at BlockIdx. } +{ } +{ Variant parameters are stored as separate "[ParameterX_Y]" sections } +{ following the variant block, where X = variant number + 1 and Y is the } +{ parameter index (1-based). Each section has a Name= and a Value= line. } +{ Names and Values are filled in order. } +{..............................................................................} +procedure ReadVariantParameters(BlockIdx : Integer; Names, Values : TStringList); +var + n : Integer; + i : Integer; + trimmed : String; + inside : Boolean; + curName : String; +begin + Names.Clear; + Values.Clear; + + n := GetVariantNumber(BlockIdx); + + inside := False; + curName := ''; + for i := 0 to ProjLines.Count - 1 do + begin + trimmed := Trim(ProjLines[i]); + + if Copy(trimmed, 1, 1) = '[' then + begin + { Enter a section only if it is one of this variant's parameters. } + inside := IsVariantParamHeaderFor(trimmed, n); + curName := ''; + Continue; + end; + + if inside then + begin + if Copy(trimmed, 1, 5) = 'Name=' then + curName := Copy(trimmed, 6, Length(trimmed)) + else if Copy(trimmed, 1, 6) = 'Value=' then + begin + Names.Add(curName); + Values.Add(Copy(trimmed, 7, Length(trimmed))); + curName := ''; + end; + end; + end; +end; + +{..............................................................................} +{ Builds the complete project file content with variant BlockIdx's parameters } +{ replaced by Names/Values. } +{ } +{ This removes the variant's existing "[Parameter(N+1)_Y]" sections, updates } +{ the ParameterCount line inside the variant block, and re-inserts fresh } +{ parameter sections right after the variant block. } +{ } +{ Returns a new TStringList (caller must free), or Nil on error. } +{..............................................................................} +function BuildFileWithVariantParams(BlockIdx : Integer; Names, Values : TStringList) : TStringList; +var + resultList : TStringList; + n : Integer; + s, e : Integer; + i : Integer; + inVariantBlock : Boolean; + insertAt : Integer; + trimmed : String; +begin + Result := Nil; + n := GetVariantNumber(BlockIdx); + + s := StrToInt(VariantStart[BlockIdx]); + e := StrToInt(VariantEnd[BlockIdx]); + + resultList := TStringList.Create; + + { Pass 1: copy the file, updating ParameterCount and dropping this } + { variant's existing parameter sections. } + inVariantBlock := False; + i := 0; + while i < ProjLines.Count do + begin + trimmed := Trim(ProjLines[i]); + + { Track whether we are inside the target variant block. } + if i = s then inVariantBlock := True; + if (i > s) and (Copy(trimmed, 1, 1) = '[') then inVariantBlock := False; + + { Drop this variant's existing parameter sections entirely. } + if IsVariantParamHeaderFor(trimmed, n) then + begin + i := i + 1; + while (i < ProjLines.Count) and (Copy(Trim(ProjLines[i]), 1, 1) <> '[') do + i := i + 1; + while (i < ProjLines.Count) and (Trim(ProjLines[i]) = '') do + i := i + 1; + Continue; + end; + + { Update the ParameterCount line inside the target variant block. } + if inVariantBlock and (Copy(trimmed, 1, 15) = 'ParameterCount=') then + resultList.Add('ParameterCount=' + IntToStr(Names.Count)) + else + resultList.Add(ProjLines[i]); + + i := i + 1; + end; + + { Pass 2: find the end of the target variant block (next section header) } + { and insert the new parameter sections there. } + insertAt := -1; + for i := s + 1 to resultList.Count - 1 do + begin + if Copy(Trim(resultList[i]), 1, 1) = '[' then + begin + insertAt := i; + Break; + end; + end; + if insertAt = -1 then insertAt := resultList.Count; + + for i := Names.Count - 1 downto 0 do + begin + resultList.Insert(insertAt, ''); + resultList.Insert(insertAt, 'Value=' + Values[i]); + resultList.Insert(insertAt, 'Name=' + Names[i]); + resultList.Insert(insertAt, '[Parameter' + IntToStr(n + 1) + '_' + IntToStr(i + 1) + ']'); + end; + + Result := resultList; +end; + +{..............................................................................} +{ Builds the complete project file content for creating a NEW variant: the new } +{ variant block (with fresh UniqueId and Description) plus parameter sections } +{ inherited from the source variant, numbered with the new variant's prefix. } +{ } +{ NewBlockN = the "[ProjectVariantN]" number of the new variant (1-based). } +{ Returns a new TStringList (caller must free), or Nil on error. } +{..............................................................................} +function BuildFileWithNewVariant(SrcBlockIdx : Integer; NewBlockN : Integer; NewDesc : String; CopyParams : Boolean) : TStringList; +var + resultList : TStringList; + newHeader : String; + srcNames : TStringList; + srcValues : TStringList; + k : Integer; + insertAt : Integer; + i : Integer; +begin + Result := Nil; + + { Read the source variant's parameters (may be empty). } + srcNames := TStringList.Create; + srcValues := TStringList.Create; + try + if CopyParams and (SrcBlockIdx >= 0) then + ReadVariantParameters(SrcBlockIdx, srcNames, srcValues) + else + begin + srcNames.Clear; + srcValues.Clear; + end; + except + srcNames.Free; + srcValues.Free; + Exit; + end; + + resultList := TStringList.Create; + newHeader := '[ProjectVariant' + IntToStr(NewBlockN) + ']'; + + { Copy all existing lines. } + for i := 0 to ProjLines.Count - 1 do + resultList.Add(ProjLines[i]); + + { Find the insertion point: right after the last variant's parameter } + { sections, i.e. at the next top-level section header after the last } + { "[ProjectVariant...]" block (or end of file). } + insertAt := resultList.Count; + for i := 0 to resultList.Count - 1 do + begin + if Copy(Trim(resultList[i]), 1, 15) = '[ProjectVariant' then + begin + { Walk forward until the next top-level header (no underscore). } + insertAt := resultList.Count; + k := i + 1; + while k < resultList.Count do + begin + if Copy(Trim(resultList[k]), 1, 1) = '[' then + begin + if Pos('_', Trim(resultList[k])) = 0 then + begin + insertAt := k; + Break; + end; + end; + k := k + 1; + end; + Break; + end; + end; + + { Ensure a blank line before the new block. } + if (insertAt > 0) and (Trim(resultList[insertAt - 1]) <> '') then + begin + resultList.Insert(insertAt, ''); + insertAt := insertAt + 1; + end; + + { Build the new variant block with inherited parameters count. } + resultList.Insert(insertAt + 0, newHeader); + resultList.Insert(insertAt + 1, 'UniqueId=' + GenerateGuid); + resultList.Insert(insertAt + 2, 'Description=' + NewDesc); + resultList.Insert(insertAt + 3, 'AllowFabrication=0'); + resultList.Insert(insertAt + 4, 'ParameterCount=' + IntToStr(srcNames.Count)); + resultList.Insert(insertAt + 5, 'VariationCount=0'); + resultList.Insert(insertAt + 6, 'ParamVariationCount=0'); + resultList.Insert(insertAt + 7, ''); + + { Inherit the source variant's parameter sections under the new prefix. } + { New variant's parameter prefix = NewBlockN + 1. } + insertAt := insertAt + 8; + for k := srcNames.Count - 1 downto 0 do + begin + resultList.Insert(insertAt, ''); + resultList.Insert(insertAt, 'Value=' + srcValues[k]); + resultList.Insert(insertAt, 'Name=' + srcNames[k]); + resultList.Insert(insertAt, '[Parameter' + IntToStr(NewBlockN + 1) + '_' + IntToStr(k + 1) + ']'); + end; + + srcNames.Free; + srcValues.Free; + + Result := resultList; +end; + +{..............................................................................} +{ Writes a list of lines to the project file. } +{..............................................................................} +procedure WriteLinesToProjectFile(Lines : TStringList); +var + f : TextFile; + i : Integer; +begin + AssignFile(f, FocusedProject.DM_ProjectFullPath); + Rewrite(f); + for i := 0 to Lines.Count - 1 do WriteLn(f, Lines[i]); + CloseFile(f); +end; + +{..............................................................................} +{ Finds the highest purely-numeric variant description and returns its block } +{ index and numeric value. Returns -1 for both if none found. } +{..............................................................................} +procedure FindHighestNumericVariant(var BlockIdx : Integer; var Value : Integer); +var + k : Integer; + desc: String; + n : Integer; +begin + BlockIdx := -1; + Value := -1; + for k := 0 to VariantHeaders.Count - 1 do + begin + desc := GetVariantDescription(k); + if IsAllDigits(desc) then + begin + n := StrToInt(desc); + if n > Value then + begin + Value := n; + BlockIdx := k; + end; + end; + end; +end; + +{..............................................................................} +{ Event handler: form is shown. Populate the variant list. } +{..............................................................................} +procedure TImportVariantParamsForm.FormVariantShow(Sender: TObject); +begin + LoadProjectStructure; + PopulateVariantCombo; +end; + +{..............................................................................} +{ Event handler: Browse button opens a file dialog filtered to CSV/text files. } +{..............................................................................} +procedure TImportVariantParamsForm.ButtonBrowseClick(Sender: TObject); +var + dlg : TOpenDialog; +begin + dlg := TOpenDialog.Create(Application); + try + dlg.Title := 'Select the CSV file to import'; + dlg.Filter := 'CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*.*'; + if dlg.Execute then + EditFile.Text := dlg.FileName; + finally + dlg.Free; + end; +end; + +{..............................................................................} +{ Event handler: Cancel button closes the dialog. } +{..............................................................................} +procedure TImportVariantParamsForm.ButtonCancelClick(Sender: TObject); +begin + Close; +end; + +{..............................................................................} +{ Event handler: Create a new variant named as the next consecutive two-digit } +{ number after the current highest, inheriting that variant's configuration. } +{..............................................................................} +procedure TImportVariantParamsForm.ButtonNewVariantClick(Sender: TObject); +var + highIdx : Integer; + highVal : Integer; + newVal : Integer; + newName : String; + srcIdx : Integer; + newFile : TStringList; + k : Integer; +begin + LoadProjectStructure; + + FindHighestNumericVariant(highIdx, highVal); + + { Determine the source block to base the new variant on. } + if highIdx >= 0 then + begin + srcIdx := highIdx; + newVal := highVal + 1; + end + else + begin + { No numeric variants yet: base on the last variant block and start at 0. } + srcIdx := VariantHeaders.Count - 1; + newVal := 0; + end; + + { If somehow there are no variant blocks at all, nothing to base on. } + if srcIdx < 0 then + begin + ShowMessage('The project has no variant blocks to base a new variant on.'); + Exit; + end; + + { Ensure the new name does not collide with an existing variant. } + newName := FormatVariantName(newVal); + while GetBlockIndexByDescription(newName) >= 0 do + begin + newVal := newVal + 1; + newName := FormatVariantName(newVal); + end; + + newFile := BuildFileWithNewVariant(srcIdx, VariantHeaders.Count + 1, newName, CheckBoxCopyParams.Checked); + if newFile = Nil then + begin + ShowMessage('Failed to build the new variant.'); + Exit; + end; + + try + WriteLinesToProjectFile(newFile); + finally + newFile.Free; + end; + + { Refresh the variant list and select the newly created variant. } + LoadProjectStructure; + PopulateVariantCombo; + for k := 0 to ComboBoxVariants.Items.Count - 1 do + begin + if ComboBoxVariants.Items[k] = newName then + begin + ComboBoxVariants.ItemIndex := k; + Break; + end; + end; + + ShowMessage('Created new variant "' + newName + '".'); +end; + +{..............................................................................} +{ Event handler: Import button imports the CSV parameters into the selected } +{ variant only. } +{..............................................................................} +procedure TImportVariantParamsForm.ButtonOKClick(Sender: TObject); +var + FileName : String; + VariantName : String; + BlockIdx : Integer; + ImportNames : TStringList; + ImportValues : TStringList; + VarNames : TStringList; + VarValues : TStringList; + NewFile : TStringList; + i, idx : Integer; + updatedCount : Integer; + addedCount : Integer; + msg : String; +begin + VariantName := Trim(ComboBoxVariants.Text); + if VariantName = '' then + begin + ShowMessage('Please select a variant.'); + Exit; + end; + + FileName := Trim(EditFile.Text); + if FileName = '' then + begin + ShowMessage('Please enter the path and file name of the CSV file to import.'); + Exit; + end; + + if not FileExists(FileName) then + begin + ShowMessage('The specified file was not found:' + #13#10 + FileName); + Exit; + end; + + ImportNames := TStringList.Create; + ImportValues := TStringList.Create; + VarNames := TStringList.Create; + VarValues := TStringList.Create; + try + if not ReadCsvFile(FileName, ImportNames, ImportValues) then + begin + ShowMessage('Failed to read the file. Ensure it is a two-row delimited text file.' + #13#10 + + 'Row 1 = parameter names, row 2 = parameter values.'); + Exit; + end; + + if ImportNames.Count = 0 then + begin + ShowMessage('No parameters found in the file.' + #13#10 + + 'Row 1 must contain the parameter names and row 2 the parameter values.'); + Exit; + end; + + { Re-read the project structure to get the latest state. } + LoadProjectStructure; + + BlockIdx := GetBlockIndexByDescription(VariantName); + if BlockIdx < 0 then + begin + ShowMessage('Variant "' + VariantName + '" was not found in the project.'); + Exit; + end; + + ReadVariantParameters(BlockIdx, VarNames, VarValues); + + { Merge imported values into the variant parameters. } + updatedCount := 0; + addedCount := 0; + for i := 0 to ImportNames.Count - 1 do + begin + idx := FindNameCI(VarNames, ImportNames[i]); + if idx >= 0 then + begin + VarValues[idx] := ImportValues[i]; + updatedCount := updatedCount + 1; + end + else + begin + VarNames.Add(ImportNames[i]); + VarValues.Add(ImportValues[i]); + addedCount := addedCount + 1; + end; + end; + + NewFile := BuildFileWithVariantParams(BlockIdx, VarNames, VarValues); + if NewFile = Nil then + begin + ShowMessage('Failed to update the variant parameters.'); + Exit; + end; + + try + WriteLinesToProjectFile(NewFile); + finally + NewFile.Free; + end; + + { NOTE: Do NOT call DoFileLoad here. Altium automatically notices the } + { project file changed on disk and reloads it. Explicitly reloading } + { (DoFileLoad) causes Altium to KEEP its old in-memory data and } + { re-add the on-disk data, producing duplicates. } + { (Same finding as documented in the XIA_Release_Manager script.) } + + msg := 'Import complete for variant "' + VariantName + '".' + #13#10#13#10 + + 'Updated: ' + IntToStr(updatedCount) + #13#10 + + 'Added: ' + IntToStr(addedCount) + #13#10#13#10 + + 'Variant parameters:' + #13#10; + for i := 0 to VarNames.Count - 1 do + msg := msg + ' ' + VarNames[i] + ' = ' + VarValues[i] + #13#10; + + ShowMessage(msg); + Close; + finally + ImportNames.Free; + ImportValues.Free; + VarNames.Free; + VarValues.Free; + end; +end; + +{..............................................................................} +{ Entry point. Validates the focused project, then shows the import dialog. } +{..............................................................................} +procedure ImportVariantParametersFromCSV; +var + WS : IWorkspace; +begin + WS := GetWorkspace; + FocusedProject := WS.DM_FocusedProject; + + if FocusedProject = nil then + begin + ShowMessage('No project is currently focused.'); + Exit; + end; + + if AnsiUpperCase(ExtractFileExt(FocusedProject.DM_ProjectFileName)) <> '.PRJPCB' then + begin + ShowMessage('The focused project is not a PCB project (.PrjPcb).'); + Exit; + end; + + { Initialise the global string lists used to hold the project structure. } + ProjLines := TStringList.Create; + VariantHeaders := TStringList.Create; + VariantStart := TStringList.Create; + VariantEnd := TStringList.Create; + + try + ImportVariantParamsForm.EditFile.Text := ''; + ImportVariantParamsForm.ShowModal; + finally + ProjLines.Free; + VariantHeaders.Free; + VariantStart.Free; + VariantEnd.Free; + end; +end; diff --git a/ImportVariantParametersFromCSV/README.md b/ImportVariantParametersFromCSV/README.md new file mode 100644 index 00000000..8a6742a7 --- /dev/null +++ b/ImportVariantParametersFromCSV/README.md @@ -0,0 +1,53 @@ +# ImportVariantParametersFromCSV + +Imports parameter overrides for a **single project variant** into the focused +PCB project (`.PrjPcb`) from a two-row delimited text file (`.txt` / `.csv`). + +Based on `ImportProjectParametersFromCSV`, but variant-aware. + +## Features + +- Lists all variants defined in the project. +- Supports variant names in the `00`, `01`, `02`, … format. +- **New Variant** button creates a new variant named as the next consecutive + two-digit number after the current highest (e.g. after `02` it creates `03`), + inheriting the configuration of the previous highest variant. +- Imports CSV parameters **only into the selected variant** — the rest of the + project (and other variants) are left untouched. + +## CSV file layout + +Two rows: + +- **Row 1** – parameter names (headers). +- **Row 2** – the corresponding parameter values. + +Example (`params.csv`): + +```csv +Title,Author,Revision +My Board,"J. Smith",B +``` + +Fields containing commas can be quoted (`"J. Smith, Jr."`). The delimiter is +auto-detected (`,` `;` or tab). + +## How it works + +Altium's DelphiScript has no API to create variants or edit variant parameters, +so the script rewrites the `[ProjectVariant…]` section of the `.PrjPcb` file +directly (same approach as `XIA_Release_Manager`). Within a variant block it +replaces `ParameterCount` / `ParamNameN` / `ParamValueN` lines and leaves +component variations untouched. + +## Running the script + +1. Open `ImportVariantParametersFromCSV.PrjScr` in Altium Designer. +2. Focus the PCB project you want to update. +3. Run the `ImportVariantParametersFromCSV` procedure (File » Run Script). + +## Notes / limitations + +- Test on a copy of a project first — the script rewrites the project file. +- After importing, Altium auto-detects the file change; do not force a reload + (that causes duplicated parameters).