Lingering old parts in DRC? - Page 1
Forum section: electronics / general

author: sacherjj
author_rank: Frequent Contributor
timestamp: November 13, 2013, 06:49:44 pm
content: I am redoing a design that had 4 jacks to connect to the IO board. This is now a single higher density jack. However, any time I move a component I getCode:Undeclared Identifier: J1at Line:94, Char:54.Continue ExecutionIf I OK, it is 100 times and still doesn't complete. I get errors for J1-J4 at various positions, which have been deleted from the design for a long time. When I add a simple two terminal J1-J4, the error doesn't occur. But if I delete them, it comes back.I'm not keen on trying to paste this into a new PCB file, as this is a 10 layer ARM board with DDR3 routing. I'm making sure to not touch that, as it is working. I'm not ready to move up to the DDR length matching at this time. Having enough fun with HDMI right now.Any ideas how to clean this up? It is really getting annoying and I'm close to be finished routing.Latest version of 13, if that makes a difference.

author: Rufus
author_rank: Super Contributor
timestamp: November 13, 2013, 07:11:13 pm
content: Quote from: sacherjj on November 13, 2013, 06:49:44 pmCan say I have seen or heard of anything similar. I presume the schematic and PCB are consistent i.e. updating the PCB from the schematic doesn't have anything to do.You could check that these components are not referenced in any design rules or class memberships.

author: free_electron
author_rank: Super Contributor
timestamp: November 13, 2013, 08:06:03 pm
content: The links are broken between schematic and pcb. this can happen if you kludged in parts in the pcb that were not originally in the schematic and added symbols later and then fudged with designator renumbering.Not a problem. easy fixBut first : here is why this happens.When you place a component on the schematic and give it a name ,like R33 and then update the PCB altium does not store the part in its internal database system ( the design is essentially a massive database containing objects. when you open a schematic view it pulls the parts it needs. when you open the pcb it pulls the parts it needs. ( even though the documents are the in physically different files there is cross-correlation by various parts of the program .so, storing by reference deisngator woudl not be a good idea. what if you have two the same designators ? ( multichannel design , or a stupid mistake ? ) or you renumber all of them , how will you find what is what ?so altium uses an index key ( if you double click a schematic part you will see this key it is an 8 digit alphanumerical string like K4F53TZ3 (an example )Anything that is done , whetehr in schematic or PCB or any other part of the program is done using this key. The key is created when a new part is placed ( can be in pcb or schematc , doesn;t matter )any subsequent operation refer to that key.If you fudge around with the system deleting a footprint , placing a different one and then manually changing the designator you break this tracking system.if you doubleclick an existing part and select a different one there you do NOT break this systemAnyway, long story short , it is possible for the indexing system to go wonky.How is it solved ?Very easily :in the PCB : Project - Component Linksa window will open. with two colums. you can throw stuff from left to right.between the columns are buttons with arrow. click the the double arrow left <<this removes everything from the right column.Now at the bottom of this windo is a button : Group by reference designator. Click Execute.This will cross reference , reset all the unique ID's and bind them together . PCB will go to schematic and copy the ID's from there.Close this window.Now , if you have managed to break the links , your netlist will be messed up most likely too.Design - Netlist - Clear all netsthis destroys the existing netlist in the PCb and all the history in the ECO'sGo to your schematic and do D-U ( Design-Update PCB )this will restore the netlistand you are good to go now.

author: sacherjj
author_rank: Frequent Contributor
timestamp: November 14, 2013, 12:30:37 am
content: I've tried to be really careful with the References. But you explanation is awesome for a better understand of how Altium works under the hood.Walked through Component Links and found no issues. Went ahead and grouped by reference designator and updated all.Did a clear all nets and tried to move a component BEFORE re-establishing the nets. Still got the error.Did a design update and still getting the same error.I have a BGA that has J1-J4, but couldn't find anything that would make those be the indexes having the problem. Also, adding the J1-J4 components taking away the error, makes this not likely.I'm wondering if the original designer has some hard coded rules with J1-J4 in DRC. I'll keep looking.

author: sacherjj
author_rank: Frequent Contributor
timestamp: November 14, 2013, 12:42:33 am
content: FOUND IT!Custom hard coded Polygon Connect Style with InComponent(J1) or ... or InComponent(J4)I deleted that and get "Some Rules have Incorrect Definitions, Do you want to correct them?" In the PCB Rules and Constraints Editor. I select Yes and it just cancels out of the Apply or OK.Is there a way to get a list of these definitions? I'll have to do some more research.Edit:Once you expand all the categories, the rules are in Red. Would be nice to auto find them. Wound up running DRC and looking for J1-J4. Found an Minimum Annular Ring rule that also had hard coded J1-J4.It gives the Incorrect Definitions error when saving the Delete. Must parse the rule, even though it is deleted. But after OK and going back in, I don't get the message.Thanks for the tips. It got me where I needed, non-erroring PCB editing with online DRC. This software does so much, I'm still wrapping my head around it all. Also doesn't help that I'm cleaning up some fairly hacked together work.BTW Vincent, I really enjoyed your Amp Hour episode. Great stuff.

author: Jester
author_rank: Frequent Contributor
timestamp: April 07, 2017, 10:09:04 am
content: Free electron,Thanks for posting an excellent explanation. I had a broken link, I was aware that there was a way to correct this however could not recall the details. I found your explanation with a google search. Worked like a charm.Huge fan of AltiumThank you

author: Teun
author_rank: Regular Contributor
timestamp: August 21, 2018, 09:43:35 am
content: I have the same error for a NET connection that no longer exists.I had copied the schematic from a different project and removed some components. Now it gives me the error on a net that should be in any of the classes etc.Can anyone give me a solution to the problem?

author: T3sl4co1l
author_rank: Super Contributor
timestamp: August 22, 2018, 07:04:49 am
content: And Component Links and Import Changes don't fix it?Do you have any hidden pins connected to conflicting nets, by any chance? Check the Compile Output / Messages, fix any warnings you see.If it's class related, try Design / Classes and look through those, or delete them and re-import.If nothing else, you can Design / Nets / Clean All Nets and import them back.Tim

author: Teun
author_rank: Regular Contributor
timestamp: August 22, 2018, 07:40:26 am
content: Tried all of that. Doesn't seem to be doing anything for me.I do have to mention that I'm using a version of altium from 2006 :S could it be that?PS: in my last post it said: a net that should be in there, but I meant it shouldn't be in there. It's a net from a removed component. So it doesn't appear in any classes etc.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: August 22, 2018, 09:23:11 am
content: Oh, 2006, that's not even AD, that's PCAD!You should be able to delete nets in the net editor (in whatever menu/dialog that was in back then!).Tim

author: Teun
author_rank: Regular Contributor
timestamp: August 22, 2018, 11:23:45 am
content: Well that's the problem. The one generating the error is not in there.

author: Teun
author_rank: Regular Contributor
timestamp: August 23, 2018, 09:40:56 am
content: Found the problem! I still had the component mentioned in the rules.Thanks for the help everyone.