Post Building Techniques NX8
Post Building Techniques NX8
Student Guide
October 2011
MT11060 — Post Builder 8.0
Publication Number
mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Proprietary and restricted rights notice
2 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Contents
Course overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Course objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
How to use this manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Lesson format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Learning tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Classroom system information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Contents
6 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Contents
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Index-1
The Post Building Techniques course acquaints users with tools and
techniques that are used for building custom, machine tool specific post
processors using the Post Builder application. For those post processors that
cannot be fully developed using the Post Builder application, methods are
shown for customizing and modifying the definition and event handler files,
used by NX Post for specific needs.
Intended Audience
This course is suited for designers, engineers, manufacturing engineers,
application programmers, NC programmers, CAD/CAM managers, and
system managers who have a need to build posts for NC programming.
Course objectives
After successfully completing this course, you will be able to:
• Build a postprocessor with Post Builder.
• Create posts Wire EDM, 5-Axis Mill, Lathe, and Mill Turn machines.
Prerequisites
Required courses
• NX Manufacturing Fundamentals
10 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Course overview
Lesson format
• Project
Projects allow you to test your new skills without detailed instruction.
Consult your instructor for additional information.
• Summary
Learning tips
• Ask questions.
• Take notes.
Student login:
User name:
Password:
Work directory:
Parts directory:
Instructor:
12 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
1
Lesson
Purpose
This lesson describes the postprocessing function of NX and the various
components of a postprocessor. An overview of the Post Builder module
is also presented.
Objective
Upon completion of this lesson, you will be able to:
• Understand the terminology and interrelationships of the various
components of NX Post.
1
Postprocessing in NX
Each machine tool and controller combination has different requirements,
for example tool change commands, specific M-codes and G-codes, and the
sequence of G-codes that is permitted in a program line.
Postprocessing is the process of outputting machine code so that your tool
path is recognized by a machine tool and controller combination. Before you
can postprocess a tool path in NX, you must create the tool path in NX and
create an appropriate post processor in NX Post Builder.
A tool path consists of the following:
• Information about tool motion, such as GOTO points and feed rates.
• Instructions to Post Builder so that can recreate the graphic interface for
your post when you edit it.
1-2 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
The NX Post postprocessor
1
NX Post
NX Post is a set of programs and files that you use in the Manufacturing
application to post process NX tool paths with posts define by the NX Post
Builder.
You can start NX Post by the following means:
• Right-click a selected program or operation nodes in the Operation
Navigator and choose Post Process.
NX Post uses tool path data as input, and outputs machine controller
readable CNC code. You can customize your postprocessors in several ways
to generate the output that you require for several supported machine tool
categories, including the following:
• Mills
• Lathes
1
The following flowchart illustrates the steps required to postprocess tool path
data in an acceptable format for a machine tool and controller.
NX Post architecture
The event generator, event handler, and the definition file are interdependent.
1-4 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
The NX Post postprocessor
1
Manufacturing Output Manager (MOM)
The Manufacturing Output Manager, or MOM, is a utility program used by
NX Post to use tool path data to generate output. NX Post uses the MOM to
do the following.
• Start the interpreter.
1
Using Post Builder
Post Builder is an application that provides a graphical user interface for
building posts.
Post Builder allows you define many aspects of output, including the following:
• Types of output blocks and word addresses.
o Start of operation
o End of operation
o End of program
o Tool changes
o Canned cycles
One of the outputs of the Post Builder program is a Tool Command Language
(Tcl) script file. With knowledge of the Tcl language, you can extensively
customize Tcl scripts.
Post Builder currently configures postprocessors for the following:
• 3-axis milling machines
• 2-axis lathes
1-6 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
The NX Post postprocessor
1
The following flowchart illustrates the process of building a postprocessor
using Post Builder:
Post processor development process
1
Summary: The NX Post postprocessor
In this lesson you were introduced to:
• Post processing with NX Post.
1-8 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Lesson
Purpose
This lesson describes the procedures of building postprocessors through the
use of the Post Builder .
Objective
Upon completion of this lesson, you will be able to:
• Understand the various components of Post Builder.
http://webtest.industrysoftware.automation.siemens.com/
WebkeyLogin/Authenticate2?url=http://plmwebtest.industrysoftware.
automation.siemens.com/postcatalog/index.jsp
2-2 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
Other files
my_machine_tool.cdl
Appears when you create a user-defined event or a user-defined cycle.
Contains the definition of a dialog box that appears when you add the 2
event from NX. The dialog box is used to gather user input parameters to
control your event or cycle.
my_machine_tool_vnc.tcl
Appears when you select the option to create a virtual NC controller or
VNC.
Contains the Tcl code needed to support simulation using machine tool
driver (MTD) Tcl-based simulation.
2-4 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
• Manage the available forms of help for the other dialog boxes.
The dialog box contains only a menu bar, toolbar, and a cue line. Other dialog
boxes appear as you perform tasks related to post processor definition.
When you open the Create New Post Processor dialog box or the editing
dialog box, the cue line continues to show suggestions about the task related
to the page that you are displaying in the other dialog boxes.
You can also choose to enable the user defined event editor and user cycle
editing by default anytime the post is opened for edit.
2-6 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
2. In the Create New Post Processor dialog box, select Main Post. 2
3. Under Machine Tool, select the type of machine.
For example, you can select Mill for any supported milling machine.
2. In the Install Posts dialog box, make certain that the path in the Template
Posts Data File box points to the template_post.dat file that is in the
folder pointed to by your UGII_CAM_RESOURCE_DIR variable.
If the path is not correct, click Browse and navigate to the correct file.
3. In the editing window, select the post before which you want your new
post to appear.
4. Click New.
5. In the Open dialog box, navigate to your new post, select it, and click
Open.
2-8 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
6. (Optional) If you want to reorder the list of posts, use the Cut and Paste
buttons.
When you paste a line, it is always inserted before a selected line in the
file.
2
The Edit button allows you to modify the path and file name of a post
entry in the list of available post processors. Use it only if you have
renamed or moved a post.
2-10 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
General
Parameters All machines
4-axis and 5-axis
Fourth Axis mills
Fifth Axis 5-axis mills
2-12 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
General parameters
The following options are available for all machine types.
Home Position
This defines the default FROM position if you have not specified a FROM
position.
2-14 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
Axis Multiplier
Use Axis Multiplier with diameter programming for mill-turn postprocessors. 2
Diameter Programming
Use Diameter Programming to multiply the X and I words by two, so that
they represent diameter instead of radius.
Mirror X axis
Use Mirror X axis to program your part in the fourth quadrant and output it
in the first quadrant. X and I words are multiplied by minus one.
Use Mirror Z axis to multiply the Z and K words by minus one.
2-16 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
Use the Program and Tool Path tab to create, modify, and customize of event
handlers.
The Program and Tool Path tab is divided into the following tabbed pages:
Program
Lets you create, modify, or customize program start sequences, operation
start sequences, tool path events including machine control events, motion
events, canned cycles events, operation end sequences and program end
sequences.
G Codes
Lets you specify G-codes throughout the postprocessor. Changing any
G-code in this list updates the G-code globally.
M Codes
Lets you specify M-codes throughout the postprocessor. Changing any
M-code in this list updates the M-code globally.
Word Summary
Lets you modify groups of words that have the same format, such as G17,
G18, and G19, or X, Y, and Z.
To specify a different format for only one word in a group, use the Format
tab on the NC Data Definitions tab.
The following parameters appear on the Word Summary tab:
Word
Contains the system’s symbol for the word. This name is the same
name that you find in the word address section of the N/C Data
Definitions section.
Leader/Code
Lets you modify the leader for any word. The leader is the character
than precedes the numeric information. For instance, if the word is
X12.345, then the leader is X. You can either type in a new leader or
2 right click on the existing leader and choose from the list.
Data Type
Lets you specify numeric or text. Usually NC code is numeric. Specify
text when the code you need cannot be formatted from a number
directly into a word address and a value. For example, if you need a
G84.1 for tapping and G81 (without a decimal) for drilling. In this case
you have to make the G_motion word text, and change all the G codes
to G81 as text, instead of the number 81 with G as the leader. You
can use the Format tab on the N/C Data Definitions tab to make the
change.
Plus (+)
Lets you output a plus sign for all positive numbers. If you set
this option to No you get an X1.0. If you set this to yes, you get an
X+1.0. You always get a minus sign for all numeric data if the specified
number is negative.
Lead Zero
Lets you define whether or not you output leading zeroes with your
N/C Code.
Integer
Controls the number of digits that are output to the left of the decimal
point. You get an error if your numeric data exceeds the format you
have specified.
Decimal (.)
Controls whether or not numeric data is output with a decimal
point. You get an error if you suppress the decimal point and do not
output at least leading or trailing zeroes.
2-18 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
Fraction
Determines how many digits are output to the right of the decimal
point.
Trail Zero 2
Lets you define whether or not you output trailing zeroes with your
N/C Code.
2-20 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
The content goes between the braces, and the last line shows the closing
brace:
}
Custom procedures are processed in the sequence where you place them.
Linked Posts
Lets you specify posts that can be linked to your current post. Linked
posts are used in situations where separate posts have been developed
for special machine options such as right angle milling heads, specialized
mill-turn centers, machining centers having more than two rotary axis or
any application that requires multiple Postprocessors.
You need to assign a HEAD UDE to the program or method group that
indicates the post to be used to process the head. There is a table where
you can specify a minor word after the HEAD command, or head name,
to identify the post.
Macro
Use this tab to create, edit, or remove block templates for making calls to
macro, cycle, or functions in the NC program.
2 The output codes are in the form of cycle or macro calls, such as
CYCLE81(...) for the Sinumerik 840D controller or CYCLE DEF 204 A200=...
for the Heidenhain iTNC530 controller, or other similar high level
function calls.
2-22 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
2-24 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
To use the trash bin, drag an unwanted block to the trash bin icon.
You can also delete the component by right-clicking it and choosing Delete.
You can neither add or delete event blocks. You can create user-defined events.
If you right-click the block component, a shortcut menu appears which allows
you to perform the following actions:
• Cut
• Copy As
• Paste
• Delete
2-26 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
NC Data Definitions
Use the NC Data Definitions tab to define output formats for NC data.
Words
Words are the basic unit of data. Words are typically, but not always, a letter
followed by one or more digits, for example, G01, X100.35, and M03 are typical
words. We refer to the initial letter as the word address.
You can select a word from a list by its group name and name. For example
G_motion®G01–Linear Move, X®X–X Coordinate, or M_Spindle®M03–CLW
Spindle Direction appear in lists. You can choose words from a tree diagram
by their name. For example, G_motion, X, and M_Spindle appear in the
word tree diagram.
Word names in Post Builder sometimes refer to several possible releated
controller words, for example, the following post words can identify several
ontroller words:
Blocks
The default cutcom_off block contains the single word G_cutcom – Cutcom
Off and outputs G40 by default.
2-28 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
Formats
Formats are also named and you can select a word format from a list or
a tree diagram.
There are many default named formats such as Coordinate, Digit_2, and 2
Tcode.
Block tab
Use the Block tab to create and edit blocks. When you create a new block on
this page, you are copying an existing block and editing it. You are limited
to copying a single existing block. If you need more than one block for your
2 function, you must create multiple blocks on the Program tab of the Program
& Tool Path tab.
• Copy an existing block on the Block tab of the N/C Data Definitions tab.
2-30 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
No Word Separator
When selected. omits the separator, for example a space character,
before the word.
Click the menu option to toggle it between selected and not selected.
P with the optional condition P with the optional and no word
turned on separator conditions turned on
Force Output
Available in blocks where output is not forced by the presence of the
word.
Delete
Removes the word from the block.
2-32 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
New Address
Select New Address from the list and drag Add Word to a block. The WORD:
user_add dialog box appears, where you can name the word, set the format,
and identify the expression for which your word reflects the value.
Text
Select the Text option from the list and drag Add Word to a block. The Text
Entry dialog box appears
Existing Words
Select the word that you want from the list.
When you choose an existing word the current value for the associated
variable is output. For example, if you choose X-Coordinate, the word is
output with the current X position in the format defined for the word.
You can specify a specific variable that you create using the User Defined
Expression option that is available in every word group.
Word tab
Use the Word tab to create and edit words.
A word is composed of an address leader, a number, or text and a trailer.
2 You have the same options for editing a word as you do within the event
or sequence dialogs.
To create a new word or word group, you must copy an existing word or word
group and edit the copy.
Format
You can specify the format for a selected word in the following ways.
• Select from the list of currently defined named formats
• Edit an existing format and verify that the change does not
compromise an existing word.
The green rectangle above the parameter input area shows a preview of
the output word formatting.
2-34 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
Leader Trailer
I=AC( )
J=AC( )
K=AC( )
Modal?
Select Yes for words that are modal. The word is output only if the value
of the expression changes. This is the default setting for all words.
Typically, modal words are for coordinate data, motion G codes, and so on.
Select No for words that must be output in every block in which the word
appears.
For example, the opstop event should always force an M01; the Modal?
option is set to No by default.
2 You can define the action when maximum or minimum value is exceeded
from the following:
Truncate
The maximum or minimum value is used instead of the value specified
in NX.
Warning
Warnings are output if one of the following is true:
• The Output Warnings postprocessing option in NX is set to Yes.
Warnings are output to a file with the base name of the output file,
and the suffix and extension warning.out.
For example, if the output file is my_part.ptp, the warning file is
my_part_warning.out.
There is no interactive warning in the NX session.
Abort
Postprocessing is aborted. An error message is output to the system
log file, Help®Log File.
The message may appear at the beginning of a lengthy trace, but you
can identify the beginning lines similar to the following:
*** IKS has been initialized ***
*** EXCEPTION: Error code 1745005 in line 560 of
o:\ugnx80\ip19\src\cams\no\ind\mom_post.c at
Tue Apr 19 11:45:16 2011 Eastern Daylight Time
+++ ADDRESS:F, Maximum is 600.000000,
this value is 619.685039
2-36 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
Format tab
Use the Format tab to create and edit formats. Post Builder comes with a
default set of formats that are applied to words in the default posts. You can
also change formats within the context of the words and blocks on several
other tabs where words are displayed.
Tree diagram
The tree diagram at the left of the Format tab shows the formats that
are defined in the current post. You can edit a format by selecting it in
the tree.
You can create a new format by selecting an existing format and clicking
Create. This gives you a new format exactly like the original, with _1
appended to the name.
You can rename, cut, and paste formats, with the exception that you
cannot cut a format that is in use.
Preview
The green area at the top of the format window shows a preview of the
selected format.
2
Data Type
Specifies the data type as numeric or text.
You should select numeric for all NC data except for certain G codes. For
instance, if your controller needs L instead of G01, R instead of G00, CW
instead of G02, and so on, then you can change the data type to text and
change all of the codes to the text that the controller recognizes. This is
the only case we have found where it is necessary to use a text format.
If you specify text, you no other formatting options available to you.
You should try text format only if you are familiar with this area.
2-38 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
Check boxes
The check boxes on the Format tab do what their names indicate. Some
examples follow. The number to be output is 53.1, and the spin boxes are
set to the 5.3 format.
Check boxes selected Output
2
Output Decimal Point (.) 53.1
Output Decimal Point (.)
+53.1
Output Leading Plus Sign (+)
Output Decimal Point (.)
00053.1
Output Leading Zeros
Output Decimal Point (.)
Output Leading Zeros 00053.100
Output Trailing Zeros
Output Leading Plus Sign (+)
Output Leading Zeros +00053100
Output Trailing Zeros
If none of the decimal point, leading zeros, or trailing zeros check boxes
is selected, you will get an error message. At least one of these must be
selected to assure that the output has a clear meaning.
When the output represents a decimal value between 1.000 and –1.000, then
the following formats are useful:
Zero_int Outputs integer numbers with leading zeros.
Zero_real Outputs decimal numbers with both leading and trailing
zeros.
2-40 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
• G81 – Drill
Only one word from a group can be active at any given time, because the
groups represent mutually exclusive moves. For example, a machine cannot
be moving in the G00 mode (rapid) while making a G01 move (linear feed)
simultaneously.
As a general rule, Post Builder supports all common M and G code groups. In
some instances however, certain machine tool and controller combinations
support functions that are unique and require custom M or G codes. Post
Builder allows you to create these new M or G code groups as shown in the
following activity.
2-42 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
• Formats
• Words
• Blocks
• Y-Coordinate
• Z-Coordinate
• Feed
• Speed
2-44 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
• gearbox_roughing.ptp
• gearbox_finish_milling.ptp
• gearbox_drilling.ptp
The behavior when the check box is selected is similar if groups have
subgroups below them.
Do not mix operations in groups with operations outside of
groups when the Generate Group Output check box is selected.
This causes unpredictable output.
You can use the name of the selected group or program in NX as the
program name in the Start of Program event. Access the name using
the variable mom_group_name.
Output Warning Messages
2 Outputs warnings to a warning log file when Output Warnings in the
NX Postprocess dialog box is set to its default value, Post Defined.
The system suffix and extension _warning.out are appended to the
base name of the NC output file, and the warnings file is in the same
directory as the NC output.
Display Verbose Error Messages
Displays detailed error messages if a Tcl error is encountered. If you
select the Display Verbose Error Messages check box when you are
debugging your post; you need not examine the NX log file for error
messages.
Because this option causes degradation in performance, use this
option only when you are debugging your post.
2-46 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
For example, if you select an event in the first list , the data
generated by the selected event is shown in the second list , and the
NC code generated for the selected event is highlighted in the third
list .
The listing at the top of the display shows you the selected event, or
the event that caused selected NC code .
2-48 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
2-50 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
When you select the Definitions tab you can browse the elements of the
definition file.
The Post Files Preview property page allows you to examine the Definition
file (.def) and the Event Handlers (.tcl) before output generation. Newly
defined code appears in the top window while the original code is displayed
in the bottom window.
2-52 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Build a postprocessor with Post Builder
• Verified the output of your Postprocessor using the Post Review Tool.
3 Units-only subposts
Purpose 3
This lesson describes the process for creating a subpost with units that are not
the default units of the main post. This subpost is called automatically by the
main post when you define the output in units other than the default units.
Objective
When you complete this lesson, you will be able to:
• Create an alternate units subpost.
3-2 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Units-only subposts
3-4 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Units-only subposts
• Linked a subpost to the main post of a family of posts that work together
to program a complex machine.
Purpose
Wire EDM machines have requirements that differ from mills and lathes.
This lesson describes the Post Builder options that are unique to creating a
post for a wire EDM.
4
Objective
After you complete this lesson, you will be able to:
• Use the Post Builder to build 2-axis or 4-axis Wire EDM postprocessors.
• 4-axis
After you make the selection of a 2-axis or 4-axis Wire EDM postprocessor,
you must specify the type of controller that you want. Your choices are:
Generic, Library, and User’s.
Generic
Uses generic options common to most machine tool controllers.
Library
Lets you select Agie, Charmilles and Mitsubishi controllers. These
templates contain the basic codes required for the most common wire
EDM codes such as threading, start and end of cut, and power settings.
User’s
Lets you select a post that you created previously as a template. Click
Browse to select the existing postprocessor.
4-2 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Post Builder for Wire EDM applications
4-4 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Post Builder for Wire EDM applications
Purpose
Mills with 4 and 5 axes have rotary heads, rotary tables, or a combination
of the two, that you must configure. This lesson describes the Post Builder
options that are needed to define 4th and 5th rotary axes.
Objective
After you complete of this lesson, you will be able to:
5
• Use Post Builder to build 4-axis and 5-axis mill postprocessors.
In the editing dialog box, on the Machine Tool tab, you can select General
Parameters, Fourth Axis and Fifth Axis parameters.
when you click Display Machine Tool, a generic machine tool of the type you
selected, which shows current axis limits, is displayed.
5-2 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Post Builder for 4-axis and 5-axis mills
There is a general restriction in Post Builder that the C axis (XY plane)
cannot be the 4th axis of a 5-axis machine tool.
In order to get the correct output for a dual head rotary 5-axis machine
tool with a B-axis in the ZX plane attached to a C-axis in the XY plane,
you must define the fourth axis as B in the ZX plane, and the fifth axis
as C in the XY plane. The machine tool display function will not work
correctly for this configuration; however, the NC program output will
be correct.
Axis Rotation
Defines whether the axis rotates according to the right-hand rule. The
rule states that when you hold your right hand with the thumb pointing
in the positive direction of the rotation axis, the fingers curl in the positive
direction of rotation.
Normal is the default option.
Select Reverse if your table does not rotate according to the right-hand
rule.
For example, if you get B90 output when you require B–90, you may need to
select Reverse. As always, test the post thoroughly.
Axis Direction
Defines how the rotary table determines whether to rotate clockwise or
counterclockwise.
Magnitude Determines Direction
Rotation to a larger angle is always clockwise and rotation to a smaller
angle is always counter clockwise.
5 B–90and B90 cause rotation to different positions that are 180 degrees
apart on the rotary axis.
Typically, the travel limits on this type of table are more than 360
degrees, for example, –9999 to 9999.
Sign Determines Direction
The sign determines only the direction of rotation.
B90 and B–90 cause rotation to the same position on the rotary table.
When you program B90, the table rotates clockwise from its current
location to 90 degrees. When you program B–90, the table rotates
counterclockwise from its current location to 90 degrees.
Typically, the limits on this table are from 0 to 360.
• 340 degrees for the minimum and 20 degrees for the maximum.
5-4 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Post Builder for 4-axis and 5-axis mills
5-6 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Post Builder for 4-axis and 5-axis mills
Pivot Distance
Sets the distance from the head or table rotation pivot point to the spindle
gage point.
This option is not valid for the dual rotary type five-axis machine tool.
You can specify this value in either the fourth axis or the fifth axis dialog
box; however, there is only one pivot distance on the machine tool.
Axis Limit Violation Handling
Warning
Outputs a warning to the listing file or warning file, if one or both
options are active. No corrective action is taken.
Enable warning output on the Output Settings®Other Options tab.
Enable listing output on the Output Settings®Listing File tab.
Retract/Re-Engage
• Retracts to clearance cylinder or sphere.
User Defined
Lets you click Handler to specify a block with appropriate words or
custom commands to execute when a rotary axis limit violation occurs.
Linearization Interpolation
Lets you specify the default linearization tolerance. The tool path is
broken into moves that are within the specified tolerance. By default,
linearization is set to off.
Combined rotary and linear motion causes the motion to deviate from the
desired straight line move. To activate linearization for four-axis and
five-axis milling machines, you can use the post command LINTOL in NX.
Under Machine Control, create a start of path event, User Defined. The
syntax for this command is as follows:
5 LINTOL/ [ON | OFF | n]
5-8 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Post Builder for 4-axis and 5-axis mills
5-10 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Lesson
Purpose
Lathes have requirements that differ from mills and wire EDM machine tools.
This lesson describes the Post Builder options that are unique to building
postprocessors for 2-axis lathes.
Objective
After you complete this lesson, you will be able to:
• Use Post Builder to build 2-axis lathe postprocessors.
Currently, you can create only one type of lathe postprocessor using Post
Builder:
• 2-Axis
In the editing dialog box, on the Machine Tool tab, when you select General
Parameters, you see options that are shared by all types of machines, and
options that are unique to lathes.
6-2 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Post Builder for lathe applications
• A G92 block with each tool change to take into account the change
in offsets.
Turret Reference
Makes the X-values and Z-values in your NC output file represent the
turret reference location, similar to the method for milling machine
programs.
Turret 6
Defines whether you have one or two turrets.
One Turret
The default option.
Two Turrets
Currently, when you select this option, the turrets must be a fixed
distant apart and may not move independently.
becomes available when you select Two Turrets.
Configure
Available when you select Two Turrets.
You must select the names of the two turrets from lists of recognized
names, and you must specify the X-distance and Z-distance between
them. The postprocessor adds the offset values to the X-axis and
Z-axis coordinates when the secondary turret is used. The distance
must be measured from the primary turret to the secondary turret.
Axis Multipliers
Specifies that the machine requires diameter programming. You can also
use it if your shop practice is to use diameter programming.
Diameter Programming
Outputs the X-word as a diameter. When you select 2X, then 2I
becomes available. Select 2I if your machine also requires the I-value
to be multiplied by two.
Mirror Output
Lets you program your part in other quadrants and output in the
first, or positive, quadrant.
Select the combination of X, I, Z, and K multipliers that you require.
For each word selected, the corresponding value is multiplied by
negative one in the output.
6-4 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Post Builder for lathe applications
6-6 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Lesson
Purpose
This lesson describes the procedures required to build mill-turn
postprocessors through the use of Post Builder.
Objective
When you complete this lesson, you will be able to:
• Construct a postprocessor for a mill-turn machine.
2. Save the 2-axis lathe post using one of the following options:
• Save it as lathe_tool_tip in the folder where you intend to create your
mill-turn post.
4. In the mill post, on the Machine Tool tab, on the General Parameters
page, under Machine Mode, do one of the following:
• If you saved the 2-axis lathe post as lathe_tool_tip in the folder where
you intend to save your mill-turn post, select XZC Mill to automatically
use the lathe_tool_tip post.
5. Complete your mill post and save it to the folder where you saved your
lathe post.
7. Make sure that all the lathe tool paths are in the MCS_SPINDLE group
object.
7
8. Make sure that all the mill tool paths are in the MCS_MILL group object.
7-2 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Create Mill-Turn postprocessors
2. Create a milling post in the common folder, and in the Create New Post
Processor dialog box, under Machine Tool, select 3-Axis Mill-Turn (XZC).
This is your main post. Select it from the list of postprocessors in NX
when you are posting programs for your mill-turn center.
3. In the mill-turn post, on the Program & Tool Path tab, on the Linked
Posts tab, select the Link Other Posts to This Post check box.
In the Linked Posts dialog box, the Post contains this_post. You must
supply a name to reference the current post in the NX HEAD event.
4. In the Linked Posts dialog box, in the Head box, enter a name for the
head used in the main post.
Use a name that is meaningful to both you and your users. For example, if
the main post moves primarily in the Z-axis, call it ZHEAD.
Always use uppercase letters for head names in your post and
in NX. Tcl is case sensitive, so a standard practice of using only
7 uppercase letters avoids issues with inconsistent naming.
c. In the Select a file dialog box, from the common folder, select one of
your posts for other heads on the machine and click OK.
7-4 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Create Mill-Turn postprocessors
d. In the Linked Post dialog box, in the Head box, enter a meaningful
name for the head that corresponds to the post that you specified.
For example, you could call it XHEAD or TURN.
9. In NX, open a part with a suitable test program that uses all of the heads
on your machine tool.
10. In the Method view of the Operation Navigator, create methods that
correspond with the available head posts.
For example, you can create methods for turning, X-head milling, X-head
drilling, Z-head milling, and so on.
11. Drag operations from the Unused Items folder to your methods.
b. In the User Defined Events dialog box, from the Events Available list,
e. In the Name box, enter the name of the head exactly as you specified it
in the main post under Linked Posts.
f. Click OK.
13. Postprocess your test program and verify whether all output is correct.
7-6 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Create Mill-Turn postprocessors
Purpose
This lesson describes the basics of the Tcl scripting language that is used by
existing NX Post and Post Builder programs, within postprocessors that you
create, and for customizing that you perform.
Objectives
After you complete this lesson, you will be able to:
• Interpret the syntax and basic structures of Tcl.
Tcl
Tcl is public domain software. The Tcl source and a link to a provider of the
compiled executable is available at tcl.sourceforge.net. Tcl stands for tool
command language. Tcl is an interpreted language, that is, a Tcl script is
interpreted at run time by a Tcl interpreter. The difference between Tcl and a
compiled language such as C or GRIP is that you can make changes to the
scripts and test them without having compile your code.
In NX CAM, you use Tcl for procedures in NX Post, Process Assistants, Shop
Documentation, the internal CLSF, and Post Builder. You also use Tcl to
create the following:
• User-defined event handlers
• User-supplied rules
Tcl has an extension called Tk, which stands for tool kit. Tk provides user
graphic interface elements such as buttons, check boxes, and scroll bars.
You can open a Tk window by running the program ugwish.exe in the
\mach\auxiliary directory.
Although Post Builder 8.0.0.4 uses Tcl 8.4.19 internally, NX Post uses
an older version. Siemens PLM Software recommends that you follow
the 8.0.5 syntax to maintain compatibility with NX Post.
8-2 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
Command arguments
Command options
Options are used with some commands to give the interpreter detailed
instructions of the task that the command must perform. Options begin with
the ‘–’ character.
For example, glob -nocomplain *.ini consists of:
The command glob, which instructs the interpreter to match patterns using
the standard file name wild card format.
The argument *.ini, which matches any text string that ends with .ini.
The effect of the command, when used in the correct context, is to identify
all file names that have the extension .ini.
Words
Tcl command strings are divided into words. By default, white space
characters divide strings of text characters into words.
In your programs, you often group words and white space with brackets or
braces to create words that consist of two or more other words. Brackets and
braces have different meanings to the interpreter. Braces prevent variable
substation from taking place on their content.
8-4 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
Tcl variables
Variables
A variable can be thought of as a named place holder for information. In
many languages other than Tcl, variables must have a declared type, such
as numbers or strings of text characters. In these languages, in order to set
aside the right amount of memory to hold a value of the corresponding type,
you must declare variables before you use them.
Tcl variables always hold text. You need not declare a Tcl variable before
you use it.
The only declaration statement in Tcl is used to set the scope of a variable,
or whether the variable is known throughout the entire program, or only
within the procedure that contains it.
Variable names
A Tcl variable name must start with an alphabetic character and can consist
of alphanumeric characters and the underscore. Variable names are case
sensitive. For example, the following are all different variables.:
X
x
this_is_a_Variable
pre_drill
PRE_DRILL
mom_head_name
8-6 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
Value of variables
When you execute the set command at the Tcl command prompt % to create
or modify a variable, the interpreter responds with the value that is stored in
the program memomry. For example:
% set X 10.5
10.5
% set mom_sys_debug_mode OFF
OFF
At the command prompt, you can use the set command with only one
argument, a variable name, to see the current value. In the following
command line example, we use set to define a variable X, and then use set to
find the current value of X:
% set x 10.5
10.5
% set x
10.5
The unset command removes a variable from your program. The command
prompt returns nothing if the command is successful, but there is an error
message if there is no such variable.
% set pi 3.1415926535897932384626433832795
3.1415926535897932384626433832795
% unset pi
% set pi
can’t read "pi": no such variable
% unset fred
can’t unset "fred": no such variable
Scope of variables
In Tcl, the scope of variables can be either local or global.
A local variable is a variable that is recognized only in the procedure in which
it is declared. When the procedure ends, its local variables are removed.
In Tcl, a procedure is the equivalent of a subroutine or function in other
programming languages.
A global variable persists through the life of the program, outside of any
procedures. You can access the value of a global variable between calls to a
procedure, or share it among multiple procedures. The following shows the
method to set the scope of a variable to global:
global cycle_name
8-8 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
Arrays of variables
You can define variable arrays in Tcl.
Example:
• mom_pos(0) can have a value of 12.4567.
In Tcl arrays, the values and the indices are character strings. In the last
example, mom_pos(Xstr), the character string Xstr is the index.
By convention, in Post Builder, array members use the numbers 0, 1, 2, and
so on as index strings . For example, mom_pos(0) stores an X-coordinate,
mom_pos(1) stores a Y-coordinate, and mom_pos(2) stores a Z-coordinate.
To define an array, you must place an index in parentheses after the variable
name:
% set myarray(0) 3.14
3.14
% set myarray(one) SomeValue
SomeValue
To obtain all indices and corresponding values in an array, you must use the
array get command:
The output of the array get command is a series of text strings separated by
spaces. Each array index is followed by the value of the corresponding array
element. You can interpret the example output as follows:
• The first character string, 0, is the first index.
After you undefine an array, the array get command used on the undefined
array does not return a list, and it does not cause an error.
The interpreter makes exactly one substitution pass before any interpretation
takes place. After the substitution, the example command is interpreted as:
set ang [expr atan2(0.5,0.866)]
The value of the variable named x is substituted for $x, and the value of the
variable named y is substituted for $y.
The example also shows one of many built-in math functions that are
arguments to expr, atan2(y,x). Because Tcl does not work with math and
numbers directly, if you try to use arguments to the expr command without
expr, you get an error like the following:
% atan2($y,$x)
invalid command name "atan2(0.5,0.86602540378)"
The atan2 function and many other functions that work with angles accept
and return values in radian measure.
You can define variables to hold radian conversion factors. Post Builder
handles conversion between degrees and radians with the following code:
% set RAD2DEG [expr 90.0 / asin(1.0)]
57.2957795131
% set DEG2RAD [expr asin(1.0) / 90.0]
8 0.0174532925199
Thus, to obtain the value of the previous example in degrees, you could write:
set ang [expr atan2($y,$x) * $RAD2DEG]
30.0007277808
8-10 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
Note that when a command expects a variable name, you do not use a dollar
sign. It would be a mistake to use $x in the preceding example.
If you attempt to use an undefined variable in an executing program, you
get a run-time error.
In Tcl you can use the info command to check many things by giving it
different arguments. To check whether a variable exists, use the command
info exists follwed by the name of a variable. You must not use a dollar
sign in front of the variable name.
% set pi 3.14
3.14
% info exists pi
1
unset pi
% info exists pi
0
The first argument to if is the pair of commands in the first braces. The
result of the command in the brackets is compared to 1. If the command
evaluates to anything but 1, the comparison returns 0, a logical false, and
the second argument, a block of code in braces, is ignored. If the command
evaluates to 1, then the comparison returns 1, a logical true, the next
argument, a block of code in braces, is executed.
8-12 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
• You can use the backslash before the dollar sign to avoid getting an error
message when you want to output a dollar sign.
% puts "The cost is $100"
can’t read "100": no such variable
% puts "The cost is \$100"
The cost is $100
There are other special characters that require the escape character to give
them their special meaning. In many languages, these character strings
are called escape sequences.
Character Meaning in output
\n newline
\t tab
Examples:
% puts stdout "\tFred"
Fred
% puts stdout "Tab\tSeparated"
Tab Separated
% puts stdout "High\nLow"
High
Low
% puts stdout "\"Quoted\""
"Quoted"
% puts stdout "\$100"
8 $100
8-14 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
Examples
Spaces around th eoperators are neither required nor meaningful, but they
make your code easier to read
% expr 1+2
3
% expr 1 + 2
3
As with other languages, you can group operands with parentheses to control
the order of arithmetic operations, and to make you intention clear to anyone
who reads your code:
% expr (1 + 2) * 5
8
15
% expr 2 * (3 + 1)
8
• The number to the left of the decimal sets the minimum field width of the
output, including the decimal point.
• The number to the right of the decimal sets the number of decimal places
to show. The field is padded with zeros as necessary.
• A space character after the % inserts a blank space to the left of the output.
• A zero after the % pads the output with zeros on the left.
The number before the decimal refers to the minimum field width.
Remember, in Post Builder, variables named RAD2DEG and DEG2RAD are defined
and available to you.
8-16 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
Tcl scripts
A Tcl script consists of a sequence of commands separated by either a "new
line" or a semicolon.
Comments are preceded by the "#". The following example illustrates the use
of a comment and the concept of a script:
Lines in scripts
set mom_pos(0) 12.4
set mom_pos(1) 28.3
set mom_pos(2) 0
is the same as
set mom_pos(0) 12.4; set mom_pos(1) 28.3; set mom_pos(2) 0
Comments in scripts
In the example, the lines beginning with # are comments. The Tcl interpreter
ignores comments except when they contain curly braces. Curly braces in
comments are counted for matching pairs of braces. This makes it awkward
to comment out sections of code for testing and debugging. You can work
around this issue with the if command. To do this, construct code similar
to the following:
8 # example showing how to comment out lines in a script
if {0} {
# code between the braces is never executed!
}
You can use the ; (semicolon) and the # (pound or number sign) characters
together to add a comment on the same line as a command.
set mom_pos(0) 12.4; # set the X coordinate
8-18 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
Tcl procedures
Procedures in Tcl are sets of commands that are analogous to subroutines in
other languages.
You can use common procedures throughout your programs. This makes it
easier to create and modify programs.
The following example illustrates the structure of a procedure:
proc procedureName {arg1 arg2 arg3 ...} {body}
If there is only one argument, you can omit the braces around the argument
list:
proc procedureName argument {body}
When you define a procedure in Post Builder, proc is inserted , the standard
prefix PB_CMD_ is added to the name automatically , and the braces around
the body are placed for you . The brace placement is styled for legibility.
The white spaces adjacent to braces are critical. If you omit a space,
your program crashes and you might get one of the following messages:
• No white space between first pair of braces:
proc TEST {} ( puts "testing 1 2 3" }
wrong # args: should be "proc name args body"
or
proc TEST { } (puts testing}
wrong # args: should be "proc name args body"
Use capital letters when you name procedures. Capitals, whether used
for the entire name or for the first word, make procedure names easier
to locate in scripts.
Use lowercase for variable names, so that you can easily distinguish
variables from procedures.
For example, in Post Builder, MOM_set_csys is a procedure, and
mom_csys_matrix is a variable.
In the command:
proc HI {} (puts "Hello World!"}
8
proc is the command to define a procedure.
HI is the name of the procedure.
There are no arguments.
Testing at the Tcl command prompt, you see the following:
% proc HI {} (puts "Hello World!"}
% HI
Hello World!
%
8-20 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
A procedure can have one or more arguments, and procedures return the
value of the last command they execute. For example:
% proc MULT {a b} {puts stdout "$a times $b equals [expr $a * $b]}
% MULT 3 4
3 times 4 equals 12
%
You can provide default values for variables by grouping the variable and the
default value in braces. For example:
% proc ECHO {{word "nothing to echo"}} {puts $word}
% ECHO fred
fred
% ECHO
nothing to echo
8-22 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
puts
The puts command places its argument as a string of text to stdout, which is
usually the command window. The puts command has the following general
format:
puts [channel] string
gets
The gets command reads a string of text from the keyboard that the user
terminates by pressing the Enter key. The terminating Enter character is not
kept and not counted. The gets command assigns the input to the specified
variable, and returns the number of characters it reads, not counting the
enter key.
% gets stdin title
King
4
% gets stdin name
8 Charles III
11
% puts stdout [concat $title $name]
King Charles III
8-24 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
You can follow the puts command with a gets command to prompt the user to
enter text on the same line as your prompt.
Example script:
# myio.tcl
proc MyIO {} {
global name; # make $name known outside this procedure
puts -nonewline stdout \
"Please enter your name: "; # issues the prompt
flush stdout; # required to output the incomplete line
gets stdin name; # accepts user typing until they press Enter
puts "Hello, $name"; # issues a personal greeting
}
source
The source command is another form of I/O. It reads a file into the current Tcl
session or program. It is used frequently in Post Builder. For example, near
the beginning of your posts, you see the source command used to retrieve a
library of standard procedures:
source ${cam_post_dir}ugpost_base.tcl
The following example shows a command prompt session to read and use
the procedure that is defined in the example for combining puts and gets in
a script:
% source myio.tcl; # reads procedure into session
% unset name; # make certain that name does not exist
% MyIO; # executes the procedure
Please enter your name: Shengmin 8
Hello, Shengmin
format
The format command lets you control the format in which output is written.
For example, you can control the number of decimal places, field width,
scientific notation, and so on. The general format for the command is:
format specification value1 value2 ...
• The 1 sets the minimum field width for the output — we have several
characters, so the 1 does nothing in this case.
8-26 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
• The first 0 instructs the command to pad the output field to the left with
zeros, if necessary.
• The 10 sets the minimum field width for the output at ten characters,
including the decimal point and the decimal digits.
The interpreter does its one round of variable substitution before it analyzes
the format string. You can place format specifications in variables and use
the variables in the format specification.
% set myFormat %10.5f
%10.5f
# The % in the previous line is not the prompt;
# it is part of the value returned by the format statement.
% format $myFormat $PI
3.14159
# Notice the leading spaces.
# The field is 10 characters wide.
Please refer to the Tcl documentation for the complete list of formatting
capabilities and the corresponding specifications.
scan
The scan command lets you format text input to your specifications. When
you read a line of text from stdin, or from a file, you often want to set one or
more variables. The general format of the scan command is:
scan text_string format_specifcation var 1 var2 ...
• s — the input field consists of all the characters up to the next white-space
character.
Please refer to the Tcl documentation for the complete list of formatting
capabilities and the corresponding specifications.
The scan command returns the number of matches it makes from an input
string:
% scan "abc" %s result
1
% set result
abc
8-28 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
The following example matches a string, anything but a space character, the
letters "r e n b u m" in any order, and an integer, and sets four variables:
% scan $claim {%s %[^ ] %[renbum] %d} a b c d
4
% set a
NX
% set b
is
% set c
number
% set d
1
• Delete files
I/O channels
In file management, you use I/O channels that you create to communicate
with files. The channel is called a file identifier, and you store it in a variable.
You can use the variable in the same context as you would use stdout, stdin,
or stderr.
Refer to Tcl documentation for a more advanced type of channel that is
beyond the scope of this class.
file exists
Use the file exists command to check whether a file exists before you
attempt to work with it.
Command line example:
% file exists tclsh.exe
1
% file exists "nonexistent_file"
8 0
Program example:
if { [file exists "$result_file"]==1 } {
# work with the file named by $result_file
}
open
The open command opens a file and returns an identifier. The general format
for the command is:
open filename access permissions
8-30 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
filename
Identifies an existing file. Include the full operating system path if the
file is not in the current directory.
access
Describes the type of access of which the channel is capable. Unless
otherwise specified, the file must exist. The following are the standard
flags for access. Advanced users may use the POSIX access flags, not
described here.
r Opens the file for reading.
r+ Opens the file for reading and writing.
w Opens the file for writing. Truncate the file if it exists.
Create it if it does not exist.
w+ Opens the file for reading and writing. Truncate the
file if it exists. Create it if it does not exist.
a Opens the file to append data. Data written is
appended to the end of the file.
a+ Opens the file for reading and to append data. Data
written is appended to the end of the file.
permissions
This argument applies only to Linux systems. Use the format described in
the man pages for the chmod command.
The following example from a Post Builder post shows a results file being
opened for reading:
if { [file exists "$result_file"] } {
set fid [open "$result_file" r]
# work with the file
}
close
Use the close command with a file identifier to close an I/O stream.
close $fid
puts
Use the puts command without options to write a line of output and a newline
character to a file that is open for writing.
puts $fid $myString
You can force output without a newline character using the -nonewline option
before the first argument.
puts —nonewline $fid $myString
% set fid [open testfile.txt w]
file 1c7d770
% puts $fid "My name is Fred."
% puts -nonewline $fid "I write "
% puts $fid "postprocessors."
% close $fid
% set fid [open "testfile.txt" r]
file1c7d7e8
8 % read $fid
My name is Fred.
I write postprocessors.
gets
Use the gets command to read a line of input from a file that is open for
reading and discard the trailing newline character. Successive use of the gets
command reads the file line by line. There are subtleties to distinguishing
between blank lines and the end of file when gets is used with only one
argument. In this introduction the examples have two arguments:
gets $channel line
8-32 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
read
The read command can be more efficient that gets because it returns a block
of data, which is often all of the remaining data in the specified file.
If you do not use any options, read returns all of the data remaining in the
file, formatted in the same way as it is in the file.
You can use one of the following options, but you cannot combine them.
read —nonewline file_id
The –nonewline option discards trailing newline characters in each line
of text.
read file_id numchars
The numchars argument is an integer number. It modifies the read
command to read the specified number of number of characters, or to
the end of the file if there are not the specified number of characters
remaining. For example, read $fid 80 reads 80 characters from the file
identified by $fid.
8
split
The split command splits a text string into a Tcl list. The basic syntax is:
split string split_characters
The string specified by the first argument is divided into a list element
at every character in the specified splitting characters. A single splitting
character is not enclosed in double quotes; however, several characters must
be enclosed in double quotes. The splitting characters are discarded, and
braces are inserted as needed.
% split "my.long.file.name" .
my long file name
% split "Aqlittlebpuzzlecfordyou" "qbcd"
A little puzzle for you
You can specify a null splitting character set to divide a string into characters:
% split "Hello, world!" {}
H e l l o , { } w o r l d !
Note that the space character is grouped inside braces in the output. The
split command groups any word that contains spaces within braces.
When the string being split is the contents of a file, for example, a big string
returned by the basic read command, the special character \n, the newline
character, is used to split the lines into list words:
foreach line [split [read $fid] \n] (
# do something with $line
}
8-34 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
file extension Returns all of the characters in the text string filename
filename after and including the last dot in the last element of
filename. Elements are strings separated by the / (slash)
character. If there is no dot in the last element of filename
then an empty string is returned.
% file extension "tclsh.exe"
.exe
% set fid [open "fred" w]
file1bc7bd8
% file exists fred
1
% set myext [file extension fred]
% info exists myext
1
% string length $myext
0
file normalize Removes all relative path characters the text string
filename filename and returns the full operating system path to the
file identified by filename. On Windows, the backslash in
the path is replaced by the forward slash.
% file normalize "./tclsh.exe"
C:/Tcl/bin/tclsh.exe
file size Returns a decimal string giving the size of the file
filename identified by filename in bytes. If the identified file does
not exist or if the size of the identified file cannot be
queried, an error occurs.
% file size "tclsh.exe"
20480
See the Tcl documentation for a list of the many other arguments that you
can use with the file command.
8-36 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
string length str Returns the number of characters in the string str. In
UTF-8 encoding, characters may require two or three
bytes. This explains why string bytelength str is also
available.
% string length "abcdef"
6
% set str abcdef
abcdef
% string length $str
6
% string length abcdef
6
string range str Returns the range of characters in the string between the
first last first and last integer indices. This is the Tcl equivalent
of the substring command in other languages. No error
occurs if last is greater than the last valid index.
% set home "G28 G91 X0 Y0 Z0"
G28 G91 X0 Y0 Z0
% string range $home 0 6
G28 G91
% set newHome [concat [string range $home 0 6] \
[string range $home 13 15]]
G28 G91 Z0
string trim str Removes all whitespace characters from the beginning
and end of str. The trim argument is useful to get rid of
unwanted spaces, tabs, and so on from user input.
% set bulky "\t abc \t"
abc
% string length $bulky
11
% set slim [string trim $bulky]
abc
% string length $slim
3
string trim str Removes any or all of the specified characters if they
characters appear in any order at the beginning or end of str.
% string trim ababcdebaba ab
cde
string trimleft Work like string trim except that they remove whitespace
str and string or optional characters only from the left or right of the
trimright str string.
8 These commands are useful when string trim removes
characters that you want to keep:
% string trim "N3670 G01 X100.35 Y50.10 F100" "N 0123456789"
G01 X100.35 Y50.10 F
8-38 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
string is double There are several similar commands to see what kind
and string is of value is represented by a string. Arguments include
double —strict alpha, boolean, false, true, and several more.
8-40 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
if then else
The branching structure uses the following general command formats.
if example:
if {test} {
# commands to execute if the test result is true
}
if else example:
if {test} {
# commands to execute if the test result is true
} else {
# commands to execute if the test result is false
}
The then command is optional in Tcl. If the test is a long string of code, use
then to make your code easier to read.
if {long test statement, perhaps more than 1 line}
then {
# commands to execute if the test returns true
}
The white space around the braces in if commands is critical, but not as
critical is it is with procedure syntax. You must place white space after a 8
closing brace. The error message is extra characters after close-brace. The
constructions } else { and } elseif { must be on the same line of code, and
spaced. Error messages include invalid command name else{ and invalid
command name elseif{.
You can combine logical statements with the following logical operators:
Tcl Operator Logical meaning
&& and
|| or
8-42 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
switch
Use the switch command when you have a series of branching tests against
the same variable. The switch code is easier to read than a long series of
if, elseif, elseif, else commands.
Programming example:
switch $mom_rotation_mode {
NONE {
set angle $mom_rotation_angle
set mode 0
}
ATANGLE {
set angle $mom_rotation_angle
set mode 0
}
ABSOLUTE {
set angle $mom_rotation_angle
set mode 1
}
INCREMENTAL {
set angle [expr $mom_pos($axis) + $mom_rotation_angle]
set mode 0
}
}
There are no examples of the switch options here because the options are part
of advanced applications based on pattern matching.
while
The Tcl while command has the following general format:
while test commandBody
Program example:
while {[expr $a4-$mom_kin_4th_axis_min_limit] > 360.0} {
set a4 [expr $a4-360.0]
}
If the variable a4 is larger than 360, this loop executes, subtracting 360 from
a4 on each iteration, until a4 is less than 360. Note that if a4 is ever exactly
360, the loop is going to execute one last time, because the test comparison
operator is < (less than), and not <= (less than or equal to).
The loop executes until the test is no longer true. You must do something in
the loop to update the test criteria, or the loop will never end.
while {1 == 1} {
# loop never exits, unless you use a break command.
}
You must make sure the test can be true, or the command body is never
executed.
while {1 == 0} {
# never executed because the test is always false.
}
incr
Use the incr command to update a loop counter variable by adding 1 to the
value of the variable.
Command line example:
% set i 0
0
% incr i
1
8 % incr i
2
Note that the incr command expects the name of a variable as an argument.
You do not use the $ prefix.
for
The for command combines setting an initial loop test variable, specifying
the test, and updating the test variable in one compact statement. The
general format is:
for {start} {test} {next} { commandBody }
8-44 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
The steps are executed in the following order: start, test, commandBody, next,
test, commandBody, next, test, commandBody, and so on.
Program example:
for {set i 0} {$i < $n} {incr i} {
set v2($i) $v1($i)
}
}
In the example:
• The start condition sets a loop counter variable, i, to zero.
• Within the body of the loop, the value of i is used as an index into arrays
v1and v2.
The net result of the example loop is that the first n elements, specified by $n,
of array v1 are copied to array v2. The values of i range from 0 to n–1. This is
typical coding for arrays that start with index 0. When i is equal to n, the test
fails and the program moves on the next line after the loop body.
foreach
Use the foreach command to set one or more variables to values specified in
a list of values, using each value in turn as the loop body executes. This
might be considered as an intermediate-level programming method; however,
you will encounter it frequently in postprocessors. The basic syntax for only
one variable is:
foreach variable {list} {commandbody}
Program example:
foreach address $address_list {
catch {MOM_set_address_format $address AbsCoord_mm}
}
Command line example to work with pairs of array indices and values:
% #preparation
% set inp(x) 1.234
1.234
% set inp(y) 2.345
2.345
% set inp(z) 3.456
3.456
% result demonstration
% array get inp
x 1.234 y 2.345 z 3.456
% example of foreach (on two lines):
% foreach {index value} [array get inp] \
{ puts "Element index $index is $value" }
Element index x is 1.234
Element index y is 2.345
Element index z is 3.456
A search of Tcl programs in the NX 8 Post Builder folders did not reveal any
examples of intermediate-level or advanced-level uses of foreach.
At the most advanced level, the foreach command can interpret multiple
pairs of variable and value lists. The command iterates until all variables are
used from all variable lists.
break
You can gain additional control over your while, for, and foreach program
loops with the break and continue commands.
Use the break command to exit immediately from the loop that contains it.
8-46 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
In the following program example from ugpost_base.tcl, the for loop iterates
through pairs of vector components from vector u, the vector being tested,
to the corresponding components of vector v, a zero vector defined early in
the procedure. Inside the loop, if any element of u is within an optional
tolerance of vector v, the return value is_equal is set to 0, or false, and the
break statement is executed, stopping any further testing.
# VEC3_is_zero(u,tol) (|| u || < tol) Is vector zero?
proc VEC3_is_zero {u} {
upvar $u u1
set v1(0) 0.0 ; set v1(1) 0.0 ; set v1(2) 0.0
set is_equal 1
for {set ii 0} {$ii < 3} {incr ii} {
if {![EQ_is_equal $u1($ii) $v1($ii)]} {
set is_equal 0
break
}
}
return $is_equal
}
More explanations:
The value of is_equal is set to one, or true, before the loop, so that true is
returned if nothing happens to change it. This ensures that the procedure
returns a defined value.
The upvar command, in the basic form shown here, lets you associate a
variable name in the calling procedure with a local variable. The variable
named $u, an array of vector components in the calling procedure, is
associated with the variable u1 in the VEC3_is_zero procedure.
The procedure EQ_is_equal is one of a family of procedures in Post Builder that
compare numeric values within a tolerance. For example, the Tcl operator = =
would do a string comparison of 1.99999999999 and 2.0 and report that they
are not equal. EQ_is_equal compares within a default or specified tolerance,
and reports that as far as the postprocessor is concerned, the numbers are
close enough to be considered equal.
continue 8
Use the continue command to skip the rest of the current loop iteration, and
jump to the next iteration of the loop that contains the continue command.
The syntax, in context of a dummy loop, is shown in the following:
for {start} {test} {next} {
# do some processing for current loop variable
...# test something
if [test] {
# skip further processing, jump to next
continue
}
# further processing for current loop variable value
exit
Use the exit command to stop the execution of your program. Advanced users
may include an optional error code.
# test something
if [test] {
# stop the program
exit
if [another test] {
# end the program with an error code
exit 2
}
8-48 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
Regular expressions
Regular expressions are a pattern matching syntax common to many
languages that have their origins in Unix.
Regular expressions use their own syntax to match patterns in character
strings. In your postprocessing, you might find uses for regular expressions in
advanced uses of the switch command, the regexp command, and the regsub
command.
For complete information on regular expressions, see Practical Programming
in Tcl and Tk.
8-50 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
regexp
Use regexp to determine whether a pattern can be matched in a string. The
command returns 1, or true, if the pattern is found, and 0, or false, if it
is not found.
The syntax common in ugpost_base.tcl is as follows:
regexp {matchPattern} stringToSearch
The match patterns are simple literal strings so the programmer was not
forced to use curly braces around MOM_lintol; however, it is a good idea to use
the braces in your code at all times, to help you to develop safe programming
habits.
The return value of regexp is compared to 1. If the pattern is present in the
string represented by $mom_warning_info, regexp returns 1, the test returns
true, and the body of the if command is executed. The body of the if command
is the return command, which ends the procedure that contains the example
code and returns the program flow to the next line of the calling procedure.
regsub
Use the regsub command to substitute a specified set of characters for a
match pattern found in a string. For example, in a very simple application,
you could use it to exchange the slash and backslash characters in a file path
specification. The general format is:
regsub —options {matchPattern} stringToSearch stringToSubstitute variableName
The most common option is -all, which causes every match for matchPattern
to be replaced by stringToSubstitute. Without -all, only the first instance of
the match would be replaced.
Command line example:
% regsub {[\\]} "C:\\tcl\\bin\\tclsh.exe" "/" myOutput
1
% set myOutput
C:/tcl\bin\tclsh.exe
% regsub -all {[\\]} "C:\\tcl\\bin\\tclsh.exe" "/" myOutput
2
% set myOutput
C:/tcl/bin/tclsh.exe
The effect of the two lines is to substitute all control-in and control-out
characters in $text_string with the control-in and control-out characters that
the controller requires. The string being searched and the output string can
be referenced by the same variable name.
8-52 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
Tcl and NX
Extensions of Tcl were developed for specific applications such as NX Post,
Shop Documentation, Process Assistants, Libraries and User Defined
Features.
Tcl can call NX Open routines, formerly called user function or UFUNC, and
NX Open routines can call GRIP routines. Tcl is easy to use and is extensible
using the C language.
You can access Tcl code through CAM modules such as NX Post or Shop
Documentation.
The custom command capability in Post Builder allows you to insert custom
Tcl procedures into a postprocessor. There is a library of procedures in various
folders under ...\Siemens\NX 8.0\MACH\resource.
Common procedures are provided, and new procedures are added to each
release.
• SAMS Teach Yourself Tcl/Tk by Venkat V.S.S. Sastry & Lakshmi Sastry
IBSN 0-672-31749-4
8-54 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Tcl basics for Post Builder
• Mathematical expressions
• Procedures
9 Custom commands
Purpose
This lesson describes the procedures for customizing postprocessors using the
NX Post Builder application.
Objective
After you complete this lesson, you will be able to:
• Use custom commands to customize Post Builder output files.
9-2 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Custom commands
When you define a custom command, you complete it by adding Tcl code.
You can import the command from a provided library or define your own
code. Post Builder:
• Provides a default procedure name.
• Provides the correct syntax, including the braces that enclose the body
of the procedure.
• Checks the syntax of the code you enter and displays syntax error
messages for your code automatically.
Click Export to create your own library file. You can specify one or more
custom commands that you can later import into other postprocessors.
You can check for unknown commands, unknown blocks, unknown addresses
and unknown formats for validation by choosing Options®Validate Custom
Commands.
4. In the Import Commands from file name dialog box, select one or more
procedures to import.
Only procedure names that you do not have defined in your post are
shown. Click Deselect All to clear all selections, and then double-click the
ones that you want to select. Click Select All to select all procedures.
9-4 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Custom commands
• Created, modified and saved in a library file for use in other postprocessors.
9-6 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Lesson
Purpose
This lesson describes the process for creating user-defined events, user-defined
cycles, and their associated event handlers in Post Builder, and the steps
needed to use these events in NX.
Objective
After you complete this lesson, you will be able to:
• Create, modify, and use user-defined events (UDEs).
10
Post Building Techniques – Student Guide 10-1
User defined events and user defined cycles
User-defined events
A user-defined event (UDE) is a custom machine control event that you add to
operations and CAM parent objects in NX to capture information that you
cannot configure in a default tool path. For example, you can add output such
as a custom clamping code or a fixture positioning code by defining a UDE.
You can make this information available for use in NX by defining the event in
your postprocessor using Post Builder. Without Post Builder and NX Post, you
would have to write the .cdl file and interpret the NC output in your own post.
10
10-2 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
User defined events and user defined cycles
User-defined events appear on the Machine Control page in your post. You
can distinguish between pre–defined events and user-defined events
by their color. You manage pre-defined events making settings and choosing
options in default NX operation dialog boxes. You must add user-defined
events to NX operations or CAM parent objects as start events or end events.
10
Post Building Techniques – Student Guide 10-3
User defined events and user defined cycles
UDEs in NX
In NX, you can attach UDEs as object start events or object end events for
the following:
• An operation
Many user-defined events are supplied with NX, for example, events to
output the following:
• Custom coolant options
• Operator messages
10
10-4 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
User defined events and user defined cycles
User-defined cycles appear on the Canned Cycles page in your post. You
can distinguish between pre-defined cycles and user-defined cycles
by their color.
Some user-defined cycles are included with NX, but they are not configured
by default. For example, to support machine cycles that are defined in
the template post for your Siemens Sinumerik 840D controller, you must
configure your machining environment to read the Siemens_Cycles.cdl file.
10
Post Building Techniques – Student Guide 10-5
User defined events and user defined cycles
10
10-6 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
User defined events and user defined cycles
appears beside the help button in the dialog box that appears in NX
when a user adds your event. The second string is a URL that points to
an HTML file that provides useful information about your event. You
need not place the two strings on the same line.
The format for a URL that points to a local file is
"file://localhost/path".
The two slashes that precede the local host name are required.
For example, if the file is on the user’s computer, the URL is
"file:///path".
CATEGORY
(Optional) Specifies one or more machining modes in which the event
is relevant. If this keyword is not specified, the event is relevant in all
machining modes. The possible values are the following:
• Mill
• Drill
• Lathe
• WEDM
10
Post Building Techniques – Student Guide 10-7
User defined events and user defined cycles
PARAM <param_name>
Specifies an event parameter with the name specified after the PARAM
keyword.
TYPE
Specifies the parameter type. The possible values are:
i An integer with a standard default value of 0.
d A real number with a standard default value of 0.0
s A string with a standard default value of an empty
string.
o An option list. The first value you specify becomes
the default in the list.
b A Boolean with a standard default value of FALSE.
p A point. NX does not apply a default value.
v A vector. NX does not apply a default value.
g A group of parameters. NX does not apply a
default value.
l A graphic to illustrate the event. NX does not
apply a default value. The value is a lower case L.
DEFVAL <default value>
(Optional) Specifies the default value or string for a parameter. If
this keyowrd is not specified, NX applies the standard default for the
parameter type. For example, if the variable is an integer, it uses
the default integer value.
TOGGLE
(Optional) Specifies that the parameter is optional. The keyword
TOGGLEmust be followed by On or Off to set the default condition. If the
TOGGLEkeyword is not specified, the parameter is mandatory.
OPTIONS
Available only when the parameter TYPE is o. Mandatory for TYPE o.
Specifies a list of options for the parameter. The format is text strings
separated by commas.
UI_LABEL param_ui_name
(Optional) Specifies the parameter name that is displayed in the
NX dialog box. If <param_ui_name> is not specified, NX inserts a
10 default name.
10-8 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
User defined events and user defined cycles
• In the Create New Post Processor dialog box, select Enable UDE Editor
to enable the UDE editor whenever the post is opened for edit.
10
Post Building Techniques – Student Guide 10-9
User defined events and user defined cycles
4. In the Create Machine Control Event dialog box specify the required
event parameters and any optional parameters that you want to include.
5. Click OK.
6. (Optional) In the User Defined Event dialog box, drag parameter type
buttons, one at a time, to your event dialog box.
For each parameter that you drag, a dialog box lets you enter information
for the parameter type that you selected.
10
10-10 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
User defined events and user defined cycles
2. (Optional) If you want to add one or more standard words to the output,
do the following:
a. Select a word from the list.
If the word format you require differs from the default, you must also
edit the word format.
5. In the Custom Command dialog box, in the title box enter a title for
you event handler procedure, and in the Tcl code area add the code to
do the task that you require.
• Return to the event dialog box. Right-click the custom command word
and choose Edit.
• On the Custom Command tab, select the handler from the list and
edit the code in the window .
10
10-12 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
User defined events and user defined cycles
2. Select the node that corresponds to an event to view the Tcl code.
The upper window shows the current code, and the lower window
shows the code that was on your disk at the beginning of your current
session.
10
Post Building Techniques – Student Guide 10-13
User defined events and user defined cycles
2. Select the node that corresponds to an event or cycle to view the definition.
The upper window shows the current code, and the lower window
shows the code that was on your disk at the beginning of your current
session.
10
10-14 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
User defined events and user defined cycles
• A link to an HTML file to support your custom event. This file provides
online Help.
• Grouped parameters.
To create the file, edit the output .cdl file from Post Builder so that
it contains only your custom user-defined events
When you save a post in Post Builder, the associated .cdl file contains all
of the user-defined events that are available in your post, including the
events provided in the standard ude.cdl file.
#example .cdl file for UDEs
MACHINE FANUC
EVENT test_event
{
UI_LABEL "Test Event"
PARAM command_status
{
TYPE o
DEFVAL "Active"
OPTIONS "Active","Inactive","User Defined"
UI_LABEL "Status"
}
PARAM my_picture
{
TYPE l
DEFVAL "my.bmp"
}
}
4. In the .cdl file, in the next non-comment line after the MACHINE keyword,
enter one or more statements to include other files.
The format to include a file is:
INCLUDE {file specification}
For example:
INCLUDE {$UGII_CAM_USER_DEF_EVENT_DIR/Siemens_Cycles.cdl}
If you use a library machine tool, be aware that the definition file
for the machine’s default postprocessor also contains a pointer to a
user-defined event file. The code that points to the file is, by default,
the following:
INCLUDE {$UGII_CAM_USER_DEF_EVENT_DIR/ude.cdl}
You must edit any files with conflicting pointers to remove the
conflicts.
10
10-16 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
User defined events and user defined cycles
10
Post Building Techniques – Student Guide 10-17
User defined events and user defined cycles
10
10-18 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
User defined events and user defined cycles
10
Post Building Techniques – Student Guide 10-19
User defined events and user defined cycles
• Used to call a Tcl routine in your postprocessor that outputs the required
code.
User-defined cycles provide additional control over drilling cycles when you
use them in the hole-making application. They are provided for controls
that support additional parameters to accommodate add-on features, such
as the Siemens 840D.
10
10-20 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
11
Lesson
11 Virtual NC controller
Purpose
In this lesson, you will learn how to create a Virtual NC controller, used by the
Integrated Simulation and Verification application for tool path simulation.
Objective
After you complete this lesson, you will be able to:
• Create a Virtual NC controller.
11
Integrated simulation and verification overview
The Integrated Simulation and Verification module, or ISV, allows you to
simulate a machine tool with an actual piece part, giving you an overview
of the entire machining process. The simulation process animates the
machine tool motions, taking into account controller functions and cutting
tool configurations.
ISV features collision checking which allows collision detection between
machine components, fixtures, tools, parts and the in-process work piece. The
machine travel limits are also verified. You may also view machine controller
functions including macros, subroutine calls, cycles and function M, G and H
commands.
ISV can improve the quality of machining processes by allowing the
comparison of the designed part to the part which is being manufactured.
ISV consists of the following components:
• Visualize
• Simulation
• Setup Configurator
11-2 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Virtual NC controller
11
Machine Tool Driver
• Generates motion control program and emulates the CNC controller
o Accurate path based on machine tool configuration
The Machine Tool Driver (MTD), also referred to as the Virtual NC controller,
creates the CNC program that emulates the CNC controller. This is a
programmable interface that instructs the machine tool model on actual
movements and how those movements are displayed. Any motion and
feedback displayed during machine tool simulation is controlled by the
dedicated MTD.
For comparison purposes, the MTD is analogous to the machine tool simulator
as the CNC controller is analogous to the machine tool that it controls. For
each machine tool in the machine tool library, there is a MTD driver available.
For creating an MTD for a new machine tool, you can modify a generic driver
to work with that machine or use the Post Builder to generate the Virtual NC
controller (MTD and Virtual NC controller refer to the same object). MTDs
are written in the Tcl scripting language but may also be developed in higher
11
level languages such as C++. MTDs can emulate special cycles, User Defined
Events (UDE’s), macros and other CNC controller dependent functions that
the Manufacturing application does not support.
11-4 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Virtual NC controller
11
VNC work flow
This describes the process for creating a virtual NC controller (VNC) using
NX Modeling, Manufacturing, and Post Builder. This description assumes
that you already have a suitable Post Builder postprocessor for your machine
tool and controller combination.
1. Create a solid assembly model of your NC machine.
• We recommend that you create a separate component part for each
machine part that moves independently, such as tables, saddles, slides.
Model another component for the fixed machine base.
• You can omit all details that do not affect collision detection, such as
interior detail of machine components, exterior fittings outside the
working envelope, fasteners, and so on.
2. Create a part file to hold your kinematic model, and add the machine
assembly to it as a component.
3. Use the Machine Tool Builder application to build the kinematic tree,
starting with the fixed machine base, and adding each moving component
in sequence.
Refer to the examples in your
...\mach\resource\library\machine\installed_machines for examples of
the way the kinematic tree is constructed.
4. Add the machine tool to the machine tool library, by editing the file
...\mach\resource\library\machine\ascii\machine_database.dat.
5. In the library folder in which your machine tool resides, create a .dat file
to describe the location of the postprocessor to use with the VNC.
The data file consists of a single line with three comma-separated
components:
Post description to appear in NX,path_to_post.tcl,path to post.def
Examples in NX include a line that begins with CSE. Omit this line —
you cannot create a CSE driver with the tools described in this procedure.
11
6. In Post Builder, open the postprocessor and define the VNC characteristics.
Keep the characteristic of the machine consistent with your kinematic
model. Input the travel type and limits for each axis, and identify the
machine zero reference as the first non-rotating component you come to
by traversing up the kinematic tree from the machined part.
d. Simulate the tool path for the entire program, or for individual
operations.
11-6 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Virtual NC controller
11
Activity: Use Post Builder to create a VNC
In the Virtual NC Controller section, do the following activity:
• Use Post Builder to create a VNC
11
Axes, junctions, and zero reference
Defining axes in machine tool builder
When you define an axis in Machine Tool Builder, think of the motions as tool
motion relative to a stationary part. If it is the table that moves, you should
reverse the direction.
Defining junctions
In Machine Tool Builder, a junction is a coordinate system that is used:
• To guide and constrain the movement of an axis, for example, the junction
for a rotary axis.
• To position or mate something, for example the part mount and tool
mount junctions.
11-8 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Virtual NC controller
11
Part mounting junction
When you define the junction to mount the part, think of it as a coordinate
system to which you will position and align the part. It is helpful to design
a corresponding coordinate system and part mount junction in the CAM
setup part. Part mounting components need not contain any geometry in the
kinematic model. You specify the geometry or the part mount junction when
they add the machine tool to a manufacturing setup.
Name Classification Junction
– SETUP _SETUP_ELEMENT PART_MOUNT_JCT
PART _PART, _SETUP_ELEMENT
BLANK _WORKPIECE,
_SETUP_ELEMENT
FIXTURE _SETUP_ELEMENT
11
Program zero reference
In Post Builder, you are asked to specify the program zero reference. The
name that you enter in the Program Zero Reference box should be that of
the first non-rotating component that you come to when you traverse up the
kinematic tree from the position of the part.
In the graphic, the part is below the C_SLIDE, a rotating component. The
C_SLIDE is below the B_SLIDE, another rotating component. The first
non-rotating component above the part is the X_SLIDE, so the X_SLIDE is
the program zero reference.
11-10 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Virtual NC controller
11
Summary: Virtual NC Controller
The Integrated Simulation and Verification module (IS&V) allows you to
simulate a machine tool with an actual piece part, giving you an overview
of the entire machining process. The simulation process animates the exact
machine tool motions, taking into account controller functions and cutting
tool configurations.
In this lesson you:
• Reviewed the components that comprise the Integrated Simulation and
Verification module.
Purpose
This lesson describes the procedures required to build postprocessors through
the use of Siemens controller.
Objective
Upon completion of this lesson, you will be able to:
• See the additional information you can get from a Siemens controller post.
• Sinumerik_840D
• Sinumerik_840D_millturn
12-2 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Postprocessing with a Siemens controller
12-4 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Postprocessing with a Siemens controller
12-6 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Postprocessing with a Siemens controller
Purpose 13
This lesson describes the procedures required to build a macro with Post
Builder.
Objective
After you complete this lesson, you will be able to:
• Build a macro with Post Builder.
Macro tab
Use this tab to create, edit, or remove block templates for making calls to
macro, cycle, or functions in the NC program.
The output codes are in the form of cycle or macro calls, such as CYCLE81(...)
for the Sinumerik 840D controller or CYCLE DEF 204 A200=... for the
Heidenhain iTNC530 controller, or other similar high level function calls.
Adding macros
13 Post Builder provides constructs for well-known hole-making cycles attached
to appropriate events.
Add you own macros when you wish to extend the post to output macro calls
for other calls that your controller accepts.
13-2 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Create a macro with Post Builder
13
Notes
The additional output attributes are not applicable to the Siemens Sinumerik
840D. The options do not appear on the macro constructor for the Sinumerik
family of posts.
You can define as many parameters as your controller requires.
If a macro parameter is not to be output, its name is used only in Post Builder
to represent an available argument.
13 You can set the expression for each parameter using constants, global MOM
variables, or other Tcl variables. The variables you use should represent
data of the same type as specified by the Data Type option, the same number
format, or text.
Your macros for the current post appear in the list of available blocks on
the Program tab.
You can create new macros by choosing Custom Macro from the list of
available blocks. The tree list does not appear; otherwise, the interface is
the same.
On the Program tab, when you attach your macro to an event, you can
suppress the sequence number.
13-4 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Create a macro with Post Builder
13
13
13-6 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Lesson
14 Project activities
Purpose
Do the project activities as time permits for additional practice in Post
Building skills.
Available activities
14
• Collecting data for postprocessor creation
• Advanced Customization
Overview
As you gain experience with the various Post components, you will find
yourself experimenting with numerous methods and techniques as you go
through the post development cycle. Eventually, you will settle on methods
that you have become familiar and comfortable with.
The following suggestions and procedures will aid you in the creation of
postprocessors.
A
A-2 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
A guide to best practices of building a postprocessor
• When adding multiple custom commands, add and test each custom
command individually. This will make the process of debugging easier
and less confusing when you encounter Tcl syntax or Post errors.
• Use the Review Tool always when debugging a post processor. Although
the Review Tool increases the time required for processing, it is an
invaluable aid in the debugging process. The Review Tool may also be
used to review MOM Events, MOM variables per Event, find missing
procedures and find MOM variable names.
• Always make a copy of the main CAM mach directory for testing and
debugging purposes. The idea behind this concept is that you can
experiment with various ideas and techniques without the worry of
corrupting any system files that would normally be used by NX Post or
the Post Builder.
• If using the Post Builder to create a post and you find that you may need
to edit the Event Handler or Definition file, make sure that you perform
all edits and modifications that you can do within the Post Builder. Once
you "manually" edit the files, which Post Builder creates, the link between
those files and Post Builder are lost. This prevents you from using the A
Post Builder on that particular post again.
• Additional Tcl or Tk programs can be sourced and run from within the
machine tool Tcl file.
B Appendix: Checklist of
information
This portion of the Appendix contains a checklist that can be used to record
information needed to create a postprocessor.
The checklist which follows has been partially completed to save time. You
will notice that a checkmark precedes some of the boxes. This indicates that
the particular option does exist.
Checklist of information used to create a postprocessor
Machine Tool Type
Description of machine: UGS Supermill
3-axis mill
4-axis mill
5-axis mill
2-axis lathe B
4-axis lathe
Mill / turn center
Wire EDM
Other type
Yes
No
Metric
Absolute
Incremental
Full Circle
radius value
Other
B-2 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Appendix: Checklist of information
G00 Positioning
G01 Linear interpolation
G02 Circular/Helical Interpolation CW
G03 Circular/Helical Interpolation CCW
G02.2, G03.2Involute Interpolation
G04 Dwell
G05 High Speed Machining
G07.1 Cylindrical Interpolation
G12.1 Polar coordinate interpolation
G13.1 Polar coordinate interpolation cancel
G15 Polar coordinate command cancel
G16 Polar coordinate command
G17 XY plane selection
G18 XZ plane selection
G19 YZ plane selection
G20 XY Inch input
G21XY Metric input
G25 Spindle speed fluctuation detection off B
G26 Spindle speed fluctuation detection on
G27 Reference position return check
G28 Return to reference position
G29 Return from reference position
G33 Thread cutting
G40 Cutter compensation cancel
G41 Cutter compensation left
G42 Cutter compensation right
G43 Tool length compensation +
G44 Tool length compensation -
G49 Tool length compensation cancel
G50 Scaling cancel
G51 Scaling
G54-G59 Workpiece coordinate selection
B-4 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Appendix: Checklist of information
M30 Rewind
M51Thru Spindle Coolant System
M100 Low Pressure Thru Spindle Coolant
M101 Medium Pressure Thru Spindle Coolant
M103 High Pressure Thru Spindle Coolant
Character for Rewind Stop Code: "#"
Tool / Head parameters
Maximum number of tools: 120
Is pre selection of tool allowed Yes
Tool diameter compensation code:________D
Minimum compensation code:_______0
Maximum compensation code:____999
Tool length compensation code:___________H
Minimum compensation code:_______0
Maximum compensation code:____999
Should adjust code be held for "Z" motion?
Yes B
No
Spindle parameters
Maximum spindle RPM: 24000
Minimum spindle RPM: 15
Is spindle off code required to change spindle direction
Yes
No
Feed rate parameters
Maximum feed rate: 1575 ipm
Minimum feed rate: .0010 ipm
B-6 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Appendix: Checklist of information
Metric
Absolute
Incremental
Full Circle
radius value
B
Other
B-8 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Appendix: Checklist of information
B-10 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Appendix
This appendix contains the technical specification for the UGS Supermill
Machining Center. These specifications will be used to create the
postprocessor for the project exercises.
The UGS Supermill is a high performance, high speed 3-axis vertical
machining center with an optional indexable head. A 5-axis version for
complex molds and impellers is also available.
The design of the Supermill incorporates a rigid frame and self cooling high
speed spindle that aids in high speed machining applications. The Supermill’s
modular concept enables its use in numerous applications.
UGS Supermill
Technical Description
Machine Structure
The Supermill is a standard "bed" type machine, which allows for machine
rigidity and stability. The design of the Supermill allows for excellent
visibility of the actual working area. The bed, table, vertical walls and guides
of the X-axis are comprised of cast iron. The Y and Z guides are manufactured
from precision ground steel.
Machine bed and X, Y, Z axis slides
The machine bed is built from fixed box-shaped structures designed with
transverse baffles for rigidity. This adds to the general stability of the
machine. The machine guideways incorporate rolling bearing mechanisms.
Axis movements are accomplished with recirculating ball screws, driven by
brushless dc motors. The X and Y-axis have direct motor screw couplings;
the Z-axis is belt driven. Glass scales are used for accurate positioning. All
transducers are metal clad and are protected against dust and coolant. They
are also connected to a filtered compressed air system to further aid in the
reduction of contaminants.
Machine temperature control system
In order to minimize thermal drifts and maintain accuracy when machining
for extended periods, heat exchangers are placed in strategic locations. These
heat exchangers dissipate heat to a continuously circulating liquid controlled
by a standalone refrigeration unit.
Machining work area
C The machining work area, or work piece table, is made of cast iron, for
thermal stability, and is equipped with T-slots for work piece clamping.
Automatic tool changer
The automatic tool changer is a chain operated device that can store up to 180
tools. Tool selection is bi-directional, that is, the chain will move clockwise or
counterclockwise to the next tool selected, which ever direction is shorter. The
tool changer will automatically detect a tool in a pocket and will also monitor
tool life through software incorporated in the CNC.
Lubrication systems
Key components including slides and spindle are constantly lubricated by
means on an automatic lubricating system regulated by a timing mechanism.
These components are monitored by sensors, which will activate alarms when
lubrication is low.
Coolant System
C-2 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Appendix: Supermill technical document
Linear axes
Movement
1000 mm (39.37")
X
1000 mm (39.37")
Y
500 mm (19.685")
Z
Positioning accuracy 0.005 mm (.0002")
Max. rapid speed X - Y 40 m/min (1575"/min)
Z 40 m/min (1575"/min)
Number of tool pockets in changer 180 Maximum
Work piece table
1500 x 1500 mm (59" x 59")
Standard table dimensions
Max load on table 2500 Kg. ( 1140 lbs.)
Longitudinal T-slots: number 5
width 18 mm (.708")
Installation requirements
440 V 60 Hz
Power supply
Air supply 20 psi + 10%
Machine weight 12000 kg (5454 lbs.)
Floor space (excluding command panel
3.9 x 3.9 m (12.8 x 12.8 ft)
and spindle cooling device)
Overall height 3.2 m (10.5 ft)
Environmental conditions
from 10 to 40 5C
Temperature
Relative humidity from 10% to 80%
C-4 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Appendix: Supermill technical document
Milling options
The following three milling options are available for the Supermill.
The tool holder clamping on the spindle consists of a mechanical device with
Belleville washers; a pneumatic piston unclamps the tool holder. The spindle
is housed on the vertical slide (Z-axis).
• Spindle drive.
• Cooling system.
3-axis milling with indexable head (4th and 5th axis) 30000 RPM
This option allows for tool orientation, which will increase the work area, C
reduce tool lengths and increase cutting speeds with spherical tools.
Includes the following:
• Bi-directional indexable head with integrated spindle, housed on the
vertical slide.
• High frequency spindle, 150 mm. dia. with air/oil lubricated ceramic ball
bearings and automatic tool clamping /unclamping system.
The tool holder clamping on the spindle consists of a mechanical system with
Belleville washers; a pneumatic piston unclamps the tool holder.
• Motor and drive for C-axis movement.
C-6 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Appendix: Supermill technical document
C-8 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Appendix: Supermill technical document
Chip Conveyor
CC SM2004
The automatic chip conveyor option allows the continuous removal of chips
and is operated directly by the CNC. This option replaces the standard chip
conveyor.
C-10 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Appendix: Supermill technical document
Measurement options
Data transfer
High speed data transmissions via ethernet and TCP/IP protocol.
C-12 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Appendix: Supermill technical document
Scale factor
Scale factor assigns a different scale to each individual axis. This option is
applicable in the manufacturing of molds, where shrink factors are different
along the various individual axis.
Programming functions
The following programming functions are standard with the Supermill 2004
CNC controller.
C-14 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Appendix: Supermill technical document
Feed functions
The feed function controls the feed rate of the cutting tool.
C The Rapid Traverse feed function moves the tool at a rapid traverse rate
when command to position by G00.
The Cutting feed function moves the tool at a programmed cutting feed rate.
Acceleration and deceleration are automatically applied when the tool starts
and ends its movement.
Cutting feed rate is applied by a number following the F word address.
C-16 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Appendix: Supermill technical document
Milling accessories
Optional spindles
UGSSM2005/24-24
24 kW- 24000 RPM high frequency spare spindle for 3-axis option.
UGSSM2005/20-30
20 kW - 30000 RPM high frequency spare spindle for indexable head option.
UGSSM2005/6-28
6/7,5 kW - 28.000 RPM high frequency spare spindle for 5-axis option.
C-18 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Appendix: Supermill technical document
Services
Installation
Includes machine installation and acceptance at purchaser’s facilities.
The Supermill requires special foundations per drawing number
SM2005HS-01. These foundations to be built at purchaser’s expense
according to aforementioned drawing specifications.
Installation of the Supermill can be performed 4 weeks after the foundation
has been poured.
Purchaser provides all necessary pneumatic, power and water supplies.
Training
Siemens PLM Software will provide 40 hours of training, at the customer’s
site, on the use and programming of the Siemens PLM Software Supermill
CNC controller.
For custom training courses, please contact UGS.
Shops training
Please check Educational Services schedules for the nearest location and
dates Shops classes. Special classes can be arranged on site.
F S
Files Preview tab . . . . . . . . . . . . . . 2-52 Sequence . . . . . . . . . . . . . . . . . . . . 2-24
Miscellaneous . . . . . . . . . . . . . . . 2-25
I Operation End . . . . . . . . . . . . . . 2-25
Operation Start . . . . . . . . . . . . . 2-24
Integration, Simulation and Verification Program End . . . . . . . . . . . . . . . 2-25
machine tool driver . . . . . . . . . . . 11-3 Program Start . . . . . . . . . . . . . . 2-24
overview . . . . . . . . . . . . . . . . . . . 11-2 Tool Path Events . . . . . . . . . . . . 2-24
Canned Cycle Events . . . . . . 2-25
M Machine Control Events . . . . 2-25
Machine Tool tab Motion Events . . . . . . . . . . . 2-25
Default button . . . . . . . . . . . . . . 2-12
Restore button . . . . . . . . . . . . . . 2-12 T
Manufacturing Output Manager . . . 1-5 Tcl
Mill-turn command
creating using Post Builder . . . . . . 7-2 array get . . . . . . . . . . . . . . . . 8-9
defining heads . . . . . . . . . . . . . . . 7-4 break . . . . . . . . . . . . . . . . . . 8-46
catch . . . . . . . . . . . . . . . . . . 8-23
N close . . . . . . . . . . . . . . . . . . 8-32
N/C Data Definitions tab . . . . . . . . 2-28 continue . . . . . . . . . . . . . . . . 8-47
NX Post exit . . . . . . . . . . . . . . . . . . . 8-48
User Defined Events . . . . . . . . . . 10-4 expr . . . . . . . . . . . . . . . . . . . 8-10
file exists . . . . . . . . . . . . . . . 8-30
for . . . . . . . . . . . . . . . . . . . . 8-44
P
foreach . . . . . . . . . . . . . . . . . 8-45
Parameter Window . . . . . . . . . . . . 2-23 format . . . . . . . . . . . . . 8-16, 8-26
Index-2 Post Building Techniques – Student Guide mt11060_s — NX 8 — Copyright 2011 Siemens PLM Software
Reference tear-out pages
These reference tear-out pages are provided for your convenience. The
following pages are included:
• An overview of Siemens Learning Advantage
• A Student Profile sheet that your instructor may have you complete at
the beginning of the course
• Evaluation sheets for the course delivery and the course materials. You
may also be given information about filling these out online.
This page left blank intentionally.
Siemens Learning Advantage
Maximize your PLM investment with e-Learning!
Learn more about Siemens Learning Advantage by visiting our web site or contact your
Siemens PLM Software sales representative for purchase information.
This page left blank intentionally.
PLM Software
www.siemens.com/plm
Student Profile
To stay in touch with our customers, we are asking for some background information. We will keep this information confidential and
will not share this with anyone outside Education Services. Please print your information.
Hotel/motel while training: __________________________________________________ Planned departure time after class: ________________
_____________________________________________________________________________________________________________________________
List any training you have had for Siemens PLM Software products, such as NX, I-deas, Imageware, Teamcenter Manufacturing,
Teamcenter Engineering, Teamcenter Enterprise, Tecnomatix, or Dimensional Management/Visualization.
Instructor-led
Software Training provided by: When Course name
or self-paced?
Thank you for your participation. We hope our training meets your expectations.
This page left blank intentionally.
Course agenda — Post Building Techniques
Day 1 Morning
Afternoon
Day 2 Morning
Afternoon
Day 3 Morning
Afternoon
Day 4 Morning
Afternoon
If you would prefer to fill out an evaluation online, please go to the following URL:
http://training.industrysoftware.automation.siemens.com/eval/
Session ID: ______________________ (provided by instructor). Must be completed within two weeks.
Thank you for your business. We hope you will consider us for your future training and
professional development.