Calypso 02 PCM
Calypso 02 PCM
Calypso 02 PCM
Option 2
PCM technology
Operating Instructions
The design and delivered components of the CMM, its options, the pro-
gram packages, and the relevant documentation are subject to change.
This manual must not be circulated or copied, or its contents utilized and
disseminated, without our express written permission. Persons misusing
this manual are subject to prosecution.
All rights reserved, especially in cases of granting a patent or registering
a utility model.
This manual is subject to modification. All rights pertaining to changes in
the CMM and its options reserved.
All product names are registered trademarks or trademarks of the corre-
sponding proprietors.
Although utmost care has been taken in preparing the information given
in this manual, we cannot assume any liability for its completeness and
correctness, except in case of willful intent.
CALYPSO
Version 2014
Operating Instructions
2014-04-11
61212-2721102
Table of contents
Preface
Alphabetic index
NOTICE
The additional CALYPSO options are described in separate manuals.
Text conventions The following text conventions are used in these instructions.
Example Description
Features Text element of the graphics screen
display.
Comment The Comment button on the
screen.
<machine name> Variable text or dummy for a name.
C:\windows\w.ini The w.ini file in the windows direc-
tory on the C:\ drive.
For this section... A passage containing important in-
formation.
➤Preface [⇨ Preface 1] This is a cross reference. When
viewing this manual on the screen,
you will be guided to the indicated
text passage by clicking the refer-
ence.
Example Description
Plan ® CNC-Start ® Run The Run command in the CNC-
Start submenu of the Plan menu.
CTRL+A Press the CTRL key and the letter A at
the same time.
Icons Three special symbols containing important information are used in this
manual. The icons appear in the marginal column next to the respective
text.
You will find a detailed explanation of the safety instructions under Con-
figuration of safety instructions.
DANGER
A »danger« indicates an imminent risk to life and limb.
Non-observance of this safety instruction when the described risk occurs
causes death or serious injuries.
Example: Electric shock due to high electric voltage.
WARNING
A »warning« indicates a possible risk to life and limb.
Non-observance of this safety instruction when the described risk occurs
may cause death or serious injuries.
Example: Risk of severe crushing of the body caused by heavy loads.
CAUTION
A »caution« indicates a personal health hazard.
Non-observance of this safety instruction when the described risk occurs
may cause slight to moderate injuries.
Example: Risk of minor crushing of the limbs caused by small loads.
Parameter-coded measuring
runs (option)
.................................................................................................................
Introduction to PCM
CALYPSO uses the PCM programming language for variable control of
measuring runs. Of course you can use CALYPSO without PCM, but PCM
offers you a powerful toolset for simplification and automation, along
with part-variant programming and parameter-supported and interactive
control of measuring runs.
What is PCM? PCM is a programming language for parameterizing measuring runs.
PCM is short for “parameter-coded measurement”.
PCM enables you to simplify and rationalize measuring runs in CALYPSO:
You can program measurement plans in such a way that you can measure
various workpiece variants, and you can set parameters to influence the
automatic run of a measurement plan.
NOTICE
On account of the complexity involved, programming in PCM is only rec-
ommended if you have basic knowledge of programming structures (e.g.
Pascal or C).
PCM has functions for calculating values, for controlling the CMM, and
for interactive input/output dialogs. You can vary the way in which a
measurement plan runs by programming loops and conditions. In certain
situations you can have CALYPSO generate special messages.
NOTICE
A yellow input field in CALYPSO always contains a parameter or formula.
In CALYPSO, you use PCM when you enter a Formula in an input field for
a feature. By so doing, you automatically define a variable and assign it
parameters. The color of the input fields changes, in this case to yellow.
By the same token, when you set a condition in CALYPSO or define a
loop, you automatically create “PCM code”.
NOTICE
You also have this possibility without the PCM Technology option.
If you use the PCM Technology option and you have familiarized yourself
with the syntax, you can employ the PCM code to enter conditions and
loops or numerous other commands directly or generate files for import
into CALYPSO.
Principle of parameterization
CALYPSO employs the principle of parameterization so that you can use
a single measurement plan to measure workpieces in CALYPSO that are
similar but not identical. This principle is based on the premise that iden-
tical values for both workpieces are defined in the measurement plan in
CALYPSO as fixed values; those varying from workpiece to workpiece, on
the other hand, are defined as variables.
Z
Y
60
80
X
40
In this way one and the same measurement plan can be used to measure
and test different workpieces: for example, a plate with either one or two
holes – even if the radii are different. Different geometries, differences in
the number of certain features, the presence or absence of features - all
these can be parameterized.
The variables that could be used here are as follows: positions of the holes
(hole1_center, hole2_center), their radii (hole1_radius, hole2_radius) and
the number of holes (number_holes). These variables have to be assigned
values for each workpiece, so that a measurement plan can be run:
Set up in this way with only five different parameters, the measurement
plan is able to measure two different workpieces.
*.para
Workpiece1.para
Measurement
*.para
Plan
Workpiece2.para
*.para
Workpiece3.para
aspects you want to measure. You need a dedicated parameter file for
each workpiece.
*.para
Workpiece1.para
Measurement
*.para
Plan
Workpiece2.para
*.para
Workpiece3.para
means that you can enter PCM commands when these elements are
defined.
The “input parameters” are processed before the element is run, the
“output parameters” are processed after the run.
– You also have the opportunity of setting “start parameters” once or
loading a file before the measurement plan is run.
– You can set a condition and a loop for each characteristic.
– You can enter “input and output parameters” for each condition and
each loop.
Utilizing these CALYPSO functions in this way, therefore, you can con-
struct complex, nested structures.
Wherever you set input parameters, output parameters or start parame-
ters, moreover, you can program conditions and queries directly with
PCM.
In addition, you can have external PCM files run in certain situations of
the measurement plan run without any intervention in the measurement
plan.
NOTICE
In addition, CALYPSO checks prior to, during or after a measurement plan
run whether a certain external file with a defined name exists in the cur-
rent measurement plan directory or in the general directory for meas-
urement plans. This file is then executed.
NOTICE
The last three components of a variable of the “point” type represent the
coordinates of a normalized vector. This means that the root of the sum
of the three squares (= the length of the vector) must always be “1”.
It follows that the PCM commands listed below are value assignments:
– P1 = 10
– vector_1 = vector(10,20,30)
– corner_1 = point(10.1,20.5,30.02,0,0,1)
– text_1= "This is a text in the text_1 variable"
– LIST = list(3.1416,2.71828,0,0,0)
Return values
The return value is an important function of a variable: the individual parts
of a parameter have to be “addressed” so that you can work with them.
The return values of variables of the “point” type are defined as follows:
Simple condition
The syntax of the simple condition is as follows:
if CONDITION then
DEFINITION
endif
Meaning:
– If CONDITION is satisfied, DEFINITION is processed.
– If CONDITION is not satisfied, DEFINITION is not processed.
The DEFINITION can be formulas, value assignments, functions or other
conditions or loops of your choice, always with line breaks as separators.
NOTICE
Conditions with several alternatives can be nested.
Defined loop
In the case of the defined loop, the number of loops is defined unequiv-
ocally. The syntax of the defined loop is as follows:
Conditional loop
In the case of the conditional loop, the number of runs depends on the
fulfillment of a condition, whereby the condition is only tested after the
first run. Therefore a conditional loop must run at least once. The syntax
of the conditional loop is as follows:
repeat DEFINITION until CONDITION
Meaning:
– DEFINITION is processed. Then CONDITION is tested.
– If CONDITION is fulfilled, the loop is ended.
– If CONDITION is not satisfied, DEFINITION is processed again and
CONDITION is tested again.
The CONDITION can be set up as a logical combination of several sub-
conditions.
The DEFINITION can be formulas, value assignments, functions or other
conditions or loops of your choice, always with line breaks as separators.
NOTICE
Please note that infinite repetitions are possible with the conditional loop
if the condition is never fulfilled.
NOTICE
In PCM and in the formula, the decimal separator is always a period (“.”;
example: “3.5 + 4.8”, and not: „3.5 + 4.8”).
The comma is used as the separator within value assignments (example:
Location = point(3.5, 4.5, 1.5, 0, 0, 1)).
2 Click in the (white) input field and start defining the parameters:
• Start with the variable name, followed by “=”.
• Proceed with the definition. Please observe the syntax described in
➤Formulas and functions [⇨ 1‑11] as well as the parameter syntax
(see ➤Example for PCM: ASCII parameter file [⇨ 1‑50]).
3 Click OK.
The window will be closed. The parameter is now included in the list of
all available parameters (this dialog box is fully described in Formula in
the CALYPSO dialog reference in the Online Help).
You can define input and output parameters for the following objects in
CALYPSO:
– an entire measurement plan,
– a macro,
– a characteristic,
– a feature,
– a condition,
– a loop.
The entire PCM syntax is at your disposal for defining input and output
parameters.
Comments You can also enter comments. They will be displayed in color.
All characters of a line that start with a double backslash (//) will be in-
terpreted as a comment.
For more information on the Settings (Parameter) window, please refer
to the CALYPSO dialog reference in the Online Help.
3 Enter the currently required values for the parameters or overwrite the
default values.
Note: During the measuring run, you can overwrite only the entries in
the Value column.
4 Press OK to confirm.
The dialog box is closed and the parameter values are accepted.
The result of the formula defines the direction of the feature geometry.
The numerical values entered for the projected angles will not change.
After input of a formula, the text field will be highlighted in yellow.
The formula is evaluated in the CNC run during run time, the result of
the formula is then used as space axis of the feature. The normal vector
geometry thus changes during run time.
NOTICE
It is also possible to change the space axis, i.e. the normal vector geometry
during run time by a parameterized normal vector of the feature. The
parameterized normal vector has a higher priority than the parameterized
space axis.
NOTICE
While the cncBreak() command is being processed, the CMM just stops.
Printouts will not be generated.
Note that movement commands are executed by the CMM and that col-
lisions could result. Move the CMM slowly and stop in good time if nec-
essary.
Conditions for the execu- The external file is executed automatically in a certain CNC run situation
tion if it has a certain name and is saved in a certain directory. You do not
need to call up the file in the measurement plan.
– If the file is stored in the general directory for measurement plans
(<user directory>\workarea\inspections) or actual values, the file is
executed each time a measurement plan is run.
– If the file is stored in the general measurement plan directory (<user
directory>\workarea\inspections\<measurement plan name>) or in
the actual values directory, the file is executed when the correspond-
ing measurement plan is run.
Order of the run If several external PCM files and external batch files with the same name
exist, the files are processed in the following order:
– PCM file in the general directory for measurement plans
– PCM file in the current measurement plan directory
– Batch file in the current measurement plan directory
– Batch file in the current directory for measurement plans
– PCM file in the current actual values directory (if this deviates from
the general directory for measurement plans)
– PCM file in the current actual values directory (if this deviates from
the measurement plan directory)
– Batch file in the current actual values directory (if this deviates from
the measurement plan directory)
– Batch file in the current actual values directory (if this deviates from
the general directory for measurement plans)
NOTICE
By saving external files with the corresponding names in the general di-
rectory for measurement plans, you change the run of all measurement
plans on the system without having changed the measurement plans.
System Set Up
File Menus
Start
Conditions Paths
Language
Loops
Dual arm
Calculation and Comparison Operators Optics
Font
PCM Parameters
Dynalog
Dialogs
Strings
Export DMIS
Strategies
Save
OK Cancel Apply
You will find more information on the color highlight of PCM expressions
under System Set Up (Environment) - PCM in the CALYPSO dialog refer-
ence of the Online Help.
PCM Editor
File... Edit Debug
Font size
xvalue = getActual("Circlel").x
if xvalue > 1O
then display xvalue
endif
Entering the PCM code You have two options of entering PCM functions and commands:
– Enter the code manually in the text field of the PCM editor.
You can find the PCM expressions under ➤Overview: PCM quick ref-
erence [⇨ 1‑55].
– Insert codes from the function and parameter list and edit them
afterwards.
You can use the predefined PCM expression from the function and
parameter list. Open the Function and parameter list using
Edit ® Function.
Reusing the PCM code You can save the PCM code in the .txt format.
The saved file with the PCM code can then be loaded by you or other
CALYPSO users in the PCM editor.
The PCM code can be copied from the PCM editor to the clipboard and
pasted to the input and output parameters for features and characteris-
tics.
Enter the desired character string in the PCM Text dialog box. Use
Function to open the Function and parameter list from which you
can easily take general functions and parameters as well as parameters
of the current measurement plan.
By clicking Search, CALYPSO searches all PCM expressions of the meas-
urement plan and shows the character strings found:
The Use Of <pcmtext> dialog box shows all character strings found in
a hierarchically ordered tree structure. The buttons for extending and
compressing all or selected branches make it possible to customize the
tree structure to suit your requirements and to enable fast access to the
points of interest.
Double-click the icon of the characteristic or feature in this dialog box to
select the corresponding feature in the measurement plan.
In the Features with Formulas dialog box, CALYPSO shows all ele-
ments containing a formula (features, characteristics, base alignments,
rotary table functions, navigation paths, etc.) in a hierarchical tree struc-
ture.
The buttons for extending and compressing all or selected branches make
it possible to customize the tree structure to suit your requirements and
to enable fast access to the points of interest.
Double-click the icon of the characteristic or feature in this dialog box to
select the corresponding feature in the measurement plan.
You have the following options:
– Click the Save icon to save the search results in a CSV file in any
directory.
– Click the Copy search results displayed icon or use CTRL+C to
copy the displayed structure to the clipboard and use CTRL+V or SHIFT
+INSERT to insert it in another program such as Word.
– By clicking the Search icon you open the Search window allowing
you to search for any character string in the expanded tree structure.
– Click the Update icon to refresh the display without reopening the
window.
The buttons for extending and compressing all or selected branches make
it possible to customize the tree structure to suit your requirements and
to enable fast access to the points of interest.
Double-click the icon of the characteristic or feature in this dialog box to
select the corresponding feature in the measurement plan.
You have the following options:
– Click the Save icon to save the search results in a CSV file in any
directory.
– Click the Copy search results displayed icon or use CTRL+C to
copy the displayed structure to the clipboard and use CTRL+V or SHIFT
+INSERT to insert it in another program such as Word.
– By clicking the Search icon you open the Search window allowing
you to search for any character string in the expanded tree structure.
– Click the Update icon to refresh the display without reopening the
window.
Parameter
Path=".\protocols\"
Presettings
Close
The buttons for extending and compressing all or selected branches make
it possible to customize the tree structure to suit your requirements and
to enable fast access to the points of interest.
Double-click the icon of the characteristic or feature in this dialog box to
select the corresponding feature in the measurement plan.
You have the following options:
– Click the Save icon to save the search results in a CSV file in any
directory.
– Click the Copy search results displayed icon or press CTRL+C to
copy the displayed structure to the clipboard. It can be inserted again
in another program, e.g. Word, using CTRL+V or SHIFT+INSERT.
– By clicking the Search icon you open the Search window allowing
you to search for any character string in the expanded tree structure.
– By clicking the Replace icon you open the Replace window allow-
ing you to replace any character string in the expanded tree structure
by another character string.
– Click the Update icon to refresh the display without reopening the
window.
NOTICE
You will be able to use CALYPSO's speed to best effect if you bear the
following in mind:
– Activate the print command only for test purposes.
– Activate the PCM test printout only for test purposes.
NOTICE
The Print command is not executed unless you have ticked the Test
printout check box in Plan ® Advanced ® PCM Test settings.
if P1 == 1 then
message("is equal. Value was:" ,P1)
endif
if P1 < 1 then
message("is smaller than 1: Value was:" ,P1)
else
if P1 > 1 then
if P1 > 5 then
message("is greater than 5: Value was:" ,P1)
endif
message("is greater than 1: Value was:" ,P1)
endif
endif
//---------------------------------------------------------
test = point(1,2,3,0,0,1)
message("X" ,test.x, "Y",test.y, "Z",test.z, "nx",test.nx,
"ny" ,test.ny, "nz" ,test.nz)
if test.x == 1
then
message("X value is:" ,test.x)
endif
X_value_point_A = 18
Y_value_point_A = 37
Z_value_point_A = 0
X_value_point_B = 44
Y_value_point_B = 23
Z_value_point_B = 5
and restart the measurement plan, the CMM will move to the new co-
ordinates.
These lines define the 12 points from which the curve will be gener-
ated.
• If you want to include a comment for each curve point, add the
following lines to the parameter file:
name103[1] = "type103_n1_p1"
name103[2] = "type103_n2_p2"
name103[3] = "type103_n3_p3"
name103[4] = "type103_n4_p4"
name103[5] = "type103_n5_p5"
name103[6] = "type103_n6_p6"
name103[7] = "type103_n7_p7"
name103[8] = "type103_n8_p8"
name103[9] = "type103_n9_p9"
name103[10] = "type103_n10_p10"
name103[11] = "type103_n11_p11"
name103[12] = "type103_n12_p12"
• You must also open the Point Generator dialog box (see below)
and define the “name103[index]” variable in the Comment box.
2 Open the definition template of the “curve”.
3 Go to Nominal Data and select Parameter Data.
The Point Generator window is opened.
Defining a curve
1 In the point generator, enter 1 as the Start Index, 50 as the End Index,
and 1 as the Increment.
2 Right-click in the Point input field to open the Formula input window.
3 Enter the following:
point(index*10,50*cos(index*10),0,0,0,1)
This formula defines a series of 50 points with changing X and Y values,
all situated on the plane Z=0 and having the same vector (0,0,1).
“point(x,y,z,nx,ny,nz)” defines a point variable. Use the “index” loop
counter of the point generator as the argument in the cosine function.
In each of the points the x value is index*10, the y value is 50*cos(in-
dex*10), and the z value is 0.
4 Close the Formula input window.
//
************************************************************************************
************
// Measure Circle hole_5 , check roundness; if out of tolerance, interrupt CNC and
request next
// task: repeat feature or measure next feature or terminate CNC run.
//
************************************************************************************
************
// Defining starting conditions
status_5 = 2
hole_5 = getActual("DIN Round_hole_5").actual
// If out of tolerance, open a window and inquire CNC End, Continue or Repeat
if hole_5 > 0.01 then
message("DIN Roundness of hole_5 is:" ,hole_5)
status_5 = inquire("1=CNC-End, 2=Continue, 3=Repeat. Enter a number")
message(status_5,"Is your entry correct?", "DIN-Roundness of hole_5 is", hole_5)
if status_5 == 2
then
message("CNC run will be continued")
status_5 = 2
endif
endif
if status_5 == 1 then
message("The CNC run will be terminated due to excess tolerance in hole_5.")
cncBreak()
endif
if status_5 == 3 then
message("The circle measurement is repeated.")
if LOOP1 == 5 then
message("CNC run will be terminated due to too many loop runs in hole_5.")
cncBreak()
endif
endif
print("Status is",status_5, "DIN Roundness of hole_5 is", hole_5)
LOOP1 is the loop variable of the 1st loop; you can transfer it into the
formula by clicking Loop. The start index for LOOP1 is the value from
the Start input field for the loop.
7 Run the measurement plan.
The loop is run. The expression for the X value assumes the following
values one after the other: 20.5, 30.5, 40.5, 50.5, 60.5.
4 Highlight the “Additional hole pattern variant B” group and set a con-
dition:
• Select Condition from the context menu.
• Click in the input box for the condition to open the context menu
and open the Formula input window.
• In the Formula input window, click Settings.
• Confirm the MeasureAdditionalHolePatternActive varia-
ble.
• Insert “== 1” as an additional entry.
The condition is now defined: the “Additional hole pattern variant B”
group is measured only when the “MeasureAdditionalHolePatternAc-
tive” variable is equal to 1.
5 Run the measurement plan.
The “Additional hole pattern variant B” group is measured.
6 Select Plan ® Advanced ® Parameter and enter the following:
// Measure additional hole pattern variant B when parameter is 1
MeasureAdditionalHolePatternActive = 0
// Text-Parameters -------------------------------------------
who = "File generated by ZEISS-IMT Training Center"
nameOfCircle_1 = "Circle_1"
nameOfCircle_2 = "Circle_2"
nameOfCircle_3 = "Circle_3"
text1 = "type034_n2_p2"
nextText = "This is in Front"
// Text-Parameters as an array ---------------------
name101[1] = "type101_n1_p1"
name101[2] = "type101_n2_p2"
name101[3] = "type101_n3_p3"
name101[4] = "type101_n4_p4"
name101[5] = "type101_n5_p5"
name101[6] = "type101_n6_p6"
name101[7] = "type101_n7_p7"
name101[8] = "type101_n8_p8"
name101[9] = "type101_n9_p9"
name101[10] = "type101_n10_p10"
// Numeric-Parameters ------------------------------
Partnumber = 10
PartRotationAktiv = 1
CREATION_DATE = 950516
CREATION_TIME = 0000
DESIGN_DATE = 950516
NUMBER = 772209709750
PART_HEIGHT = 316.000
PLACE = 2
X_Circle_1 = 10
Y_Circle_1 = 20
Z_Circle_1 = 15
D_Circle_1 = 40
X_Circle_2 = 250
Y_Circle_2 = 40
Z_Circle_2 = -15
D_Circle_2 = 25
X_Circle_3 = -12
Y_Circle_3 = -20
Z_Circle_3 = 50
D_Circle_3 = 12
// Numeric-Parameters as an array type vector -------------------
type086[1] = vector( 10.0, 0.0, 0.0 )
type086[2] = vector( 0.0, -20.0, 0.0 )
type086[3] = vector( 30.0, 20.0, 10.0 )
type086[4] = vector( 17.5, 13.8, 50.0 )
// Numeric-Parameters as an array type point --------------------
CurveFront[1] = point( 216.023, 0.0, 69.698, 0.984, -0.0, 0.176 )
CurveFront[2] = point( 206.34, 0.0, 102.988, 0.916, -0.0, 0.401 )
CurveFront[3] = point( 180.14, 0.0, 141.726, 0.707, -0.0, 0.707 )
CurveFront[4] = point( 130.593, 0.0, 181.254, 0.575, -0.0, 0.818 )
LISTE=readListFile("liste.txt")
// LISTE=list("Radius Tangential","Radius Hüll",
// "Gruppe: best fit of bore pattern")
addCF(LIST)
// addME("PlaFroTop", "PlaBack")
// setRunID("Run3er", "RunGAU PFER")
The central “outputMultiQdas” command generates additional columns
in the table file:
AB AC
u_machine_id u_2machine_id
0815 0815m
abc abcm
007 007m
1 workpiece
Thus, the number of equal workpieces which can be measured in this way
is double the number of parameterized rotary table positions.
Procedure
If you wish to use the rotary table to measure several equal workpieces
in one measurement plan, you must proceed as follows:
Defining the rotary table You prepare the entry of the rotary table position in the presettings. To
position do this, use the rtPositionOffset PCM function.
NOTICE
You can also enter a formula as the argument of the PCM function. For
example, the angle can be calculated as a function of a part index which
is prompted every time you start. You can also predefine the angle in
AutoRun.
RT home position If you entered the rtPositionOffset PCM function in a measurement plan,
you must home the RT prior to the CNC run.
The offset angle is saved in the measurement plan and will keep its value
also after deleting the function. Every time when changing to another
measurement plan or when removing the rtPositionOffset PCM function
from this measurement plan or adding it again, you must home the RT
manually. By doing this, the internal value is reset.
NOTICE
It is not absolutely necessary to home the RT between the individual runs
of a measurement of series.
PCM syntax
Like the programming languages Basic, C, Fortran and so on, PCM uses
a functional syntax with the following rules:
– Definitions and value assignments as follows:
variable name=value
– Blanks are not permitted in names and formulas; the syntax is case-
sensitive, so it distinguishes between uppercase and lowercase letters.
– Multiplication and division precede addition and subtraction when
formulas are resolved.
– The decimal separator is the point (example 3.85).
– In functions, the function parameters (the arguments) are in paren-
theses and separated by commas.
– In commands (procedure calls), the function parameters (the argu-
ments) can be omitted. Example: getActual().
– Comments can be entered in each line: everything following the “//”
string is ignored.
Variables in PCM
There are five types of variable in PCM. The type of variable is defined
implicitly by the value assignment:
Arrays Arrays can also be defined with variables using special value assignments
with square brackets. An array consists of several variables of the same
type. Example:
array[1] = point(-10,12.5,0,0,0,1)
array[2] = point(-12.12.5,0,0,0,1)
array[3] = point(-14.12.5,0,0,0,1)
array[4] = point(-16.12.5,0,0,0,1)
for I = 1 to numberTeeth
type[I] = inquireNumber("Which tooth type is in position number ",I)
next I
Operator Result
+ Sum
- Difference
* Product
/ Quotient
** Power
You can use the following comparative operators for conditions in PCM:
Operator Result
< Truth value of “a < b”
> Truth value of “a > b”
<> Truth value of “a not equal to b”
== Truth value of “a = b”
>= Truth value of “a ≥ b”
<= Truth value of “a ≤ b”
Function Result
rad(DegreeAngle) Radian value from degree angle
deg (RadianAngle) Gon angle value of radian angle
angle (angular degree) Angular degree (decimal) of angular degrees
Trigonometric Functions
PCM supports the following trigonometric functions:
Function Result
sin (DegreeAngle) Sine value
sinRad (RadianAngle) Sine value
cos (DegreeAngle) Cosine value
cosRad (RadianAngle) Cosine value
tan (DegreeAngle) Tangent value
tanRad (RadianAngle) Tangent value
arcsin (value) Arc sine in degrees
radArcsin (value) Arc sine in rad
arccos (value) Arc cosine in degrees
radArccos (value) Arc cosine in rad
arctan (value) Arc tangent in degrees
radArctan (value) Arc tangent in rad
arctan2 (value1,value2) Arc tangent from the quotient value1/value2 in degrees
radArctan2 (value1,value2) Arc tangent from the quotient value1/value2 in rad
Logical operators
CALYPSO supports the following logical operators:
Operator Result
(Expression1) and (Expres- Logical AND of the truth values of both expressions
sion2)
(Expression1) or (Expres- Logical OR of the truth values of both expressions
sion2)
not (expression) Logical negation of the truth value of the expression
Examples:
If var1 = 0 and var2 = -7, then
– (var1=0) and (var2>0) = false
– (var1=0) or (var2>0) = true
– not (var2>0) = true
If t=true, f=false, and i=9, then
– bed1 = (i>1) and (i>10) = false
– bed2 = t and f = false
– bed3 = t and (i>10) = false
– bed4 = true or (i>10) = true
Bit operations
CALYPSO supports the following bit operations on integral values:
Operator Result
bitAnd(number1,number2) Bitwise AND of the double representation of the two numbers
bitOr(number1,number2) Bitwise OR of the double representation of the two numbers
bitXor(number1,number2) Bitwise excluding OR of the double representation of the two num-
bers
Examples:
– bitAnd(12,4) = 4
– bitOR(12,4) = 12
– bitXor(12,4) = 8
Other functions
Other mathematical functions are available:
Operator Result
squared(value) Value squared
sqrt(value) Square root of value
exp(value) evalue
ln(value) Natural logarithm of value
Operator Result
log(value) Common logarithm of value
mod(value1,value2) Value1 modulo value2
int(value) Integral proportion of value
abs(value) |Value| (=absolute value of the value)
round(value[,figures]) Value, rounded to the given number of places; if specification of
number of places omitted: 0 places
sign([value1,]value2) Value1 multiplied by sign of value2 (default of value1 = 1):
- value1, if value2 < 0
+ value1, if value2 ≥ 0
signWithZero([value1,]val- Value1 multiplied by sign of value2 (default of value1 = 1):
ue2) - value1, if value2 < 0
0, if value2 = 0
+ value1, if value2 > 0
max(value1[,value2[, ... ]]) Maximum of the indicated values
min(value1[,value2[, ... ]]) Minimum of the indicated values
ord(BooleanValue) 1 for true0 for false
Examples:
squared(3) = 9
sqrt(225) = 15
exp(0) = 1
ln(1) = 0
log(10000) = 4
mod(22,8) = 6
int(34.5674) = 34
abs(-35.335) = 35.335
round(35.335,2) = 35.34
sign(-12,-34) = 12
sign(-12) = -1
max(1,2,5,8,3) = 8
Generating functions
The following functions generate geometric objects:
Function Result
point(x,y,z[,nx,ny,nz]) Point with the x, y, z coordinates and (optionally) the normal vector
(nx,ny,nz)
vector(x,y,z) Vector with the coordinates x, y and z
calculatePointOnHelx(r,in- Points on the cylinder's and cone's lateral surface or tapered thread
dex,g,tw,kw) with radius r, lead g, trapezoid angle tw and cone angle kw.
Function Result
character string1 + character string2 Character string3 of the following characters of
character string1 and character string2
asc(character) ASCII code (number) of specified character
chr(number) Character with the given ASCII code
cr() Line Break
format(number) Character string consisting of the figures and char-
acters of the number
formatL (Number [,Total Number Places [,Num- The number as a rounded decimal number with
berDecimalPlaces]]) the specified decimal places in the form of a char-
acter string with the minimum length “Places”
(decimal point is not considered), left-justified for-
mat
formatR(Number [,Total Number Places [,Num- The number as a rounded decimal number with
berDecimalPlaces]]) the specified decimal places in the form of a char-
acter string with the minimum length “Places”
(decimal point is not considered), right-justified
format
inStr([startIndex,] character string1, character Position of the first occurrence of character string2
string2) within character string1 after the startIndex-th
character or the first character
len(CharacterString) Length of character string
mid(character string,startIndex[,length]) Character string, consisting of the characters from
the startIndex-th character to the end of the char-
acter string or to the (startIndex+length-1)-th char-
acter
qm() Represents double inverted commas (quotes) as
character string.
Function Result
strElement(n,char,character string) The n-th element of the character string, when
char is regarded as a separator between the ele-
ments
subStr(character string,startIndex,endIndex) Character string, consisting of the characters from
the startIndex-th character to the endIndex-th
character
text(value1[,Value2,Value3]) Character string from all transferred parameters
val(CharacterString) Number represented by the character string
Examples:
"diameter" + text(1) = "diameter1"
asc("8") = 56
chr(111) = "o"
format(3278,45) = "3278,45"
formatL(12345.6789,10,2) = "12345.68" (three blanks)
formatL(12345.67,10,4) = "12345.6700" (one blank)
formatR(12345.67,10,6) = "12345.670000" (length here > 10)
val("3278,45") = 3278,45
len("This is a character string") = 26
qm()+"c:\zeiss\calypso\modul 4\hugo.bat"+qm() is interpreted as char-
acter string “"c:\zeiss\calypso\modul 4\hugo.bat"”
inStr(3,"Position","o") = 7
inStr("Position","o") = 2
mid("PCM functions",1,3) = "PCM"
strElement(4,",","hello,here,we,are,again") = "are"
strElement(4,"e","here,we,are,again") = "ar"
subStr("This is a test",4,9) = "s is a"
display
Outputs a text in a screen window. The CNC run is not interrupted. Ad-
ditionally, certain parameters can be used to suppress and reenable the
execution of the display commands. The syntax is:
display(parameter)
parameter Function
Text Opens a new Display window for
text output.
"#displayCLOSE" Closes all Display windows.
"#displayOFF" Ignores additional display com-
mands until the next dis-
play("#displayON") command.
Subsequently, all control outputs
are deactivated with one line.
"#displayON" Switches the consideration of the
display commands on again.
Examples:
display("Group A")
Displays the “Group A” text on the screen.
para="Group B"
display(para)
Displays the “Group B” text on the screen.
inquire
Corresponds to the inquireNumber command, but is supported by
PCM only for the sake of upwards compatibility. The syntax is:
variable name = inquire("Dialog text for poll")
inquireList
The inquireList command can be used to create a menu for querying
a character string. The syntax is:
The command causes the appearance of a menu with the given title line
on the screen. As a value, the variable is assigned the character string of
the menu item which has been selected with a mouse click or the arrow
keys and confirmed with OK.
Examples:
inquireNumber
The inquireNumber command can be used to create a dialog for
querying a numeric value. The syntax is:
or
Here the “cr()” optional elements each cause a line break on the screen.
Example 1:
Example 2:
number = 10
P1 = inquireNumber("Last value was: ",number,cr(), "Enter new number:")
message("You have entered the number:",P1)
Example 3:
inquireParameterList
If the inquireParameterList command is contained in the presettings
or postsettings, the user can open a dialog box and enter the parameters
in it using a list. The syntax is:
inquireParameterList("p1","k1",...,"pn","kn")
All variables (p1 to pn) that are to be entered via the list must be contained
in the brackets together with comments k1 to kn.
To open the dialog box, the user must highlight the line containing the
command and select Calculate in the context menu.
inquirePasswordText
Opens the dialog box for entering a text. The entered text is masked (in
the form of asterisks). The function supplies the return value of the en-
tered text. The syntax is:
inquirePasswordText("dialogtitle")
The character string entered for dialogtitle is written in the title bar of
the dialog box.
Example:
enteredText = inquirePasswordText("password:")
While the command is being processed, a dialog box with the title “Pass-
word:” opens. The character string entered is written in the entered-
Text variable.
inquireText
The inquireText command can be used to create a dialog for querying
a character string. The syntax is:
or
Here the “cr()” optional elements each cause a line break on the screen.
Examples:
list
Creates a list from the transferred features. This list is required for the
formula input for Recall and Recall Feature points. Access to the features
is not possible. The syntax is:
list(Feature1,Feature2,Feature3,...)
Example: coll=list("Plane1","Plane2","Plane3")
A list of the specified texts is stored in the “coll” variable.
message
Outputs the current values of one or more variables. The syntax is:
message(variable,variable,variable,...)
Inserting “cr()” instead of a variable causes a line break on the screen.
Example:
message("The value of variable P1 is: ", P1, cr(), "The value of variable P2 is: ", P2)
print
Prints the current values of one or more variables in the printout.
The syntax is:
print(variable;variable;variable;...)
NOTICE
The print command will not be active unless you have ticked the Acti-
vate print command check box after selecting Plan ® Ad-
vanced ® PCM Test Settings in the PCM Test Functions window.
This means you can use the command for test purposes.
Examples:
print("Print this dialog text in the printout")
print("Print the value of variable P1 in the printout"; P1)
redrawCAD
Recalculates all features and updates the CAD window. The syntax is:
redrawCAD()
copyFile
Copies a file, i.e. saves a copy of the file under a name to be specified.
The syntax is:
copyFile("file name1","file name2")
Whenever the file name is used without path name, this function will
access the directory of the current measurement plan. If the name of the
drive is missing, the current directory will be used.
NOTICE
If a file with the name “file name2” already exists, this will be overwritten.
deleteFile
Deletes the specified file. The syntax is:
deleteFile(file name)
Whenever the file name is used without path name, this function will
access the directory of the current measurement plan. If the name of the
drive is missing, the current directory will be used.
directoryPath
Returns the path in the file system for the specified directory. The syntax
is:
directoryPath(directory name)
The following values are possible for the Directory name parameter:
Value Meaning
actuals The directory for actual values.
actualInspection The directory of the current measurement plan.
applicationData The user directory.
Up to CALYPSO 5.4: \home\om
From CALYPSO 5.6: installation directory (e.g. C:\Users\Pub-
lic\Documents\Zeiss\CALYPSO\).
defaultInspections The default directory of measurement plans (\workarea\in-
spections).
defaultResults The default directory of results. (\workarea\results).
formplott The directory of CALYPSO form plots.
inspections The user-defined directory of measurement plans.
programFiles The directory of program data.
Up to CALYPSO 5.4: \opt\om
From CALYPSO 5.6: installation directory (C:\Programs\Zeiss
\CALYPSO v.v, v.v being the current version number).
protform The directory of printout templates.
results The user-defined directory of results.
workarea The workarea directory.
exportCharacteristicsHierarchy
Outputs a hierarchically structured list of all characteristics contained in a
measurement plan to an ASCII file called cfHierarchy.txt in the current
measurement plan directory. This file can be used to define selection lists
(e.g. for FACS). The syntax is:
exportCharacteristicsHierarchy()
One characteristic per line is written to the file. For hierarchy representa-
tion, the name of the characteristic is preceded by one blank per group
depth.
NOTICE
In combination with the automatic PCM file call function (see below),
writing occurs each time before the measurement plan is saved.
exportPoints
Exports actual values and, if necessary, nominal values and deviations
from a feature into a file. The syntax is:
exportPoints("feature_name","path_and_file_name")
The format and scope of output are defined in the Export Points dialog
box for every individual feature. The default setting is as follows: text file,
actual values + normal vectors, base alignment, contact points.
The path and file name can be specified absolutely or relative to the cur-
rent measurement plan directory. Examples:
exportPoints("feature_name","geoactuals\Circle1")
exportPoints("feature_name","c:\temp\points.txt")
fileExists
Checks whether a file exists in a certain path and returns a Boolean value.
The syntax is:
fileExists("path_and_filename")
The path and file name can be specified absolutely or relative to the cur-
rent measurement plan directory. Examples:
fileExists("geoactuals\Circle1")
fileExists("c:\temp\points.txt")
generateTableColumn
Writes additional columns in the characteristics table file (*chr.txt). The
contents of the corresponding field results from the return value of the
function name function. The syntax is:
generateTableColumn(column ID,function name)
Within the function name function, you can use getCFAttribute() to ac-
cess attributes of the current characteristic.
getActualInspectionDir
Returns the directory of the current measurement plan. The syntax is:
getActualInspectionDir()
getWD
Returns the current directory. The syntax is:
getWD()
Example: wd = getWD()
readCTFile
Imports a CT dataset (only with the Metrotomography option). The syntax
is:
readCTFile(file name)
readListFile
Creates a list loaded from an ASCII file. The syntax is:
readListFile(file name)
The values in the ASCII file are read line by line and summarized in a list.
Whenever the file name is used without path name, CALYPSO searches
first in the directory of the current measurement plan and then in the
general directory for measurement plans.
Example: Definition of the scope of measurement via a file. The created
list can be used directly for the addCF PCM function.
THE_LIST=readListFile(scope4711.txt)
addCF(THE_LIST)
readPCMFile
Reads in a PCM file. The syntax is:
readPCMFile(file name)
Whenever the file name is used without path name, this function will
access the directory of the current measurement plan. If the name of the
drive is missing, the current directory will be used.
The new parameters which are read in will, in each case, overwrite the
current parameters of the same name.
NOTICE
The parameters which were available before the CNC run will only be
temporarily overwritten. The original start setting will be used for the next
CNC run.
The file name can also be entered in the form of several parameters. The
parameters will, depending on the type, be put together to form a string.
Example 1:
readPCMFile("testparameter.para ")
Example 2:
P1 = "c:"
P2= "zeiss\calypso\ "+"test.para "
readPCMFile(P1,P2)
Example 3:
readPCMFile("c: ", "zeiss\calypso\ ", "test.para ")
readUserAttributes
Reads the characteristic attributes from an external ASCII file. The syntax
is:
readUserAttributes(file name)
The characteristic attributes will then be available for further use in CA-
LYPSO.
The file is a table file. It contains lines and columns separated by tabulator.
– The first line contains the column headings (1st column: identifier,
2nd to nth column: keyword of the respective characteristic attribute).
– Any further line contains the characteristic name in the first column
and the values of the corresponding attributes in the other columns.
NOTICE
Save in simple ASCII format a file that has been edited in a spreadsheet
program and use tabulators as separators.
NOTICE
If you also want to edit the imported characteristic attributes in CALYPSO,
the “userattributes.ini” configuration file must contain the correspond-
ing entries with the same keywords (see User-defined characteristic at-
tributes in the operating instructions for the base module).
renameFile
Renames a file. The syntax is:
renameFile("file name old","file name new")
Whenever the file name is used without path name, this function will
access the directory of the current measurement plan. If the name of the
drive is missing, the current directory will be used.
Example: renameFile("test.txt","Test2.txt") renames the test.txt
file test2.txt.
runPCMFile
Processes a text file with PCM commands and returns a numerical value.
The syntax is:
runPCMFile("filename")
Whenever the file name is used without path name, this function will
access the directory of the current measurement plan. If the name of the
drive is missing, the current directory will be used.
The file must contain a normal PCM syntax.
NOTICE
The function can only be called if the PCM Technology option is available.
saveViewToFile
This function is used to save a CAD view stored via
CAD ® View ® Save View as jpeg file under the name view_name.
The syntax is:
saveViewToFile(view name,file name)
waitForFile
Stops the run until one of the following events occurs:
– A “File name” file is available
– A set waiting time has been reached
– The system generates the message “Directory does not exist”
The syntax is:
waitForFile(file_name[,message,flag1,timeout,report text,flag2])
Parameter Meaning
file name File name with absolute or relative path
message This text is displayed on the screen during the waiting time.
flag1 0: Do not show file name
1: Show file name
timeout Waiting time in seconds
report text Message in the report when the waiting time has been
reached.
flag2 0: No check whether directory exists
1: Check whether directory exists
writeActualsToFile
Saves filtered actual values with stylus radius and status in the specified
file. For each line in the file, the coordinates and the nominal vector of
the point as well as the stylus radius and the status are included. A status
not equal to 0 means “outlier”.
The syntax is:
writeActualsToFile(["characteristic",][true|false,[alignment,]] "file_name")
writeActualsToVDA
Saves filtered actual values in VDA format in the specified file.
The syntax is:
writeActualsToVDA(["characteristic",][true|false,[alignment,]] "file_name")
writeBliskFinishFile
Writes the bliskfinish.xml file for the communication with BLADE PRO.
The syntax is:
writeBliskFinishFile("blisk name")
“blisk name” can be any name. Therefore, the “blisk name” must be used
in the corresponding writeBliskStartFile command.
You use this command in the postsettings if you defined a “Turbine
Blade” element in a loop.
writeBliskStartFile
Writes the bliskstartup.xml file for the communication with BLADE PRO.
The syntax is:
writeBliskStartFile("blisk name")
“blisk name” can be any name. Therefore, the “blisk name” must be used
in the corresponding writeBliskFinishFile command.
You use this command in the presettings if you defined a “Turbine Blade”
element in a loop.
writeCurveDistanceAsPlaneToFile
Writes curve points and the associated curve distances from a “curve dis-
tance” characteristic in the form of coordinates of a measured virtual
plane to a file. The syntax is:
writeCurveDistanceAsPlaneToFile("Curve distance1",1,"c:\A\testfile.txt")
writeDiffCoordSysToFile
Calculates the difference matrix of two coordinate systems and outputs
it as a file. The difference matrix of the two coordinate systems has the
following structure:
The output file is composed of the anm components of the matrix, ap-
pearing line-by-line, and of the X, Y and Z vector components. A blank is
used as a separator. Thus, the file contains a line with the following struc-
ture:
a11 a12 a13 a21 a22 a23 a31 a32 a33 x y z
Each one of the twelve numbers is output with 14 decimal places.
The syntax is:
writeDiffCoordSysToFile([Name1,[Index1,][Actual1,]] Name2,[Index2,][Actual2,]file_name)
Parame- Meaning
ter
Name1 Name of the first coordi- Optional.
nate system If no name is specified, the base alignment will be used. In
this case, Index1 and Actual1 are not needed either.
Index1 Loop index of the first co- optional if Name1 is specified.
ordinate system Default value: the current loop index.
Parame- Meaning
ter
Actual true: actual coordinate Optional.
system Default value: “true”.
false: nominal coordinate
system
Name2 Name of the second coor- Name2 is mandatory.
dinate system
Index2 Loop index of the second Optional.
coordinate system Default value: the current loop index.
Actual2 true: actual coordinate Optional.
system Default value: “true”.
false: nominal coordinate
system
File name Path and file name of the Absolute or relative specification possible. With a relative
output file path specification, the actual value directory of the meas-
urement plan is used as the basis.
writePointsCloudToFile
Writes the points of a point cloud into a session file. The syntax is:
writePointsCloudToFile([point_cloud_name,]file_name)
“point cloud name” is the name of a point set or a graphic point set.
If no parameter is indicated, the current feature will be used. This, how-
ever, is only practical if the command is located in the postparameters of
a point cloud or a graphic point cloud.
addCF
Adds additional characteristics to the scope of measurement. The syntax
is:
addCF(characteristic name1,characteristic name2, …)
Or
addCF(list name)
You can specify individual characteristics or groups as characteristic
name.
NOTICE
Characteristics added in this way are always checked even if they were
not selected during the CNC start.
addME
Adds additional features to the scope of measurement. The syntax is:
addME(feature_name1,feature_name2, …)
NOTICE
Only effective if “From Feature List” is selected under Order of run.
baseSystem
Returns characteristics of the base alignment. The syntax is:
baseSystem().characteristic
Possible values of “characteristic” are: “x”, “y”, “z”, “valueA”, “euler1”,
“euler2” and “euler3”:
The formula for calculating the plane angle of the base alignment is:
plane angle = (euler1 - euler3) * 180˚ / π
Example: result=baseSystem().x
The X value of the base alignment is written into the “result” variable.
clearCAD
Deletes the contents of the CAD window. The syntax is:
clearCAD()
clearParameter
Deletes all or individual variables. The syntax is:
°clearParameter([parameter_name1,parameter_name2, ...])
Examples:
compute
Computes the value of a term or a single PCM parameter indicated as
character string. The syntax is:
°compute(CharacterString)
Example:
Given:
– A_Hugo=4711
– Part1="A"
– Part2="Hugo"
– Compl_para=Part1+Part2
Then “compute(Compl_para)” return the value 4711.
defineRecheckPartNumber
Defines the special part number for the repeat measurement (variable
“part number”) The syntax is:
defineRecheckPartNumber(PCM expression)
By default, the “Incremental part Number” is the identification for the
unique assignment of the data in the repeat measurement. If this default
is to be deviated from, you can define an own identification with defin-
eRecheckPartNumber.
The function can thus be used for the definition of an own “badElement-
Formula” function for the control of repeat measurements.
Example:
// Define recheck-partnumber by PCM-term
RECHECK_PARTNB_TERM="getRunID()+getRecordHead("order")"
defineRecheckPartNumber(RECHECK_PARTNB_TERM)
defineFunctionEnd
Marks the end of the function definition. The syntax is:
defineFunctionEnd(return value)
defineFunctionStart
Marks the beginning of the function definition. The syntax is:
defineFunctionStart(function name)
differenceSystem
Returns characteristics of an iterative alignment. The syntax is:
differenceSystem().characteristic
Possible values of “characteristic” are: “x”, “y”, “z”, “valueA”, “euler1”,
“euler2” and “euler3”:
The formula for calculating the plane angle of the alignment is:
plane angle = (euler1 - euler3) * 180˚ / π
Example: result=differenceSystem().x
The difference of the x values of the last two iterations is written into the
“result” variable.
endInspection()
Properly terminates the measurement plan. Contrary to canceling via
cncBreak(), the current characteristic or feature will be processed, the
measurement plan will be terminated and the intended printouts will be
generated. The syntax is:
endInspection()
Example: endInspection()
The measurement plan run is concluded
executeFunctionNamed
Executes a function that has been previously defined between define-
FunctionStart and defineFunctionEnd. The syntax is:
executeFunctionNamed(function name)
The function must have been previously defined between defineFunc-
tionStart(function name) and defineFunctionEnd(return value).
Example:
defineFunctionStart("SUM")
C=A+B
defineFunctionEnd("C")
A=13
B=5
ERG=executeFunctionNamed("SUM")
The ERG value is here 18.
getActual
Used without an argument, it returns the current value of the character-
istic. The syntax is:
getActual()
In conjunction with an argument, it returns a certain current value of a
feature, coordinate system or bore pattern.
The syntax is:
getActual(feature_name[,[loop_index][,step_number]]).attribute
getCFAttribute
Returns the current value of an attribute. Without definition of the char-
acteristic name only usable within functions. The syntax is:
getCFAttribute(AttributeName)
Or
getCFAttribute(characteristic name,attribute name)
getCFGroupname
Returns the currently highest group name to the characteristic. Without
definition of the characteristic name only usable within functions. The
syntax is:
getCFGroupname(characteristic name)
Or
getCFGroupname()
getCFGroupname2
Returns the currently lowest group name to the characteristic. Without
definition of the characteristic name only usable within functions. The
syntax is:
getCFGroupname2(characteristic name)
Or
getCFGroupname2()
getCornerPointFromCAD
Returns one of two extreme corner points of the CAD model in the base
alignment. The desired corner point must be defined. The syntax is:
getCornerPointFromCAD("extremum")
“extremum” is a dummy for the following:
extremum Result
min Vector of the XYZ minimum
max Vector of the XYZ maximum
getFunctionObjectName
Returns the name of the current characteristic. The syntax is:
getFunctionObjectName()
Can be used in own programmed PCM functions to enable access to the
current characteristic. An example is the programmed “badElementFor-
mula” function used for the definition of a repeat measurement criterion.
getMaxActual
Returns the value of the highest error of all position evaluations for a best
fit of bore pattern and the calculated maximum for the 2 point diameter
or the corresponding angle. The syntax is:
– Best fit of bore pattern:
getMaxActual("feature_name[,loop_index]").actual
getMaxActual("feature_name[,loop_index]").angleOfRadiusPoint
getMinActual
Returns the calculated minimum for a 2 point diameter or the corre-
sponding angle. The syntax is:
– 2 point diameter, minimum:
getMinActual("feature_name[,loop_index]").actual
getMinActual("feature_name[,loop_index]").angleOfRadiusPoint
getNominal
Returns a certain nominal of a feature. The syntax is:
getNominal("feature_name").characteristic
See the table above for the possible values of “characteristic”.
getParameterNamed
Returns the value of the parameter whose name is the value of the pa-
rametername character string variable. The syntax is:
getParameterNamed(Parameter name)
To ensure access to parameter values, you can only use fixed parameter
names in expressions. This function allows you to define a variable pa-
rameter name.
Example 1:
diameter7 = 34.12
i = 7
parameter name = "diameter" + text(i)
Length = getParameterNamed(Parameter name)
Then the “Length” variable has the current value 34.12.
Example 2:
color7="yellow"
i=7
CurColor="color" + text(i)
Basic color = getParameterNamed(CurColor)
Now, the “Basic color” variable has the value of the "yellow" character
string.
getRecheckMode
Returns the current mode for repeat measurements. The syntax is:
getRecheckMode()
The return value is 1 if repeat measurements are activated and it is 0 if
repeat measurements are deactivated.
getRESULTS
Returns the directory in which the results of the measurement plan are
stored. The syntax is:
getRESULTS()
getRunID
Returns the name of the mini-plan selected for the CNC start. The syntax
is:
getRunID()
inspectionToleranceState
Supplies the tolerance status of the measurement plan, as far as it has
been defined. It makes sense to call the function in the postsettings of
the measurement plan to query the status.
The syntax is:
inspectionToleranceState()
Possible return values are:
Example:
inspectionToleranceState()
Supplies the tolerance status of the measurement plan.
loadCADFile
Loads a file of the *.sab or *.sat type.
The syntax is:
loadCADFile(file name)
The complete file path is indicated as “file name”.
Example:
loadCADFile(getActualInspectionDir()+"\model.sab")
measure
In conjunction with an argument, it returns a certain current value of a
feature, coordinate system or bore pattern.
The syntax is:
°measure("feature_name"[,loop_index]).characteristic
The “feature name” can be indexed directly or with a variable (for ex-
ample, a loop variable):
measure("Cone",3).x
Or
measure("Cone",LOOP3).x
See the table above for the possible values of “characteristic”.
Used without an argument, it returns the current value of the character-
istic. The syntax is:
measure()
measuringForce
Allows setting or reading the measuring force in a feature or in the meas-
urement plan. The unit for the measuring force is mN.
The syntax is:
measuringForce([measuring_force_in_mN,]["feature"])
– If the function is called without parameters, the measuring force of
the current feature will be returned (“current feature” stands here for
the Feature if the function is called in the presettings or postsettings
of a feature; otherwise it stands for the Measurement Plan).
– When the name of a feature is given as parameter, the measuring
force of this feature will be returned.
– If the function is called in the presettings or postsettings of the meas-
urement plan and if the measuring force is specified as parameter, the
measuring force will be set for the entire measurement plan. If the
function is called with a measuring force in the presettings and post-
settings of a feature, the measuring force of the feature will be set.
– If the measuring force and the name of a feature have been specified
as parameters, the measuring force of the feature will be set directly.
Examples:
myForce=measuringForce()
Returns the measuring force of the current feature or of the measurement
plan and saves the value in the myForce variable.
myForce=measuringForce("Cylinder1")
Returns the measuring force of the “Cylinder1” feature and saves the
value in the myForce variable.
measuringForce(100)
Sets the measuring force of the current feature or of the measurement
plan to 100 mN.
measuringForce(100,"Cylinder1")
Sets the measuring force of the “Cylinder1” feature to 100 mN.
outputMultiQdas
Creates a separate Q-DAS evaluation according to a predefinable char-
acteristic attribute. The syntax is:
outputMultiQdas(attribute name)
setCF
Defines the characteristics belonging to the scope of measurement. The
syntax is:
setCF(characteristic name1,characteristic name2, …)
Or
setCF(list name)
You can specify individual characteristics or groups as characteristic
name.
NOTICE
The characteristics defined in this way replace all previously selected
characteristics.
setCFAttribute
Sets a characteristic attribute on a certain value for the current charac-
teristic. The syntax is:
setCFAttribute (keyword, value)
The characteristic attributes are written as an additional column in the
table file for characteristics (*chr.txt).
Example:
The postsettings of the “Diam_4711” characteristic contain a value as-
signment for ParamX as well as setCFAttribute:
setCFAttribute ("u_resultX",ParamX)
Result: An additional column labeled with “u_resultX” is created in the
table file. The line of the “Diam_4711” characteristic in this column con-
tains the assigned value of ParamX.
setElementStrategy
Defines the current strategy. The syntax is:
°setElementStrategy([feature_name],strategy_name)
– In the input parameters of a feature, this command has effect on the
current feature.
– In the input parameters of the measurement plan, this command has
effect on the specified feature.
setGeometryInnerOuter
Defines the feature as an inside or outside feature. The syntax is:
setGeometryInnerOuter("Feature ID")
This means:
Feature ID Effect
OUTER Set to outside feature
INNER Set to inside feature
NOTICE
A text parameter enables variable specification of feature IDs.
setInspectionStrategy
Defines the current strategy for the entire measurement plan. The syntax
is:
setInspectionStrategy(strategy name)
This command must be contained in the input parameters of the meas-
urement plan. A blank strategy name will cause selection of the evasion
strategy.
setMissingBore
Defines a search distance and reduces the travel speed until reaching the
search distance before the first probing. The syntax is:
setMissingBore ([feature_name,]search_distance)
The feature name can be omitted in the pre-parameters of the current
feature.
You will be informed about a missing bore via
getActual("feature_name").boreIsMissing
The return value is true or false.
setRecheckMode
Sets the mode for repeat measurement for the measurement plan. The
syntax is:
setRecheckMode(Recheck[,Reset][,Maximum])
The parameters have the following meaning:
Parameter Meaning
Recheck = 0 Repeat measurement deactivated
Recheck = 1 Repeat measurement activated
Reset = 0 No reset of part numbers
Reset = 1 All part numbers are reset
Maximum The maximum number of repeat measurements.
0 = no limitation
setRunID
Sets the mini-plans selected for the CNC start. The syntax is:
°setRunID(characteristic group name1,characteristic group
name2, …)
The previously saved selection is overwritten. When defining several mini-
plans in a call, the total selection forms the scope of measurement.
setShaded
Renders the displayed CAD model. The syntax is:
setShaded()
setWireframe
Shows the displayed CAD model as wire frame model. The syntax is:
setWireframe()
cncBreak
Breaks off the CNC run. The syntax is:
cncBreak()
The CNC run is broken off, the stop light changes to red.
displayPositionCMM
Opens the Position dialog box, in which the current coordinates of the
probe are displayed in the machine coordinate system in the same way
as with a dial gage.
The syntax is:
displayPositionCMM()
This dialog allows the user to set each coordinate or all coordinates to
“0”. In terms of calculation, this means that the local vector of the posi-
tion at which zeroing took place is subtracted from the respective current
position in the displays in the further course of the process.
After closing with OK, the dialog returns the most recently displayed co-
ordinate as the result.
Example: starting_point=displayPositionCMM()assigns the “start-
ing_point” variable the value [email protected]@200.311123d.
getActualSide
Supplies the current clearance plane. The syntax is:
°getActualSide()
getCNCMode
Supplies the travel mode of the CMM: "manual" or "cnc". The syntax is:
getCNCMode()
getNextStylusSystemName
Supplies the next required stylus system for stylus system change. The
syntax is:
getNextStylusSystemName()
getPositionCMM
Supplies the current position of the probe in machine coordinates as the
result. The syntax is:
getPositionCMM()
Example: starting_point=getPositionCMM() assigns the “start-
ing_point” variable the value [email protected]@200.311123d.
getProbe
Returns stylus properties. The syntax is:
getProbe("stylus_name","plate_name").characteristic
Stylus name and plate name must be strings enclosed in straight quotes
("). The possible values of “characteristic” are: “radius” or “probeName”.
The current stylus name can be omitted.
Examples:
getProbeRadiusFromActual
Returns the current stylus radius associated with the indicated measure-
ment in the form of a numerical value in mm. The syntax is:
getProbeRadiusFromActual(feature_name[,point_index[,feature_index]])
The default value for point_index is 1. The Element index is important for
patterns.
Examples:
getRackAssignment
Supplies the active rack assignment. The syntax is:
°getRackAssignment()
getRTOffset
Returns the rotary table offset. The rotary table offset represents the dif-
ference between the relative rotary table position in the measurement
plan and the rotary table position in absolute machine coordinates. The
syntax is:
getRTOffset()
getRTPosition
Returns the actual value of the last rotary table position. The syntax is:
getRTPosition()
(Relative value for features in the measurement plan which can be set)
getRTPositionCMM
Returns the position of the rotary table in absolute machine coordinates.
The value cannot be set. The syntax is:
getRTPositionCMM()
getTemperatureCorrection
Returns characteristics of the temperature correction object. The syntax
is:
getTemperatureCorrection().characteristic
isManProbeChange
Query for manual stylus system change. The syntax is:
°isManProbeChange()
Supplies TRUE if manual stylus system change is performed and FALSE in
the opposite case.
lowerableRT
Lowers and lifts the lowerable rotary table. The syntax is:
°lowerableRT("function")
Function Effect
UP The LRT is lifted.
DOWN The LRT is lowered.
STATUS The status of the LRT is queried. The return value
is UP” or “DOWN”.
If the command is used without lowerable rotary table, the error message
“9999” will be returned.
measureMTMValue
Performs a measurement of the mass moment of inertia of the loaded
rotary table if a suitable rotary table has been installed and logged in. The
syntax is:
measureMTMValue()
This allows you to determine yourself the moment of the mass moment
of inertia measurement.
measVolumeIlluminationOff
Deactivates measurement area illumination for O-Inspect. The syntax is:
measVolumeIlluminationOff()
It makes sense to use this command in the parameters of the feature.
measVolumeIlluminationOn
Activates measurement area illumination for O-Inspect. The syntax is:
measVolumeIlluminationOn()
It makes sense to use this command in the parameters of the feature.
positionCMM
Moves the probe to the specified position (in machine coordinates). If no
axis sequence is specified, the CMM moves in Z first, then Y, and finally
X.
positionRS
Moves the probe with the specified stylus to the specified coordinates in
the applicable alignment. (Standard: base alignment). The syntax is:
positionRS(X,Y,Z,[coordinate_system,stylus])
readActualWPTemperature
Reads the current temperature of the specified workpiece sensor in the
CNC run and returns it in degree Celsius. The syntax is:
readActualWPTemperature([temperature_sensor])
In this case, “temperature sensor” is a character string comprising one or
more sensor numbers connected by "+". Values for “temperature sen-
sor” are, for example, "1", "2" and "1+2".
Examples:
You can include the read value in the printout or, for example, compare
it with the initial value which is available via the getTemperatureCorrec-
tion().tempWp function.
readWPTemperature
Reads the current temperature of the workpiece sensor and blocks trans-
fer of the temperature immediately before probing the first feature. This
requires previous activation of the temperature compensation function.
The syntax is:
readWPTemperature()
If this function is entered in the input parameters of the measurement
plan, the temperature transmitted by the sensor will be transferred. This
allows bringing forward the temperature transfer. The function may be
used only once in the measurement plan.
rtAxisDefinition
Overwrites the current settings for loading or qualification of the RT axis
in the Rotary Table window. The syntax is:
rtAxisDefinition(rtmode)
Values for rtmode: "load" or "measure".
rtPositionOffset
Moves the rotary table to the specified position. The syntax is:
rtPositionOffset(offset angle in rad)
searchDistance
Defines the probing search path. The syntax is:
searchDistance(distance)
In this case, “distance” is the distance traveled by the probe before nom-
inal probing. This value must be entered in 0.1 mm. It applies until it is
overwritten or canceled by a reset (stop light goes from green to red and
then back to green).
Examples:
searchDistance(10.000) => Search distance before nominal probing is
1 mm
searchDistance(60.000) => Search distance before nominal probing is
6 mm
setCNCMode
Sets the travel mode of the CMM. The syntax is:
setCNCMode(mode)
Values for mode: "manual" or "cnc".
setInspectionDrivingSpeed
Defines the speed for traveling between the features. The syntax is:
setInspectionDrivingSpeed(speed)
The value for speed is given in mm/s.
For safety reasons, it will never be possible to reach a higher speed than
the one specified at CNC start, even if you set a higher speed using this
function.
This does not affect the speed settings for the individual features.
setMTMValue
Sets the mass moment of inertia of the loaded rotary table to a defined
value. CALYPSO will then use the given value. The syntax is:
setMTMValue(mtm)
“mtm” is here the value of the mass moment of inertia in kgm2.
setNavigationPath
Sets the path from or to the transfer point of the stylus system changer.
The syntax is:
setNavigationPath(direction,path name)
The value for “direction” is either "fromProbeChange" or "toProbe-
Change". For “path name”, a valid name of a previously defined path
must result.
If “path name” does not supply a valid path name, CALYPSO will auto-
matically determine the path.
setWPTemperature
Replaces the previously used workpiece temperature value (sensor value
or value entered after CNC start) by the specified value. The syntax is:
setWPTemperature(temperature)
“temperature” is here the temperature value in °C.
The command will only be evaluated if it is used in the measurement plan
defaults. It will only take effect if the temperature compensation option
has been enabled in the defaults.
Example:
// DEFAULT DIALOG
//TEMP_VALUE=inquireNumber("WorkpieceTemp. =")
// or
// LOAD FILE
ALIST=readListFile("wp_temp_value.txt")
// Access to the 1st value of the list parameter
TEMP_STRING=getParameterNamed(ALIST,1)
// Conversion of string to number
TEMP_VALUE=val(TEMP_STRING)
// DEFAULT OF TEMP. VALUE
setWPTemperature(TEMP_VALUE)
stepRS
Moves the probe along X, Y, Z relative to the current position in the
specified alignment (standard: base alignment). The syntax is:
stepRS(X,Y,Z,[coordinate_system])
closeSocket
Closes the communication channel between CALYPSO and the external
application again. The syntax is:
closeSocket()
It is used together with the “systemCallForResultAccess” command. It
serves to close the “CalypsoInterface” which is used for taking over
measurement data from CALYPSO.
For information on using the PCM commands and programming the ap-
plication that accesses measured data from CALYPSO, see in the operat-
ing instructions for the base module under Programmed access to meas-
uring results.
date
Returns the current date in the respective country language. The syntax
is:
date()
Example: date() = "7 December 2003"
dateAndTime
Returns system date and time. The syntax is:
dateAndTime()
Example: date=dateAndTime(). Date and time are written into the date
variable (of the “string” type) in the format defined by the system.
dateInNumbers
Returns the current date as numerical values. The syntax is:
dateInNumbers()
Example: dateInNumbers() = "12/07/03"
expandCalypso
Maximizes again the CALYPSO program window or has it displayed in the
foreground on the screen. The syntax is:
expandCalypso
facsIsActive
Returns whether FACS is active. The syntax is:
facsIsActive()
language
Returns the abbreviation for the currently defined language of the CA-
LYPSO user interface. The syntax is:
°language()
Example:
For a German user interface, language() returns the character string
"de".
millisecondClockValue
Accesses the millisecond counter of CALYPSO and returns the current
value. The syntax is:
millisecondClockValue()
This function allows you to measure time in millisecond resolution.
openSocket
Opens a communication channel between CALYPSO and an external ap-
plication. The syntax is:
openSocket()
It is used together with the “systemCallForResultAccess” command. It
serves to open the “CalypsoInterface” used for taking over measurement
data from CALYPSO.
For information on using the PCM commands and programming the ap-
plication that accesses measured data from CALYPSO, see in the operat-
ing instructions for the base module under Programmed access to meas-
uring results.
systemCall
Calls system commands. The syntax is:
systemCall("filename")
The “filename” file is called and immediately executed. “filename” must
be an executable file, e.g. a batch file or a program. You can use this
function to copy results to another computer, for example.
Example: systemCall("D:\philips\main\help.bat")
The statements in the help.bat file are executed.
NOTICE
CALYPSO is not stopped during execution of the system command. Any
CNC run will continue.
systemCallForResultAccess
Calls system commands and waits for them to be processed. The syntax
is:
Starts an application. This application can access CALYPSO data while the
measurement plan is not being processed further. By contrast, “system-
CallWithWait” does not permit access to CALYPSO data and “system-
Call” does not stop the CNC run.
This command must be used together with the “openSocket” and “close-
Socket” commands.
systemCallIcon
Calls system commands and waits for them to be processed. The syntax
is:
systemCallIcon("filename")
The “filename” file is called and executed. The executing program is re-
duced to an icon on the screen. CALYPSO waits until the “filename” file
has been processed.
“filename” must be an executable file, e.g. a batch file or a program.
Example: systemCallIcon("D:\philips\main\help.bat")
The statements in the help.bat file are executed. CALYPSO will wait until
the batch file has been processed.
NOTICE
It is not possible to access the measured data of the current measurement
plan with this command.
systemCallWithWait
Calls system commands and waits for them to be processed. The syntax
is:
systemCallWithWait("filename")
“filename” file is called and executed in a program window. CALYPSO
will wait until the file “filename” has been processed.
“filename” must be an executable file, e.g. a batch file or a program.
Example: systemCallWithWait("D:\philips\main\help.bat")
The statements in the help.bat file are executed. CALYPSO will wait until
the batch file has been processed.
NOTICE
It is not possible to access the measured data of the current measurement
plan with this command.
time
Supplies the current time. The syntax is:
time()
timeInSeconds
Supplies the current time in seconds. The syntax is:
timeInSeconds()
Example: timeInSeconds() = "35246"
wait
Interrupts the measurement plan run for nSeconds seconds. The syntax
is:
wait(nSeconds)
Example:
wait(10)
The measurement plan run is stopped for 10 seconds.
getRecordHead
Returns the current value of a printout header variable. The syntax is:
getRecordHead("PrintoutHeaderVariable")
If the value of the printout header variable is intended for further use as
a file name, the getRecHdForFil command must be used.
For a complete list of all printout header variables, please refer to the
operating instructions for the base module under Reference: Printout
header data.
presentationOff
Switches off a custom printout. The syntax is:
presentationOff()
presentationOn
Switches on a custom printout. The syntax is:
presentationOn()
setElementsForProtocol
Defines the characteristics to be printed using the following command
“displayGraphicsWhileSelection”. The syntax is:
setElementsForProtocol
setProtocolOutput
Controls the output in printout (listing and printing) independently of the
CNC start settings. The syntax is:
setProtocolOutput("printout type","output function")
– Values for printout type: "compactProtocol", "presentationProto-
col", "workingProtocol".
– Values for output function: "list" or "print"
With this command, the CNC start settings will be overwritten and rede-
fined.
setProtocolSetting
Defines the settings for the custom printout. The syntax is:
setProtocolSetting("setting","value")
The following can be set for “setting” and “value”:
setting value
outputFormat Name of the desired output format
userDefinedPages Name of the custom defined page to be attached to the custom
printout. Prerequisite: User Defined Pages in the Format Cus-
tom Printout dialog box is activated.
Examples:
setProtocolSetting("outputFormat","default")
defines the “default” format as the output format.
setProtocolSetting("userDefinedPages","userProtocol1.gra")
attaches the “userProtocol1.gra” page to the existing printout.
setRecordHead
Sets the value of a printout header variable. The syntax is:
setRecordHead("PrintoutHeaderVariable","Value")
For a complete list of all printout header variables, please refer to the
operating instructions for the base module under Reference: Printout
header data.
setViewsForProtocol
Defines the CAD views to be output in the printout. The syntax is:
setViewsForProtocol(view name1,view name2,...,view names)
if_else_endif
Defines a condition with alternative. The syntax of the condition with
alternative is as follows:
if CONDITION then
DEFINITION1
else
DEFINITION2
endif
Meaning:
if_endif
Defines a simple condition. The syntax of the simple condition is as fol-
lows:
if CONDITION then
DEFINITION
endif
Meaning:
– If CONDITION is satisfied, DEFINITION is processed.
– If CONDITION is not satisfied, DEFINITION is not processed.
A DEFINITION can be formulas, value assignments, functions, conditions
or loops of your choice, always with line breaks as separators.
repeat_until
Defines a conditional loop. The conditional loop has the following syntax:
repeat DEFINITION until CONDITION
Meaning:
NOTICE
Please note that infinite repetitions are possible with the conditional loop
if the condition is never fulfilled.
selectCase_endSelect
Defines a condition with several alternatives. The syntax of the condition
with several alternatives is as follows:
selectCase TEST PRINTOUT
case VALUE LIST 1
STATEMENTS 1
[case VALUE LIST 2
[STATEMENTS 2]]
...
[caseElse
[ELSE STATEMENTS]]
endSelect
Meaning:
– TEST PRINTOUT:
Required. Any numeric expression, character string or PCM parame-
ter.
– VALUE LIST:
Must be specified for case.
A list separated by commas that contains one or more of the following
forms:
– Expression:
e.g. 12, "All"
– Expression1 to Expression2:
e.g. 1 to 15, "Part1" to "Part5"
– is comparative operator expression:
e.g. is > 8
NOTICE
Conditions with several alternatives can be nested.
NOTICE
The “defineProtocol” PCM function disables the set printout via Re-
sources ® Define Printout.
NOTICE
This function is suitable for use in external PCM files. Thus you can simplify
the PCM printout for several measurement plans.
The name of the external files defines where in the measurement plan
run the file is executed.
C E
Changing control in CNC 1‑95
endInspection 1‑78
Characteristics
executeFunctionNamed 1‑78
Rechecking (example) 1‑43
expandCalypso 1‑96
clearCAD 1‑76
exportCharacteristicsHierarchy 1‑67
clearParameter 1‑76
exportPoints 1‑68
closeSocket 1‑95
External PCM files
CMM travel commands (PCM) 1‑88
Names 1‑26, 1‑107
cmmCanUseNavigator 1‑88
Run control 1‑25
CNC run
~ structure 1‑7
Terminating properly 1‑24 F
cncBreak 1‑88 facsIsActive 1‑96
Comparative operators (reference) 1‑57 Features
compute 1‑77 Searching with directories 1‑34
Conditions Searching with formulas 1‑32
With alternative (example) 1‑39 Searching with parameters 1‑33
Conditions/loops File commands (reference) 1‑66
PCM commands 1‑101 File names
confirm 1‑62 External PCM files 1‑107
copyFile 1‑66 for_next 1‑101
Curve Formula
Defining via function (example) 1‑43 For space axis 1‑23
Loading parameters (example) 1‑42 Formulas
Custom printout Definition 1‑11
PCM commands 1‑99 Functions and operators 1‑12
In the default printout 1‑37
Searching in features 1‑32
O
openSocket 1‑97
Output commands (reference) 1‑62