DNI - L202 ? Not-Fitted on Assy Dwg
L202 is shown as Fitted in the Schematic DNI Variant
Current Variant = DNI
Houston, we have a problem. Red = DNI on Assy Dwg
Specifically note L202 and more bogus looking DNIs on the Assy dwg
Looking at the project *.PrjPcb file in Notepad++
I see multiple entries for L202 and several other duplicated designators with different Unique IDs.
Also I see U? & H? however there are no un-annotated components in the design.
Suggested Workaround
Print a PDF version of the existing schematic for reference and sanity checks.
Use a customized BOM to find the correct Unique ID for the Designators.
Or review the Unique ID for each component:
Preferences > General > Advanced > System.UI.IPP.ShowUniqueID
Related Link: Unique ID - Show Enabled
Close Altium and use a text editor to delete the incorrectly duplicated designators in the *.PrjPcb file. Then open the project in Altium and review the schematics and drawings.
Related Link: https://forum.live.altium.com/#/posts/251953
Comments to my Customer
We will need to work together to get through this DNI bug I found in the Ceres3 project.
Just curious . . .
How did Ceres3 come into being ?
Cloned A365 or a Copied project file ?
How did this Happen ?
Note the engineer did not intentionally reset any Unique IDs by using a Unique ID Reset button or script.
Engineers will save one or more Schematic.SchDoc files from a project then add the saved Schematic.SchDoc files to a different project.
Engineers will save one or more Schematic.SchDoc files from a project then add the saved Schematic.SchDoc files to a different project.
When a Schematic.SchDoc is added to another project there may be duplicate designators depending on what designators are already in other sheets.
Next the engineer re-annotates the sheets to resolve the duplicate Designators and now the Variant data in the *.PrjPcb file is a Train Wreck.
Next the engineer re-annotates the sheets to resolve the duplicate Designators and now the Variant data in the *.PrjPcb file is a Train Wreck.
Also there is a statically rare but not impossible chance that one or more Unique IDs could be duplicated.
You may have a better understanding how this happens after reading these links
Component Links - Part 1
Component Links - Part 2
You may have a better understanding how this happens after reading these links
Component Links - Part 1
Component Links - Part 2
Observations:
Looking at L202 in the *.PrjPcb file
Variation46=Designator=L202|UniqueId=\VWGFHICD|Kind=0|AlternatePart=
A fitted component (Kind=0) with NO Alternate Part does not need to be included in the Project Variant data that is stored in the *.PrjPcb file.
As shown in Draftsman L202 was shown as Not-Fitted while in Schematic L202 is shown as Fitted. This leads me to believe that the code base (Algorithm) used to determine which parts are not fitted is not consistent between the Schematic and Draftsman,
It appears to me the Schematic is updated by reading all of the Variations found in the *.PrjPcb file and using the last found Variation for the designator.
It appears to me the Draftsman drawing is updated by reading the Variations found in the *.PrjPcb file and using the first found Variation for the designator.
Unique IDs for every component in the design are not included in the *.PrjPcb file, therefore when Draftsman is reading the *.PrjPcb file and updating the drawing it must be assuming the first found Variation for L202 is correct regardless of the Unique ID which did not match the Unique ID of the part in the schematic.
In the case of duplicated Designators my findings indicate that the last entry of the same Designator for the Variation in the *.PrjPcb file is correct while the previous entries may or may not be correct.
Possible Solutions and Suggestions:
Draftsman should be updated by reading all of the Designator Variations found in the *.PrjPcb file and using the last found Variation for the designator.
Suggestion, remove unused variations from the *.PrjPcb file, for example . . .
Variation46=Designator=L202|UniqueId=\VWGFHICD|Kind=0|AlternatePart=
Because a fitted component (Kind=0) with NO Alternate Part does not need to be included in the Project Variant data that is stored in the *.PrjPcb file.
When the user re-annotates the Designators in a Project that would the appropriate time to cleanup the *.PrjPcb file.
End of Story !
No comments:
Post a Comment