Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Altium как удалить SOURCE LIBRARY NAME из описания компонента
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Разрабатываем ПП в САПР - PCB development > Altium Designer, DXP, Protel
Real_Bastard
Создаю новую библиотеку. Копирую компоненты из разных библиотек. При этом в свойствах компонента остается информация о родительской библиотеке- SOURCE LIBRARY NAME .Его видно в тексте файла, и оно лезет при попытке добавления посадочного места. И пусть бы лезло, но при этом, при вставлении компонента на схему у него пустой designe item ID и footprint не находится. Вот пример https://yadi.sk/d/WM6XO07ZhQBxq
VladislavS
До чего не добраться руками - можно скриптами попробовать.
Как-то баловался с именем библиотеки

Код
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;
Real_Bastard
Паскаль?...! Т.е. слухи о связи Альтиума с Дельфи это не слухи?)) Скрипты...не, пока не готов. До за идею спасибо.
Анна Анна
У меня похожая проблема в PCB.
На плате надо перевести ссылки на новую библиотеку.
Обновление со схемы сделала.
На вид вижу, что элементы уже из новой биб-ки.
А ссылка старая (графа Library описания футпринта). В отчете Bill of materials показывает новую библиотеку.
Думаю - вдруг потом при корректировке будут проблемы, будут как-то не так обновляться при последующих изменения библ-ки.
Неохота каждый элемент тыкать и переназначать библ-ку.

Косяк Альтиума?
Real_Bastard
В общем вот так можно менять и смотреть параметры в 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.
musa
Цитата(Real_Bastard @ Jun 24 2015, 15:42) *
слухи о связи Альтиума с Дельфи это не слухи?


На самом деле он написан на делфи и это не секрет и не слухи.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.