Home > Community > Forums > PCB SKILL > SKILL to Create 'Allegro Design Entry CIS' symbols and 'Allegro PCB Editor' footprints

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 SKILL to Create 'Allegro Design Entry CIS' symbols and 'Allegro PCB Editor' footprints 

Last post Tue, Apr 12 2011 3:02 PM by eDave. 3 replies.
Started by seddona 11 Jan 2011 02:43 AM. Topic has 3 replies and 2989 views
Page 1 of 1 (4 items)
Sort Posts:
  • Tue, Jan 11 2011 2:43 AM

    • seddona
    • Not Ranked
    • Joined on Tue, Jan 11 2011
    • Cambridgeshire, Cambridgeshire
    • Posts 6
    • Points 45
    SKILL to Create 'Allegro Design Entry CIS' symbols and 'Allegro PCB Editor' footprints Reply
    Hi, I believe it is possible to programmatically create Allegro PCB Editor footprints using SKILL but I was wondering if you can use SKILL in Allegro Design Entry CIS or if there is another way to programmatically create schematic symbols? Thanks, Andrew
    Filed under:
    • Post Points: 5
  • Tue, Jan 11 2011 6:26 AM

    • seddona
    • Not Ranked
    • Joined on Tue, Jan 11 2011
    • Cambridgeshire, Cambridgeshire
    • Posts 6
    • Points 45
    Re: SKILL to Create 'Allegro Design Entry CIS' symbols and 'Allegro PCB Editor' footprints Reply
    For anybody that is interested, it appears the latest hotfix allows scripting with TCL.
    • Post Points: 5
  • Tue, Apr 12 2011 8:20 AM

    • seddona
    • Not Ranked
    • Joined on Tue, Jan 11 2011
    • Cambridgeshire, Cambridgeshire
    • Posts 6
    • Points 45
    Re: SKILL to Create 'Allegro Design Entry CIS' symbols and 'Allegro PCB Editor' footprints Reply
    Can anybody point me to some example SKILL for creating footprints in Allegro PCB? Or at least the documentation describing the footprint model. Thanks
    • Post Points: 20
  • Tue, Apr 12 2011 3:02 PM

    • eDave
    • Top 10 Contributor
    • Joined on Sun, Jul 13 2008
    • Christchurch, 00-NZ
    • Posts 744
    • Points 16,115
    Re: SKILL to Create 'Allegro Design Entry CIS' symbols and 'Allegro PCB Editor' footprints Reply

    Here is some very basic example code. You need to be in the symbol editor to create parts. Just open a new DRA.

    Note that this code requires units to be set to mils for the benefit of US readers. However, I don't encourage developing libraries in units other than mm.

    You will need to substitute the padname "255C" with one from your library to test the code.

    Regards,

    Dave

    defun( exampleSymbol ()
     let((layer, placeBound, padName, txtOrient, txtLoc)
     ; Assembly top outline:
     layer = "PACKAGE GEOMETRY/ASSEMBLY_TOP"
     axlDBCreateRectangle(list(-100:-200, 100:200), nil, layer)

     ; Place Bound Top:
     layer = "PACKAGE GEOMETRY/PLACE_BOUND_TOP"
     placeBound = car(axlDBCreateRectangle(list(-100:-200, 100:200), t, layer))
     when(placeBound, axlDBAddProp(placeBound, list("PACKAGE_HEIGHT_MAX", 40)))
     
     ;Silkscreen outline
     layer = "PACKAGE GEOMETRY/SILKSCREEN_TOP"
     axlDBCreateLine(list(-110:-210, -110:210, 110:210, 110:-210, -110:-210), 8.0, layer)

     ; Pins:
     padName = "255C"; ********* Substitute your own padstackname here if testing this code ************
     when(axlLoadPadstack(padName)
      example_makePin(padName, 0:-150, "1", ?txtBlk "1")
      example_makePin(padName, 0:150, "2", ?txtBlk "1")
     )

     ;Silkscreen designator
     layer = "REF DES/SILKSCREEN_TOP" 
     txtOrient = make_axlTextOrientation(?textBlock "2", ?justify "center")
     axlDBCreateText("XXXXX", 0:250, txtOrient, layer)
     
     ;Assembly reference designator
     layer = "REF DES/SILKSCREEN_TOP" 
     txtOrient = make_axlTextOrientation(?textBlock "2", ?justify "center")
     axlDBCreateText("XXXXX", 0:250, txtOrient, layer)

     layer = "REF DES/ASSEMBLY_TOP"
     txtOrient = make_axlTextOrientation(?textBlock "1", ?justify "center")
     txtLoc = 0.0:axlGetParam("paramTextBlock:1") ->height / -2.0
     axlDBCreateText("XXXXX", txtLoc, txtOrient, layer)
    ))

    defun( example_makePin (padStackName, loc, pinNumber @key (txtBlk "1"))
     let((txtO, txtOffset, txtid)
     txtOffset = 0.0:axlGetParam(strcat("paramTextBlock:", txtBlk)) ->height / -2.0
     txtO = make_axlTextOrientation(?textBlock txtBlk, ?justify "center")
     txtid = make_axlPinText(?number pinNumber,?offset txtOffset, ?text txtO)
     axlDBCreatePin(padStackName, loc, txtid)
    ))

     

    Dave Elder, Tait Communications
    • Post Points: 5
Page 1 of 1 (4 items)
Sort Posts:
Started by seddona at 11 Jan 2011 02:43 AM. Topic has 3 replies.