5 Axis Generic Post 5-axis post training Date: October 14, 2002 This presentation is intended as a guide for setting up the generic 5 axis posts, MPGEN5X_FANUC.PST and MPGEN5X_MILLPLUS.PST. Run this presentation in conjunction with a text editing program.
5 Axis Generic Post What are generic 5 axis posts??? MPGEN5X_FANUC.PST and MPGEN5X_MILLPLUS.PST are generic 5 axis posts that are configurable to these basic machine types: Table/Table Tilt Head/Table Head/Head Nutator Table/Table Nutator Tilt Head/Table Nutator Head/Head
1
5 Axis Generic Post What are generic 5 axis posts??? With these basic machine control types: Fanuc M (MPGEN5X_FANUC) Heidenhain MillPlus (MPGEN5X_MILLPLUS)
5 Axis Generic Post What are generic 5 axis posts??? But this post offers more than positioning data. Some special features are: Intelligence is built in to detect rotary limits and automatically retract and reposition the tool to continue the cut. Define a safety box and the tool moves to it when repositioning. A head/head machine configuration follows the safety box to position around the part. Bias the starting angles at toolchanges and/or on the secondary axis. Fan a cut with a rotary axis on the tool to prevent part gouging. Supports axis substitution and polar conversion. Limited support for Right/Compound angle head.
2
5 Axis Generic Post Required files MPGEN5X_FANUC.PST and MPGEN5X_MILLPLUS.PST are MP post processors that have part of the post encrypted using the MPBIN utility. The encrypted post section is written to a file with a PSB extension. You should have these files to run the post. PST File PSB File TXT File These files can be renamed to produce new post processors. MPBIN has been modified to re-encrypt a PSB file setup to run on “any SIM”. The encrypted code is not being released to customers or dealers.
5 Axis Generic Post 5 Axis Configuration How do you configure a 5 axis post? Get the Data. What is the axis layout on the machine? Where are the rotary axis when the machine is at the home position? How does the machine interpret the rotary data? What are the rotary axis limits? Define the part orientation in Mastercam. Determine which axis is the primary and secondary axis. Configure the post.
3
5 Axis Generic Post 5 Axis Configuration Get the Data Obtain a picture or drawing with the machine at the home position. Have the axis address marked on the drawing. Show the signed axis movement with the limits.
5 Axis Generic Post 5 Axis Configuration Define the part orientation in Mastercam How the part is placed relative to the Mastercam WCS is critical in producing the proper NC code. Parts are normally oriented to match the machine zero state. Train your customer to always place the part drawing or WCS with the orientation you have determined is needed to produce proper code. Nutating machines always have the part oriented in the top view.
4
5 Axis Generic Post 5 Axis Configuration Determine which axis is the primary and secondary axis (This step not needed with nutating types) The primary axis is the rotary axis that is rotated first to position a tool vector in the plane that is perpendicular to the secondary axis rotation. Determine the primary and secondary axis by imposing the machine coordinate gnomon onto a simple part drawing in the proper orientation for the machine.
5 Axis Generic Post 5 Axis Configuration Observe the axis of rotation for the machine tool. The Y and Z are the axis of rotation for this machine. Select the vectors that represent the rotary axis. Z+ and Y+ are those vectors in this example. Resolve each of these vectors for the assumed primary axis. Rotate the vector on the primary axis and attempt to resolve the vector in the plane perpendicular to the secondary axis of rotation. The correct solution is when both vectors have logical results.
5
5 Axis Generic Post 5 Axis Configuration Assuming the Y axis (B) as the primary axis, resolve by viewing the vector formed by the Z+ axis by first viewing down the axis of rotation of the assumed primary axis. Mentally rotate the vector on the primary axis into the plane perpendicular to the secondary axis of rotation. View down the axis of rotation of the assumed secondary axis to observe the result for the secondary axis. Repeat this for the Y+ vector. Assume that zero is at 3 o'clock and positive direction is counterclockwise from the viewing direction.
5 Axis Generic Post 5 Axis Configuration Assuming the Y axis (B) as the primary axis for Z+ vector: Z+ rotates to B90 on primary Z+ solves to C180 on secondary
6
5 Axis Generic Post 5 Axis Configuration Assuming the Y axis (B) as the primary axis for Y+ vector: Y+ is infinite on primary Y+ solves to C90 on secondary
5 Axis Generic Post 5 Axis Configuration Now re-examine the axis selection assuming the Z axis (C) as the primary axis. Again, resolve by viewing the vector by first viewing down the axis of rotation of the assumed primary axis. Mentally rotate the vector on the primary axis into the plane perpendicular to the secondary axis of rotation. View down the axis of rotation of the assumed secondary axis to observe the result for the secondary axis. Repeat this for the Y+ vector.
7
5 Axis Generic Post 5 Axis Configuration Assuming the Z axis (C) as the primary axis for Z+ vector: Z+ is infinite on primary Z+ solves to B90 on secondary
5 Axis Generic Post 5 Axis Configuration Assuming the Z axis (C) as the primary axis for Y+ vector: Y+ rotates C90 on primary Y+ resolves to B180 on secondary
8
5 Axis Generic Post 5 Axis Configuration From the examination where the Y axis (B) was assumed as the primary axis; the result of "Y+ is infinite on primary" and "Y+ solves to C90 on secondary" is NOT logical. Therefore, the conclusion can be drawn that the Z axis is the primary axis. Be aware that some trial and error is often required to make the correct selection.
5 Axis Generic Post 5 Axis Configuration (known cases) The primary axis is always the rotary axis fixed to the machine tool and the secondary axis is always the axis mounted on the primary axis with the head/head type machine tools.
The primary axis is always the rotary axis aligned to the Z axis of the WCS and the secondary axis is always the nutated axis with the nutating type machine tools. See the specific requirements for configuring the nutating type machine.
9
5 Axis Generic Post 5 Axis Configuration Configure the post The post can now be configured for the machine tool. The following slides cover the basic settings. Later slides cover the more advanced options and their meaning. Open the post in the editor of your choice and find these post variables...
5 Axis Generic Post Post Type Selection ‘mtype’ selects the machine type the post needs to support. The type is based on where the rotary axis are placed on the machine tool. This post supports the 6 machine types in the list. Enter the value corresponding to desired basic machine type. #Machine rotary routine settings mtype :0 #Machine type (Define base and rotation plane below) #0 = Table/Table #1 = Tilt Head/Table #2 = Head/Head #3 = Nutator Table/Table #4 = Nutator Tilt Head/Table #5 = Nutator Head/Head
10
5 Axis Generic Post Post Type Selection Table/Table - type 0 Both rotary axis are located on the machine base and the spindle remains constant.
5 Axis Generic Post Post Type Selection Tilt Head/Table - type 1 One axis tilts the spindle while the other rotary axis is located on the machine base.
11
5 Axis Generic Post Post Type Selection Head/Head - type 2 Both rotary axis are located in the machine head and tilt the spindle.
5 Axis Generic Post Post Type Selection Nutator Table/Table - type 3 Both rotary axis are located on the machine base and the spindle remains constant. The rotary axis are not perpendicular.
12
5 Axis Generic Post Post Type Selection Nutator Tilt Head/Table - type 4 Both rotary axis are located on the machine table and the spindle remains constant. The rotary axis are not perpendicular.
5 Axis Generic Post Post Type Selection Nutator Head/Head - type 5 Both rotary axis are located in the machine head and tilt the spindle. The rotary axis are not perpendicular.
13
5 Axis Generic Post Define Rotary Axis The primary and secondary axis as selected earlier are used to setup these plane selections used in the internal math calculations. The rotary axis is the normal to the plane that we use with the global variables in the following code. #Primary axis angle description (in machine base terms) #With nutating (mtype 3-5) the nutating axis must be the XY plane rotaxis1 = vecy #Zero rotdir1 = vecx #Direction #Secondary axis angle description (in machine base terms) #With nutating (mtype 3-5) the nutating axis and this plane normal #are aligned to calculate the secondary angle rotaxis2 = vecz #Zero rotdir2 = vecx #Direction
5 Axis Generic Post Define Rotary Axis The only valid variables to use with ‘rotaxis1’, ‘rotdir1’, ‘rotaxis2’, and ‘rotdir2’ are ‘vecx’, ‘vecy’ and ‘vecz’. ‘vecx’, ‘vecy’ and ‘vecz’ can be signed (-vecx for example). The variables correspond to the gnomon axis designations as shown.
14
5 Axis Generic Post Define Rotary Axis This is the general relationship of the rotation axis to the plane selection variables.
5 Axis Generic Post Define Rotary Axis The primary rotation is defined by selecting the gnomon vector that defines zero (Y+) and assigning it to ‘rotaxis1’. From the zero vector, select the perpendicular vector in the plane that is the positive direction of travel (X+) and assign it to ‘rotdir1’. rotaxis1 = vecy #Zero rotdir1 = vecx #Direction
15
5 Axis Generic Post Define Rotary Axis The secondary rotation is defined by selecting the gnomon vector that defines zero (Z+) and assigning it to ‘rotaxis2’. From the zero vector, select the perpendicular vector in the plane that is the positive direction of travel (X+) and assign it to ‘rotdir2’. rotaxis2 = vecz #Zero rotdir2 = vecx #Direction
5 Axis Generic Post Define Rotary Axis (Nutating) The secondary rotation for a nutating axis is defined by the plane formed by the Z+ vector and the normal to the plane the secondary (nutated) axis lays in. The assignment implies the plane the nutated axis is in. rotaxis2 = vecz #Zero rotdir2 = vecx #Direction
The nutating axis is in the YZ plane in this example.
16
5 Axis Generic Post Define Rotary Axis (Nutating) For a nutating axis, the post needs to know the tilt from the Z+ axis. The angle is signed negative if the direction in the plane is toward X- or Y-. #Nutating machine (mtype 3-5) describe the plane that the nutated axis #lays in, this is the plane perpendicular to the primary axis and #secondary axis nut_ang_pri : -45 #Nutating head secondary axis angle from machine Z positive
5 Axis Generic Post Rotary Axis Direction Correction Often, the setting for the axis signed direction is entered incorrectly. Setting the direction for table motion is confusing because the direction the tool vector moves on the part is opposite of the table direction. Switching the sign is as easy as changing the sign for the ‘rotdir1’ or ‘rotdir2’ variable. rotaxis1 = vecy #Zero rotdir1 = vecx #Direction
Becomes: rotaxis1 = vecy #Zero rotdir1 = -vecx #Direction
17
5 Axis Generic Post Rotary Axis Valid Plane Selection The primary and secondary axis planes must not be the same. Mathematically this is unacceptable. The following table lists the acceptable plane combinations.
Valid Plane Relations Primary
Secondary Option 1
Secondary Option 2
XY
XZ
YZ
XZ
XY
YZ
YZ
XY
XZ
5 Axis Generic Post Rotary Axis Definition Corrections The post variable ‘shift_90_s’ may need to be reversed when the primary axis zero is not in the plane of the secondary axis and the secondary axis zero is perpendicular to the primary plane. This is because the post can select the wrong rotation direction in the internal calculations. This variable is rarely changed. shift_90_s : 1
#Shift pos.=1, neg.=-1
Secondary Zero
Primary Zero
18
5 Axis Generic Post Rotary Output Options The primary and secondary axis can be output with the options of signed absolute output or implied shortest distance absolute output within the range of 0 to 360 degrees. The post always works internally with the angles as if normal angle output was applied (rotary axis windup in a linear fashion) and manipulates the angle when writing to the NC file based on these settings. pang_output : 0 #Angle output options, primary sang_output : 0 #Angle output options, secondary #0 = Normal angle output #1 = Signed absolute output, 0 - 360 #2 = Implied shortest direction absolute output, 0 - 360
5 Axis Generic Post Rotary Output Options Signed absolute output Starting at zero (CW positive) Motion
Output
+90
A90
-45
A-45
-90
A-315
+180
A135
+135
A270
-135
A-135
19
5 Axis Generic Post Rotary Output Options Implied shortest distance absolute Starting at zero (CW positive) Motion
Output
+90
A90
-45
A45
-90
A315
+180
A135 direction?
+135
A270
-135
A135
5 Axis Generic Post Rotary Address The primary and secondary axis address are assigned to the string variables in this code. ‘str_pri_axis’ is the address for the primary axis. ‘str_sec_axis’ is the address for the secondary axis. The post uses the vector math routines with 3D arrays and ‘str_dum_axis’ is a place filler. #Assign axis address str_pri_axis "C" str_sec_axis "B" str_dum_axis "A"
20
5 Axis Generic Post Rotary Limits Rotary limits must be applied to each rotary axis. The range of the limits, the toolpath and the machine type determines how the post reacts when a limit is violated. Avoiding the limits is the best machining practice but this is not always possible. The following slide is the section from the post where the limits are set. It is important that the limits are set in degrees and that they are in terms of normal (unlimited windup) output. Limits are resolved to these four types: Less than 180 degrees Equal or greater than 180 degrees and less than 360 degrees Soft limit at 0-360 degrees with hard limits slightly beyond Greater than 360 degrees
5 Axis Generic Post Rotary Limits auto_set_lim : 1 pri_limtyp : 0 sec_limtyp : 0
#Set the type from the angle limit settings (ignore these)
#Rotary axis travel limits, always in terms of normal angle output #Set the absolute angles for axis travel on primary pri_limlo : -9999 pri_limhi : 9999 #Set intermediate angle, in limits, for post to reposition machine pri_intlo : -9999 pri_inthi : 9999 #Set the absolute angles for axis travel on secondary sec_limlo : -9999 sec_limhi : 9999 #Set intermediate angle, in limits, for post to reposition machine sec_intlo : -9999 sec_inthi : 9999
21
5 Axis Generic Post Rotary Limits ‘auto_set_lim’ allows the post to examine the limit entries and automatically set the limit type variables. Leave this enabled. auto_set_lim : 1 pri_limtyp : 0 sec_limtyp : 0
#Set the type from the angle limit settings (ignore these)
5 Axis Generic Post Rotary Limit Types Less than 180 degrees The total rotary axis travel is under 180 degrees. The intermediate angle is set equal to the axis travel. #Set the absolute angles for axis travel on primary pri_limlo : 0 pri_limhi : 110 #Set intermediate angle, in limits, for post to reposition machine pri_intlo : 0 pri_inthi : 110
22
5 Axis Generic Post Rotary Limit Types Equal or greater than 180 degrees and less than 360 degrees The total rotary axis travel is equal to or over 180 degrees and the less than 360 degrees. The intermediate angle is set equal to the axis travel. #Set the absolute angles for axis travel on primary pri_limlo : 0 pri_limhi : 225 #Set intermediate angle, in limits, for post to reposition machine pri_intlo : 0 pri_inthi : 225
5 Axis Generic Post Rotary Limit Types Equal or greater than 180 degrees and less than 360 degrees This type, when assigned to the primary axis, attempts to reduce the number of limit retract and approach moves by resetting the limits whenever the secondary axis is flipped.
23
5 Axis Generic Post Rotary Limit Types Soft limit at 0-360 degrees with hard limits slightly beyond The rotary axis travel is normally 360 degrees but the rotary axis can exceed the travel by a small amount. The intermediate angle is set at the normal travel and the axis travel is set to the maximum limits. #Set the absolute angles for axis travel on primary pri_limlo : -5 pri_limhi : 365 #Set intermediate angle, in limits, for post to reposition machine pri_intlo : 0 pri_inthi : 360
5 Axis Generic Post Rotary Limit Types Soft limit at 0-360 degrees with hard limits slightly beyond This type uses the intermediate limit to create a position to retract and approach when the next move can not be reached within the repositioned rotary limits (usually a 360 degree move). Prior Move - 45 Post Generated Move - 0 Current Move - 315
24
5 Axis Generic Post Rotary Limit Types Greater than 360 degrees The total rotary axis travel is over 360 degrees. The intermediate angle is set equal to the axis travel. The axis is allowed to windup. The intermediate angle is set equal to the axis travel. #Set the absolute angles for axis travel on primary pri_limlo : -9999 pri_limhi : 9999 #Set intermediate angle, in limits, for post to reposition machine pri_intlo : -9999 pri_inthi : 9999
5 Axis Generic Post Rotary Limit Types Greater than 360 degrees When a limit is reached with this type rotary limit, the variable ‘typ3_brk_evn’ automatically adjusts the axis travel angles to an even 360 degree revolution within the travel limits. typ3_brk_evn : 0
#Windup limit, use even revolution break position
25
5 Axis Generic Post Rotary Limit Option The variable ‘adj2sec’ stands for “adjust to secondary”. The purpose of this post switch is to allow the secondary axis limit to exercise control over the primary axis. By default, the post attempts to avoid large primary axis moves. When the secondary limit is tripped, the post attempts to reposition the primary axis. The primary axis is repositioned with a 180 degree move and the secondary axis is checked to see if it is within the limits. adj2sec
:1 #Attempt to adjust the primary axis from secondary? #Allows primary axis to flip 180 to satisfy secondary #0 = Off #1 = Use method when secondary is out of limit #Use with pri_limtyp = one to keep secondary as controlling #limit when limit tripped #Use with pri_limtyp = two to allow 180 degree reposition
5 Axis Generic Post Rotary Axis Offsets The rotary axis offset variables hold the distance that the primary and secondary axis of rotation are offset. They have different meaning based on the machine type selected. ‘saxisx’, ‘saxisy’ and ‘saxisz’ are used with non-nutating type machine axis offsets and nutating machine types with the Mill Plus output option and tool plane toolpaths. ‘n_saxisx’, ‘n_saxisy’ and ‘n_saxisz’ are used with nutating type machine output. The axis offsets are relative to the machine base matrix (usually the top view). saxisx saxisy saxisz n_saxisx n_saxisy n_saxisz
:0 :0 :0 :0 :0 :0
#The axis offset direction? #The axis offset direction? #The axis offset direction? #The axis offset direction? #The axis offset direction? #The axis offset direction?
26
5 Axis Generic Post Rotary Axis Offsets – Table/Table
5 Axis Generic Post Rotary Axis Offsets – Head/Table
27
5 Axis Generic Post Rotary Axis Offsets – Head/Head
5 Axis Generic Post Rotary Axis Offsets The rotary axis offset for table/table and tilt head/table can have two interpretations where the program zero point is located relative to the offset axis. This is a user preference and the variable must reflect the users preference. The selection is ignored if the axis have no offset. r_intersect : 1 #Rotary axis intersect on their center of rotations #Determines if the zero point shifts relative to zero #or rotation with axis offset. n_r_intrsct : 0
#Rotary axis intersection with nutating (normally zero)
28
5 Axis Generic Post Rotary Axis Offsets ‘r_intersect’ set to 0 directs the post to calculate output with the machine coordinate origin at the part zero (Part/Machine Zero). The offset distance is from the Machine Zero to the secondary axis centerline (Axis Centerline). The part zero can be set at the face of the primary axis table.
saxisz
: -100
#The axis offset direction?
5 Axis Generic Post Rotary Axis Offsets ‘r_intersect’ set to 1 directs the post to calculate output with the machine coordinate origin at the secondary axis centerline (Machine Zero). The offset distance is from the Machine Zero to the origin of the part as drawn (Part Zero). Coordinates are relative to the Machine Zero as the secondary axis turns the part. saxisz
: -100
#The axis offset direction?
29
5 Axis Generic Post Post Tolerances The post is capable of breaking large rotary moves into several smaller rotary moves based on chordal deviation. The variables ‘brk_tol’ (empirical) and ‘brk_tol_m’ (metric) are used when the fanning routine is enabled. Fanning is normally enabled for machine types with rotary motion on the spindle and nutating type machines. Fanning is usually not used with table/table type machines. See 'brk_mv_head' to enable/disable. brk_tol : .001 #Break up chordal tolerance for 'brk_mv_head' brk_tol_m : .025 #Break up chordal tolerance for 'brk_mv_head', metric
Note: Arc linearization uses the ‘vtol’ and ‘vtol_m’ variables.
5 Axis Generic Post Post Cut Location Flag Exclusive to this post is a cut location flag. This allows for spawning events in the post file based on the flags value. The “retract position” and “plunge point” are generated from the posts rotary reposition routines. cutflag
: one #Path location flag, set in post #Before start - 1 #On start 2 #In path 3 #On end 4 #After end - 5 #Retract position - 6 #Plunge point - 7
30
5 Axis Generic Post Post Feed Options The post has the option to convert rapid moves to high feedrate. convert_rpd : 0
#Convert rapid to rapid feed
The high feedrate is taken from question 38. or 1538. in the post. 38. Rapid feedrate? 300.0 1538. Rapid feedrate (metric)? 10000.0
Rotary moves with no linear motion has the option to be output as Gcode rapid “G00” or with the high feedrate. rot_feed
:0 #Rapid rotary motion only feed options #0 - convert to G0 rapid #1 - apply rapid feedrate
5 Axis Generic Post Post Feed Options ‘use_fr’ selects the feedrate output type. The post only has the option for unit per minute or inverse feedrate. Degree per minute is not an option because it is normally not compatible with 5 axis motion. Programmed feedrate – Units per minute as programmed in Mastercam. Inverse feedrate – All feeds are converted to inverse time. Inverse feedrate on 5 axis continuous – Only 5 axis toolpaths are output with inverse feedrate. Inverse feedrate on motion with rotary – Linear moves are output as unit per minute. use_fr
:2 #0 #1 #2 #3
#Output feedrate - programmed feedrate - inverse feedrate - inverse feedrate on 5 axis continuous - inverse feedrate on motion with rotary
31
5 Axis Generic Post Post Feed Options Inverse feed time calculation options allow the post to calculate the feedrate based on the flute length and to the pivot point on head/head type machines. The flute length is taken from the “Flute” entry in the Define Tool dialog from the Mastercam tool library.
inv_fd_typ : 0 #0 #1 #2 #3
-
#Calculate feed location options inverse feed at tip min-max on flute length tip to pivot on tool length min-max on flute length to pivot on tool length
5 Axis Generic Post Post Feed Options Inverse feed at tip – Calculations from tool tip Min-max on flute length – Calculation from max length on flute Tip to pivot on tool length - Calculations from tool tip as ratio to pivot. Min-max on flute length to pivot on tool length - Calculation from max length on flute as ratio to pivot.
32
5 Axis Generic Post Post Feed Options The feedrate can be calculated or passed to the post as zero. Zero feed calculations often happen when the length between positions from the NCI file are extremely small. After rounding to the output format, these moves are coincident. Zero feedrate in the NC code is a serious problem. To avoid stopping the machine tool, the following should be set to apply the default feed values in zero feedrate cases. fix_fr :1 #If feedrate is zero, apply these values deffeedpm : 1.0 #Default for zero feed in inch/min deffeedpm_m : 25.0 #Default for zero feed in mm/min deffrinv : 500.0 #Default for zero feed inverse time
5 Axis Generic Post 'mpgen5x_millplus' Post Setting String assignments for the MillPlus control's feedrate axis control address should be set if enabled. The feedrate axis control variables are used prior to V410 on the MillPlus control to calculate rotary feeds and are enabled with the 'radius_fr' switch. radius_fr
:0
#Use axis radius distance
#Mill Plus, Assign feedrate axis address str_pri_f40 "C40=" str_sec_f40 "B40="
33
5 Axis Generic Post 'top_map' Post Settings This is primarily added to handle the nutating machine types but can also be used with the standard machine types. When ‘top_map’ is active, the toolpaths are output as if a table/table machine was specified. Code must be added to the post to handle the machine specific mapping routine. Other post variables must be set for this output. The following slides are a guide to these additional variables. top_map
:1
#Output toolplane toolpaths mapped to top view
5 Axis Generic Post 'top_map' Post Settings 'top_map' actually switches machine type based on 5 axis continuous toolpaths or toolplane positioning toolpaths. To restore the original machine setting, the postblock below is embedded in the initialization section of the post. Replace the second argument in the formulas with the global assignments for ‘rotaxis1’, ‘rotdir1’, ‘rotaxis2’ and ‘rotdir2’. rotaxis1 = vecy #Zero rotdir1 = vecx #Direction rotaxis2 = vecz #Zero rotdir2 = vecx #Direction #NOTE: Use of 'top_map' requires the dealer match the # above settings below. These must match initial settings!!! p_nut_restore #Postblock, restores original axis settings result = updgbl(rotaxis1, vecy) #Zero result = updgbl(rotdir1, vecx) #Direction result = updgbl(rotaxis2, vecz) #Zero result = updgbl(rotdir2, vecx) #Direction
34
5 Axis Generic Post 'top_map' Post Settings The toolplane angle position address is used with the 'top_map' command for toolplane positioning and mapping on the control. See the next slide for toolplane rotation angle selections. #Toolplane mapped to top angle position strings str_n_a_axis "A5=" str_n_b_axis "B5=" str_n_c_axis "C5="
5 Axis Generic Post 'top_map' Post Settings Switching to toolplane positioning toolpaths with 'top_map' requires that a selection be made for the rotary axis to be used. Make a selection from the options presented. top_type
:3 #0 #1 #1 #2 #3 #4
#With 'top_map' select toolplane output = Post selects map rotation axis to 4, user selected map rotation axis = Primary C : X zero, Secondary B = Primary C : Y zero, Secondary A = Primary C : -X zero, Secondary B = Primary C : -Y zero, Secondary A
35
5 Axis Generic Post Post Tool Length Tool length is most often used with post types - Tilt Head/Table or Head/Head. How the tool length is obtained can be selected with the variable ‘use_tlength’. Enter 0 to use the value entered in the variable ‘toollength’ (See code below). Initialize to 1 and the length is taken from the “Overall” entry in the Define Tool dialog from the Mastercam tool library. Set to 2 prompts the user for the tool length at each tool change when the post is run. use_tlength : 0 #Use tool length, read from tool overall length #0=Use 'toollength' var, 1=Mastercam OAL, 2=Prompt toollength : 0 #Tool length if not read from overall length
5 Axis Generic Post Post Tool Length The tool length with Head/Head machine types can be applied to the output positions. The options are 0 to add the tool length in the current tool direction to the output, 1 to add the tool length as in option 0 and then subtract the length from the Z axis. Enter 2 and the tool length is not added (tool tip programming) but we have the length for feed and fanning calculations. shift_z_pvt : 0 #Shift Z by tool length, head/head program to pivot (Z axis only) #0=Pivot, 1=Pivot-Z, 2=Tool Tip Programming (without zero length) #Option 2, So we can still take advantage of brk_mv_head feature
36
5 Axis Generic Post Post Tool Length Option 0 is used when the tool tip is the zero pick up position. Option 1 is used when the tool pivot is the zero pick up position.
5 Axis Generic Post Post Tool Length ‘add_tl_to_lim’ stands for “add tool length to limits”. The limits referred to are the linear limits enabled with the variable ‘use_stck_typ’. This controls if the limits are considered absolute when retracting for repositioning. add_tl_to_lim : 0 #Add tool length after intersecting limit, always #on if limit from stock
37
5 Axis Generic Post Post Linear Limits Linear stock limits are used by the post during approach and retract from the part and during a rotary axis reposition triggered by a rotary axis limit violation. These do not trigger a warning when violated, they are intended as a safety zone the same as those defined in Mastercam. use_stck_typ : 0 #0=Off, 1=Stock def., 2=Limits up_x_lin_lim : 500.0 #X axis limit in positive direction up_y_lin_lim : 500.0 #Y axis limit in positive direction up_z_lin_lim : 500.0 #Z axis limit in positive direction lw_x_lin_lim : -500.0 #X axis limit in negative direction lw_y_lin_lim : -500.0 #Y axis limit in negative direction lw_z_lin_lim : -100.0 #Z axis limit in negative direction
‘use_stck_typ’ uses the values from job setup to fill the limit variables when set to 1. When set to 2, the values are used as they are set in the post.
5 Axis Generic Post Post Linear Limits How do the linear stock limits work? The limits are used to create a box. This box is then intersected by the tool vector for the retract move and the tool vector for the approach move. The vectors are adjusted for the machine type and moves are generated to follow the extents of the box to reposition the tool.
38
5 Axis Generic Post Post Linear Limits ‘clear_stck’ is used to modify the linear stock limits. This is used when using the stock size from Job Setup to add an additional clearance to the stock size. clear_stck : 0.0
#Add inc. offset to stock definition for transition boundary
5 Axis Generic Post Rotary Limit Option This variable allows the post to retract and reposition the tool on rapid motion from the NCI file. Normally this is enabled. It would be disabled when the user is making all retracts and approach moves in the tool path at rapid traverse. Feed moves are not expected to be part of a retract or approach by the post. retract_on_rpd : 1 #This control allows retract on rapids too (don't assume rapid is safe)
39
5 Axis Generic Post Post Clamp Option The variable 'use_clamp' adds the rotary axis clamp Mcodes to the NC output. These are applied with toolplane positioning and drill cycles. 5 axis tool paths can not have the rotary axis clamped because rotary motion is expected. use_clamp
:0
#Use the automatic clamp Mcode
Find this section in the post to change the strings for the clamp code. # Primary axis lock/unlock spunlock M79 # Unlock Rotary Table splock M78 # Lock Rotary Table # Secondary axis lock/unlock ssunlock M11 # Unlock Rotary Table sslock M10 # Lock Rotary Table
5 Axis Generic Post Post Machine Base Option The machine base option allows the NCI input to be mapped to a different coordinate system in the NC output. Alter the matrix settings to a view that is the target output. This is helpful for machines with left hand coordinate systems or horizontal machines where the user prefers a setup relative to the machine tool. #Machine matb1 matb2 matb3 matb4 matb5 matb6 matb7 matb8 matb9
base matrix (Base matrix to map positions into) :1 :0 :0 :0 :1 :0 :0 :0 :1
40
5 Axis Generic Post Post Machine Base Option This example shows a horizontal machine setup where the user prefers a setup relative to the front view in Mastercam. The user can now program the tool paths with the part relative to the machine zero (as shown below). The post configuration settings are relative to this matrix. matb1 matb2 matb3 matb4 matb5 matb6 matb7 matb8 matb9
: : : : : : : : :
1 0 0 0 0 1 0 -1 0
5 Axis Generic Post Post Rotary Limit Tolerances The rotary limit tolerances are used in the post to trigger the revolution counter, find large rotary moves to flip the secondary axis and determine when limits have been violated requiring repositioning. Normally, these values do not need adjustment. The following slides give a more detailed description of each variable. As a general rule, large changes in the tool vector directions should be avoided with 5 axis tool paths to avoid unexpected repositioning.
41
5 Axis Generic Post Post Rotary Limit Tolerances The tolerance settings for wind up determines at what point to add or subtract from the internal revolution counter. The comparison is to the raw angle calculations which are in the range of 0 to 360 degrees. The design is to prevent moves exceeding this threshold. #Tolerance settings for wind up p_tol_ang : 210 #Primary angle move to exceed for direction change s_tol_ang : 210 #Secondary angle move to exceed for direction change d_tol_ang : 210 #Dummy angle move to exceed for direction change
5 Axis Generic Post Post Rotary Limit Tolerances 'p_rsoft_tol' is the primary angle change in degrees to exceed to trip for tool reposition or adjustment to the secondary axis. For 'rotary limits less than 180 degrees', 'equal or greater than 180 degrees and less than 360 degrees' and 'soft limit at 0-360 degrees' any rotary move exceeding the value makes a call to the routines to check for limit violations or adjustment to the secondary axis. #pri_limtyp = 1, tolerance to validate tripping limit # reset the p_frc_adj_sec flag when back to normal range #pri_limtyp = 2, angle move >= to trigger reposition on primary and # angle move >= with rev5 or 180 reposition to validate tripping limit p_rsoft_tol : 45
42
5 Axis Generic Post Post Rotary Limit Tolerances The variable 's_soft_tol' is the secondary angle change in degrees to exceed to trip a tool reposition. This tolerance is only used with soft limit at 0-360 degrees on the secondary axis. #sec_limtyp = 2, Angle move >= for reposition s_soft_tol : 270
5 Axis Generic Post Post Rotary Limit Tolerances After a limit has been tripped by either a limit or a large rotary move, the post attempts to adjust the move within an acceptable range. If the recalculated rotary move is below the degree value in 'adj_lim_trp', the limit trip indicators are set off and the repositioning routine is not called. adj_lim_trp : 90
#Angle move in p_pri_rot180 to trip reposition
43
5 Axis Generic Post Post Rotary Limit Tolerances 'p_rsoft_tol3' is the primary angle change in degrees to exceed to trip for tool reposition or adjustment to the secondary axis. For 'greater than 360 degrees' any rotary move exceeding the value makes a call to the routines to check for limit violations or adjustment to the secondary axis. #pri_limtyp = 3 and sec_limtyp = 3 control values p_rsoft_tol3 : 90 #Angle move >= with rev5 or 180 reposition
5 Axis Generic Post Miscellaneous Reals/Integers The post relies on the miscellaneous reals and integers to interpret the users intent and control the rotary axis. These are also used to provide additional functionality. A major problem for any post is understanding what occurred through a null toolchange or a retract and approach from one chain to another. The post can not see if adequate clearance from the part was programmed in the toolpath or if a collision could occur by calling the routines to retract and approach in the post. The post can not determine the optimum starting angles for the rotary axis to avoid tripping a limit. All these and more can be controlled with the miscellaneous reals and integers.
44
5 Axis Generic Post Miscellaneous Integers # mi2 - Absolute or Incremental positioning at top level # 0 = absolute # 1 = incremental
Select absolute or incremental positioning output. Toolchange positioning is always in absolute mode. mi2 = 0: G0 G54 G90 X-.5676 Y7.4665 C182.81 B-25.671 S2139 M3 G43 H1 Z.8198 M8 G1 X-.3588 Y7.4842 Z.7483 C181.73 B-24.288 F6.42 X-.1316 Y7.4968 Z.6799 C180.525 B-22.913
mi2 = 1: G0 G54 G43 H1 G1 G91 X.2272
G90 X-.5676 Y7.4665 C182.81 B-25.671 S2139 M3 Z.8198 M8 X.2088 Y.0177 Z-.0715 C-1.08 B1.383 F6.42 Y.0126 Z-.0684 C-1.205 B1.375
5 Axis Generic Post Miscellaneous Integers # mi3 - Select G28 or G30 reference point return. # 0 = G28, 1 = G30
mi3 selects the reference return position. mpgen5x_millplus uses G74 and the entries in mr3, mr4 and mr5.
45
5 Axis Generic Post Miscellaneous Integers # mi4 - Start initial primary rotary axis bias # +/-999 represents start as close to limit as possible # 0 represents calculate without using bias # Any other value represents an angle in degrees to attempt # to position near. # -999 = Low, 0 = Off/Default, 999 = Hi, Value = Angle bias
A bias is a request to the post to attempt to start the machine position close to the entered value. The actual value output to the post is a result of the internal calculations. 999 and -999 are interpreted as a command to position as close to the limits set in 'pri_limlo' and 'pri_limhi'. 0 indicates that the calculations should occur without attempting any bias.
5 Axis Generic Post Miscellaneous Integers # mi5 - Start initial secondary rotary axis bias # +/-999 represents start as # close to limit as possible # 0 represents calculate without using bias # Any other value represents an angle in degrees to attempt # to position near. # -999 = Low, 0 = Off/Default, 999 = Hi, Value = Angle bias
The secondary bias functions the same as the primary bias except it is subordinate to the primary axis in cases of conflict. 999 and -999 are interpreted as a command to position as close to the limits set in 'sec_limlo' and 'sec_limhi'. 0 indicates that the calculations should occur without attempting any bias.
46
5 Axis Generic Post Miscellaneous Integers The bias settings are used to control the initial rotary axis positions at the start of file or a toolchange. Depending on the machine rotary limits, the user may need to edit 'mi4' and 'mi5' after posting to remove retracts and approaches because of the initial rotary calculations. The post does not have logic to look ahead in the toolpath to determine the optimal start angles. The 'bias_null' variable allows the post to use 'mi4' and 'mi5' to adjust the angle through a null toolchange (no change in tool number). bias_null
:1
#mi4 and mi5 bias are applied at null toolchanges
5 Axis Generic Post Miscellaneous Integers # mi6 - Add work shift position for rotation center programming # 0 = Output relative to work origin (toolplane) # 1 = Output relative to WCS origin (axis shifts)
Depending on the type of toolpath (5 axis motion or toolplane positioning), the user may want to select a different work origin on the machine tool. The part origin must remain a constant with 5 axis motion. With toolplane positioning the user may select a different origin location and enter the work offset in the control register. mi6 shifts the output coordinates to the origin selected in Mastercam for toolplane positioning. 5 axis toolpaths are always output relative to the Mastercam WCS origin.
47
5 Axis Generic Post Miscellaneous Integers # mi7 - Enable retract to and from linear limits. Disable for # internal work to prevent part collisions. # 0 = Disable, 1 = Enable
mi7 disables the post generated retract and approach from the part. The moves should be disabled when the user has made moves in the toolpath to clear the part at a rotary reposition or an obstacle is present where the retract is occurring. The rotary axis moves required to stay in the rotary limits are generated.
5 Axis Generic Post Miscellaneous Integers # mi8 - Safe retract/approach at toolchange. # The tool retracts/approachs to limits from last path to current # path or after/before a toolchange # (limits must be enabled, see 'use_stck_typ') # 0 = Disable all toolchange retract/approach # 1 = Enable null toolchange retract/approach only # 2 = Enable toolchange retract/approach only # 3 = Enable both toolchange retract/approach # 4 = Enable retract/approach between 5 axis chains (cutpos) in # toolpath or sign 1 to 3 negative with toolchange options
mi8 controls when the retract and approach are used relative to the toolpath toolchanges and 5 axis chains. This is needed because the post does not know if the user has made the retract and approach part of the toolpath at toolchanges and the beginning and end of 5 axis chains with multiple cuts.
48
5 Axis Generic Post Miscellaneous Integers # mi9 - Nutating bias calculation. # 0 = Calculate angle bias to original vector # 1 = Bias to positive # 2 = Bias to negative
The calculations for the nutating machine types can be controlled by selecting the linear axis direction that is normal to the plane of the nutated axis. This should be set to avoid erratic rotary axis moves in the toolpath.
5 Axis Generic Post Miscellaneous Integers # mi10 - Secondary axis control (non-nutating) # 0 = Continuous secondary (primary controlled) # 1 = Always stay positive # 2 = Always stay negative
The secondary axis for the non-nutating machine types can be controlled by mi10. This value is normally used with head/head type machines where the secondary axis rotary limits are under 360 degrees. The post controls the travel by temporarily setting the appropriate limit to 0.
49
5 Axis Generic Post Miscellaneous Reals # mr1 - Retract/approach clearance distance at tool reposition
This value is an incremental distance applied to the retract and approach with the post reposition routine. The retract is at rapid and the approach is at the plunge feedrate.
5 Axis Generic Post Miscellaneous Reals # mr2 - Right angle head toolpath conversion (not with nutating machine). # Right angle rotates secondary axis by degrees # The head may only be rotated perpendicular to the secondary axis # 0 = Off, Enter angle for amount of head rotation (RA = +/- 90)
mr2 "rotates" the toolpath on the secondary axis by the entered value. Any value can be entered but the machine must be setup with the direction of the tool in the head so it is in the plane perpendicular to the secondary axis.
50
5 Axis Generic Post Miscellaneous Reals mr2 applies the tool length along the direction of the tool. This is the total distance from the intersection of the tool axis and the spindle axis to the tool tip. mr10 is used for the length along the spindle axis. This is temporarily applied to the axis shift 'saxisz'.
5 Axis Generic Post Miscellaneous Reals mpgen5x_fanuc for Fanuc controls and table/table configuration can be setup to use the offset registers on the machine control. It is not necessary to offset the toolpath (use a tool length or mr10) when using the control registers. Enable the registers with the following variables. The offset for the length is stored in the H register and the shift value is stored in the D register on the machine. use_g45 :1 #Use G45 offset with right angle head (RA) g45_of_add : 30 #Add this number to tool length no. for G45 offset number
T1 M6 G0 G54 G90 Y-.25 C0. B-90. S2139 M3 G45 D31 X.25 G43 H1 Z-1.375 M8 X.1 G1 X0. F6.42
51
5 Axis Generic Post 'mpgen5x_millplus' Miscellaneous Reals # mr3 - Mill Plus G74 toolchange X axis home position # mr4 - Mill Plus G74 toolchange Y axis home position # mr5 - Mill Plus G74 toolchange Z axis home position
Enter the value to be output with the MillPlus G74 home position in the mpgen5x_millplus post.
5 Axis Generic Post Miscellaneous Reals
# mr6 - Absolute Safe height in Z for unwinds and toolchanges # (limits must be enabled and mi8, see 'use_stck_typ') # (set the limits to zero to ignore limits and use this safe height) # 0 = Off
In addition to the automatic retract and approach, the user may specify a safe Z level for rotary reposition and toolchanges. The procedure is ignored when the value is zero. This value is not checked against the linear limits. Note that the stock limits can be ignored even though they must be enabled for this option
52
5 Axis Generic Post Miscellaneous Reals # mr7 - Axis shift for X axis, See 'shft_misc_r' # # mr8 - Axis shift for Y axis, See 'shft_misc_r' # # mr9 - Axis shift for Z axis, See 'shft_misc_r'
The axis shift variables can be modified through the miscellaneous reals as shown. These must be enabled by the post switch shown below. shft_misc_r : 0
#Read the axis shifts from the misc. reals
5 Axis Generic Post Miscellaneous Reals # mr10 - Nutating distance from work coordinate zero to table zero (Z axis) # Non-nutating Z axis shift with RA (See mr2)
mr10 serves double duty to provide entry for incremental shift from the nutating machine Z offset to the table face. This accommodates for the distance from the part zero location to the table offset location. For Right Angle head support with non-nutating machine types, the value is used for the length along the machine spindle.
53
5 Axis Generic Post Post Customization This section provides guidelines for post customization of the postblocks. This post has the sections that contain the calculations encrypted in the PSB file. The remainder of the post can be modified but only between the sections marked as follows: ##### Custom changes allowed below ##### ##### Stop custom changes #####
Outside of these areas are postblock calls into the encrypted section of the post. These calls are critical for proper calculations.
5 Axis Generic Post Postblock Customization Within the areas allowed for modification, the post has many booleans based on the post selection for 'top_map'. This is the option for the coordinate mapping scheme on your control. These sections are not complete in the generic posts. top_map
:0
#Output toolplane toolpaths mapped to top view
Look for the booleans and select the proper postlines based on the setting of 'top_map'. if top_map, if not(top_map),
54
5 Axis Generic Post Postblock Customization Header Output Header information can be placed in the postblock 'pheader'. The post was written with the header information in the postblock 'psof'. pheader
#Call before start of file
##### Custom changes allowed below ##### ##### Stop custom changes ##### psof
#Start of file for non-zero tool number
##### Custom changes allowed below #####
5 Axis Generic Post Postblock Customization Toolchange Output This post has been designed to use one common postblock for toolchange output. This is called for both SOF and toolchanges. p_goto_strt_tl #Make the tool start up at toolchange pfd_shft_inc psign_ang_out ##### Custom changes allowed below #####
Regular toolchanges call 'ptlchg' prior to the call to 'p_goto_strt_tl'. ptlchg
#Tool change
##### Custom changes allowed below ##### pbld, n, "M01", e
55
5 Axis Generic Post Postblock Customization Null Toolchange Output Null toolchange output occurs in 'ptlchg0' and 'p_goto_strt_ntl' postblocks. The calls to the postblocks are in this order. ptlchg0
#Call from NCI null tool change (tool number repeats)
##### Custom changes allowed below ##### p_goto_strt_ntl #Make the tool start up at null toolchange
5 Axis Generic Post Postblock Customization End of Tool Output The post uses a common postblock for the end of a tool path and the end of the file output. pretract #End of tool path, toolchange pretract_mov sav_absinc = absinc coolant = zero
The end of file postblock, 'peof', is called to write the NC code for the program end. This postblock calls 'pretract'. peof #End of file for non-zero tool toolchng = one !gcode #to see that this is the EOF in pretract pretract
56
5 Axis Generic Post Postblock Customization Motion Output The postblocks for motion output are grouped starting with 'prapidout'. The variables may be reordered but 'xout', 'yout', 'zout', 'p_out' and 's_out' should be used for positioning output. These variables output absolute or incremental based on the 'absinc' variable. prapidout
#Output to NC of linear movement - rapid
plinout
#Output to NC of linear movement - feed
pcirout
#Output to NC of circular interpolation
5 Axis Generic Post Postblock Customization Motion Output, Special Routines These postblocks are for specific motion output. 'ppos_cax_lin' is called for toolplane toolpaths with rotary positioning. It's purpose is to output the rotary moves before the linear axis motion. 'p_safe_z' is called when the miscellaneous real 6 (mr6) has been set to a non-zero value and the routine enabled by setting mi8 and 'use_stck_typ' on. The call to 'p_goto_pos' calls back to 'pncoutput' to call the motion output. ppos_cax_lin
#Position the rotary axis before move - rapid
p_safe_z #Safe Z retract move with reposition, see mr6 if safe_z_ret, [ gcode = zero za = safe_z_ret p_goto_pos ]
57
5 Axis Generic Post Postblock Customization Canned Drill Cycles Output The postblocks for canned drill cycles output are grouped starting with 'pdrlcommonb'. pdrlcommonb #Canned Drill Cycle common call, before . . pdrill #Canned Drill Cycle pdrlcommonb
5 Axis Generic Post Postblock Customization Canned Text Output The postblocks for canned text output are grouped starting with 'pcan'. pcan
#Canned text - before output call
pcan1
#Canned text - with move
pcan2
#Canned text - after output call
pcant_out
#Canned text - build the string for output
58
5 Axis Generic Post Postblock Customization Post Overrides Postblocks have been provided to afford some control over the post calculations. These are exposed to allow some flexibility with out having to make custom PSB files. plin0 pfd_shft_ovrd #Overide prior to shift and feed calculation if cutflag = 7, [ !fr_pos fr_pos = plunge_feed ] ppln_mtch_ovrd #Overide plane match, can drill is off if planes don't match if plane_no = zero, [
5 Axis Generic Post Post Error Messages Post Error Messages Strings for error messages can be changed for language conversion. Find this section in the post. # -------------------------------------------------------------------------# Error messages # -------------------------------------------------------------------------#One time message #Calculation scalcerr "ERROR-POST CALCULATION ERROR" scalcerr1 "ERROR-PRIMARY AND SECONDARY PLANES ARE COINCIDENT" scalcerr2 "ERROR-SPINDLE CAN NOT BE ALIGNED TO AXIS, SEE 'spind_align'" scalcerr3 "ERROR-SETUP FOR PRIMARY OR SECONDARY AXIS IS ILLEGAL" sratioerr "ERROR-THE CALCULATED BREAK IS OUTSIDE THE MOVES"
59
5 Axis Generic Post Typical Machine Types The following slides present some typical machine types and the basic settings required in MPGEN5X.
Our thanks to Glenn Stephens of CAD/CAM Consulting Services for allowing us to use his documentation.
5 Axis Generic Post Rotary Table on Trunion Table
60
5 Axis Generic Post Rotary Table on Trunion Table pang_output : 0 #Angle output options, primary sang_output : 0 #Angle output options, secondary str_pri_axis "C" str_sec_axis "A" str_dum_axis "B" mtype : 0 #Machine type (Define base and rotation plane below) rotaxis1 = vecy #Zero rotdir1 = vecx #Direction rotaxis2 = vecz #Zero rotdir2 = vecy #Direction pri_limlo : -9999 pri_limhi : 9999 pri_intlo : -9999 pri_inthi : 9999 sec_limlo : -90 sec_limhi : 90 sec_intlo : -90 sec_inthi : 90
5 Axis Generic Post Rotary Table on Trunion Table (Fadal)
61
5 Axis Generic Post Rotary Table on Trunion Table (Fadal) pang_output : 1 #Angle output options, primary sang_output : 1 #Angle output options, secondary str_pri_axis "A" str_sec_axis "A" str_dum_axis "C" mtype : 0 #Machine type (Define base and rotation plane below) rotaxis1 = vecz #Zero rotdir1 = vecy #Direction rotaxis2 = vecz #Zero rotdir2 = -vecx #Direction pri_limlo : -9999 pri_limhi : 9999 pri_intlo : -9999 pri_inthi : 9999 sec_limlo : 0 sec_limhi : 110 sec_intlo : 0 sec_inthi : 90
5 Axis Generic Post Tilting Head on Tilting Head
62
5 Axis Generic Post Tilting Head on Tilting Head pang_output : 0 #Angle output options, primary sang_output : 0 #Angle output options, secondary str_pri_axis "B" str_sec_axis "A" str_dum_axis "C" mtype : 2 #Machine type (Define base and rotation plane below) rotaxis1 = vecz #Zero rotdir1 = vecx #Direction rotaxis2 = vecz #Zero rotdir2 = -vecy #Direction use_tlength : 1 #Use tool length, read from tool overall length toollength : 100 #Tool length if not read from overall length shift_z_pvt : 1 #Shift Z by tool length, head/head program to pivot (Z axis only) pri_limlo : -120 pri_limhi : 120 pri_intlo : -120 pri_inthi : 120 sec_limlo : -90 sec_limhi : 30 sec_intlo : -90 sec_inthi : 30
5 Axis Generic Post Tilting Head on Tilting Head (Gantry)
63
5 Axis Generic Post Tilting Head on Tilting Head (Gantry) pang_output : 0 #Angle output options, primary sang_output : 0 #Angle output options, secondary str_pri_axis "C" str_sec_axis "A" str_dum_axis "B" mtype : 2 #Machine type (Define base and rotation plane below) rotaxis1 = -vecy #Zero rotdir1 = vecx #Direction rotaxis2 = vecz #Zero rotdir2 = -vecy #Direction use_tlength : 1 #Use tool length, read from tool overall length toollength : 100 #Tool length if not read from overall length shift_z_pvt : 1 #Shift Z by tool length, head/head program to pivot (Z axis only) pri_limlo : -5 pri_limhi : 365 pri_intlo : 0 pri_inthi : 360 sec_limlo : -135 sec_limhi : 135 sec_intlo : -135 sec_inthi : 135
5 Axis Generic Post Rotary Table/Tilting Head
64
5 Axis Generic Post Rotary Table/Tilting Head pang_output : 0 #Angle output options, primary sang_output : 0 #Angle output options, secondary str_pri_axis "A" str_sec_axis "B" str_dum_axis "C" mtype : 1 #Machine type (Define base and rotation plane below) rotaxis1 = vecz #Zero rotdir1 = vecy #Direction rotaxis2 = -vecx #Zero rotdir2 = vecz #Direction pri_limlo : -9999 pri_limhi : 9999 pri_intlo : -9999 pri_inthi : 9999 sec_limlo : -5 sec_limhi : 180 sec_intlo : 0 sec_inthi : 180
5 Axis Generic Post Rotary Table/Tilting Head (Cincinnati)
65
5 Axis Generic Post Rotary Table/Tilting Head (Cincinnati) pang_output : 0 #Angle output options, primary sang_output : 0 #Angle output options, secondary str_pri_axis "B" str_sec_axis "A" str_dum_axis "C" mtype : 1 #Machine type (Define base and rotation plane below) rotaxis1 = vecz #Zero rotdir1 = vecx #Direction rotaxis2 = vecz #Zero rotdir2 = vecy #Direction use_tlength : 1 #Use tool length, read from tool overall length toollength : 100 #Tool length if not read from overall length shift_z_pvt : 1 #Shift Z by tool length, head/head program to pivot (Z axis only) pri_limlo : -9999 pri_limhi : 9999 pri_intlo : -9999 pri_inthi : 9999 sec_limlo : -30 sec_limhi : 120 sec_intlo : -30 sec_inthi : 120
5 Axis Generic Post Rotary Table on Rotary Table (Nutating)
66
5 Axis Generic Post Rotary Table/Rotary Table (Nutating) Note: These setting reflect a Deckel Maho Gildemeister machine tool with the ISO MillPlus control. The 'mpgen5x_millplus' generic 5 axis post should be modified in this case. top_map : 0 #Output toolplane toolpaths mapped to top view str_pri_axis "C" str_sec_axis "B" str_dum_axis "A" str_n_a_axis "A5=" str_n_b_axis "B5=" str_n_c_axis "C5=" mtype : 3 #Machine type (Define base and rotation plane below) rotaxis1 = vecy #Zero rotdir1 = vecx #Direction rotaxis2 = vecz #Zero rotdir2 = vecx #Direction p_nut_restore #Postblock, restores original axis settings result = updgbl(rotaxis1, vecy) #Zero result = updgbl(rotdir1, vecx) #Direction result = updgbl(rotaxis2, vecz) #Zero result = updgbl(rotdir2, vecx) #Direction
5 Axis Generic Post Rotary Table/Rotary Table (Nutating) nut_ang_pri : -45 #Nutating head secondary axis angle from machine Z positive saxisx : 0 #The axis offset direction? saxisy : 0 #The axis offset direction? saxisz : 0 #The axis offset direction? n_saxisx : 0 #The axis offset direction? n_saxisy : 0 #The axis offset direction? n_saxisz : 6.1027 #The axis offset direction? top_type : 3 #With 'top_map' select the top toolplane output pri_limlo : -9999 pri_limhi : 9999 pri_intlo : -9999 pri_inthi : 9999 sec_limlo : -9999 sec_limhi : 9999 sec_intlo : -9999 sec_inthi : 9999
67
5 Axis Generic Post Generic 5 Axis Post Policy The generic 5 axis posts are supplied to the dealer and end user at no charge. The Post Department will make bug fixes (as determined by CNC Software) at no charge. Requests to the Post Department to configure the post for specific machine tools or to add support for 5 axis machine tools outside the design parameters of this post are subject to a charge. The standard post quoting procedure should be followed in these cases.
5 Axis Generic Post 5-axis and complex post training End of Presentation
68