• 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. Highlight location xy in rpt file

Stats

  • Replies 8
  • Subscribers 159
  • Views 15738
  • Members are here 0
More Content

Highlight location xy in rpt file

luanvn81
luanvn81 over 13 years ago

 Hi everyone!

 I have a code which print out a report file (ex: a.rpt) as below:

Via Start Layer   Via End Layer     Via Location
ETCH/TOP          ETCH/BOTTOM       (5.5:42.5)
ETCH/TOP          ETCH/BOTTOM       (5.5:40.5)
ETCH/TOP          ETCH/BOTTOM       (6.0:84.0)
ETCH/TOP          ETCH/BOTTOM       (6.0:86.0)

 I want to highlight location xy with one color  and after I checked a location , it will change into one other color( at the same way dangling report check in allegro)

How can I do it? 

Tks.

Luan.

  • Sign in to reply
  • Cancel
Parents
  • luanvn81
    luanvn81 over 13 years ago
     Hi! thank for your reply, but my problem is when I check a location, and then for example  I repair it, when return to report file ,  I don't know which location I have checked, so I wan to make the location xy with others color like  the way "dangling line report" of allegro do.

     here my code :

    ...................

    foreach(via allViasInDesign
    viaLocation = sprintf(nil "%L:%L" car(via->xy) cadr(via->xy))
    start_layer_via = car(via->startEnd)
    end_layer_via = cadr(via->startEnd)
    net_name_via = via->net->name
    via_name = via->name
    list_layer = list()
    ;list_layer = nil
    via_connects = axlDBGetConnect(via t)

    ;fprintf(writeOutFile, "%s %s %s %s\n",  via_name, start_layer_via, end_layer_via, viaLocation )

    foreach(via_connect via_connects
    type_obj = via_connect->objType

    case(type_obj
     ("pin"
       pin_layer = car(via_connect->startEnd)
       list_layer = cons(pin_layer, list_layer)
       ;fprintf(writeOutFile, "%s, %L\n", via_connect->objType, list_layer)
     ); end case pin

     ("via"
       ;via_layer = via_connect->startEnd
       via_layer = car(via_connect->startEnd)
       list_layer = cons(via_layer, list_layer)
       via_layer = cadr(via_connect->startEnd)
       list_layer = cons(via_layer, list_layer)
       if(cadr(via_connect->startEnd) = "ETCH/AL2" then
       list_layer = cons("ETCH/AL1", list_layer)
       else
       list_layer = list_layer
       ); end if
       ;fprintf(writeOutFile, "%s, %L\n", via_connect->objType, list_layer)
     ); end case via

     ("shape"
       shape_layer = via_connect->layer
       list_layer = cons(shape_layer, list_layer)
       ;fprintf(writeOutFile, "%s, %L\n", via_connect->objType, list_layer)
     ); end case shape

     ("path"
       path_layer = via_connect->layer
       list_layer = cons(path_layer, list_layer)
       ;fprintf(writeOutFile, "%s, %L\n", via_connect->objType, list_layer)
     ); end case path-cline
    ); end case all
    );end foreach via_connect

    a1 = length(member(start_layer_via, list_layer))
    a2 = length(member(end_layer_via, list_layer))

    if( a1 == 0 || a2 == 0 then
    fprintf(writeOutFile, "%-18s%-18s(%-s)\n", start_layer_via, end_layer_via, viaLocation)
    );end if
    );end foreach via allViasInDesign

    ...........................................

    Tks.

    Luan

     
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • luanvn81
    luanvn81 over 13 years ago
     Hi! thank for your reply, but my problem is when I check a location, and then for example  I repair it, when return to report file ,  I don't know which location I have checked, so I wan to make the location xy with others color like  the way "dangling line report" of allegro do.

     here my code :

    ...................

    foreach(via allViasInDesign
    viaLocation = sprintf(nil "%L:%L" car(via->xy) cadr(via->xy))
    start_layer_via = car(via->startEnd)
    end_layer_via = cadr(via->startEnd)
    net_name_via = via->net->name
    via_name = via->name
    list_layer = list()
    ;list_layer = nil
    via_connects = axlDBGetConnect(via t)

    ;fprintf(writeOutFile, "%s %s %s %s\n",  via_name, start_layer_via, end_layer_via, viaLocation )

    foreach(via_connect via_connects
    type_obj = via_connect->objType

    case(type_obj
     ("pin"
       pin_layer = car(via_connect->startEnd)
       list_layer = cons(pin_layer, list_layer)
       ;fprintf(writeOutFile, "%s, %L\n", via_connect->objType, list_layer)
     ); end case pin

     ("via"
       ;via_layer = via_connect->startEnd
       via_layer = car(via_connect->startEnd)
       list_layer = cons(via_layer, list_layer)
       via_layer = cadr(via_connect->startEnd)
       list_layer = cons(via_layer, list_layer)
       if(cadr(via_connect->startEnd) = "ETCH/AL2" then
       list_layer = cons("ETCH/AL1", list_layer)
       else
       list_layer = list_layer
       ); end if
       ;fprintf(writeOutFile, "%s, %L\n", via_connect->objType, list_layer)
     ); end case via

     ("shape"
       shape_layer = via_connect->layer
       list_layer = cons(shape_layer, list_layer)
       ;fprintf(writeOutFile, "%s, %L\n", via_connect->objType, list_layer)
     ); end case shape

     ("path"
       path_layer = via_connect->layer
       list_layer = cons(path_layer, list_layer)
       ;fprintf(writeOutFile, "%s, %L\n", via_connect->objType, list_layer)
     ); end case path-cline
    ); end case all
    );end foreach via_connect

    a1 = length(member(start_layer_via, list_layer))
    a2 = length(member(end_layer_via, list_layer))

    if( a1 == 0 || a2 == 0 then
    fprintf(writeOutFile, "%-18s%-18s(%-s)\n", start_layer_via, end_layer_via, viaLocation)
    );end if
    );end foreach via allViasInDesign

    ...........................................

    Tks.

    Luan

     
    • 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