From: Hugo Villeneuve Date: Wed, 18 Dec 2013 15:50:01 +0000 (-0500) Subject: Add Altium Delphi scripts X-Git-Url: http://gitweb.hugovil.com/?p=eda-utils.git;a=commitdiff_plain;h=d2cace985fa8e2bbe86940fb7921d3b4afd829e1 Add Altium Delphi scripts --- diff --git a/scripts/altium/cleanlib.pas b/scripts/altium/cleanlib.pas new file mode 100644 index 0000000..075b240 --- /dev/null +++ b/scripts/altium/cleanlib.pas @@ -0,0 +1,148 @@ +// Standardisation du nom des paramètres des composants d'une librairie + +Procedure CleanLibrary; +Var + CurrentLib : ISch_Lib; + LibraryIterator : ISch_Iterator; + LibComp : ISch_Component; + PIterator : ISch_Iterator; + Parameter : ISch_Parameter; + + RefPrefix : String; + ImplIterator : ISch_Iterator; + SchImplementation : ISch_Implementation; + +Begin + If SchServer = Nil Then Exit; + CurrentLib := SchServer.GetCurrentSchDocument; + If CurrentLib = Nil Then Exit; + + // check if the document is a schematic library + If CurrentLib.ObjectID <> eSchLib Then + Begin + ShowError('Please open schematic library.'); + Exit; + End; + + // create a library iterator to look for + // symbols in the currently focussed library. + LibraryIterator := CurrentLib.SchLibIterator_Create; + LibraryIterator.AddFilter_ObjectSet(MkSet(eSchComponent)); + Try + // obtain the first symbol in the library + LibComp := LibraryIterator.FirstSchObject; + While LibComp <> Nil Do + Begin + + RefPrefix := Copy(UpperCase(LibComp.Designator.Text), 1, 1); + + // Corrections champs description + If UpperCase(LibComp.ComponentDescription) = 'RESISTOR FIXE' Then + LibComp.ComponentDescription := 'Resistor'; + If UpperCase(LibComp.ComponentDescription) = 'CAPACITOR CERAMIQUE COG' Then + LibComp.ComponentDescription := 'Capacitor Ceramic C0G'; + If UpperCase(LibComp.ComponentDescription) = 'CAPACITOR CERAMIQUE NPO' Then + LibComp.ComponentDescription := 'Capacitor Ceramic NP0'; + If UpperCase(LibComp.ComponentDescription) = 'CAPACITOR CERAMIQUE X5R' Then + LibComp.ComponentDescription := 'Capacitor Ceramic X5R'; + If UpperCase(LibComp.ComponentDescription) = 'CAPACITOR CERAMIQUE X7R' Then + LibComp.ComponentDescription := 'Capacitor Ceramic X7R'; + If UpperCase(LibComp.ComponentDescription) = 'CAPACITOR CERAMIQUE S-SERIE' Then + LibComp.ComponentDescription := 'Capacitor Ceramic NP0'; + + // look for parameters associated with this symbol in a library. + Try + PIterator := LibComp.SchIterator_Create; + PIterator.AddFilter_ObjectSet(MkSet(eParameter)); + + Parameter := PIterator.FirstSchObject; + While Parameter <> Nil Do + Begin + If CompareString(UpperCase(Parameter.Name), 'MANUFACTURIER', 13) Then + Parameter.Name := 'Manufacturer'; + + If CompareString(UpperCase(Parameter.Name), 'MANUFACTURER', 12) Then + Begin + Parameter.Text := UpperCase(Parameter.Text); // Conversion majuscules + + If CompareString(Parameter.Text, 'CAL CHIP', 8) Or + CompareString(Parameter.Text, 'CAL-CHIP', 8) Or + CompareString(Parameter.Text, 'CAL_CHIP', 8) Or + CompareString(Parameter.Text, 'CALCHIP', 7) Then + Parameter.Text := 'CAL-CHIP'; + + If CompareString(Parameter.Text, 'ON SEMI', 7) Or + CompareString(Parameter.Text, 'ONSEMI', 6) Then + Parameter.Text := 'ON SEMICONDUCTOR'; + + If CompareString(Parameter.Text, 'TEXAS', 5) Or + CompareString(Parameter.Text, 'TI', 2) Then + Parameter.Text := 'TEXAS INSTRUMENTS'; + + If CompareString(Parameter.Text, 'ANALOG DEVICE', 13) Then + Parameter.Text := 'ANALOG DEVICES'; + + If CompareString(Parameter.Text, 'VISHAY', 6) Then + Parameter.Text := 'VISHAY'; + End; + + If CompareString(UpperCase(Parameter.Name), 'PUISSANCE', 9) Then + Parameter.Name := 'Power'; + + If CompareString(UpperCase(Parameter.Name), 'NO MANUF', 8) Then + Parameter.Name := 'MPN'; + + If CompareString(UpperCase(Parameter.Name), 'TOL', 3) Then + Parameter.Name := 'Tolerance'; + + ImplIterator := LibComp.SchIterator_Create; + ImplIterator.AddFilter_ObjectSet(MkSet(eImplementation)); + SchImplementation := ImplIterator.FirstSchObject; + While SchImplementation <> Nil Do + Begin + If StringsEqual(SchImplementation.ModelType, 'PCBLIB') Then + Begin + If CompareString(UpperCase(SchImplementation.ModelName), '1206-016', 8) Then + SchImplementation.ModelName := RefPrefix + '_1206_016'; + + If CompareString(UpperCase(SchImplementation.ModelName), '0402', 4) Then + SchImplementation.ModelName := RefPrefix + '_0402'; + If CompareString(UpperCase(SchImplementation.ModelName), '0603', 4) Then + SchImplementation.ModelName := RefPrefix + '_0603'; + If CompareString(UpperCase(SchImplementation.ModelName), '0805', 4) Then + SchImplementation.ModelName := RefPrefix + '_0805'; + If CompareString(UpperCase(SchImplementation.ModelName), '1206', 4) Then + SchImplementation.ModelName := RefPrefix + '_1206'; + If CompareString(UpperCase(SchImplementation.ModelName), '1210', 4) Then + SchImplementation.ModelName := RefPrefix + '_1210'; + If CompareString(UpperCase(SchImplementation.ModelName), '1812', 4) Then + SchImplementation.ModelName := RefPrefix + '_1812'; + If CompareString(UpperCase(SchImplementation.ModelName), '2010', 4) Then + SchImplementation.ModelName := RefPrefix + '_2010'; + If CompareString(UpperCase(SchImplementation.ModelName), '2225', 4) Then + SchImplementation.ModelName := RefPrefix + '_2225'; + + // Remove duplicates + If CompareString(UpperCase(SchImplementation.ModelName), RefPrefix + '_0402', 6) And Not SchImplementation.IsCurrent Then + LibComp.RemoveSchObject(SchImplementation); + + End; + SchImplementation := ImplIterator.NextSchObject; + End; + LibComp.SchIterator_Destroy(ImplIterator); + + Parameter := PIterator.NextSchObject; + End; + Finally + LibComp.SchIterator_Destroy(PIterator); + End; + // obtain the next symbol in the library + LibComp := LibraryIterator.NextSchObject; + End; + Finally + // done with looking for symbols and parameters. + // destroy the library iterator. + CurrentLib.SchIterator_Destroy(LibraryIterator); + End; + +End; diff --git a/scripts/altium/functions.pas b/scripts/altium/functions.pas new file mode 100644 index 0000000..c72dbfd --- /dev/null +++ b/scripts/altium/functions.pas @@ -0,0 +1,180 @@ +Const + MY_BOX_WIDTH_MILS = 4; + MY_CIRCLE_WIDTH_MILS = 4; + + MY_REF_SIZE_MILS = 30; + MY_REF_WIDTH_MILS = 4; + +Var + MinX, MinY, MaxX, MaxY : Integer; + +Procedure RemoveSpaces(Var Str : AnsiString); +Var + SpacePos : Integer; +Begin + Repeat + SpacePos := Pos(' ', Str); + If SpacePos <> 0 Then + Delete(Str, SpacePos, 1); + Until SpacePos = 0; +End; + +Function IsNumber(AChar : Char) : Boolean; +Begin + Result := ('0' <= AChar) And (AChar <= '9'); +End; + +Function IsLetter(AChar : Char) : Boolean; +Begin + Result := ('a' <= AChar) And (AChar <= 'Z'); +End; + +Function CompareString(a, b : AnsiString; len : Integer) : Boolean; +Var + a1, b1 : AnsiString; +Begin + Result := False; + + a1 := Copy(a, 1, len); + b1 := Copy(b, 1, len); + + Result := a1 = b1; +End; + + +Procedure ClearAssemblyLayer(Board : IPCB_Board; Layer : TLayer); +Var + Comp : IPCB_Component; + Iterator : IPCB_BoardIterator; +Begin + // Setup Board iterator + Iterator := Board.BoardIterator_Create; + Iterator.AddFilter_ObjectSet(AllObjects); + Iterator.AddFilter_LayerSet(MkSet(Layer)); + Iterator.AddFilter_Method(eProcessAll); + + Comp := Iterator.FirstPCBObject; + While (Comp <> Nil) Do + Begin + Board.RemovePCBObject(Comp); + + Comp := Iterator.NextPCBObject; + End; + + Board.BoardIterator_Destroy(Iterator); +End; + + +Procedure TrackAdd(Board : IPCB_Board; Layer : TLayer; x1, y1, x2, y2 : Integer); +Var + Track : IPCB_Track; +Begin + // Create a Track object. + Track := PCBServer.PCBObjectFactory(eTrackObject, eNoDimension, eCreate_Default); + + Track.X1 := x1; + Track.Y1 := y1; + Track.X2 := x2; + Track.Y2 := y2; + Track.Layer := Layer; + Track.Width := MilsToCoord(MY_BOX_WIDTH_MILS); + Board.AddPCBObject(Track); +End; + + +Procedure CreateBondingBox(Board : IPCB_Board; Layer : TLayer); +Begin + TrackAdd(Board, Layer, MinX, MinY, MaxX, MinY); + TrackAdd(Board, Layer, MaxX, MinY, MaxX, MaxY); + TrackAdd(Board, Layer, MaxX, MaxY, MinX, MaxY); + TrackAdd(Board, Layer, MinX, MaxY, MinX, MinY); +End; + + +Procedure CreateBondingCircle(Board : IPCB_Board; Layer : TLayer; x, y, r : Integer); +Var + Arc : IPCB_Arc; +Begin + Arc := PCBServer.PCBObjectFactory(eArcObject, eNoDimension, eCreate_Default); + Arc.XCenter := x; + Arc.YCenter := y; + Arc.Radius := r; + Arc.LineWidth := MilsToCoord(MY_CIRCLE_WIDTH_MILS); + Arc.StartAngle := 0; + Arc.EndAngle := 360; + Arc.Layer := Layer; + Board.AddPCBObject(Arc); +End; + + +Procedure ProcessObjectsOfAComponent(Const P : IPCB_Primitive); +Var + R : TCoordRect; +Begin + // check for comment / name objects + If P.ObjectId <> eTextObject Then + Begin + R := P.BoundingRectangle; + + If R.left < MinX Then MinX := R.left; + If R.bottom < MinY Then MinY := R.bottom; + If R.right > MaxX Then MaxX := R.right; + If R.top > MaxY Then MaxY := R.top; + End; +End; + +Procedure FetchComponentMidPoints(Comp : IPCB_Component; out MidX, MidY, MaxLen, MaxHeight); +Var + GroupIterator : IPCB_GroupIterator; + GroupHandle : IPCB_Primitive; +Begin + // setting extreme constants... + MinX := 2147483647; + MinY := 2147483647; + MaxX := -2147483647; + MaxY := -2147483647; + + GroupIterator := Comp.GroupIterator_Create; + GroupIterator.AddFilter_ObjectSet(AllObjects); + GroupHandle := GroupIterator.FirstPCBObject; + While GroupHandle <> Nil Do + Begin + ProcessObjectsOfAComponent(GroupHandle); + GroupHandle := GroupIterator.NextPCBObject; + End; + Comp.GroupIterator_Destroy(GroupIterator); + + MidX := (MinX + MaxX) / 2; + MidY := (MinY + MaxY) / 2; + + Case Comp.Name.Rotation of + 0 : MaxLen := MaxX - MinX; + 90 : MaxLen := MaxY - MinY; + 270 : MaxLen := MaxY - MinY; + End; + + Case Comp.Name.Rotation of + 0 : MaxHeight := MaxY - MinY; + 90 : MaxHeight := MaxX - MinX; + 270 : MaxHeight := MaxX - MinX; + End; +End; + +Procedure ResizeRefDes(Comp : IPCB_Component); +Begin + // Check if Component Name property exists before extracting the text + If Comp.Name = Nil Then Exit; + + // Modify the component + PCBServer.SendMessageToRobots(Comp.I_ObjectAddress, c_Broadcast, PCBM_BeginModify , c_NoEventData); + + Comp.Name.Size := MilsToCoord(MY_REF_SIZE_MILS);; + Comp.Name.Width := MilsToCoord(MY_REF_WIDTH_MILS); + Comp.Name.UseTTFonts := False; + Comp.Name.Italic := False; + Comp.Name.Bold := False; + Comp.Name.FontName := 'Default'; + + PCBServer.SendMessageToRobots(Comp.I_ObjectAddress, c_Broadcast, PCBM_EndModify , c_NoEventData); +End; + diff --git a/scripts/altium/pcb-assembly-drawings.pas b/scripts/altium/pcb-assembly-drawings.pas new file mode 100644 index 0000000..b5b3a45 --- /dev/null +++ b/scripts/altium/pcb-assembly-drawings.pas @@ -0,0 +1,262 @@ +// Création des dessins d'assemblage sur les couches mécaniques 10 (TOP) et 11 (BOT) +// +// TODO: +// Afficher le nombre de composants total et celui qui est présentement traité (1/200) +// Gérer les composants avec des orientations non multiples de 90 deg. + +Const + MY_REF_SIZE_MILS = 30; + MY_REF_WIDTH_MILS = 3; + + // La grosseur du texte en fonction de la taille du composant, jusqu´à cette limite. + TEXT_SIZE_MAX_MILS = 100; + + // Ratio de la longueur du texte du refdes par rapport à la longueur maximale permise par les dimensions du composant. + RATIO_MAXLEN_REFDES = 0.85; + + // Ratio de la hauteur du texte du refdes par rapport à la hauteur maximale permise par les dimensions du composant. + RATIO_MAXHEIGHT_REFDES = 0.65; + + // Ajustement empirique. + AJUSTEMENT_CENTRAGE = 0.90; + + TOP_ASSEMBLY_LAYER = eMechanical10; + BOT_ASSEMBLY_LAYER = eMechanical11; + +Procedure PCB_GenerateAssemblyDrawings; +Var + Board : IPCB_Board; + Comp : IPCB_Component; + Iterator : IPCB_BoardIterator; + + strlen, : Integer; + StrWidth : TCoord; + StrHeight : TCoord; + OffsetX : TCoord; + OffsetY : TCoord; + MidX, MidY : Integer; + MaxLen : Integer; + MaxHeight : Integer; + TempSize : Integer; + + IsCircle : Boolean; + + DestLayer : TLayer; + TextObj : IPCB_Text; + + // Pour sauvegarder les valeurs du composant original. + OldCommentOn : Boolean; + OldCompRotation : Integer; + OldCompNameRotation : Integer; + + // Attributs du nouveau composant sur la couche d'assemblage + NewRotation : Integer; + NewSize : Integer; + +Begin + Pcbserver.PreProcess; + + Board := PCBServer.GetCurrentPCBBoard; + If Not Assigned(Board) Then + Begin + ShowMessage('The Current Document is not a Protel PCB Document.'); + Exit; + End; + + // Efface les 2 couches d'assemblage + ClearAssemblyLayer(Board, TOP_ASSEMBLY_LAYER); + ClearAssemblyLayer(Board, BOT_ASSEMBLY_LAYER); + + // Setup Board iterator + Iterator := Board.BoardIterator_Create; + Iterator.AddFilter_ObjectSet(MkSet(eComponentObject)); + //Iterator.AddFilter_LayerSet(MkSet(eBottomLayer)); + Iterator.AddFilter_LayerSet(AllLayers); + Iterator.AddFilter_Method(eProcessAll); + + Comp := Iterator.FirstPCBObject; + While (Comp <> Nil) Do + Begin + IsCircle := False; + + // Check if Component Name property exists before extracting the text + If Comp.Name = Nil Then Exit; + + // On ne modifie pas le numéro du PCB, qui est la référence du logo de compagnie + If CompareString(Comp.Pattern, 'LOGOCOMPANY', 7) Then + Begin + Comp := Iterator.NextPCBObject; + Continue; + End; + + If CompareString(UpperCase(Comp.Pattern), 'MIRE', 4) Then + Begin + Comp := Iterator.NextPCBObject; + Continue; + End; + + If CompareString(UpperCase(Comp.Pattern), 'CRACK', 5) Then + Begin + Comp := Iterator.NextPCBObject; + Continue; + End; + + // On n´affiche pas les fiducials + If CompareString(UpperCase(Comp.Pattern), 'FIDG', 4) Then + Begin + Comp := Iterator.NextPCBObject; + Continue; + End; + + // On n´affiche pas la légende des couches + If CompareString(UpperCase(Comp.Pattern), 'LAYERS', 6) Then + Begin + Comp := Iterator.NextPCBObject; + Continue; + End; + + // Modify the component + PCBServer.SendMessageToRobots(Comp.I_ObjectAddress, c_Broadcast, PCBM_BeginModify , c_NoEventData); + + // Sauvegarde valeurs originales + OldCommentOn := Comp.CommentOn; + OldCompRotation := Comp.Rotation; + OldCompNameRotation := Comp.Name.Rotation; + + // Sauf pour les MH + if CompareString(Comp.Name.Text, 'MH', 2) Then + IsCircle := True; + if CompareString(Comp.Name.Text, 'TP', 2) Then + IsCircle := True; + + If IsCircle Then + Comp.Rotation := 0; + + // Et on désactive temporairement les commentaires + Comp.CommentOn := False; + + // On fait une rotation de la référence selon l'orientation du composant + Case Comp.Rotation of + 0, 180, 360 : Comp.Name.Rotation := 0; + 90, 270 : Comp.Name.Rotation := 90; + End; + + If Comp.Layer = eBottomLayer Then + Begin + Case Comp.Name.Rotation of + 90 : Comp.Name.Rotation := 270; + End; + End; + + FetchComponentMidPoints(Comp, MidX, MidY, MaxLen, MaxHeight); + + // string length * character_width <= MaxLen + // character_width = 2/3 * Size en mil. + // Ex: Si le size est de 30 mils, la largeur est environ de 20 mils. + // -> Size = MaxLen / strlen * 3/2 + strlen := Length(Comp.Name.Text); + + // Calcul de la grosseur de la référence selon la longueur disponible (bonding box). + TempSize := CoordToMils(MaxLen * RATIO_MAXLEN_REFDES) / strlen * 0.9; + if TempSize > TEXT_SIZE_MAX_MILS Then + TempSize := TEXT_SIZE_MAX_MILS; + + // Ajustement selon la hauteur disponible (bonding box). + If TempSize > (CoordToMils(MaxHeight) * RATIO_MAXHEIGHT_REFDES) Then + TempSize := CoordToMils(MaxHeight) * RATIO_MAXHEIGHT_REFDES; + + // Adjust size according to available space + NewSize := MilsToCoord(TempSize); + StrWidth := strlen * NewSize; + StrHeight:= NewSize; + + If Comp.Layer = eTopLayer Then + Begin + DestLayer := TOP_ASSEMBLY_LAYER; + Case Comp.Name.Rotation of + 0 : + Begin + OffsetX := -StrWidth / 2; + OffsetY := -StrHeight / 2; + End; + 90 : + Begin + OffsetX := StrHeight / 2; + OffsetY := -StrWidth / 2; + End; + End; + End; + If Comp.Layer = eBottomLayer Then + Begin + DestLayer := BOT_ASSEMBLY_LAYER; + Case Comp.Name.Rotation of + 0 : + Begin + OffsetX := StrWidth / 2; + OffsetY := -StrHeight / 2; + End; + 270 : + Begin + OffsetX := -StrHeight / 2; + OffsetY := -StrWidth / 2; + End; + End; + End; + + // Ajustement empirique... + Case Comp.Name.Rotation of + 0 : OffsetX := OffsetX * AJUSTEMENT_CENTRAGE; + 90 : OffsetY := OffsetY * AJUSTEMENT_CENTRAGE; + 270 : OffsetY := OffsetY * AJUSTEMENT_CENTRAGE; + End; + + // Sauvegarde nouvelles valeurs pour nouveau composant sur couche d'assemblage + NewRotation := Comp.Name.Rotation; + + // Restauration valeurs originales + Comp.CommentOn := OldCommentOn; + Comp.Rotation := OldCompRotation; + Comp.Name.Rotation := OldCompNameRotation; + + PCBServer.SendMessageToRobots(Comp.I_ObjectAddress, c_Broadcast, PCBM_EndModify , c_NoEventData); + + If IsCircle Then + // Crée un cercle représentant le composant + CreateBondingcircle(Board, DestLayer, MidX, MidY, MaxLen / 2) + Else + // Crée une boite représentant le composant + CreateBondingBox(Board, DestLayer); + + //Create a first text object non True Type font. + TextObj := PCBServer.PCBObjectFactory(eTextObject, eNoDimension, eCreate_Default); + + // notify that the pcb object is going to be modified + PCBServer.SendMessageToRobots(TextObj.I_ObjectAddress ,c_Broadcast, PCBM_BeginModify , c_NoEventData); + + TextObj.Layer := DestLayer; + TextObj.XLocation := MidX + OffsetX; + TextObj.YLocation := MidY + OffsetY; + TextObj.Rotation := NewRotation; + TextObj.Text := Comp.Name.Text; + TextObj.Size := NewSize; + TextObj.Width := MilsToCoord(MY_REF_WIDTH_MILS); + TextObj.UseTTFonts := False; + TextObj.Italic := False; + TextObj.Bold := False; + TextObj.FontName := 'Default'; + If Comp.Layer = eBottomLayer Then + TextObj.MirrorFlag := True; + + Board.AddPCBObject(TextObj); + + // notify that the pcb object has been modified + PCBServer.SendMessageToRobots(TextObj.I_ObjectAddress, c_Broadcast, PCBM_EndModify , c_NoEventData); + + Comp := Iterator.NextPCBObject; + End; + + Board.BoardIterator_Destroy(Iterator); + + Pcbserver.PostProcess; + Client.SendMessage('PCB:Zoom', 'Action=Redraw', 255, Client.CurrentView); +End; diff --git a/scripts/altium/pcb-lit-de-clou.pas b/scripts/altium/pcb-lit-de-clou.pas new file mode 100644 index 0000000..b54438c --- /dev/null +++ b/scripts/altium/pcb-lit-de-clou.pas @@ -0,0 +1,212 @@ +// Création d´un dessin pour lit de clou. Efface toutes les références +// sauf pour les JP et MP + +Const + MY_REF_SIZE_MILS = 30; + MY_REF_WIDTH_MILS = 2; + + // La grosseur du texte en fonction de la taille du composant, jusqu´à cette limite. + TEXT_SIZE_MAX_MILS = 100; + + // Ratio de la longueur du texte du refdes par rapport à la longueur maximale permise par les dimensions du composant. + RATIO_MAXLEN_REFDES = 0.85; + + // Ajustement empirique. + AJUSTEMENT_CENTRAGE = 0.90; + +Procedure PCB_CreationDessinLitDeClou; +Var + Board : IPCB_Board; + Comp : IPCB_Component; + Iterator : IPCB_BoardIterator; + + strlen, : Integer; + StrWidth : TCoord; + StrHeight : TCoord; + OffsetX : TCoord; + OffsetY : TCoord; + MidX, MidY : Integer; + MaxLen : Integer; + TempSize : Integer; + + Valide : Boolean; +Begin + Pcbserver.PreProcess; + + Board := PCBServer.GetCurrentPCBBoard; + If Not Assigned(Board) Then + Begin + ShowMessage('The Current Document is not a Protel PCB Document.'); + Exit; + End; + + // Setup Board iterator + Iterator := Board.BoardIterator_Create; + Iterator.AddFilter_ObjectSet(MkSet(eComponentObject)); + //Iterator.AddFilter_LayerSet(MkSet(eTopLayer)); + Iterator.AddFilter_LayerSet(AllLayers); + Iterator.AddFilter_Method(eProcessAll); + + Comp := Iterator.FirstPCBObject; + While (Comp <> Nil) Do + Begin + // Check if Component Name property exists before extracting the text + If Comp.Name = Nil Then Exit; + + /////ShowMessage('Processing component ' + Comp.Name.Text); + + // Modify the component + PCBServer.SendMessageToRobots(Comp.I_ObjectAddress, c_Broadcast, PCBM_BeginModify , c_NoEventData); + + Valide := False; + + // On n´affiche pas la référence... + Comp.NameOn := False; + + // ..sauf pour ces composants: + If CompareString(Comp.Name.Text, 'MP', 2) Then + Valide := True; + If CompareString(Comp.Name.Text, 'JPA', 3) Then + Valide := True; + If CompareString(Comp.Name.Text, 'JPB', 3) Then + Valide := True; + If CompareString(Comp.Name.Text, 'JPD', 3) Then + Valide := True; + If CompareString(Comp.Name.Text, 'JPE', 3) Then + Valide := True; + If CompareString(Comp.Name.Text, 'JPF', 3) Then + Valide := True; + If CompareString(Comp.Name.Text, 'JPG', 3) Then + Valide := True; + If CompareString(Comp.Name.Text, 'JPH', 3) Then + Valide := True; + If CompareString(Comp.Name.Text, 'JPI', 3) Then + Valide := True; + If CompareString(Comp.Name.Text, 'JPJ', 3) Then + Valide := True; + If CompareString(Comp.Name.Text, 'JPK', 3) Then + Valide := True; + If CompareString(Comp.Name.Text, 'JPL', 3) Then + Valide := True; + If CompareString(Comp.Name.Text, 'JPM', 3) Then + Valide := True; + If CompareString(Comp.Name.Text, 'JPN', 3) Then + Valide := True; + If CompareString(Comp.Name.Text, 'JPP', 3) Then + Valide := True; + + + If NOT Valide Then + Begin + Board.RemovePCBObject(Comp); + Comp := Iterator.NextPCBObject; + Continue; + End + Else + Begin + Comp.NameOn := True; + End; + + // Et on élimine les commentaires + Comp.CommentOn := False; + + // On fait une rotation de la référence selon l´orientation du composant + // sauf pour les MP qui sont ronds + If CompareString(Comp.Name.Text, 'MP', 2) Then + Begin + Comp.Name.Rotation := 0; + End + Else + Begin + Case Comp.Rotation of + 0 : Comp.Name.Rotation := 0; + 180 : Comp.Name.Rotation := 0; + 360 : Comp.Name.Rotation := 0; + 90 : Comp.Name.Rotation := 90; + 270 : Comp.Name.Rotation := 90; + End; + + If Comp.Layer = eBottomLayer Then + Begin + Case Comp.Name.Rotation of + 90 : Comp.Name.Rotation := 270; + End; + End; + End; + + FetchComponentMidPoints(Comp, MidX, MidY, MaxLen); + + // string length * character_width <= MaxLen + // character_width = 2/3 * Size en mil. + // Ex: Si le size est de 30 mils, la largeur est environ de 20 mils. + // -> Size = MaxLen / strlen * 3/2 + strlen := Length(Comp.Name.Text); + + // Adjust size + Comp.Name.UseTTFonts := False; + Comp.Name.Italic := False; + Comp.Name.Bold := False; + Comp.Name.FontName := 'Default'; + + TempSize := CoordToMils(MaxLen * RATIO_MAXLEN_REFDES) / strlen * 0.9; + if TempSize > TEXT_SIZE_MAX_MILS Then + TempSize := TEXT_SIZE_MAX_MILS; + + Comp.Name.Size := MilsToCoord(TempSize); + Comp.Name.Width := MilsToCoord(MY_REF_WIDTH_MILS); + + StrWidth := strlen * Comp.Name.Size; + StrHeight:= Comp.Name.Size; + + If Comp.Layer = eTopLayer Then + Begin + Case Comp.Name.Rotation of + 0 : + Begin + OffsetX := -StrWidth / 2; + OffsetY := -StrHeight / 2; + End; + 90 : + Begin + OffsetX := StrHeight / 2; + OffsetY := -StrWidth / 2; + End; + End; + End; + If Comp.Layer = eBottomLayer Then + Begin + Case Comp.Name.Rotation of + 0 : + Begin + OffsetX := StrWidth / 2; + OffsetY := -StrHeight / 2; + End; + 270 : + Begin + OffsetX := -StrHeight / 2; + OffsetY := -StrWidth / 2; + End; + End; + End; + + // Ajustement empirique... + Case Comp.Name.Rotation of + 0 : OffsetX := OffsetX * AJUSTEMENT_CENTRAGE; + 90 : OffsetY := OffsetY * AJUSTEMENT_CENTRAGE; + 270 : OffsetY := OffsetY * AJUSTEMENT_CENTRAGE; + End; + + Comp.Name.XLocation := MidX + OffsetX; + Comp.Name.YLocation := MidY + OffsetY; + + PCBServer.SendMessageToRobots(Comp.I_ObjectAddress, c_Broadcast, PCBM_EndModify , c_NoEventData); + //Client.SendMessage('PCB:Zoom', 'Action=Redraw', 255, Client.CurrentView); + + Comp := Iterator.NextPCBObject; + End; + + Board.BoardIterator_Destroy(Iterator); + + Pcbserver.PostProcess; + Client.SendMessage('PCB:Zoom', 'Action=Redraw', 255, Client.CurrentView); +End; diff --git a/scripts/altium/pcb-resize-refdes-all.pas b/scripts/altium/pcb-resize-refdes-all.pas new file mode 100644 index 0000000..6e40326 --- /dev/null +++ b/scripts/altium/pcb-resize-refdes-all.pas @@ -0,0 +1,71 @@ +// Redimensionnement du texte des références de tous les composants + +Procedure PCB_ResizeRefDes_All; +Var + Board : IPCB_Board; + Comp : IPCB_Component; + Iterator : IPCB_BoardIterator; + +Begin + Pcbserver.PreProcess; + + Board := PCBServer.GetCurrentPCBBoard; + If Not Assigned(Board) Then + Begin + ShowMessage('The Current Document is not a Protel PCB Document.'); + Exit; + End; + + // Setup Board iterator + Iterator := Board.BoardIterator_Create; + Iterator.AddFilter_ObjectSet(MkSet(eComponentObject)); + Iterator.AddFilter_LayerSet(AllLayers); + Iterator.AddFilter_Method(eProcessAll); + + Comp := Iterator.FirstPCBObject; + While (Comp <> Nil) Do + Begin + // On ne modifie pas le numéro du PCB, qui est la référence du logo de compagnie + If CompareString(Comp.Pattern, 'LOGOCOMPANY', 7) Then + Begin + Comp := Iterator.NextPCBObject; + Continue; + End; + + If CompareString(UpperCase(Comp.Pattern), 'MIRE', 4) Then + Begin + Comp := Iterator.NextPCBObject; + Continue; + End; + + If CompareString(UpperCase(Comp.Pattern), 'CRACK', 5) Then + Begin + Comp := Iterator.NextPCBObject; + Continue; + End; + + // On ne modifie pas les fiducials + If CompareString(UpperCase(Comp.Pattern), 'FIDG', 4) Then + Begin + Comp := Iterator.NextPCBObject; + Continue; + End; + + // On ne modifie pas la légende des couches + If CompareString(UpperCase(Comp.Pattern), 'LAYERS', 6) Then + Begin + Comp := Iterator.NextPCBObject; + Continue; + End; + + // Call resize function + ResizeRefDes(Comp); + + Comp := Iterator.NextPCBObject; + End; + + Board.BoardIterator_Destroy(Iterator); + + Pcbserver.PostProcess; + Client.SendMessage('PCB:Zoom', 'Action=Redraw', 255, Client.CurrentView); +End; diff --git a/scripts/altium/pcb-resize-refdes-selection.pas b/scripts/altium/pcb-resize-refdes-selection.pas new file mode 100644 index 0000000..63c4f5c --- /dev/null +++ b/scripts/altium/pcb-resize-refdes-selection.pas @@ -0,0 +1,33 @@ +// Summary: Change reference designator text size of the selected component. + +Procedure PCB_ResizeRefDes_Selection; +Var + Board : IPCB_Board; + Comp : IPCB_Component; + x,y, : TCoord; + +Begin + Pcbserver.PreProcess; + + Try + Board := PCBServer.GetCurrentPCBBoard; + If Not Assigned(Board) Then + Begin + ShowMessage('The Current Document is not a Protel PCB Document.'); + Exit; + End; + + Board.ChooseLocation(x,y, 'Choose Component'); + Comp := Board.GetObjectAtXYAskUserIfAmbiguous(x,y,MkSet(eComponentObject),AllLayers, eEditAction_Select); + If Not Assigned(Comp) Then Exit; + + // Call resize function + ResizeRefDes(Comp); + + Finally + Pcbserver.PostProcess; + Client.SendMessage('PCB:Zoom', 'Action=Redraw', 255, Client.CurrentView); + End; + + +End; diff --git a/scripts/altium/sch-align-refdes-all.pas b/scripts/altium/sch-align-refdes-all.pas new file mode 100644 index 0000000..2e79442 --- /dev/null +++ b/scripts/altium/sch-align-refdes-all.pas @@ -0,0 +1,45 @@ +// Alignement des attributs de tous les composants dans un schéma + +Procedure SCH_ResizeRefDes_All; +Var + CurrentSheet : ISch_Document; + Comp : ISch_Component; + Iterator : ISch_Iterator; + +Begin + // Check if schematic server exists or not. + If SchServer = Nil Then Exit; + + CurrentSheet := SchServer.GetCurrentSchDocument; + If CurrentSheet = Nil Then + Begin + ShowMessage('The current document is not a schematic document.'); + Exit; + End; + + Try + SchServer.ProcessControl.PreProcess(CurrentSheet, ''); + + // Set up iterator to look for Component objects only + Iterator := CurrentSheet.SchIterator_Create; + If Iterator = Nil Then Exit; + + Iterator.AddFilter_ObjectSet(MkSet(eSchComponent)); + Try + Comp := Iterator.FirstSchObject; + While Comp <> Nil Do + Begin + SCH_AlignRefDes(Comp); + Comp := Iterator.NextSchObject; + End; + + Finally + Currentsheet.SchIterator_Destroy(iterator); + End; + + Finally + SchServer.ProcessControl.PostProcess(CurrentSheet, ''); + End; + + CurrentSheet.GraphicallyInvalidate; +End; diff --git a/scripts/altium/sch-align-refdes-selection.pas b/scripts/altium/sch-align-refdes-selection.pas new file mode 100644 index 0000000..211e18b --- /dev/null +++ b/scripts/altium/sch-align-refdes-selection.pas @@ -0,0 +1,46 @@ +// Alignement des attributs du composant sélectionné dans un schéma + +Procedure SCH_AlignRefDes_Selection; +Var + CurrentSheet : ISch_Document; + Comp : ISch_Component; + Iterator : ISch_Iterator; + +Begin + // Check if schematic server exists or not. + If SchServer = Nil Then Exit; + + CurrentSheet := SchServer.GetCurrentSchDocument; + If CurrentSheet = Nil Then + Begin + ShowMessage('The current document is not a schematic document.'); + Exit; + End; + + Try + SchServer.ProcessControl.PreProcess(CurrentSheet, ''); + + // Set up iterator to look for Component objects only + Iterator := CurrentSheet.SchIterator_Create; + If Iterator = Nil Then Exit; + + Iterator.AddFilter_ObjectSet(MkSet(eSchComponent)); + Try + Comp := Iterator.FirstSchObject; + While Comp <> Nil Do + Begin + // Alignement seulement si le composant a été sélectionné. + If Comp.Selection Then SCH_AlignRefDes(Comp); + Comp := Iterator.NextSchObject; + End; + + Finally + Currentsheet.SchIterator_Destroy(iterator); + End; + + Finally + SchServer.ProcessControl.PostProcess(CurrentSheet, ''); + End; + + CurrentSheet.GraphicallyInvalidate; +End; diff --git a/scripts/altium/sch-align-refdes.pas b/scripts/altium/sch-align-refdes.pas new file mode 100644 index 0000000..1575f11 --- /dev/null +++ b/scripts/altium/sch-align-refdes.pas @@ -0,0 +1,262 @@ +// Alignement des attributs des composants dans un schéma + +// TODO: +// -Mettre attribut "Mirrored" à FALSE pour les R, C et L + +Const + DEFAULT_FONT_NAME = 'Arial'; + DEFAULT_FONT_SIZE = 8; + + R_SYMBOL_LENGTH_MILS = 400; // Longueur du symbole + R_SYMBOL_HEIGHT_MILS = 050; // Hauteur du symbole + + C_DISPLAY_VOLTAGE = True; // Affichage de l'attribut voltage + C_SYMBOL_LENGTH_MILS = 300; // Longueur du symbole + C_SYMBOL_HEIGHT_MILS = 160; // Hauteur du symbole + + L_SYMBOL_LENGTH_MILS = 500; // Longueur du symbole + L_SYMBOL_HEIGHT_MILS = 090; // Hauteur du symbole (2 différentes hauteurs, 50 et 100mil...) + + D_SYMBOL_LENGTH_MILS = 400; // Longueur du symbole + D_SYMBOL_HEIGHT_MILS = 150; // Hauteur du symbole (2 différentes hauteurs, 50 et 100mil...) + + PARAM_OFFSET_MILS = 025; // Distance entre le graphique et le texte + PARAM_TEXT_HEIGHT_ADJUST = 015; // Pour compenser la hauteur du texte si alignement vertical au centre. + PARAMS_Y_SEP = 080; // Distance verticale entre 2 paramètres + + // global variables +Var + FontID : TFontID; + VALUE_POS : Integer; + VOLTAGE_POS : Integer; + POWER_POS : Integer; + CURRENT_POS : Integer; + MPN_POS : Integer; + SymbolLengthMils : Integer; + SymbolHeightMils : Integer; + +Function SCH_AnalyseComponent(Comp : ISch_Component); +Var + s : String; + +Begin + SymbolLengthMils := 0; + SymbolHeightMils := 0; + + s := Copy(UpperCase(Comp.Designator.Text), 1, 1); + + If s = 'R' Then Begin + SymbolLengthMils := R_SYMBOL_LENGTH_MILS; + SymbolHeightMils := R_SYMBOL_HEIGHT_MILS; + VALUE_POS := 0; + POWER_POS := 1; + End; + If s = 'L' Then Begin + SymbolLengthMils := L_SYMBOL_LENGTH_MILS; + SymbolHeightMils := L_SYMBOL_HEIGHT_MILS; + VALUE_POS := 0; + CURRENT_POS := 1; + End; + If s = 'C' Then Begin + SymbolLengthMils := C_SYMBOL_LENGTH_MILS; + SymbolHeightMils := C_SYMBOL_HEIGHT_MILS; + VALUE_POS := 0; + VOLTAGE_POS := 1; + End; + If s = 'D' Then Begin + SymbolLengthMils := D_SYMBOL_LENGTH_MILS; + SymbolHeightMils := D_SYMBOL_HEIGHT_MILS; + VALUE_POS := 0; // For LEDs, VALUE = COLOR + VOLTAGE_POS := 0; + CURRENT_POS := 1; + POWER_POS := 1; + MPN_POS := 2; + End; + + // Pour avoir les ajustements à partir du milieu du composant + SymbolLengthMils := SymbolLengthMils / 2; + SymbolHeightMils := SymbolHeightMils / 2; +End; + + +Function SCH_ProcessRefDes(Comp : ISch_Component; Parameter : ISch_Parameter); +Var + CompLoc : TLocation; // Position du composant + ParamLoc : TLocation; + DX, DY : Integer; // Position du paramètre (delta par rapport au composant) + ParamOffset : Integer; + ParamJust : TTextJustification; + s : String; +Begin + DX := 0; + DY := 0; + + s := Copy(UpperCase(Comp.Designator.Text), 1, 1); + + // Trouve le X de départ, en Y le milieu du composant + Case Comp.Orientation of + eRotate0 : + Begin + DX := SymbolLengthMils; + End; + eRotate90 : + Begin + DX := SymbolHeightMils + PARAM_OFFSET_MILS; + DY := SymbolLengthMils; + End; + eRotate180 : + Begin + DX := - SymbolLengthMils; + End; + eRotate270 : + Begin + DX := SymbolHeightMils + PARAM_OFFSET_MILS; + DY := - SymbolLengthMils; + End; + End; + + Case Comp.Orientation of + eRotate0, eRotate180 : + Begin + ParamJust := eJustify_Center; + If Parameter = Nil Then + DY := SymbolHeightMils + PARAM_OFFSET_MILS + PARAM_TEXT_HEIGHT_ADJUST; // Designator + end; + eRotate90, eRotate270 : + Begin + ParamJust := eJustify_CenterLeft; + If Parameter = Nil Then // Designator + DY := DY + PARAMS_Y_SEP; // Devrait changer selon le nombre de paramètres à afficher + End; + End; + + If Parameter <> Nil Then + Begin + ParamOffset := -1; + + // Process Parameter, not designator + If CompareString(UpperCase(Parameter.Name), 'VALUE', 5) Then + Begin + ParamOffset := VALUE_POS; + End; + + If CompareString(UpperCase(Parameter.Name), 'VOLTAGE', 7) Then + Begin + If s = 'C' Then Parameter.IsHidden := False; // force display of voltage parameter + ParamOffset := VOLTAGE_POS; + End; + + If CompareString(UpperCase(Parameter.Name), 'POWER', 5) Then + Begin + ParamOffset := POWER_POS; + End; + + If CompareString(UpperCase(Parameter.Name), 'CURRENT', 7) Then + Begin + ParamOffset := CURRENT_POS; + End; + + If CompareString(UpperCase(Parameter.Name), 'MPN', 3) Then + Begin + ParamOffset := MPN_POS; + End; + + If ParamOffset < 0 Then + Begin + ParamOffset := 2; // TEMP!!!!!!! + End; + + Case Comp.Orientation of + eRotate0, eRotate180 : + Begin + DY := - (SymbolHeightMils + PARAM_OFFSET_MILS + PARAM_TEXT_HEIGHT_ADJUST + (PARAMS_Y_SEP * ParamOffset)); + end; + eRotate90, eRotate270 : + Begin + DY := DY - (PARAMS_Y_SEP * ParamOffset); + End; + End; + + End; + + // Debug + If s = 'X' Then + Begin + If Parameter = Nil Then + ShowMessage('LOC = ' + IntToStr(DX) + ',' + IntToStr(DY)); + End; + + CompLoc := Comp.GetState_Location; + ParamLoc := CompLoc; + ParamLoc.X := ParamLoc.X + MilsToCoord(DX); + ParamLoc.Y := ParamLoc.Y + MilsToCoord(DY); + + If Parameter = Nil Then + Begin + // Designator + Comp.Designator.Justification := ParamJust; + Comp.Designator.SetState_Location(ParamLoc); + Comp.Designator.Orientation := eRotate0; + End + Else + Begin + Parameter.Justification := ParamJust; + Parameter.SetState_Location(ParamLoc); + Parameter.SetState_Orientation(eRotate0); + End; + +End; + +// Standardisation de la police de caractère +Function SCH_SetFont(Comp : ISch_Component; Parameter : ISch_Parameter); +Var + s : String; +Begin + If Parameter = Nil Then + Comp.Designator.FontId := FontID // Designator + Else + Parameter.FontId := FontID; +End; + +Function SCH_AlignRefDes(Comp : ISch_Component); +Var + PIterator : ISch_Iterator; + Parameter : ISch_Parameter; +Begin + FontID := SchServer.FontManager.GetFontID(DEFAULT_FONT_SIZE,0,False,False,False,False, DEFAULT_FONT_NAME); + + Try + VALUE_POS := -1; + VOLTAGE_POS := -1; + POWER_POS := -1; + CURRENT_POS := -1; + MPN_POS := -1; + + SCH_SetFont(Comp, Nil); + SCH_AnalyseComponent(Comp); + + If SymbolLengthMils <> 0 Then + SCH_ProcessRefDes(Comp, Nil); + + PIterator := Comp.SchIterator_Create; + PIterator.AddFilter_ObjectSet(MkSet(eParameter)); + + Parameter := PIterator.FirstSchObject; + While Parameter <> Nil Do + Begin + If CompareString(UpperCase(Parameter.Name), 'COMMENT', 7) Then + Begin + // Pour ne pas afficher le commentaire (#compagnie) + Parameter.IsHidden := True; + End + Else + If SymbolLengthMils <> 0 Then + SCH_ProcessRefDes(Comp, Parameter); + + SCH_SetFont(Comp, Parameter); + Parameter := PIterator.NextSchObject; + End; + Finally + Comp.SchIterator_Destroy(PIterator); + End; +End; diff --git a/scripts/altium/scripts.PrjScr b/scripts/altium/scripts.PrjScr new file mode 100644 index 0000000..efecd15 --- /dev/null +++ b/scripts/altium/scripts.PrjScr @@ -0,0 +1,1066 @@ +[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= +ReportSuppressedErrorsInMessages=0 + +[Document1] +DocumentPath=functions.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 + +[Document2] +DocumentPath=cleanlib.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 + +[Document3] +DocumentPath=pcb-resize-refdes-all.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 + +[Document4] +DocumentPath=pcb-assembly-drawings.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 + +[Document5] +DocumentPath=pcb-lit-de-clou.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 + +[Document6] +DocumentPath=sch-align-refdes.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 + +[Document7] +DocumentPath=sch-align-refdes-all.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 + +[Document8] +DocumentPath=pcb-resize-refdes-selection.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 + +[Document9] +DocumentPath=sch-align-refdes-selection.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 + +[OutputGroup1] +Name=Netlist Outputs +Description= +TargetPrinter=HP LaserJet 1020 +PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintWhat=1 +OutputType1=EDIF +OutputName1=EDIF for PCB +OutputDocumentPath1= +OutputVariantName1= +OutputDefault1=0 +OutputType2=MultiWire +OutputName2=MultiWire +OutputDocumentPath2= +OutputVariantName2= +OutputDefault2=0 +OutputType3=Pcad +OutputName3=Pcad for PCB +OutputDocumentPath3= +OutputVariantName3= +OutputDefault3=0 +OutputType4=ProtelNetlist +OutputName4=Protel +OutputDocumentPath4= +OutputVariantName4= +OutputDefault4=0 +OutputType5=SIMetrixNetlist +OutputName5=SIMetrix +OutputDocumentPath5= +OutputVariantName5= +OutputDefault5=0 +OutputType6=SIMPLISNetlist +OutputName6=SIMPLIS +OutputDocumentPath6= +OutputVariantName6= +OutputDefault6=0 +OutputType7=Verilog +OutputName7=Verilog File +OutputDocumentPath7= +OutputVariantName7= +OutputDefault7=0 +OutputType8=VHDL +OutputName8=VHDL File +OutputDocumentPath8= +OutputVariantName8= +OutputDefault8=0 +OutputType9=XSpiceNetlist +OutputName9=XSpice Netlist +OutputDocumentPath9= +OutputVariantName9= +OutputDefault9=0 +OutputType10=CadnetixNetlist +OutputName10=Cadnetix Netlist +OutputDocumentPath10= +OutputVariantName10= +OutputDefault10=0 +OutputType11=CalayNetlist +OutputName11=Calay Netlist +OutputDocumentPath11= +OutputVariantName11= +OutputDefault11=0 +OutputType12=EESofNetlist +OutputName12=EESof Netlist +OutputDocumentPath12= +OutputVariantName12= +OutputDefault12=0 +OutputType13=IntergraphNetlist +OutputName13=Intergraph Netlist +OutputDocumentPath13= +OutputVariantName13= +OutputDefault13=0 +OutputType14=MentorBoardStationNetlist +OutputName14=Mentor BoardStation Netlist +OutputDocumentPath14= +OutputVariantName14= +OutputDefault14=0 +OutputType15=OrCadPCB2Netlist +OutputName15=Orcad/PCB2 Netlist +OutputDocumentPath15= +OutputVariantName15= +OutputDefault15=0 +OutputType16=PADSNetlist +OutputName16=PADS ASCII Netlist +OutputDocumentPath16= +OutputVariantName16= +OutputDefault16=0 +OutputType17=PCADNetlist +OutputName17=PCAD Netlist +OutputDocumentPath17= +OutputVariantName17= +OutputDefault17=0 +OutputType18=PCADnltNetlist +OutputName18=PCADnlt Netlist +OutputDocumentPath18= +OutputVariantName18= +OutputDefault18=0 +OutputType19=Protel2Netlist +OutputName19=Protel2 Netlist +OutputDocumentPath19= +OutputVariantName19= +OutputDefault19=0 +OutputType20=RacalNetlist +OutputName20=Racal Netlist +OutputDocumentPath20= +OutputVariantName20= +OutputDefault20=0 +OutputType21=RINFNetlist +OutputName21=RINF Netlist +OutputDocumentPath21= +OutputVariantName21= +OutputDefault21=0 +OutputType22=SciCardsNetlist +OutputName22=SciCards Netlist +OutputDocumentPath22= +OutputVariantName22= +OutputDefault22=0 +OutputType23=TangoNetlist +OutputName23=Tango Netlist +OutputDocumentPath23= +OutputVariantName23= +OutputDefault23=0 +OutputType24=TelesisNetlist +OutputName24=Telesis Netlist +OutputDocumentPath24= +OutputVariantName24= +OutputDefault24=0 +OutputType25=WireListNetlist +OutputName25=WireList Netlist +OutputDocumentPath25= +OutputVariantName25= +OutputDefault25=0 + +[OutputGroup2] +Name=Simulator Outputs +Description= +TargetPrinter=HP LaserJet 1020 +PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintWhat=1 +OutputType1=AdvSimNetlist +OutputName1=Mixed Sim +OutputDocumentPath1= +OutputVariantName1= +OutputDefault1=0 +OutputType2=SIMetrix_Sim +OutputName2=SIMetrix +OutputDocumentPath2= +OutputVariantName2= +OutputDefault2=0 +OutputType3=SIMPLIS_Sim +OutputName3=SIMPLIS +OutputDocumentPath3= +OutputVariantName3= +OutputDefault3=0 + +[OutputGroup3] +Name=Documentation Outputs +Description= +TargetPrinter=HP LaserJet 1020 +PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintWhat=1 +OutputType1=Composite +OutputName1=Composite Drawing +OutputDocumentPath1= +OutputVariantName1= +OutputDefault1=0 +PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType2=Logic Analyser Print +OutputName2=Logic Analyser Prints +OutputDocumentPath2= +OutputVariantName2= +OutputDefault2=0 +PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType3=OpenBus Print +OutputName3=OpenBus Prints +OutputDocumentPath3= +OutputVariantName3= +OutputDefault3=0 +PageOptions3=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType4=PCB 3D Print +OutputName4=PCB 3D Prints +OutputDocumentPath4= +OutputVariantName4=[No Variations] +OutputDefault4=0 +PageOptions4=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType5=PCB Print +OutputName5=PCB Prints +OutputDocumentPath5= +OutputVariantName5= +OutputDefault5=0 +PageOptions5=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType6=Schematic Print +OutputName6=Schematic Prints +OutputDocumentPath6= +OutputVariantName6= +OutputDefault6=0 +PageOptions6=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType7=SimView Print +OutputName7=SimView Prints +OutputDocumentPath7= +OutputVariantName7= +OutputDefault7=0 +PageOptions7=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType8=Wave Print +OutputName8=Wave Prints +OutputDocumentPath8= +OutputVariantName8= +OutputDefault8=0 +PageOptions8=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType9=Assembler Source Print +OutputName9=Assembler Source Prints +OutputDocumentPath9= +OutputVariantName9= +OutputDefault9=0 +PageOptions9=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType10=C Source Print +OutputName10=C Source Prints +OutputDocumentPath10= +OutputVariantName10= +OutputDefault10=0 +PageOptions10=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType11=C/C++ Header Print +OutputName11=C/C++ Header 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=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType12=C++ Source Print +OutputName12=C++ Source 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=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType13=PCB 3D Video +OutputName13=PCB 3D Video +OutputDocumentPath13= +OutputVariantName13=[No Variations] +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=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType14=Report Print +OutputName14=Report Prints +OutputDocumentPath14= +OutputVariantName14= +OutputDefault14=0 +PageOptions14=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType15=Software Platform Print +OutputName15=Software Platform Prints +OutputDocumentPath15= +OutputVariantName15= +OutputDefault15=0 +PageOptions15=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType16=VHDL Print +OutputName16=VHDL Prints +OutputDocumentPath16= +OutputVariantName16= +OutputDefault16=0 +PageOptions16=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType17=WaveSim Print +OutputName17=WaveSim Prints +OutputDocumentPath17= +OutputVariantName17= +OutputDefault17=0 +PageOptions17=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 + +[OutputGroup4] +Name=Assembly Outputs +Description= +TargetPrinter=HP LaserJet 1020 +PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintWhat=1 +OutputType1=Assembly +OutputName1=Assembly Drawings +OutputDocumentPath1= +OutputVariantName1=[No Variations] +OutputDefault1=0 +PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType2=Pick Place +OutputName2=Generates pick and place files +OutputDocumentPath2= +OutputVariantName2=[No Variations] +OutputDefault2=0 +OutputType3=Test Points For Assembly +OutputName3=Test Point Report +OutputDocumentPath3= +OutputVariantName3=[No Variations] +OutputDefault3=0 + +[OutputGroup5] +Name=Fabrication Outputs +Description= +TargetPrinter=HP LaserJet 1020 +PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintWhat=1 +OutputType1=CompositeDrill +OutputName1=Composite Drill 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=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType2=Drill +OutputName2=Drill Drawing/Guides +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=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType3=Final +OutputName3=Final Artwork Prints +OutputDocumentPath3= +OutputVariantName3=[No Variations] +OutputDefault3=0 +PageOptions3=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType4=Gerber +OutputName4=Gerber Files +OutputDocumentPath4= +OutputVariantName4=[No Variations] +OutputDefault4=0 +OutputType5=Mask +OutputName5=Solder/Paste Mask Prints +OutputDocumentPath5= +OutputVariantName5= +OutputDefault5=0 +PageOptions5=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType6=NC Drill +OutputName6=NC Drill Files +OutputDocumentPath6= +OutputVariantName6= +OutputDefault6=0 +OutputType7=ODB +OutputName7=ODB++ Files +OutputDocumentPath7= +OutputVariantName7=[No Variations] +OutputDefault7=0 +OutputType8=Plane +OutputName8=Power-Plane Prints +OutputDocumentPath8= +OutputVariantName8= +OutputDefault8=0 +PageOptions8=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType9=Test Points +OutputName9=Test Point Report +OutputDocumentPath9= +OutputVariantName9= +OutputDefault9=0 + +[OutputGroup6] +Name=Report Outputs +Description= +TargetPrinter=HP LaserJet 1020 +PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintWhat=1 +OutputType1=BOM_PartType +OutputName1=Bill of Materials +OutputDocumentPath1= +OutputVariantName1=[No Variations] +OutputDefault1=0 +PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType2=ComponentCrossReference +OutputName2=Component Cross Reference Report +OutputDocumentPath2= +OutputVariantName2=[No Variations] +OutputDefault2=0 +OutputType3=ReportHierarchy +OutputName3=Report Project Hierarchy +OutputDocumentPath3= +OutputVariantName3=[No Variations] +OutputDefault3=0 +OutputType4=SimpleBOM +OutputName4=Simple BOM +OutputDocumentPath4= +OutputVariantName4=[No Variations] +OutputDefault4=0 +OutputType5=SinglePinNetReporter +OutputName5=Report Single Pin Nets +OutputDocumentPath5= +OutputVariantName5=[No Variations] +OutputDefault5=0 +OutputType6=Script +OutputName6=Script Output +OutputDocumentPath6= +OutputVariantName6=[No Variations] +OutputDefault6=0 + +[OutputGroup7] +Name=Other Outputs +Description= +TargetPrinter=HP LaserJet 1020 +PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintWhat=1 +OutputType1=Text Print +OutputName1=Text Print +OutputDocumentPath1= +OutputVariantName1= +OutputDefault1=0 +PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType2=Text Print +OutputName2=Text Print +OutputDocumentPath2= +OutputVariantName2= +OutputDefault2=0 +PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType3=Text Print +OutputName3=Text Print +OutputDocumentPath3= +OutputVariantName3= +OutputDefault3=0 +PageOptions3=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType4=Text Print +OutputName4=Text Print +OutputDocumentPath4= +OutputVariantName4= +OutputDefault4=0 +PageOptions4=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType5=Text Print +OutputName5=Text Print +OutputDocumentPath5= +OutputVariantName5= +OutputDefault5=0 +PageOptions5=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType6=Text Print +OutputName6=Text Print +OutputDocumentPath6= +OutputVariantName6= +OutputDefault6=0 +PageOptions6=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType7=Text Print +OutputName7=Text Print +OutputDocumentPath7= +OutputVariantName7= +OutputDefault7=0 +PageOptions7=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType8=Text Print +OutputName8=Text Print +OutputDocumentPath8= +OutputVariantName8= +OutputDefault8=0 +PageOptions8=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType9=Text Print +OutputName9=Text Print +OutputDocumentPath9= +OutputVariantName9= +OutputDefault9=0 +PageOptions9=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType10=Text Print +OutputName10=Text Print +OutputDocumentPath10= +OutputVariantName10= +OutputDefault10=0 +PageOptions10=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType11=Text Print +OutputName11=Text Print +OutputDocumentPath11= +OutputVariantName11= +OutputDefault11=0 +PageOptions11=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType12=Text Print +OutputName12=Text Print +OutputDocumentPath12= +OutputVariantName12= +OutputDefault12=0 +PageOptions12=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType13=Text Print +OutputName13=Text Print +OutputDocumentPath13= +OutputVariantName13= +OutputDefault13=0 +PageOptions13=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType14=Text Print +OutputName14=Text Print +OutputDocumentPath14= +OutputVariantName14= +OutputDefault14=0 +PageOptions14=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType15=Text Print +OutputName15=Text Print +OutputDocumentPath15= +OutputVariantName15= +OutputDefault15=0 +PageOptions15=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType16=Text Print +OutputName16=Text Print +OutputDocumentPath16= +OutputVariantName16= +OutputDefault16=0 +PageOptions16=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType17=Text Print +OutputName17=Text Print +OutputDocumentPath17= +OutputVariantName17= +OutputDefault17=0 +PageOptions17=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType18=Text Print +OutputName18=Text Print +OutputDocumentPath18= +OutputVariantName18= +OutputDefault18=0 +PageOptions18=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType19=Text Print +OutputName19=Text Print +OutputDocumentPath19= +OutputVariantName19= +OutputDefault19=0 +PageOptions19=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType20=Text Print +OutputName20=Text Print +OutputDocumentPath20= +OutputVariantName20= +OutputDefault20=0 +PageOptions20=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType21=Text Print +OutputName21=Text Print +OutputDocumentPath21= +OutputVariantName21= +OutputDefault21=0 +PageOptions21=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType22=Text Print +OutputName22=Text Print +OutputDocumentPath22= +OutputVariantName22= +OutputDefault22=0 +PageOptions22=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType23=Text Print +OutputName23=Text Print +OutputDocumentPath23= +OutputVariantName23= +OutputDefault23=0 +PageOptions23=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType24=Text Print +OutputName24=Text Print +OutputDocumentPath24= +OutputVariantName24= +OutputDefault24=0 +PageOptions24=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType25=Text Print +OutputName25=Text Print +OutputDocumentPath25= +OutputVariantName25= +OutputDefault25=0 +PageOptions25=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType26=Text Print +OutputName26=Text Print +OutputDocumentPath26= +OutputVariantName26= +OutputDefault26=0 +PageOptions26=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType27=Text Print +OutputName27=Text Print +OutputDocumentPath27= +OutputVariantName27= +OutputDefault27=0 +PageOptions27=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType28=Text Print +OutputName28=Text Print +OutputDocumentPath28= +OutputVariantName28= +OutputDefault28=0 +PageOptions28=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType29=Text Print +OutputName29=Text Print +OutputDocumentPath29= +OutputVariantName29= +OutputDefault29=0 +PageOptions29=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 + +[OutputGroup8] +Name=Validation Outputs +Description= +TargetPrinter=HP LaserJet 1020 +PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintWhat=1 +OutputType1=Design Rules Check +OutputName1=Design Rules Check +OutputDocumentPath1= +OutputVariantName1= +OutputDefault1=0 +PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType2=Differences Report +OutputName2=Differences Report +OutputDocumentPath2= +OutputVariantName2= +OutputDefault2=0 +PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType3=Electrical Rules Check +OutputName3=Electrical Rules Check +OutputDocumentPath3= +OutputVariantName3= +OutputDefault3=0 +PageOptions3=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +OutputType4=Footprint Comparison Report +OutputName4=Footprint Comparison Report +OutputDocumentPath4= +OutputVariantName4= +OutputDefault4=0 + +[OutputGroup9] +Name=Export Outputs +Description= +TargetPrinter=HP LaserJet 1020 +PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintWhat=1 +OutputType1=ExportSTEP +OutputName1=Export STEP +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 + +[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 + +[Electrical Rules Check] +Type1=1 +Type2=1 +Type3=2 +Type4=1 +Type5=2 +Type6=2 +Type7=1 +Type8=1 +Type9=1 +Type10=1 +Type11=2 +Type12=2 +Type13=2 +Type14=1 +Type15=1 +Type16=1 +Type17=1 +Type18=1 +Type19=1 +Type20=1 +Type21=1 +Type22=1 +Type23=1 +Type24=1 +Type25=2 +Type26=2 +Type27=2 +Type28=1 +Type29=1 +Type30=1 +Type31=1 +Type32=2 +Type33=2 +Type34=2 +Type35=1 +Type36=2 +Type37=1 +Type38=2 +Type39=2 +Type40=2 +Type41=0 +Type42=2 +Type43=1 +Type44=1 +Type45=2 +Type46=1 +Type47=2 +Type48=2 +Type49=1 +Type50=2 +Type51=1 +Type52=1 +Type53=1 +Type54=1 +Type55=1 +Type56=2 +Type57=1 +Type58=1 +Type59=0 +Type60=1 +Type61=2 +Type62=2 +Type63=1 +Type64=0 +Type65=2 +Type66=3 +Type67=2 +Type68=2 +Type69=1 +Type70=2 +Type71=2 +Type72=2 +Type73=2 +Type74=1 +Type75=2 +Type76=1 +Type77=1 +Type78=1 +Type79=1 +Type80=2 +Type81=3 +Type82=3 +Type83=3 +Type84=3 +Type85=3 +Type86=2 +Type87=2 +Type88=2 +Type89=1 +Type90=1 +Type91=3 +Type92=3 +Type93=2 +Type94=2 +Type95=2 +Type96=2 +Type97=2 +Type98=0 +Type99=1 +Type100=2 + +[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 +MatchParameter1=Comment +MatchStrictly1=1 +MatchParameter2=Library Reference +MatchStrictly2=1 +PhysicalNamingFormat=$Component_$RoomName +GlobalIndexSortOrder=3 + +[PrjClassGen] +CompClassManualEnabled=0 +CompClassManualRoomEnabled=0 +NetClassAutoBusEnabled=1 +NetClassAutoCompEnabled=0 +NetClassAutoNamedHarnessEnabled=0 +NetClassManualEnabled=0 + +[LibraryUpdateOptions] +SelectedOnly=0 +PartTypes=0 +FullReplace=1 +UpdateDesignatorLock=1 +UpdatePartIDLock=1 +PreserveParameterLocations=1 +DoGraphics=1 +DoParameters=1 +DoModels=1 +AddParameters=0 +RemoveParameters=0 +AddModels=1 +RemoveModels=1 +UpdateCurrentModels=1 + +[DatabaseUpdateOptions] +SelectedOnly=0 +PartTypes=0 + +[Comparison Options] +ComparisonOptions0=Kind=Net|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0 +ComparisonOptions1=Kind=Net Class|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0 +ComparisonOptions2=Kind=Component Class|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0 +ComparisonOptions3=Kind=Rule|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0 +ComparisonOptions4=Kind=Differential Pair|MinPercent=50|MinMatch=1|ShowMatch=0|Confirm=0|UseName=0|InclAllRules=0 +ComparisonOptions5=Kind=Structure Class|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0 + +[SmartPDF] +PageOptions=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +