GO2cam Pascal API
Post-Processor Documentation

Table of Contents

Processing PP

Overview

A post-processor is made up of two parts:

  • A DPP parameters file
    • These parameters specify the DB reading mode (Canned,...)
    • These parameters specify the generated blocks format.
  • procedures files with PASCAL PAS, INC format
    • These procedures are called to generate NC blocks.
    • They will allow the developer to master all NC blocks.
    • They have different functions to read DB information and create NC blocks at their disposal.

Processing of a part with a post-processor:

  • interpreter file analysis, and display of possible errors.
  • read machining operations list, that will allow access to the cycles, tools, ... list
  • call the PARAMETER_STANDARD procedure, to manage specific parameters input.
  • processing of cycles according to DPP parameters, and calling of interpreter different procedures: POINT, LINE, ...
    • These procedures read DB information and then write NC blocks.

The interpreter processes only one file made of the following files, as listed:

  • dat\RES_IPPG.DAT : TYPE and CONST allowing dialogue with GO2cam.
  • pp\client.INC : TYPE and CONST specific to customer post-processor.
  • ppstd\standard.INC: TYPE, CONST and FORWARD of PROCEDURES of standard.
  • pp\client.PAS : PROCEDURES specific to customer post-processor.
  • ppstd\standard.PAS: standard PROCEDURES that can be used by customer post-processor.
  • these files can also have calls to libraries procedures which are included.

TYPE used:

  • TR3 = array[0..2] of real;
  • TR9 = array[0..8] of real;
  • TC255 = array[0..254] of char;
  • TC500 = array[0..499] of char;
  • TC80 = array[0..79] of char;
  • TC16 = array[0..15] of char;

CONST for calling functions:

  • OUTPUT_NC_ : write NC blocks
  • WRITE_NC_ : write NC states
  • READ_NC_ : read NC states
  • READ_PATH_ : read information on toolpath element
  • READ_PART_ : read information on current cycle
  • READ_PROF_ : read information on profile element (can)
  • is : test on cycle or toolpath element
  • PPLOAD_ : load a cycle, profile, ...
  • util : various utilities
  • READ_DPP_ : access to DPP file parameters.
  • SPI_GEN, SPI_CAL, SPI_LOC, SPI_FIL, SPI_WIN

CONST access keys and toggle values

  • B... TOGGLE access key
  • E... INTEGER access key
  • R... REAL access key
  • S... character string access key
  • CONST_ toggle value

Planes

Overview

A model is used to process each machining plane. This model is defined in the DPP file. It notably specifies keys used for each coordinate. It also specifies the processing carried out on coordinates, as well as the positioning mode. The model must be selected with WRITE_NC_init_plane before any utilization. A default model is selected at the beginning, according to the type of post-processor and DPP file. The default model associated to the plane can be selected: WRITE_NC_init_plane_db

Important Functions

See also
WRITE_NC_init_plane, WRITE_NC_init_plane_db, TEST_change_plane, READ_PART_cycle_plane_type, READ_PART_rot_angles, READ_PART_origin_no, READ_PART_ori_coord, OUTPUT_NC_primary, OUTPUT_NC_secondary

Other Useful Functions

See also
READ_PART_memo_plane_type, READ_NC_plane_no, READ_PART_plane_name, READ_PART_plane_no, READ_PART_plane_mat, TEST_plane_fictiv, TEST_exist_start_plane

Positioning on Plane

Positioning on plane processing is defined in the DPP model.

See also
READ_PART_rot_angles, READ_PART_subroutine_angles, READ_PART_rotcal_angles, OUTPUT_NC_primary, WRITE_NC_primary, READ_NC_primary, OUTPUT_NC_secondary, WRITE_NC_secondary, READ_NC_secondary

Plane Origin

Plane origin processing is defined in the DPP model, by the plane processing type and the origin expression.

See also
READ_PART_origin_no, READ_PART_ori_coord, WRITE_NC_origin_no, WRITE_NC_origin_coord, READ_PART_plane_ori, READ_PART_plane_ori_no, WRITE_NC_plane_origin, READ_NC_origin_validate, WRITE_NC_plane_translate

Coordinates Processing

Information on coordinates processing can allow modification of cycle processing.

See also
TEST_paxis3_orthogonal, TEST_paxis3_recalculate, TEST_pplane_recalculate

Machining Plane List

The machining plane list used by the machining operations list can be accessed by the FILE_BEGIN procedure. Warning, "imaginary" planes obtained in A/B/C Rotation subprogram do not appear in this list. Moreover, it is important to use WRITE_NC_init_plane properly, to obtain correct information.

See also
READ_PART_plane_number, UTIL_load_plane, READ_PART_plane_list

Developed Planes

See also
READ_PART_plane_radius, READ_PART_plane_cone, READ_PART_inter_plane, UTIL_init_dev_decomposed, UTIL_init_dev_flank, UTIL_init_dev_shift, UTIL_init_dev_rot4, UTIL_point_dev_calculate, UTIL_calc_point_rot4, UTIL_point_dev_offset, UTIL_point_dev_flank

Calculation Specific Utilities

See also
UTIL_rot_point, UTIL_matrix_coord, UTIL_matrix_rot, UTIL_matrix_rot_inv, UTIL_matrix_angle

Sub-programs

Overview

The subprograms are numbered according to the DPP parameters. The GO2cam subprograms occupy the first numbers. The MULTIPASSES-Z and MULTI-HOLES subprograms then follow. The subprograms will be generated according to their numbers order. The MULTIPASSES-Z subprograms can include Z movements.

Different procedures are used, according to subprogram or blocks call processing.

See also
SUB_BEGIN, SUB_END, SUB_CALL, SPM_BEGIN, SPM_END, SPM_CALL, WRITE_NC_program_no (necessary for relative numbering).

Single Tool Subprograms

When a subprogram uses only one tool, the OPERATION_BEGIN procedure is called before the first subprogram call. This allows to output the subprogram tool call, as well as the plane positioning and spindle start. TEST_spm_call=CONST_YES (or TEST_cycle_spindle) can be tested. In this case, movements must be avoided in OPERATION_BEGIN.

OPERATION_BEGIN Procedure Calls

The OPERATION_BEGIN procedure is also called twice at the beginning of each subprogram:

1) to properly initialize the plane and the tool. Blocks output is deactivated.

test TEST_change_plane = CONST_YES
test TEST_change_tool = CONST_YES
test TEST_spm_call = CONST_YES

2) to generate necessary blocks

test TEST_change_plane = CONST_NO
test TEST_change_tool = CONST_NO
test TEST_spm_call = CONST_NO

ABC Rotation Subprograms

The ABC rotation subprograms use OPERATION_BEGIN between each call with TEST_plane_fictiv!=CONST_YES. The other non-decomposed subprograms use TRANSFO... procedures.

See also
OPERATION_BEGIN, TEST_plane_fictiv, TEST_spm_call, CALL_ROTATION, CALL_TRANSLATION, CALL_TRANSLATION_ROTATION, CALL_SYMMETRY, CALL_HOMOTHETY, CALL_EDM_TECHNOLOGY (EDM)

Examples of Special Blocks

First key position after N: 6

PCALL(OUTPUT_NC_tab_index,'VTL1',14.1,1); { CLE REEL "VTLIN1[" "]=" }
PCALL(OUTPUT_NC_tab_index,'VTL2',15.1,2); { CLE REEL "VTLIN2[" "]=" }
PCALL(OUTPUT_NC_tab_index,'VTL3',16.1,1); { CLE REEL "VTLIN3[" "]=" }
PCALL(OUTPUT_NC_tab_index,'VTL4',17.1,2); { CLE REEL "VTLIN4[" "]=" }
WRITEB;
N20 VTLIN1[1]=14.1 VTLIN2[2]=15.1 VTLIN3[1]=16.1 VTLIN4[2]=17.1
PCALL(OUTPUT_NC_pplane_db,0);
PCALL(OUTPUT_NC_paxis3_db,0);
IF TESTMOVE THEN PCALL(OUTPUT_NC_rapid);
PCALL(OUTPUT_NC_tab_str,'PROC1','TOTO',1); { CLE STR "" }
PCALL(OUTPUT_NC_tab,'RVAL1_1',14.1,1); { CLE REEL "" TABUL -1 }
PCALL(OUTPUT_NC_tab,'RVAL1_2',15.1,1); { CLE REEL "," TABUL -1 }
PCALL(OUTPUT_NC_tab,'RVAL1_3',16.1,1); { CLE REEL "," TABUL -1 }
PCALL(OUTPUT_NC_tab_str,'FIN1',')',1); { CLE STR "" TABUL -1 }
PCALL(OUTPUT_NC_tab_str,'PROC2','TITI',1); { CLE STR "" }
PCALL(OUTPUT_NC_tab,'RVAL2_1',14.2,1); { CLE REEL "" TABUL -1 }
PCALL(OUTPUT_NC_tab,'RVAL2_2',15.2,1); { CLE REEL "," TABUL -1 }
PCALL(OUTPUT_NC_tab,'RVAL2_3',16.2,1); { CLE REEL "," TABUL -1 }
PCALL(OUTPUT_NC_tab_str,'FIN2',')',1); { CLE STR "" TABUL -1 }
WRITEB;
N100 G0 Z2. TOTO(14.1,15.1,16.1) TITI(14.2,15.2,16.2)
PCALL(OUTPUT_NC_tab_str,'DEBUT','(',1); { CLEF STR "" }
PCALL(OUTPUT_NC_tab_index,'P0',21.4,21); { CLEF REEL "P" "=" TABUL -1 }
PCALL(OUTPUT_NC_tab_index,'P1',22.4,22); { CLEF REEL ",P" "=" TABUL -1 }
PCALL(OUTPUT_NC_tab_index,'P2',23.4,23); { CLEF REEL ",P" "=" TABUL -1 }
PCALL(OUTPUT_NC_tab_index,'P3',90.4,90); { CLEF REEL ",P" "=" TABUL -1 }
PCALL(OUTPUT_NC_tab_str,'FIN',')',1); { CLEF STR "" TABUL -1 }
ECRIB;
N200 (P21=21.4,P22=22.4,P23=23.4,P90=90.4)
STRCPY(str,'toto(');
PCALL(UTIL_key_value,'RVAL',14.0,strclef); { RVAL : real key }
STRCAT(str,strclef); { maximum 3 decimals }
STRCAT(str,','); { + sign necessary}
PCALL(UTIL_key_value,'RVAL',-15.001,strclef);
STRCAT(str,strclef);
STRCAT(str,')');
PCALL(OUTPUT_NC_tab_str,'SP',str,0);
WRITEB;
N5 toto(+14.0,-15.001)

Procedures

INTERPRETER procedures called by GO2cam. The absence of a non-optional procedure will cause an error. The procedure identifier can be accessed by ICALL(PPI_CALL).

Machine Types:

  • MILLING: MILLING machine type
  • LATHE: LATHE machine type
  • EDM: WIRE EDM machine type
  • LIVETOOL: rotary tools on LATHE machine type
  • optional: optional procedure, no error if missing.

Initial Dialog Box Procedures

PARAMETER_SPECIFIC

Version: 5.1

Procedure called before processing PPs V5 (if it exists). In this case PARAMETER_STANDARD is only called by editing machine.

PARAMETER_STANDARD

Version: 4.4

Procedure called before operations list processing to define configuration page.

PARAMETER_UPDATE (optional)

Version: 4.4

Procedure called to process user actions in configuration page. Updating is automatic if this procedure is missing. When it is present, it must process all types of data (integer, real, etc.).


Processing Start Procedures

FILE_BEGIN

First procedure called after modifiers processing. Avoid NC blocks output in this procedure. It is in this procedure that the processing flags must be updated according to modifiers values.

FILE_CUT

Procedure called to split the program according to DPP parameters: number of blocks, characters, etc. This procedure can generate a special code for the DNC, or carry out a clearance and open a new file.

See also
OUTPUT_NC_cut_program

PP_BEGIN

Procedure called at the beginning of each program. This procedure will output program number (ie: O0001). It will be called several times in case of 1 program per turret.

Example:

PROCEDURE PP_BEGIN;
BEGIN
PCALL(OUTPUT_NC_TAB,'%',10,CONST_YES);
writeb;
END;

Operation Procedures

OPERATION_BEGIN

Machining operation start procedure, allowing to process the machining plane, tool change, spindle start, coolant start, etc.

  • at start of each machining sub-cycle.
  • before calling a subprogram using only one tool.
  • at the beginning of a subprogram to select the plane (blocks output is deactivated)
  • change machining plane between subprogram calls of A,B,C rotation type.

Example:

PROCEDURE OPERATION_BEGIN;
VAR
int_ToolNb,int_ToolLengthOffset,int_ToolDiaOffset,int_NumPlane : INTEGER;
int_BRotDir,int_BUnit,int_Range,int_Coolant : INTEGER;
real_Speed : REAL;
BEGIN
{ output tool change. ie : M06 T5 }
PCALL(READ_PART_tool,int_ToolNb,int_ToolLengthOffset,int_ToolDiaOffset);
PCALL(OUTPUT_NC_tab,'T',int_ToolNb,CONST_YES);
PCALL(OUTPUT_NC_M,6,CONST_YES);
writeb;
{ output origin. ie : G54}
PCALL(READ_PART_origin_no,int_NumPlane);
PCALL(OUTPUT_NC_G,int_NumPlane,CONST_YES);
writeb;
{ output spindle start. ie : M03 S3000 }
PCALL(READ_PART_rotation,int_BRotDir);
PCALL(READ_PART_spindle,real_Speed,int_BUnit,int_Range);
PCALL(OUTPUT_NC_spindle,real_Speed,int_BUnit,int_Range);
PCALL(OUTPUT_NC_rotation,int_BRotDir);
writeb;
{ output coolant. ie : M08 }
PCALL(READ_PART_coolant,int_Coolant);
PCALL(OUTPUT_NC_coolant,int_Coolant);
writeb;
END;
void OUTPUT_NC_tab(const std::string &Key, double Rval, int Iforce)
writes key address+value in buffer block.
Definition pp_pas20.c:1823
void OUTPUT_NC_rotation(int Bsens)
writes spindle stop/rotation in buffer block according to .DPP
Definition pp_pas20.c:1456
void OUTPUT_NC_spindle(double Rval, int Bunite, int Igamme)
writes spindle speed range + spindle in block according to .DPP
Definition pp_pas20.c:1695
void OUTPUT_NC_coolant(int Inum)
writes the coolant number in the buffer block according to .DPP Try Inum as index,...
Definition pp_pas20.c:431
void READ_PART_spindle(double *Rval, int *Bunit, int *Igam)
read PPG processed spindle speed (at debut_pp : 1st cycle spindle range speed)
Definition pp_pas30.c:6237
void READ_PART_coolant(int *Inum)
read coolant number
Definition pp_pas30.c:916
void READ_PART_origin_no(int *Inum)
read origin number (cumul plane and translations) Generally used in ORI_DECAL
Definition pp_pas30.c:3409
void READ_PART_rotation(int *Bsens)
read spindle rotation re-processed by PPG according to plane, inversion, standard techno fcts
Definition pp_pas30.c:5656
void READ_PART_tool(int *Iout, int *Icorl, int *Icord)
read tool re-processed by PPG (tec fct)
Definition pp_pas30.c:6744

CHANGE_TOOL (MILLING-LATHE)

Version: 6.5

Change of tool for Sister tools without changing operation. Use TEST_change_tool to make difference between new tool or replace tool.

CHANGE_PLANE (MILLING-LIVETOOL)

Version: 5.5

Change of plane angles without changing operation. This procedure allows to change the rotary angles of a plane without changing operation. It will be called on hole cycles and macros with orientation change on the same sub-cycle. It will only be called if the DPP is configured for this. When it is absent, the operation is broken, meaning OPERATION_END then OPERATION_BEGIN will be called.

OPERATION_END

Version: 4.4

Operation end procedure, allowing to carry out a retraction. This procedure is called at the end of each sub-cycle, and between each A,B,C ROTATION subprogram call.

See also
TEST_change_tool, TEST_change_plane, TEST_part_return_next, SPECIFIC_END

CHANGE_DIAMETER_OFFSET (MILLING-LATHE)

Change diameter compensation.

CHANGE_LENGTH_OFFSET (MILLING-LATHE)

Change length compensation. This procedure is called for shovel tools with 2 pilot points in turning.


Techno Function Procedures

SPECIFIC_BEGIN

"Techno" cycle start procedure.

TECHNO_FUNCTION

Specific techno functions processing.

See also
READ_PART_customer_type, READ_PART_customer_value, READ_PATH_point

TECHNO_FUNCTION_PROBE (MILLING-LATHE)

Probe techno functions processing.

See also
READ_PART_probing_touch_number, READ_PART_probing_touch_point, READ_PART_probing_touch_vector

SPECIFIC_END

"Techno" cycle end procedure, allowing to carry out a retraction. This procedure is called at the end of each "techno" cycle.

See also
TEST_change_tool, TEST_change_plane, TEST_part_return_next, OPERATION_END

PART_RETURN (LATHE)

RETURN or REWORKING techno function.

See also
READ_PART_z_part_return

Sub-program Procedures

SPM_BEGIN

NC subprogram beginning procedure.

See also
READ_PART_subroutine_no, READ_PART_subroutine_type, READ_PART_multi_pass

SPM_CALL

Procedure calling a NC subprogram.

See also
READ_PART_subroutine_no, READ_PART_subroutine_type, READ_PART_multi_pass

SPM_END

NC subprogram end procedure.

See also
READ_PART_subroutine_no, READ_PART_subroutine_type, READ_PART_multi_pass

SUB_BEGIN

Blocks sequence start procedure to call.

See also
READ_PART_recall_start, READ_PART_recall_end

SUB_CALL

Blocks sequence call procedure.

See also
READ_PART_recall_start, READ_PART_recall_end

SUB_END

Blocks sequence end procedure to call.

See also
READ_PART_recall_start, READ_PART_recall_end

CALL_ROTATION

NC Rotation before a subprogram call.

See also
READ_PART_subroutine_rot

CALL_TRANSLATION

NC Translation before a subprogram call.

See also
READ_PART_subroutine_trans, READ_PART_ori_coord

CALL_TRANSLATION_ROTATION

NC Translation and Rotation before a subprogram call.

See also
READ_PART_subroutine_transrot

CALL_SYMMETRY

NC Symmetry before a subprogram call.

See also
READ_PART_subroutine_sym

CALL_HOMOTHETY

NC Rescale before a subprogram call.

See also
READ_PART_subroutine_hom

CALL_EDM_TECHNOLOGY (EDM)

EDM techno parameters before a subprogram call.

See also
READ_PART_subroutine_tecedm

Processing End Procedures

PP_END

Program end procedure. This procedure will output end program M code (ie: M30). It will be called several times in case of 1 program per turret.

Example:

PROCEDURE PP_END;
BEGIN
PCALL(OUTPUT_NC_M,30,CONST_YES);
writeb;
END;

FILE_END

End of NC file.

FILE_TREATMENT (optional)

Version: 4.4

This procedure is optional. It is called after closing the ISO file. It can be present in a specific file: "pp.PPI". It can use the READ_PART_cut_file_name function. It can be used to adapt files for a customer DNC.


Milling Canned Cycle Procedures

CYCLE_DRILLING_SIMPLE (MILLING-LIVETOOL)

Canned SIMPLE DRILLING type cycle procedure (ie: G81).

See also
PAP_SPECIAL (MILLING-LIVETOOL, optional)

CYCLE_DRILLING_CHIPBREAKING (MILLING-LIVETOOL)

Canned CHIP-BREAKING DRILLING type cycle procedure (ie: G82).

See also
PAP_SPECIAL (MILLING-LIVETOOL, optional)

CYCLE_DRILLING_DEBURRING (MILLING-LIVETOOL)

Canned DEBURRING DRILLING type cycle procedure (ie: G83).

See also
PAP_SPECIAL (MILLING-LIVETOOL, optional)

CYCLE_DRILLING_COUNTERBORING (MILLING-LIVETOOL)

Canned COUNTERBORING cycle procedure.

See also
PAP_SPECIAL (MILLING-LIVETOOL, optional)

CYCLE_DRILLING_REAMING (MILLING-LIVETOOL)

Version: 4.5

Canned reaming cycle procedure. Use INTEGER_MILL_CYCLE_NO to choose a NC cycle. The old REAMING1,2,3,4 procedures have priority when they are present to ensure compatibility.

See also
PAP_SPECIAL (MILLING-LIVETOOL, optional)

CYCLE_DRILLING_TAPPING (MILLING-LIVETOOL)

Canned TAPPING cycle procedure (ie: G84).

See also
PAP_SPECIAL (MILLING-LIVETOOL, optional)

CYCLE_DRILLING_CANCEL (MILLING-LIVETOOL)

Positioning, retraction or rapid approach for drilling, counterboring, tapping and reaming cycles. (POINT (MILLING-LATHE) is never called on these cycles).

CYCLE_HOLE_TOOLPATH (MILLING-LIVETOOL)

Version: 5.6

Canned cycle on HOLE machining by circular Interpolation.

See also
READ_PATH_radius, READ_PART_boolean_tec, READ_PART_integer_tec, READ_PART_real_tec, TEST_CYCLE_HOLE_TOOLPATH (MILLING-LIVETOOL)

CYCLE_HOLE_THREAD (MILLING-LIVETOOL)

Version: 5.7

Canned cycle on HOLE Threading.

See also
TEST_CYCLE_HOLE_THREAD (MILLING-LIVETOOL)

CYCLE_HOLE_BACKMACHINING (MILLING-LIVETOOL)

Version: 5.7

Canned cycle on HOLE back machining.

See also
READ_PART_back_depth, TEST_CYCLE_HOLE_BACKMACHINING (MILLING-LIVETOOL)

CYCLE_PROFILE (MILLING)

Canned cycle on milling profile. This cycle was used to generate NURBS on a SIEMENS.

PAP_SPECIAL (MILLING-LIVETOOL, optional)

Version: 4.5

Canned DRILLING, COUNTERBORING, REAMING or TAPPING cycle procedure. This procedure, if present, is called when the cycle special number (INTEGER_MILL_CYCLE_NO) is negative. This allows to perform specific processing in a customer post-processor, while preserving standard processing.

See also
CYCLE_DRILLING_REAMING (MILLING-LIVETOOL), CYCLE_DRILLING_COUNTERBORING (MILLING-LIVETOOL), CYCLE_DRILLING_TAPPING (MILLING-LIVETOOL), CYCLE_DRILLING_SIMPLE (MILLING-LIVETOOL), CYCLE_DRILLING_DEBURRING (MILLING-LIVETOOL), CYCLE_DRILLING_CHIPBREAKING (MILLING-LIVETOOL)

Turning Canned Cycle Procedures

CYCLE_TURN_CENTERING (LATHE)

Canned CONST_CENTERING centering cycle.

See also
READ_PATH_safety_distance, READ_PATH_altitude_return, READ_PART_drill_depth, READ_PART_dwell, READ_PATH_feed
  • RTT_DIAMETRE_MAXI, BOOLEAN_TURN_MACHINING_DIRECTION

CYCLE_TURN_DRILLING (LATHE)

Canned CONST_DRILLING drilling cycle. Use BOOLEAN_TURN_DRILLING_TYPE.

See also
READ_PATH_point, READ_PATH_safety_distance, READ_PATH_altitude_return, READ_PART_drill_depth, READ_PART_dwell, READ_PATH_feed
  • BOOLEAN_TURN_OFFSET, BOOLEAN_TURN_MACHINING_DIRECTION

CYCLE_TURN_PECKING (LATHE)

Canned pecking cycle. CONST_PECKING PP cycle. GO2cam CONST_TOOL_PECKING, CONST_SIMPLE_PECKING cycles. READ_PATH_point : with approach distance.

See also
READ_PATH_point, READ_PATH_angle, READ_PATH_point_end, READ_PART_turn_canned_safety_dist, READ_PART_dwell
  • BOOLEAN_TURN_MACHINING_DIRECTION, BOOLEAN_TURN_PILOTED_POINT, REAL_TURN_DWELL_DEPTH, RTT_ANGLE_PIQUAGE

CYCLE_TURN_TAPPING (LATHE)

Canned CONST_TAPPING tapping cycle. BOOLEAN_TURN_MACHINING_DIRECTION for reworking and return.

See also
READ_PATH_point, READ_PATH_safety_distance, READ_PATH_altitude_return, READ_PART_drill_depth, READ_PATH_feed
  • BOOLEAN_TURN_MACHINING_DIRECTION

CYCLE_TURN_GROOVING (LATHE)

Canned CONST_GROOVING grooving cycle. This cycle is rarely canned.

See also
TEST_CYCLE_TURN_GROOVING (LATHE), READ_PATH_point (middle of profile at maximum stock), READ_PART_profile_itn_no, READ_PART_turn_canned_depth, READ_PART_turn_canned_overlength, READ_PART_turn_canned_safety_dist, READ_PART_dwell, READ_PART_feed
  • BOOLEAN_TURN_PILOTED_POINTS_NUMBER, BOOLEAN_TURN_PILOTED_POINT, BOOLEAN_TURN_FINISH_TYPE, BOOLEAN_TURN_TOOLPATH, BOOLEAN_TURN_ALLOWANCE_MANAGE

CYCLE_TURN_PARTING (LATHE)

Canned CONST_PARTING parting off cycle.

See also
TEST_CYCLE_TURN_PARTING (LATHE), READ_PATH_point, READ_PATH_point_end, READ_PART_dwell
  • REAL_TURN_SAFETY_DISTANCE_Z, REAL_TURN_Z_ALLOWANCE, REAL_TURN_FEED_2

CYCLE_TURN_ROUGHING (LATHE)

Canned CONST_ROUGHING roughing cycle without pocket. It is the only roughing cycle that can be canned according to NCs. When the cycle contains pockets, this procedure will only be called if the pocket roughing is also canned. READ_PATH_point: maximum stock, profile reference point.

See also
TEST_CYCLE_TURN_ROUGHING (LATHE), TEST_CYCLE_TURN_ROUGHING_POCKET (LATHE), READ_PATH_point, READ_PART_profile_itn_no (1..8), READ_PART_turn_canned_depth, READ_PART_turn_canned_overlength, READ_PART_turn_canned_safety_dist, READ_PART_feed, READ_PATH_feed
  • BOOLEAN_TURN_MACHINING_DIRECTION, BOOLEAN_TURN_TOOLPATH, BOOLEAN_TURN_OFFSET, BOOLEAN_TURN_RETRACT_TYPE, BOOLEAN_TURN_BACK_MOVE_POINT, BOOLEAN_TURN_CORNER_ROUNDING, BOOLEAN_TURN_ALLOWANCE_MANAGE

CYCLE_TURN_ROUGHING_POCKET (LATHE)

Pocket part of Canned CONST_ROUGHING roughing cycle. CONST_POCKET_ROUGHING PP cycle. This cycle is never canned.

See also
TEST_CYCLE_TURN_ROUGHING_POCKET (LATHE), TEST_CYCLE_TURN_ROUGHING (LATHE), CYCLE_TURN_ROUGHING (LATHE), READ_PATH_point, READ_PART_turn_canned_depth, READ_PART_turn_canned_overlength, READ_PART_turn_canned_safety_dist, READ_PART_feed
  • BOOLEAN_TURN_RETRACT_TYPE, BOOLEAN_TURN_BACK_MOVE_POINT

CYCLE_TURN_ROUGHING_PARALLEL (LATHE)

Canned parallel roughing cycle. This cycle is never canned.

See also
TEST_CYCLE_TURN_ROUGHING_PARALLEL (LATHE), READ_PATH_point, READ_PART_profile_itn_no, READ_PART_turn_canned_depth, READ_PART_turn_canned_overlength, READ_PART_turn_canned_safety_dist, READ_PART_feed
  • BOOLEAN_TURN_MACHINING_TYPE

CYCLE_TURN_THREADING (LATHE)

Canned CONST_THREADING threading cycle. Either a NC cycle generating all passes, or a NC cycle generating only one pass can be used (ie: G33).

See also
TEST_CYCLE_TURN_THREADING (LATHE), READ_PART_thread_pass_nb, LOAD_thread_pass, READ_PROF_point, READ_PATH_point (approach distance included), READ_PATH_point_end (clearance distance included), READ_PATH_angle (element angle), READ_PART_turn_canned_safety_dist (only Rdsz is useful), READ_PART_turn_canned_depth
  • BTT_TYP_PLONGEE, BOOLEAN_TURN_PULL_MACHINING, REAL_TURN_PITCH, REAL_TURN_PASS_DEPTH, REAL_TURN_CONE_LENGTH, RTT_RAPPORT_SOMMET, RTT_RAPPORT_FOND, RTT_ANGLE_FILET, INTEGER_TURN_THREADS_NUMBER, INTEGER_TURN_PASSES_NUMBER, INTEGER_TURN_EMPTY_PASSES_NUMBER

CYCLE_TURN_THREADING_PROFILE (LATHE)

Canned CONST_PROFILE_THREADING threading cycle. This cycle is on profile.

See also
TEST_CYCLE_TURN_THREADING_PROFILE (LATHE), READ_PART_profile_start_point, READ_PART_profile_elt_number, LOAD_profile_elt

Operation Processing Procedures

POINT (MILLING-LATHE)

Rapid positioning (ie: G0 X10 Y0). CYCLE_DRILLING_CANCEL (MILLING-LIVETOOL) is called for drilling, counterboring, tapping, reaming milling cycles.

Example:

PROCEDURE POINT;
BEGIN
IF TESTMOVE THEN
END;
void OUTPUT_NC_rapid()
writes a rapid movement in buffer block according to .DPP : G0 , G1 F5000, ...
Definition pp_pas20.c:1403

POINT_LIVETOOL (LATHE)

Rapid positioning in rotary tools.

POINT_EDM_CONIC (EDM)

Rapid positioning in straight or taper cut.

POINT_EDM_POCKET (EDM)

Rapid positioning in pocketing.

POINT_EDM_4AXIS (EDM)

Rapid positioning in 4 axes EDM.

LINE (MILLING-LATHE)

Output working linear movement (ie: G1 X10 Y0).

Example:

PROCEDURE LINE;
VAR
tr3_Pt : TR3;
BEGIN
PCALL(OUTPUT_NC_G,1,0);
PCALL(READ_PATH_point,tr3_Pt);
PCALL(OUTPUT_NC_pplane,tr3_Pt[0],tr3_Pt[1],4);
PCALL(OUTPUT_NC_paxis3,tr3_Pt[2],0);
writeb;
END;
void OUTPUT_NC_pplane(double Rvalx, double Rvaly, int Iforce)
writes plane 1st and 2nd axis in buffer block.The key used is defined in .DPP and depend on the activ...
Definition pp_pas20.c:1102
void OUTPUT_NC_paxis3(double Rval, int Iforce)
writes plane 3rd axis in buffer block. The key used is defined in .DPP and depend on the active plane...
Definition pp_pas20.c:1041
void READ_PATH_point(double *Pt)
element extremity point : mouvement : point to reach cables : reference point ( extremity point...
Definition pp_pas31.c:1109

LINE_LIVETOOL (LIVETOOL)

Output working linear movement for live tools.

LINE_EDM_CONIC (EDM)

Output working linear movement in straight or taper cutting.

LINE_EDM_POCKET (EDM)

Output working linear movement in EDM pocketing.

LINE_EDM_4AXIS (EDM)

Output working linear movement in 4 axes EDM.

LINE_THREAD (LATHE)

Output working linear movement in decomposed threading.

LINE_RAPID (MILLING-LATHE, optional)

Version: 4.5

Output working linear movement with accelerated feed rate. This procedure is notably used for sloping grooves cycles in turning. When it is missing, LINE (MILLING-LATHE) procedure is used with the rapid feed rate machining of machine file.

LINE_RAPID_LIVETOOL (LIVETOOL)

Output working linear movement with accelerated feed rate for rotary tools.

See also
LINE_RAPID (MILLING-LATHE, optional)

LINE_DIAMETER_OFFSET (MILLING)

Version: 5.5

LINE (MILLING-LATHE) with change on G41/G42/G40 mode. This procedure allows to enable and disable radius compensation during toolpath, elsewhere than in APPROACH_PLANE (MILLING-LATHE) or RETURN_PLANE (MILLING-LATHE). It will be called to process finishing on pocket cycles. Its absence will be reported by a message when it needs to be used.

CIRCLE (MILLING-LATHE)

Output working circular movement (ie: G02 X10. Y0. R 5).

Example:

PROCEDURE CIRCLE;
VAR
int_BSens : INTEGER;
BEGIN
PCALL(READ_PATH_direction,int_BSens);
IF (int_BSens = CONST_CW) THEN PCALL(OUTPUT_NC_G,2,CONST_NO)
ELSE PCALL(OUTPUT_NC_G,3,CONST_NO)
writeb;
END;
void OUTPUT_NC_radius_db()
writes arc center position (IJ or R) in buffer with 1 call. It is equal to : READ_PATH_center(ptc) ...
Definition pp_pas20.c:1377
void READ_PATH_direction(int *Bsens)
arc and pockets/entity toolpath direction
Definition pp_pas31.c:1829
void WRITE_NC_pplane_force()
forces 1st/2nd axis writing to the next PPLAN
Definition pp_pas21.c:691

CIRCLE_LIVETOOL (LIVETOOL)

Output working circular movement for live tools.

CIRCLE_EDM_CONIC (EDM)

Output working circular movement in straight or taper cut.

CIRCLE_EDM_POCKET (EDM)

Output working circular movement in pocketing.

CIRCLE_EDM_4AXIS (EDM)

Output working circular movement in 4 axes EDM.

See also
TEST_CYCLE_4AXIS (EDM, optional)

CIRCLE_THREAD (LATHE)

Output working circular movement in decomposed threading.

APPROACH_3AXIS

Machining toolpath approach in 3 axes milling.

APPROACH_3AXIS_LIVETOOL (LIVETOOL)

Machining toolpath approach in 3 axes for rotary tools.

APPROACH_PLANE (MILLING-LATHE)

Machining toolpath approach in machining plane.

See also
READ_PATH_cutcom

APPROACH_PLANE_LIVETOOL (LIVETOOL)

Machining toolpath approach in rotary tools plane.

See also
READ_PATH_cutcom

APPROACH_PERP (MILLING)

Machining toolpath approach in plunging.

APPROACH_PERP_LIVETOOL (LIVETOOL)

Machining toolpath approach in rotary tools plunging.

APPROACH_EDM_CONIC (EDM)

Machining toolpath approach in straight or taper cut.

APPROACH_EDM_POCKET (EDM)

Machining toolpath approach in pocketing.

APPROACH_EDM_4AXIS (EDM)

Machining toolpath approach in 4 axes EDM.

RETURN_3AXIS (MILLING)

3 axes machining toolpath return in milling.

RETURN_3AXIS_LIVETOOL (LIVETOOL)

3 axes machining toolpath return for rotary tools.

RETURN_PLANE (MILLING-LATHE)

Machining toolpath return in plane.

RETURN_PLANE_LIVETOOL (LIVETOOL)

Machining toolpath return in plane for rotary tools.

RETURN_PERP (MILLING)

Retraction after machining toolpath in milling.

RETURN_PERP_LIVETOOL (LIVETOOL)

Retraction after machining toolpath for rotary tools.

RETURN_EDM_CONIC (EDM)

Machining toolpath return in straight or taper cut.

RETURN_EDM_POCKET (EDM)

Machining toolpath return in pocketing.

RETURN_EDM_4AXIS (EDM)

Machining toolpath return for 4 axes EDM.

SYNCHRO_TOOLPATH (LATHE)

Version: 5.9

Add a synchro on toolpath. Synchro on approach, return points or between other movements.

MULTAX_ACTIV(bval:integer) (MILLING)

Version: 5.5

This function is called to validate or not READ_PATH_point_5axis. This procedure is called just before OPERATION_BEGIN and after OPERATION_END. It is only called when the toolpath and DPP configuration require its use. It is only used on toolpaths with different normal vectors. It is used according to the DPP configuration (5-axis position or 5-axis canned). PPFRA_V5.LIB and PPTOUR_V5.LIB are modified to process this procedure: It activates and deactivates the LIB_MULTAX global when necessary. The procedure parameter is used for this. This global is then tested by the USINAGE_CONTINUE function, which results in the use of READ_PATH_point_5axis, OUTPUT_NC_primary, OUTPUT_NC_secondary.


Test Procedures

TEST_CYCLE_4AXIS (EDM, optional)

Version: 4.4

Procedure allowing to authorize or not processing of a 4 axes EDM cycle, element by element, without segmentation. If this procedure is missing, the guide and part altitudes are compared. The DPP flags allow to accept arcs and to have different types of top and bottom elements always tested.

TEST_CYCLE_HOLE_TOOLPATH (MILLING-LIVETOOL)

Version: 5.6

Procedure allowing to invalidate Canned processing CYCLE_HOLE_TOOLPATH (MILLING-LIVETOOL) to type of use when the DPP is canned.

See also
CYCLE_HOLE_TOOLPATH (MILLING-LIVETOOL)

TEST_CYCLE_HOLE_THREAD (MILLING-LIVETOOL)

Version: 5.7

Procedure allowing to invalidate Canned processing CYCLE_HOLE_THREAD (MILLING-LIVETOOL) to type of use when the DPP is canned.

See also
CYCLE_HOLE_THREAD (MILLING-LIVETOOL)

TEST_CYCLE_HOLE_BACKMACHINING (MILLING-LIVETOOL)

Version: 5.7

Procedure allowing to invalidate Canned processing CYCLE_HOLE_BACKMACHINING (MILLING-LIVETOOL) to type of use when the DPP is canned.

See also
CYCLE_HOLE_BACKMACHINING (MILLING-LIVETOOL)

TEST_CYCLE_TURN_DRILLING (LATHE)

Procedure allowing to invalidate Canned processing according to type of use when the DPP is canned. If this procedure is missing, the Canned is invalidated when REAL_TURN_DRILLING_DIAMETER > REAL_TOOL_DIAMETER or BTT_COTE_DECALAGE <> CONST_CENTER.

See also
BOOLEAN_TURN_DRILLING_TYPE, BOOLEAN_TURN_PILOT_SIDE, REAL_TURN_DRILLING_DIAMETER, REAL_TOOL_DIAMETER, CYCLE_TURN_DRILLING (LATHE)

TEST_CYCLE_TURN_GROOVING (LATHE)

Procedure allowing to invalidate Canned processing according to type of use when the DPP is canned.

See also
CYCLE_TURN_GROOVING (LATHE)

TEST_CYCLE_TURN_PARTING (LATHE)

Procedure allowing to invalidate Canned processing according to type of use when the DPP is canned.

See also
CYCLE_TURN_PARTING (LATHE)

TEST_CYCLE_TURN_ROUGHING (LATHE)

Procedure allowing to invalidate Canned processing according to type of use when the DPP is canned.

See also
TEST_stock_pocket, READ_PART_under_axe_overcut, READ_PART_boolean_tec, CYCLE_TURN_ROUGHING (LATHE)

TEST_CYCLE_TURN_ROUGHING_POCKET (LATHE)

Procedure allowing to invalidate Canned processing according to type of use when the DPP is canned.

See also
CYCLE_TURN_ROUGHING_POCKET (LATHE)

TEST_CYCLE_TURN_ROUGHING_PARALLEL (LATHE)

Procedure allowing to invalidate Canned processing according to type of use when the DPP is canned.

See also
CYCLE_TURN_ROUGHING_PARALLEL (LATHE)

TEST_CYCLE_TURN_THREADING (LATHE)

Procedure allowing to invalidate Canned processing according to type of use when the DPP is canned.

See also
READ_PART_integer_tec (INTEGER_TURN_THREADS_NUMBER), CYCLE_TURN_THREADING (LATHE)

TEST_CYCLE_TURN_THREADING_PROFILE (LATHE)

Procedure allowing to invalidate Canned processing according to type of use when the DPP is canned.

See also
CYCLE_TURN_THREADING_PROFILE (LATHE)

MTE Procedures

MTE_BEGIN (MTE)

Version: 5.13

At the beginning of simulation, like PP_BEGIN for nc output. This procedure is called at the beginning of machine simulation. It allows to initialize parameters, like the PP_BEGIN procedure when outputting nc blocks. It also allows to position axes at the start, using PPMTE_... functions.

MTE_END (MTE)

Version: 5.13

At the end of simulation, like PP_END for nc output. This procedure is called at the end of machine simulation. It allows to perform clearances, using PPMTE_... functions.

MTE_OPERATION_BEGIN (MTE)

Version: 5.13

Before each cycle, allowing to carry out a retraction if tool or plane change. This retraction must be similar to retraction in OPERATION_BEGIN before tool call. This procedure is called at the beginning of each cycle, to perform necessary clearances when changing tool or plane. The tests are the same as in OPERATION_BEGIN, and similar movements must be generated. For this, common variables can be used.

MTE_OPERATION_END (MTE)

Version: 6.01

After each cycle, allowing to carry out a retraction if tool or plane will change. This retraction must be similar to retraction in OPERATION_END. This procedure is called at the end of each cycle, to perform necessary clearances (if the tool will be changed, if the plane will change, etc.). The tests are the same as in OPERATION_END, and similar movements must be generated. For this, common variables can be used.

MTE_APPROACH (MTE)

Version: 5.13

At the beginning of each cycle. First move after tool or rotary axis change, if necessary. This procedure is called at the beginning of each cycle. It allows to perform a first approach movement, if necessary.

MTE_POINT (MTE)

Version: 5.13

Rapid positioning, like POINT (MILLING-LATHE) when outputting nc file. If this procedure does not exist, the movement is done automatically. If this procedure exists, it must output the movement. You can make some tests on specific type. This procedure performs rapid positioning, like the POINT (MILLING-LATHE) procedure when outputting nc blocks. If it is absent, the movement is generated automatically. But if it exists, it must generate the movement. It allows to perform tests and filter certain movements, such as clearances generated at program origin in database, which will be replaced by those of MTE_OPERATION_BEGIN (MTE).

MTE_RETURN (MTE)

Version: 5.13

Return part. It will be done automatically if this procedure does not exist. This procedure manages part return. It will be done automatically if it is absent.

MTE_REWORK(cas) (MTE)

Version: 5.13

Parameters:

  • cas:
    • 0: rework without parting off cycle
    • 1: approach before parting cycle
    • 2: retract after parting cycle

Rework spindle moving to get part. It will be done automatically if this procedure does not exist. This procedure manages counter-spindle movements to grab the part. When there is a parting off, it is called twice, before and after it. A standard management is done if the procedure is absent.

MTE_TECHNO_FUNCTION (MTE)

Version: 5.13

Called on techno function, like TECHNO_FUNCTION for nc file output. You can add specific order to simulation. This procedure is called on techno functions, like the TECHNO_FUNCTION procedure when outputting nc blocks. It allows to give specific orders to the simulation.

MTE_ASM_OFFSET_NUMBER(int_LComp,int_LComp2,int_DComp,str_SpecificID) (MTE)

Version: 6.08

This optional procedure is called by tooling module. You can define your own rule to define the compensation number. All the parameters used by the procedure can be modified to modify the value in the tool table in MTE.

Parameters:

  • int_LComp [in,out]: The current length compensation number defined for the tool
  • int_LComp2 [in,out]: The current length compensation number 2 defined for the tool
  • int_DComp [in,out]: The current diameter compensation number defined for the tool
  • str_SpecificID [in,out]: The current specific ID defined for the tool
See also
UTILMTE_ASM_tool_mounted, UTILMTE_ASM_tool_mounted_trihedral, UTILMTE_ASM_tool_mounted_cycle

MTE_ASM_CHANNEL_AXIS(zblock,xblock,yblock,channel,channel2) (MTE)

Version: 6.09

This optional procedure is called by tooling module. You can define rule to put channels and block positions. All the parameters used by the procedure can be modified to modify the value in the blockaxis table in MTE.

Parameters:

  • zblock [in,out]: Zaxis block value
  • xblock [in,out]: Xaxis block value
  • yblock [in,out]: Yaxis block value
  • channel [in,out]: channel number
  • channel2 [in,out]: second channel number
See also
UTILMTE_ASM_channel_info, UTILMTE_ASM_tool_mounted, UTILMTE_ASM_baxis_value

Direct Functions

Functions called directly and which do not require use of PCALL or ICALL.

WRITEB

Writes NC buffer block in blocks file. Identical to PUNCHB with Itype defined by WRITE_NC_block_format. Blocks numbering is carried out according to .DPP:

POST PROCESSOR GENERALITIES

  • NUMERICAL COMMAND BLOCK
    • 1st block number
    • Incremental step

Example:

WRITEB;
See also
PUNCHB, WRITE_NC_block_format, WRITE_NC_block_no

PUNCHB

Syntax: PUNCHB(Itype)

Writes NC buffer block in blocks file. Format: starting char. / block number address / block / ending char. See additional tools: dpp_punchb()

Itype values:

  • 0: normal output of NC block
  • 1: output with special block number address
  • 2: block output without block number
  • 5: as 0 without starting and ending characters
  • 6: as 1 without starting and ending characters
  • 7: as 2 without starting and ending characters

Example:

PUNCHB(0);
See also
WRITEB, WRITE_NC_block_no, WRITE_NC_block_format

GO2CAMID

Syntax: GO2CAMID(Sclef)

Read constant value in RES_IPPG_GO2CAM.DAT with string value in order to use it with PCALL function.

Remark: Useful for using GO2cam parameters in a .DAT file

Example:

noclef = GO2CAMID(STRING_SYST_DATE);
PCALL(READ_PART_string_tec,noclef,strdate);
void READ_PART_string_tec(int Bind, std::string &Str)
reads the technology,strategy,tool,machine,... strings
Definition pp_pas30.c:8166

TESTMOVE

TRUE if an axis key is activated in progress NC block. TRUE also after function WRITE_NC_testmove.

Example:

IF TESTMOVE THEN
See also
WRITE_NC_testmove, OUTPUT_NC_paxis1, OUTPUT_NC_paxis2, OUTPUT_NC_paxis3, OUTPUT_NC_primary, OUTPUT_NC_secondary

TOLERPP

Tolerance for movement axes.

Remark: Useful for testing a real null value

This is the tolerance below which we consider that there is no movement.

Example:

IF (fabs(Rval) < TOLERPP) THEN
IF (fabs(x2-x1) < TOLERPP) THEN
See also
WRITE_DPP_tolerpp

SPI Functions

Version: 4.4

All SPI_GEN, SPI_CAL, SPI_LOC, SPI_FIL functions can be used. See SPI documentation.

The SPI_WIN_write.. and SPI_WIN_read.. functions can also be used to manage PP parameters.

The SPI_WIN_new_panel and SPI_WIN_call_panel functions allow to display again a new input panel during execution.

Usage:

  1. **SPI_WIN_new_panel** - init panel parameters
  2. **SPI_WIN_write_...** - create parameters
  3. **SPI_WIN_call_panel** - display panel
  4. **SPI_WIN_read_...** - read parameters values

xCall Functions

OUTPUT_NC_...

Functions to write into ISO file.


WRITE_NC_...

Functions to write NC states.

These procedures allow to complete the NC states, so as to retrieve some information later with READ_NC_... procedures. OUTPUT_NC_... procedures automatically complete the concerned NC states.


READ_NC_...

Functions to read NC states.

The PPG never directly completes the NC states: only WRITE_NC_... and OUTPUT_NC_... procedures can complete these states.

Note: However, the PPG initializes these states before the FILE_BEGIN call.


WRITE_DPP_...

Functions to change DPP parameters.


READ_DPP_...

Functions to read DPP parameters.


DIA_...

User dialog and display functions (old post-processors).

The INPUT functions display the question and input is made through the keyboard or, according to flag completed by PPG, they read in the .CFG file.


TEST_...

Tests for complementary information in DB reading.

No parameters are passed in most cases. A CONST_YES/CONST_NO toggle is recovered.

Syntax:

ival := ICALL(is....)

READ_PATH_...

Read toolpath information.

The transformations linked to planes or techno subprograms have already been carried out by PPG by moving the starting point and the point in progress.


READ_PART_...

Read information about cycles, etc.


UTIL_...

Various utilities:

  • mathematical calculation
  • date recovery
  • run system command
  • etc.

LOAD_...

Functions to load a profile in memory, in order to perform a "canned cycle" in the .PAS.


READ_PROF_...

Read geometry information about profiles for canned cycles.


WRITE_PART_...

These functions allow the PP to write in Data Base.


LCFG_...

Functions to read pp.CFG (old post-processors).


SPECIF_...

Functions to change PP processing.