Product Documentation
Cadence User Interface SKILL Reference
Product Version IC23.1, September 2023

enterPolygon

enterPolygon(
[ ?prompts l_promptList ] 
[ ?points l_pointList ]
[ ?wantPoints x_pointLimit ] 
[ ?form s_form ] 
[ ?addPointProc t_addProcName ] 
[ ?delPointProc t_delProcName ] 
[ ?initProc t_initProcName ] 
[ ?doneProc t_doneProcName ]
[ ?formProc t_formProcName ]
[ ?dontDraw g_dontDraw ]
[ ?alwaysMap g_alwaysMap ]
[ ?acceptString g_acceptString ]
[ ?acceptNumber g_acceptNumber ]
[ ?noInfix g_noInfix ]
[ ?cmdName t_cmdName ]
[ ?cursor x_cursor ]
) 
=> l_point_list / nil 

Description

Digitizes a polygon in the current window.

The function does not allow entry of points that result in a self-intersecting polygon. It also removes any co-linear points.

Arguments

?prompts l_promptList

  

List of prompt strings to be displayed.

?points l_pointList

  

List of points to start the polygon. If specified, all points are adjusted. If the list terminates with a point identical to the first point, the adjusted points are returned with no further interaction. If not, the given points are displayed with connecting lines, and a rubberbanding line is drawn from the last point to the current cursor position. Each successive point entered causes a new permanent segment between that point and the previous point. The function terminates when a point identical to the first point is entered or when the function is explicitly terminated with finishEnterFun or cancelEnterFun.

?wantPoints x_pointLimit

  

Maximum number of points to be specified. If the x_pointLimit argument is supplied, the function returns the list of points after it reaches this number. In this case, the last two points do not need to be identical to terminate the function.

?form s_form

Options form created with hiCreateOptionsForm. This form is displayed when you call hiToggleEnterForm. It contains options relevant to the enterfunction and its caller.

?addPointProc t_addProcName

  

Name of the SKILL function to be called when a point is entered.

?delPointProc t_delProcName

  

Name of the SKILL function to be called when a point is deleted.

?initProc t_initProcName

  

Name of the SKILL function to be called immediately after the enterfunction is started and before any data entry.

?doneProc t_doneProcName

  

Name of the SKILL function to be called when the enterfunction is terminated.

?formProc t_formProcName

  

Name of the SKILL function to be called when the options form is displayed.

?dontDraw g_dontDraw

  

Determines whether or not to draw rubber band lines.

?alwaysMap g_alwaysMap

  

Determines whether or not to immediately display the options form.

?acceptString g_acceptString

  

Determines whether or not to accept string input without terminating the enterfunction.

?acceptNumber g_acceptNumber

  

Determines whether or not to accept numeric input without terminating the enterfunction.

?noInfix g_noInfix

  

Determines whether or not to disable infix mode.

?cmdName t_cmdName

  

Name you associate with the enterfunction. If the command name is set, it can be accessed with hiGetCurrentCmd.

?cursor x_cursor

An integer argument that will default to an appropriate cursor. For example, hicArrowRectangle for enterBox and hicArrowArc for enterArc. For more information on all available cursors see hiSetCursor.

Value Returned

l_point_list

The list of points that have been entered. If the function is terminated by returning to the initial point, that point appears at the beginning and at the end of the returned list.

nil

A nil list is returned.

Retrieve data through the callback procedure t_doneProcName instead of using the return value for this enterfunction.

Examples

Displays the prompt Enter the first point on the prompt line. When you enter point p1 the prompt changes to Enter the next point. No rubber band line appears between p1 and the current cursor location because the dontDraw flag is specified.

procedure( polyDone( w done pts )
if( done then
printf("Polygon entered was %L.\n" pts)
dbCreatePolygon( w->editCellView
list( "cut" "drawing" )
pts )
else
println("Polygon entry aborted.")
)
)
enterPolygon( ?prompts
list( "Enter the first point."
"Enter the next point." )
?doneProc "polyDone"
?dontDraw t
)

Enter point p2. The prompt reads the same—“Enter the next point”—because the second prompt in the list is used for any points after the first. Continue with p3. Now enter p4 at the same location as p1. doneProc creates the polygon on the cut drawing layer and prints out the points entered. Here p4 is the same point as p1.

The polygon entered was ( p1 p2 p3 p4).

The enterfunction returns the point list:

( p1 p2 p3 p4 )  

Related Topics

User Entry Functions

hiCreateOptionsForm

undrawEnterFun

hiGetCurrentCmd


Return to top
 ⠀
X