Script abajo.
Deberá abrir el script en Altium, luego abrir su archivo SchLib, luego usar el DXP - > Opción de menú Ejecutar script (el archivo SchLib DEBE estar abierto cuando lo ejecute). Haga doble clic en el nombre de la función, no en el nombre de archivo o ahora se ejecutará.
El script generará un archivo llamado d: \ symbolreport.txt (puede cambiar el nombre del archivo en la parte inferior del script).
Salida de ejemplo:
KINGBRIGHT_KP-1608SGC;Notes;*
KINGBRIGHT_KP-1608SGC;Alternative;*
KINGBRIGHT_KP-1608SGC;CheckedByOn;GoPe/2014-11-25
KINGBRIGHT_KP-1608SGC;CreatedByOn;LiTh/2014-11-05
KINGBRIGHT_KP-1608SGC;Value;Grün
KINGBRIGHT_KP-1608SGC;Comment;DIKP-1608SGC-S10
VISHAY_TLMS1000-GS08;Notes;*
VISHAY_TLMS1000-GS08;Alternative;*
VISHAY_TLMS1000-GS08;CheckedByOn;LiTh/2014-11-24
VISHAY_TLMS1000-GS08;CreatedByOn;GoPe/2014-11-20
VISHAY_TLMS1000-GS08;Value;Rot
VISHAY_TLMS1000-GS08;Comment;DITLMS1000-S12
La salida se denomina archivo CSV con ";" como carácter separador si desea importarlo a Excel.
Procedure PrintDataForSchLibItems();
Var
DocType : WideString;
SchComponent : ISch_Component;
SchLib : ISch_Lib;
SchDoc : ISCh_Doc;
SchIterator : ISch_Iterator;
AnObject : ISch_GraphicalObject;
LibName : TDynamicString;
Iterator : ISch_Iterator;
PartCount : Integer;
ReportInfo : TStringList;
Document : IServerDocument;
Begin
If SchServer = Nil Then Exit;
// Obtain the Client interface so can get the Kind property.
DocType := UpperCase(Client.CurrentView.OwnerDocument.Kind);
If DocType <> 'SCHLIB' Then
Begin
ShowWarning('This is not a Library document!');
Exit;
End;
// Obtain the schematic library interface
SchLib := SchServer.GetCurrentSchDocument;
If SchLib = Nil Then Exit;
// Create a TStringList object to store data
ReportInfo := TStringList.Create;
ReportInfo.Clear;
// Obtain schematic library filename
LibName := SchLib.DocumentName;
LibName := ExtractFileName(LibName);
// Create an iterator to look for symbols within the library
SchIterator := SchLib.SchLibIterator_Create;
SchIterator.AddFilter_ObjectSet(MkSet(eSchComponent));
PartCount := 0;
Try
SchComponent := SchIterator.FirstSchObject;
While SchComponent <> Nil Do
Begin
// Look for child objects associated with this symbol.
Iterator := SchComponent.SchIterator_Create;
Iterator.AddFilter_ObjectSet(MkSet(eParameter));
Try
AnObject := Iterator.FirstSchObject;
While AnObject <> Nil Do
Begin
// Limit to a specific parameter only
If AnObject.Name = 'CreatedByOn' Then
Begin
ReportInfo.Add(SchComponent.LibReference + ';' + AnObject.Name + ';' + AnObject.Text);
End;
// look for the next item of a symbol
AnObject := Iterator.NextSchObject;
End;
PartCount := 0;
Finally
SchComponent.SchIterator_Destroy(Iterator);
End;
SchComponent := SchIterator.NextSchObject;
End;
Finally
SchLib.SchIterator_Destroy(SchIterator);
End;
ReportInfo.SaveToFile('D:\SymbolReport.txt');
ReportInfo.Free;
End;