• 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. Allegro X PCB Editor
  3. How to determine if SILKSCREEN_TOP REFDES is visible

Stats

  • Replies 3
  • Subscribers 160
  • Views 12565
  • Members are here 0
More Content

How to determine if SILKSCREEN_TOP REFDES is visible

redwire
redwire over 4 years ago

Hi

I'm working my way thru SKILL and can find all my components.  I then look at the component symbol to find its children from which I find SILKSCREEN_TOP

However, I don't know how to determine if it's visible or not.  This is a result from a command line query on the dbid which I have assigned to "cmpChild":

cmpChild->??

(prop nil bBox

((5.8492 16.1326)

(6.5508 17.3008)

) readOnly

t objType "text" layer "PACKAGE GEOMETRY/SILKSCREEN_TOP"

xy

(5.9 16.45) text "2" textBlock

"2" rotation 0.0 parent dbid:00000000429AF9F8

mirrorType "NO" isMirrored nil justify

"LEFT" parentGroups nil

)

Is there an easy way to determine if I have deleted the ref des or not?  In this case, I have deleted it but I can't find the property which tells me it's been deleted.

Thanks
Bill

  • Sign in to reply
  • Cancel
Parents
  • DavidJHutchins
    DavidJHutchins over 4 years ago

    hopefully the code below will help you figure this issue out, I wrote this to flag components with missing refdes silkcreen text ( cap, res & ferrite beads are excluded )

    procedure((check_missing_silk)
    let(( layerName errcnt RefList dbid Class ) 
    (errcnt = 0)
    (layerName = "REF DES/SILKSCREEN_")
    (RefList = setof(sym, axlDBGetDesign()->symbols, sym->refdes && !exists(obj, sym->children, obj->text == sym->refdes && index(obj->layer, layerName)))~>refdes)
    foreach(ref RefList
    rexCompile("^[CR][0-9]")
    unless( rexExecute(ref)
    unless(rexMatchp("^FB[0-9]" ref)
    (axlClearSelSet)
    (axlSetFindFilter ?enabled list("noall" "symbols" "invisible") ?onButtons list("noall" "symbols"))
    (dbid = car(axlGetSelSet(axlAddSelectName("SYMBOL" ref))))
    when(dbid
    if(dbid->isMirrored then
    (Class = "DRC ERROR CLASS/PACKAGE_BOTTOM")
    else
    (Class = "DRC ERROR CLASS/PACKAGE_TOP")
    )
    (dbid = axlDBCreateExternalDRC("missing silkscreen refdes" (dbid->xy) Class list(dbid) nil nil))
    when(dbid
    (errcnt++)
    )
    )
    )
    )
    )
    axlMsgPut("%d violations found" errcnt)
    )
    )

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • DavidJHutchins
    DavidJHutchins over 4 years ago

    hopefully the code below will help you figure this issue out, I wrote this to flag components with missing refdes silkcreen text ( cap, res & ferrite beads are excluded )

    procedure((check_missing_silk)
    let(( layerName errcnt RefList dbid Class ) 
    (errcnt = 0)
    (layerName = "REF DES/SILKSCREEN_")
    (RefList = setof(sym, axlDBGetDesign()->symbols, sym->refdes && !exists(obj, sym->children, obj->text == sym->refdes && index(obj->layer, layerName)))~>refdes)
    foreach(ref RefList
    rexCompile("^[CR][0-9]")
    unless( rexExecute(ref)
    unless(rexMatchp("^FB[0-9]" ref)
    (axlClearSelSet)
    (axlSetFindFilter ?enabled list("noall" "symbols" "invisible") ?onButtons list("noall" "symbols"))
    (dbid = car(axlGetSelSet(axlAddSelectName("SYMBOL" ref))))
    when(dbid
    if(dbid->isMirrored then
    (Class = "DRC ERROR CLASS/PACKAGE_BOTTOM")
    else
    (Class = "DRC ERROR CLASS/PACKAGE_TOP")
    )
    (dbid = axlDBCreateExternalDRC("missing silkscreen refdes" (dbid->xy) Class list(dbid) nil nil))
    when(dbid
    (errcnt++)
    )
    )
    )
    )
    )
    axlMsgPut("%d violations found" errcnt)
    )
    )

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
  • redwire
    redwire over 4 years ago in reply to DavidJHutchins

    Oh, that is beautiful!  You just taught me at least 6 new tricks in SKILL.  Thank you Jedi master!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • DavidJHutchins
    DavidJHutchins over 4 years ago in reply to redwire

    Gald to help, I'm not a master, that's reserved for Dave Elder & FXF

    I got the setof() usage from some of Dave's code...

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • 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