• 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. Checking Airgap between via and Shape Segment

Stats

  • Replies 2
  • Subscribers 160
  • Views 14187
  • Members are here 0
More Content

Checking Airgap between via and Shape Segment

vimaldevlpr
vimaldevlpr over 5 years ago

Hai,

I'll try to check the airgap between via and shape segment for cut out checking. 

input value in run time. If the airgap value is lesser then input value means they shape segment has to be highlight.

I'll tried but it is not working properly can anyone please re correct my code.

axlCmdRegister("cutkar" 'cutkar ?cmdType "interactive")
procedure(cutkar()
axlClearSelSet()
axlSetFindFilter(?enabled `("NOALL" "VIAS") ?onButtons `("VIAS"))
vias = axlGetSelSet(axlSelect(?prompt "Select vias by pick or window."))
 if(vias then
  axlClearSelSet()
  axlSetFindFilter(?enabled `("NOALL" "SHAPESEGS") ?onButtons `("SHAPESEGS"))
  shpseg = axlGetSelSet(axlSelect(?prompt "Select shape seg by pick or window."))
   if(shpseg then
      foreach( shp shpseg
       _AirGap = axlAirGap(vias shp)        
        val = atoi(axlUIPrompt("Enter the Site To Place components :")) 
        if( val > _AirGap
        axlHighlightObject(shp)
        print("found")        
       )
      )
     )
  
  
 )
)
  • Sign in to reply
  • Cancel
  • luanvn81
    luanvn81 over 5 years ago

    Hi!

    1/ axlGetSelSet return lo_dbid, so you should use foreach( ) for each dbia of via or use car() for using first via.

    2/ I think you should define layer for  axlAirGap()   forexample shp->layer

    3/  val = atoi(axlUIPrompt("Enter the Site To Place components :"))  should put in more  suitable location.

    4/  if( val > _AirGap   ==> missing then

    I have fixed your code.

    axlCmdRegister("cutkar" 'cutkar ?cmdType "interactive")
    procedure(cutkar()
    axlClearSelSet()
    axlSetFindFilter(?enabled `("NOALL" "VIAS") ?onButtons `("VIAS"))
    vias = axlGetSelSet(axlSelect(?prompt "Select vias by pick or window."))
    if(vias then
    axlClearSelSet()
    axlSetFindFilter(?enabled `("NOALL" "SHAPESEGS") ?onButtons `("SHAPESEGS"))
    shpseg = axlGetSelSet(axlSelect(?prompt "Select shape seg by pick or window."))
    if(shpseg then
    foreach(via_db vias
    foreach(shp shpseg
    _AirGap = lastelem(axlAirGap(via_db shp shp->layer) )
    val = atoi(axlUIPrompt("Enter the Site To Place components :"))
    if(val > _AirGap then
    ;axlHighlightObject(shp)
    printf("found")
    )
    )
    )
    )
    )
    )

    Tks

    Luan.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • vimaldevlpr
    vimaldevlpr over 5 years ago in reply to luanvn81

    Kindly Thank you luan..

    • 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