• 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. Custom IC SKILL
  3. Guard ring skill code problem

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 145
  • Views 14540
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Guard ring skill code problem

Yousry
Yousry over 13 years ago

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

  • Cancel
Parents
  • berndf
    berndf over 13 years ago
    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
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • berndf
    berndf over 13 years ago
    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
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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