ARCSEGMENTENDINDEX: This returns the index number of the ending point of a specified arc segment from a scan: ARCSEGMENTENDINDEX(<ID>, <index>,<tol1>,<tol2>)

<ID> – The first parameter is a string value of the ID of the scan on which this function pulls out the index number of the ending point for the arc. This can either be the ID in quotation marks or any expression that when coerced to type string ends up being the ID of a scan.

<index> – The second parameter is the index number for the arc from which you want to get the ending point number. This is a one based value. For example, the arc index number would be 3 if you want the ending point number for the third arc in the scan.

<tol1> – The third parameter is the general feature tolerance. It is a maximum form error used to break up the scan into lines and arcs.

<tol2> – The fourth parameter is the refine tolerance. Generally, this tighter tolerance is used to drop points from either end of the feature until the form error of the segment is within this tolerance.

Once you have the Start and End indices for an arc, you can use these points inside a constructed feature to construct a separate arc feature. See "Example of a Line Feature Created from a Scan Segment" for a similar example.

ARCSEGMENTSTARTINDEX: This returns the index number of the starting point of a specified arc segment from a scan: ARCSEGMENTSTARTINDEX(<ID>, <index>,<tol1>,<tol2>).

<ID> – The first parameter is a string value of the ID of the scan on which this function pulls out the index number of the start point for the arc. This can either be the ID in quotation marks or any expression that when coerced to type string ends up being the ID of a scan.

<index> – The second parameter is the index number for the arc from which you want to get the start point number. This is a one based value. For example, the arc index number would be 3 if you want the start point number for the third arc in the scan.

<tol1> – The third parameter is the general feature tolerance. It is a maximum form error used to break up the scan into lines and arcs.

<tol2> – The fourth parameter is the refine tolerance. Generally, this tighter tolerance is used to drop points from either end of the feature until the form error of the segment is within this tolerance.

There are two additional parameters, which control whether an identified arc segment in a scan is acceptable. These can only be changed with the PC-DMIS Settings Editor. Any arc segment with a radius less than MinimumArcSegmentRadiusInMM is rejected. The default value for this parameter is 2 mm. Similarly, any arc segment with a radius greater than MaximumArcSegmentRadiusInMM is rejected. The default value for this parameter is 2000 mm (it should not be necessary to change this value).

Once you have the Start and End indices for an arc, you can use these points inside a constructed feature to construct a separate arc feature. See "Example of a Line Feature Created from a Scan Segment" for a similar example.

EOF and EOL: For information on these functions, see "Checking for the End of a File or the End of a Line" in the "Using File Input / Output" section.

FUNCTION: Creates a function: FUNCTION((<PARAM1>, <PARAM2>…), <EXPRESSION>)
Creates a function that takes the number of parameters indicated by the parameter list and substitutes those parameters into the expression.

- The first item when using the FUNCTION keyword is the parameter list.

- This list consists of parameter names separated by commas.

- The parameter list is also surrounded by parenthesis.

- The second item is the expression.

- The expression will contain the parameter names where the parameters should be substituted when the function is called.

See the "Generic Function Example" topic for an example.

GETROTABDATA: This returns the data from the current rotary table: GETROTABDATA(<Parameter>)

<Parameter> - This can be either "Center" or "Angle".

"Center" - Returns the table's XYZ center.

"Angle" - Returns the table's current angle.

Examples:

ASSIGN/V1 = GETROTABDATA("CENTER") | V1 is set to the rotary table's XYZ center value.
ASSIGN/V2 = GETROTABDATA("ANGLE") | V2 is set to the rotary table's current angle value.

IF: Conditional expression evaluation: IF(<EXPRESSION1>, <EXPRESSION2>, <EXPRESSION3>)

If expression1 evaluates to true (non-zero) then this function returns the value of expression2; otherwise, this function returns the value of expression3.

ISIOCHANNELSET: This expression takes two parameters. The first parameter indicates which I/O channel will be checked (the range of numbers that is available is based on the machine being used). The second parameter determines whether the software will query the Arm1 or Arm2 machine. If the second parameter is set to 1 (one) it will query the Arm2 controller. If the second parameter is not present (or is set to zero), then the IO Channel will query the Arm1 controller. The Arm1 controller is your only option if you are not in multiple arm mode.

Note: If an invalid probe data type, tip id, probe file name, or channel number is supplied, the expression will evaluate to 0.

Example:

ASSIGN/V4 = ISIOCHANNELSET(3, 0) | V4 will equal 1 (evaluate to true) when the channel is set, otherwise it will equal 0 (evaluate to false).

LINESEGMENTENDINDEX: This returns the index number of the ending point of a specified line segment from a scan: ARCSEGMENTSTARTINDEX(<ID>, <index>,<tol1>,<tol2>).

<ID> – The first parameter is a string value of the ID of the scan on which this function pulls out the index number of the ending point for the line segment. This can either be the ID in quotation marks or any expression that when coerced to type string ends up being the ID of a scan.

<index> – The second parameter is the index number for the line segment from which you want to get the end point number. This is a one based value. For example, the line segment index number would be 3 if you want the end point number for the third line in the scan.

<tol1> – The third parameter is the general feature tolerance. It is a maximum form error used to break up the scan into lines and arcs.

<tol2> – The fourth parameter is the refine tolerance. Generally, this tighter tolerance is used to drop points from either end of the feature until the form error of the segment is within this tolerance.

Once you have the Start and End indices for a line segment, you can use these points inside a constructed feature to construct a separate line feature. See "Example of a Line Feature Created from a Scan Segment" for an example.

LINESEGMENTSTARTINDEX: This returns the index number of the starting point of a specified line segment from a scan: ARCSEGMENTSTARTINDEX(<ID>, <index>,<tol1>,<tol2>).

<ID> – The first parameter is a string value of the ID of the scan on which this function pulls out the index number of the start point for the line segment. This can either be the ID in quotation marks or any expression that when coerced to type string ends up being the ID of a scan.

<index> – The second parameter is the index number for the line segment from which you want to get the start point number. This is a one based value. For example, the line segment index number would be 3 if you want the start point number for the third line in the scan.

<tol1> – The third parameter is the general feature tolerance. It is a maximum form error used to break up the scan into lines and arcs.

<tol2> – The fourth parameter is the refine tolerance. Generally, this tighter tolerance is used to drop points from either end of the feature until the form error of the segment is within this tolerance.

There is an additional parameter, which controls whether an identified line segment in a scan is acceptable. This can only be changed with the PC-DMIS Settings Editor. Any line segment of length less than MinimumLineSegmentLengthInMM is rejected. The default value for this parameter is 2 mm.

Once you have the Start and End indices for a line segment, you can use these points inside a constructed feature to construct a separate line feature. See "Example of a Line Feature Created from a Scan Segment" for an example.

PROBEDATA: Returns data about the current or specified probe : PROBEDATA(<OPTPROBEDATATYPE>, <OPTTIPID>, <OPTPROBEFILENAME>)

This function takes up to three optional parameters. You only need to provide commas between parameters if you use more than one parameter. You do not need to use commas between empty parameters. For example, to obtain the current probe's diameter you would simply use ASSIGN/V1 = PROBEDATA("DIAM").

OPTPROBEDATATYPE: Optional parameter which specifies what probe data the expression should return. If this parameter is not supplied, the current tip ID is returned. This parameter is of type string. Any expression that evaluates to a valid string expression can be put in the first expression slot. Valid string expressions (not case sensitive) for the first parameter include the following. These are string expressions and should be inside double quotation marks:

"Offset" – Measured tip X,Y,Z offset. Returns type point.

"Vector" – Tip Vector. Returns type point.

"A" - Tip A Angle. Returns type double.

"B" – Tip B Angle. Returns type double.

"Diam(eter)" – Measured tip diameter. The first four letters are required "Diam", but could include more letters up to the full name. Returns type double.

"Thick(ness)" – Measured tip thickness. The first five letters are required "Thick", but could include more letters up to the full name. Returns type double.

"Date" – Date the tip was last qualified. Returns type string.

"Time" – Time the tip was last qualified. Returns type string.

"ID" – Tip ID. Default parameter. Returns type string.

"PrbRdv" – The probes radial deviation. Returns type double.

"Standarddeviation" – The probes standard deviation. Returns type double.

"C" - The C angle of a CW43 light probe head. Returns type integer.

Note: Adding a "T" in front of "Offset", "Diameter", or "Thickness" will return the theoretical information (i.e. TOFFSET, TDIAMETER, and TTHICKNESS).

OPTTIPID: This optional parameter specifies the tip to be used when obtaining the probe data specified in the first expression. If not supplied, the current tip is used. This parameter should be type string.

OPTPROBEFILENAME: This optional parameter specifies the probe filename to be used in obtaining the probe data. If not supplied, the current probe file is used.

Examples:

ASSIGN/V1 = PROBEDATA() | V1 is set to current tip id (i.e. "T1A0B0")
ASSIGN/V2 = PROBEDATA("TOFFSET", "T1A45B0") | V2 is set to the theoretical probe offset for the tip T1A45B0
ASSIGN/V3 = PROBEDATA("Date", "T1A90B90", "MYPROB") | V3 is set to a string representing the date tip T1A90B90of the probe file MYPROB was last qualified.

TUTORELEMENT: With the addition of the Tutor translator, PC-DMIS version 3.5 and above supports the new intrinsic TutorElement function. This function takes one argument, either a number or a string (a string would be the ID of a feature).

This function works with the variable type, Structures. See "Structures" for explanations of structure and sub-elements.

Examples:

ASSIGN/E = TUTORELEMENT(1) | Creates a single Tutor Element Structure
ASSIGN/WM = TUTORELEMENT(n) | For any number over 1, creates an array of n Tutor Element Structures
ASSIGN/CIR1E = TUTORELEMENT("CIR1") | Copies Data from feature CIR1 into the Tutor Element Structures.

The TutorElement structure currently has the following sub-elements:

Sub-Element | Description
ID | String of the Feature's ID
TYPE | INTEGER (FTYPE)
X, Y, Z | X, Y, and Z coordinate values
PR | Polar Radius
PA | Polar Angle
CX | I
CY | J
CZ | K
DM | Diameter 1
DM2 | Diameter 2
DS | Distance from the origin
A | Angle
AXY | Angle in the XY plane
AYZ | Angle in the YZ plane
AZX | Angle in the ZX plane
F | Form Error
SDEV | Standard Deviation
TP | Position

QUALTOOLDATA: This function returns data about the current or specified calibration tool. It has this syntax:

QUALTOOLDATA(<TOOLINFO>, <TOOLID>, <FACENUMBER>)

This function takes up to three parameters. It needs at least one parameter to return any data:

The first parameter, <TOOLINFO>, is a string that specifies the type of information to return about the calibration tool. If you don't pass this parameter, this function returns the name of the current or specified calibration tool.

· "DIAM" – This returns the diameter of the tool as a double value.

· "ID " – This returns the name of the tool as a string value.

· "LENGTH" – This acts the same as "DIAM". It also returns the diameter of the tool as a double value.

· "OVERRIDEIJK" – This returns the search override IJK vector as a point value.

· "POLYDIAM" – This returns the diameter of the specified polyhedral face as a double value.

· "POLYIJK" – This returns the IJK vector of the specified polyhedral face as a point value.

· "POLYXYZ" – This returns the XYZ center of the specified polyhedral face as a point value.

· "SHANKIJK" – This returns the IJK vector of the shank as a point value.

· "TYPE" – This returns the type of tool as an integer value (0 for a sphere, 1 for an Arm2 sphere, 2 for a polyhedral, 3 for an Arm2 polyhedral).

· "WIDTH" – This parameter is no longer used.

· "XYZ" – This returns the XYZ location of the tool as a point value.

The second parameter, <TOOLID>, is a string that specifies the name for the calibration tool for which the user would like to receive information. If you don't pass this parameter, PC-DMIS assumes you want information from the current calibration tool. The string is not case sensitive.

The third parameter, <FACENUMBER>, you only need when working with a polyhedral calibration tool and only when the first parameter is "POLYXYZ", "POLYIJK", or "POLYDIAM". This is an integer value that specifies the face of the polyhedral tool to use in order to obtain data.

Examples:

ASSIGN/VDIAM = QUALTOOLDATA("DIAM","SPHERE_1_IN") | Gives the variable VDIAM the diameter of the tool SPHERE_1_IN.
ASSIGN/VID = QUALTOOLDATA("ID") | Gives the variable VID the current tool's name.
ASSIGN/VTYPE = QUALTOOLDATA("TYPE") | Gives the variable VTYPE the current tool's type.
ASSIGN/VPOLYDIAM = QUALTOOLDATA("POLYDIAM","POLYTEST",3) | Gives the variable VPOLYDIAM the diameter of face 3 on the polyhedral tool, POLYTEST.

#### Miscellaneous Functions

ARCSEGMENTENDINDEX

ARCSEGMENTSTARTINDEX

EOF and EOL

FUNCTION

GETROTABDATA

IF

ISIOCHANNELSET

LINESEGMENTENDINDEX

LINESEGMENTSTARTINDEX

PROBEDATA

TUTORELEMENT

QUALTOOLDATA