• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. PCB Design
  3. silkscreen not associated with a pcb symbol

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 166
  • Views 13404
  • Members are here 0
More Content
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

silkscreen not associated with a pcb symbol

Telesis86
Telesis86 over 5 years ago

What's the best way to search for all elements (lines, shapes, text, etc) in package geometry/silkscreen class/subclass that were added in the board level?

  • Cancel
  • Dale Peterson
    Dale Peterson over 5 years ago

    Hi, well the best way to identify graphics not associated with components-- Temporarily unplace your components. What's remaining on the silkscreen layer will be what's not associated with the components.  

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Telesis86
    Telesis86 over 5 years ago

    Thank you. That will work.

    If one of these talented members can create a skill code to search for these unassociated elements and create DRC's that would be a bonus

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • DavidJHutchins
    DavidJHutchins over 5 years ago in reply to Telesis86

    the code below will create external drc flags on "package geometry" items that do not have a parent object/symbol owner:

    procedure((Find_Orphans)
    let((errcnt llx lly urx ury center_x center_y layer dbid)
    (errcnt = 0)
    ;; process top side
    (axlClearSelSet)
    (axlVisibleDesign nil)
    (axlVisibleLayer "PACKAGE GEOMETRY" t)
    (axlSetFindFilter ?enabled (list "noall" "lines" "shapes" "text") ?onButtons (list "lines" "shapes" "text"))
    (axlAddSelectAll)
    foreach(obj axlGetSelSet()
    unless((obj->parent)
    (llx = caar(obj->bBox))
    (urx = caadr(obj->bBox))
    (ury = cadadr(obj->bBox))
    (lly = cadar(obj->bBox))
    (center_x = (((urx - llx) / 2) + llx))
    (center_y = (((ury - lly) / 2) + lly))
    if(nindex(upperCase(obj->layer) "_TOP") then
    (layer = "Drc Error Class/Package_Top")
    else
    (layer = "Drc Error Class/Package_Bottom")
    )
    (dbid = axlDBCreateExternalDRC("Orphan Object" (center_x:center_y) layer list(obj) nil nil))
    when(dbid
    (axlHighlightObject car(dbid) nil)
    )
    (errcnt++)
    )
    )
    ;; done
    axlMsgPut("%d DRC flags added" errcnt)
    )
    )
    axlCmdRegister( "find_orphans" 'Find_Orphans ?cmdType "general")

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Telesis86
    Telesis86 over 5 years ago in reply to DavidJHutchins

    David - Thank you. I will give it a try as soon as I can.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • avant
    avant over 5 years ago

    Highlight all symbols (use * as the find filter) using the dark gray or black color.

    Everything not highlighted is not part of a symbol.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Cadence Guidelines

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information