• 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 update shape in one of layers?

Stats

  • State Verified Answer
  • Replies 7
  • Subscribers 162
  • Views 11943
  • Members are here 0
More Content

How to update shape in one of layers?

David Lin
David Lin over 3 years ago

Hello,

How to update shape in one of layers?

I want to update only one layer not all.

  • Sign in to reply
  • Cancel
  • excellon1
    0 excellon1 over 3 years ago

    In the find filter select shapes. On the tool bar look for the shape select Icon. It looks like an open arrow. Click on the shape then right click Update. Right click and select done after the update completes.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • David Lin
    0 David Lin over 3 years ago in reply to excellon1

    Thanks your reply.

    I know this way.

    I'm running a huge board. It have lots of shape,etch,32 layers cause Allegro is very slow.

    If there have the ways can only update one layer's shape. It can be more efficient.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • luanvn81
    +1 luanvn81 over 3 years ago

    Hi David!

     Hope below code can help you.

    axlCmdRegister( "uds" `update_shape_layer)
    (defun update_shape_layer ()
    All_shapes = axlDBGetShapes("ETCH")
    All_shapes = setof(el All_shapes el->shapeBoundary != nil)
    update_layers = nil

    sub_info = car(setof(e axlVisibleGet() member("ETCH" e) != nil ))->subclassinfo
    sub_vis = reverse(setof(e sub_info cadr(e) == t))
    if(sub_vis != nil then
    foreach(item sub_vis
    update_layers = cons(strcat("ETCH/",car(item)) update_layers)
    );end foreach

    update_shapes = setof(el All_shapes member(el->layer update_layers) != nil)
    printf("Selected layers:%L\n", update_layers)
    foreach(shape_id update_shapes
    aa = axlShapeDynamicUpdate(shape_id->shapeBoundary t)
    if(aa != 0 then printf("update failed\n"))
    );end foreach
    );end if
    );end defun update_shape_layer

    Luan.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Reject Answer
    • Cancel
  • David Lin
    0 David Lin over 3 years ago in reply to luanvn81

    Hi Luan,

    That's Awesome!!!!

    I'll give it a try!

    Thanks a lot.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • JITHINDEV
    0 JITHINDEV over 3 years ago in reply to luanvn81

    Hi Luan,

    How to run this skill code.

    Regards,

    Jithindev 

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