Home
  • Products
  • Solutions
  • Support
  • Company

This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  • Products
  • Solutions
  • Support
  • Company
Community PCB Design & IC Packaging (Allegro X) Allegro X PCB Editor dxf out question

Stats

  • State Not Answered
  • Replies 11
  • Subscribers 155
  • Views 7429
  • Members are here 0
More Content

dxf out question

masamasa
masamasa over 1 year ago

hello

 

is there a way to maitain the assigned color on the bga pads on the design during the dxf export?

   

the exported dxf file has always white colored pads.

 

regards

masa

  • Sign in to reply
  • Cancel
Parents
  • GilMay2
    0 GilMay2 over 1 year ago

    Hi Masa,

    I'm using SPB v17.4 S036.
    There is Color Mapping option in DXF Out setup to match database colors.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • masamasa
    0 masamasa over 1 year ago in reply to GilMay2

    thank u for ur comment.

    the color mapping option is already set as "match database colors" as default but the exported dxf file has all white.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • DavidJHutchins
    0 DavidJHutchins over 1 year ago in reply to masamasa

    I just tested this with allegro 22.1 S006 & the colors were output correctly...

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • masamasa
    0 masamasa over 1 year ago in reply to DavidJHutchins

    thank u for checking, david.

    r u talking about the colors assigned by the command "assign color"?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • masamasa
    0 masamasa over 1 year ago in reply to DavidJHutchins

    thank u for checking, david.

    r u talking about the colors assigned by the command "assign color"?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
  • DavidJHutchins
    0 DavidJHutchins over 1 year ago in reply to masamasa

    No, I just verified that the layer colors in a pcb fab_dwg matched between Allegro and  the dxf file

    Per research I did a couple of years ago the only way to export 'assign color' setting is to use the 'capture image' command

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • masamasa
    0 masamasa over 1 year ago in reply to DavidJHutchins

    thank u, david. the purpose of this dxf out is to find out the xy coordinates of the highlighted bga pads assigned by the command assign color.  so a capture Image does not help.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • DavidJHutchins
    0 DavidJHutchins over 1 year ago in reply to masamasa

    As a possible solution to that issue I wrote the skill code below to report the colored pins:

    procedure((Report_ColoredPins \@optional FileName)
        prog((OutputName outport PinCnt NetCnt Total)
            if(FileName then
                (OutputName = strcat(simplifyFilename(".") "/" FileName))
                (OutputName = FileName) else
                (OutputName = strcat(simplifyFilename(".") "/Colored_Pins.txt"))
            )
            if(isFile(OutputName) then
                unless(deleteFile(OutputName)
                    (axlMsgPut "ERROR: could not remove existing file %s" OutputName)
                    return()
                )
            )
            (axlMeterCreate "Report 1 pin nets" "" t)
            if((outport = outfile(OutputName)) then
                (NetCnt = 0)
                (PinCnt = 0)
                (Total = length(((axlDBGetDesign)->nets)))
                foreach(net
                    ((axlDBGetDesign)->nets)
                    unless((axlMeterIsCancelled)
                        NetCnt++
                        (axlMeterUpdate
                            ((100 * NetCnt) / Total)
                            strcat("Processing net "
                                (net->name)
                            )
                        )
                        foreach(branch
                            (net->branches)
                            foreach(child
                                (branch->children)
                                when(((child->objType) == "pin")
                                    when((axlIsCustomColored child)
                                        PinCnt++
                                        fprintf(outport "%s.%s\t%s\t(%g %g)\t%d\n"
                                            ((child->component)->name)
                                            (child->number)
                                            (net->name)
                                            (xCoord
                                                (child->xy)
                                            )
                                            (yCoord
                                                (child->xy)
                                            )
                                            (axlIsCustomColored child)
                                        )
                                    )
                                )
                            )
                        )
                    )
                )
                (axlMeterDestroy)
                close(outport)
                (axlMsgPut "%d nets processed, %d CustomColored Pins found & written to %s" NetCnt PinCnt OutputName) else
                (axlMsgPut "ERROR: could not open output file %s" OutputName)
                return()
            )
        )
    )

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • masamasa
    0 masamasa over 1 year ago in reply to DavidJHutchins

    thank u, david for providing me with the skill coade.

    i am not familiar with skill codes.

    In the skill caode named "color_assign.il", do i need to put something in the head shown below?

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    axlCmdRegister( "color_assign" `color_assign)

     

    procedure((Report_ColoredPins \@optional FileName)
        prog((OutputName outport PinCnt NetCnt Total)

     

    skill code continued

      

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • DavidJHutchins
    0 DavidJHutchins over 1 year ago in reply to masamasa

    I included the command registration & added design units output

    updated skill code below:

    procedure((Report_ColoredPins \@optional FileName)
    prog((OutputName outport PinCnt NetCnt Total)
    if(FileName then
    (OutputName = strcat(simplifyFilename(".") "/" FileName))
    (OutputName = FileName) else
    (OutputName = strcat(simplifyFilename(".") "/Colored_Pins.txt"))
    )
    if(isFile(OutputName) then
    unless(deleteFile(OutputName)
    axlMsgPut("ERROR: could not remove existing file %s" OutputName)
    return()
    )
    )
    axlMeterCreate("Report Colored Pins" "" t)
    if((outport = outfile(OutputName)) then
    (Total = car((axlDBGetDesignTotal)))
    cond(((Total == "mils")
    fprintf(outport "UNITS Mils\n")
    )
    ((Total == "inches")
    fprintf(outport "UNITS Inches\n")
    )
    ((Total == "microns")
    fprintf(outport "UNITS UM\n")
    )
    ((Total == "millimeters")
    fprintf(outport "UNITS MM\n")
    )
    ((Total == "centimeters")
    fprintf(outport "UNITS CM\n")
    )
    )
    (NetCnt = 0)
    (PinCnt = 0)
    (Total = length((axlDBGetDesign()->nets)))
    foreach(net
    (axlDBGetDesign()->nets)
    unless(axlMeterIsCancelled()
    NetCnt++
    axlMeterUpdate(((100 * NetCnt) / Total)
    strcat("Processing net "
    (net->name)
    )
    )
    foreach(branch
    (net->branches)
    foreach(child
    (branch->children)
    when(((child->objType) == "pin")
    when(axlIsCustomColored(child)
    PinCnt++
    fprintf(outport "%s.%s\t%s\t(%g %g)\t%d\n"
    ((child->component)->name)
    (child->number)
    (net->name)
    xCoord((child->xy))
    yCoord((child->xy))
    axlIsCustomColored(child)
    )
    )
    )
    )
    )
    )
    )
    axlMeterDestroy()
    close(outport)
    axlMsgPut("%d nets processed, %d CustomColored Pins found & written to %s" NetCnt PinCnt OutputName) else
    axlMsgPut("ERROR: could not open output file %s" OutputName)
    return()
    )
    )
    )
    axlCmdRegister( "Report_ColoredPins" 'Report_ColoredPins)

    • 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