• 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. dangling lines

Stats

  • Replies 7
  • Subscribers 158
  • Views 15899
  • Members are here 0
More Content

dangling lines

archive
archive over 17 years ago

Hello All.

I am trying to improve the dangling_lines15_5.il routine.
I have a BRD with quite a lot of these dangle.
I want to be able to delete these segs.
So when I am in the list of items (in the form), I added a Delete button.

But, this routine does not select the right seg. Sometimes it selects the good clines instead of the dangling line.
By clicking again in the list on the same seg, I pass through segs. But sometimes it does not select at all the faulty seg.
As the seg to be deleted as a "off-grid" coordinate, is there a way to "axlSingleSelect-something" with a snap, to be sure to select the wanted object?

Dangline lines are often segs within 0.1mils or 0.01mils value... Thanks.


Originally posted in cdnusers.org by willbi
  • Sign in to reply
  • Cancel
  • archive
    archive over 17 years ago

    OK, Due to the big amount of answers, I have to change the way to proceed... ;-)

    I need another tip:
    How to simulate a user click in a Form field list with the code?
    When I click on the "delete" button, I want the selected item to be deleted, the next to be selected.

    It works, but I have to click on the selected item again to get the code running.

    How to make that the axlFormListSelect( dl_form "dl_list" l_index + 1) automatically runs the code of the form_action?

    l_index=dl_form->curValueInt
    axlFormSetActiveField( dl_form "dl_list")
    axlFormListSelect( dl_form "dl_list" l_index + 1)
    axlFormListDeleteItem( dl_form "dl_list" l_index)


    Originally posted in cdnusers.org by willbi
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • archive
    archive over 17 years ago

    Try using axlSingleSelectBox. Set the bbox size very small.


    Originally posted in cdnusers.org by Dave Elder
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • archive
    archive over 17 years ago

    Not having the dangling_lines15_5 code in front of me I can only guess, but it sounds like it finds stub clines not stub clinesegs. Looping through a list of clinesegs coupled with a testing of results of axlDBGetConnect plus an optional testing on length should get you what you want.

    HTH,

    Chris Walters
    local Cadence guru
    ()


    Originally posted in cdnusers.org by kerchunk
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • archive
    archive over 17 years ago

    Dave: The select box, as small as it is, selects all clines close to it:
    FUNCTION
    Find all objects that intersect with the input box and meet the find
    filter criteria.
    The problem is with very small clines (close to 0.1mils long or 0.01)
    I succeeded to extract only the one I want, by parsing selected clines->segments and analyzing startEnd. If it meets the one of the report, I select it. So now it works.
    report line: Dangling line on "VCC_IN_1" TOP from *(5507.00 3995.87) to (5506.89 3995.76)
    list1 list2
    foreach(cline selbox
    segs=cline->segments
    firstSeg=nth(0 segs)
    clineStart=car(firstSeg->startEnd)
    lastSeg=nth(length(segs)-1 segs)
    clineEnd=cadr(lastSeg->startEnd)
    list1=list(xs1 ys1)
    list2=list(xs2 ys2)
    if(list(list1 list2) == list(clineStart clineEnd) then dbid_list=append1(dbid_list cline))
    );foreach

    Then, now I still have a problem with the form list.

    How can I do to select the next item in the list and make the same effects as if I was clicking manually in the list.
    Actually, the "axlFormListSelect( dl_form "dl_list" dl_form->curValueInt + 1)" code select graphically the next item (it is greyed), but the if I run "dl_form->curValueInt" in skill mode, I am still on the previous one (equal to 0, no zoom to dbid is applied)....
    If I manually click on the selected item, then dl_form->curValueInt is equal to 1 and the zoom is on the next dbid).


    Originally posted in cdnusers.org by willbi
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • archive
    archive over 17 years ago

    I found a workaround with an axlShell command... but if someone has the solution, I'd like it.
    itemVal=axlFormListGetItem( dl_form "dl_list" dl_form->curValueInt + 1)
    axlFormListDeleteItem( dl_form "dl_list" dl_form->curValueInt)
    axlShell(sprintf(nil "setwindow form.dl_form;FORM dl_form dl_list '%s'" itemVal))


    Originally posted in cdnusers.org by willbi
    • 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