Home > Community > Forums > Custom IC SKILL > Guard ring skill code problem

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

 Guard ring skill code problem 

Last post Mon, Mar 5 2012 4:32 AM by berndf. 2 replies.
Started by Yousry 04 Mar 2012 05:16 AM. Topic has 2 replies and 2207 views
Page 1 of 1 (3 items)
Sort Posts:
  • Sun, Mar 4 2012 5:16 AM

    • Yousry
    • Not Ranked
    • Joined on Thu, Mar 1 2012
    • Posts 1
    • Points 20
    Guard ring skill code problem Reply

    HI,

    I made a skill code that draw the guard ring successfully using the enterPath() function and the rodCreatePath() function,

    but when I press escape to end the code after drawing a number of guardrings,

    it prints the following warnings then the code end:

     *WARNING* Illegal number of points, must be between 2 and 4000

     *WARNING* rodCreatePath: unable to create path named "path28"

     *WARNING* rodCreatePath: unable to create path named "path28"

    *WARNING* rodCreatePath: command failed

    And I don't know how to getrid of these warnings,

    Takind into consideration that I use the following functions:

    enterPath(
                    ?wantPoints 1000
                    ?prompts
                           list( "Enter the first point."
                           "Enter the next point." )
                           ?doneProc "pathDone_ring"
                            ;?form eval(pForm)
                            ?pathWidth   w          
                           ?pathStyle "Truncate"
                       ;?acceptString t
                       ;?acceptNumber t
                       ;?noInfix t
                     );enterPath

    npath = rodCreatePath(
                                        
                                                    ?cvId cv
                                                ?layer "OD"
                                                ?width w           

                                                ?pts pts
                                                ?choppable nil
                                                ?beginExt 0
                                                ?endExt 0
                                                ?encSubPath list(
                                                list(
                                                    ?layer "METAL1"
                                                        ?beginOffset 0.0
                                                       ?endOffset 0.0
                                                        ?enclosure -0.01
                                                        ?choppable t
                                                 )
                                            
                                                 list(
                                                        ?layer "NIMP"
                                                     ?enclosure -0.03
                                                     ?beginOffset 0.0
                                                       ?endOffset 0.0
                                                       ?choppable nil
                                                 )
                                            
                                             list(
                                                        ?layer "NWELL"
                                                     ?enclosure -0.24
                                                     ?beginOffset 0.0
                                                       ?endOffset 0.0
                                                       ?choppable nil
                                                 ));encSubPath

                                                    ?subRect subRectList

                                         );rodCreatePath

     Thanks in advance

    Filed under: , ,
    • Post Points: 20
  • Mon, Mar 5 2012 4:16 AM

    • berndf
    • Top 150 Contributor
    • Joined on Tue, Aug 25 2009
    • Landshut, Bavaria
    • Posts 54
    • Points 840
    Re: [Custom IC SKILL Forum] Guard ring skill code problem Reply
    Hi,

    I do not know what is exactly causing the issue, but as far as I
    know the doneProc function of the enterPath should contain the final
    path drawing routine.

    Maybe my tiny example helps.

    Bernd

    procedure( BFdrawPath( window done pointList )
    let( (
    ( layer list( "METAL1" "drawing" ) )
    ( width 1.0 )
    )

    when( done
    ; create path
    if( width > 0 then
    rodCreatePath(
    ?cvId geGetEditCellView( window )
    ?layer layer
    ?width width
    ?pts pointList
    ) ; end rodCreatePath
    else
    printf( "\n\n *** WARNING *** Width for Layer %L is 0 \n" layer )
    ) ; end if
    ) ; end when

    ) ; end let

    ) ; end BFdrawPath

    procedure( BFpromptForPath( )

    enterPath(
    ?prompts
    list( "Point at the first point of the path:"
    "Point at the next point of the path:"
    )
    ?doneProc "BFdrawPath"
    ?pathStyle "Truncate"
    )
    ) ; end BFpromptForPath
    • Post Points: 5
  • Mon, Mar 5 2012 4:32 AM

    • berndf
    • Top 150 Contributor
    • Joined on Tue, Aug 25 2009
    • Landshut, Bavaria
    • Posts 54
    • Points 840
    Re: Guard ring skill code problem Reply

     Hi,

     I do not know what is exactly causing the issue, but as far as I
    know the doneProc function of the enterPath should contain the final
    path drawing routine.

    Maybe my tiny example helps.

    Bernd

    procedure( BFdrawPath( window done pointList )
      let( (
        ( layer list( "METAL1" "drawing" ) )
        ( width 1.0 )
        )
        
      when( done
        ; create path
          if( width > 0 then
            rodCreatePath(
              ?cvId  geGetEditCellView( window )
              ?layer layer
              ?width width
              ?pts   pointList
            ) ; end rodCreatePath
          else
            printf( "\n\n *** WARNING *** Width for Layer %L is 0 \n" layer )
          ) ; end if
       ) ; end when

    ) ; end let

    ) ; end BFdrawPath

    procedure( BFpromptForPath( )

      enterPath(
        ?prompts
          list( "Point at the first point of the path:"
                "Point at the next point of the path:"
          )
        ?doneProc "BFdrawPath"
        ?pathStyle "Truncate"
      )
    ) ; end BFpromptForPath

    • Post Points: 5
Page 1 of 1 (3 items)
Sort Posts:
Started by Yousry at 04 Mar 2012 05:16 AM. Topic has 2 replies.