On 09:45 AM 15/11/2002 -0600, Yuriy Khapochkin said:

is there any way to update all footprints in the PCB from library?

Currently I press "Update PCB" button after editing each component in library,
but it's too annoying.


This issue has cried out for a server for a long time. The problem is that there is no documented PCBLib process that does this task directly, so it is not possible to make a macro that uses the FirstComponent/NextComponent PCBLib processes to iterate over the library and update. The UpdatePCB button must cause execution of a number of steps not a single process - either that or the process is not documented.

There would be solution for anyone wishing to write a server. When your server starts up it should check that a PCBLib window is active. It should then check that the Design Manager is active and the Browse PCB tab visible. Then the server should search all the child windows of the app for a button with a caption "UpdatePCB" and stash its handle. Then iterate over all the components in the library and send a WM_LBUTTONDOWN message followed by a WM_LBUTTONUP message to the saved handle. It may even be possible to find the Delphi TButton object from its handle and then use the higher level Delphi object functions to activate the button.

Finding the button handle is not too hard as you can search down the chain from the top level window in a fairly consistent pattern. To find the window tree use something Spy++ that comes with the M$ compilers. Then at each level you can search for a known window caption to get to the next level down. Save having to search all the apps child windows - though even this would not take very long.

There may have to be a deliberate delay in the server between updating one component and calling the NextComponent process.

It would not take long to knock this up but I will leave it to some one else to do, I am too busy for a while now. If no-one puts up their hands in a couple of weeks I will see if I can get something done. (The whiners in this group will possibly construe the fact that a server was written to enhance something as proof there was a bug - it has happened before, I am sure the loonies will do it again sometime.)

I think that the fact that we can't controllably update footprints from a library, in P99SE, is a big oversight. It should have been there and certainly in one of the service packs for P99SE as we have been asking for it for a long time - not a bug though. It is an area under discussion by DXP users. Those with long memories will remember the very useful component property "Update Footprint" checkbox in V2.8 and will also remember the comments on and off over the years about its removal in V3 and later revs.

A better server would run from the PCB and allow only selected footprints to be updated - but this would be slightly more complex as it involves copying a few parameters from the old instance to the new.

Ian Wilson

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* To post a message: mailto:[EMAIL PROTECTED]
* To leave this list visit:
* http://www.techservinc.com/protelusers/leave.html
* Contact the list manager:
* Forum Guidelines Rules:
* http://www.techservinc.com/protelusers/forumrules.html
* Browse or Search previous postings:
* http://www.mail-archive.com/proteledaforum@techservinc.com
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Reply via email to