Author Topic: Parameter type manager for PCB Layout?  (Read 3536 times)

0 Members and 1 Guest are viewing this topic.

Offline toohecTopic starter

  • Contributor
  • Posts: 36
  • Country: us
Parameter type manager for PCB Layout?
« on: February 01, 2014, 12:01:14 am »
I recently opened an old PCB document that references several PCB librarys that are no longer a part of our approved company library list.  All of the footprints on the board are correct, but they just reference an obsolete library name.  I'm trying to update the PCB library links within the project, however Altium lacks a "parameter manager" type function for components in the PCB layout tool.  In the schematic, you can open parameter manager and view all the library links and item-IDs for all the symbols within the schematic, but the layout tool does not offer a similar type manager for seeing what library a footprint originally came from.  The only way I know to see which library it's linked to is to double click the component on the PCB in order to view the component properties.  You can only view/change one component at a time, so it's very time consuming depending on how many parts are on your PCB.

Now I can easily force updates to all the footprints from our approved footprints (since the footprint names are the same between the old and new libraries), but the link in the PCB will always reference the original library that it came.  It's not that critical since this really only poses a problem if you ever use some of the comparison tool functions, like the "Update From PCB Librarys..." option under the tools menu.  The comparison tools can help identify which ones are problematic (since it won't be able to find the library), but you still need to edit them one by one if necessary.  Removing and re-adding the components would work as well, but there has to be a better way to see the library links from a global perspective.

Does anyone know if such a manager exists?
 

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 8517
  • Country: us
    • SiliconValleyGarage
Re: Parameter type manager for PCB Layout?
« Reply #1 on: February 01, 2014, 12:32:47 am »
use the inspector to alter the library origin.
select similar - component
go in inspector and erase the 'library' field.
then do an update from schematic and it will all fall into place.
Professional Electron Wrangler.
Any comments, or points of view expressed, are my own and not endorsed , induced or compensated by my employer(s).
 

Offline toohecTopic starter

  • Contributor
  • Posts: 36
  • Country: us
Re: Parameter type manager for PCB Layout?
« Reply #2 on: February 01, 2014, 12:46:05 am »
PCB Inspector was the first place I looked.  I did not find a "library" listing under the inpector tool.  The inspector does list the footprint, but not the library.  I even looked through the query language to see if I could somehow select all components that were not part of a given library.  No luck there.

Is there something I have to enable to see library under PCB Inspector?  (I assume you are not talking about the PCBLIB Inspector.)

 

Offline cx05

  • Contributor
  • Posts: 13
  • Country: de
Re: Parameter type manager for PCB Layout?
« Reply #3 on: April 16, 2016, 08:37:41 pm »
I know this is an old thread, but just for completion, you can use the scripting capabilities of altium to find the library of a component. You could easily fill a grid or export this information to a file.
The property you are looking for is SourceFootprintLibrary. The docu says it can also be set, but it might be better to update the libraries in the schematics and push the changes to the PCB.

Code: [Select]
function QueryComponentLibraries() : TStringList;
var
    PCB : IPCB_Board;
    AObjectSet : TObjectSet;
    Iterator        : IPCB_BoardIterator;
    ThisObject      : IPCB_Component;
    SelectedComponent  : IPCB_Component;
    delim, tmpstr   : WideString;
    LibInfo         : TStringsList;
    k               : Integer;
begin
  PCB := PCBServer.GetCurrentPCBBoard;
  AObjectSet := mkSet(eComponentObject);


  delim := ';';
  LibInfo := CreateObject(TStringList);
  tmpstr := 'Name' + delim + 'Comment' + delim + 'SourceDesignator'
                    + delim + 'SourceUniqueId' + delim + 'SourceLibReference' + delim
                    + 'Pattern' + delim + 'SourceFootprintLibrary' +  (#13) + (#10);
  LibInfo.Add(tmpstr);

  try
    // find the object(s) of interest
    Iterator := PCB.BoardIterator_Create;
    Iterator.SetState_FilterAll;
    Iterator.Addfilter_ObjectSet(AObjectSet);
    ThisObject := Iterator.FirstPCBObject;
    SelectedComponent := Nil;
    while (ThisObject <> Nil) do
    begin
        tmpstr := ThisObject.Name.Text + delim + ThisObject.Comment.Text  + delim + ThisObject.SourceDesignator
                    + delim + ThisObject.SourceUniqueId + delim + ThisObject.SourceLibReference + delim
                    + ThisObject.Pattern + delim + ThisObject.SourceFootprintLibrary +  (#13+#10);
        LibInfo.Add(tmpstr);

        ThisObject := Iterator.NextPCBObject;
    end;
    finally
        PCB.BoardIterator_Destroy(Iterator);
    end;

    result := LibInfo;
    tmpstr := '';
    for k := 0 to LibInfo.Count-1 do
    begin
       tmpstr := tmpstr + LibInfo[k];
    end;

    ShowWarning(tmpstr); // replace this line with whatever you want to do with the library info
end;
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf