• 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. Deleting Keepouts

Stats

  • Replies 7
  • Subscribers 161
  • Views 16220
  • Members are here 0
More Content

Deleting Keepouts

vimaldevlpr
vimaldevlpr over 4 years ago

Hi,

Is there any way to delete the selected  keepout's by giving XY location or Via netname through input file. if it possible please guide me how to do.

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

    Hi!

    Can you explain more details your purpose ?  axlDeleteObject(o_dbid/lo_dbid [g_mode])  can do that.

    Luan

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • vimaldevlpr
    vimaldevlpr over 4 years ago in reply to luanvn81

    Hi luan,

    Actually why because I wrote the code ROUTE KEEPOUT creates automatically through the net name of via by input file in that before they create if Keepout already exist means they need do delete and then want to create.

    Deletion of ROUTE KEEPOUT must be belong to INFILE'S present via netname.

    I will attach my code and sample in file.

    Please guide me to how to do it.

    Back drill.zip

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • B Bruekers
    B Bruekers over 4 years ago in reply to vimaldevlpr

    I would personally add a property to the keepout shape. Simply a comment 'string' would do. Then before you create a shape, delete all previously shapes with the comment=<your string>.

    So when creating shapes attach a comment to it:

    shape=axlDBCreateShape(path t c)

    axlDBAddProp(car(shape) list('COMMENT "custom_keepout"))

    Then somewhere at the begin of the function run this to remove all shapes:

    foreach(shp setof(item axlDBGetShapes("ROUTE KEEPOUT")         item->prop->COMMENT=="custom_keepout"))
    axlDBRefreshId(nil)

    Also put a close(in1) just after the while(gets(  statement to close the fileport.

    Last addition, if you create RKO shapes then after each RKO you create in a etch shape Allegro will automatically void it. This takes a lot of time.

    If you use the axlDBCloak() function to call your create function then the shape update is only done after your function returns.

    So like this: axlDBCloak('backdrillkeep()     '(shape ignoreFixed))

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • vimaldevlpr
    vimaldevlpr over 4 years ago in reply to B Bruekers

    Hai Bruekers 

    Thanks for your reply while deleting property it comes argument error. Could you please update in my code.

    and also the  axlDBCloak('backdrillkeep()     '(shape ignoreFixed)) these condition.

    backdrill10.zip

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • B Bruekers
    B Bruekers over 4 years ago in reply to vimaldevlpr

    Oeps.. change those lines to : 

    axlDeleteObject(setof(item axlDBGetShapes("ROUTE KEEPOUT") item->prop->COMMENT=="custom_keepout"))

    axlDBRefreshId(nil)

    Instead calling the function directly by 'backdrillkeep()' call it through a axlDBCloak():

    axlDBCloak('backdrillkeep()     '(shape ignoreFixed))

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • vimaldevlpr
    vimaldevlpr over 4 years ago in reply to B Bruekers

    Thanks a lot

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • vimaldevlpr
    vimaldevlpr over 4 years ago in reply to B Bruekers

    Thanks a lot

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