Home > Community > Forums > PCB SKILL > Silk Rotate skill file

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: *

 Silk Rotate skill file 

Last post Tue, Jan 8 2013 11:54 AM by E Hudson. 11 replies.
Started by Jocko 25 Jan 2011 01:50 PM. Topic has 11 replies and 8398 views
Page 1 of 1 (12 items)
Sort Posts:
  • Tue, Jan 25 2011 1:50 PM

    • Jocko
    • Not Ranked
    • Joined on Wed, Mar 25 2009
    • Chandler, AZ
    • Posts 2
    • Points 55
    Silk Rotate skill file Reply

    I have this old skill program, RotateSilkAssyRD.il. Its a great tool to get ref des align, re-sized and reset to start

    working on cleanup.  I've used it on 15.7, but now on 16.1 and 16.3 I get an error.

    When I envoke the skill I get this error.

    E- *Error* fprintf: argument #1 should be an I/O port (type template = "ptg") - nil

    Not sure where I got it and when, I may have stripped out the authors name in the past.

    A great time saver when your working with a lot of parts.

    ;###########################################################################
    ;#                                                                         #
    ;#   Rotate Reference Designator Text on Silkscreen and Assembly Layers    #
    ;#                                                                         #
    ;#  This routine rotates Silkscreen and Assembly Reference Designators     #
    ;#  such that they are all "rightward reading".  This means that all RDs   #
    ;#  will read left to right if they are horizontal, or bottom to top if    #
    ;#  they are vertical.                                                     #
    ;#                                                                         #
    ;#  Additionally, any Assy RD will automatically be moved to the component #
    ;#  origin.                                                                #
    ;#                                                                         #
    ;#                                                                         #
    ;#  Usage:  rotate_silkassy (from within Allegro)                          #
    ;###########################################################################

    ;##########################
    ;#  Register Program Name #
    ;##########################

    axlCmdRegister("rotate_silkassy" 'RotateSilkAssyRD)

    ;#############################
    ;# MAIN Program Starts Here. #
    ;#############################

    (defun RotateSilkAssyRD ()

      ; ==== Initialize Global Variables ====

      Layer_List = nil
      Text_List  = nil
      Layer_List = nil
      justify    = ""

      LRBT = t   ; Left to Right, Bottom to Top
      LRTB = nil ; Left to Right, Top to Bottom
      RLBT = nil ; Right to Left, Bottom to Top
      RLTB = nil ; Right to Left, Top to Bottom

      CenterAssy = t
      ChangeTextSize  = nil
      TextBlockLarge  = 6
      TextBlockMedium = 3
      TextBlockSmall  = 1
      tblk_large  = "6"
      tblk_medium = "3"
      tblk_small  = "1"

      SilkTop = nil
      SilkBot = nil
      AssyTop = nil
      AssyBot = nil
      silktop_layer = "REF DES/SILKSCREEN_TOP"
      silkbot_layer = "REF DES/SILKSCREEN_BOTTOM"
      assytop_layer = "REF DES/ASSEMBLY_TOP"
      assybot_layer = "REF DES/ASSEMBLY_BOTTOM"
     
      sym_savex  = -1
      sym_savey  = -1
      sym_saveparent = nil

      SetupDir()

      if( axlOKToProceed() then
         
          ; ==== Create and Display the User Interface ====

          createRotateRDForm()
          fFile = strcat( FormDir "rotateRDForm.form" )
          Form = axlFormCreate( (gensym)  fFile  nil 'rotateRDForm_Action t)
          axlFormSetField(Form "LRBT" LRBT)
          axlFormSetField(Form "LRTB" LRTB)
          axlFormSetField(Form "RLBT" RLBT)
          axlFormSetField(Form "RLTB" RLTB)
          axlFormSetField(Form "CenterAssy"      CenterAssy)
          axlFormSetField(Form "TextBlockLarge"  TextBlockLarge )
          axlFormSetField(Form "TextBlockMedium" TextBlockMedium)
          axlFormSetField(Form "TextBlockSmall"  TextBlockSmall )
          axlFormDisplay( Form )
      else
          printf("E- Please terminate your interactive command .\n")
      );endif OKToProceed

    ); end defun - MAIN Program

    ;############################################################################
    ;# doRotateSilkAssy - When OK is hit, perform Reference Designator Rotation #
    ;#                   Do each layer separately to improve performance.       #
    ;############################################################################

    (defun doRotateSilkAssy ()

       axlClearSelSet()
       axlSetFindFilter( ?enabled   (list "noall"  "text")
                         ?onButtons (list "text")
                       )
       axlMsgPut("Silk/Assy RD rotation started.")
       foreach( layer Layer_List
                axlVisibleDesign(nil)
                axlVisibleLayer( layer t)
                Text_List = axlGetSelSet( axlAddSelectAll() )
                if( length( Text_List ) != 0 then rotateSilkAssy() )
                axlClearSelSet()
                axlFlushDisplay()
                axlMsgPut(strcat( layer " Rotation completed.") )
              ); foreach

    ; ==== Turn On Top/Bottom Silk & Assembly Layers, if they were changed. ====

       Display_List = list("paramLayerGroup:BOARD GEOMETRY/paramLayer:OUTLINE")
       if( AssyTop == t then
           Display_List = cons("paramLayerGroup:PACKAGE GEOMETRY/paramLayer:ASSEMBLY_TOP" Display_List)
           Display_List = cons("paramLayerGroup:REF DES/paramLayer:ASSEMBLY_TOP"          Display_List)
         )
       if( AssyBot == t then
           Display_List = cons("paramLayerGroup:PACKAGE GEOMETRY/paramLayer:ASSEMBLY_BOTTOM" Display_List)
           Display_List = cons("paramLayerGroup:REF DES/paramLayer:ASSEMBLY_BOTTOM"          Display_List)
         )
       if( SilkTop == t then
           Display_List = cons("paramLayerGroup:PACKAGE GEOMETRY/paramLayer:SILKSCREEN_TOP"  Display_List)
           Display_List = cons("paramLayerGroup:REF DES/paramLayer:SILKSCREEN_TOP"           Display_List)
         )
       if( SilkBot == t then
           Display_List = cons("paramLayerGroup:PACKAGE GEOMETRY/paramLayer:SILKSCREEN_BOTTOM" Display_List)
           Display_List = cons("paramLayerGroup:REF DES/paramLayer:SILKSCREEN_BOTTOM"          Display_List)
         )
       foreach( Layer Display_List
                val = axlGetParam( Layer )
                val->visible = t
                axlSetParam( val )
              )

    ); end defun - doRotateSilkAssy

    ;###################################################################### 
    ;# rotateSilkAssy - Check layer type, Get RD Coordinates and rotation.#
    ;#                  Rotate RD in place if wrong orientation, change   #
    ;#                  text justification to "center".                   #
    ;###################################################################### 

    (defun rotateSilkAssy ()
     
       foreach( text_id Text_List
                ;axlMsgPut(strcat("Processing: " text_id->text))
                ; ==== retrieve current information on text id              ====
             
            changeit = 0
            text   = text_id->text
            xy     = text_id->xy
                txt_x  = xCoord( xy )
                txt_y  = yCoord( xy )
                txt_tblk = text_id->textBlock

            ; ==== Change Text to "Center" Justification for ease of use ====

                txt_jus= text_id->justify
                if( txt_jus != "CENTER" then changeit = 1 )

            ; ==== Check current rotation against preferred orientation ====
                  ; ==== Change if necessary                                  ====

            txt_rot= text_id->rotation
                if( LRBT == t then
                    if( txt_rot == 180 then
                        txt_rot  = 0
                  changeit = 1
                      )
                    if( txt_rot == 270 then
                        txt_rot  = 90
                  changeit = 1
                      )
                  );endif LRTB

            if( LRTB == t then
                    if( txt_rot == 180 then
                        txt_rot  = 0
                  changeit = 1
                      )
                    if( txt_rot == 90 then
                        txt_rot  = 270
                        changeit = 1  
                      )
                  );endif LRBT

            if( RLBT == t then
                    if( txt_rot == 180 then
                        txt_rot  = 0
                        changeit = 1
                      )
                    if( txt_rot == 270 then
                        txt_rot  =  90
                        changeit = 1
                      )
                  );endif RLBT

            if( RLTB == t then
                    if( txt_rot == 180 then
                        txt_rot  = 0
                        changeit = 1
                      )
                    if( txt_rot == 90 then
                        txt_rot  = 270
                        changeit = 1
                      )
                  );endif RLTB

                  ; ==== ON Assembly Layers, if requested by user in form ====
                ; ====    Move Assy Text to Calculated Symbol origin    ====
                ; ====    Change Text Block Sizes for easier reading.   ====
        
                txt_lyr = text_id->layer
                if( txt_lyr == assytop_layer || txt_lyr == assybot_layer || txt_lyr == silktop_layer || txt_lyr == silkbot_layer then
                    if( CenterAssy == t then
                        foreach(childid text_id->parent->children
                                if( childid->layer == "PACKAGE GEOMETRY/PLACE_BOUND_TOP" ||
                                    childid->layer == "PACKAGE GEOMETRY/PLACE_BOUND_BOTTOM" then               
                                    sym_llx = xCoord( xCoord( childid->bBox ))
                                    sym_lly = yCoord( xCoord( childid->bBox ))
                                    sym_urx = xCoord( yCoord( childid->bBox ))
                                    sym_ury = yCoord( yCoord( childid->bBox ))
                                    sym_x   = (sym_urx + sym_llx) / 2
                                    sym_y   = (sym_ury + sym_lly) / 2
                                  );endif childid
                               );end foreach
                        if( txt_rot ==   0 then sym_y = sym_y - 20 )
                        if( txt_rot ==  90 then sym_x = sym_x + 20 )
                        if( txt_rot == 180 then sym_y = sym_y + 20 )
                        if( txt_rot == 270 then sym_x = sym_x - 20 )
                        xy       = list( sym_x sym_y )
                        changeit = 1
                      );endif CenterAssy
                 
                    if( ChangeTextSize == t then
                        changeit = 1
                        txt_tblk = tblk_large
                        rdalpha  = substring( text 1 1 )
                        if( rdalpha == "C" || rdalpha == "R" then
                            txt_tblk = tblk_small
                          )
                        if( rdalpha == "D" then
                            txt_tblk = tblk_small
                          )
                        rdalpha  = substring( text 1 2 )
                        if( rdalpha == "RN" || rdalpha == "RP" then
                            txt_tblk = tblk_medium
                          )
                    if( rdalpha == "FB" || rdalpha == "KP" then
                            txt_tblk = tblk_medium
                          )
                  if( rdalpha == "TP" then
                            txt_tblk = tblk_small
                          )
                      );endif ChangeTextBlock
                  );endif txt_lyer

              ; ==== Do text movement, if anything has changed ====
             
    ;VAN HUYNH modified here (add _RD)

                if( changeit == 1 then createTextBlock_RD())
          ); endforeach

    ); end defun - rotateSilkAssy

    ;#################################################################### 
    ;# createTextBlock - Create text record and write information to    #
    ;#                   the database.                                  #
    ;#################################################################### 

    ;VAN HUYNH modified here (add _RD)

    (defun createTextBlock_RD ()

      textBlock = txt_tblk
      rotation  = txt_rot
      parent_id = text_id->parent        ; symbol association
      mirrored  = text_id->isMirrored    ; t/nil
      justify   = "CENTER"               ; "LEFT" "CENTER" "RIGHT"

      ; ==== setup defstruct for text insertion ====

      textOrientation = make_axlTextOrientation( ?textBlock textBlock,
                                                 ?rotation  rotation,
                                                 ?mirrored  mirrored,
                                                 ?justify   justify
                                               )
      ; ==== Add new text and delete the existing text if successful ===
     
      update = axlDBCreateText( text, xy, textOrientation,
                                text_id->layer, parent_id
                              )
      if( update != nil then
        ; axlMsgPut("Update Succeeded.")
          axlDeleteObject( list( text_id ))
      else
          axlMsgPut( strcat( "Update Failed on " text ) )
        ); endif

    ); end defun - createTextBlock_RD

    ;VAN HUYNH modified here (add _RD)

     ;###########################################################
     ;# Form CallBacks - Determine Allegro command to execute   #
     ;#                  based on the user's selection          #
     ;###########################################################
     
    (defun rotateRDForm_Action (Form)
     
       (case Form->curField
         ("SilkTop"
            SilkTop=Form->curValue
         ); end "SilkTop"

         ("SilkBot"
            SilkBot=Form->curValue
         ); end "SilkBot"

         ("AssyTop"
            AssyTop=Form->curValue
         ); end "AssyTop"

         ("AssyBot"
            AssyBot=Form->curValue
         ); end "AssyBot"

         ("LRBT"
            LRBT=Form->curValue
            orient_0   = t
            orient_90  = t
            orient_180 = nil
            orient_270 = nil
         ); end "LRTB"
     
         ("LRTB"
            LRTB=Form->curValue
            orient_0   = t
            orient_90  = nil
            orient_180 = nil
            orient_270 = t
         ); end "LRTB"

         ("RLBT"
            RLBT=Form->curValue
            orient_0   = nil
            orient_90  = t
            orient_180 = t
            orient_270 = nil
         ); end "LRTB"
     
         ("RLTB"
            RLTB=Form->curValue
            orient_0   = nil
            orient_90  = nil
            orient_180 = t
            orient_270 = t
         ); end "LRTB"

         ("CenterAssy"
            CenterAssy=Form->curValue
         ); end "CenterAssy"

         ("ChangeTextSize"
            ChangeTextSize=Form->curValue
         ); end "ChangeTextSize"

         ("TextBlockLarge"
            TextBlockLarge=Form->curValue
            sprintf( tblk_large "%L" TextBlockLarge )
         ); end "TextBlockLarge"

         ("TextBlockMedium"
            TextBlockMedium=Form->curValue
            sprintf( tblk_medium "%L" TextBlockMedium )
         ); end "TextBlockMedium"

         ("TextBlockSmall"
            TextBlockSmall=Form->curValue
            sprintf( tblk_small "%L" TextBlockSmall )
         ); end "TextBlockSmall"

         ("done"
            ; ==== cons puts the list together in reverse order
            if( AssyBot == t then Layer_List = cons( assybot_layer Layer_List ) )
            if( AssyTop == t then Layer_List = cons( assytop_layer Layer_List ) )
            if( SilkBot == t then Layer_List = cons( silkbot_layer Layer_List ) )
            if( SilkTop == t then Layer_List = cons( silktop_layer Layer_List ) )
            doRotateSilkAssy()
            (axlFormClose Form)
            (axlCancelEnterFun)
            deleteFile( fFile )
         ); end "done"

         ("cancel"
            (axlFormClose Form)
            (axlCancelEnterFun)
            deleteFile( fFile )
         ); end "cancel"

       ); end case
     
     ); end defun - rotateRDForm_Action

      ;#########################
      ;# End Form CallBacks    #
      ;#########################
     
     
      ;###########################################################
      ;# createTitleBlockForm - Main User Interface Form         #
      ;#                        Brought up by executing command. #
      ;###########################################################

    (defun createRotateRDForm () 

       fFile = strcat( FormDir "rotateRDForm.form" )
       Form  = outfile( fFile "w")
       fprintf(Form "FILE_TYPE=FORM_DEFN VERSION=2\n")
       fprintf(Form "FORM\n")
       fprintf(Form "FIXED\n")
       fprintf(Form "PORT 77 20\n")
       fprintf(Form "HEADER \"Rotate Silkscreen/Assembly Reference Designators V2.0\"\n")
       fprintf(Form "TILE\n")
     
       fprintf(Form "GROUP \"Select Layers to Rotate\"\n")
       fprintf(Form "GLOC 2 1\n")
       fprintf(Form "GSIZE 72 4\n")
       fprintf(Form "ENDGROUP\n")

       fprintf(Form "FIELD \"SilkTop\"\n")
       fprintf(Form "FLOC 3 3 \n")
       fprintf(Form "CHECKLIST \"Silkscreen-Top\" \n")
       fprintf(Form "ENDFIELD\n")

       fprintf(Form "FIELD \"SilkBot\"\n")
       fprintf(Form "FLOC 20 3 \n")
       fprintf(Form "CHECKLIST \"Silkscreen-Bottom\" \n")
       fprintf(Form "ENDFIELD\n")
      
       fprintf(Form "FIELD \"AssyTop\"\n")
       fprintf(Form "FLOC 37 3 \n")
       fprintf(Form "CHECKLIST \"Assembly-Top\" \n")
       fprintf(Form "ENDFIELD\n")

       fprintf(Form "FIELD \"AssyBot\"\n")
       fprintf(Form "FLOC 54 3 \n")
       fprintf(Form "CHECKLIST \"Assembly-Bottom\" \n")
       fprintf(Form "ENDFIELD\n")

       fprintf(Form "GROUP \"Select RD Orienation\"\n")
       fprintf(Form "GLOC 2 5\n")
       fprintf(Form "GSIZE 32 13\n")
       fprintf(Form "ENDGROUP\n")

       fprintf(Form "GROUP \"Ref Des Alterations\"\n")
       fprintf(Form "GLOC 36 5\n")
       fprintf(Form "GSIZE 38 13\n")
       fprintf(Form "ENDGROUP\n")

       fprintf(Form "TEXT \"Horizontal           Vertical \"\n")
       fprintf(Form "TLOC 6 7 \n")
       fprintf(Form "ENDTEXT\n")

       fprintf(Form "FIELD \"LRBT\"\n")
       fprintf(Form "FLOC 3 9 \n")
       fprintf(Form "CHECKLIST \"Left to Right     Bottom to Top\" \"rotate_group\" \n")
       fprintf(Form "ENDFIELD\n")

       fprintf(Form "FIELD \"LRTB\"\n")
       fprintf(Form "FLOC 3 11 \n")
       fprintf(Form "CHECKLIST \"Left to Right     Top to Bottom\" \"rotate_group\" \n")
       fprintf(Form "ENDFIELD\n")

       fprintf(Form "FIELD \"RLBT\"\n")
       fprintf(Form "FLOC 3 13 \n")
       fprintf(Form "CHECKLIST \"Right to Left     Bottom to Top\" \"rotate_group\" \n")
       fprintf(Form "ENDFIELD\n")

       fprintf(Form "FIELD \"RLTB\"\n")
       fprintf(Form "FLOC 3 15 \n")
       fprintf(Form "CHECKLIST \"Right to Left     Top to Bottom\" \"rotate_group\" \n")
       fprintf(Form "ENDFIELD\n")

       fprintf(Form "FIELD \"CenterAssy\"\n")
       fprintf(Form "FLOC 37 7 \n")
       fprintf(Form "CHECKLIST \"Center Assembly RDs at Part Origin\" \n")
       fprintf(Form "ENDFIELD\n")

       fprintf(Form "FIELD \"ChangeTextSize\"\n")
       fprintf(Form "FLOC 37 9 \n")
       fprintf(Form "CHECKLIST \"Change Text Block Sizes\" \n")
       fprintf(Form "ENDFIELD\n")

       fprintf(Form "TEXT \"Large  Text Block: \"\n")
       fprintf(Form "TLOC 39 11 \n")
       fprintf(Form "ENDTEXT\n")

       fprintf(Form "TEXT \"Medium Text Block: \"\n")
       fprintf(Form "TLOC 39 13 \n")
       fprintf(Form "ENDTEXT\n")

       fprintf(Form "TEXT \"Small Text Block: \"\n")
       fprintf(Form "TLOC 39 15 \n")
       fprintf(Form "ENDTEXT\n")

       fprintf(Form "FIELD \"TextBlockLarge\"\n")
       fprintf(Form "FLOC 55 11 \n")
       fprintf(Form "INTSLIDEBAR 3 3\n MIN 1\n MAX 60\n FGROUP\"TxtBlock\" \n")
       fprintf(Form "ENDFIELD\n")

       fprintf(Form "FIELD \"TextBlockMedium\"\n")
       fprintf(Form "FLOC 55 13 \n")
       fprintf(Form "INTSLIDEBAR 3 3\n MIN 1\n MAX 60\n FGROUP\"TxtBlock\" \n")
       fprintf(Form "ENDFIELD\n")
     
       fprintf(Form "FIELD \"TextBlockSmall\"\n")
       fprintf(Form "FLOC 55 15 \n")
       fprintf(Form "INTSLIDEBAR 3 3\n MIN 1\n MAX 60\n FGROUP\"TxtBlock\" \n")
       fprintf(Form "ENDFIELD\n")

       fprintf(Form "FIELD done\n")
       fprintf(Form "FLOC 6 18\n")
       fprintf(Form "MENUBUTTON \"Done\" 6 3\n")
       fprintf(Form "ENDFIELD\n")

       fprintf(Form "FIELD cancel\n")
       fprintf(Form "FLOC 16 18\n")
       fprintf(Form "MENUBUTTON \"CANCEL\" 6 3\n")
       fprintf(Form "ENDFIELD\n")

       fprintf(Form "ENDTILE\n")
       fprintf(Form "ENDFORM\n")
       close(Form)
    ); end defun  - createRotateRDForm
     
     

     

     

     

    Filed under:
    • Post Points: 35
  • Tue, Jan 25 2011 2:33 PM

    RE: Silk Rotate skill file Reply
    It looks like there might be an issue with SetupDir.  This looks to be an external function defined in another file.  The lines that define the filename to open

    fFile = strcat( FormDir "rotateRDForm.form" )

    are referencing a variable (FormDir) that is not is not set in this file.  I suspect the outfile is failing and as a result, the form is not being written.

    Regards,
    Charlie
    321.727.6235
    Charlie Davies
    • Post Points: 5
  • Tue, Jan 25 2011 2:36 PM

    • eDave
    • Top 10 Contributor
    • Joined on Sun, Jul 13 2008
    • Christchurch, 00-NZ
    • Posts 744
    • Points 16,115
    Re: Silk Rotate skill file Reply

    Hi,

    You didn't include the SetupDir function but if I set FormDir to "./" the utility works for me.

    That's a quick way to alter the silkscreen but do a search on this forum for my autosilk code - it does some extra stuff that you might like.

    Regards,

    Dave

    Dave Elder, Tait Communications
    • Post Points: 20
  • Thu, Jan 27 2011 1:21 PM

    • Jocko
    • Not Ranked
    • Joined on Wed, Mar 25 2009
    • Chandler, AZ
    • Posts 2
    • Points 55
    Re: Silk Rotate skill file Reply

     Dave,

    Not knowing how to write skill, I'm at a lost on what and where I should add the line to this code to fix it.

    Could you send the file back that you fixed and runs.

     Thanks for any help 

    Jacque Cottingim @ cottjr5@sbcglobal.net

     

    • Post Points: 20
  • Thu, Jan 27 2011 1:30 PM

    • eDave
    • Top 10 Contributor
    • Joined on Sun, Jul 13 2008
    • Christchurch, 00-NZ
    • Posts 744
    • Points 16,115
    Re: Silk Rotate skill file Reply

    Hi Jacque,

    See attached.

    Regards, Dave

    Dave Elder, Tait Communications
    • Post Points: 20
  • Wed, Jun 6 2012 7:02 AM

    • AndyZhang
    • Not Ranked
    • Joined on Wed, Apr 25 2012
    • China, Shanghai
    • Posts 15
    • Points 240
    Re: Silk Rotate skill file Reply

    Hello Deve,

    Since we often have some silksreen and assmbly which are not expected to be moved, could you please help us update the code?

    if the symbol has been fixed or locked, we will not adjust the silk and assmbly.

    If you need more detail information, please let me know.

    Best regards Andy
    • Post Points: 20
  • Wed, Jun 6 2012 5:27 PM

    • eDave
    • Top 10 Contributor
    • Joined on Sun, Jul 13 2008
    • Christchurch, 00-NZ
    • Posts 744
    • Points 16,115
    Re: Silk Rotate skill file Reply

    Hi,

    See attached. Let me know if it's not what you meant.

    Dave 

    Dave Elder, Tait Communications
    • Post Points: 50
  • Thu, Jun 7 2012 8:38 AM

    • AndyZhang
    • Not Ranked
    • Joined on Wed, Apr 25 2012
    • China, Shanghai
    • Posts 15
    • Points 240
    Re: Silk Rotate skill file Reply

    Hello Dave,

    Good work, thanks for your help.

    I will double test the code later, since there are some symols which are not fixed/locked, the code can not move the silkscreen to the component center.But when I choose ignore fixed property, the all silkscreen can be adjust well.

    I suspect there are any worry members has been excluded in the text list.

    If I diagnose this problem, I will let U know.

     

    Best regards Andy
    • Post Points: 5
  • Fri, Jun 29 2012 9:57 AM

    Re: Silk Rotate skill file Reply

    Hello Dave,

     Is there one that can also rotate silk screen and assembly text on package geometry?

     I tried making some modifications, but I have no idea what I am doing so I did not have any success.

    Please let me know. 

    • Post Points: 5
  • Tue, Jan 8 2013 9:39 AM

    • E Hudson
    • Not Ranked
    • Joined on Mon, Dec 31 2012
    • Posts 2
    • Points 25
    Re: Silk Rotate skill file Reply

    Hello,

    Has anyone tried running this in 16.5? I am new to Cadence and trying to speed up the process on our designs. We have a plethora of components so rotating silkscreen on by one is very painful. I tried running the skill and this is what I get.

    Skill > load("/Cadence/test_area/RotateSilkAssyRD.il")

    function RotateSilkAssyRD redefined

    function doRotateSilkAssy redefined

    function rotateSilkAssy redefined

    function createTextBlock_RD redefined

    function rotateRDForm_Action redefined

    function createRotateRDForm redefined

    It does not look like it does anything else. No silk was rotated on the design. Is all it doing is setting variables?

    Kind Regards

    Ed

    • Post Points: 20
  • Tue, Jan 8 2013 11:23 AM

    • eDave
    • Top 10 Contributor
    • Joined on Sun, Jul 13 2008
    • Christchurch, 00-NZ
    • Posts 744
    • Points 16,115
    Re: Silk Rotate skill file Reply

    You will need to run the code once it is loaded. Do this by typing "rotate_silkassy" on the command line.

    See attached. It includes a couple of tweaks. 

    Dave 

    Dave Elder, Tait Communications
    • Post Points: 20
  • Tue, Jan 8 2013 11:54 AM

    • E Hudson
    • Not Ranked
    • Joined on Mon, Dec 31 2012
    • Posts 2
    • Points 25
    Re: Silk Rotate skill file Reply
    Wow, it works. Thanks Dave, rookie mistake on my end. Kind Regards, Ed
    • Post Points: 5
Page 1 of 1 (12 items)
Sort Posts:
Started by Jocko at 25 Jan 2011 01:50 PM. Topic has 11 replies.