• 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. Help Needed for Quickplace using Skill/Script

Stats

  • Replies 8
  • Subscribers 160
  • Views 5655
  • Members are here 0
More Content

Help Needed for Quickplace using Skill/Script

vramanan
vramanan over 16 years ago

Hi Guys

 This is my intention

A script that will

1.Go and place all the symbols w.r.to its Schematic page number

2. Draw a dynamic rectangle around the placed symbols

3. Place a Text indicating the Page #

 I understand that I can do a script/skill  combination to do this

I can go around finding the exact numbers of pages by just giving a number and looping through it

 I see that the quickplace will create a log  which has xy for the placed symbols, I could use it to determine the Rectangle size

 

Any ideas/suggestions are welcome, I am willing to code and share it in the forum

 

If my above idea sounds viable, I need some pointers on reading a text file using skill

regards

Venkata

 

  • Cancel
  • Sign in to reply
  • vramanan
    vramanan over 16 years ago

    Hi Here is a the script I am trying out but I am stuck.

    Look at where I say /*Trouble*/

    Any inputs/ thoughts are welcome and appreciated

    ;Get The start point
    pointStart=axlEnterPoint()
    Px=xCoord(pointStart)
    Py=yCoord(pointStart)
    ; pick TOP/LEFT most only make sure that the database size is atleast 42000 30000
    lv.x = Px
    lv.y = Py


    ;Set noapp mode
    ;sprintf(scrFile,"%s","replay foobar.scr")
    axlShell("noappmode")    

    ;create layer board geometry/placebox  make it visible    
    unless(axlSetActiveLayer("BOARD GEOMETRY/PLACE_BOX") axlLayerCreateNonConductor("BOARD GEOMETRY/PLACE_BOX")    )

    ;Set Visibility Template/State
    origStatus = axlVisibleGet()
    axlVisibleDesign(nil)
    axlVisibleLayer("BOARD GEOMETRY/PLACE_BOX" t)
    axlVisibleLayer("BOARD GEOMETRY/OUTLINE" t)
    axlVisibleLayer("PACKAGE GEOMETRY/SILKSCREEN_TOP" t)
    axlVisibleLayer("ETCH/TOP" t)
    axlVisibleLayer("PIN/TOP" t)
    axlVisibleUpdate(nil)
    placeStatus = axlVisibleGet()

    ; Begin Outer For loop 1 to 6
    ; Begin Inner forloop 1 to 8
    ; preset turn on layers (outline/silk top/ top pad/placebox)
    axlVisibleSet(placeStatus)
    axlVisibleUpdate(nil)
    ; Draw line on board geometry/oulint from start point for ix 4000
    lv.path = axlPathStart( list(lv.x:lv.y lv.x+4000:Py))
    axlDBCreatePath(lv.path "BOARD GEOMETRY/OUTLINE" 'line)
    ; Draw box on board geometry/placebox from start point ix 4000 -4000
    ;bBox[0]=list(list(lv.x lv.y) list(lv.x+4000 lv.y-4000))
    lv.bBox=list(list(lv.x lv.y) list(lv.x+4000 lv.y-4000))
    axlDBCreateRectangle(lv.bBox, nil, "BOARD GEOMETRY/PLACE_BOX" )
    ; Add Text Page #
    lv.myorient = make_axlTextOrientation(?textBlock "9", ?rotation 90, ?mirrored nil, ?justify "left")
    pno = 3
    ;lv.ttext = strcat("PAGE " sprintf(pnos "%L" pno))
    lv.ttext = sprintf(ttext "PAGE %L" pno)
    axlDBCreateText( lv.ttext,list(lv.x+150 lv.y-850), lv.myorient, "BOARD GEOMETRY/PLACE_BOX",nil)        
    ;sprintf(schcmd1 "FORM sch_page_num view_tree 'MULTISEL YES' %L Sch_pagenum" pno)

    sprintf(schcmd1 "FORM quickplc page_num; setwindow form.sch_page_num; FORM sch_page_num view_tree 'MULTISEL YES' %L Sch_pagenum" pno )
    ; quickplace page#
    axlShell("quickplace; setwindow form.quickplc; FORM quickplc place_page_num YES" )
    axlShell(schcmd1)

    /*Trouble*/
    /* The Quickplace opens a main form and the skill shell is accessible, but when I click the schematic page numbers button and opens a child form, the skill shell is not accessible
    */

    axlShell("setwindow form.quickplc")
    axlShell("FORM quickplc place_page_num YES")
    axlShell("FORM quickplc page_num") 
    axlShell("setwindow form.sch_page_num")

    ;axlShell("FORM sch_page_num view_tree 'MULTISEL YES' 3 Sch_pagenum")
    ;axlShell("FORM sch_page_num view_tree  3 Sch_pagenum")
    axlShell(schcmd1)
    axlShell("FORM sch_page_num done") 
    axlShell("setwindow form.quickplc")
    axlShell("FORM quickplc origin_select_mode YES")
    axlShell("FORM quickplc origin") 
    axlShell("setwindow pcb")

    sprintf(schcmd2 "pick grid %L %L" lv.x+200 lv.y-200)
    axlShell("pick grid -4355.1968 11099.6709")
    axlShell("setwindow form.quickplc")
    axlShell("FORM quickplc bottom_edge YES")
    axlShell("FORM quickplc place") 
    axlShell("FORM quickplc done")

    ; set origin as xcoord + 100 , ycoord-100

    ; place below the outline

    ; Turn off all layers and turn on Board geometry/outline
    ; Delete line selectboax xcoord-50 ycoord+50 xcoord+4050 ycoord-50
    ; turn on preset layers
    ; xcoord+4050
    ; end Inner for loop
    ; xcoord = original
    ; ycoord-4050
    ; End Outer for loop



     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • EvanShultz
    EvanShultz over 16 years ago

     Hi Venkata,

     I would like to work with you on this. Can you provide an email so we can discuss your SKILL program?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • vramanan
    vramanan over 16 years ago
    Hi Evan

    My email is vramanan@infineradotcom

    Remove the dot and replace it with .

    Regards

    Venkata
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • vramanan
    vramanan over 16 years ago

     For What it is worth

    Here is a working code, make sure to click on the TOP LEFT corner

    This is just a quicker quickplace tool

     rename qp.il.txt to qp.il

    regards

    Venkata

    • qp.il.txt
    • View
    • Hide
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • vramanan
    vramanan over 16 years ago

     Hi

    I am trying to optimize the above attached code, I want to not create an empty box if there is a skipped schematic page number

    For that I have to ignore the non-existing page numbers

    Is there a way I can read the log texts on the command window and process it

    For example
    I am doing something and if I see a text
    "E- Value for field is not legal" then I want to something else

    regards
    Venkata

    • 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