You are on page 1of 218

ROBOFIL 240SL • 440SL / 240cc • 440cc /

380 • X90

Programming manual

205 976 110/en/11.2005 Ver. H

205 976 160/en/11.11.2005


0. General table of contents
Using the manual

1. ISO language - Introduction

2. ISO language - G functions

3. ISO language - M functions

4. ISO language - Special


programming

ROBOFIL
240SL•440SL 5. ISO language: Custom macro B

240cc•440cc
380•X90 6. Command words

7. CT-Expert
Programming manual
8. Installation of the software

9. CT-Graphic preview

IMPRESSUM

Technical data originate from our Wire product line managed by


J. Drouet, CTSA-Geneva.

Typesetting and production by


Edipresse Imprimeries Réunies s.a. / Renens.

CHARMILLES 205 976 210/en/11.11.2005


0.2 CHARMILLES 205 976 210/en/11.11.2005
General table of contents

0. Table of contents
- Using the manual 0.8
- Special case : ROBOFIL 380 0.8

1. ISO language - Introduction


- Systems of coordinates 1.3
- Dimension words 1.4
- Use of decimal point 1.6
- Minimum angular increment 1.6
- Recommendations on the sequences of G and M instructions 1.6

2. ISO language - G functions


ISO language - G functions 2.3
- Numerical index 2.3
- Modal commands 2.5
- Non-modal commands 2.7
Modal commands 2.8
- Move functions 2.8
- Mode selection 2.12
- Offset programming 2.16
- Taper programming 2.22
- Changing the direction of wire inclination 2.26
- Changing the angle of wire inclination 2.27
- Special tapering 2.29
- Programming of an attachment 2.32
Non-modal commands 2.33
- Program execution 2.33
- Measuring 2.40
Supplementary measuring cycles 2.46
- Corner Cycle 2.48
- Align Edge Cycle 2.49
- External Middle Cycle 2.50
- External Centering Cycle 2.51
- Holes Alignment Cycle 2.52

3. ISO language - M functions


Numerical index and description of M functions 3.3
The M70 retrace function 3.10
- Example of application 3.10
- Determination of retrace memory area 3.10
The ∫Scrap remaining/cutting off of attachmentª function 3.11
- Examples 3.12
M11 function 3.13
Side door management (option) 3.13

CHARMILLES 205 976 210/en/11.11.2005 General table of contents 0.3


4. ISO language - Special programming
The sub-program (M98 - M99) 4.3
- Format of a sub-program 4.3
- Sub-program execution 4.4
- Special uses of sub-programs 4.5
The corner recess function 4.7
- Programming 4.7
- Example of programming 4.8
- Précautions 4.9
The corner rounding function (G48 - G49) 4.10
- Programming 4.10
- Specifying the radius of the arc 4.10
- Example of programming 4.11
- Precautions 4.11
Conversion/copy functions (M98) 4.12
- Rotation/copy 4.14
- Scale/copy 4.15
- Mirror/copy 4.16
- Repetitive rotation/copy 4.17
- The centre of the conversion/copy commands 4.19
The reverse/copy function (M96 - M97) 4.20
- Programming 4.21
- Examples of Programming 4.22
- Precautions 4.23
Special taper programming 4.24
- Independent upper and lower corner radii 4.24
- Deviation vector 4.24
- Arc deviation vector 4.25
- Specifying the angle of wire inclination in an independent block 4.26
- Specifying the height of the secondary surface 4.27
- General precautions 4.28
Taper machining: specifying upper and lower shapes 4.29
- Outline 4.29
- Programming 4.29
- Examples of programming 4.33
- Selecting the machining mode 4.34
- Precautions when specifying upper and lower shapes 4.34

5. ISO language: Custom macro B


General 5.3
Variables 5.4
- Variable expressions 5.4
- Quoted variables 5.4
- Undefined variables 5.5
- Displaying and setting variables 5.6
Types of Variables 5.7
- Local variables: #1 to #33 5.7
- Common variables: #100 to #149, #500 to #531 5.7
- System variables 5.7
Arithmetic commands 5.12
- Definition and substitution of variables 5.12

0.4 General table of contents CHARMILLES 205 976 210/en/11.11.2005


- Addition 5.12
- Multiplication 5.12
- Functions 5.12
- Combining arithmetic operations 5.14
- Modifying the arithmetic sequence 5.14
- Precision 5.15
- Notes on reduced precision 5.16
Control commands 5.17
- Branching (GOTO) 5.17
- Iteration (WHILE) 5.19
Creating and registering a custom macro body 5.23
- Creating a custom macro body 5.23
- Registering a custom macro body 5.23
- Macro and CNC statements 5.24
Commands that call macros 5.27
- Calling a macro locally (the G65 command) 5.27
- Calling a macro globally (the G66 command) 5.30
- Multiple calls 5.30
- Multiple global calls 5.31
- Calling macros using G commands 5.31
- Calling subprograms using M commands 5.33
- Calling subprograms using T commands 5.34
- The position of the decimal point in an argument 5.34
- The differences between the M98 and G65 commands 5.35
- Custom macro levels and local variables 5.35
Relationships with other functions 5.36
Special codes and commands used in custom macros 5.38

6. Command words
Command words 6.3
- Movements and machining in the Machine system of coordinates 6.4
- Movements and machining in the Part system of coordinates 6.4
- Predefined movements 6.5
- Technologies and machining settings 6.5
- Auxiliary functions 6.6
- Execution of programs 6.6

7. CT-Expert
Introduction 7.3
Utilization of a sequence in an ISO program 7.4
File management 7.4
Basic menu 7.4
CT-Expert user interface 7.4
- Keyboard 7.5
- Programmable keys (soft keys) 7.5
Automatic construction of a sequence 7.6
- Principle of operation 7.6

CHARMILLES 205 976 210/en/11.11.2005 General table of contents 0.5


- Questionnaire 7.6
- Display of result 7.7
- Modification of result 7.7
- Saving of the result 7.7
Manual construction of a sequence 7.8
- Principle of operation 7.8
- Specification of the machining context 7.8
- Editing of the sequence 7.9
- Modification of the result 7.9
- Saving of the result 7.9
Standard sequences 7.10
- Principle of operation 7.10
- Specification of the machining context 7.10
- Editing of the sequence 7.10
- Modification of the result 7.11
- Saving of the result 7.11
- Saving of the sequence in the standard sequences 7.11
- Deletion of the sequence from the standard sequences 7.11
Rereading of a sequence 7.11
- Principle of operation 7.11
Generation of a command file 7.12
- Principle of operation 7.12
- Conditions concerning the part-program 7.12
- Execution parameterization 7.12
- Multiple parts 7.13
Rectangular layout 7.13
Random layout 7.13
Radial layout 7.14
Part by Part Machining 7.14

8. Installation of the software


Installation 8.3
- Objectives and prerequisites 8.3
- Preparation before installation 8.4
- Installation of version 1.10 8.9
- Reconfiguration after installation 8.18
Changing the language of the software 8.19

0.6 General table of contents CHARMILLES 205 976 210/en/11.11.2005


9. CT - Graphic preview
Introduction 9.3
- Purpose and functioning 9.3
- Hierarchy of the screen pages 9.3
- Activation of the Graphic preview module 9.3
Screen page Graphic Preview (selection) 9.4
Execution procedure 9.6
- Syntax check 9.6
- Loading into memory 9.6
- Drawing 9.7
- Function keys 9.7
Graphic Preview page 9. 8
Context page 9.10
Advanced Options page 9.12
Draw Parameters page 9.14
Alternative representations 9.16
- Isometric display (XYZ) 9.16
- Full Screen page 9.16
Show ISO page 917
Log File page 918

CHARMILLES 205 976 210/en/11.11.2005 General table of contents 0.7


Using the manual

This document serves mainly for preparing and perfecting programs for ROBOFIL machines equipped with
the CT-Millennium numerical control. It consists basically of the following:

- 5 chapters describing the ISO language

- A list of command words available to the user in direct interaction mode (MDI)

- A description of the CT-Expert utility for selecting and preparing machining sequences

- A description of the software updating utility (Boot Loader)

• The general table of contents at the head of the document gives the contents of each chapter, while at
the start of each chapter there is a detailed table of contents.

• The following pages will be particularly useful for finding quickly the information most frequently required:
- List of G functions (ISO language) page 2.1
List of M functions (ISO language) page 3.3
- List of command words used in MDI mode page 6.1

• In chapter 5 (Macro - instructions B of the ISO language), reference is made to SYSTEM parameters that
govern the behavior of certain Macro instructions.

These parameters are not directly accessible to the user. If the default selection is not satisfactory, contact
the Charmilles after-sales service who will supply the information required for gaining access to the
SYSTEM parameters so as to set the desired values.

Special case : ROBOFIL 380

The basic version of the ROBOFIL 380 is not equipped with the automatic threading/rethreading
system.

Because of this the ISO parameters and instructions concerning this function do not apply to
this model.

The following elements in particular are involved :

Screen page EXE - Service - machine configuration - Wire unspooling

0.8 General table of contents CHARMILLES 205 976 210/en/11.11.2005


ISO instructions :

M06 Threading jet ON


M07 Upper contact retraction ON
M14 Initialization of rethreading block
M16 Threading jet OFF
M17 Upper contact retraction OFF
M50 Cutting of wire
M59 Preparation of wire for threading
M60 Threading

Measuring cycles based on a Macro-instruction including cutting/threading


operations :

G 942 Aa Mm T1 External middle, passing above the part


G 943 External centering
G 945 Holes alignment

- The automatic threading/rethreading system is available as an option on the ROBOFIL 380.


- Also available is the ROBOFIL 380 AWT model that does incorporate this automatic
threading/rethreading system.
- In these cases the above elements are again active, and the machine operates in the same
way as the other models of the series.
- On the ROBOFIL 380 and 380 AWT, the devices ensuring compliance with the European
directives on electromagnetic compatibility are not included, but are available as an
option in order to comply with the regulations of certain countries or the requirements of
certain customers.

CHARMILLES 205 976 210/en/11.11.2005 General table of contents 0.9


0.10 General table of contents CHARMILLES 205 976 210/en/11.11.2005
Chapter 1.

ISO language - Introduction

Systems of coordinates .......................................................................... 1.3


Dimension words .................................................................................. 1.4
Use of decimal point ............................................................................ 1.6
Minimum angular increment .................................................................... 1.6
Recommendations on the sequences of G and M instructions ........................ 1.6

CHARMILLES 205 976 260/E/13.04.2004 Table of contents 1.1


1.2 Table of contents CHARMILLES 205 976 260/E/13.04.2004
Systems of coordinates

The reference systems used are shown in the


diagram opposite:

LOCAL =
G93 + M98 (ROT, SCF)

PART = G92 + ROT + SCF + MIR

MACHINE = ABSOLUTE + G74


74
G

ABSOLUTE = Ruler

System Description and utilization

ABSOLUTE Origin determined by the axis scales


ISO instructions for movement (program or MDI): G53, G77
Movement commands (MDI): GOP

MACHINE Positioned with respect to the scales by G74


ISO instructions for movement (program or MDI): G75
Movement commands (MDI): MOV, MVR, CTA, CTR

PART Reference system for machining. Defined by G92


Modified for Rotation, Mirror, and Scale transformations
ISO instructions for movement (program or MDI): G00, G01, G02, G03
Movement commands (MDI): MPA, MPR, CPA, CPR

LOCAL Defined by G93


Temporary replacement of the Part referential in the ISO program,
used for specifying new transformations
ISO instructions for movement (program): G00, G01, G02, G03

The positions of each axis in the two systems of importance for machining, namely Machine and Part, are
displayed simultaneously in most of the screen pages.

CHARMILLES 205 976 260/E/13.04.2004 ISO language - Introduction 1.3


Dimension words

An ISO block is composed of words. i.e. a letter usually followed by a numerical value.

Examples
X-1000. S 101

Positive sign (+) and leading zero are optional.


The sign and range of numerical value depends on the letter.
The table below explains the usual meaning of the letters used as well as their maximum programmable
dimensions (irrespective of the physical characteristics of the machine).

Function Limits

O Program number 1 to 7999

N Block sequential number 1 to 9999

G Machining commands 00 to 99

M Machine control functions 00 to 99

X Dwell time (seconds) 0 to 9999.999


P 0 to 9999

P Subprogram call 1 to 9999


L Subprogram repetition number 1 to 9999

S Setting identification 01 to 99 Setting techno


501 to 509 Setting sequence

D Offset selection 0 to 15

Q Rotation angle -360.00000° to +360.00000°

K Scale factor 0.001 to 100.000

B Angular direction 0 to 15 (sectors) or 0 to 360 (°)

T Taper angle -45.00000° to +45.00000°

E Setting type 1 to 99

P Storage location in table POINTS 1 to 25

1.4 ISO language - Introduction CHARMILLES 205 976 260/E/13.04.2004


Dimensions limites (mm) (inches)

XY Lower guide moves -9999.99 9 -999.9 9999


to to
9999.99 9 +99 9.99 999

IJ Center co-ordinates

R Corner radius

UV Upper guide moves

Z Upper guide vertical moves

KL Center co-ordinates
- auxiliary programming surface

K Corner radius
- auxiliary programming surface

L Backward motion distance 0 to 9999.9 99 0 to 99 9.99999

H Distance between guides


(measure cycle)

I Height of the secondary programmed


path
(with respect to the reference program-
med path)

J Height of reference programmed path


(J=0 or not specified: work table)

F Feedrate 0 to 99.999 9 0 to 0.9999


(mm/min) (in/min)

Notes:
- The signs in parentheses ( ) can be used for inserting comments that will be ignored during
execution
- Certain letters may have a different meaning in specific ISO instructions.

CHARMILLES 205 976 260/E/13.04.2004 ISO language - Introduction 1.5


Use of decimal point

The presence of the decimal point changes substantially the meaning of the values specified.

Example
X1 0.001 mm or 0.00001 inch
X1. 1 mm or 1 inch

Values lower than the least input increment are truncated.

Example
X 1.234567 become 1.234 mm or 1.23456 inch

A numerical value exceeding the maximum number of digits cannot be specified.

A numerical value exceeding the maximum programmable limits cannot be specified.

Minimum angular increment

Angles can be specified in decimal values of degrees (rotation angle or taper angle).
The minimum angular increment that can be input is set to 0.00001 degree.

This level of precision can be changed to 0.001 degree by means of the box "Low precision Angle" in the
screen page EXE - Service - Machine Configuration.

Recommendations on the sequences of G and M instructions

The following programming rules must be respected :

- Do not program more than 3 consecutive lines with M code without G code
- If in the screen page EXE - User Parameters the parameter ATH is programmed at the value 2 (move on to
the next program in the event of unsuccessful rethreading) the lines that follow must be programmed in this
order, without intermediate lines:
G11 ; machining tables
S501 ; selection of a setting
M60 ; threading
G92 X Y ; definition of the part system of coordinates
G01 G42 ; linear movement, taking of offset

1.6 ISO language - Introduction CHARMILLES 205 976 260/E/13.04.2004


Chapter 2.

ISO language - G functions

ISO language - G functions 2.3


Numerical index ................................................................................... 2.3
Modal commands ................................................................................ 2.5
Non-modal commands .......................................................................... 2.7

Modal commands 2.8


Move functions ..................................................................................... 2.8
Mode selection .................................................................................... 2.12
Offset programming .............................................................................. 2.16
Taper programming .............................................................................. 2.22
Changing the direction of wire inclination ................................................. 2.26
Changing the angle of wire inclination ..................................................... 2.27
Special tapering ................................................................................... 2.29
Programming of an attachment ................................................................ 2.32

Non-modal commands 2.33


Program execution ................................................................................ 2.33
Measuring ........................................................................................... 2.40

Supplementary measuring cycles 2.46


Corner Cycle ........................................................................................ 2.48
Align Edge Cycle .................................................................................. 2.49
External Middle Cycle ........................................................................... 2.50
External Centering Cycle ........................................................................ 2.51
Holes Alignment Cycle .......................................................................... 2.52

CHARMILLES 205 976 310/en/11.11.2005 Table of contents 2.1


2.2 Table of contents CHARMILLES 205 976 310/en/11.11.2005
ISO language - G functions

The table below allows to locate quickly any ISO G command. Each command is either non-modal (nm) or
modal (characterised by a group number 01 to 14).
The concept of modal /non-modal is explained later in this introduction.

Numerical index

Group Codes Description Page

01 G00 Rapid traverse 2.8


G01 Linear interpolation 2.8
G02 Circular interpolation CW 2.9
G03 Circular interpolation CCW 2.9
nm G04 Dwell 2.33
nm G10 Modify the User parameters CLE or Rmin 2.33
Enable/disable optional block skip 2.33
nm G11 Activation of machining tables 2.34
G11 Activation of tables of variables 2.34
G13 Modification of machining parameters 2.34
G13 Sending of messages 2.35
06 G20 Inch input 2.15
G21 Metric input 2.15
04 G22 Stored stroke limit function ON 2.13
G23 Stored stroke limit function OFF 2.13
nm G28 Reference point return 2.35
07 G40 Cancelling of offset 2.16
G41 Offset to left 2.16
G42 Offset to right 2.16
12 G46 Optimum reverse control ON (option)
G47 Optimum reverse control OFF (option)
10 G48 The corner rounding function ON 4.10
G49 The corner rounding function OFF 4.10
08 G50 Wire inclination cancel 2.22
G51 Wire inclination left 2.22
G52 Wire inclination right 2.22
01 G53 Movement in the absolute coordinates system 2.10
09 G60 Constant corner radius 2.29
G61 Minimum conical angle 2.30
G62 Mean conical angle 2.31
G63 Maximum conical angle 2.31
nm G65 Calling a macro locally 5.27
11 G66 Calling a macro globally 5.30
G67 Macro call cancel (global) 5.30
13 G68 Cutting feed mode 2.15
G69 Exact stop mode 2.15
nm G70 Edging 2.40
nm G71 Centering 2.41
nm G72 Slit centering 2.41
nm G73 Wire alignment and guide adjustment cycle 2.41
nm G74 Storing of an Absolute XY point / Fixing of the Machine system of
coordinates 2.42
nm G75 Positioning in the Machine coordinate system 2.42
nm G77 Positioning towards an Absolute XY measured point 2.42
nm G78 Positioning - corner point 2.43
nm G79 Horizontal alignment /Circle centre point 2.43
14 G86 Cancellation of the attachment function 2.32
G87 ≈Retain scrap by an attachment∆ mode 2.32
G88 ≈Cutting off of attachment∆ mode 2.32
G89 Attachment length 2.32

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.3


Group Codes Description Page

03 G90 Absolute mode - Part coordinates 2.12


G91 Incremental mode 2.12
nm G92 Definition of the Part system of coordinates 2.37
nm G93 Definition of the local system of coordinates 2.37
05 G94 Constant feed 2.14
G95 Reduction of frequency 2.14
nm G910 Ap Storing of the current point (Absolute XYUVZ coordinates) in position p of the
table of variables .VAR (1 < p < 39) 2.11
nm G911 Ap Movement towards point p of the table of variables .VAR 2.11
nm G912 Loading / unloading of a pallet (see External Robot option)
G940 Corner Cycle 2.48
G941 Align Edge Cycle 2.49
G942 External Middle Cycle 2.50
G943 External Centering Cycle 2.51
G944 Positioning towards an absolute XY measured point 2.53
G945 Holes Alignment Cycle 2.52
G949 Positioning in the Machine system of coordinates 2.53

2.4 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


Modal commands

Definition: once specified, a modal G command remains effective until another G command of the same
group is specified.

Rules for the use of modal commands


If multiple G commands of the same group are specified in a block, only the G command specified last is
effective.

Multiple G commands from different groups specified in the same block become all effective.

The commands denoted with a star * in above table are issued automatically when power is turned on or
when the RESET key is pressed.

(Exception: in group 04 (G22 - G23), the ∆limit function∆ state is not altered by the RESET key).
In group 06, (G20=inch, G21=metric), the unit status prevailing before RESET or POWER OFF is restored
after RESET or POWER ON.

On an EDM-wire machine, only the XY plane can be used, thus the G17 command (group 02) is
superfluous.

Move functions

Group Codes Description Page

01 * G00 Rapid traverse 2.8


G01 Linear interpolation 2.8
G02 Circular interpolation CW 2.9
G03 Circular interpolation CCW 2.9
Note: Corner radius 2.10
G53 Movement in the absolute coordinates system 2.10

Mode selection

Group Codes Description Page

03 * G90 Absolute mode - Part coordinates 2.12


G91 Incremental mode 2.12

04 * G22 Stored stroke limit function ON 2.13


G23 Stored stroke limit function OFF 2.13

05 * G94 Constant feed 2.14


G95 Reduction of frequency 2.14

06 * G20 Inch input 2.15


G21 Metric input 2.15

10 * G48 The corner rounding function ON 4.10


04 * G49 The corner rounding function OFF 4.10

13 * G68 Cutting feed mode 2.15


G69 Exact stop mode 2.15

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.5


Offset programming

Group Codes Description Page

07 * G40 Cancelling of offset 2.16


G41 Offset to left 2.16
G42 Offset to right 2.16
Note 1: The wire path 2.17
Note 2: Interference check for offset compensation 2.20
Note 3: Precautions 2.21

Taper programming

Group Codes Description Page

08 * G50 Wire inclination cancel 2.22


G51 Wire inclination left 2.22
G52 Wire inclination right 2.22
Note: Movement of the wire with taper angle 2.23

Special tapering

Group Codes Description Page

09 * G60 Constant corner radius 2.29


09 * G61 Minimum conical angle 2.30
G62 Mean conical angle 2.31
G63 Maximum conical angle 2.31

Programming of an attachment

Group Codes Description Page

14 * G86 Cancellation of the attachment function 2.32


G87 ≈Retain scrap by an attachment∆ mode 2.32
G88 ≈Cutting off of attachment∆ mode 2.32
G89 Attachment length 2.32

Macro-instructions B

Group Codes Description Page

11 * G66 Calling a macro globally 5.30


G67 Macro call cancel (global) 5.30

Options

Group Codes Description Page

12 * G46 Optimum reverse control ON (option)


09 * G47 Optimum reverse control OFF (option)

2.6 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


Non-modal commands

Definition: a non-modal G command is effective only in the block in which it is specified.

Program execution

Codes Description Page

G04 Dwell 2.33


G10 Modify the User parameters CLE or Rmin 2.33
Enable/disable optional block skip 2.33
G11 Activation of machining tables 2.34
G11 Activation of tables of variables 2.34
G13 Modification of machining parameters 2.34
G13 Sending of messages 2.35
G28 Reference point return 2.35
G92 Definition of the Part system of coordinates 2.37
G93 Definition of the local system of coordinates 2.37
Note 1: multi-openings machining 2.38
Note 2: multi-parts machining 2.39

Measuring and positioning cycles

Codes Description Page

G70 Edging 2.40


G71 Centering 2.41
G72 Slit centering 2.41
G73 Wire alignment & guide adjustment cycle 2.41
G74 Storing of an Absolute XY point / Fixing of the Machine system of coordinates 2.42
G75 Positioning in the Machine coordinate system 2.42
G77 Positioning towards an Absolute XY measured point 2.42
G78 Positioning - corner point 2.43
G79 Horizontal alignment /Circle centre point 2.43
Note : Precautions 2.44
Examples of programming 2.45

Macro-instructions B

Codes Description Page

G65 Calling a macro locally 5.27


G910 Ap Storing of the current point (Absolute XYUVZ coordinates) in position p of the table of
variables .VAR (1 < p < 39) 2.11
G911 Ap Movement towards point p of the table of variables .VAR 2.11
G912 Loading / unloading of a pallet (see External Robot option)
G940 Corner Cycle 2.48
G941 Align Edge Cycle 2.49
G942 External Middle Cycle 2.50
G943 External Centering Cycle 2.51
G944 Positioning towards an absolute XY measured point 2.53
G945 Holes Alignment Cycle 2.52
G949 Positioning in the Machine system of coordinates 2.53

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.7


Modal commands

Move functions

G00 Rapid traverse Group 01

Syntax G00X_Y_
G00U_V_; (MDI only, or taper mode UV)

When the rapid traverse command is specified, the machine moves along each axis independently at the
feedrate 15 mm/s. Therefore, the movement along each axis does not necessarily terminate at the same
time.

Example:

Absolute command:
Actual movement
G00X90.Y20.;
End point
Incremental command:
G00X60.Y-30.;

4579

G01 Linear interpolation Group 01

Syntax G01X_Y_
G01U_V_; (MDI only, or taper mode UV)

The machine moves linearly along each axis to the point specified by the dimension words.

Example:

Absolute command:
G01X35.Y10.;

Incremental command:
G01X25.Y-20.;

4580

2.8 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


G02, G03 Circular interpolation Group 01

Syntax G02X_Y_I_J_;
G03X_Y_I_J_;

The machine moves along the arc to the end point specified by dimension words X and Y. The coordinates
of the centre of the arc are specified by dimension words I and J, as incremental values viewed from the
start point of the arc. This applies whether the end point command is absolute or incremental. The machine
moves along the arc either clockwise or counterclockwise, according to whether the G02 or G03
command is specified.

Example:

Incremental command:
G03X-15.Y15.I-15.;
G02X-20.Y-10.I-12.5;

Absolute command: Start


G03X35.Y25.I-15.;
G02X15.Y15.I-12.5;
4581

Notes:
- An arc belonging to multiple quadrants
can be specified in one block. If the start
point and end point of the arc are located End point
in a different quadrants, the arc is a multi- Start point
quadrant arc. Also, if the start point and
end point are within the same quadrant and
the end point is behind the start point as When the end point is
illustrated below, the arc becomes a multi- within this area, the
arc becomes a multi-
quadrant arc. quadrant arc

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.9


- If the difference between the radius of the
arc at the start point and that at the end
point is more than the specified limit, alarm
No. 20 occurs. If the difference is within in Specified arc
Start point Arc to be
the limit, but is not negligible, the radii are interpolated
averaged and the circular interpolation is
performed using an arc whose centre is Difference
in radius
determined from the average radius.

Specified End point


centre
Centre obtained
later

Note: Corner radius

Syntax Move command R_;

A corner radius can be inserted between two consecutive interpolation commands (G01, G02, G03).
Specify the radius after the address R.
The move commands are programmed ignoring the corner radius command. The corner radius command
can be inserted between a straight line and an arc, between two arcs, or two straight lines. The corner
radius command cannot be specified in the MDI mode.

Example:

(Incremental mode)

G02X-15.Y15.J15.R2.5;
G01X-20.R2.5;
G02X-15.Y-15.I-15.; Start

4582

G53 Movement in the absolute coordinates system Group 01

Syntax G53
G53X_Y_U_V_Z_;

This command allows to program a move on each of the 5 axes directly in the absolute coordinate system.

Following conditions further apply:


- Axes move at rapid traverse speed.
- The command is only effective in absolute mode (G90).
It is ignored in incremental mode (G91)
.

2.10 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


G910 Storing of the current point in the table of variables

Syntax G910 Ap

p = position in the table of variables .VAR


The point is saved in Absolute XYUVZ coordinates
(1 < p < 39).

Command words equivalent: SEP,CPp

G911 Movement towards a point of the table of variables

Syntax G911 Ap

p = position in the table of variables .VAR


(1 < p < 39).

Command words equivalent: GOP,p

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.11


Mode selection

G90, G91 The absolute and incremental commands Group 03

Movements can be specified in two ways :


The absolute command specifies the coordinates of the point at which movement terminates. The coordina-
tes are specified in the part coordinate system.
The incremental command specifies the movement distance relative to the current position.

G90: Absolute mode - Part coordinates.


G91: Incremental mode.

Example:

Absolute command:
End point
G90X40Y25.;

Incremental command:
G91 X30.Y10:

Notes:
- The absolute command and incremental
command can be switched at an optional Start point 4582

place within a block. Using the above


example, these commands are given as
follows:
G90X40.G91Y10.
- The following dimension words are not affected by the absolute and incremental commands:
- dimension words in the coordinate system setting command, G92.
- the coordinates of the center of an arc (I, J).
- the U, V, K and L commands which use the defined profiles of the top and bottom of the
workpiece.
- The dimension words of the axes along which movement does not take place can be omitted,
irrespective of whether the absolute or incremental command is used.

2.12 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


G22, G23 Store stroke limit function ON/OFF Group 04

G22 defines a rectangular area using the following parameters (stroke limit 2):

Coordinates Coordinates
at point 3 at point 4

1761

• Set the XY coordinates with respect to the machine coordinate system using the origin as the reference point.
The illegal area is inside the rectangle.
• To invalidate stored stroke limit 2, specify the G23 command in an independent block. The machine can then
move inside the invalid area specified by stored stroke limit 2.
• To validate stored stroke limit 2 after it has been invalidated, specify the G22 command in an independent block.

On the EXE screen √ User Settings screen, it is possible to indicate if the defined zone is valid or not.

On the INFO √ Other info screen, the current mode (G22 or G23) is displayed, as well as the coordinates
of the 2 points defining this zone.

Note on using the stored stroke limit function:


If an alarm occurs because the machine enters the invalid area, move the machine back into the
valid area and reset the alarm by pressing the RESET key.

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.13


G94, G95 The machining feedrate Group 05

Since the feedrate command system is generally fixed according to the machining mode, it is not usually
necessary to specify these G commands.

G94 Constant feed Group 05

This G command specifies the feed per minute of the worktable or wire by a numeric value after F. The
command increments are as follows.

Command increments

Metric input 0.01 mm/min

Inch input 0.0001 inch/min

Example:
F120 (no decimal point): Specifies 1.2 mm/min or 0.012 inch/min.
F0.6 (with decimal point): Specifies 0.6 mm/min or 0.6 inch/min.

G95 Reduction of frequency Group 05

Reduction of User Parameter FF. Fore example, the command G95 F80 will set the frequency at 80% of its
nominal value.

2.14 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


G20, G21 Inch input/metric input Group 06

The input units can be set or changed either by setting the input units or by specifying the G20 or G21
commands. To change the input units using the G commands, specify the G command in an independent
block before specifying the next G command.
The G20 command specifies inch input and the G21 command specifies metric input. When the input
unit is changed, the units for the movement specified by a move command, the data settings, and the
movement using incremental feed must be changed.

Notes:
- When the power is turned on, the input units remain as they were when the power was turned off.
- Do not specify the G20 or G21 command halfway through programming.
- When setting parameters, use the output units, irrespective of the input units.
- When the input system is changed, the following items must be reset to conform to the new input
units:
- the wire diameter compensation if not offset 0
- the program coordinate system/work coordinate system
- the system settings.

G68 Cutting feed mode Group 13

When using an external interpolator, it is necessary


to set the machine in Cutting Feed mode (G68).
The reason is that the machine will not stop at the
end of each segment forming the arc. At the end of
the arc, the Exact Stop mode (G69) can be reset
so that the programm coordinates will be reached External External
again. interpolator interpolator
in Cutting Feed in Exact Stop
mode G68 mode G69

G69 Exact stop mode Group 13

This command specifies that the in-position check has to be made in each intersection.
This means that the feed motors have to reach the commanded position within a pre-set range at each
intersection.
(This mode can also be specified at a movement block level using the non-modal command G09).

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.15


Offset programming

G40, G41, G42 Commands for managing of wire offset Group 07

The following direction commands can be


specified for wire offset (provided that TFE parame- Programmed path
ter is set to 1 in screen page EXE User Parameters):

G40: Cancels wire offset.


G41: Moves the center of the wire to the left.
G42: Moves the center of the wire to the right.

- When the wire center moves along the programmed path, the wire offset function is cancelled. This state
is set when the power is turned on or the NC is reset.
- When the G40 command is specified, the wire offset is cancelled at the start of the block where it is pro-
grammed.
- When the G41 command or G42 command is specified, the wire moves to the left or right starting with
the next block.
- The G40, G41, and G42 commands are modal, i.e., they remain effective until another G40, G41, or
G42 command is specified, or until the NC is reset.

By specifying these preparatory commands, other commands can be specified, as usual, without
considering wire offset. The path of the wire centre is automatically compensated taking into account its
radius and other factors.

The distance the wire is moved from the specified path is called the offset. A default offset value is loaded
in memory when a standard technology table or a standard sequence are used. The minimum input
increment and maximum programmable dimension are specified below.

Minimum input Maximum programmable Dimension


increment

Metric input 0.01 mm Ø999.999 mm

Inch input 0.0001 inch Ø9.99999 inches

If a negative value is set for the offset, the left and right offset are reversed. Setting a negative offset for the
G41 command is equivalent as setting a positive offset for the G42 command, and vice versa.

2.16 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.17
Note 1: The wire path

Path at offset start


At offset start, following pattern is executed by default:

Programmed path
4583

Offseted path during machining

1757

2.18 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


The machine moves along the following paths if there are discontinuities in the offset movement, such as
when machining acute angles:

1757

Path at offset cancellation


At offset cancellation, following pattern is executed by default:

Programmed path
4586

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.19


Note 2: Interference check for offset compensation

If the wire is liable to overshoot the workpiece as a result of offset compensation, alarm No. 41 occurs and
machining stops. However, if an Exact Stop command (G09) was performed in the previous block, the
wire moves to the end point of the block, in which case the wire may or may not overshoot the workpiece.

Alarm No. 41 occurs in following cases :


- When the direction of the programmed path command is opposite to the direction of the offset.

Programmed path

Offset wire path


Offset wire path

Programmed path

- When the angle at the centre of the arc produced by offset compensation differs substantially with the
programmed arc.

G92X0Y-40.0;
G41G01G91Y15.0;
G03J25.0; G03Y50.0J25.0;
G40G01Y-15.0; Y-50.0J-25.0;
M02;

Offset wire path

Programmed path

1758

Alarm No. 41 occurs in the above case because the compensated arc exceeds 360°. In this case, in the
program, divide the arc into two arcs, whose angle at the centre is each 180°.

2.20 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


In the following case, alarm No. 41 occurs, since one circle is produced at point A.

Path to which wire radius compensation


was made

Wire centre

Programmed path

Programmed path

Note:
If an amount less than the offset is cut, no alarm occurs, but a finish allowance may be produced.

Note 3: Precautions

• If two (or more) successive blocks without movement are specified with an active offset, the latter can be
temporarily cancelled. In this case, the wire will cut the part as shown in the illustration below :

Path of wire center

Programmed path

G01X10.; Overshoot
M --------- ;
Block without
M --------- ; movement

Y-10.;
X10.

• It is not possible to command an offset in MDI mode.

• A coordinate system cannot be specified while the offset is being taken into account or cancelled.

• If the M02 or M30 command is specified while the offset is being taken into account or cancelled, the
compensation vector becomes perpendicular to direction of the last movement. Accordingly, the wire
is liable to overshoot the workpiece as shown in point 1.

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.21


Taper programming

G50, G51, G52 The wire inclination Group 08

The following commands specify the inclination of the wire (provided that User parameter TRE is equal
to 1):

G50: Wire inclination cancel


G51: Wire inclination left
G52: Wire inclination right Upper guide
path

- When the wire machines a workpiece vertically,


the wire inclination is canceled. The machine is
set to this state when the power is turned on or
the NC is reset. Programmed surface
Wire
inclination
- When the G50 command is specified, the wire angle
inclination is cancelled on the block where it is Lower guide path

programmed.

- When the G51 command is specified, the upper


guide moves to the left of the programmed path
when viewed along the direction of movement,
starting at the following block.

- When the G52 command is specified, the upper guide moves to the right of the programmed path when
viewed along the direction of movement, starting at the following block.

These preparatory commands can be specified or changed in any block of a program (if TRE = 1).

The angle of wire inclination is specified by address T. The minimum input increment is 0.001° and the
maximum programmable dimension is Ø45.000°.

Specify the angle of wire inclination relative to the vertical. Specify a positive value regardless of whether
the angle is to be tilted to the left or right. Specifying a negative value when the wire is inclined to the right
is equivalent to specifying a positive value when the wire is inclined to the left, and vice versa. Specify the
angle of wire inclination before or in the same block as the G51 or G52 commands, which specify left or
right for the wire inclination. The angle of wire inclination can be changed halfway through a program.

2.22 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


Note: Movement of the wire with taper angle

Start

At taper start, following pattern is executed by default:

Upper guide path

Programmed surface

Lower guide path

4589

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.23


Machining

Upper guide path

Programmed surface

Lower guide path

Upper guide path

Programmed surface

Lower guide path

Upper guide path

Programmed surface

Lower guide path

2.24 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


Cancellation

At taper cancellation, following pattern is executed by default:

Upper guide path

Programmed surface

Lower guide path

4591

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.25


Changing the direction of wire inclination

Upper guide path

Programmed surface

Lower guide path

Upper guide path

Programmed surface

Lower guide path

2.26 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


Changing the angle of wire inclination

If the taper angle is modified during the program, the path executed will depend on the discontinuity angle
Alpha between the segment of modification and the preceding segment :
- discontinuity Alpha α > = 1° : intersection
- discontinuity Alpha α < 1° : contact

Case1: Intersecting
The start point of the block specifying the modification corresponds to the specified angle of inclination.

Taper angle 15° Taper angle 5°

Upper guide path

Discontinuity
Example :
(incremental mode) Angle modification

G51T15. ...;
Programmed surface
G01X10.;
G01Y-15.T5.

Lower guide path

Case 2: Contacting
The end point of the block specifying the modification corresponds to the specified angle of inclination.

Example 1

Upper guide
Taper angle 10° path

Discontinuity α < 1°

Taper angle 5°

Programmed
Example : surface
(incremental mode)
Lower guide path
G52T5. ...;
G01X10.;
G01X10.T10.; Angle modification
G01X15.

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.27


Example 2

Taper angle 5°
Discontinuity α = 0

Upper guide path

Taper angle 15°


Angle modification

Example :
Programmed surface

G51T5. ...;
Lower guide path
G01X10.;
G02X..Y..I..J..T15.;
G01Y-10.;

2.28 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


Special tapering

In the commands G60, G61, G62 and G63, the rounding is obtained by GO1 Rº, and not by GO2 or
GO3.

G60 Constant corner radius Group 09

Single radius G60 Rr

Syntax Move command G60R_;

To machine a corner with a cylindrical frustum, specify the G60 corner radius command.
The G60 command is modal.

Different taper Same taper


angle angle

1759

Example : G01X10.Y10.G60R1.; or G60;


Y-10.; G01.X10.Y10.R1.;
Y-10.;
Two different corner radii: G60RrKk

Syntax Move command G60R_K_;

R = programmed radius at the reference plane


K = programmed radius at the secondary plane

Different taper Same taper


angle angle

1759

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.29


G61 Conical angle Group 09

Syntax Move command G61R_;

Case in which the taper angle remains constant:

- To machine a corner with a circularly conical frustum, specify the G61 corner radius command.
- To machine a line-line intersection ("rotating spindle" mode), specify 0 after address R.
- The G61 command is modal, it is selected by default when the machine starts up.

Example :

O1000
G91
G40
G50
G92X0Y-25.0I40.J0.;
G52G42G01Y15.0T5.0;
X10.0G61R0;
Y20.0R5.0; Reference plan
(J0.)
X-20.0R0;
Y-20.0R5.0; Secondary plan
(I40.)
X10.0; Start
G50G40Y-15.0;
M02;

Case in which the taper angle is different before and after the intersection:

The radius r' in the secondary plane can be calculated in three different ways with the commands G61,
G62 and G63

G61 1) Minimum conical angle Group 09

Syntax Move command G61R_;

The value BT corresponding to the smallest taper is


added.

1759

2.30 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


Example :

O1000
G91
G40
G50
G92X0Y-20.0I40.J0.;
G52G42G01Y10.0;
X10.0G61R0T2.0;
Reference plan
Y20.0R5.0T5.0; (J0.)
X-20.0R0T2.0;
Y-20.0R5.0T5.0; Start Secondary plan
X10.0T2.0; (I40.)

G50G40Y-10.0;
M02;

G62 2) Mean conical angle Group 09

Syntax Move command G62R_;

The mean of the two tapers (AT+BT) / 2 is added.


The G62 command is modal.

1759

G63 3) Maximum conical angle Group 09

Syntax Move command G63R_;

The value AT corresponding to the largest taper is


added.
The G63 command is modal.

1759

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.31


Programming of an attachment

This function enables the operator to create an attachment for holding the scrap (slug) without any explicit
insertion of an additional block in the ISO program.

Two possibilities are available:


- creation of the attachment (making it possible to perform finishing passes in the slot, or to fix the scrap
with a magnet, or to eliminate it manually).
- final cutting off of the attachment

In both cases, the processing is performed within an optional Stop instruction M01.

See chapter 3 ≈M functions∆ for a detailed description.

G86, G87, G88 Definition of the attachment function Group 14

G86: Cancellation of the attachment function.


G87: ≈Retain scrap by an attachment∆ mode.
G88: ≈Cutting off of attachment∆ mode.

These commands make it possible to modify by ISO program the parameter Mode Attachment scrap
accessible in the screen page EXE-Options-User Parmeters-Advanced Parameters.

G89 Attachment length Group 14

Syntax: G89P_

This command specifies the length of the attachment.


P is expressed without a decimal point, i.e. in ± or 1/100000 inch.

This command makes it possible to modify by ISO program the parameter REMAINING QUANTITY
accessible in the screen page EXE-Options-User Parmeters-Advanced Parameters.

2.32 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


Non-modal commands

Program execution

G04 Dwell

Syntax G04X_;
G04P_;

This command specifies that the machine temporarily stops for a certain time during operation.
Specify the dwell time with a numeric value after address X or P. A decimal point can be used with X, but
it cannot be used with P. The command increments is 0.001 sec.

Example:
G04X25. or G04P25000: specifies a dwell time of 25 seconds.

Note:
Wether machining will occur during the dwell time depends on the specified G command of group
01. If G00 is specified, the machine will not perform machining. If a G command of group 01 other
than G00 is specified, the machine will perform machining.

G10 Modify the User parameters CLE or Rmin


Enable/disable optional block skip

Syntax G10P16R_; R : additional clearance CLE


G10P17R_; R : automatic corner rounding radius Rmin

Syntax G10P_B_;

Skip block: P = n (n from1 to 9)


B = 0 skip disabled → the blocks /n are executed
= 1 skip enabled → the blocks /n are ignored

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.33


G11 Loading of machining tables

Syntax G11 (TEC, <table name>) Activation of a Technology table


G11 (WIR, <table name>) Activation of a wire table
The instruction G11 is used for selecting, before a machining job, the technology table and the type of
wire that are going to be used.
The files will first be searched in the directory currently being used, and if they are not found, in the Char-
milles reference directory U:\CT_DATA.
Command words equivalent : TEC, <table name>
WIR, <table name>

G11 Activation of tables of variables

Syntax G11(SVA,<file name>) Saving of the table of variables in the specified file
G11(LVA,<file name>) Retrieving of a table of variables previously saved
The instruction G11 enables you to save and retrieve later the contents of the table of variables VAR (1 to
39 positions).
The files are first sought in the directory currently being used, and then, if not found, in the Charmilles refe-
rence directory U:\CT_DATA.
Command words equivalent : SVA, <file name>
LVA, <file name>

G13 Modification of machining parameters

Syntax G13 Xx
Modification of some parameters currently being used:
Parameter Code letter
INJ Injection B
AJ Average voltage J
ATT Length of entry path L (flushing machines)
WS Wire speed R
SVO Speed stop V
WB Wire tension X
B Time between 2 pulses Y

Example:
G13 R10. → the wire speed changes immediately to 10 m/min.
Note:
The machining parameter FF can also be modified by program by 20% to 120% of its nominal value
by means of the instruction G95 Fx (20 < x < 120).

2.34 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


G13 Sending of messages

Syntax G13(MSG,<message>) Display of a message on the numerical control console


G13(ECN,<message>) Sending of a message to a recipient (notification by SMS
on a mobile telephone, or recording in an Internet letterbox)
(e-ConnecT option; see specific documentation).
The instruction G13 enables you to insert the sending of a message at precise points of an ISO program.
The message can have a maximum of 12 alphanumeric characters (digits 0 to 9, letters a to z upper or
lower case). The message is shown locally on the screen (MSG version) or is transmitted outside (ECN ver-
sion requiring the e-ConnecT option)..

G28 Reference point return

Syntax G28X_Y_U_V_Z_;
This command induces the specified axes to move:
- to the axis Reference point (G28)
- via a middle point defined by the command coordinates X_ Y_ U_ V_ Z_ (expressed as absolute
coordinates).

Reference point

Middle point

1375

Description of movement:
(1) The selected axes move from current point A to middle point C.
(2) The middle point coordinates are memorised.
(3) The selected axes move from middle point C to Reference point.
(4) The return point completion signal is turned on.
Notes:
- This command is used in mode MDI.
- Wire diameter compensation and wire inclination (taper angle) should be cancelled before
executing G28 command.
- Displacement values to the middle point are absolute or incremental depending on the mode
currently active.
- Moves occur at rapid traverse rate.

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.35


Note: Temporary cancellation of wire offset and taper angle

G28 command
When G28 is commanded in the wire diameter compensation mode or the taper cutting mode, compensa-
tion and taper vector will be canceled at the middle point and, after the reference point return is comple-
ted, it will be restored.

Reference point

Restore

Wire center path

Cancel
Programmed path

Middle point
1375

2.36 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


G92 Definition of the Part system of coordinates

Syntax G92 X_ Y_ I_ J_

This command fixes the origin of the Part system of coordinates with respect to the machining start point.

Example:
G92 X60. Y40.

Notes: Machining start


- The expressed X,Y values are always point
considered as absolute values, irrespective
of the current mode (absolute or
incremental).
- G92 cannot be specified in offset or taper
machining mode. 1755
- J_ is used for specifying the height of the
programmed path (reference plane)
J=0 or not specified: coincidence with the
plane of the work table
- I_ is used for specifying the height of a
secondary plane relative to the reference
plane.
I_ positive => secondary plane surface
above reference plane (and vice-versa).

G93 Definition of the local system of coordinates

Syntax G93 X_ Y_

This command sets a local coordinate system, with X_ and Y_ as absolute distances from the program
origin set by G92.

To cancel the local coordinate system: issue the command G93 X0 Y0.

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.37


Note 1: Multi-openings machining

In case of multi-openings machining each shape is programmed as an independant sub-program.


The main programm will define the origin of the part and the local coordinate system used for the
machining of each shape.

Example:

Local
coordinates C

Local
coordinates B
Start Part
coordinates

Machine coordinates
1755

The sub-programs will be:


O0101(SUB-A); O0102(SUB-B); O0103(SUB-C);
G01X5.Y5.; G01X0Y10.; G01X0Y10.;
X50.Y5.; G02X0Y10.J20.; X30.Y10.;
X50.Y50.; G01X0Y0; X0Y50.;
X5.Y50.; M99; X-30.Y10.;
X5.Y5.; X0Y10.;
X0Y0; X0Y0;
M99; M99;

The main program is: Absolute coordinates


(x,y)
O0100(MAIN);
G92X0Y0; Set workpiece coordinate system (0,0)
G90; Absolute
M60; Wire thread
M98P0101; Machining of the shape A
M50; Cutting of wire
G93X150.Y40.;Fixing of the local system of coordinates (150,40)
G00X0.Y0.; Positioning of the starting point of shape B
M60; Wire thread
M98P0102; Machining of the shape B
M50;
G93X70.Y70.; Fixing of the local system of coordinates (70,70)
G00X0.Y0.; Positioning of the starting point of shape C
M60; Wire thread
M98P0103; Machining of the shape C
M50; Cutting of wire
G93X0Y0; Cancel local coordinate system (0,0)
G00X0.Y0.; Positioning at workpiece origin (0,0)
M30;

2.38 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


Note 2: Multi-parts machining

Multi-parts machining can be executed in application of the same principle. For this example, the use of
measured points is mandatory.

Start positions of the parts:


P0 = (50.0,20.0) Workpiece - 2 Workpiece - 4
P1 = (50.0,200.0)
P2 = (350.0,20.0)
P3 = (350.0,200.0)

Main program:
O0201(MULTI-PARTS); Workpiece - 1 Workpiece - 3
G77P0;
M98P0100;
G77P1;
M98P0100;
G77P2;
M98P0100;
G77P3;
Zero point of machine coordinate system
M98P0100;
1755
M30;

Multi-openings sub-program (code identical to MAIN, page 2.38):

O0100(MULTI-OPENINGS):
G92X0Y0; Set workpiece coordinate system
G90; Absolute
M60; Wire thread
M98P0101; Machining of the shape A
M50; Cutting of wire
G93X150.Y40.;Fixing of the local system of coordinates
G00X0.Y0.; Positioning of the starting point of shape B
M60; Wire thread
M98P0102; Machining of the shape B
M50;
G93X70.Y70.; Fixing of the local system of coordinates
G00X0.Y0.; Positioning of the starting point of shape C
M60; Wire thread
M98P0103; Machining of the shape C
M50; Cutting of wire
G93X0Y0; Cancel local coordinate system
G00X0.Y0.; Positioning at workpiece origin
M99;

Programs of the shapes :


O0101(SUB-A) O0102(SUB-B); O0103(SUB-C);

Identical to (SUB-A), SUB_B), SUB-C) page 2.38.

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.39


Measuring

G70 Edging

Syntax G70 Pp Bb Ll or G70 Pp X(Y)d Ll

When this command is issued, the wire is moved in the chosen direction until contact with the workpiece
is established. The wire is then moved backward, and the final wire position is stored in Measure Point
specified by p.

Measure point Pp:


p = 0 to 31
If p is not specified, 0 is assumed.

Initial move direction Bb:


b defines the direction in degrees (positive whole number, without decimal point).

Or: Initial move direction X(Y)d:


X or Y defines the axis along which the measurement will be taken, and the sign of d gives the direc-
tion of movement.
The value of d represents the wire diameter, but has no influence on the measurement.
If none of these two direction parameters is specified, a default value defined by Direction in screen
page EXE - Measures - Edge applies.

Backward motion distance Ll:


If not specified here, a default value defined by Backward distance in screen page
EXE - Measures - Edge applies.
Note that defining the initial move direction or backward motion distance in an ISO command does
not modify the corresponding default values defined in screen page EXE - Measures - Edge.

Backward distance = 1

4593

2.40 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


G71, G72 Centering - Slit centering

Syntax G71 Pp X(Y)d (or Bb) G72 Pp X(Y)d (or Bb)

When these commands are issued, the machine starts the same centering cycles as in manual mode.

Example 1: G71 P2 Y0.2


Example 2: G72 P5 Y-0.3

Example 1 Example 2

Measured slit width


Measured hole diameter

Displayed hole diameter Displayed slit width

After the wire has been centered:


- The center position is stored in Measure Point p (if p is not specified, 0 is assumed).
- The result is calculated as the measured displacement plus the diameter of the wire.

The comments made for G70 on the specification of the initial move direction (X(Y)d or Bb) apply also to
G71 and G72.

G73 Wire alignment and guide adjustment cycle

Syntax G73 T_ H_ X(Y)d (or Bb)

T wire inclination angle (in degrees).


H distance between guides in upper measure position.
X(Y)d (or Bb) initial move direction (similar to G70, G71, G72, the numeric value of d is not used).

This cycle is mandatory after the dismantling of the wire guides and before precision or taper machining.
A description of this cycle can be found in chapter 9 of the Reference Manual.

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.41


G74 Storing of an Absolute XY point /
Fixing of the Machine system of coordinates

Syntax G74 Pp X_ Y_ or G74 X_ Y_

When Pp is defined: the command stores the X_ and Y_ values in the Measure Point specified by
p (0 < p < 31).

When Pp is not defined: X_ and Y_ are the coordinates which pre-set a new Machine coordinate sys-
tem, i.e.:
- The machine coordinates X and Y take the values X_ and Y_ entered in the
block G74
- If X_ and Y_ = 0, the current position is defined as being the origin of the
new Machine system of coordinates

This instruction is not executed in graphic simulation mode.

G75 Positioning in the Machine coordinate system

Syntax G75 X_ Y_

This command executes a move (rapid traverse, no


linear interpolation) in the Machine coordinate sys-
tem to the point specified by X_ Y_.
Whether the specified coordinates are absolute or
relative depends on the mode currently in use (G90
or G91).

Machine coordinate system

4594

This instruction is not executed in graphic simulation mode.

G77 Positioning towards an Absolute XY measured point

Syntax G77 Pp X_Y_

The wire moves to the location memorised in Measure Point p (0 to 31).

If Pp is omitted, p=0 is assumed.

X_ Y_ are used to pre-set the Machine coordinate system. If X or Y is omitted, the Machine system of coor-
dinates is not updated.

2.42 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


G78 Positioning - corner point

Syntax G78 X_ Y_

X_ Y_ are used optionally to pre-set the Machine


coordinate system. If X or Y is omitted, the Machine
coordinate system is not updated for the omitted
address.

Prior operations: 3 measurements of Edge type


must be performed and stored in points 13, 14
and 15, with measurements 13 and 14 on one
face and measurement 15 on the perpendicular
face. With the command G78, the center of the
wire is positioned at the point of intersection of the
straight line passing through points P13-P14 and of
the perpendicular passing through P15. Origin of the Machine system

G79 Horizontal alignment /Circle centre point

Syntax G79 Qq Bb G79 P_B_X_Y_L_

This command will calculate the deviation angle


between one edge of a workpiece and the
corresponding coordinate axis.
The X-Y co-ordinates of P13 and P14 must have
been previously measured by 2 Edge cycles and
stored in Measure Point.

Qq determines the axis of reference: Q: Reference angle


Q=0 : X axis
Q=90: Y axis
Bb determines the method of compensation of User Inclination angle
parameter ROT:
B=0 or omitted: substitution
B=1: Addition to the current value

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.43


Calculation of a circle centre point (external centering)

Syntax G79 Pp Bb X_Y_L_

Pp: Measure point to store result of calculation (measure type is set to 3) (when P is not specified, a value
of 10 is assumed by default).

Bb: method of calculation (0 or 1):

B=0
Calculates the centre of the circle that goes
through measured points Pn+0, Pn+1, Pn+2
(by default: P13, P14, P15)
In this case, the other parameters are not
used

4597

B=1
Calculates the centre of a circle that goes
through Pn+0 (by default: P13) and is
tangent to 2 lines which cross at point (X_ Y_)
and are parallel to the X and Y axes.

X_Y_ coordinate values of tangents crossing point.

L_ wire diameter used in calculation (if not 4597

specified here, a default value defined by


Diameter in screen page EXE-Measure-Edge
applies).

Note : Precautions

- Once the positioning operations specified by the G70, G71, and G72 commands have started, they
cannot be stopped.
- Feed hold is ignored during the positioning operation specified by commands G75 to G78.
- In program drawing, commands G70 to G79 are ignored.

2.44 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


Examples of programming

Example 1:
Part parallel to the axis, wire diameter 0.3 mm

O0100
G91
G70X-0; (1)
G76X0.15; (2)
G75Y-50.0; (3)
G75X-10.0; (4)
G70Y0; (5)
G76Y-0.15; (6)
M00; G75G90X-30.0Y50.0;(7)
M30;

4595

Example 2:
Corner + alignment (part not parallel to the axis)

O0100
G91
G70P13B90 (1)
G75Y-10. (2)
G75X20. (3)
G70P14B90 (4)
G75Y-10. (5)
G75X20. (6)
G75Y20. (7)
G70P15B180 (8)
G78 (9)
G79Q0.B0.
M00
G00X-0.15Y0.15 (10)
G92X0.Y0.
G90G00X-15.Y30. (11) 4596
M30

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.45


Supplementary measuring cycles
(instructions G940, 941, 942, 943, 945)

The ISO G codes of the measuring cycles were described in the preceding pages :

Cycle ISO code Screen page


Edge G70 EXE √ Measuring √ Edge
Centering G71 EXE √ Measuring √ Centering
Middle G72 EXE √ Measuring √ Middle
Guides set up G73 EXE √ Measuring √ Adjusting √ Guides set up
Corner G78
Horizontal alignment G79

The ISO instructions G940, 941, 942, 943, 945 make it possible to insert 5 supplementary measuring
cycles into the programs.
These cycles are programmed as Macro-instructions.

Cycle ISO code Macro-instruction


Corner G940 CRN_G940.ISO
Align edge G941 PAL_G941.ISO
External Middle G942 EXM_G942.ISO
External Centering G943 PAL_G943.ISO
Alignment hole G945 PAL_G945.ISO

Their activation, which requires the defining of specific execution parameters, can be performed in three
different ways :

- In an ISO program
Example : G941 Ddd. Aaa. Sss.; Align Edge cycle

- In MDI mode: in the dialog line enter the same ISO instruction, end with Enter, press the Start key

- By direct activation of the macro-instruction. In this case :


•Select EXE √ Measuring - MACRO
The list of macro-instructions is displayed
•Select the desired macro
An explanatory drawing is displayed
•Press the Prepare Execution key
The call code of the Macro-instruction is displayed on the screen, for example : G65P9041
•Complete this with the value of the parameters, for example : Ddd. Aaa. Sss.
•End with Enter, then press the Start key.

2.46 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


Positioning of instructions G940 and G941 with respect to instructions G78 and G79

- Just as with G940 and G941, the instructions G78 and G79 calculate respectively the position of the
corner of a part and the angle of rotation of a part in the horizontal plane.

- However, G78 and G79 require the prior execution of 2 or 3 Edge touches, whose results will be
stored in the table of measurement points.

- On the other hand, the Macro-instructions G940 (Corner Cycle) and G941 (Align Edge) execute auto-
matically all the operations on the basis of the parameters supplied.
So it is very practical to use them instead of G70 and G71.

The 5 supplementary cycles can be executed with the choice of unit in mm or inches.

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.47


Corner Cycle

Purpose :
Positioning of the Part coordinates with respect to a corner of the part. If the part is not aligned before-
hand, it is possible to add an Align Edge cycle.

ISO syntax : G940 Xxx. Yyy. Ddd. Rrr. Www. Qq

Explanatory drawing :
Start point

Choice of corner

Wire diameter

6478

Description of parameters : Format


Xxx. Contact distance on the 1st face decimal positive > 0.
Yyy. Contact distance on the 2nd face decimal positive > 0.
Ddd. Distance between the 2 touches on the 1st face decimal positive > 0.

Rrr. Choice of corner in degrees, 4 possible values : décimal


corner bottom left 0. (dessin ci-dessus)
corner bottom right 90.
corner top right 180.
corner top left 270.

Www. Wire diameter for edge compensation, décimal


6 possible values :
0.10 0.15 0.20 0.25 0.30 0.33 (mm)
0.004 0.006 0.008 0.010 0.012 0.013 (inches)

Qq Choice of adding or not adding an alignment cycle 0 or 1


Edge (PAL) 0: no additional cycle
1: additional PAL cycle requested

Macro instruction : CRN_G940.ISO

Call-up of Macro instruction : G65P9040 Xxx. Yyy. Ddd. Rrr. Www. Qq

Start point :
Position the wire about 2 mm from the corner to be measured.

Execution :
The wire performs two touches at the distances X and X+D on the first face, then returns to the start point,
and then performs a touch at the distance Y on the 2nd face.

At end of cycle :
- The corner of the part becomes the origin of the X and Y Part axes
- The center of the wire is set back 1 mm along each axis
- If the Align Edge cycle is requested (Q=1), the angle is calculated from the two measurements on the 1st
face, and the result is automatically inserted in the user parameter ROT.

2.48 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


Align Edge Cycle

Purpose :
Measuring the angle of a face of the part with respect to either the X axis or Y axis.

ISO syntax : G941 Ddd. Aaa. Sss.

Explanatory drawing :

Rotation increase

Choice of face

Start points

6478

Description of parameters : Format


Ddd. Distance between the 2 touches on the face decimal positive > 0.

Aaa. Choice of face in degrees, 4 possible values : décimal


bottom face 0. (dessin ci-dessus)
right face 90.
top face 180.
left face 270.

Sss. Additional angle to be added to the decimal positive or nil


result of the measurement for a shape
including an angle of rotation.

Macro instruction : PAL_G941.ISO

Call-up of Macro instruction : G65P9041 Ddd. Aaa. Sss.

Start point :
Position the wire about 2 mm from the face to be measured :
bottom face on the left (drawing above)
right face at the bottom
top face on the right
left face at the top.

Execution :
The wire performs two touches separated by a distance D on the face in question.

At end of cycle :
- The wire returns to its starting position
- The angle is calculated from the two measurements on the face. The result - increased by the value of
parameter S - is inserted in the User parameter ROT.

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.49


External Middle Cycle

Purpose :
Determining the middle of a part by measurements on 2 opposite external faces, either by circumventing
the part, or by cutting the wire and going over the part.
The part must have been aligned mechanically beforehand.

ISO syntax : G942 Aaa. Ddd. Mmm. Tt

Explanatory drawing :

Start points

6478

Description of parameters : Format


Aaa. Choice of the measurement axis, 2 possible values : décimal
along X axis 0.
along Y axis 90 (drawing above)

Ddd. Contact of the wire on the face to be measured décimal


(circumventing mode T0; can be omitted in the case
of T1 mode)

Mmm. Dimension of the part in the measuring direction decimal positive > 0.

Tt Type of path 0 or 1
T0 : circumventing of the part
T1 : going over the top of the part with cutting of wire and rethreading.

Macro instruction : EXM_G942.ISO

Call-up of Macro instruction : G65P9042 Aaa. Ddd. Mmm. Tt

Start point :
Position the heads at the middle of part along the measurement axis
T0 : wire threaded, at about 2mm on the side
T1 : wire cut, approximately at the middle of the part.

Execution :
The wire will successively perform one touch on each opposing face
T0 : circumventing of the part via the outside
T1 : going over the top of the part, with the succession: threading √ cutting √ threading - cutting.

At end of cycle :
- The center of the wire is exactly at the middle of the part along the measurement axis
T0 : on the side
T1 : above the part
- The corresponding Part axis is set to zero.

2.50 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


External Centering Cycle

Purpose :
Determining the center of a cylindrical part of know radius R, by measuring 3 points at 120° on the
external face.

ISO syntax : G943 Rrr. Qqq.

Explanatory drawing :

Start End

6478

Description of parameters : Format


Rrr. Radius of the cylinder decimal positive > 0.

Qqq. Angle in degrees of the 1st measurement decimal positive or nil


with respect to the X+ axis.
This angle must be selected by the user in such
a way that none of the measurements 120° apart
involve a risk of collision with a clamping unit.

Macro instruction : EXC_G943.ISO

Call-up of Macro instruction : G65P9043 Rrr. Qqq.

Start point :
With the wire cut, position the heads approximately at the center of the part.

Execution :
The following sequence will be executed once in the direction indicated by parameter Q, and then with a
rotation of 120° and 240° :
Movement towards outside of cylinder √ threading √ Edge touch √ cutting √ return to start point.

At end of cycle :
- The wire is cut
- The center of the wire is at the calculated center of the part
- The center of the part becomes the origin of the X and Y Part axes.

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.51


Holes Alignment Cycle

Purpose :
Measuring the alignment angle of two holes with respect to either the X axis or Y axis.

ISO syntax : G945 Ddd. Aaa. Sss. Mm

Explanatory drawing :

End at midpoint of
Start distance D

End at center of start hole

Rotation increase

6478

Description of parameters : Format


Ddd. Measured value of distance between the centers decimal positive > 0.
of the two holes

Aaa. Estimated value, in degrees, of the angle between décimal


the alignment of the 2 holes and the X axis.
Must be between √90° and +90°.

Sss. Additional angle, in degrees, to be added to the decimal positive or nil


measurement result for a shape including an
angle of rotation

Mm Choice of positioning at end of measuring 0 or 1


M0 : at center of starting hole
M1 : at middle of distance between centers D.

Macro instruction : CAL_G945.ISO

Call-up of Macro instruction : G65P9045 Ddd. Aaa. Sss. Mm

Start point :
With the wire cut, position the heads approximately at the center of one of the holes :
- the left hole if A is between √45 and +45 (drawing above)
(axis of holes close to X)
- otherwise, the top hole (axis of holes close to Y).

Execution :
Threading, then internal centering cycle (G71) in the first hole
Cutting √ Movement to the second hole (as per parameters A and D)
Threading, then internal centering cycle (G71) in the second hole.

At end of cycle :
- Wire cut M0 : at the exact center of the starting hole
M1 : at the middle of the exact distance between the holes
- The angle is calculated from the measurements of the 2 centers. The result - increased by the value of
parameter S - is inserted in the User parameter ROT.
.

2.52 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005


G944 Positioning towards an absolute XY measured point

Syntax : G944 Pp X_ Y_

Replaces instruction G77

Difference: if the execution of the instruction is interrupted by Feed Hold, pressing the Start key will cause
the normal completion of the movement.

G949 Positioning in the Machine system of coordinates

Syntax : G949 X_ Y_

Replaces instruction G75

Difference: if the execution of the instruction is interrupted by Feed Hold, pressing the Start key will cause
the normal completion of the movement.

CHARMILLES 205 976 310/en/11.11.2005 ISO language - G functions 2.53


2.54 ISO language - G functions CHARMILLES 205 976 310/en/11.11.2005
Chapter 3.

ISO language - M functions

Numerical index and description of M functions 3.3

The M70 retrace function 3.10


Example of application .......................................................................... 3.10
Determination of retrace memory area ...................................................... 3.10

The ∫Scrap remaining/cutting off of attachmentª function 3.11


Examples ............................................................................................ 3.12

M11 function 3.13

Side door management (option) 3.13

CHARMILLES 205 976 360/E/13.04.2004 Table of contents 3.1


3.2 Table of contents CHARMILLES 205 976 360/E/13.04.2004
Numerical index and description of M functions

M code Functions Description

M00 Stop When the block where M00 is specified has been executed, the
machine is automatically stopped.
Machining power supply, wire feed, dielectric fluid supply, and
wire tension automatically turn off.
Cutting is started again by depressing the start key.

M01 Optional stop The optional stop is enabled/disabled by the box OSP of the
(with possibility of creating an screen page User Parameters. After execution of the block in
attachment to hold the scrap) which M01 is specified,
OSP : the machine stops
OSP : M01 is ignored, the machine continues.
(attachment function: see page 3.11)

M02 End of program or sub-program After execution of hte block in which M02 is specified, machining
power supply, wire feed, dielectric fluid supply, and wire tension
turn off automatically. If ∫STOP M02/M03ª is enabled in the
page EXE - User Parameter - Advanced Parameters, power supply
of the axes and pumps turns off automatically.

M04 Opening of side door See the description on page 3.13

M05 Closing of side door See the description on page 3.13

M06 Threading jet on Starts the threading injection.

M07 Upper contact retract Retracts the upper contact to wire threading position.

M08 Emptying of tank + Opening of side See the description on page 3.13
door

M09 Awaiting end of Tank emptying / See the description on page 3.13
Opening of door

M11 Blocking of advanced read Advanced reading is not performed on the block following the ins-
truction in which M11 is specified (see description page 3.13).

M12 Closing of side door + Filling See the description on page 3.13

M13 Awaiting end of door closing / Fil- See the description on page 3.13
ling

M14 Rethreading block init For service use.

CHARMILLES 205 976 360/E/13.04.2004 ISO language - M functions 3.3


M code Functions Description

M15 Programming of taper mode Modification of the taper mode specified in the User Parameters
page by TRE and UV.
TRE UV

p = 0 a taper programmed by G51-G52 is ignored


1 machining with the taper angle programmed by G51-G52
11 4 axes machining with separated programming of the XY and UV planes
The instruction M15 must be specified in the ISO program before the coordinates-defining block G92
X_Y_.

M16 Threading jet off Stops the threading injection.

M17 Upper contact advance Moves the upper contact to the working position.

3.4 ISO language - M functions CHARMILLES 205 976 360/E/13.04.2004


M code Functions Description

M23 Geometry strategy off Disengagement of the protection strategy (see note below).

M24 Geometry strategy on Engagement of the roughing and finishing precision strategy. The
strategy used improves the geometry of the part on passage
through corners and small radii. Controlled also by ST parameter
(as follows):
ST = 0 machining without strategy
ST = 1 roughing with strategy
minimum frequency = nominal frequency/4
(speed favorized))
ST = 3 roughing with strategy
minimum frequency = nominal frequency/8
(precision favorized)
ST = 2 finishing with strategy

Machining type M24 M23

ST = 0 machining without strategy Strategy inactive Strategy inactive

ST = 1 roughing (speed) Strategy active Strategy inactive


angle and small radius

ST = 3 roughing (precision) Strategy active Strategy inactive


angle and small radius

ST = 2 finishing Strategy active Strategy inactive


angle and small radius

Notes:
•Function M24 enables the strategy on the next angle or radius encountered meeting the
conditions for execution of a strategy (angle or radius value).
This implies that:
- If M24 is on the same line as a geometric segment, the strategy will take place, if necessary,
at the end of the segment.
- If M24 is on a line not containing a geometric definition, the strategy will take place, if
necessary, at the end of the next segment.

•Similary, M23 will cancel the strategy on the next intersection encoutered ; however, a
strategy in course can terminate in the next segment.
This implies that:
- If M23 is on the same line as a geometric definition, no strategy will be enabled at the end
of the segment. Conversely, a strategy already in course will terminate normaly in the next
segment.
- If M23 is in a line not containing a geometric difinition, no strategy will take place at the
end of the next segment. Conversely, a strategy in course can terminate normally in the next
segment.

CHARMILLES 205 976 360/E/13.04.2004 ISO language - M functions 3.5


M code Functions Description

M27 Protection strategy off No wire break protection strategy in roughing mode.

M28 First level roughing protection Provides standard protection against wire breakage on attack and
strategy on exit from the part or downgraded machining conditions, as well
as deflection compensation prior to programmed stop and end of
program.

M29 Second level roughing protection Enables protection against wire breakage for complex parts.
strategy on Provides protection in case of excess of pollution.
Caution:
M28 and M29 are active only if parameter ST = 1 or ST = 3
(roughing operation).

Machining type M29 M28 M27

Roughing with ST = 1 or 3 active Level 2 Level 1 Protection


protection protection active inactive

Function M28 Function M29


standard protection for complex parts

Notes:
•When M28 or M29 are active, sag (deflection) compensation is performed in the following
cases:
- end of program
- execution of a programmed stop.
In the latter case, machining is resumed at a reduced rate, using an attack strategy to prevent
wire breakage.

•When M27 is encountered in a program, the protections in course are abandoned.

M30 End of program or sub-program and When the block where M30 is specified has been executed, the
re-reeling processing is performed as in M02, followed by program hea-
ding.
Automatic power off function is the same as for M02.

M31 Setting of machining counter to zero The display of machining time is reset to zero

M32 Water deionization check Check that the deionization is correct.


Execution of further machinig operations is postponed as long as
the deionization exceeds the preset limit.

3.6 ISO language - M functions CHARMILLES 205 976 360/E/13.04.2004


M code Functions Description

M33 Check water temperature Checks that the dielectric temperature is correct.
Execution of further machining operations is postponed as long as
temperature exceeds the preset limit.

Notes:
- This function requires the availability of a temperature measurement system (analogic sensor
or threshold detector).
- This device is optional on some models.

M34 Tank filling If strained level off (M37 enabled): adjustment to the top head
(submerged machining) level.
If strained level on: adjustment to the strained level, provided there
is compatibility with the Z axis position.

M35 Tank emptying Emptying up to empty level if level was above empty level.
(submerged machining) Complete emptying if level was below empty level.

M36 Memorizing of the strained level + The strained level takes the value of current top head level.
Strained level on Strained level becomes the reference for level adjustment.
(submerged machining)

M37 Strained level off Top head level becomes the reference for level adjustment.
(submerged machining)

M40 Dry run state When M40 is specified, discharge turns off, and the feedrate is
set to the dry run speed VSIM.
M40 state is reset by the RESET key or M80.

M42 Wire feed off Stops wire feed.

M43 Upper and lower flushing off Stops the high pressure injection of the dielect-ric through the top
and bottom wire guide.

M44 Wire tension off Suppresses wire tension.

M50 Wire cut Cuts the wire.

M59 Preparation on broken wire Can be used by MDI input in suspension mode to prepare and cut
the wire after a breakage or threading failure (normally followed
by an MDI threading instruction M60).

M60 Wire threading Specify the threading of the wire electrode.

M68 Switch off circulation pumps Allows to stop dielectric circulation while maintaining power and
ventilation on.

M69 Switch on circulation pumps Reestablishes dielectric circulation.

M70 Retrace function After executing the current block, retraces the machined path to
the start point.
For details, see the end of this chapter.

CHARMILLES 205 976 360/E/13.04.2004 ISO language - M functions 3.7


M code Functions Description

M71 Management of the These 3 instructions control the user output signal ∫Execution
M73 ∫Execution enabledª signal enabledª, making it possible to indicate on the outside of the
M74 machine (for example by means of a LED) the status of the current
machining job.
M71: signal ON during execution phases
M73: signal ON permanently (for test purposes)
M74: signal OFF permanently
These 3 functions are modal and cancel each other.

M80 Machining state Turns on the discharge and sets the feedrate to that for normal
machining. Used to reset the M40 command.

M82 Wire feed on Starts wire feed.

M83 Upper flushing enable Opens the valve enabling injection of dielectric through the top
wire guide.
M83 is a modal function.

M84 Wire tension on Establishes wire tension.

M86 Lower flushing enable Opens the valve enabling injection of dielectric fluid through the
bottom wire guide.
M86 is a modal function.

M87 Stored function 1 ON Enables stored output 1.

M88 Stored function 1 OFF Disables stored output 1.

M89 Stored function 2 ON Enables stored output 2.

M90 Stored function 2 OFF Disables stored output 2.

M91 Distant alarm enable Allows the alarm signal to be emitted in case of machining default
or M93 programmed alarm.

M92 Distant alarm disable Blocks the alarm signal.

M93 Distant alarm on Raises the alarm signal (if enabled by M91).

M94 Distant alarm off Resets the alarm signal raised by M93.

M95 Pulse output function Provides pulse output 1 (200 ms).

M96 Reverse machining completion in Specifies the completion of reverse machining in mirror copy.
mirror copy For details, see section ∫Special programmingª in chapter 4.

M97 Reverse machining in mirror copy Specifies the start of reverse machining in mirror copy.
For details, see section ∫Special programmingª in chapter 4.

3.8 ISO language - M functions CHARMILLES 205 976 360/E/13.04.2004


M code Functions Description

M98 Sub-program call Branches from the main program to a subprogram.


For details, see section ∫Special programmingª in chapter 4.

M99 Sub-program end Specifies the end of the subprogram.


For details, see section ∫Special programmingª in chapter 4.

M101 Auxiliary M functions


to
M158

M178 Opening of brake see Rotary Table option

M179 Closing of brake see Rotary Table option

Notes:
- If any of the following commands are specified in a block containing a move command, the
command becomes effective from the start of movement:
M06, M07, M16, M17, M23, M24, M27, M28, M29, M31, M40, M43, M80, M83 or
M86, M87 to M95.

When other M commands are specified in a block containing a move command, they become
effective after the movement has been completed.

- When the wire diameter is being compensated or when tapered machining is being performed,
one or two M command can be specified in an independent block. However, three independent
blocks containing M commands cannot be specified in succession.

- If more than one M code is specified in the same block, only the last one will be effective.

- For localisation of output and alarm connectors, refer to maintenance manual.

M code Functions Description

M920 QCRw Robot option Selection of a pallet from the magazine, loading in the work area.
Loading or replacement of a pallet. If a pallet is already in position, it is unloaded beforehand.

M921 QCRw Robot option Return of the pallet from the work area to the magazine of the
Unloading of a pallet. QCRw Robot.

For these two instructions, refer to the documentation of the QCRw Robot option.

CHARMILLES 205 976 360/E/13.04.2004 ISO language - M functions 3.9


The M70 retrace function

This function returns the wire to the machining startpoint along the machined path at dry run speed VSIM.
Retrace is for instance useful when several successive passes are needed to reach the desired surface
finish.

Start point Machining


path
Retrace

1339a

Example of application

Single block command Command in moving block


O1000; O1000;
Programmed
path G92X0Y0; G92X0Y0;
G91; G91;
G41G01X15.0; G41G01X15.0;
Machining G02X15.0Y-15.0I15.0; G02X15.0Y-15.0I15.0M70;
start point M70;
G40; G40;
G92; G92;
M02; or (M30) M02; or (M30)
Wire cut path

1339a

Notes:
- If M70 is specified in a block containing a move command, the return to start point occurs after
execution of the block.
- If M70 is specified in a block containing a move command, neither the offset mode nor tapered
machining mode are cancelled (normally, the offset and taper machining mode are cancelled if the
next block does not contain a move command).
- A G92 command (eventually preceded by G40 or G50) should be added immediately after the
M70 command.

Determination of retrace memory area

If the space required to store the retrace path is insufficient, an alarm n°64 is issued. Consult the
Maintenance manual for the size modification of the retrace area.

3.10 ISO language - M functions CHARMILLES 205 976 360/E/13.04.2004


The ∫Scrap remaining/cutting off of attachmentª function

This function covers two possibilities:


- retaining an attachment designed to hold the slug temporarily (for example, to perform the finishing in the
slot passes, or to allow the scrap (slug) to be held by a magnet, or to eliminate the scrap manually)
- final cutting off of the scrap.

The processing conditions are controlled by 2 parameters of the screen page EXE - Options:
Scrap attachment = 0: no attachment
1: retaining the scrap by an attachment
2: cutting off of the attachment
Length of the attachment = length of the attachment

In both cases, retaining or cutting off, the processing is performed within the block preceding the optional
Stop instruction M01.
If users want the machine to stop on execution of this block, they must activate this function by the User
parameter OSP.

First case: retaining of the scrap by an attachment


- machining stops at a distance equal to the length of the attachment before the end of execution of the
block preceding M01 (optional stop).

- if the machine is not equipped with the automatic rethreading mechanism, the instruction M01 is
executed, and the machine goes into suspension mode.
The operator must then:
• cut the wire manually
• press CYCLE START
- the distance corresponding to the attachment length is covered at VSIM speed
- execution of the program continues.

- if the machine is equipped with the automatic rethreading mechanism, the instruction M50 (cutting of
wire) is automatically executed, and then:
- the distance corresponding to the attachment length is covered at VSIM speed
- execution of the program continues.

Second case: cutting off of the attachment


- the programmed path is executed without machining at VSIM speed, the movement stopping at the start
of the attachment in the block preceding M01 (optional stop)
- cutting off by activation of machining in roughing mode over the distance corresponding to the length of
the attachment
if OSP is activated, the machine goes into suspension mode; the operator can evacuate the scrap, then
complete the program by pressing CYCLE START
- if OSP is not activated, the scrap will be evacuated after completion of the program.

Notes:
- the attachment can only be executed in a block involving movement with machining (G01, G02,
G03)
- the attachment is not modified by the introduction of a scale factor
- the following conditions rule out creation of the attachment:
- taper machining with programming of two planes, with direct piloting of the U-V axes, with
deviation vector
- block with programming of corner rounding R
- program with inverse copy function.

CHARMILLES 205 976 360/E/13.04.2004 ISO language - M functions 3.11


Examples

a) Program used successively for creating then cutting off the attachment

G92 X0 Y0;
G87; mode: creation of attachment
G89 P1000; length:1000± = 1mm
G91 G01 Y-5.;
X5.;
Y10.;
X-10.;
Y-10.;
X5.; the attachment starts 1 mm
; before the end of this block
M01; automatic cutting of wire (M50) or
; manual cutting after optional stop
G40 G00 Y5.; completion of
M02; program diagram

G92 X0 Y0;
G88; mode: cutting off of attachment
G89 P1000; length: 1000± = 1mm
G91 G01 Y-5.; execution
X5.; of the path
Y10.; in DRY-RUN
X-10.; mode
Y-10.;
X5.; activation of machining 1 mm
; before the end of this block
M01; optional stop/evacuation
G40 G00 Y5.; completion of
M02 the program

b) Multi-cavities program with creation of attachments for retaining the scrap, machine equipped with
automatic rethreading mechanism

G92 X0 Y0;
G87; mode: creation of attachment
G89 P1000; length:1000± = 1mm
G91 G01 X5.;
Y5.;
X-10.;
Y-10.;
X10.;
Y5.; the attachment starts 1 mm
; before the end of this block
M01; automatic cutting of wire (M50)
G40 G00 X-5.; continuation of the program
G00 Y-15.; 2nd cavity
M60; automatic rethreading
G92 X0 Y0;
G91 G01 X5.;
Y5.;
X-10.;
Y-10.;
X10.;
Y5.; the attachment starts 1 mm
; before the end of this block
M01; automatic cutting of wire (M50)
G40 G00 X-5.; completion of
M02; the program

3.12 ISO language - M functions CHARMILLES 205 976 360/E/13.04.2004


M11 function

During the execution of programs, the numerical control performs an advance read of the blocks that follow
the current instruction.
The function M11 forbids this advanced reading and guarantees that the instruction containing it will be
completely executed before the reading of the following block.
This function must be executed in particular before a setting is selected
(example: M11 S2 or M11 S501)

Side door management (option)

The following instructions are used for managing the side door :

M04 Opening of side door


M05 Closing of side door

M08 Starting of tank emptying + Opening of side door


M09 Starts the emptying + opening, then waits for these two operations to be completed

M12 Starting of closing of side door + filling of tank at the level of threading
M13 Starts the closing + filling, then waits for these two operations to be completed

Note:
these codes are executed in Dry Run mode, but are ignored in Verification mode and during restar-
ting operations (HPR - SPR).
They cannot be executed using the direct command MDI.

CHARMILLES 205 976 360/E/13.04.2004 ISO language - M functions 3.13


&KDSWHU

,62ODQJXDJH6SHFLDOSURJUDPPLQJ

7KHVXESURJUDP 00  


)RUPDWRIDVXESURJUDP  
6XESURJUDPH[HFXWLRQ  
6SHFLDOXVHVRIVXESURJUDPV  

7KHFRUQHUUHFHVVIXQFWLRQ 
3URJUDPPLQJ  
([DPSOHRISURJUDPPLQJ  
3UpFDXWLRQV 

7KHFRUQHUURXQGLQJIXQFWLRQ **  


3URJUDPPLQJ  
6SHFLI\LQJWKHUDGLXVRIWKHDUF  
([DPSOHRISURJUDPPLQJ  
3UHFDXWLRQV 

&RQYHUVLRQFRS\IXQFWLRQV 0  


5RWDWLRQFRS\  
6FDOHFRS\ 
0LUURUFRS\  
5HSHWLWLYHURWDWLRQFRS\ 
7KHFHQWUHRIWKHFRQYHUVLRQFRS\FRPPDQGV  

7KHUHYHUVHFRS\IXQFWLRQ 00  


3URJUDPPLQJ  
([DPSOHVRI3URJUDPPLQJ  
3UHFDXWLRQV 

6SHFLDOWDSHUSURJUDPPLQJ 
,QGHSHQGHQWXSSHUDQGORZHUFRUQHUUDGLL 
'HYLDWLRQYHFWRU  
$UFGHYLDWLRQYHFWRU  
6SHFLI\LQJWKHDQJOHRIZLUHLQFOLQDWLRQLQDQLQGHSHQGHQWEORFN  
6SHFLI\LQJWKHKHLJKWRIWKHVHFRQGDU\VXUIDFH  
*HQHUDOSUHFDXWLRQV 

7DSHUPDFKLQLQJVSHFLI\LQJXSSHUDQGORZHUVKDSHV 
2XWOLQH  
3URJUDPPLQJ  
([DPSOHVRISURJUDPPLQJ 
6HOHFWLQJWKHPDFKLQLQJPRGH  
3UHFDXWLRQVZKHQVSHFLI\LQJXSSHUDQGORZHUVKDSHV 

&+$50,//(6 ( 7DEOHRIFRQWHQWV 


 7DEOHRIFRQWHQWV &+$50,//(6 (
7KHVXESURJUDP 00

,IDSURJUDPFRQWDLQVIUHTXHQWO\UHSHDWHGSDWWHUQVWKH\PD\EHVWRUHGDVDVXESURJUDP$VXESURJUDP
FDQEHFDOOHGLQHLWKHUWKHWDSHPRGHRUPHPRU\PRGH$VXESURJUDPFDQDOVRFDOODQRWKHUVXESURJUDP
7KHPD[LPXPQHVWLQJOHYHORIFDOOHGVXESURJUDPVLVDVVKRZQEHORZ

$FDOOFRPPDQGFDQFDOODVXESURJUDPUHSHDWHGO\XSWRWLPHV

0DLQSURJUDP WDSH 6XESURJUDP$ 6XESURJUDP%


RUPHPRU\

&DOORIVXESURJUDP$ &DOORIVXESURJUDP%

5HWXUQ
5HWXUQ

)RUPDWRIDVXESURJUDP

$VXESURJUDPLVFUHDWHGLQWKHIROORZLQJIRUPDW
2;;;; 6XESURJUDPQXPEHU

7KHVXESURJUDPQXPEHULVVSHFLILHGDIWHU2LQ(,$ 


FRGHRUDIWHUDFRORQ  LQ,62FRGHDWWKHVWDUWRI 3URJUDP

WKHVXESURJUDP,WLVQRWQHFHVVDU\WRVSHFLI\WKH 

0FRPPDQGLQDQLQGHSHQGHQWEORFN
0 (QGRISURJUDP

([DPSOH;0

1RWH
7RPDLQWDLQFRPSDWLELOLW\ZLWKRWKHU1&HTXLSPHQWWKHVXESURJUDPQXPEHUFDQEHVSHFLILHGDIWHU
DGGUHVV1LQVWHDGRIDIWHU2RU

&+$50,//(6 ( ,62ODQJXDJH6SHFLDOSURJUDPPLQJ 


6XESURJUDPH[HFXWLRQ

$VXESURJUDPLVFDOOHGIURPWKHPDLQSURJUDPRU
DQRWKHUVXESURJUDPDVIROORZV

,I/LVRPLWWHGWKHQXPEHURIUHSHWLWLRQVEHFRPHV 1XPEHURIUHSHWLWLRQWLPHV

RQH 6XESURJUDPQXPEHU

([DPSOH03/

7KLVFRPPDQGFDOOVWKHVXESURJUDPZKRVHQXPEHULVDQGH[HFXWHVLWILYHWLPHVLQVXFFHVVLRQ$
PRYHFRPPDQGFDQDOVREHVSHFLILHGLQWKHVDPHEORFNDV03B/B

([DPSOH;03

,QWKLVFDVHWKHVXESURJUDPZKRVHQXPEHULVLVFDOOHGDQGH[HFXWHGRQFHDIWHUWKHPRYHPHQW
VSHFLILHGE\WKH;FRPPDQGWHUPLQDWHV

7KHIROORZLQJILJXUHJLYHVDQH[DPSOHRIWKHVHTXHQFHRIFDOOLQJDQGH[HFXWLQJVXESURJUDPV

6XESURJUDP
0DLQSURJUDP 

$VXESURJUDPLVFDOOHGIURPDQRWKHUVXESURJUDPLQWKHVDPHZD\LWLVFDOOHGIURPWKHPDLQSURJUDP

1RWH
 1HLWKHUWKH0RU0FRPPDQGLVRXWSXWWRWKHPDFKLQH
 ,IWKHVXESURJUDPQXPEHUVSHFLILHGDWDGGUHVV3LVQRWIRXQGDODUP1RRFFXUV
 $VXESURJUDPFDQQRWEHFDOOHGE\HQWHULQJWKHFRPPDQG03[[[[IURPWKH0',XQLW7RFDOOD
VXESURJUDPSUHSDUHWKHIROORZLQJSURJUDPLQWKH(',7PRGHDQGH[HFXWHLWLQWKHPHPRU\
PRGH
2[[[[
03[[[[
0

 ,62ODQJXDJH6SHFLDOSURJUDPPLQJ &+$50,//(6 (


6SHFLDOXVHVRIVXESURJUDPV

6XESURJUDPVFDQEHXVHGLQWKHIROORZLQJVSHFLDO
ZD\V

5HWXUQLQJIURPDVXESURJUDP
$IWHUDVXESURJUDPLVH[HFXWHGFRQWUROJHQHUDOO\ 0DLQSURJUDP 6XESURJUDP

UHWXUQVWRWKHEORFNLQWKHPDLQSURJUDP
LPPHGLDWHO\DIWHUWKHEORFNWKDWFDOOHGWKHVXE
SURJUDP+RZHYHUFRQWUROFDQUHWXUQWRDQ
RSWLRQDOEORFNLQWKHPDLQSURJUDPE\VSHFLI\LQJ
WKHEORFNQXPEHUDIWHUDGGUHVV3+RZHYHUWKH
SURFHVVLQJWLPHIRUUHWXUQLQJFRQWUROLQWKLVZD\LV
FRQVLGHUDEO\ORQJHUWKDQZKHQUHWXUQLQJWRWKH
VXEVHTXHQWEORFN,IWKHPDLQSURJUDPLVQRW
H[HFXWHGLQWKHPHPRU\PRGHDGGUHVV3LV
LJQRUHG

7KH0FRPPDQG
,IWKH0FRPPDQGLVH[HFXWHGLQWKHPDLQSURJUDPFRQWUROUHWXUQVWRWKHVWDUWRIWKHPDLQSURJUDP
,I0LVLQVHUWHGDWWKHFRUUHFWSRVLWLRQLQWKHPDLQSURJUDPDQGWKHRSWLRQDOEORFNVNLSVZLWFKLVWXUQHG
RIIWKH0FRPPDQGLVH[HFXWHGDQGFRQWUROUHWXUQVWRWKHVWDUWRIWKHPDLQSURJUDP7KHPDLQSURJUDP
LVWKHQH[HFXWHGUHSHDWHGO\IURPWKHEHJLQQLQJ7KH0FRPPDQGLVUHSHDWHGO\H[HFXWHGZKLOHWKH
RSWLRQDOEORFNVNLSVZLWFKLVWXUQHGRII:KHQWKHRSWLRQDOEORFNVNLSVZLWFKLVWXUQHGRQWKH0EORFN
LVVNLSSHGDQGWKHQH[WEORFNLVH[HFXWHG,I03QLVVSHFLILHGFRQWUROGRHVQRWUHWXUQWRWKHVWDUWEXW
WRWKHEORFNZKRVHQXPEHULVQ+RZHYHUSURFHVVLQJWDNHVFRQVLGHUDEO\ORQJHUWKDQQRUPDOLQWKLVFDVH

2SWLRQDOEORFNVNLS

2))
2SWLRQDOEORFNVNLS

21

&+$50,//(6 ( ,62ODQJXDJH6SHFLDOSURJUDPPLQJ 


([HFXWLQJDVXESURJUDPIURPWKHVWDUW
,WLVDOVRSRVVLEOHWRH[HFXWHDVXESURJUDPIURPWKH
VWDUWE\VHDUFKLQJIRULWIURPWKH0',LQWKHPHPRU\
PRGHOLNHDPDLQSURJUDP
,IDEORFNFRQWDLQLQJWKH0FRPPDQGLV
H[HFXWHGFRQWUROUHWXUQVWRWKHVWDUWRIWKHVXE
SURJUDPDQGWKHVXESURJUDPLVH[HFXWHG
UHSHDWHGO\,IDEORFNFRQWDLQLQJWKH03Q
FRPPDQGLVH[HFXWHGFRQWUROUHWXUQVWRWKHEORFN
KDYLQJQXPEHUQLQWKHVXESURJUDPDQGWKH
H[HFXWLRQLVUHSHDWHG7RVWRSH[HFXWLQJWKLV
SURJUDPLQVHUWDEORFNFRQWDLQLQJ0
RU0DWWKHDSSURSULDWHSODFH:KHQWKH
RSWLRQDOEORFNVNLSVZLWFKLVWXUQHGRIIWKHDERYH
FRPPDQGLVH[HFXWHGWRWHUPLQDWHWKHSURJUDP

0/B
7KLVFRPPDQGIRUFLEO\FKDQJHVWKHQXPEHURIWLPHV
DVXESURJUDPLVFDOOHGVSHFLILHGE\/PLGZD\ 0DLQSURJUDP 6XESURJUDP

WKURXJKWKHVXESURJUDP

:KHQWKHRSWLRQDOEORFNVNLSVZLWFKLVWXUQHGRII
WKHQXPEHURIFDOOLQJWLPHVEHFRPHV]HURDQG
FRQWUROUHWXUQVWRWKHPDLQSURJUDP

 ,62ODQJXDJH6SHFLDOSURJUDPPLQJ &+$50,//(6 (


7KHFRUQHUUHFHVVIXQFWLRQ

7KHFRUQHUUHFHVVIXQFWLRQDXWRPDWLFDOO\UHFHVVHV
FRUQHUVRIZRUNSLHFHVWRHQVXUHDIUHHZD\WRD
VKDUSFRUQHUDVVKRZQEHORZ
6WDUW



3URJUDPPLQJ

0RYHFRPPDQG5

7RUHFHVVWKHFRUQHURIDZRUNSLHFHVSHFLI\D5DIWHUDPRYHFRPPDQG7KHFRUQHUEHWZHHQWKHPRYH
FRPPDQGLQZKLFK5LVVSHFLILHGDQGWKHVXEVHTXHQWPRYHFRPPDQGLVUHFHVVHGDVVKRZQLQWKHILJXUH
EHORZ7KHFRUQHUUHFHVVIXQFWLRQLVHQDEOHGRQO\ZKHQWKHZLUHGLDPHWHULVFRPSHQVDWHG

&RUQHURIZRUNSLHFH

WREHUHFHVVHG

:LUHRIIVHW

3URJUDPPHGSDWK

3DWKRIZLUHFHQWUH

&RUQHURIZRUNSLHFH
3DWKRIZLUHFHQWUH WREHUHFHVVHG

3URJUDPPHGSDWK



&+$50,//(6 ( ,62ODQJXDJH6SHFLDOSURJUDPPLQJ 


7KHFRUQHUUHFHVVIXQFWLRQFDQEHVSHFLILHGIRUWZR
VWUDLJKWOLQHVIRUWZRDUFVDQGIRUDVWUDLJKWOLQH
DQGDQDUF

&RUQHURIZRUNSLHFH
WREHUHFHVVHG

3URJUDPPHGSDWK

3DWKRIZLUHFHQWUH



:KHQWKHFRUQHUUHFHVVIXQFWLRQLVVSHFLILHGRQWKH
RXWVLGHRIWKHFRUQHUWKHZRUNSLHFHLVUHFHVVHGDV
VKRZQLQWKHILJXUHEHORZ

&RUQHURIZRUNSLHFH
WREHUHFHVVHG

3DWKRIZLUHFHQWUH



([DPSOHRISURJUDPPLQJ

O1000;
G92X0Y15.0;
G91G42G01Y10.0;
X25.0R-0;
Y-25.0R-0; 6WDUW
G03X-25.0Y-25.0J-25.0R-0;
G02X-25.0Y25.0J25.0;
G01Y25.0R-0;
X25.0;
G40G01Y-10.0;
M02; or M30



 ,62ODQJXDJH6SHFLDOSURJUDPPLQJ &+$50,//(6 (


3UHFDXWLRQV

 :KHQWKHFRUQHUUHFHVVIXQFWLRQLVVSHFLILHGLQ
WDSHUHGPDFKLQLQJWKHWRSDQGERWWRPVXUIDFHRI
WKHZRUNSLHFHLVUHFHVVHGLQWKHVDPHZD\

7RSRIWKHZRUNSLHFH %RWWRP
RIWKHZRUNSLHFH



 7KHFRUQHUUHFHVVIXQFWLRQLVVSHFLILHGLQWKHVDPH
ZD\DVWKHFRUQHUURXQGLQJIXQFWLRQ7KHZLUH
UHYHUVHVGLUHFWLRQZKHQPRYLQJDORQJWKHSDWK
VSHFLILHGE\WKHURXQGLQJIXQFWLRQ7KHUHIRUHWKH
VL]HRIWKHUHFHVVFDQEHDGMXVWHGE\VSHFLI\LQJ
DVXLWDEOHUDGLXVDVDQHJDWLYHYDOXH'RQRW 5HFFHVVLQJZKHQ5LV

VSHFLILHG
VSHFLI\DUDGLXVLQZKLFKWKHDEVROXWHYDOXHLV
ODUJHUWKDQWKHZLUHGLDPHWHUFRPSHQVDWLRQ 5HFFHVVLQJZKHQRI

RIIVHWRWKHUZLVHWKHUHFHVVZLOOEHPDFKLQHG WKHZLUHUDGLXVRIIVHWLV

RSSRVLWHWRWKHZRUNSLHFH VSHFLILHG



&+$50,//(6 ( ,62ODQJXDJH6SHFLDOSURJUDPPLQJ 


7KHFRUQHUURXQGLQJIXQFWLRQ **

7KHFRUQHUURXQGLQJIXQFWLRQLQVHUWVDQDUFRIWKH
UDGLXVVSHFLILHGE\WKH8VHU3DUDPHWHU5PLQDW
HDFKFRUQHURIWKHSURJUDPPHGSDWK

1RWH
7KHYDOXHRI5PLQFDQEHDGMXVWHGLQD
SURJUDPE\PHDQVRIWKHLQVWUXFWLRQ
*35B

6WDUW


3URJUDPPLQJ

7KHFRUQHUURXQGLQJIXQFWLRQLVVSHFLILHGE\WKHIROORZLQJ*FRPPDQGV
 *&RUQHUURXQGLQJHQDEOHG
 *&RUQHUURXQGLQJGLVDEOHG

%RWKRIWKHVHFRPPDQGVEHORQJWRJURXS
:KHQWKH*FRPPDQGLVVSHFLILHGWKHFRUQHUURXQGLQJIXQFWLRQLVHQDEOHGDQGVWD\VHQDEOHGXQWLOWKH
*FRPPDQGLVVSHFLILHG
7KHGLUHFW5FRPPDQGZKLFKVSHFLILHVDUDGLXVIRUDFRUQHUKDVSULRULW\HYHQZKHQWKHFRUQHUURXQGLQJ
IXQFWLRQLVYDOLG
7KHFRUQHUURXQGLQJIXQFWLRQGRHVQRWLQVHUWWKHVSHFLILHGDUFXQGHUWKHIROORZLQJFRQGLWLRQV
 :KHQWKHDQJOHEHWZHHQWKHWZROLQHVLVOHVVWKDQƒRUPRUHWKDQƒ
 :KHQWKHQH[WEORFNGRHVQRWFRQWDLQDPRYHFRPPDQG

6SHFLI\LQJWKHUDGLXVRIWKHDUF

 $QHJDWLYHYDOXHFDQQRWEHVSHFLILHG WKHPLQXVVLJQLVLJQRUHG 
 :KHQWKHFRUQHUUDGLXVLVVSHFLILHGZKLOHWKHFRUQHUURXQGLQJIXQFWLRQLVHQDEOHGWKHQHZUDGLXVKDV
SULRULW\RYHUWKHROGUDGLXV
 7KHVFDOLQJIXQFWLRQLVLQYDOLGIRUDUFLQFRUQHUURXQGLQJ,IWKHVFDOLQJIXQFWLRQLVXVHGDUFVRIWKHVSHFL
ILHGUDGLXVDUHLQVHUWHGDWWKHFRUQHUVRIWKHHQODUJHGRUUHGXFHGVKDSH

 ,62ODQJXDJH6SHFLDOSURJUDPPLQJ &+$50,//(6 (


([DPSOHRISURJUDPPLQJ

O1000;
6WDUW
G92X0Y35.0;
G91G41G01Y-10.0;
G48X25.0;
Y-25.0;
X-25.0;
G02X-25.0Y-25.01-25.0R5.0;
G01Y50.0;
G49X25.0;
G40Y10.0;
M02; or M30; &RUQHUURXQGHGE\WKH
GLUHFW5FRPPDQG

&RUQHUURXQGHGE\DXWRPDWLF
FRUQHUURXQGLQJIXQFWLRQ


3UHFDXWLRQV

 ,IWKHFRUQHUUDGLXVWREHH[HFXWHGEHFRPHV
QHJDWLYHDVDUHVXOWRIWKHRIIVHWFDOFXODWLRQWKH
UDGLXVLVLJQRUHGDQGWKHZLUHH[HFXWHVDVKDUS
FRUQHU

:LUHFHQWUHSDWK



 :KHQLVVSHFLILHGIRUWKHFRUQHUUDGLXVWKH
ZLUHSDWKRQWKHRXWVLGHRIWKHFRUQHUGLIIHUVIURP
WKHZLUHSDWKZLWKRXWFRUQHUURXQGLQJDVVKRZQ
LQWKHILJXUHEHORZ
:KLWRXW&5

:LWK&5 

 :KHQFRUQHUURXQGLQJLVVSHFLILHGGXULQJ
WDSHUHGPDFKLQLQJWKH1&SHUIRUPVDFRQLFDO
FRUQHUDQJOH HTXLYDOHQWWR* 

3DWKRIZLUHFHQWUH



&+$50,//(6 ( ,62ODQJXDJH6SHFLDOSURJUDPPLQJ 


&RQYHUVLRQFRS\IXQFWLRQV 0

7KHFRQYHUVLRQFRS\IXQFWLRQVFRQYHUWDQGFRS\WKHFRRUGLQDWHVLQWKHVXESURJUDPDFFRUGLQJWRWKH
VSHFLILHGFRRUGLQDWHFRQYHUVLRQSDUDPHWHUVXFKDVWKHURWDWLRQDQJOHVFDOLQJIDFWRUPLUURULPDJHD[LV
HWFZKHQWKHVXESURJUDPLVFDOOHG

0DLQSURJUDP 6XESURJUDP

&RRUGLQDWH
&RRUGLQDWH FRQYHUVLRQ
FRQYHUVLRQ

SDUDPHWHU

7KHFRQYHUVLRQFRS\IXQFWLRQVDUHFODVVLILHGDFFRUGLQJWRWKHFRQYHUVLRQSDUDPHWHUVDVVKRZQLQWKHWDEOH
EHORZ

&RQYHUVLRQFRS\LQJIXQFWLRQ &RQYHUVLRQSDUDPHWHU $GUHVV

5RWDWLRQFRS\ 5RWDWLRQDQJOH 4

6FDOLQJFRS\ 6FDOLQJIDFWRU .

0LUURUFRS\ 0LUURULPDJHD[LV %

5HSHWLWLYHURWDWLRQFRS\ 5RWDWLRQDQJOH 4

0XOWLSOHFRQYHUVLRQFRS\IXQFWLRQVFDQEHVSHFLILHGVLPXOWDQHRXVO\H[FHSWIRUWKHUHSHWLWLYHURWDWLRQFRS\
IXQFWLRQ

([DPSOH
03B4B.B%B

7KHFRQYHUVLRQFRS\IXQFWLRQVFDQFDOOVXESURJUDPVXSWRDQHVWLQJOHYHORIWZRLQFOXGLQJRUGLQDU\
VXESURJUDPFDOO)RUH[DPSOHDFRQYHUVLRQFRS\IXQFWLRQFDQEHVSHFLILHGLQWKHVXESURJUDPFDOOHGE\
DQRWKHUFRQYHUVLRQFRS\FRPPDQG

&RRUGLQDWH &RRUGLQDWH

FRQYHUVLRQ FRQYHUVLRQ

 ,62ODQJXDJH6SHFLDOSURJUDPPLQJ &+$50,//(6 (


IDSURJUDPRIWKHEDVLFVKDSHLVVWRUHGLQ 6XESURJUDP
DGYDQFHLQPHPRU\DVDVXESURJUDPD 2
FRQYHUVLRQFRS\IXQFWLRQVXFKDVURWDWLRQFRS\ 6WDUW

VFDOLQJFRS\PLUURUFRS\RUUHSHWLWLYHURWDWLRQ
FRS\LVDSSOLHGWRVKDSHVZKLFKFDQWKHQEH
HDVLO\SURJUDPPHG

0DLQSURJUDP
6WDUW
O1000;
M98P1234Q-45.0;
G00 X10.M00;
M98P1234K1.5;
G00X 30.M00;
M98P1234B1;
M02; or M30;

5RWDWLRQFRS\ (QODUJHGFRS\ 0LUURUFRS\



6XESURJUDP 6XESURJUDP

:KHQUHSHWLWLYHURWDWLRQFRS\LVVSHFLILHGLQWKH
SURJUDPRIDUHSHDWHGVKDSHRQDFLUFOHVXFKDV
WKHJHDUVKRZQEHORZRQO\WKHSURJUDPRIWKH
UHSHWLWLYHVKDSHLVUHTXLUHGWKHUHE\VLPSOLI\LQJ
SURJUDPPLQJ



0DLQSURJUDP
O1000;
G92X0Y200.;
G42Y2.5;
M98P2000Q-14.4L25; 6WDUW
G40Y-2.5;
M02; or M30;



&+$50,//(6 ( ,62ODQJXDJH6SHFLDOSURJUDPPLQJ 


5RWDWLRQFRS\

7KHURWDWLRQFRS\IXQFWLRQURWDWHVDQGFRSLHVWKHVKDSHSURJUDPPHGLQWKHVXESURJUDPDFFRUGLQJWR
WKH VSHFLILHGURWDWLRQDQJOH7KHFHQWUHRIURWDWLRQLVGHILQHGDWWKHZLUHSRVLWLRQLPPHGLDWHO\EHIRUHWKH
URWDWLRQFRS\FRPPDQGLVVSHFLILHG$UHSHWLWLRQQXPEHUFDQQRWEHVSHFLILHGLQWKHURWDWLRQFRS\
FRPPDQG,IDUHSHWLWLRQQXPEHULVVSHFLILHGWKHFRPPDQGLVUHJDUGHGDVWKHUHSHWLWLYHURWDWLRQFRS\
FRPPDQG

3URJUDPPLQJ
036XESURJUDP1R45RWDWLRQDQJOH

6SHFLI\WKHDQJOHRIURWDWLRQIURPƒWRƒLQLQFUHPHQWVRIƒDIWHUDGGUHVV4$GHFLPDO
SRLQWFDQEHVSHFLILHG$QHJDWLYHYDOXHURWDWHVWKHVKDSHFORFNZLVHDQGDSRVLWLYHYDOXHURWDWHVWKH
VKDSHFRXQWHUFORFNZLVH

([DPSOHRISURJUDPPLQJ

6XESURJUDP
O2000
G92X0Y5.0;
G42G01Y5.0;
X5.0; 6WDUW

Y-5.0;
G02Y-15.0J-7.5;
G01X-10.0;
Y20.0;
X5.0; 

G40Y-5.0;
M00;
M99;

0DLQSURJUDP
O1000;
G91;
M98P2000Q-90.0;
G00X25.0M00; 6WDUW

M98P2000;
G00X25.0M00;
M98P2000Q90.0;
M02; or M30;


 ,62ODQJXDJH6SHFLDOSURJUDPPLQJ &+$50,//(6 (


6FDOHFRS\

7KHVFDOHFRS\IXQFWLRQHQODUJHVRUUHGXFHVWKHVKDSHSURJUDPPHGLQWKHVXESURJUDPDFFRUGLQJWRWKH
VSHFLILHGVFDOHIDFWRU7KHFHQWUHRWWKHVFDOLQJLVGHILQHGDVWKHSRVLWLRQRIWKHZLUHLPPHGLDWHO\EHIRUHWKH
VFDOHFRS\FRPPDQGLVVSHFLILHG

3URJUDPPLQJ
036XESURJUDP1R.6FDOHIDFWRU

6SHFLI\WKHVFDOHIDFWRUIURPWRLQLQFUHPHQWVRIDIWHUDGGUHVV.$GHFLPDOSRLQW
FDQEHVSHFLILHG:KHQDUHSHWLWLRQQXPEHULVVSHFLILHGLQWKHVFDOHFRS\FRPPDQGWKHHQODUJHGRU
UHGXFHGVKDSHLVUHSHDWHG

([DPSOHRISURJUDPPLQJ

6XESURJUDP
O2000
G01X5.0;
Y-5.0;
G02Y-15.0J-7.5;
G01X-10.0;
Y20.0;
X5.0;
M99;


0DLQSURJUDP
O1000; 6WDUW

G91;
G92X0Y10.0;
G41G01Y-5.0;
M98P2000K1.5;
G40G01Y5.0;
M02; or M30;



&+$50,//(6 ( ,62ODQJXDJH6SHFLDOSURJUDPPLQJ 


0LUURUFRS\

7KHPLUURUFRS\IXQFWLRQLQYHUWVDQGFRSLHVWKHVKDSHSURJUDPPHGLQWKHVXESURJUDPZLWKWKHVSHFLILHG
PLUURULPDJHD[LVDVWKHD[LVRIV\PPHWU\

3URJUDPPLQJ
036XESURJUDP1R%0LUURULPDJHD[LV

6SHFLI\WKHPLUURULPDJHD[LVDIWHUDGGUHVV%XVLQJRQHRIWKHYDOXHVLQWKHWDEOHEHORZ

%    

0LUURULPDJHD[LV 'RQRWXVH ;8 <9 ;<89

:KHQ%LVVSHFLILHGWKHWDEOHIHHGGLUHFWLRQLQWKH;DQG8D[LVLVUHYHUVHG7KHUHIRUHDVKDSH
V\PPHWULFDOWRWKHSURJUDPPHGVKDSHLQWKHVXESURJUDPZLWKUHVSHFWWRWKH<D[LVLVREWDLQHG
:KHQ%LVVSHFLILHGWKHWDEOHIHHGGLUHFWLRQLQWKH<DQG9D[LVLVUHYHUVHG7KHUHIRUHDVKDSH
V\PPHWULFDOWRWKHSURJUDPPHGVKDSHLQWKHVXESURJUDPZLWKUHVSHFWWRWKH;D[LVLVREWDLQHG
:KHQ%LVVSHFLILHGWKHWDEOHIHHGGLUHFWLRQDORQJDOOD[HVDUHUHYHUVHG7KHUHIRUHDVKDSHV\PPHWULFDO
WRWKHSURJUDPPHGVKDSHLQWKHVXESURJUDPZLWKUHVSHFWWRWKHRULJLQLVREWDLQHG
7KHZLUHGLDPHWHUFRPSHQVDWLRQDQGWDSHUHGPDFKLQLQJIXQFWLRQVVKRXOGEHFDQFHOHGLPPHGLDWHO\EHIRUH
DQGDIWHUWKHPLUURUFRS\FRPPDQGLQDSURJUDP7KHURWDWLRQFRS\FRPPDQGIRUILJXUHURWDWLRQFDQQRW
EHVSHFLILHGLQDVXESURJUDPLQZKLFKPLUURUFRS\KDVDOUHDG\EHHQVSHFLILHG

([DPSOHRI3URJUDPPLQJ

6XESURJUDP
O2000
G92X0Y5.0;
G42G01Y5.0; 6WDUW

X5.0;
Y-5.0;
G02Y-15.0J-7.5;
G01X-10.0; 

Y20.0;
X5.0;
G40Y-5.0;
M00;
M99;

0DLQSURJUDP
% % %
O1000;
G91;
M98P2000B2;
G00X25.0M00;
M98P2000B1; 6WDUW

G00X35.0M00;
M98P2000B3;

M02; or M30;

 ,62ODQJXDJH6SHFLDOSURJUDPPLQJ &+$50,//(6 (


5HSHWLWLYHURWDWLRQFRS\

7KHUHSHWLWLYHURWDWLRQFRS\IXQFWLRQUHSHDWHGO\FRSLHVWKHVKDSHSURJUDPPHGLQWKHVXESURJUDP
DFFRUGLQJWRWKHVSHFLILHGURWDWLRQDQJOHDQGUHSHWLWLRQQXPEHUZLWKDQLQFUHDVHLQWKHURWDWLRQDQJOH
HDFKWLPH

3URJUDPPLQJ
036XESURJUDP1R45RWDWLRQDQJOH/5HSHWLWLRQ1R

6SHFLI\WKHDQJOHRIURWDWLRQIURPƒWRƒLQLQFUHPHQWVRIƒDIWHUDGGUHVV46SHFLI\WKH
UHSHWLWLRQQXPEHUDVDQLQWHJHUDIWHUDGGUHVV/$GHFLPDOSRLQWFDQEHVSHFLILHGIRUWKHURWDWLRQDQJOHEXW
QRWIRUWKHUHSHWLWLRQQXPEHU$QHJDWLYHYDOXHURWDWHVWKHVKDSHFORFNZLVHDQGDSRVLWLYHYDOXHURWDWHVWKH
VKDSHFRXQWHUFORFNZLVH

([DPSOH 0DLQSURJUDP 034/

,QWKHODWWHUFDVHWKHWRWDODQJOHGLYLGHGE\WKH
UHSHWLWLRQQXPEHUWRGHWHUPLQHWKHLQFUHPHQWDQJOH 6WDUWRIUHSHWLWLYH
URWDWLRQFRS\
6XESURJUDP

,QUHSHWLWLYHURWDWLRQFRS\WKHILUVWURWDWLRQDQJOHLV
LHQRFRQYHUVLRQLVDSSOLHGLQWKHILUVWFRS\
7KHUHDIWHUWKHVSHFLILHGURWDWLRQDQJOHLVDGGHG
WR WKHURWDWLRQDQJOHDIWHUHDFKFRS\7KHDGGHG
URWDWLRQDQJOHVKRXOGEHOHVVWKDQƒ7KH
URWDWLRQFHQWUHLVGHILQHGDWWKHRULJLQRIWKH
FRRUGLQDWHV\VWHPZKHQWKHUHSHWLWLYHURWDWLRQ
FRS\FRPPDQGLVVSHFLILHG7KHUHIRUHWKHRULJLQ
VKRXOGEHFRUUHFWO\GHILQHGEHIRUHWKHUHSHWLWLYH (QGRIUHSHWLWLYH

URWDWLRQFRS\FRPPDQGLVVSHFLILHG URWDWLRQFRS\



&+$50,//(6 ( ,62ODQJXDJH6SHFLDOSURJUDPPLQJ 


([DPSOHRISURJUDPPLQJ

([DPSOH

6XESURJUDP
O1111G91G02X1078Y-26J-22500;
G01X47Y991;
G02X16Y139I1109J-53;
X57Y272I4370J-767;
X159Y536I5175J-1248;
X261YA647I7837J-2788;
X448Y868I8839J-4007;
X603Y9401I0960J-6367;
X1428Y-181I-2669J-26868;
X350Y-1060I-11849J-4501;
X218Y-952I-9330J-2635;

X92Y-692I-8192J-1442;
X21Y-558I-5302J-480;
X-13Y-279I-4437J65;
X-20Y-138I-1106J86;
G01X-200Y-972;
G02X1051Y-243I-4545J-22036;
M99;

0DLQSURJUDP
6WDUW
O1000;
M92X0Y200.;
G42G01Y2.5;
M98P1111Q-14.4L25;
G40G01Y-2.5;
M02; or M30;



([DPSOH

6XESURJUDP 6WDUW

O2222;
G92X0Y25.0;
G42G01Y-5.0;
G02X-5.0Y5.0J5.0;
G01Y5.0;
G02X10.0I5.0;
G01Y-5.0;
G02X-5.0Y-5.0I-5.0;
G40G01Y5.0; 

M00;
G00X-17.678Y-7.322;
M00;
M99;

0DLQSURJUDP WKHURWDWLRQDQJOHLVVSHFLILHGDVWKHWRWDODQJOH
O1000;
G91;
G92X0Y25.0;
M98P2222Q360.0L8;
M02; or M30;

 ,62ODQJXDJH6SHFLDOSURJUDPPLQJ &+$50,//(6 (


7KHFHQWUHRIWKHFRQYHUVLRQFRS\FRPPDQGV

7KHFHQWUHRIURWDWLRQRUH[SDQVLRQDUHHQWHUHGLQWKHIROORZLQJIRUPDW

6SHFLI\WKH,DQG-FHQWUHFRRUGLQDWHVDVDEVROXWHYDOXHV,IWKHVHSDUDPHWHUVDUHQRWVSHFLILHGWKHGHIDXOWV
IRUHDFKW\SHRIFRS\DUHDVIROORZV

 5RWDWLRQFRS\H[SDQVLRQFRS\
7KHFRS\VWDUWSRLQWLVWDNHQDVWKHFHQWUH+RZHYHULI*LVHQWHUHGZKLOHFRS\LQJLVLQSURJUHVVWKH
RULJLQLVWDNHQDVWKHFHQWUH

 5HSHWLWLYHURWDWLRQFRS\
7KHRULJLQLVWDNHQDVWKHFHQWUH

&DXWLRQ
,IRQO\RQHRI,DQG-LVVSHFLILHGLQWKHEORFNFRQWDLQLQJWKH0FRPPDQGDQG;<DUHQRW
VSHFLILHGWKHFRPPDQGLVQRWWDNHQDVDPRYHFRPPDQG

([DPSOH

O0001;
G91;
G92X0Y0;
G00Y50.;
M98P0002Q90.L4I0.J50.; 6WDUW

G00Y-50.;
M02; or M30;

O0002;

G00Y20.;
M98P0003Q90.L4I0.J50.;
G00Y-20.;
X-50.Y-50.;
M99;

O0003;
G01Y2.;
G02J-2.;
G01Y-2.;
G00X-20.Y-20.;
M99;

&+$50,//(6 ( ,62ODQJXDJH6SHFLDOSURJUDPPLQJ 


7KHUHYHUVHFRS\IXQFWLRQ 00

7KHUHYHUVHFRS\IXQFWLRQH[HFXWHVWKHFRPPDQGV
3URJUDP
EHWZHHQWKH0DQG0FRPPDQGV7KH
FRPPDQGVDIWHU0DUHH[HFXWHGVHTXHQWLDOO\
XQWLOWKH0FRPPDQGLVUHDFKHG7KHQWKH 0
V\VWHPH[HFXWHVWKHFRPPDQGVLQUHYHUVHRUGHU 5HYHUVHFRS\

VWDUWLQJZLWKWKH0FRPPDQGXQWLOSURFHVVLQJ
UHWXUQVWRWKH0FRPPDQG
7KHPLUURULPDJHFRPPDQGFDQEHVSHFLILHG
WRJHWKHUZLWKWKH0FRPPDQG7KLVHQDEOHV 0%
D VKDSHV\PPHWULFDODERXWDQD[LVWREH
SURJUDPPHGHDVLO\ ;PLUURULPDJH

:KHQ0LVH[HFXWHGWKHVXEVHTXHQW
FRPPDQGVDUHWUDQVIHUUHGWRWKHPDFKLQHDQG 6WDUW

VHTXHQWLDOO\VWRUHGLQDVSHFLDOPHPRU\:KHQ
0LVHQFRXQWHUHGWKHPDFKLQHH[HFXWHVWKH
5HYHUVHFRS\

FRPPDQGVVWRUHGLQWKHVSHFLDOPHPRU\LQUHYHUVH
RUGHUDQGPRYHVEDFNDORQJWKHSURJUDPPHG
SDWKWRWKHVWDUWSRLQW7KHPDFKLQHPRYHVDORQJ
WKHH[DFWO\VDPHSDWK¦DFRPSHQVDWHGSDWKLQWKH
ZLUHGLDPHWHUFRPSHQVDWLRQPRGHRUDWDSHUHG
SDWKLQWKHWDSHUPRGH+RZHYHUWKHQXPEHURI
FRPPDQGVWKDWFDQEHH[HFXWHGE\WKHUHYHUVH
FRS\IXQFWLRQLVOLPLWHGE\WKHFDSDFLW\RIWKH 

VSHFLDOPHPRU\$SSUR[LPDWHO\PRYH
FRPPDQGVFDQEHVWRUHGDOWKRXJKLWGHSHQGVRQ
WKHLUFRPSOH[LW\

3URJUDP

0
0DFKLQH VHUYRPRWRU 
$[LVPRYHPHQW

LQWKHIRUZDUGGLUHFWLRQ
0RYH

FRPPDQGV

0

$[LVPRYHPHQW

LQWKHUHYHUVHGLUHFWLRQ

6WRULQJRUGHU

0RYHFRPPDQGV

VWRUHG

5HDGLQJRUGHU

 ,62ODQJXDJH6SHFLDOSURJUDPPLQJ &+$50,//(6 (


3URJUDPPLQJ

7KHUHYHUVHFRS\IXQFWLRQLVVSHFLILHGE\WZRFRPPDQGV7KH0FRPPDQGZKLFKVSHFLILHVVWRULQJWKH
VXEVHTXHQWFRPPDQGVLQWKHVSHFLDOPHPRU\DQGWKH0FRPPDQGZKLFKVWDUWVUHYHUVHFRS\LQJ

7KH0FRPPDQG
0

7KH0FRPPDQGKDVWZRIXQFWLRQV7RVSHFLI\VWRULQJWKHVXEVHTXHQWFRPPDQGVLQWKHVSHFLDOPHPRU\
DQGWRLQGLFDWHWKHHQGRIUHYHUVHFRS\LQJZKHQWKHVWRUHGFRPPDQGVKDYHEHHQH[HFXWHGLQUHYHUVH
RUGHU,IWKHVXEVHTXHQWFRPPDQGVDUHPRYHFRPPDQGVWKHUHYHUVHFRS\IXQFWLRQPRYHVWKHPDFKLQH
DORQJWKHVDPHSDWKLQWKHUHYHUVHRUGHU
:KHQVSHFLI\LQJWKH0FRPPDQGLQWKHZLUHGLDPHWHUFRPSHQVDWLRQPRGHRUWKHWDSHUPRGH
FRQVLGHUWKHZLUHGLDPHWHURIIVHWDQGWKHDPRXQWRIWDSHU
,QWKHLOOXVWUDWLRQEHORZWKHPRYHPHQWIURP$WR&DQGIURP&WR(DUHV\PPHWULFDODERXWWKHYHUWLFDOZKHQ
WKHZLUHGLDPHWHUFRPSHQVDWLRQLVFDQFHOHG+RZHYHUWKHVHPRYHPHQWVDUHQRWV\PPHWULFDOZKHQZLUH
GLDPHWHUFRPSHQVDWLRQLVXVHG
,QWKLVH[DPSOHWKHUHIRUHWKH0FRPPDQGFDQQRWEHVSHFLILHGDWSRLQW$6SHFLI\0DWSRLQW%
ZKHQWKHZRUNSLHFHVKDSHDQGWKHZLUHGLDPHWHUFRPSHQVDWLRQYHFWRUDUHV\PPHWULFDOZLWK'

7KH0FRPPDQG
0%0LUURULPDJHD[LV

/DFRPPDQGH0VSpFLILHODILQGHO
HQUHJLVWUHPHQWGHVFRPPDQGHVGDQVODPpPRLUHVSpFLDOHHWOH
GpEXWGHOHXUH[pFXWLRQGDQVO
RUGUHLQYHUVH3RXUO
D[HLPDJHPLURLUVSpFLILH]XQHGHVYDOHXUVVXLYDQWHV

%&RGH 0LUURULPDJHD[LV

 'RQRWXVH

 ;8

 <9

,I%LVVSHFLILHGRUQRYDOXHLVVSHFLILHGIRU%WKHPDFKLQHPRYHVDORQJWKHSURJUDPPHGSDWKLQWKH
UHYHUVHGLUHFWLRQ
,I%LVVSHFLILHGWKHD[LVIHHGGLUHFWLRQLQWKH;DQG8D[LVLVUHYHUVHGSURGXFLQJDVKDSHV\PPHWULFDO
DERXWWKH<D[LV
,I%LVVSHFLILHGWKHD[LVIHHGGLUHFWLRQLQWKH<D[LVDQG9D[LVLVUHYHUVHGSURGXFLQJDVKDSH
V\PPHWULFDODERXWWKH;D[LV

&+$50,//(6 ( ,62ODQJXDJH6SHFLDOSURJUDPPLQJ 


,IWKH0FRPPDQGLVVSHFLILHGLQWKHZLUHGLDPHWHUFRPSHQVDWLRQPRGHRIWKHWDSHUPRGHWKHZLUH
GLDPHWHUFRPSHQVDWLRQYHFWRURUWDSHUYHFWRUIRUWKHEORFNLQZKLFK0LVVSHFLILHGLVDXWRPDWLFDOO\
HVWDEOLVKHGZLWKUHVSHFWWRWKHVSHFLILHGPLUURULPDJHD[LV
$IWHUWKHUHYHUVHFRS\IXQFWLRQKDVEHHQH[HFXWHGWKHV\VWHPVWD\VLQWKHPRGHVSHFLILHGEHIRUHWKH0
FRPPDQGZDVH[HFXWHGVXFKDVWKHZLUHGLDPHWHUFRPSHQVDWLRQPRGHRUWDSHUHGPDFKLQLQJPRGH

0% 6DPHSDWK

0%%

6\PPHWULFDODERXW;D[LV



6WDUW


0%O

6\PPHWULFDOSDWKZLWKUHVSHFWWR<D[LV

([DPSOHVRISURJUDPPLQJ
([DPSOH
O1000; 6WDUW
G91;
G92X0Y20.0;
M96;
G41G01Y-10.0;
X10.0;
G03X10.0Y-10.0I10.0;
G02X-15.0Y-15.0I-15.0;
G01X-5.0;
M97B1;
M02; or M30; 

([DPSOH
O2000;
G91; 6WDUW

G92X0Y0;
G41G01X5.0;
Y5.0;
X10.0;
M96;
G02X15.0I7.5
G01Y-5.0;
X10.0Y-10.0
M97B2;
X-5.0;
X-5.0Y15.0;
Y10.0;
G40X-5.0; 

M02; or M30;

 ,62ODQJXDJH6SHFLDOSURJUDPPLQJ &+$50,//(6 (


3UHFDXWLRQV

 'RQRWVSHFLI\WKH*FRPPDQGVSHFLI\LQJWKHDEVROXWH]HURSRLQWEHWZHHQWKH0DQG0
FRPPDQGVLQDSURJUDP
 'RQRWVSHFLI\WKHPLUURUFRS\IXQFWLRQEHWZHHQWKH0DQG0FRPPDQGVLQDSURJUDP+RZHYHU
WKHURWDWLRQFRS\DQGVFDOLQJFRS\IXQFWLRQVFDQEHVSHFLILHGEHWZHHQWKH0DQG0FRPPDQGV
LQDSURJUDP
 'RQRWVSHFLI\WKH0DQG0FRPPDQGVLQDVXESURJUDP
 'RQRWVSHFLI\JUDSKURWDWLRQLQDSURJUDPVSHFLI\LQJPLUURULPDJHIRUWKH0FRPPDQG
 'RQRWVSHFLI\WKH0FRPPDQGLQWKHURWDWLRQFRS\RUUHSHWLWLYHURWDWLRQFRS\IXQFWLRQV

&+$50,//(6 ( ,62ODQJXDJH6SHFLDOSURJUDPPLQJ 


6SHFLDOWDSHUSURJUDPPLQJ

,QGHSHQGHQWXSSHUDQGORZHUFRUQHUUDGLL

0RYHFRPPDQG5B.B

:KHQPDFKLQLQJWDSHUHGFRUQHUUDGLLRQWKHSURJUDPPHGZRUNSLHFHVXUIDFHDQGRQWKHRSSRVLWHVXUIDFH
WKHUDGLLDUHVSHFLILHGDIWHUDGGUHVVHV5DQG.

([DPSOH
O1000;
G91;
G40 G50 G92X0Y-25.0I-50.0J50.0;
G51G42G01Y15.0T5.0;
X10.0R0K5.0;
Y20.0R5.0K10.0;
X-20.0R0K5.0;
Y-20.0R5.0K10.0;
X10.0;
G50G40Y-15.0; 6WDUW

M02; or M30;

5HPDUN
)RUDF\OLQGULFDOFRUQHUVSHFLI\WKHVDPH
UDGLXVLQ5DQG.

'HYLDWLRQYHFWRU

0RYHFRPPDQG8B9B

:KHQPDFKLQLQJZLWKDVSHFLILHGWDSHUDQJOHWKHDQJOHFDQEHFKDQJHGE\VSHFLI\LQJDGHYLDWHGWDSHU
YHFWRU7KLVFRPPDQGLVGHILQHGE\LWVGLUHFWLRQUHODWLYHWRWKHHQGSRLQWRQWKHSURJUDPPHGVXUIDFH
WRZDUGWKHHQGSRLQWRQWKHZRUNSLHFHVXUIDFHVSHFLILHGE\WKH*FRPPDQGDQGE\DPDJQLWXGH7KH
PDJQLWXGHLVVSHFLILHGDIWHUDGGUHVVHV8DQG9

([DPSOH
O1000;
G91;
G40 G50 G92X0Y-20.0I-50.0;
'HYLDWHG
G51G42G01Y10.0T5.0; YHFWRU
X10.0;
Y20.0U10.0V10.0;
X-20.0;
Y-20.0; X10.0;
G50G40Y-10.0;
M02; or M30; 6WDUW


 ,62ODQJXDJH6SHFLDOSURJUDPPLQJ &+$50,//(6 (


$UFGHYLDWLRQYHFWRU

,QDSDUWSURJUDPVSHFLI\LQJDWDSHUDQJOHDGHYLDWLRQYHFWRUFDQEHGHILQHGRQDFLUFXODULQWHUSRODWLRQ
FRPPDQG ** 

*  ;[<\,L-M8X9Y.N/O

;<,- ILQDOSRLQWDQGFHQWHURIWKHDUFLQWKH
SURJUDPPHGVXUIDFHDUHD DVLQDQ $UFRIWKHRWKHUVXUIDFH

RUGLQDU\LQWHUSRODWLRQFRPPDQG RIWKHZRUNSLHFH

89 GHYLDWLRQYHFWRURIWKHILQDOSRLQWLQWKH
RSSRVLWHVXUIDFHDUHDZLWKUHVSHFWWRWKH $UFLQWKHSURJUDPPHG

ILQDOSRLQWLQWKHSURJUDPPLQJSODQH VXUIDFHRIWKHZRUNSLHFH

DV LQWKHFDVHRIGHYLDWLRQRIDOLQHDU
PRYHPHQW LM
[\
./ GHYLDWLRQYHFWRURIWKHFHQWHULQWKH
RSSRVLWHVXUIDFHDUHD ZLWKUHVSHFWWRWKH XY

FHQWHULQWKHSURJUDPPLQJSODQH 
,I./DUHQRWVSHFLILHGWKHLUYDOXHLVDVVX NO

PHGWREH


 7KLVGHYLDWLRQLVRQO\HIIHFWLYHLQWKHFRPPDQGLQ
ZKLFKLWLVVSHFLILHG
 7KHOHWWHU/DOVRVHUYHVWRGHILQHWKHQXPEHURI
UHSHWLWLRQVLQDORRS%HFDXVHRIWKLVWKHDUF
GHYLDWLRQFDQQRWEHXVHGLQDQ0EORFN
FDOOLQJXSDVXESURJUDP

([DPSOH
O1000; 6WDUW

G91;
G40 G50 G92X0Y20.0I-20.0;
G52G41G01Y-10.0T10.0;
X10.0;
Y-20.0;
X-5.0V-3.527;
G03X-10.0I-5.0V-3.527L-3.527;
G01X-5.0;
Y20.0; 7DSHUDQJOH

X10.0;
G50G40Y10.0;
M02; or M30;

&+$50,//(6 ( ,62ODQJXDJH6SHFLDOSURJUDPPLQJ 


6SHFLI\LQJWKHDQJOHRIZLUHLQFOLQDWLRQLQDQLQGHSHQGHQWEORFN

;B<B
7B
;B<B

:KHQWKHDQJOHRIZLUHLQFOLQDWLRQLVVSHFLILHGLQ
LQGHSHQGHQWEORFNDVVKRZQDERYHWKHZLUH 0RYHPHQWSURGXFHGE\ 
PRYHVOLQHDUO\DQGSHUSHQGLFXODUO\WRWKH
PRYHPHQWRIEORFNWLOOWKHHQGSRLQWRIEORFN 
7KHDQJOHRIZLUHLQFOLQDWLRQLVVSHFLILHGLQ *XLGH

DGYDQFH 7KHQWKHZLUHEHFRPHVSHUSHQGLFXODUWR
WKHPRYHPHQWRIWKHQH[WEORFNEORFNDWWKHVWDUW 3URJUDPPHG

SRLQWRIEORFN 7KHDQJOHRIZLUHLQFOLQDWLRQLV SODQH

WKHDQJOHVSHFLILHGLQ 7KLVPRYHPHQWFDXVHVWKH *XLGH

ZLUHWRURWDWHZLWKWKHSURJUDPPHGSODQHDVWKH
FHQWUH


([DPSOH
7KHVWHSZLVHWDSHUHGSODQHVVKRZQEHORZFDQEH
PDFKLQHG

O1000;
G91;
G40 G50 G92X0Y0;
G51G42G01X20.0;
T1.0; X10.0;
T2.0; 6WDUW
X10.0;

T3.0;
X10.0;
T2.0;
X10.0;
T1.0;
X10.0;
T0;
G50G40X20.0;
M02; or M30;

 ,62ODQJXDJH6SHFLDOSURJUDPPLQJ &+$50,//(6 (


([DPSOH
7KHS\UDPLGVKRZQQHDUE\FDQEHPDFKLQHG

O1000;
G91;
G92X0Y-30.0;
G51G42G01Y15.0T5.0;
X15.0;
T5.0;
Y30;
T5.0;
X-30.0;
T5.0;
Y-30.0;
T5.0;
X15.0;
G50G40Y-15.0;
M02; or M30; 6WDUW



6SHFLI\LQJWKHKHLJKWRIWKHVHFRQGDU\VXUIDFH

,IDSDUWSURJUDPVSHFLILHVWKHZRUNSLHFHKHLJKWLQ
WDSHUHGPDFKLQLQJRQHSURJUDPFDQVSHFLI\
L!
PXOWLSOHKHLJKWV

*;[<\,L-M

6SHFLI\M %RWWRPVXUIDFHRIZRUNSLHFH

7KHKHLJKWRIWKHSURJUDPPHGVXUIDFHRIWKH
ZRUNSLHFHDERYHWKHZRUNWDEOHDIWHUDGGUHVV-LQ
WKHEORFNLQZKLFKWKHFRRUGLQDWHV\VWHPLVVHWZLWK 7DEOHVXUIDFH
WKH*FRPPDQG,IWKHKHLJKWLVQRWVSHFLILHG
WKHSUHYLRXVKHLJKWUHPDLQVHIIHFWLYH
7RSVXUIDFH

L RIZRUNSLHFH

7DEOHVXUIDFH

&+$50,//(6 ( ,62ODQJXDJH6SHFLDOSURJUDPPLQJ 


([DPSOH
O1000;
G91;
G92X0Y0I-15.0J25.0;
6WDUW
M60;
G52G42G01Y7.5T5.0;
X7.5; :RUNSLHFHVXUIDFH

Y-15.0;
X-15.0;
Y15.0;
X7.5;
G50G40Y-7.5; 7DEOHVXUIDFH

M50; 

G00X50.0;
G92X0Y0I-10.0J20.0;
M60;
G52G42G01Y10.0T3.0;
G02J-10.0;
G50G40G01Y-10.0;
M50;
M02; or M30;

1RWH
:KHQGLVSOD\LQJDSDUWSURJUDPVSHFLI\LQJWKHZRUNSLHFHWKLFNQHVVRQWKHVFUHHQVSHFLI\WKH
GLVWDQFHIURPWKHVXUIDFHRIWKHZRUNWDEOHWRWKHWRSRIWKHZRUNSLHFH,QWKHDERYHH[DPSOHWKHVHW
YDOXHLV

*HQHUDOSUHFDXWLRQV

 7DSHUHGPDFKLQLQJLVQRUPDOO\SURJUDPPHG
VR WKDWWKHZLUHVWDUWVDQGILQLVKHVLQWKHYHUWLFDO 8SSHUJXLGH
;BBBBBBBB

0BBBBBBBB
SRVLWLRQ 0BBBBBBBB

 ,IWZRRUPRUHEORFNVKDYLQJQRPRYHGLVWDQFH <BBBBBBBB

DUHVSHFLILHGVHTXHQWLDOO\LQWDSHUHGPDFKLQLQJ
WKHDQJOHRIZLUHLQFOLQDWLRQPD\QRWEHFRUUHFWO\ 3URJUDPPHG

GHWHUPLQHG VXUIDFH

 ,IWKHGHIOHFWLRQRIWKHORZHUJXLGHDQGXSSHU %ORFNZLWKRXWPRYH

JXLGHLQFUHDVHVDWDVKDUSFRUQHUWKHXSSHU FRPPDQG

JXLGHPD\RYHUVKRRWWKHZRUNSLHFH /RZHUJXLGH

 7DSHUHGPDFKLQLQJFDQQRWEHVSHFLILHGLQWKH
0',PRGH 

 :KHQWKH00RU0FRPPDQGLV
VSHFLILHGGXULQJWDSHUHGPDFKLQLQJWKHZLUHLV
SRVLWLRQHGSHUSHQGLFXODUWRWKHODVWPRYHPHQWDW
WKHHQGSRLQWRIWKHODVWPRYHPHQW7KHUHIRUHLWLV
SRVVLEOHWKDWWKHFRUUHFWDQJOHRIZLUHLQFOLQDWLRQ
LVQRWREWDLQHG

 ,62ODQJXDJH6SHFLDOSURJUDPPLQJ &+$50,//(6 (


7DSHUPDFKLQLQJVSHFLI\LQJXSSHUDQGORZHUVKDSHV

2XWOLQH

7KLVIXQFWLRQHQDEOHVDZRUNSLHFHWRPDFKLQHGZLWKDWDSHUDFFRUGLQJWRWKHGLUHFWO\VSHFLILHGVKDSHVRI
WKHXSSHUDQGORZHURIWKHZRUNSLHFH,QRUGLQDU\WDSHUHGPDFKLQLQJWKHVKDSHVDQGWDSHUDQJOHVRQWKH
SURJUDPPHGVXUIDFHDUHVSHFLILHG
$OWKRXJKWKLVSURJUDPPLQJLVVLPSOHDQGSUDFWLFDOWKHUHLVDOLPLWWRWKHNLQGVRIWDSHUHGVXUIDFHVWKDWFDQ
EHSURJUDPPHG6RPHVKDSHVFDQQRWEHSURJUDPPHG:LWKWKLVIXQFWLRQVLQFHLWLVSRVVLEOHWRVSHFLI\
WKHVKDSHVRIWKHWRSDQGERWWRPVXUIDFHVGLUHFWO\RULQGLUHFWO\LWLVSRVVLEOHWRVSHFLI\DQ\VKDSHSURYLGHG
LWGRHVQRWFRQWDLQDWDSHUWKDWFDQQRWEHPDFKLQHG

([DPSOHRIVKDSHVZKLFKFDQEHVSHFLILHG



3URJUDPPLQJ

3URJUDPVFRQWDLQWKHVKDSHVRIWZRSODQHV
$X[LOLDU\SURJUDPPHGVXUIDFH
UHSUHVHQWLQJWKHXSSHUDQGORZHUVXUIDFHVRID
ZRUNSLHFH7KHVHSODQHVDUHSDUDOOHOWRWKH;<
SODQH)RUFRQYHQLHQFHRQHSODQHLVFDOOHGWKH
SURJUDPPHGVXUIDFHDQGWKHRWKHULVFDOOHGWKH
DX[LOLDU\SURJUDPPHGVXUIDFHLUUHVSHFWLYHRI
ZKLFKLVWKHXSSHUSODQH
7KHVKDSHRIWKHSURJUDPPHGVXUIDFHLV 3URJUDPPHGVXUIDFH

SURJUDPPHGLQWKHQRUPDOZD\7KHVKDSHRIWKH
DX[LOLDU\SURJUDPPHGVXUIDFHLVSURJUDPPHGXVLQJ
DWDSHUPRGLILFDWLRQYHFWRUYLHZLQJWKHVKDSH
IURPWKHSURJUDPPHGVXUIDFH &URVVVHFWLRQQDOVKDSH &URVVVHFWLRQQDOVKDSHRQ
RQDX[LOLDU\ SURJUDPPHGVXUIDFH
SURJUDPPHGVXUIDFHH


&+$50,//(6 ( ,62ODQJXDJH6SHFLDOSURJUDPPLQJ 


6HWWLQJWKHFRRUGLQDWHV\VWHP

*;[<\,L

7RVHWWKHFRRUGLQDWHV\VWHPVSHFLI\WKHFXUUHQW 8SSHUZLUHJXLGH
ZLUHSRVLWLRQRQWKHSURJUDPPHGVXUIDFHDIWHU
DGGUHVVHV;DQG<6SHFLI\WKHGLVWDQFHEHWZHHQ $X[LOLDU\SURJUDPPHGVXUIDFH

WKHSURJUDPPHGVXUIDFHDQGDX[LOLDU\
SURJUDPPHGVXUIDFHDIWHUDGGUHVV,6SHFLI\D
SRVLWLYHYDOXHDIWHUDGGUHVV,ZKHQWKHDX[LOLDU\
SURJUDPPHGVXUIDFHLVDERYHSURJUDPPHG
VXUIDFHDQGVSHFLI\DQHJDWLYHYDOXHZKHQWKH L!

DX[LOLDU\VXUIDFHLVEHORZWKHSURJUDPPHGVXUIDFH
,WLVQRWQHFHVVDU\WRVSHFLI\WKHFXUUHQWZLUH
SRVLWLRQRQWKHDX[LOLDU\SURJUDPPHGVXUIDFH
3URJUDPPHGVXUIDFH
EHFDXVHLWLVDXWRPDWLFDOO\GHWHUPLQHGDFFRUGLQJWR :LUH
WKHLQFOLQDWLRQRIWKHZLUH,WLVQHFHVVDU\WRVSHFLI\ /RZHUZLUHJXLGH
DFRRUGLQDWHV\VWHPDWWKHVWDUWRIDOOSURJUDPV 

:KHQWKHSURJUDPPHGVXUIDFHLVDWWKHERWWRPRI 8SSHUZLUHJXLGH

WKHZRUNSLHFH
3URJUDPPHGVXUIDFH

L

$X[LOLDU\SURJUDPPHGVXUIDFH

:LUH

/RZHUZLUHJXLGH


:KHQWKHSURJUDPPHGVXUIDFHLVDWWKHWRSRIWKH
ZRUNSLHFH
:LUHSDWKRQDX[LOLDU\
SURJUDPPHGVXUIDFH 7DSHUPRGLILFDWLRQ
YHFWRU XY

:LUHSDWKRQWKH
SURJUDPPHGVXUIDFH



 ,62ODQJXDJH6SHFLDOSURJUDPPLQJ &+$50,//(6 (


/LQHDULQWHUSRODWLRQ

*;[<\8X9Y

8VHWKLVFRPPDQGZKHQWKHVKDSHRIWKHXSSHUDQGORZHURIDZRUNSLHFHLVIODW ZKHQWKHSDWKRIWKHZLUH
LVDVWUDLJKWOLQH 6SHFLI\DSDWKRQWKHSURJUDPPHGVXUIDFHZLWKDGGUHVVHV;DQG<:KHWKHUDEVROXWH
YDOXHVRULQFUHPHQWDOYDOXHVDUHXVHGLVVSHFLILHGE\WKH*RU*FRPPDQG7KH*FRPPDQG
VSHFLILHVWKDWWKHYDOXHVIRUDGGUHVVHV;DQG<DUHDEVROXWHDQGWKH*FRPPDQGVSHFLILHVWKDWWKH\DUH
LQFUHPHQWDO6SHFLI\DSDWKRQWKHDX[LOLDU\VXUIDFHZLWKDGGUHVVHV8DQG98VHDGHYLDWLRQYHFWRUWR
VSHFLI\WKHSDWKIURPWKHHQGSRLQWRQWKHSURJUDPPHGVXUIDFHWRWKHHQGSRLQWRIWKHDX[LOLDU\VXUIDFH
UHJDUGOHVVRIWKHYDOXHV\VWHPDEVROXWHRULQFUHPHQWDO

&LUFXODULQWHUSRODWLRQ

*;B<B,B-B
8B9B.B/B
*;B<B,B-B
8B9B.B/B

* &ORFNZLVHGLUHFWLRQ

* &RXQWHUFORFNZLVHGLUHFWLRQ

8VHWKLVFRPPDQGZKHQDZRUNSLHFHKDVFXUYHG (QGSRLQWPRGLILFDWLRQYHFWRU XY


VXUIDFHVDWWKHXSSHUDQGORZHU ZKHQWKHSDWKRI
WKHZLUHLVDQDUF 7KHGLUHFWLRQRIZLUHPRYHPHQW
$UFRQDX[LOLDU\
LVVSHFLILHGZLWKWKH*FRPPDQG FORFNZLVH RU SURJUDPPHGVXUIDFH

WKH*FRPPDQG FRXQWHUFORFNZLVH 9DOXHVIRU


DGGUHVVHV,DQG-DUHLQFUHPHQWDOUHODWLYHWRWKH
VWDUWLQJSRLQWRIWKHDUF6SHFLI\WKHDUFHGSDWKRQ
WKHSURJUDPPHGVXUIDFHDIWHUDGGUHVVHV;DQG<
:KHWKHUDEVROXWHYDOXHVRULQFUHPHQWDOYDOXHVDUH
XVHGLVVSHFLILHGE\WKH*RU*FRPPDQG
6SHFLI\WKHFHQWUHRIWKHDUFRQWKHSURJUDPPHG
VXUIDFHDIWHUDGGUHVVHVODQG-
6SHFLI\WKHDUFHGSDWKRQWKHDX[LOLDU\VXUIDFHZLWK $UFRQSURJUDPPHGVXUIDFH

DGGUHVVHV8DQG9XVLQJDGHYLDWLRQYHFWRUIURP
WKHHQGSRLQWRIWKHDUFRQWKHSURJUDPPHGVXUIDFH $UFFHQWUHPRGLILFDWLRQYHFWRU NL

WRWKDWRQWKHVXSSOHPHQWDU\SURJUDPPHGVXUIDFH 

6SHFLI\WKHFHQWHURIWKHDUFRQWKHDX[LOLDU\VXUIDFH
ZLWKDGGUHVVHV.DQG/XVLQJDGHYLDWLRQYHFWRU
IURPWKHFHQWHURIWKHDUFRQWKHSURJUDPPHG
VXUIDFHWRWKDWRQWKHDX[LOLDU\VXUIDFH

&+$50,//(6 ( ,62ODQJXDJH6SHFLDOSURJUDPPLQJ 


:LUHGLDPHWHUFRPSHQVDWLRQ
7KHIROORZLQJFRPPDQGVDUHVSHFLILHGLQWKHVDPHZD\DVWKHRWKHUFRPPDQGV

* :LUHGLDPHWHUFRPSHQVDWLRQFDQFHO

* :LUHGLDPHWHUFRPSHQVDWLRQOHIW

* :LUHGLDPHWHUFRPSHQVDWLRQULJKW

$OWKRXJKWKHGLUHFWLRQLQZKLFKWKHZLUHGLDPHWHULVFRPSHQVDWHGDQGWKHRIIVHWDSSO\WRERWKWKH
SURJUDPPHGVXUIDFHDQGWKHDX[LOLDU\VXUIDFHWKH\DUHFDOFXODWHGLQGHSHQGHQWO\

:LUHGLDPHWHUFRPSHQVDWLRQYHFWRURQ
DX[LOLDU\SURJUDPPHGVXUIDFH

$X[LOLDU\SURJUDPPHGVXUIDFH

3URJUDPPHGVXUIDFH

:LUHGLDPHWHUFRPSHQVDWLRQYHFWRURQ
SURJUDPPHGVXUIDFH



6SHFLI\DZLUHGLDPHWHUFRPSHQVDWLRQQXPEHUXVLQJD'FRPPDQGLQWKHVDPHZD\DVZKHQXVLQJWKH
ZLUHGLDPHWHUFRPSHQVDWLRQIXQFWLRQ

 ,62ODQJXDJH6SHFLDOSURJUDPPLQJ &+$50,//(6 (


([DPSOHVRISURJUDPPLQJ

([DPSOH
O1000;
G91;
G92X-30.0Y0I50.0;
G41G01X10.0U5.0;
G02I20.0K.5.0;
G40G01X-10.0U0;
M02; or M30;

6WDUW

$X[LOLDU\SURJUDPPHGVXUIDFH
7RSRIZRUNSLHFH

:RUNSLHFH
WKLFNQHVV
PP

3URJUDPPHGVXUIDFH
%RWWRPRIZRUNSLHFH



([DPSOH
O1000;
G91;
G92X2.5Y5.0I-50.0;
G42G01Y5.OV7.5;
6WDUW
X7.5U10.0V5.0;
Y-20.0U5.0V-10.0;
X-20.0U-10.0V-5.0;
Y20.0U-5.0V10.0;
X12.5U0V7.5;
G40Y-5.0V0; 3URJUDPPHGVXUIDFH
%RWWRPRIZRUNSLHFH
M02; or M30;

:RUNSLHFH
WKLFNQHVV
PP

$X[LOLDU\SURJUDPPHGVXUIDFH
7RSRIZRUNSLHFH


&+$50,//(6 ( ,62ODQJXDJH6SHFLDOSURJUDPPLQJ 


6HOHFWLQJWKHPDFKLQLQJPRGH

&XWWLQJPRGHFDQDOVREHVHWWKURXJK0
3FRPPDQG
8SSHUJXLGH

7KHRWKHUGDWDIRUWDSHUHGPDFKLQLQJLVVSHFLILHGLQ
WKHVDPHZD\DVEHIRUH+RZHYHUWKHUDWLRRIWKH $X[LOLDU\SURJUDPPHGVXUIDFH
GLVWDQFHEHWZHHQWKHXSSHUDQGORZHUJXLGHVWR
WKHZRUNSLHFHWKLFNQHVVPXVWQRWH[FHHG :RUNSLHFHWKLFNQHVV

3URJUDPPHGVXUIDFH

0RXQWLQJSODQHRIWKHSDUW

3DUDPHWHU=,'VHWYDOXH

/RZHUJXLGH

:KHQWKHERWWRPRIWKHZRUNSLHFHLVWKHSURJUDPPHGVXUIDFH

3UHFDXWLRQVZKHQVSHFLI\LQJXSSHUDQGORZHUVKDSHV

 7KHZLUHLQFOLQDWLRQFRPPDQGV**DQG
*DQGDQDQJOHRIZLUHLQFOLQDWLRQFDQQRWEH
VSHFLILHG
 7KHFRUQHUUDGLXVFRPPDQGDQGWKHDXWRPDWLF
FRUQHUURXQGLQJIXQFWLRQ WKH*DQG*
FRPPDQGV FDQQRWEHVSHFLILHG 6KDSHRQSURJUDPPHGVXUIDFH
 6LQFHDGGUHVV/LVFRPPRQO\XVHGWRVSHFLI\WKH
QXPEHURIUHSHWLWLRQVRIVXESURJUDPVDVZHOODV
WKHDUFFHQWHURQWKHDX[LOLDU\SURJUDPPHG
VXUIDFHDVXESURJUDPFDOOPXVWEHVSHFLILHG
VHSDUDWHO\IURPDPRYHFRPPDQG)RUWKLV
UHDVRQWKHUHPDLQLQJQXPEHURIVXESURJUDP
UHSHWLWLRQVFDQQRWEHGLVSOD\HG 'RXEOHG

 6FDOLQJLVLQYDOLGIRUDGGUHVVHV89./DQG,
VSHFLI\LQJDIRUPRQWKHDX[LOLDU\SURJUDPPHG
VXUIDFHDQGWKHZRUNSLHFHWKLFNQHVV,IVFDOLQJLV
VSHFLILHGWKHVKDSHRQWKHSURJUDPPHGVXUIDFH
LVPDJQLILHGRUUHGXFHGEXWWKHWDSHUDQJOHGRHV
QRWFKDQJH
+RZHYHUILJXUHURWDWLRQLVYDOLGIRUDGGUHVVHV
ZRUGV89.DQG/

 ,62ODQJXDJH6SHFLDOSURJUDPPLQJ &+$50,//(6 (


Chapter 5.

ISO language: Custom macro B

General 5.3

Variables 5.4
Variable expressions ............................................................................. 5.4
Quoted variables .................................................................................. 5.4
Undefined variables .............................................................................. 5.5
Displaying and setting variables .............................................................. 5.6

Types of Variables 5.7


Local variables: #1 to #33 .................................................................... 5.7
Common variables: #100 to #314, #500 to #699 ................................... 5.7
System variables ................................................................................... 5.7

Arithmetic commands 5.12


Definition and substitution of variables ..................................................... 5.12
Addition ............................................................................................ 5.12
Multiplication ....................................................................................... 5.12
Functions ............................................................................................. 5.12
Combining arithmetic operations ............................................................. 5.14
Modifying the arithmetic sequence ........................................................... 5.14
Precision ............................................................................................. 5.15
Notes on reduced precision .................................................................... 5.16

Control commands 5.17


Branching (GOTO) ............................................................................... 5.17
Iteration (WHILE) .................................................................................. 5.19

Creating and registering a custom macro body 5.23


Creating a custom macro body ............................................................... 5.23
Registering a custom macro body ............................................................ 5.23
Macro and CNC statements ................................................................... 5.24

CHARMILLES 205 976 460/E/18.03.2003 Table of contents 5.1


Commands that call macros 5.27
Calling a macro locally (the G65 command) ............................................. 5.27
Calling a macro globally (the G66 command) ........................................... 5.30
Multiple calls ........................................................................................ 5.30
Multiple global calls .............................................................................. 5.31
Calling macros using G commands .......................................................... 5.31
Calling subprograms using M commands .................................................. 5.33
Calling subprograms using T commands .................................................... 5.34
The position of the decimal point in an argument ........................................ 5.34
The differences between the M98 and G65 commands ............................... 5.35
Custom macro levels and local variables ................................................... 5.35

Relationships with other functions 5.36

Special codes and commands used in custom macros 5.38

5.2 Table of contents CHARMILLES 205 976 460/E/18.03.2003


Important Note:
Be sure to attach your custom macro program or program list to the CNC. If it becomes necessary
to replace the storage due to a failure, service personnel and the operator will need to know the
contents of the custom macro in order to repair the problem quickly.

General

A macro instruction consists of a group of instructions stored in memory in the same way as a subprogram.
To execute the group of instructions, it is only necessary to specify the macro instruction. A group of
customized instructions is called a custom macro body, or simply a macro, and the instruction which
represents the custom macro body is called the custom macro instruction or custom call command. The
use of custom macro instructions enables the user to upgrade the performance of the CNC.

Command

Regular program Custom macro


body

A group of
Custom macro instructions
instructions for a certain
function

Calls custom macro


body 9011 and defines
variables #1 and 10
#4 and 5

Variables #1 and #4
can be used instead of
the unknown traverse
distance

CHARMILLES 205 976 460/E/18.03.2003 ISO language: Custom macro B 5.3


Variables

Macro instructions use variables instead of numeric values. Each variable is identified by a variable
number, and can be assigned any value within the valid range. Variables enable macro instructions to
be much more flexible than subroutines.

Variable expressions

A variable consists of the variable prefix, #, followed by a number, as shown below. #i (i=1, 2, 3,...)

Example
#5
#109
#1005

The following format can also be used, where the variable number is replaced by a formula: #[<Formula>]

Example
#[#100
#[#1001 - 1]
#[#612]

The variable #i explained below always also refers to the variable #[<formula>].

Quoted variables

A numeric value specified after an address can be replaced with a variable, in the format <address>#i or
<address>-i, as follows.

Examples
F#33: if #33 = 1.5, then F#33 = F1.5.
Z-#18: if #18 = 20.0, then Z-#18 = Z-20.0.
G#130: if #130 = 3.0, G#130 = G3.0.

5.4 ISO language: Custom macro B CHARMILLES 205 976 460/E/18.03.2003


Notes:
- Variables cannot be used with the following addresses: /(slash),:(colon), O, and N. For
example,:#27 and N#1 are invalid.
The character in the expression, where the optional block skip /n = 1 to 9, cannot be specified as
a variable.
- A variable number cannot be replaced by a variable. If the variable number 5 in the variable #5 is
replaced with #30, #5 becomes #[#30], not ##30.
- The value of a variable cannot exceed the maximum set for each address. For example, if #140 =
12000, M#140 becomes M12000, which is invalid because M commands do not exceed 99.
- The number ot digits in the value of a variable is irrelevant. For example, if #30 = 02, F#30
becomes F2.
- The system does not distinguish between -0 and +0. Thus, if #4 = -0, X#4 becomes X0.
- When a variable is specified after an address, the value ot the variable is rounded to the relevant
number of significant digits.
- By using <formula> (explained later), a numeric value after an address can be replaced with a
mathematical computation in the format <address> [<formula] or <address> -[<formula,]. Note that
a constant with no decimal point used between the brackets is assumed to have a decimal point at
the end.
For example:
X[#24 + #18*COS[#1]]
Z-[#18 + #26]

Undefined variables

The value of a variable which has not yet been defined is called <vacant>. The variable #0 is used for a
variable that is always <vacant>.
An undefined variable is used as follows:

Quotation
When an undefined variable is quoted, the address is ignored:

When #1 = <vacant> When #1 = 0

G90X100Z#1 G90X100Z#1
↓ ↓
G90X100 G90X100Z0

CHARMILLES 205 976 460/E/18.03.2003 ISO language: Custom macro B 5.5


Operation
<vacant> is assigned to other variables as <vacant>, but is used in computations as 0.

When #1 = <vacant> When #1 = 0

0 #2=#1 #2=#1
↓ ↓
#2=<vacant> #2=0

#2=#1*5 #2=#1*5
↓ ↓
#2=0 #2=0

#2=#1+#1 #2=#1+#1
↓ ↓
#2=0 #2=0

Conditional expressions
<vacant> differs from 0 only for EQ and NE.

When #1 = <vacant> When #1 = 0

#1 EQ #0 #1 EQ #0
↓ ↓
Established Not established

#1 NE 0 #1 NE 0
↓ ↓
Established Not established

#1 GE #0 #1 GE #0
↓ ↓
Established Established

#1 GT 0 #1 GT 0
↓ ↓
Not established Not established

Displaying and setting variables

Variables can be displayed on the CRT screen and can be set in the MDI panel.

5.6 ISO language: Custom macro B CHARMILLES 205 976 460/E/18.03.2003


Types of Variables

Variables are classified into local variables, common variables, and system variables. The three types of
variables are identified by the variable numbers. The usage of each type of variable differs.

Local variables: #1 to #33

A local variable is a variable used locally in the macro. The value of the variable differs depending on
when the macro is called. A local variable is not destroyed when used in a macro called by another
macro, as in a multiple call.
A local variable is used to transfer an argument. See further section, Commands that Call Macros, for
the relationship between local variables and addresses of arguments. A local local variable without a
transferred argument is vacant in its initial status and can be used freely.

Common variables: #100 to #314, #500 to #699

Unlike local variables, which are used in a particular macro, common variables are used throughout the
main program, throughout each subprogram called from the main program, and throughout each macro.
This means that a particular macro, #i, used in one macro is the same as #i used in another macro.
Therefore, the value assigned to #i in one macro can be used in another macro.
The use of common variables is not determined in the system. They can be used freely. When the power is
turned off, common variables #100 to #314 are cleared to <space> and common variables #500 to
#699 are retained.

System variables

#3000: Alarm
When an error is detected in a macro, an alarm is issued. When system variable #3000 is assigned an
alarm number, the alarm lamp is turned on and the system enters the alarm state when the current block is
executed.
To set an alarm number with a macro instruction, assign a value of less than 2000 to system variable
#3000, followed by a message. The message can consist of up to 26 characters, and must be specified
between the control-out and control-in characters.
#3000 = n (<alarm message>)

CHARMILLES 205 976 460/E/18.03.2003 ISO language: Custom macro B 5.7


#3001 and #3002: Clock 1 and clock 2
System variables #3001 and #3002 contain the clock time. The time can be preset by assigning values to
these system variables. The accuracy of each clock is Ø16 msec. Clock 1 overflows at 65536 msec and
clock 2 continues indefinitely until it is reset. The time is not monitored correctly if the maximum value, 9544
hours, is exceeded.

Kind System variable Unit time At the time of power-on Counting

Clock 1 #3001 1 msec. Reset to 0 Always

Clock 2 #3002 1 hour Same as at the time of While STL


power-off signal is on

Example
Macro call command
G65P910 T50000.; (Address must be used with a decimal point.)

This macro may be specified as follows:


09101;
#3001 = 0; Initial setting
WHILE[#3001 LE #20] D01; Wait for 50 seconds
END1;
M99;

#3003: Single block stop and end of auxiliary functions


The values given in the table below can be assigned to system variable #3003 to suppress stopping after
each block is executed and to suppress waiting for the FIN signal indicating that the auxiliary function
specified by the M command has terminated. When the waiting for the FIN signal is suppressed, the DEN
signal, indicating the end of distribution, is not issued. Be careful not to specify a subsequent auxiliary
function without waiting for the end signal.

#3003 Single block stop Auxiliary function end signal

0 Not suppressed Awaited

1 Suppressed Awaited

2 Not suppressed Not Awaited

3 Suppressed Not Awaited

Note:
It is invalid to suppress stopping after each block if MSC9 or MSC8 of system parameter No. 19 is
ON. In this case, stopping after each block is not suppressed even if variable #3003 = 1 or 3.

5.8 ISO language: Custom macro B CHARMILLES 205 976 460/E/18.03.2003


#3004: Feed hold and exact stop check
The values given in the table below can be assigned to system variable #3004 to suppress feed hold and
to suppress the exact stop check.
Pressing the feed hold button then releasing it during execution of a block for which feed hold has been
suppressed causes feed hold to be executed at the start of the first block outside the suppression range.
Holding down the feed hold button during execution of a block for which feed hold has been suppressed
lights the feed hold lamp and causes feed hold to be executed at the end of the first block outside the
suppression range.

#3004 Feed hold Exact stop check

0 O O

1 X O

2 O O

3 X O

4 O X

5 X X

6 O X

7 X X

O: Effective, X: Suppressed

Note:
System variable #3004 is cleared when the system is reset.

#5200: Scale factor


#5201: Rotation angle
Examples: if #5200 = 3 is executed, the scale factor is set at 3.
if #5201 = 5 is executed, the rotation angle is set at 5 degrees.

CHARMILLES 205 976 460/E/18.03.2003 ISO language: Custom macro B 5.9


#3005: Setting data
Various functions can be enabled and disabled by assigning a value to system variable #3005. The
assigned value is converted to binary, and the resulting bits are used to set the following functions.

TV check
Punch code
Input unit
X mirror image
Y mirror image
(not used)
Axis exchange
Multiply x 10

Example: if #3005 = 26 is executed,


TV check = 0
Punch code = 1
Input unit = 0
X mirror image = 1
Y mirror image = 1
Axis exchange = 0
Multiply x 10 = 0

#4001 to #4120: Global information


The global commands specified up to the previous block can be determined by reading the values of
system variables #4001 to #4120. The unit used when a global command is specified is effective.

Modal (Global) information of preceding


System variable
black

#4001 G code (group 01)

• •
• •
• •

#4021 G code (group 21)

#4107 D code

#4109 F code

#4111 H code

#4113 M code

#4114 Sequence number

#4115 Program number

#4119 S code

#4120 T code

5.10 ISO language: Custom macro B CHARMILLES 205 976 460/E/18.03.2003


#5001 to #5104: Positional information
System variables #5001 to #5104 store positional information. The data is stored according to the
input units either mm or inches. System variables #5001 to #5104 cannot be used on the left side of an
arithmetic command.

System variable Positional information Reading in during movement

#5001 X axis block end coordinate (ABSIO) Possible


#5002 Y axis block end coordinate (ABSIO)
#5003 U axis block end coordinate (ABSIO)
#5004 V axis block end coordinate (ABSIO)
#5005 Z axis block end coordinate (ABSIO)

#5021 X axis machine coordinate (ABSMT) Impossible


#5022 Y axis machine coordinate (ABSMT)
#5023 U axis machine coordinate (ABSMT)
#5024 V axis machine coordinate (ABSMT)
#5025 Z axis machine coordinate (PMC)

#5041 X axis absolute coordinate (ABSOT) Impossible


#5042 Y axis absolute coordinate (ABSOT)
#5043 U axis absolute coordinate (ABSOT)
#5044 V axis absolute coordinate (ABSOT)
#5045 Z axis absolute coordinate (PMC)

#5101 X axis servo position deviation Impossible


#5102 Y axis servo position deviation
#5103 U axis servo position deviation
#5104 V axis servo position deviation
#5105 Z axis servo position deviation

Example:
To move the machine to the point (xp zp) relative to the reference point through a specified intermediate
point execute a series of operations, and return to the original point.
Macro call command:
G65 P9300 X (intermediate point) Z (intermediate point);
The custom macro body is specitied as follows:
09300;
#1 = #5001;
#2 = #5002;
#3 = #5003;
G00 X#24Y#26;
G04; (Movement is interrupted to read #5021 and #5022.)
G91 X [xp-#5021] Z [xp-#5022];

• (Processing)

X#24 Z#25;
X#1 X#2;
M99;

CHARMILLES 205 976 460/E/18.03.2003 ISO language: Custom macro B 5.11


Arithmetic commands

Variables can be used in a variety of arithmetic operations. An arithmetic command is specified in the
same way as in general arithmetic expressions:
#i = <formula>
The right side of an arithmetic command, <formula> is a combination of constants, variables, functions,
and operators. A constant can be used instead of #j and #k. A constant without a decimal point used in
<formula> is considered to have a decimal point at the end.

Definition and substitution of variables

#i = #j: Definition, substitution

Addition

#i = #j + #k Sum
#i = #j - #k Subtraction
#i = #j OR #k Disjunction (at all 32 bits)
#i = #j XOR #k Exclusive disjunction (at all 32 bits)

Multiplication

#i = #j * #k Product
#i = #j/#k Quotient
#i = #j AND #k Conjunction (at all 32 bits)

Functions

#i = SIN [#j] Sine (degrees)


#i = COS [#j] Cosine (degrees)
#i = TAN [#j] Tangent (degrees)
#i = ATAN [#j] / [#k] Arctangent (degrees)
A#i = SQRT [#j] Square root
#i = ABS l#j] Absolute value
#i = BlN l#j] Conversion from BCD to BIN
#i = BCD [#j] Conversion from BIN to BCD
#i = ROUND [#j] Rounding off
#i = FlX [#j] Discard fractions
#i = FUP [#j] Add 1 for fractions less than 1

5.12 ISO language: Custom macro B CHARMILLES 205 976 460/E/18.03.2003


Using the rounding function
The rounding function rounds values of 5 or greater up to the next value, and truncates values of 4 or less,
just like with normal decimal values. The rounding function can be specified in arithmetic commands and in
IF and WHILE conditional expressions. If the rounding function is used in arithmetic commands and in IF
and WHILE conditional expressions, it rounds values of less than decimal point.

Example:
#1 = ROUND[1.2345];
#1 becomes 1.0.

Example:
IF [#1 LE ROUND[#2]] GOTO 10;
If #2 = 3.567, ROUND[#2] becomes 4.0.

If the rounding function is used in a command related to an address, the value is rounded off to the least
input increment of the address.

Example:
G01X[ROUND[#I];
If #1 is 1.4567 and the least input increment of X is 0.001, this block becomes G01 X1.457. In this
example, the command does the same thing as the command G01X#1;.

The rounding function in an address command is used mainly in the following case.

Example:
To move incrementally by #1 and #2 only and then to return to the starting point
N1 #1 = 1.2345;
N2 #2 = 2.3456;
N3 G01 X #1 F100; (X moves 1.235.)
N4 X #2; (X moves 2.346.)
N5 X -[#1+#2]; (X moves -3.58, since #1 + #2 = 3.5801).
Since 1.235 + 2.346 = 3.581, the program does not return to the starting point when N5 is executed.
However, if the following is specified, N5 X- [ROUND[#1] + ROUND[#2]]; the command becomes equal
to N5 X - [1.235 + 2.346]; and the program returns to the starting point.

CHARMILLES 205 976 460/E/18.03.2003 ISO language: Custom macro B 5.13


Combining arithmetic operations

The above arithmetic operations and functions can be combined. The order of execution is function,
multiplication, then addition.

Example

Sequence of arithmetic operations

Modifying the arithmetic sequence

A portion of an arithmetic sequence can be assigned priority by enclosing the portion in square brackets,
[ ]. Up to five nests can be specified.

Example

(Three fold nesting)

Sequence of arithmetic operations

5.14 ISO language: Custom macro B CHARMILLES 205 976 460/E/18.03.2003


Precision

When preparing programs, always consider the precision of custom macro instructions.

The data format


Numeric data handled by a custom macro instruction is in floating decimal point as follows: M*2E, where
M consists of a 1 -bit sign plus 31 -bit binary data and E consists of a 1 -bit sign plus 7-bit binary data.

Operational precision
An operation executed once generates the following error. These errors are accumulated with each
repeated operation.

Operation format Average error Maximum error Type of error

a = b.c 1.55 x l0-10 4.66 x 10-10 Relative error

a = b/c 4.66 x l0-10 1.86 x 10-10

a =√ b 1.24 x 10-9 3.73 x 10-9

a=b+c
2.33 x 10-10 5.32 x 10-10 min.
a=b+c

a = SIN b Absolute error


5.0 x 10-9 1.0 x 10-8
a = COS b (ε) degrees

a = ATAN b/c 1.8 x 10-6 3.6 x 10-6

Note
The function TAN equals SIN/COS.

CHARMILLES 205 976 460/E/18.03.2003 ISO language: Custom macro B 5.15


Notes on reduced precision

Addition and subtraction


When absolute values are subtracted, the relative error exceeds 10-8. For example, suppose that the true
values of #1 and #2 are:
#1 = 9876543210123.456
#2 = 9876543277777.777

Performing the operation #2 - #1 does not give the result of 67654.321. This is because custom macro
instructions have a precision of only eight decimal digits. Therefore, in the macro instruction, the values of
#1 and #2 are approximately:
#1 = 9876543200000.000
#2 = 9876543300000.000.

(The internal values differ somewhat from the above values because they are binary)
Consequently, #2 - #1 = 100000.000 which is significantly different from the true value.

Logical operations
The operations EQ, NE, GT, LT, GE and LE are basically the same as addition and subtraction. Therefore,
it is important to consider errors. For example, using the above values of #1 and #2, IF #1 EQ #2 is not
always evaluated correctly. However, in the case of IF ABS #1 - #2 LT 50000, if the difference between
#1 and #2 falls within the range error, both values are considered equal.

Trigonometric functions
Absolute errors occur in trigonometric functions, but since they exceed 10-8, be careful of integration or
division after using a trigonometric function.

5.16 ISO language: Custom macro B CHARMILLES 205 976 460/E/18.03.2003


Control commands

Control commands change the flow of processing in a program. There are two control commands: one for
branching (GOTO) and one for iteration (WHILE). These two commands are explained below.

Branching (GOTO)

Format:
IF <conditional expression> GOTOn
If <conditional expression> is true, control branches to the block with block number n in the same program.
If <conditional expression> is not true, control goes to the subsequent block.
Block number n can be replaced by a variable or <formula>.
The first portion of the command, IF <conditional expression>, can be omitted, in which case, control
branches to the specified block unconditionally.
The following expressions can be used for <conditional expression>:
#j EQ #k =
#j NE #k
#j GT #k >
#j LT #k <
#j GE #k
#j LE #k
<formula> can be used instead of #j and #k.

Note:
- The number, n, of block Nn, which is
executed after the command GOTO n, must
be at the start of the block.
- After executing the GOTO n command, the
time taken to execute block n depends on
how far away it is, as follows.
- In the above diagram, the execution time is
increases in the order of (1), (2), (3), and
(4). Therefore, if GOTO n is frequently
executed, it is better to place block Nn as
soon after it as possible.
- If issuing an alarm by checking the value of
a variable, it is better to make the execution
time for the processing to be performed
when no alarm is issued for a long time,
and the processing to be performed when
an alarm is issued at short intervals.

CHARMILLES 205 976 460/E/18.03.2003 ISO language: Custom macro B 5.17


Example
To issue alarm 150 when #1≥ 10.
A program such as that above can also be
registered in memory if the parameter has
been set so that M99 is not regarded as the
end of the program.
An alarm may occur at the following times
If alarm If no alarm
when the GOTO command is executed:
- If it is impossible to execute macro
operation at the specified address correctly.
If the GOTO command is executed when
#1 = -1, alarm No. 119 is issued in the
tollowing block: X(SORT(#1 ));
In this case, change the block as follows:
#2 SQRT(#1 );
X#2;

An alarm is not issued if the operation contains a GOTO command.

- If it is impossible to execute the WHILE conditional expression.


If the GOTO command is executed when #1 = 0, alarm No. 112 is issued in the following block
WHILE (10/#1 GE2) DO 1;
Dans ce cas, changer le bloc comme suit:
WHILE (#2 GE 2) DO 1;



#2 = 10/#1;
END 1;

An alarm is not issued if the operation contains a GOTO command.

5.18 ISO language: Custom macro B CHARMILLES 205 976 460/E/18.03.2003


Iteration (WHILE)

Format:
WHILE [conditional expression] DO m (m = 1, 2, 3)


END m
Blocks DO m to END m are executed while <conditional expression> is true. <conditional expression> is
first evaluated, and if it is true, control passes to the subsequent block. If <conditional expression> is false,
control passes to the block immediately after END m.
Omitting WHILE <conditional expression> does not cause a syntax error, but the result is an infinite loop,
with the blocks from DO m to END m being executed indefinitely.
The WHILE [<conditional expression>] DO m statement and the END m statement must always be paired.

Example
#120 = 1; Repeated ten times
N1 WHILE #120 LE 10 DO 1;
Repeated while the variable
#30 = 1

Notes on iteration

1. DO m must be specified before END m.




END 1; invalid


DO 1;

2. DO m and END m must be paired in one program




DO 1;


DO 1; invalid


END 1;


DO 1;


END 1; Invalid


END 1;

CHARMILLES 205 976 460/E/18.03.2003 ISO language: Custom macro B 5.19


3. The same identification number can be used many times.


DO 1;


END 1;


DO 1; Valid


DO 1;

4. Up to three levels of DO statements can be nested.




DO l;


DO 2;


DO 3; Valid


END 3;


END 2;


END 1;

5. DO loops must not overlap.




DO 1;


DO 2; Invalid


END 1;


END 2;

5.20 ISO language: Custom macro B CHARMILLES 205 976 460/E/18.03.2003


6. Control can be passed from inside a DO loop to outside a DO loop.


DO 1;


GOTO 9000;


END 1; Valid


N9000 ...;

7. Control cannot pass from outside a DO loop to inside a DO loop.




GOTO gooo;


DO 1; Invalid


N9000 ...;


END 1;


GOTO 9000;

CHARMILLES 205 976 460/E/18.03.2003 ISO language: Custom macro B 5.21


8. Custom macro bodies and subprograms can be called from inside a DO loop. DO statements can be
nested again up to three levels in the custom macro body or subprogram.


DO 1;


G65 ...; Valid


G66 ...; Valid


G67 ...; Valid


END 1;


DO 1;


M98 ...; Valid


END 1;

9. In cases where either a branch or iteration can be used, bear in mind that iteration is usually taster.
Example:
To create a loop to wait for signal #1000 to become 1, the following program fragment provides the
fastest processing.


N10 1 F (#1000 EQ 0) GOTO10;


WHILE (#1000 EQ 0) DO1;
END 1;

5.22 ISO language: Custom macro B CHARMILLES 205 976 460/E/18.03.2003


Creating and registering a custom macro body

Creating a custom macro body

The custom macro body format is the same as in the subprogram. The format is as follows.
O <Program number>;
Command
M99;

Programs whose numbers are from O8000 to O9999 cannot be registered, erased, or edited unless the
relevant parameter is set.
The dummy argument, which receives data from the macro call command, is fixed. The address specifying
the parameter with the macro call command and the variable number in the custom macro body (the
receiver) are in one-to-one correspondence.

Example
O9081;
G00X#24;
Y#18;
G70Y - (ROUND (#18) + ROUND (#26));
M99;

Registering a custom macro body

The custom macro body is a kind of subprogram, and is registered and edited in the same way. The
storage capacity is specified by the tape length as with the subprogram.

CHARMILLES 205 976 460/E/18.03.2003 ISO language: Custom macro B 5.23


Macro and CNC statements

The following blocks are called macro statements:


• Operation commands (blocks containing =)
• Control commands (blocks containing GOTO, DO, or END)
• Commands that call macros (blocks containing G65, G66, G67 or G commands which call a macro).

Statements other than macro statements are called CNC statements. The difference between the two
statements are as follows:
• Blocks in which processing does not stop after each block is executed in the single block stop mode.
• Blocks in which the macro statement is not regarded as a block which does not specify movement when
the wire diameter is compensated.
• Blocks which are executed at different times.
- A macro statement which is specified in a block next to the block in which an M command that
does not buffer the next block is specified is executed after the block has been executed.
- When a macro statement is specified in a block next to the block in which an M code that buffers
the next block is specified.

Example

Execution N2
of macro statements

Execution N1
of CNC statements

Time

• When the wire diameter is not being compensated the next macro statement is executed immediately the
current block starts to be executed. Macro statements up to the next CNC statement are executed.

Example
N1G01X1000;
Current block Execution N2 N3
N2#1100 = 1; of macro statements
Macro statement executed
Execution N1
N3#1 = 10; of CNC statements
Macro statement executed
N4X2000; Time
Next CNC statement

5.24 ISO language: Custom macro B CHARMILLES 205 976 460/E/18.03.2003


• Lorsque le fil est compensé
- When the first CNC statement next to the block which is being executed is specified in the block
specifying movement (the block which has a move command for the wire diameter compensation
surface)

Example
N1X1000;
Current block Execution N4 N5
N2#10 = 100; of macro statements
Macro statement that has already been executed
Execution N1
N3Y1000; of CNC statements
First CNC statement
N4#1100 = 1; Time
Macro statement executed
N5#1 = 10;
Macro statement executed
N6X-1000;
Second CNC statement

- When the second CNC statement is specified in the block specifying movement, the tirst macro
statement next to the first CNC statement next to the block which is being executed is executed.
- When the second CNC statement is not specified in the block specifying movement, macro
statements up to the third CNC statement next to the block which is being executed are executed.

Example
N1X1000;
Current block Execution N4 N5 N7 N8
N2#10 = 100; of macro statements
Macro statement that has already been executed
Execution N1
N3Y1000; of CNC statements
First CNC statement
N4#1100 = 1; Time
Macro statement executed
N5#1 = 10;
Macro statement executed
N6Z1000;
Second CNC statement (block containing no move commands)
N7#1101 = 1;
Macro statement executed
N8#2 = 20;
Macro statement executed
N9X-1000;
Third CNC statement

CHARMILLES 205 976 460/E/18.03.2003 ISO language: Custom macro B 5.25


• When the first CNC statement is not specified in the block specifying movement, macro statements are
not executed.

Example
N1Y1000;
N2#1100 = 1;
N3#1 = 10; Execution
Macro statement already executed of CNC statements
N4Z1000;
Time
First CNC statement (block containing no move
commands)
N5#1101 = 1;
Macro statement executed
N6#2 = 20;
Macro statement executed
N7X-1000;
Second CNC statement

5.26 ISO language: Custom macro B CHARMILLES 205 976 460/E/18.03.2003


Commands that call macros

A macro can be called either from a given block or globally from any block.

Calling a macro locally (the G65 command)

The G65 command has the following format: G65 P (program number) L (number of iterations) <argument
assignment>;
This command calls the custom macro body identified by P <program number>.
To transfer an argument to a custom macro body, specify the argument with <argument assignment>. The
following two types of argument assignments can be specified. Here the argument is the actual numeric
value assigned to a variable.

Note
The G65 command must be specified before arguments in the G65 block. A negative sign and
decimal points can be used in the argument regardless of the address.

Argument assignment I
A__B__C__...Z__

Specification is made according to the command address format. Addresses that are not required may be
omitted. Arguments can be assigned for all addresses except G, L, N, 0, and P. The assignments need not
be in alphabetic order, unless I, J, and K are used.

Example
B__A__D__...I__K__ Valid
B__A__D__...J__I__ Invalid

The correspondence between the addresses assigned in argument assignment I and the number of the
variable in the custom macro body is shown in the following table.

CHARMILLES 205 976 460/E/18.03.2003 ISO language: Custom macro B 5.27


Address of the argument Variable in custom macro
assignment I body

A #1

B #2

C #3

D #7

E #8

F #9

H #11

I #4

J #5

K #6

M #13

Q #17

R #18

S #19

T #20

U #21

V #22

W #23

X #24

Y #25

Z #26

Argument assignment II
A__B__C__I__J__K__I__J__K__

Arguments can be assigned to addresses A, B, and C, and up to ten sets of arguments can be assigned to
addresses I, J, and K.
When several arguments are assigned to the same address, they must assigned in a predetermined
sequence.

5.28 ISO language: Custom macro B CHARMILLES 205 976 460/E/18.03.2003


The correspondence between the addresses assigned in argument assignment II and the number of the
variable in the custom macro body is shown in the following table. (The block numbers for I, J, and K are
denoted by subscripts.)

Address of the argument Variable in user macro


assignment II body

A #1

B #2

C #3

I1 #4

J1 #5

K1 #6

I2 #7

J2 #8

K2 #9

I3 #10

J3 #11

K3 #12

I4 #13

J4 #14

K4 #15

I5 #16

J5 #17

K5 #18

I6 #19

J6 #20

K6 #21

I7 #22

J7 #23

K7 #24

I8 #25

J8 #26

K8 #27

I9 #28

J9 #29

K9 #30

I10 #31
J10 #32

K10 #33

Suffixes 1 to 10 of I, J and K indicate the sequence of the assigned set.

CHARMILLES 205 976 460/E/18.03.2003 ISO language: Custom macro B 5.29


Combining argument assignments I and II
Both assignment I and assignment II can be specified by one G65 command. If different arguments are
assigned to the same variable, the argument assigned later is effective.

Example
In this example, arguments 14.0 and D5.0 are
assigned to variable #7. In this case, D5.0 is <Variable>
effective.

Calling a macro globally (the G66 command)

The G66 command has the tollowing format:


G66 P (program number) L (number of iterations) <argument assignment>;
This command calls the custom macro body identified by P <program number>, and places the system in
the macro call mode.
To transfer an argument to a custom macro body, specify the argument with <argument assignment>.
To cancel the macro call mode, execute the G67 command.

Note:
The G66 command must be specified before arguments in the G66 block. A negative sign and
decimal points can be used in the arguments.

Multiple calls

The same as with a subprogram called from another subprogram, a macro can be called from another
macro. The number of calls should be less than or equal to four, including simple and global calls.

5.30 ISO language: Custom macro B CHARMILLES 205 976 460/E/18.03.2003


Multiple global calls

In global calling, the specified macro is called each time a move command is executed. When several
global macros are specified, the subsequent macro is called each time a move command in the first macro
is executed. Macros are successively called from the macros assigned subsequently.

Example:
G66 P9100;
Z1000; (1-1)
G66 P9200;
Z15000; (1-2)
G67; P9200 canceled
G67; P9100 canceled
Z-25000; (1-3)
09100;
X 5000; (2-1)
M99;
09200;
Z6000; (3-1)
Z7000; (3-2)
M99;

Sequence of execution (blocks without move


commands are omitted from this chart).

Note:
A global macro is not called after (1-3),
unless the system is in the macro call mode.

Calling macros using G commands

A G command can be set by a parameter to call a macro. Instead of specifying


N__G65P ∆∆∆∆ <argument assignment>;
the following simple command can be used
N__Gxx <argument assignment>;

The correspondence between xx in the calling G command and program number ∆∆∆∆ of the called
macro must be set as a parameter containing xx and ∆∆∆∆.

CHARMILLES 205 976 460/E/18.03.2003 ISO language: Custom macro B 5.31


Up to ten commands from G01 to G99 can be used to call macros. Unlike the G65 command, however,
these commands cannot be used in the MDI mode. G commands called by calling macros cannot be spe-
cified in other macros. Also these G codes cannot be specified in a subprogram called by an M command
or a T command.
It is necessary to set the following parameters:

Data No.
0136 G code used to call macro: 9010

0137 G code used to call macro: 9011


0136 G code used to call macro: 9014

0137 G code used to call macro: 9011


0145 G code used to call macro: 9019

Example:
To perform clockwise circular machining with the
command G12 I (radius) D (Offset number) it is
necessary to set the following parameters: Start
Macro body: 9010. point
Calling G command: 12.

Register the following macro body:


09010;
#1 = ABS(#4) - #(2000 + #7);
IF (#1 LE0) GOTO 1;
#2 = #1/2;
#3003 = 3;
#3 = #4001;
#4 = #4003;
G01X (#1 - ROUND(#2)) Y#2; (1)
G17 G02X#2 Y-#2 3-#2; (2)
1-#1; (3)
X-#2 Y-#2 3-#2; (4)
G01X-(#1 - ROUND (#2)) Y#2; (5)
G#3 G#4;
#3003 = 0;
N1 M99;
To call the macro
G121 (radi) D (No. of offset) if parameter 136 is set to 12.

This G command makes a machining starting from center approching circle tangentialy and returning by
arc (4) and line (5) to start point. Machining precision will be improved at the point A (3).

5.32 ISO language: Custom macro B CHARMILLES 205 976 460/E/18.03.2003


Calling subprograms using M commands

An M command can be set by a parameter to call a subprogram.

Instead of specifying
N__G__X__Y__... M98P∆∆∆∆;
the following simple command can be used.
N__G__X__Y__... Mxx;

When the M98 command is specified, the command is displayed on the program check screen, but the
MF and M commands are not transmitted to the CNC.
The correspondence between xx in the calling M command and program number ∆∆∆∆ of the called
macro must be set as a parameter containing xx and ∆∆∆∆.

Up to nine M commands from M03 to M97 except M30 can be used to call subprograms. These
commands can be used in the MDl mode, but no arguments can be passed.
When these M commands are specified in a macro called by a G command or in a subprogram called by
an M or T command, the rnacro or subprogram is not called and the M commands are treated as normal
M commands.
It is necessary to set the following parameters:

Parameters
0146 M code used to call subprogram: 9001

0147 M code used to call subprogram: 9002


0152 M code used to call subprogram: 9007

0153 M code used to call subprogram: 9008

0154 M code used to call subprogram: 9009

CHARMILLES 205 976 460/E/18.03.2003 ISO language: Custom macro B 5.33


Calling subprograms using T commands

A T command can be set by a parameter to call a subprogram.

Instead of specifying
N__G__X__Y__... M98 P9000
use the block
#149 = t
N__G__X__Y__... Tt;

The value t is stored as an argument in common variable #149. A T command that calls a subprogram
cannot be specified in the same block as an M code which calls a subprogram.
When the T command is specified in a macro called by a G command or in a subprogram called by an
M or T command, the macro or subprogram are not called and the T command is treated as a normal T
command.
It is necessary to set the following parameter.

Data No.

0 0 1 9 TMCR

The position of the decimal point in an argument

Bit 2, MANP, of system parameter No. 019 is used to specify the least input increment for arguments. If
an argument is specified without the decimal point, use the following table to obtain the position of the
decimal point. The numbers in the table show the number of figures to the decimal point from the least
significant figure.

Adress MANP OFF MANP ON

MM input INCH input MM input INCH input

A, B, C, D 0 0

E, F 2 4

H, I, J 3 5

K 3 3

M 0 0

Q 5 5 0

R 3 5

S 0 0

T 5 5

U, V, W 3 5

X, Y, Z 3 5

5.34 ISO language: Custom macro B CHARMILLES 205 976 460/E/18.03.2003


The differences between the M98 and G65 commands

The M98 command is used to call subprograms and the G65 command is used to call custom macros.
However, there are important differences between them.

• The G65 command can contain arguments but the M98 command cannot.
• Whereas the G65 command is used only to branch to a subprogram, the M98 command is used to
branch to a subprogram after executing a command other than M, P or L in the block.
• When a block containing the M98 command contains an address other than 0, N, P or L, execution
stops when the block has been executed. With the G65 command, execution does not stop.
• The G65 command changes the level of local variable. The M98 command does not. That is,
#i specified before the G65 command is differentiated from #i in the calling custom macro body. With
the M98 command, #i is the same in both cases.
• The nesting level for the G65 command is four including the nesting of the G66 command. The nesting
level for the M98 command is four.
• Suppose an MDI operation is performed during automatic operation. In this case, up to four M98
command calls can be made in the tape and memory modes, and another four can be made in the MDI
mode. With the G65 command, however, the total maximum is four calls for all modes.

Custom macro levels and local variables

If a G65 or G66 command, or another G command calls two macros, the nesting level of the macro
increases by one. Consequently, the level of the local variable also increases by one. The relationship
between the macro call and local variable is as follows:

Main Macro Macro Macro Macro


program (Level 1) (Level 2) (Level 3) (Level 4)

Local variable
(Level 0) (Level 1) (Level 2) (Level 3) (Level 4)

• The main program is assigned local variables #1 to #33 of level 0.


• When a macro of level 1 is called by the G65 or G66 command or another G command, the local
variable of level 0 of the main program is stored, and local variables #1 to #33 of level 1 are assigned
to the level-1 macro to enable arguments to be transferred.
• Local variables of levels 1, 2, and 3 are stored each time macros of levels 2, 3, and 4 are called, and
new local variables of levels 2, 3, and 4 are assigned.
• When the operation returns from each macro with M99, the local variables of levels 0, 1, 2, and 3
stored in (2) and (3) above are set to the same state as when they were stored.

CHARMILLES 205 976 460/E/18.03.2003 ISO language: Custom macro B 5.35


Relationships with other functions

MDI operation
lt is impossible to specity a macro call command, operational command, or control command in the MDI
mode. It is possible to execute MDI commands other than macro commands even if execution stops after
each block during macro execution. Note that a macro is called if the G66 command is specified in the
MDI mode.

Block number search


lt is impossible to search for a block number in the macro body.

Single block stop


Stopping execution after each block, including blocks in the macro, is possible except for blocks
containing commands that call macros, operation commands, and control commands. In the single
block mode, execution does not stop after executing blocks containing commands that call macros (G65,
G66, and G67), operation commands, and control commands. However, it is possible to stop execution
after blocks except those containing commands that call macros by setting the following parameter. This
setting is used to test the macro body.

0 0 1 9 MCS9 MCS8

If MCS8 is 1, execution stops after each block in programs 08000 to 08999. If MCS9 is 1, execution
stops after each block in programs 09000 to 09899.

In the offset C compensation mode, when stopping execution after each block is specified by a macro
statement, the block in which the macro statement has been specified is not assumed to be a block
specitying movement. This may cause incorrect compensation. The block is handled in the same way
as a block in which movement is specified but the distance to be moved is 0.

The setting of this parameter has priority over #3003 which suppresses stopping after each block. Thus if
MCS8 and MCS9 are both set to 1, execution stops after each block in programs in the corresponding
ranges irrespective of the setting of #3003. This is because MCS8 and MCS9 are parameters for
checking macros. Therefore, be sure to set MCS8 and MCS9 to 0 after checking the macros.

Optional block skip


The slash, /, which appears in brackets on the right-hand side of an operation expression is interpreted as
the quotient operator and is not regarded as the optional block skip.

5.36 ISO language: Custom macro B CHARMILLES 205 976 460/E/18.03.2003


The EDIT mode
To prevent the registered macro body or subprogram from being destroyed by an error in operation, set the
following parameters:

0 0 2 8 PRG9 PRG8

When PRG8 is set to 1, it becomes impossible to register, erase, or edit a custom macro body or
subprogram in programs 8000 to 8999. When PRG9 is set to 1, it becomes impossible to register,
erase, or edit a custom macro body or subprogram in programs 9000 to 9899. It is also impossible to
erase all programs or punch a program.

Reset
When the system is reset all local variables and common variables #100 to #314 are cleared to
<vacant>. System variables from #1000 to #1132 are not cleared. If the system is reset in a mode other
than the MDl mode, the status for calling a macro or subprogram and the DO status are cleared and
control returns to the main program. When the system is reset in the MDI mode, only the portion called in
the MDI mode is cleared.

Macros and CNC statements


The following blocks are called macro statements:

• Blocks that contain operation commands i.e., blocks that contain =


• Blocks that contain control commands i.e., block containing the GOTO, DO or END statements
• Blocks that call macros i.e., blocks that contain the G65, G66, or G67 commands, or other G
commands. Blocks other than macro statements are called CNC statements.

MDI intervention during automatic operation


The maximum number of macros that can be called by MDl intervention during automatic operation is four.
DO loops can be nested up to a level of three, and up to four subprograms can be called.

Feed hold
Feed hold stops the execution of macros. Macro execution also stops when an alarm occurs or the system
is reset.

CHARMILLES 205 976 460/E/18.03.2003 ISO language: Custom macro B 5.37


Special codes and commands used in custom macros

The following codes can be used in the programs in which custom macros are called, in addition to the
codes used in conventional programs.

ISO
Meaning 8 7 6 5 4 3 2 1 Character

[ O O O O • O [

] O O O O • O ]

# O O • O #

• O O O • O •

= O O O O • O =

O O O O • O O O

+ O O O +

EIA
Meaning 8 7 6 5 4 3 2 1 Character

[ O O • O

] O O • O

# Parameter

• O • O O &

= O O O • O O #

1 O O O +

O, the prefix of the program number, must be used. The hole pattern for # in EIA code must be set as
a parameter. However, the character represented by no punched holes cannot be used. Note that
alphabetic characters can be used, but when used as #, they are not used in their proper sense.

0 0 2 5

Sproket hole

Special commands used in custom macro are:


OR, XOR, IF, GOTO, EQ, NE, GT, LT, GE, LE, AND, SIN, COS, TAN, ATAN, SQRT, ABS, BIN, BCD,
ROUND, FIX, FUP, WHILE, DO, END

5.38 ISO language: Custom macro B CHARMILLES 205 976 460/E/18.03.2003


&KDSWHU

&RPPDQGZRUGV

&RPPDQGZRUGV 
0RYHPHQWVDQGPDFKLQLQJLQWKH0DFKLQHV\VWHPRIFRRUGLQDWHV  
0RYHPHQWVDQGPDFKLQLQJLQWKH3DUWV\VWHPRIFRRUGLQDWHV  
3UHGHILQHGPRYHPHQWV  
7HFKQRORJLHVDQGPDFKLQLQJVHWWLQJV 
$X[LOLDU\IXQFWLRQV  
([HFXWLRQRISURJUDPV  

&+$50,//(6 ( 7DEOHRIFRQWHQWV 


 7DEOHRIFRQWHQWV &+$50,//(6 (
&RPPDQGZRUGV

7KLVFKDSWHUGHVFULEHVWKHFRPPDQGVWKDWFDQEHHQWHUHGZLWKWKHNH\ERDUGE\WKHXVHULQ0',PRGHIRU
LPPHGLDWHH[HFXWLRQ

([DPSOH035;< /LQHDUPRYHPHQW ZLWKLQWHUSRODWLRQ RIPPDORQJ;DQGPPDORQJ


<ZLWKRXWPDFKLQLQJ

1RWH
6RPHRIWKHVHFRPPDQGVKDYHDQHTXLYDOHQWLQWKHIRUPRI,62LQVWUXFWLRQVZKLFKFDQDOVREH
HQWHUHGLQ0',PRGHIRULPPHGLDWHH[HFXWLRQ7KHFRPPDQGVQHYHUWKHOHVVKDYHWKHDGYDQWDJHRI
EHLQJHDVLHUWRPHPRUL]H

7RH[HFXWHWKHVHFRPPDQGV
‡ 6HOHFWWKHVFUHHQSDJH(;(¥0',
‡ (QWHUWKHFRPPDQGHQGZLWK5HWXUQ
‡ 3UHVVWKH&\FOH6WDUWEXWWRQ

&+$50,//(6 ( &RPPDQGZRUGV 


0RYHPHQWVDQGPDFKLQLQJLQWKH0DFKLQHV\VWHPRIFRRUGLQDWHV

60$ ;[  <\  8X  9Y 8SGDWLQJRI0DFKLQHFRRUGLQDWHV

60$ 60$ZLWKRXWSDUDPHWHUVVHWVWKH0DFKLQH;<GLPHQVLRQVWR]HUR

029 ;[  <\  8X  9Y $EVROXWHPRYHPHQWLQWKH0DFKLQHV\VWHP


&DXWLRQQRLQWHUSRODWLRQVDPHVSHHGRQDOOD[HVWKHSDWKLVQRWOLQHDU

029 029ZLWKRXWSDUDPHWHUVEULQJVWKH;<89D[HVEDFNWR]HUR

029 =] $EVROXWHPRYHPHQWRI=D[LVLQWKH0DFKLQHV\VWHP


FDQQRWWDNHSODFHVLPXOWDQHRXVO\ZLWKWKHRWKHUD[HV

095 ;[  <\  8X  9Y 5HODWLYHPRYHPHQWLQWKH0DFKLQHV\VWHP


7KHWUDQVIRUPDWLRQV URWDWLRQ0LUURU6FDOH DUHQRWWDNHQLQWRDFFRXQW
,IWKH1&ZDVSUHYLRXVO\LQ$EVROXWHPRGHWKLVPRGHLVUHHVWDEOLVKHGDIWHU
WKHPRYHPHQW

095 =] 5HODWLYHPRYHPHQWRIWKH=D[LVLQWKH0DFKLQHV\VWHP

&75 ;[  <\  8X  9Y  5HODWLYHPRYHPHQWZLWKPDFKLQLQJLQWKH0DFKLQHV\VWHP


VDPHEHKDYLRUDVZLWK095DERYH

0RYHPHQWVDQGPDFKLQLQJLQWKH3DUWV\VWHPRIFRRUGLQDWHV

63$ ;[  <\ 8SGDWLQJRIWKHSDUWFRRUGLQDWHV

63$ 63$ZLWKRXWSDUDPHWHUVVHWVWKH3DUW;<GLPHQVLRQVWR]HUR

03$ ;[  <\  8X  9Y $EVROXWHPRYHPHQWLQWKH3DUWV\VWHP


7KHWUDQVIRUPDWLRQV URWDWLRQ0LUURU6FDOH DUHQRWWDNHQLQWRDFFRXQW
,IWKH1&ZDVSUHYLRXVO\LQ5HODWLYHPRGHWKLVPRGHLVUHHVWDEOLVKHGDIWHU
WKHPRYHPHQW

03$ 03$ZLWKRXWSDUDPHWHUVVHWVWKH3DUW;<GLPHQVLRQVWR]HUR

035 ;[  <\  8X  9Y 5HODWLYHPRYHPHQWLQWKH3DUWV\VWHP


7KHWUDQVIRUPDWLRQV URWDWLRQ0LUURU6FDOH DUHQRWWDNHQLQWRDFFRXQW
,IWKH1&ZDVSUHYLRXVO\LQ$EVROXWHPRGHWKLVPRGHLVUHHVWDEOLVKHGDIWHU
WKHPRYHPHQW

&3$ ;[  <\  8X  9Y  $EVROXWHPDFKLQLQJLQWKH3DUWV\VWHP

&35 ;[  <\  8X  9Y  5HODWLYHPDFKLQLQJLQWKH3DUWV\VWHP


VDPHEHKDYLRUDVLQ03$DQG035DERYH

 &RPPDQGZRUGV &+$50,//(6 (


3UHGHILQHGPRYHPHQWV

*2++K =D[LVPRYHPHQWWRSRVLWLRQWKHLQMHFWLRQQR]]OHLQDFFRUGDQFHZLWKWKH
SDUWKHLJKW+

6(3&3S 6WRULQJRIWKHFXUUHQWSRLQW;<89=LQWKH$EVROXWHV\VWHPRIFRRUGLQDWHV
S SRLQWQXPEHUIURPWR

*23S 0RYHPHQWLQWKH$EVROXWHV\VWHPXSWRWKHVWRUHGSRLQWS
S SRLQWQXPEHUIURPWR

1RWH
WKHSRLQWVXVHGE\WKHFRPPDQGV6(3DQG*23DUHVWRUHGLQDWDEOHRIYDULDEOHV9$5WKDWLV
DOVRDFFHVVLEOHYLDDSURJUDPE\PHDQVRIWKHIROORZLQJLQVWUXFWLRQV

6(3&3QLVHTXLYDOHQWWR *$Q
PHPRUL]DWLRQ

*23QLVHTXLYDOHQWWR *$Q

7KHYDOXHVRIWKHWDEOHRIYDULDEOHV9$5DUHDFFHVVLEOHIRUUHDGLQJDQGPRGLILFDWLRQLQWKHVFUHHQ
SDJH(;(8VHU3DUDPHWHUV&1&YDULDEOHV3RLQWV

69$)LOHQDPH 6DYHVWKHWDEOHRIYDULDEOHVFXUUHQWO\EHLQJHGLWHG

/9$)LOHQDPH /RDGVWKHFRQWHQWVRIWKHILOHLQWRWKHWDEOHRIYDULDEOHV

7HFKQRORJLHVDQGPDFKLQLQJVHWWLQJV

7(&WDEOHQDPH! $FWLYDWHVWKHWHFKQRORJ\WDEOHFRQWDLQLQJWKHVHWWLQJVWREHXVHG

:,5WDEOHQDPH! $FWLYDWHVWKHFKDUDFWHULVWLFWDEOHRIWKHZLUHWREHXVHG

+3$K 0RGLILHVWKHFXUUHQWKHLJKW K QHZKHLJKWLQPP

5(;(H +K 6HOHFWLRQRIDVHWWLQJ(HLQWKHWHFKQRORJ\WDEOHEHLQJXVHG


2SWLRQDOPRGLILFDWLRQRIWKHFXUUHQWKHLJKW +K

&/( F ,QWURGXFWLRQRIDQH[WUDFOHDUDQFH F FOHDUDQFHLQPP

&/( 6HWVWKHH[WUDFOHDUDQFHWR]HUR

&+$50,//(6 ( &RPPDQGZRUGV 


$X[LOLDU\IXQFWLRQV

$8;P $X[LOLDU\0IXQFWLRQV P1RRIWKHIXQFWLRQ

:&7 3UHSDUDWLRQDQGFXWWLQJRIZLUH

:35 $IWHUEUHDNDJHSUHSDUDWLRQRIZLUHIRUWKUHDGLQJ

7+' $XWRPDWLFWKUHDGLQJ DIWHU:&7RU:35RUPDQXDOZLUHSUHSDUDWLRQ

(1*LQGLFDWRU! &KRLFHRIXQLW PPLQFK

0))YDOXH! 3HUFHQWDJHRI))IUHTXHQF\ WR

([HFXWLRQRISURJUDPV

=&/ 6HWWLQJRIPDFKLQLQJFRXQWHUEDFNWR]HUR

6,0L $FWLYDWLRQ L  RUGHDFWLYDWLRQ L  RIGU\UXQPRGH

('*VD[LV D[LVY (GJHVHDUFK


$[LVVGHILQHVWKHGLUHFWLRQRIWKHPHDVXUHPHQW E\GHIDXOWVLV
$[LVYSRVLWLRQRIWKH]HURRIWKHD[LVLQTXHVWLRQDWWKHHQGRIWKH
PHDVXUHPHQWZLWKUHVSHFWWRWKHFHQWHURIWKHZLUH
([DPSOH ('*;;
ZLUHRIPPGLDPHWHUUHWUDFWLRQPPDIWHU
PHDVXUHPHQW
HGJHVHDUFKZLWKSRVLWLYHPRYHPHQWDORQJ;D[LV
DWWKHHQGRIWKHF\FOHWKHFHQWHURIWKHZLUHLVDW¥¥ 
IURPWKHPDFKLQH]HUR

&(1 ;[  <\  5U &\FOHIRUFHQWHULQJLQDKROH


5UVSHFLILHVWKHPHDVXUHPHQWDQJOHLQGHJUHHV XQVSHFLILHGDQJOH 
;[DQG<\SRVLWLRQWKH0DFKLQHV\VWHPRIFRRUGLQDWHVZLWKUHVSHFWWRWKH
FHQWHURIWKHKROH
([DPSOH &(1;<5
7KHILUVWPHDVXUHPHQWLVGRQHDWƒZLWKUHVSHFWWRWKH;D[LV
7KHSRVLWLRQDWWKHHQGRIWKHPHDVXUHPHQW FHQWHURIWKHKROH LVFKRVHQDV
WKHQHZRULJLQRIWKH0DFKLQHV\VWHPRIFRRUGLQDWHV

0,' ;[  <\  5U &\FOHIRUILQGLQJWKHPLGGOHEHWZHHQSDUDOOHOIDFHV


5UVSHFLILHVWKHPHDVXUHPHQWDQJOHLQGHJUHHV XQVSHFLILHGDQJOH 
;[DQG<\SRVLWLRQWKH0DFKLQHV\VWHPRIFRRUGLQDWHVZLWKUHVSHFWWRWKH
PLGGOH
([DPSOH 0,';<5
7KHILUVWPHDVXUHPHQWLVGRQHDWƒZLWKUHVSHFWWRWKH;D[LV
7KHSRVLWLRQDWWKHHQGRIWKHPHDVXUHPHQW PLGGOH LVFKRVHQDVWKHQHZ
RULJLQRIWKH0DFKLQHV\VWHPRIFRRUGLQDWHV

 &RPPDQGZRUGV &+$50,//(6 (


Chapter 7.

CT-Expert

Introduction 7.3

Utilization of a sequence in an ISO program 7.4

File management 7.4

Basic menu 7.4

CT-Expert user interface 7.4


Keyboard ............................................................................................ 7.5
Programmable keys (soft keys) ................................................................. 7.5

Automatic construction of a sequence 7.6


Principle of operation ............................................................................ 7.6
Questionnaire ...................................................................................... 7.6
Display of result .................................................................................... 7.7
Modification of result ............................................................................. 7.7
Saving of the result ................................................................................ 7.7

Manual construction of a sequence 7.8


Principle of operation ............................................................................ 7.8
Specification of the machining context ...................................................... 7.8
Editing of the sequence .......................................................................... 7.9
Modification of the result ........................................................................ 7.9
Saving of the result ................................................................................ 7.9

CHARMILLES 205 976 560/E/29.03.2001 Table of contents 7.1


Standard sequences 7.10
Principle of operation ............................................................................. 7.10
Specification of the machining context ...................................................... 7.10
Editing of the sequence .......................................................................... 7.10
Modification of the result ........................................................................ 7.11
Saving of the result ................................................................................ 7.11
Saving of the sequence in the standard sequences ...................................... 7.11
Deletion of the sequence from the standard sequences ................................. 7.11

Rereading of a sequence 7.11


Principle of operation ............................................................................. 7.11

Generation of a command file 7.12


Principle of operation ............................................................................. 7.12
Conditions concerning the part-program .................................................... 7.12
Execution parameterization ..................................................................... 7.12
Multiple parts ....................................................................................... 7.13
Rectangular layout ............................................................................ 7.13
Random layout ................................................................................. 7.13
Radial layout .................................................................................... 7.14
Part by Part Machining ...................................................................... 7.14

7.2 Table of contents CHARMILLES 205 976 560/E/29.03.2001


Introduction

CT-Expert is a software utility designed for the automatic construction of optimum machining sequences.

A sequence contains in the right order all the settings required for machining a given part, and for each
pass the offset calculated as the sum of material removal of the subsequent passes.

- Just as in the case of a technology table, a sequence is a group of settings, but of a limited number (for
example, 5 or 6).
- For this reason, it is saved in an identical format with the extension .TEC.
- The settings in the sequence are numbered in a continuous manner starting from 501.
- The name of the sequence is chosen freely by the user at the time it is saved.

CHARMILLES 205 976 560/E/29.03.2001 CT-Expert 7.3


Utilization of a sequence in an ISO program

A sequence is used in a similar way to a technology table:


Selection of a Technology Selection of a Sequence
G11 (TEC, LS25A) G11 (TEC, SEQ1)

Selection of a setting of the Techno Selection of a setting of the Sequence


S2 S 501
S8 S 502
S 10 S 503

File management
Operation of CT-Expert is based on the existence of standard technology tables and standard sequences
drawn up by Charmilles Technologies.
After commissioning of the machine, all the files distributed with CT-Expert are in an STD disk (technology
tables, standard sequences proposed by CT)
CT-Expert generates two types of files: machining sequences and command programs. The command
programs are ISO language files whose role is to control the execution of the sequence automatically.
Before activating CT-Expert, the user must create a directory and give it a name. This directory corresponds
to the JOB concept established for storing the files generated by CT-Expert and all the files required for
carrying out a machining operation.
When CT-Expert is activated, the selection window is used for positioning on this directory.

Basic menu
The basic menu ≈Operation Selection∆ is used for selecting one of the 5 operations that can be executed
by means of CT-Expert:

These 5 operations are described in the following pages.


The ≈Operation Selection∆ menu is also used for selecting the unit of length (mm or inch) and the scale for
defining the surface finish (CH or Ra).

7.4 CT-Expert CHARMILLES 205 976 560/E/29.03.2001


CT-Expert user interface

Keyboard

The cursor in the screen pages of CT-Expert is selected by means of the following keys:

Function

Arrows ←↑↓→ positioning on one of the possibilities proposed:

Return selection of the current position

Programmable keys (soft keys)

Every CT-Expert screen page has 7 soft keys varying according to the context
The function associated with a soft key is activated either by clicking on the button by means of the mouse,
or by pressing one of the corresponding keys F1ºF7 on the keyboard
The following operations can be executed by means of soft keys:

Function

Validate Accept the modifications carried out, close the current window and go on
to the next operation
Go back Abandon the current window and go back to the previous operation
Start again Abandon the current construction and return to the basic menu

Manual editing Switch over to manual modification of the current sequence

Information Used for displaying an explanatory text on the present situation

Read sequence Display the list of sequences created by the user

Standard sequences Display the list of standard sequences

End Move on to the stage of saving the work carried out

Quit Abandon the current sequence so as to go back to the basic menu


Return Return to editing mode
Save sequence Name and save the sequence drawn up
Save Add a sequence created by the user to the list of standard sequences

Exit Exit CT-Expert


Triangular arrow Used for returning to the previous screen page
(on right side of screen)

CHARMILLES 205 976 560/E/29.03.2001 CT-Expert 7.5


Automatic construction of a sequence

Principle of operation

Display of a questionnaire for the purpose of defining the characteristics of the part to be produced
On the basis of the answers supplied, CT-Expert automatically constructs the optimum sequence for
attaining the desired result

Questionnaire

The user is asked to specify the following parameters:

- part height
- material machined
- maximum angle of inclination of the wire
- smallest re-entrant radius
- wire to be used
- type of work
- type of nozzle for roughing
- type of finishing
- accuracy desired
- surface finish.

Apart from the height expressed numerically (in mm or inches), the answers are expressed by selecting from
multiple choices

Example: choice of surface finish

The contents of the list and the choices proposed at each stage vary according to the answers to the
preceding questions.
For example: the proposals concerning the wire to be used depend on the maximum angle of inclination
and the smallest re-entrant radius

If the conditions expressed by the successive answers are too restrictive and do not lead to any solution, the
user is informed by a special display containing:
- a recapitulation of the questions/answers that led to the impasse
- a message justifying the failure and containing if possible a solution to the problem

At any time it is possible to go back one or several steps (≈go back∆ key or F3) to modify the request with
new conditions.

7.6 CT-Expert CHARMILLES 205 976 560/E/29.03.2001


Display of result

After all the questions have been answered, the proposed sequence is presented in the ≈Generator
parameters∆ screen page:

- the left side presents a recapitulation of the specifications


- the right side displays the sequence.

PREP EXE INFO GRAPH


CT - EXPERT
GENERATOR PARAMETER

Material/Wire: STEEL/SW25X
Part height: 40.00 mm

Question Response Reg PM.r Off Offset


Material used: Steel >E2 0 199
Maximum taper angle Less than 5 degrees E5 30 140
Smallest inside radius Greater than 0.19 mm
Wire choice: SW25X
Type of roughing: Standard
Surface finishing: CH29
Precision: Average (*) Actual material removal
Type of finishing cut Open
Settings

DNC FS
CT EDIT
EDITOR CAM-CT EXPERT FILES
TABLES
Start Back up Manual Save
Information Edit Finish
Over 1 page Sequence
F1 F2 F3 F4 F5 F6 F7

Modification of result

The solution proposed can be amended in various ways as follows:

- Go back step by step using ≈Go back∆.


- Positioning on a criterion in the recapitulation of specifications (using arrows).
The questionnaire is resumed as from the level defined.
- Switchover to manual mode using ≈Manual editing∆:
- the sequence is displayed in Manual construction format (see this mode below).
- Return to the start of the questionnaire using ≈Start again∆.

Saving of the result

Select: ≈End∆ followed by ≈Save sequence∆.


The ≈Saving∆ window is displayed; this is used for:
- entering the name of the sequence xxx (essential)
- specifying whether generation of a command file is desired
- concluding with ≈Validate∆

The file xxx.TEC is created in the ≈JOB∆ directory. If required, the command file is generated (see below:
Generation of a command file).

CHARMILLES 205 976 560/E/29.03.2001 CT-Expert 7.7


Manual construction of a sequence

Principle of operation

On the basis of the technology table of the wire-part pair, manual construction of the optimum sequence for
attaining the desired result

If the technology used for generating the sequence is of standard type, the adjustment parameters are
invariable. If the technology is if the ≈User∆ type, the adjustment parameters can be modified.

PREP EXE INFO GRAPH


CT EXPERT
MANUAL MODE Technology Selection
PREP EXE INFO GRAPH
CT EXPERT
MANUAL MODE Technology Selection

Material Wire File (.TEC)

Steel 1/2 hard brass 0.25 STD:LS25A.TEC


Steel 1/2 hard brass 0.30 STD:LS30A.TEC
Steel SW20X STD:XS20A.TEC
Steel SW25X
Matiere STD:XS25A.TEC
Fil File (.TEC)
Steel SW30X STD:XS30A.TEC
Steel HSW25X
Acier STD:HT25A.TEC
Laiton 1/2 dur 0.25 STD:ULS25A.TEC
Steel Soft brass 0.25
Acier STD:LR25A.TEC
Laiton 1/2 dur 0.30 STD:ULS30A.TEC
Steel SW10A
Acier STD:ST10A.TEC
SW20X STD:UXS20A.TEC
Steel SW25S
Acier STD:SS25A.TEC
SW25X STD:UXS25A.TEC
Copper 1/2Acier
hard brass 0.25 STD:LS25C.TEC
SW30X STD:UXS30A.TEC
Copper SW25X
Acier STD:XS25C.TEC
HSW25X STD:UHT25A.TEC
Carbide 15% Co G3/GT30 SW25X
Acier STD:XS25V.TEC
Laiton mou 0.25 STD:ULR25A.TEC
Carbide 12% Co G2/GT20 SW25X
Acier STD:XS25X.TEC
SW10A STD:UST10A.TEC
Acier SW25S STD:USS25A.TEC
Cuivre Laiton 1/2 dur 0.25 STD:ULS25C.TEC
Cuivre SW25X STD:UXS25C.TEC
Carbure 15% Co G3/GT30 SW25X DNC FS STD:UXS25V.TEC

Specification of the machining context

- Technology table:
- choose between Standard Technology (e.g.: STD: LS25A.TEC) and User Technology (STD:
ULS25A.TEC).
- place the cursor on the desired wire-part pair, validate with Return.
- Part height: enter the height and then Validate.
- The editing screen is displayed; this screen contains:
- left zone (CT-Expert area): settings available in the technology selected
- right zone (User area): settings making up the sequence.
The + key can be used to enlarge the zone allocated to the sequence (right zone) by presenting a greater
number of parameters. The √ key has the opposite effect.
The example below presents a sequence with expanded right zone.

Settings contained in
technological file Edited sequence

Nominal speed (techno value)

Surface finish (CH value)

Actual material removal Offset for dimension 0 (final)


(indicative value)
Machining allowance (sum of PM.r of subsequent settings)
Offset used for machining:
Off=SE+Ofs0
Speed resulting from all settings

*This value can be used to estimate global machining time

7.8 CT-Expert CHARMILLES 205 976 560/E/29.03.2001


Editing of the sequence

The selected field is displayed in reverse video

The vertical arrows move the selected field

The horizontal arrows are used for moving from the left zone to the right zone

Inserting a setting
- Select the desired insertion position in the right side zone
- Then select the desired setting in the left zone
- Validate with the Return key

Deletion of a setting
- Select in the right side zone the sequence element to be deleted
- Press the Delete key on the keyboard

Editing of material removal


- Select in the right side zone the sequence element to be edited
(the settings that can be edited have material removal in blue)
- Press Return: the material removal is displayed within its extreme limits
- Enter the new value, and end with Return: the value entered is taken into account

With each modification, the ≈Off∆ field (offset used for the machining) is updated.

Modification of the result

The proposed solution can be amended in various ways as follows:


- wire material: return to the start of the manual construction process
- change height: possibility of modifying the height while keeping the sequence.

Caution: if a setting is no longer valid with the new height, it is displayed in gray

- Read Sequence: displays the list of sequences created by the user


- Standard sequences: displays the list of standard sequences.

Saving of the result

Select: ≈End∆ followed by ≈Save sequence∆.

The ≈Saving∆ window is displayed; this is used for:


- entering the name of the sequence xxx (essential)
- specifying whether generation of a command file is desired
- concluding with ≈Validate∆

The file xxx.TEC is created in the ≈JOB∆ directory. If required, the command file is generated (see below:
Generation of a command file).

CHARMILLES 205 976 560/E/29.03.2001 CT-Expert 7.9


Standard sequences

Principle of operation

- Manual construction of a sequence on the basis of an existing sequence (this procedure is similar to the
manual construction presented above).
- When the machine is delivered, Charmilles proposes standard sequences for all the usual machining
contexts (characterized by the annotation ct in the margin). These standard sequences cannot be
deleted).
- It is possible for users to add their own standard sequences.

Frame containing
sequence under
construction

Set of typical
sequences existing
for wire /part pair

Specification of the machining context

- Technology table:
- select from among Standard Technology (e.g. STD: LS25A.TEC) and User Technology (STD:
ULS25A.TEC)
- place the cursor on the desired wire-part pair, then validate with Return.
- Part height: enter the height and then: Validate.
The editing screen is displayed; this screen contains in the left zone the standard sequences available for
the selected context.
- Select a sequence, confirm with Return: the settings making up the sequence are displayed in the right
side zone.

Editing of the sequence

- Positioning: see Manual construction, Editing of the Sequence.

- Editing of material removal:


- select in the right side zone the sequence element to be edited
(the settings that can be edited have material removal in blue)
- press Return: the material removal is displayed within its extreme limits
- enter the new value, and end with Return: the value entered is taken into account.

With each modification, the ≈Off∆ field (offset used for the machining) is updated.

7.10 CT-Expert CHARMILLES 205 976 560/E/29.03.2001


Modification of the result

The proposed solution can be amended in various ways as follows:


- wire material: return to the start of the process of construction by standard sequences
- change height: possibility of modifying the height while keeping the sequence

Caution: if a setting is no longer valid with the new height, it is displayed in gray.

- Manual Editing: switches over to the mode of manual editing of the sequence
- Read sequence: displays the list of sequences created by the user.

Saving of the result

Select: ≈End∆ followed by ≈Save sequence∆.

The ≈Saving∆ window is displayed; this is used for:


- entering the name of the sequence xxx (essential)
- specifying whether generation of a command file is desired
- concluding with ≈Validate∆

The file xxx.TEC is created in the ≈JOB∆ directory. If required, the command file is generated (see below:
Generation of a command file).

Saving of the sequence in the standard sequences

Select: Save.

The sequence is added at the bottom of the list of standard sequences:


- enter the name of the new sequence (maximum of 20 characters), and conclude with Return.

The sequence is saved.

Deletion of the sequence from the standard sequences

Select the sequence, then press Delete.

The sequence is deleted from the list.

Rereading of a sequence

Principle of operation

Examination and possible modification of a sequence already created


(similar to the procedure described in the ≈Manual construction∆ paragraph).

Activation of this function displays the list of sequences created by the user:
- select a sequence and confirm with Return: the sequence is displayed in the usual way.
The sequence can then be edited in the manual mode already described.

CHARMILLES 205 976 560/E/29.03.2001 CT-Expert 7.11


Generation of a command file

Principle of operation

After a sequence has been created, CT-Expert makes it possible to construct automatically a command
program designed to control automatically the execution of the sequence for a part-program.

The command file can control the execution of a single part or multiple parts. In the latter case, the layout
of the parts and the strategy of execution can be specified.

Conditions concerning the part-program

The part-program must comply with the following conditions:


- the start and end of the program must coincide
- the start of the program must correspond with the coordinates X=0 Y=0 of the part system of axes
- the part-program contains the instructions that activate the taking of offset (G41, G42)
- the offset at the end of the program must be cancelled
- the part-program contains no instructions concerning explicit loading of settings (Sxx)
- the optional blocks concerning the roughing pass must be preceded by /0, and those concerning the
finishing passes must be preceded with /1
- the part height specifications that may be entered in the part-program have no effect on machining.

Execution parameterization

The parameterization menu of the command file makes it possible to define the following conditions of
execution:

- Name of command program (format: 0xxxx.ISO)


- Name of part-program (format: 0xxxx.ISO)

- Parameter CLE
Adds a positive or negative extra clearance (instruction inserted at the start of the command program).
This value replaces the current value of the User parameter CLE.
Used for modulating the dimension of the part without modification to the part-program.

- Parameter ROTATION
Adds an angular rotation (instruction inserted at the start of the command program).
This value replaces the current value of the User parameter ROT.
Makes possible an overall rotation of the complete machining operation without modification to the
part-program.

- Activation of the wire table


Explicitly loads the table corresponding to the wire selected (instruction inserted at the start of the
command program).

7.12 CT-Expert CHARMILLES 205 976 560/E/29.03.2001


In the case of a single part: ignore the parameter ≈Multiple parts∆:

- the command program contains no commands for cutting or threading the wire; it starts execution at the
current wire position
- the starting point becomes the origin of the part system of axes
- the clocks are set at zero
- the thickness of the part is declared according to the specification done in CT-Expert
- the technology table specified in CT-Expert is selected
- the part-program is executed for each setting of the machining sequence, each pass being preceded by
a line of commentary in the program
- for a roughing pass:
- the optional block /0 are validated
- the optional block /1 are cancelled
- after the roughing:
- the optional block /1 are validated
- the optional block /0 are cancelled

Multiple parts

If the ≈Multiple parts∆ parameter is specified, additional windows are displayed to enable the layout of the
parts to be defined:

Rectangular layout Dx
- number of parts (horizontal)
- spacing DX (mm or inches)
(value ignored if No. of columns = 1!)
Dy

- number of parts (vertical)


- spacing DY (mm or inches)
(value ignored if No. of columns = 1!)

Random layout Point 6


Specify
- number of parts Point 4

- number of the first point.


Point 5
The parts are positioned at random, but all with the Point 7
same orientation.
The starting positions of all parts must be stored Point 3
contiguously in the table of points.
Starting point
The number of the first point indicates the position Point 2
Point 1
of the 1st part.

Example: point of the table


No. 1 = start point
No. 2 = 1st part
No. 3 = 2nd part, etcº

In this case it is necessary to specify 2 as the number of the first point.

CHARMILLES 205 976 560/E/29.03.2001 CT-Expert 7.13


Radial layout
- number of parts
- radius of the circle R (mm or inches)
- start from center of the circle (yes/no)

- angle between 2 parts alpha (degrees)


α
- part rotated 90° (yes/no)

R
X

Variants of radial layout:


-The machining start point can be the center of the
circle or the origin of the first part.

Workpiece turned by 90°

- A rotation of 90° can be applied to the part.


In this case the Y axis of the part is no longer
tangent to the circle but becomes perpendicular Possible starting points
to the circle.

- As defined previously, the specification of an


ROTATION ANGLE also makes it possible to
position the first part at a different angle.

Initial angle

Part by Part Machining


If this option is selected, finishing and surface finishing will be executed part by part

Roughing however is always first executed overall for all parts (this makes it possible to start the roughing
pass in the evening and to remove the slugs as the first operation the next day).

7.14 CT-Expert CHARMILLES 205 976 560/E/29.03.2001


Chapter 8.

Installation of the software

Installation 8.3
Objectives and prerequisites ................................................................... 8.3
Preparation before installation ................................................................. 8.4
Installation of version 1.10 ..................................................................... 8.9
Reconfiguration after installation ............................................................... 8.18

Changing the language of the software 8.19

CHARMILLES 205 976 610/en/11.11.2005 Table of contents 8.1


8.2 Table of contents CHARMILLES 205 976 610/en/11.11.2005
Installation

Objectives and prerequisites

This procedure makes it possible to update with the version 1.10 software all machines equipped with the
CT-Millennium numerical control: FI 240/440, FI 240SL/440SL, FI 240CC/440CC, FI 380/390/690.

This installation automatically copies onto the machine the Man-Machine Interface MMI and the software
of the numerical control.
This installation can only be done from certain versions. You must therefore first check the version that is
in force on your machine.

To do this you need to press the buttons <EXE> <Service> <Config. CNC>.
In the screen that follows, check the number displayed in the field MMI.

Please also check the serial number of your machine. You will find this number on a metal label at the rear
of the machine.

The minimum version number required depends on the type of machine :

Machine Minimum version required For machines with the following serial numbers:
please contact Charmilles before installing!

FI 240 V1.8.1 920571, and 920579 to 920598

FI 440 V1.8.1 between 930298 and 920313

FI 240SL/FI 440SL V1.9.2 No limitation

FI 240CC/FI 440CC V1.9.4 No limitation

FI 380 V1.9.2 No limitation

FI 390 V1.9.2 before 682076, and 682078

FI 690 V1.9.2 before 692060, and between 692061 and 692064

Furthermore, please contact Charmilles if the current software version of your machine is older that the one
shown in the above list.
This is because certain preliminary operations are necessary.

CHARMILLES 205 976 610/en/11.11.2005 Installation of the software 8.3


Preparation before installation

Network
If the machine is connected to a computer network, make sure you are able to reconfigure this connection.
If necessary, save the network configuration before starting to carry out the installation.
For example, you can make a print-out of the network configuration screens. If you do not able to do the
reconfiguration, please contact your network administrator.

eConnecT
If the eConnecT option is installed on the machine, you will need to reconfigure it and redefine the list of
contacts. Please call Charmilles.

Saving of data

Before carrying out the installation you must save, either on floppy disks or through the com-
puter network, all your programs and all your wire and technology tables contained on the
User disk U:.
This is because all current data will be deleted by the installation procedure.

Saving on floppy disks :


If the quantity of your data exceeds the capacity of a 1.44 mb diskette, please contact your system
administrator so that the following operations can be carried out :
• Simultaneously press the keys <Control> <E>, so as to open the Windows explorer under U:.
• Select the data to be saved.
• Press the key and select compression to the Zip format.

Saving on a network :
• Select the file manager of the Preparation module, or contact your network administrator.

Diskette
Prepare a new diskette of 1.44 mb capacity.

8.4 Installation of the software CHARMILLES 205 976 610/en/11.11.2005


Initial conditions of the machine
The machine must be switched on.
The machine must not be in Alarm status (error message); if it is, take the necessary steps to cancel the
current alarms.
The axes references must be taken (no axis values must be in red).

For FI 380/390/690 machines you must move the U V Z axes to the origin. To do this, in the screen
<EXE>, please enter the instructions G90 G53 U0V0Z0 in the line MDI. Press <Enter>, and then
press the green button <Start> for machine movement.

Check the absolute coordinates on the screen <Info> <Other info>.


On U, V, Z these coordinates are at zero.

CHARMILLES 205 976 610/en/11.11.2005 Installation of the software 8.5


Change of the PC start mode
In order to ensure that the installation CD-ROM runs automatically when the PC switches on, please comply
with the following instructions :

• Switch off the machine by pressing the red Stop Machine button <0> of the control panel.

• Wait until the machine has switched off completely.

Before restarting the machine you only have 5 seconds in which to press key <F2>
of the keyboard.

• Now you can restart the machine by pressing the green ON button <I> of the control panel.

• When you see that the line <Press <F2> to enter


SETUP> is displayed at the bottom of the screen,
press F2 immediately.

• Press <F2> on the keyboard after the complete display of the screen as shown previously. If you did not
have enough time, let the machine restart and then switch it off and repeat the preceding operation.

Depending on the PC version, one of these screens will be displayed :

Screen A Screen B

400 Mhz 733 Mhz

Identify your version by comparison and then refer to the paragraph corresponding to your screen, A or B.

8.6 Installation of the software CHARMILLES 205 976 610/en/11.11.2005


If screen A is displayed :

• By means of the key <Down arrow> of the


keyboard, select the text "Boot feature" and
press <Enter>.

• By means of the key <Down arrow> of the


keyboard, select the text "Boot Device Priority"
and press <Enter>.

• By means of the keys <Down arrow> and


<Up arrow> of the keyboard, select the text
≈Atapi CD-ROM Drive", and then, by means
of the keys <+> and <->, position this line at
the top of the list.

• Press key <F10> of the keyboard in order to


save this configuration.

• Select <Yes> by means of the arrows of the


keyboard and press <Enter>.

• Wait for the machine to switch on again.

CHARMILLES 205 976 610/en/11.11.2005 Installation of the software 8.7


If screen B is displayed :

• By means of the key <Right arrow> of the


keyboard, select the text "Boot".

• By means of the key <Down arrow> of the


keyboard, select the text "Boot Device Priority"
and press <Enter>.

• By means of the key <Down arrow> of the


keyboard, select the text ≈CD-ROM Drive", and
then, by means of the keys <+> and <->,
position this line at the top of the list.

• Press key <F10> of the keyboard in order to


save this configuration.

• Select <Yes> by means of the keys


<Right arrow> and <Left arrow> of the
keyboard and press <Enter>.

• Wait for the machine to switch on again.

8.8 Installation of the software CHARMILLES 205 976 610/en/11.11.2005


Installation of version 1.10

The version supplied contains 2 CD-ROMs, named ≈SYSTEM" and ≈SOFTWARE".

• Insert the CD-ROM named ≈SYSTEM" into the drive.

• Press the red Stop Machine button <O> of the control panel of the machine so as to stop the machine.
Please wait for a short time; after about 1 minute the machine stops.

• Press the green On button <I> of the control panel of the machine so as to restart the machine.

Loading of the system

When loading of the program begins,


the following message is displayed :

• Press any key of the keyboard.


A gray screen is displayed with a progress bar.
Loading of the program is now in progress and
can last several minutes.

The following message is displayed when


program loading is completed.

• Remove the ≈SYSTEM" CD-ROM from the drive


and insert the ≈SOFTWARE" CD-ROM.

• Simultaneously press the keys <Ctrl> <Alt>


<Delete>. This action restarts the PC.

CHARMILLES 205 976 610/en/11.11.2005 Installation of the software 8.9


Installation language

During the course of this installation you will have to select the language on two occasions.
The first will concern the language used for the screens displayed during this procedure and
the second will concern the language for the definitive software installed on the machine.

Wait for the PC to restart and for the display of the language selection screen.

• Select the desired language for the screens


of this installation procedure and then press
the button <OK>.

Loading will now start.

Touch screen

• Press the button <Yes> in order to calibrate the


touch screen.

Now follow the instructions displayed. You need to


press your finger onto the center of the red cross as
and when it moves to different positions.

• Then press the button <Update>.

8.10 Installation of the software CHARMILLES 205 976 610/en/11.11.2005


Type of installation
• Select the type of installation <Complete installation> and press the button <Next> >.

Type of machine
• Select the type of machine corresponding to your machine and then press the button <Next> >.

If the type of machine that is selected is incorrect, the machine parameters


will be damaged.

In order to prevent this, a confirmation message


is displayed.
• Press the button <Yes> if the type of machine
is correct.

In the event of an erroneous selection, please completely cancel the installation process and restart it.

CHARMILLES 205 976 610/en/11.11.2005 Installation of the software 8.11


Language for the software of the machine

• Select and tick on the screen the language that the operator wishes to have for utilizing the machine.

• Check that the line is displayed in reverse video


and that the box has been ticked.

• Press the button <Next> >.

Installation

Never interrupt the loading process.

The installation procedure now commences.


It lasts roughly 5 minutes.

8.12 Installation of the software CHARMILLES 205 976 610/en/11.11.2005


During the installation you will have to restart the NC manually if the screen below is displayed. This restar-
ting procedure is described on the computer by means of a loop animation. The buttons << and >> are
used for displaying the different images of the 5 stages of this procedure.

Please follow the procedure shown on the screen and described in greater detail below :
• Open the cabinet door.
• Press the button >> on the screen: the image of stage 2 is displayed.
Look to see where the NC is located in the cabinet..

CHARMILLES 205 976 610/en/11.11.2005 Installation of the software 8.13


• Press the button >> on the screen: the image of stage 3 is displayed.
Look to see where the supply connector CP1 of the NC is located.

• Press the button >> on the screen: the image of stage 4 is displayed.
Remove the supply connector CP1. Wait 5 seconds.

• Put the supply connector back in position.


The digital display performs a countdown from 9 to 0.

8.14 Installation of the software CHARMILLES 205 976 610/en/11.11.2005


• Press the button >> on the screen: the image of stage 5 is displayed.
When the display is at 0, close the cabinet door and press the button <Procedure completed>.

Repeat this manipulation to restart the NC as many times (4 to 8) as requested.

At the time of the successive restarts it is not necessary to display the images corresponding
to each stage.

• Close the cabinet door.

Save the machine parameters


• Press the emergency stop button of the machine
and then press the button <OK>.

• Insert an unused 1.44 mb diskette in drive A: and


press the button <Yes>.

Copying of the files now begins.


This operation takes several minutes.

CHARMILLES 205 976 610/en/11.11.2005 Installation of the software 8.15


Restarting of the machine
• Release the emergency stop button, press the green ON button <I> of the control panel, then press the
button <Terminate>.

8.16 Installation of the software CHARMILLES 205 976 610/en/11.11.2005


The installation is completed.

• Take the CD-Rom named ≈SOFTWARE" out of the drive.

• Take out the diskette from the drive, write <Saving of parameters after installation 1.10.x> on the label,
and keep it carefully.

• Press the red Stop Machine button <O> of the control panel and wait for a short time.
After 1 minute the machine switches off. An empty screen appears.

• Press the green ON button <I> of the control panel so as to restart the machine.

CHARMILLES 205 976 610/en/11.11.2005 Installation of the software 8.17


Reconfiguration after installation

Network
If the machine was connected to the computer network of the company, this connection must be
reconfigured.

eConnecT
If this option was installed on the machine, it has to be reconfigured.

References
It may be necessary to take the references of the machine axes.
- X Y U V Z axes for machines of type FI-x40 (CC) (SL)
- X Y axes for machines of type FI-x90/380

Updating the time and date


In the screen <EXE> <Service>, <Regional Parameters>, press the button <Set Date-Time>, and adjust
the date and time.

Graphic view
In the screen <EXE> <Service> <Machine Config.> <External Programs>, tick the text line ≈Graphic view".

Loading of macros
In the screen <EXE> <Measurements> <Macros> press the button <Load all macros>.

Loading the saved data


Copy onto your user disk U: all your programs, wire tables and technology tables that you had saved on
diskettes or in the network as a precaution before the installation of the version 1.10.

The new tables installed by version 1.10 must not be deleted.


To ensure this, while doing the copying, you must answer no when asked about
replacing each existing file.

8.18 Installation of the software CHARMILLES 205 976 610/en/11.11.2005


Changing the language of the software

During the course of this installation you will have to select the language on two occasions.
The first will concern the language used for the screens displayed during this procedure and
the second will concern the language for the definitive software installed on the machine.

• Insert the CD-ROM called ≈SOFTWARE∆ into the drive. When a blue screen appears press a key on the
keyboard for the installation programme to start up automatically.

• Select the desired language for the screens


of this installation procedure and then press
the button <OK>.

Loading will now start.

• Select the <Change HMI language>> button and then the <Next>> button.

CHARMILLES 205 976 610/en/11.11.2005 Installation of the software 8.19


• Select and tick on the screen the language that the operator wishes to have for utilizing the machine.

• Check that the line is displayed in reverse video


and that the box has been ticked.

• Press the button <Next> >.

The installation procedure now commences.

Never interrupt the loading process.

8.20 Installation of the software CHARMILLES 205 976 610/en/11.11.2005


The installation is completed.

• Take the CD-Rom named ≈SOFTWARE" out of the drive.

• Press the red Stop Machine button <O> of the control panel and wait for a short time.
After 1 minute the machine switches off. An empty screen appears.

• Press the green ON button <I> of the control panel so as to restart the machine.

CHARMILLES 205 976 610/en/11.11.2005 Installation of the software 8.21


8.22 Installation of the software CHARMILLES 205 976 610/en/11.11.2005
Chapter 9.

CT √ Graphic preview

Introduction 9.3
Purpose and functioning ......................................................................... 9.3
Hierarchy of the screen pages ................................................................. 9.3
Activation of the Graphic preview module ................................................. 9.3

Screen page Graphic Preview (selection) 9.4

Execution procedure 9.6


Syntax check ....................................................................................... 9.6
Loading into memory ............................................................................. 9.6
Drawing ............................................................................................. 9.7
Function keys ....................................................................................... 9.7

Graphic Preview page 9. 8

Context page 9.10

Advanced Options page 9.12

Draw Parameters page 9.14

Alternative representations 9.16


Isometric display (XYZ) ........................................................................... 9.16
Full Screen page .................................................................................. 9.16

Show ISO page 917

Log File page 918

CHARMILLES 140 000 957/E/08.04.2004 Table of contents 9.1


9.2 Table of contents CHARMILLES 140 000 957/E/08.04.2004
Introduction

Purpose and functioning

The purpose of the Graphic preview module is to allow a validation of syntax and a visual check of ISO
programs before machining.

During the interpretation of the code, no machine action (threading or cutting of wire, flushing, axis move-
ment, etc. . .) is executed.

Hierarchy of the screen pages

The figure below illustrates diagrammatically the linking up of the 8 screen pages that make up the inter-
face of the simulator.

- Each of the screen pages above is presented in detail in the following pages

- From each page, selection of a page of lower level is possible by means of a function key

- Returning to the higher level is done by means of one of the 2 Return keys (white triangle ∆ ) located on
either side of the function keys

Activation of the Graphic preview module

In the module PREP, press the function key Graphic Preview

=> the screen page Graphic Preview (selection) is displayed

CHARMILLES 140 000 957/E/08.04.2004 CT √ Graphic preview 9.3


Screen page Graphic Preview (selection)

This screen page is used for examining the list of programs and selecting the one to be tested and dis-
played.

Selection buttons for data media and types of file

Return to the previous directory level

Selection of a data medium


Example: click on U : to display the content of the disk U :

Display limited to files of type .ISO

Display of all types of files

9.4 CT √ Graphic preview CHARMILLES 140 000 957/E/08.04.2004


Directory display zone

Left hand part :

Upper bar Access path and denomination of the directory


Example:C:\..\CTMILLENNIUM\NC

Type of files displayed (*.ISO or *.*)

List of files Name Size Date

Right hand part :

Upper bar Access path and name of the file selected

Content Display of the first 17 ISO blocks of the selected file


(this display is used for checking whether the program selected is indeed the one being
sought)

Process for selecting a program :


- select a data medium
- select the type of .ISO file
- click on the name of a file
==> the identification of the file and the first 17 blocks are displayed

If the file is the correct one, go on to the next stage (Graphic Preview key below).
If not, recommence the selection process.

Keys

Used for going back to the last file simulated

Used for going back to the last file modified

Function key

Activation of the next stage (screen page Graphic Preview), to process the program that
has just been selected

CHARMILLES 140 000 957/E/08.04.2004 CT √ Graphic preview 9.5


Execution procedure

This paragraph describes the series of operations that are executed when the Graphic Preview key is
pressed after a .ISO file has been selected.

Syntax check

After this check, 3 possible situations can arise :

- there are some fatal errors: the simulation will not be possible, and the program must first be corrected
- there are some minor errors (warnings): the simulation will be possible, but with the likelihood of some
limitations
- there are no errors: the simulation is possible without restriction

The result of the syntax check is displayed as an overlay on the drawing at the end of loading.

Loading into memory

Progress of the loading is shown by a bar graph

A Cancel button makes it possible to interrupt loading

9.6 CT √ Graphic preview CHARMILLES 140 000 957/E/08.04.2004


Drawing

- The progress of the construction of the drawing is shown by a bar graph


- The geometry of the program is displayed according to the default presentation conditions
- An overlaid window gives a summary display of the syntax check result
- In the absence of fatal errors, the program is ready for the simulation exercises

Function keys

The following functions for adjusting the display and examining the program are accessible :

Activation of the screen page Context, to define the parameters and environment that
condition the execution of the simulation

Activation of the screen page Show ISO to display the ISO instructions of the program

Activation of the screen page Log File used for scrolling the warning and error messages
during the simulation

The same screen page is displayed, but using the full width of the screen for the zone of
graphic display

Activation of the screen page Draw Parameters to define the display parameters of the
program

CHARMILLES 140 000 957/E/08.04.2004 CT √ Graphic preview 9.7


Graphic Preview page

Left hand part : Graphic Preview zone

- The content and the details of the display's presentation can be parameterized.
- The display parameters are determined in the page Draw Parameters.

=> Consult the documentation of this page for a detailed description of all the display possibilities.

Right hand part : Zone for following up the simulation

Upper bar Access path and denomination of the file selected


Vx.xx:version of the simulator
XYUV coordinates Dynamic position of the wire
0nnnn Program name
Tec Technology table currently in force for the simulation
S Current generator setting
Off Current offset
T Current taper angle
ISO code Scroll display of the ISO code (5 blocks)
During the simulation the instruction currently being executed, located in the middle
position (3rd line), is displayed in bold characters

9.8 CT √ Graphic preview CHARMILLES 140 000 957/E/08.04.2004


Right hand part : Graphics control buttons

Enlargement of a selected rectangular zone / Return to the previous status


To select the rectangular zone: point onto one of the corners of the zone selected, then
move the cursor to the diametrically opposed corner.

Switching between the representation of the partand the representation of the work tank

Switching between top view XY / isometric view

The buttons with an asterisk (* ) are fitted with a green indicator light, meaning that when it is lit up
the function is selected.

Selection of a manipulation mode: rotation (* ) or overall movement (* ).

The direction of manipulation is chosen by means of the 4 buttons below :

(forward)
(upward)
(counter-clockwise) (backward) (clockwise)
(to the left) (downward) (to the right)

Right hand part : Execution control buttons

Start /resumption Interruption Stop Block by block


execution (* )

Execution speed control cursor :


Left: minimum speedRight : maximum speed

CHARMILLES 140 000 957/E/08.04.2004 CT √ Graphic preview 9.9


Context page

Indicator

This visual indicator has the following meanings :


- at rest : Default context (initial conditions)
- lit up : Some parameters have been modified, the context can be saved (Save
Context)

Function key

Activation of the screen page Advanced Options, to supplement the definition of the
parameters and environment.

Parameters

Context Access path and denomination of the file selected


(upper bar) previously (screen page Exploration)

9.10 CT √ Graphic preview CHARMILLES 140 000 957/E/08.04.2004


Tables
Specify in these 3 fields the complete access paths of the tables and parameters to be used for executing
the simulation

TEC Technology table


WIR Wire table
VAR (not used)
SET Setting
OF FOffset

Geometry
Specify - if necessary - in these 5 fields the values of the parameters to be used for modifying the geometry
of the simulation

SCF Scale factor (positive value, from 0.1 to 100)


ROT Rotation angle of the part with respect to the machine axes (0 to 180°)
INV Inversion of X / Y axes
MIR X Y Mirror with respect to X axis / to Y axis
Rmin Fixing of a minimum radius for the salient corners

Offset
Activation /increase of the offset

TFE Activation of the Offset function


CLE Increase of the offset (mm)

Taper
Specification of taper machining

TRE Activation of the Taper function


UV Direct programming of movements of the U and V axes
HPA Height of the part (mm)
J Level of the reference plane (mm)
I Level of the secondary plane (mm)

Execution
Specifies the execution mode of the simulation

BLK Block by block execution


In order to continue: press the button Start/Resumption
OSP Activation of the Optional stops
BLD Activation of the execution of the optional blocks

Keys

Return to the conditions of the original "Context" parameters defined by default

Saving of the conditions of the current "Context" parameters (in an extension file .xcx)

CHARMILLES 140 000 957/E/08.04.2004 CT √ Graphic preview 9.11


Advanced Options page

Indicateur

This visual indicator has the following meanings :


- at rest : Default context (initial conditions)
- lit up : Some parameters have been modified, the context can be saved (Save
Context)

Context Access path and denomination of the file selected


(upper bar) previously (screen page Selection)

Travel limits
Specification of the maximum range of X Y Z U V movement on each axis (mm)

WP dimension
Dimensions of the rough part (workpiece)

X Width (mm)
Y Depth (mm)
Z Height (mm)

9.12 CT √ Graphic preview CHARMILLES 140 000 957/E/08.04.2004


WP start point
Coordinates of the start of the part (workpiece)

X Along X axis (mm)


Y Along Y axis (mm)
Z Along Z axis (mm)

Optional blocks
Declaration of execution of the optional blocks

/0 If the box is ticked: the blocks marked /0 will be executed


...
/9 If the box is ticked: the blocks marked /9 will be executed

Attachment parameter
Management of an attachment to hold the slug

Type Type of action desired : 0 : no attachment


1 : creation / holding of the attachment
2 : cutting of the attachment
Length Length of the attachment (mm)

Units
Unit of measurement

mm Dimensions expressed in mm
inch Dimensions expressed in inches

Exit
Mode of interpretation of the movements

Absolute Absolute coordinates


Incremental Incremental movements

Modal data
Displays the status of the adjustments of permanent type (modal)

Keys

Return to the conditions of the initial "Advanced Options" parameters defined by default

Saving of the conditions of the current "Advanced Options" parameters

In order to ensure application of the new values of the parameters defined in the "Context"
page and in "Advanced Options", it is necessary to execute the simulation once again
(Start button of the screen page Graphic Preview).

CHARMILLES 140 000 957/E/08.04.2004 CT √ Graphic preview 9.13


Draw Parameters page

Cuts parameters

Allocation of a color to each cut

Setting 1 Each setting has its corresponding


... rectangular field of the color currently
Setting 10 allocated to the drawing of this cut.

Clicking on this field displays a selection palette


of 16 colors.

A click on one of these 16 colors allocates it to


The cut selected.

Click on the button Cancel to close the palette and


go back to the screen page Draw Parameters.

9.14 CT √ Graphic preview CHARMILLES 140 000 957/E/08.04.2004


View design/program
Selection of the elements to be displayed

Secondary Activation of the plane (On/off) / selection of color


Reference Activation of the plane (On/off) / selection of color
Z Representation of the path to the height specified by Z (On/off) / selection of color
End of block End of block lines between the reference and secondary planes (On/off) / selection
of color
Wire diameter Representation of the wire with the diameter selected
Background color Selection of the screen background color by means of a palette of 48 colors.
Click on the button Cancel to close the palette.

Display icons
Selection of the symbols to be displayed

Offset active Display of the offset path


Start point Display of the starting points
Stop point Display of the stopping points
Wire cut Display of the points where the wire is cut
Wire threaded Display of the threading points

View Options
Selection of the presentation options

Coordinates Display of the workpiece axes


Scales Measurement scales
Grid Reference grid
Visual origin Coordinates of the origin
Visual coord. Coordinates of the current point

To ensure application of the new values of the parameters defined in the page "Draw Para-
meters", it is necessary to execute the simulation once again (Start button of the screen
page Graphic Preview).

The progress of the drawing's construction is materialized by a bar graph.

CHARMILLES 140 000 957/E/08.04.2004 CT √ Graphic preview 9.15


Alternative representations

Isometric display (XYZ)

To go into XYZ display: press the XY /XYZ switchover key.


By pressing the same key again, XY display is restored.

Full Screen page

To broaden the zone of graphic preview: press the Full Screen key.
A sub-set of control buttons is available on the right hand side of the screen.
To return to standard display: press the Normal Screen key.

9.16 CT √ Graphic preview CHARMILLES 140 000 957/E/08.04.2004


Show ISO page

To display the ISO code: press the Show ISO key.

Context Access path and denomination of the file selected


(upper bar) previously (screen page Exploration)

Counters The first counter contains the instruction number currently selected
The second counter contains the total number of instructions of the program

Buttons

Search for a character chain :


Enter the character chain being sought in the field alongside the button, then press Find :
- the section of program containing the first occurrence found is displayed
- the set of characters is highlighted (reverse video)
- the instruction number is displayed in the first counter
Changing the color for the screen background.
This button serves to switch the screen background alternatively between white or black.
In this case, the characters are written in green.

CHARMILLES 140 000 957/E/08.04.2004 CT √ Graphic preview 9.17


Log File page

The log of errors guides the user concerning the corrective actions to be carried out in the event of anoma-
lies in the interpretation of the code and the execution of the graphic simulation.

To display the protocol file for simulation (extension .log): press the Log File key.

Context Access path and denomination of the file selected


(upper bar) previously (screen page Selection)

Messages display zone

Information messages : black color Example : machining length on level of reference plane:xx.xxx mm
Maximum taper angle
Warning messages : orange color Example : No technology table selected
No threading command
Fatal error messages : red color Example : ISO syntax error

Button

Activates a window enabling the content of the Log File to be configured by using the tick
boxes (approx 80 different options)

9.18 CT √ Graphic preview CHARMILLES 140 000 957/E/08.04.2004

You might also like