Model updating - Page 1
Forum section: electronics / general

author: PlainName
author_rank: Super Contributor
timestamp: October 07, 2020, 02:35:56 pm
content: A few times I've placed a component in a schematic and then built the PCB, but later changed the 3D model in some. Not once have I been able to push that change from the library up to the PCB - whatever model I used when it first hit the PCB is the one it sticks with.I thought there might be a cache and the PCB checks the model ID with what's in the cache, and if it matches then it's the same (regardless of if it's been modified). But today I changed the model to one with a different filename, yet the original still persists. Even changing the model identifier to match the new one the the 3D properties panel doesn't change it.Is there some way to push a change other than replacing the schematic symbol with a different one and then changing back (the only way I've found to make it happen so far)?Edit: I can change the source and embed a specific model, but it seems to me that's not the model specified by the component, so it's essentially a workaround rather than a solution.

author: ajb
author_rank: Super Contributor
timestamp: October 07, 2020, 03:22:56 pm
content: Did you pull the library updates into the project in the schematic? In the schematic, Tools > Update from Libraries (T,L), then click through and pull in anything that's changed from the libraries, then push those changes to the PCB in the usual way.Altium embeds all of the symbol/footprint data into the documents so that the documents can exist independently of any other files. This means that any updates to the library will need to be explicitly pulled into the project. This also ensures that you don't get any surprises if an external library changes in the midst of working on a project.

author: PlainName
author_rank: Super Contributor
timestamp: October 07, 2020, 03:25:49 pm
content: Yep, and the first time I do that it actually does an ECO. The model as shown in the schematic is correct but it either doesn't get pushed to the PCB or the PCB uses it's cached version. Thereafter, doing an update from library just says there are no changes.

author: ajb
author_rank: Super Contributor
timestamp: October 09, 2020, 03:01:46 pm
content: Did you have "Full Replace" checked in the update from libraries dialog?

author: PlainName
author_rank: Super Contributor
timestamp: October 09, 2020, 03:07:15 pm
content: er... not noticed that, so if it defaults to disabled then no! I'll check.

author: PlainName
author_rank: Super Contributor
timestamp: October 09, 2020, 09:16:59 pm
content: Can't find the option. Where should I be looking?

author: T3sl4co1l
author_rank: Super Contributor
timestamp: October 09, 2020, 09:36:48 pm
content: If you don't want to update the entire board at once, open the library, right-click the footprint and Update PCB With...If it's still not updating, just delete the stupid thing on the PCB and re-import it.Tim

author: PlainName
author_rank: Super Contributor
timestamp: October 09, 2020, 10:04:20 pm
content: Ah, well that's what I normally do: in the library say to update the schematic or whatever. As I say, that works fine and the schematic shows the correct 3D model. That pushes to the PCB and there is an actual ECO, which implies the change was pushed since you don't get that if there is no difference. But the model as shown on the PCB is the old one. I can tell it to import from the library and it does, but it's still the old one.Deleting and replacing the schematic part doesn't work either - you end up with no ECO as nothing has actually changed. The only way I found to force it is to replace the part with something else push that, then put the right one back. It's a workaround, but only on a 'just this once until we find the fix' basis. Only if you have a similar part too - if you tried this with a unique pinout then replacing with another part is going to screw your design up, even if only temporarily.Hence why I ask. I am sure this can't be right.

author: ajb
author_rank: Super Contributor
timestamp: October 09, 2020, 10:39:44 pm
content: Hmmm, what sort of lib are you using? Has the Design Item ID changed between the old version of the part and the new one?

author: PlainName
author_rank: Super Contributor
timestamp: October 10, 2020, 12:37:42 am
content: Intlib and I pesume not.I just ran up a basic (everything default) single-component schematic and PCB using in-project libs. First I created the footprint and 3D model (extrusion in this case - don't know if it makes a difference), associated that with a schematic symbol, place two parts in the schematic and wired up. Pushed to PCB, wired. All OK.Then I changed the footprint to have an extra extrusion, when to the schematic and without doing anything I could see that the model associated with the part had the updated footprint. Nevertheless, I did an update from libs, then pushed to PCB. It wen through the motions but wouldn't do the final push because there was no change. Hmm.In the PCB I could update from the lib and get the new footprint, so that works. But it's not an intlib and it's in-project rather than installed. I think these two make the difference, so I'll look at working towards that.For reference, I've attached the project.

author: free_electron
author_rank: Super Contributor
timestamp: October 25, 2020, 03:47:46 pm
content: what version of altium ?this is abnormal behavior. if you push an update from schematic the 3d model will changecouple of things :what kind of library are you using ? intlib , schlib / pcblib ?if using an intlib : you MUST recompile the library for changes to take effect.for any library type : the file MUST be saved ! the updater pulls data from the FILE , not from what is in memory. so anything not saved to disk does not get updated.always push updates from the schematic side. it has more features. DNU Design Netlist Update Board.

author: PlainName
author_rank: Super Contributor
timestamp: October 25, 2020, 04:14:59 pm
content: Most recent but one version, so .4 I think.It's an intlib, saved and compiled as a matter of course. The specific issue that caused this thread was where I had a TFT display, attached by pin header. I'd done the 3D model with head, placed and essentially finished, then realised it hadn't got any legs for support. Added those as extrusions, (compiled, saved) updated schematic and the correct model, complete with legs, showed in the part properties panel. Pushed to PCB and the 3D view didn't have the legs.I tried a minimal board as above using project libs, but that worked fine. I suspect it's to do with the intlib. Just been too busy to devote time to this at the moment.Oh, another problem: set PCB grid to something reasonable (1mm, say) and use the grid for snap. Create a board outline. Set the origin to somewhere reasonable (middle, say) and when you place it it's actually placed one snap to the left of the mouse pointer. Again, haven't had time to progress this and it's not actually fatal (nor used that often).