Перейти к содержанию
    

Altium как удалить SOURCE LIBRARY NAME из описания компонента

Создаю новую библиотеку. Копирую компоненты из разных библиотек. При этом в свойствах компонента остается информация о родительской библиотеке- SOURCE LIBRARY NAME .Его видно в тексте файла, и оно лезет при попытке добавления посадочного места. И пусть бы лезло, но при этом, при вставлении компонента на схему у него пустой designe item ID и footprint не находится. Вот пример https://yadi.sk/d/WM6XO07ZhQBxq

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

До чего не добраться руками - можно скриптами попробовать.

Как-то баловался с именем библиотеки

 

Procedure SetPcbLib;
Var
   Board : IPCB_Board;
   Component : IPCB_Component;
   Iterator : IPCB_BoardIterator;
Begin
   Board := PCBServer.GetCurrentPCBBoard;
   If Board = Nil Then Exit;

   Iterator := Board.BoardIterator_Create;
   Iterator.AddFilter_ObjectSet(MkSet(eComponentObject));
   Iterator.AddFilter_LayerSet(AllLayers);
   Iterator.AddFilter_Method(eProcessAll);

   Component := Iterator.FirstPCBObject;
   While (Component <> Nil) Do
   Begin
     Component.SetState_SourceFootprintLibrary('RF(MotherBoard).PcbLib');
     Component := Iterator.NextPCBObject;
   End;

   Board.BoardIterator_Destroy(Iterator);

   ShowMessage('Ok!');
End;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Паскаль?...! Т.е. слухи о связи Альтиума с Дельфи это не слухи?)) Скрипты...не, пока не готов. До за идею спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня похожая проблема в PCB.

На плате надо перевести ссылки на новую библиотеку.

Обновление со схемы сделала.

На вид вижу, что элементы уже из новой биб-ки.

А ссылка старая (графа Library описания футпринта). В отчете Bill of materials показывает новую библиотеку.

Думаю - вдруг потом при корректировке будут проблемы, будут как-то не так обновляться при последующих изменения библ-ки.

Неохота каждый элемент тыкать и переназначать библ-ку.

 

Косяк Альтиума?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем вот так можно менять и смотреть параметры в SchLib. Даже те, к которым нет доступа (DatabaseTableName и т.п. )

Procedure GenerateReport(Report : TStringList);
Var
    Document : IServerDocument;
Begin
    Report.Insert(0,'Schematic Library Report');
    Report.Insert(1,'------------------------------');
    Report.SaveToFile('D:\LibraryReport.txt');

    Document := Client.OpenDocument('Text','D:\LibraryReport.txt');
    If Document <> Nil Then
        Client.ShowDocument(Document);
End;
{..............................................................................}

{..............................................................................}
Procedure LookInsideALibrary;
Var
    CurrentLib      : ISch_Lib;
    LibraryIterator : ISch_Iterator;
    AnIndex         : Integer;
    i               : integer;
    LibComp         : ISch_Component;
    S               : TDynamicString;
    ReportInfo      : TStringList;
Begin
    If SchServer = Nil Then Exit;
    CurrentLib := SchServer.GetCurrentSchDocument;
    If CurrentLib = Nil Then Exit;

    // check if the document is a schematic library and if not
    // exit.
    If CurrentLib.ObjectID <> eSchLib Then
    Begin
         ShowError('Please open schematic library.');
         Exit;
    End;

    // get the library object for the library iterator.
    LibraryIterator := CurrentLib.SchLibIterator_Create;

    // Note MkSet function to create a set compatible with the
    // Scripting engine since sets not supported.
    LibraryIterator.AddFilter_ObjectSet(MkSet(eSchComponent));

    // Create a TStringList object to store data
    ReportInfo := TStringList.Create;

    // use of Try / Finally / End exception block to
    // trap exceptions and exit gracefully.
    Try
        // find the aliases for the current library component.
        LibComp := LibraryIterator.FirstSchObject;
        While LibComp <> Nil Do
        Begin
            ReportInfo.Add(LibComp.LibReference + ' ' + LibComp.Designator.Text);
            ReportInfo.Add(LibComp.SourceLibraryName);
            ReportInfo.Add(LibComp.DatabaseTableName);
            ReportInfo.Add(LibComp.DatabaseLibraryName);
            ReportInfo.Add(LibComp.CurrentPartID);
            ReportInfo.Add(LibComp.TargetFileName);
            LibComp.DatabaseTableName :='';
            LibComp.SetState_SourceLibraryName :='*';
            ReportInfo.Add('');
            // obtain the next schematic symbol in the library
            LibComp := LibraryIterator.NextSchObject;
        End;
    Finally
        // we are finished fetching symbols of the current library.
        CurrentLib.SchIterator_Destroy(LibraryIterator);
    End;

    GenerateReport(ReportInfo);
    ReportInfo.Free;
End;
{..............................................................................}

{..............................................................................}
End.

Изменено пользователем Real_Bastard

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

слухи о связи Альтиума с Дельфи это не слухи?

 

На самом деле он написан на делфи и это не секрет и не слухи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...