[MAIN PART OF THE CFF] [MACHINE NAMES] Machine:Adtech Model:HC 4300 & HC4500 & HC 6500 Author:REZA BIDEL Company: cnc-services.ir [REVISION NUMBER] 0.1 [REVISION NOTES] 0.1 Original version [MAIN] {START OF FILE} {PROGRAM INIT} {VALIDATE PLATE} {OUTPUT PROFILES} {END OF FILE} [PROCESS NAMES] CUT1=Gas CUT2=Plasma CUT3=water jet [SECTION PART OF THE CFF] [START OF FILE] [PROGRAM INIT] {UNITS} {MODE} [UNITS] [MODE] IF $MODE=ABSOLUTE {LINENO :M}G92{INITPTX}{INITPTY} {LINENO :M}G90 ELSE {LINENO :M}G92{INITPTX}{INITPTY} {LINENO :M}G91 END [STEP AND REPEAT START] {LINENO :M}G21 L2 [STEP AND REPEAT END] {LINENO :M}G80 [VALIDATE PLATE] IF $VALIDATEPLATE = TRUE $X := $INITPTX $Y := $INITPTY IF $INITPTLOCATION = LOWERLEFT $X := $SHEETMAXX $Y := $SHEETMAXY ELSE IF $INITPTLOCATION = LOWERRIGHT $X := $SHEETMINX $Y := $SHEETMAXY ELSE IF $INITPTLOCATION = UPPERRIGHT $X := $SHEETMINX $Y := $SHEETMINY ELSE $X := $SHEETMAXX $Y := $SHEETMINY END END END $MOTION := DEFAULT $MOTION := {RAPID MOTION CODE} {RAPID MOTION} IF $INITPTLOCATION = LOWERLEFT $X := $SHEETMINX $Y := $SHEETMINY ELSE IF $INITPTLOCATION = LOWERRIGHT $X := $SHEETMAXX $Y := $SHEETMINY ELSE IF $INITPTLOCATION = UPPERRIGHT $X := $SHEETMAXX $Y := $SHEETMAXY ELSE $X := $SHEETMINX $Y := $SHEETMAXY END END END {RAPID MOTION} END [END OF FILE] {END OF PROGRAM} [END OF PROGRAM] IF $RETURNTOINIT=TRUE {LINEAR MOTION TO INIT} END M02 [LINEAR MOTION TO INIT] {LINENO :M}{INIT PT MOTION CODE:M}{RETURNINITPTX}{RETURNINITPTY} [CANCEL CURRENT OFFSET] IF $PROCESS=CUT1 {LINENO :M}G40 END IF $PROCESS=CUT2 {LINENO :M}G40 END IF $PROCESS=CUT3 {LINENO :M}G40 END [OUTPUT START INTERIOR PROFILE] IF $USELINENUMBERS = STARTOFPROFILE {NWORD} END {CANCEL PREVIOUS OFFSET} {ACTIVATE NEXT OFFSET} {PROCESS ON MOTION} [OUTPUT START EXTERIOR PROFILE] IF $USELINENUMBERS = STARTOFPROFILE {NWORD} END {CANCEL PREVIOUS OFFSET} {ACTIVATE NEXT OFFSET} {PROCESS ON MOTION} [OUTPUT START OPEN PROFILE] IF $USELINENUMBERS = STARTOFPROFILE {NWORD} END {CANCEL PREVIOUS OFFSET} {ACTIVATE NEXT OFFSET} {PROCESS ON MOTION} [OUTPUT START CROP] IF $USELINENUMBERS = STARTOFPROFILE {NWORD} END {CANCEL PREVIOUS OFFSET} {ACTIVATE NEXT OFFSET} {PROCESS ON MOTION} [OUTPUT END INTERIOR PROFILE] IF {KERF STILL ON} {KERF OFF} END [OUTPUT END EXTERIOR PROFILE] IF {KERF STILL ON} {KERF OFF} END [OUTPUT END OPEN PROFILE] IF {KERF STILL ON} {KERF OFF} END [OUTPUT END CROP] IF {KERF STILL ON} {KERF OFF} END [LINENO] MODAL_ARGUMENT=$LINENUMBER IF $USELINENUMBERS = EVERYLINE {NWORD} END [CHANGE OFFSETS] {CANCEL PREVIOUS OFFSET} {ACTIVATE CURRENT OFFSET} {ACTIVATE NEXT OFFSET} [CANCEL PREVIOUS OFFSET] IF $PROCESSONSTATE = TRUE && $PROCESS != $LASTPROCESS IF $LASTPROCESS=CUT1 {LINENO :M}G40 END IF $LASTPROCESS=CUT2 {LINENO :M}G40 END IF $LASTPROCESS=CUT3 {LINENO :M}G40 END ELSE IF $PROCESSONSTATE = FALSE && $PROCESS != $NEXTPROCESS {CANCEL CURRENT OFFSET} END END [ACTIVATE CURRENT OFFSET] IF $PROCESS != $LASTPROCESS IF ($PROCESS=CUT1 || $PROCESS=CUT2 || $PROCESS=CUT3) && $STOPBEFORECUT = TRUE {OUTPUT STOP} END END [ACTIVATE NEXT OFFSET] IF $PROCESS != $NEXTPROCESS IF ($NEXTPROCESS=CUT1 || $NEXTPROCESS=CUT2 || $NEXTPROCESS=CUT3) && $STOPBEFORECUT = TRUE {OUTPUT STOP} END END [PROCESS MOTION CODE] IF {SURPASSES RAPID THRESHOLD} {RAPID MOTION CODE} ELSE {LINEAR MOTION CODE} END [PROCESS ON MOTION] IF {MOTION REQUIRED} $MOTION := {PROCESS MOTION CODE} IF {SURPASSES RAPID THRESHOLD} {RAPID MOTION} ELSE {LINENO :M}{LINEAR MOTION CODE :M}{CURRENTX :M}{CURRENTY :M} END END [RAPID MOTION] {LINENO :M}{RAPID MOTION CODE :M}{CURRENTX :M}{CURRENTY :M} [LINEAR MOTION] IF {RAPID MOTION ALLOWED} {RAPID MOTION} ELSE {ADD KERF VALUE} {LINENO :M}{LINEAR MOTION CODE :M}{CURRENTX :M}{CURRENTY :M} END [CLOCKWISE MOTION] IF {ARC TOO SMALL} {LINEAR MOTION} ELSE {ADD KERF VALUE} {LINENO :M}{CLOCKWISE MOTION CODE :M}{CURRENTX :M}{CURRENTY :M}{CURRENTI}{CURRENTJ} END [COUNTERCLOCKWISE MOTION] IF {ARC TOO SMALL} {LINEAR MOTION} ELSE {ADD KERF VALUE} {LINENO :M}{COUNTERCLOCKWISE MOTION CODE :M}{CURRENTX :M}{CURRENTY :M}{CURRENTI}{CURRENTJ} END [RAPID MOTION CODE] MODAL_ARGUMENT=$MOTION G00 [LINEAR MOTION CODE] IF {RAPID MOTION ALLOWED} {RAPID MOTION CODE} ELSE MODAL_ARGUMENT=$MOTION G01 END [CLOCKWISE MOTION CODE] IF {ARC TOO SMALL} {LINEAR MOTION CODE} ELSE MODAL_ARGUMENT=$MOTION G02 END [COUNTERCLOCKWISE MOTION CODE] IF {ARC TOO SMALL} {LINEAR MOTION CODE} ELSE MODAL_ARGUMENT=$MOTION G03 END [INIT PT MOTION CODE] IF {RAPID INIT MOTION ALLOWED} {RAPID MOTION CODE} ELSE MODAL_ARGUMENT=$MOTION G01 END [ADD KERF VALUE] IF $KERF > 0.0 && $KERF != $LASTKERF IF $KERFDIR=LEFT || $KERFDIR=RIGHT {KERF DIRECTION} $KERF:=$KERF END END [OUTPUT KERF LEFT] IF $KERF <= 0 {LINENO :M}G41 END [OUTPUT KERF RIGHT] IF $KERF <= 0 {LINENO :M}G42 END [OUTPUT KERF OFF] {LINENO :M}G40 [KERF OFF] {OUTPUT KERF OFF} [KERF DIRECTION] IF ($PROCESS != CUT1) && ($PROCESS != CUT2) && ($PROCESS != CUT3) IF $KERFDIR = LEFT {OUTPUT KERF LEFT} ELSE {OUTPUT KERF RIGHT} END IF $KERFDIR = RIGHT {OUTPUT KERF RIGHT} ELSE {OUTPUT KERF LEFT} END IF $KERFDIR = OFF {OUTPUT KERF OFF} END END [OUTPUT STOP] [OUTPUT AHCON] [OUTPUT AHCOFF] [OUTPUT CUT1 ON] {LINENO :M}M07 [OUTPUT CUT1 OFF] {LINENO :M}M08 [OUTPUT CUT1 OFFUP] {LINENO :M}M08 [OUTPUT CUT2 ON] {LINENO :M}M07 [OUTPUT CUT2 OFF] {LINENO :M}M08 [OUTPUT CUT2 OFFUP] {LINENO :M}M08 [OUTPUT CUT3 ON] {LINENO :M}M07 [OUTPUT CUT3 OFF] {LINENO :M}M08 [OUTPUT CUT3 OFFUP] {LINENO :M}M08 [COMMENT FORMAT] (%s) [FORMAT PART OF THE CFF] [INITPTX] ARGUMENT=($INITPTX - $INITPTX) * $CONVERSION FORMAT=X%1.2lf [INITPTY] ARGUMENT=($INITPTY - $INITPTY) * $CONVERSION FORMAT=Y%1.2lf [CONVERSION] IF $UNITS=INCH 1.00 ELSE 25.40 END [RETURNINITPTX] IF $MODE=ABSOLUTE ARGUMENT=($INITPTX-$INITPTX) * $CONVERSION * $XYIJDECIMALSHIFT ELSE ARGUMENT=($INITPTX - $X) * $CONVERSION * $XYIJDECIMALSHIFT END FORMAT=X{XY FORMAT} [RETURNINITPTY] IF $MODE=ABSOLUTE ARGUMENT=($INITPTY-$INITPTY) * $CONVERSION * $XYIJDECIMALSHIFT ELSE ARGUMENT=($INITPTY - $Y) * $CONVERSION * $XYIJDECIMALSHIFT END FORMAT=Y{XY FORMAT} [NWORD] FORMAT=N%01d ARGUMENT=$LINENUMBER [XY FORMAT] IF $PRECISION=NORMAL %1.2lf ELSE %1.3lf END [IJ FORMAT] IF $PRECISION=NORMAL %1.2lf ELSE %1.3lf END [DWELL FORMAT] %1.2lf [XYIJ DECIMAL SHIFT] 1 [KERF DECIMAL SHIFT] 1 [DWELL DECIMAL SHIFT] 1 [ANGLE DECIMAL SHIFT] 0 [CURRENTX] MODAL_ARGUMENT=$X IF $MODE=ABSOLUTE ARGUMENT=($X - $INITPTX) * $CONVERSION * $XYIJDECIMALSHIFT ELSE ARGUMENT=($X - $LASTX) * $CONVERSION * $XYIJDECIMALSHIFT END FORMAT=X{XY FORMAT} [CURRENTY] MODAL_ARGUMENT=$Y IF $MODE=ABSOLUTE ARGUMENT=($Y - $INITPTY) * $CONVERSION * $XYIJDECIMALSHIFT ELSE ARGUMENT=($Y - $LASTY) * $CONVERSION * $XYIJDECIMALSHIFT END FORMAT=Y{XY FORMAT} [CURRENTI] IF $MODE=ABSOLUTE ARGUMENT=($I - $INITPTX) * $CONVERSION * $XYIJDECIMALSHIFT ELSE ARGUMENT=($I - $LASTX) * $CONVERSION * $XYIJDECIMALSHIFT END FORMAT=I{IJ FORMAT} [CURRENTJ] IF $MODE=ABSOLUTE ARGUMENT=($J - $INITPTY) * $CONVERSION * $XYIJDECIMALSHIFT ELSE ARGUMENT=($J - $LASTY) * $CONVERSION * $XYIJDECIMALSHIFT END FORMAT=J{IJ FORMAT} [KERF VALUE] MODAL_ARGUMENT=$KERF ARGUMENT=$KERF * $CONVERSION * $KERFDECIMALSHIFT FORMAT=K%1.3f [OUTPUT DWELL] ARGUMENT=$DWELL * $DWELLDECIMALSHIFT FORMAT={LINENO :M}G04P{DWELL FORMAT} [CONDITIONS PART OF THE CFF] [MAXLINENO] 50000 [KERF STILL ON] $KERFDIR = LEFT || $KERFDIR = RIGHT [MOTION REQUIRED] (($X - $LASTX)^2 + ($Y - $LASTY)^2)^0.5 > 0.00001 [RAPID MOTION ALLOWED] {SURPASSES RAPID THRESHOLD} && $PROCESSONSTATE = FALSE [SURPASSES RAPID THRESHOLD] (($X - $LASTX)^2 + ($Y - $LASTY)^2)^0.5 > $RAPIDDISTANCE [ARC TOO SMALL] {ARC RADIUS} < 0.010000 || ({CHORD LENGTH} > 0.01 && {CHORD LENGTH} < 0.011000 && $ARCANGLE < 180) [RAPID INIT MOTION ALLOWED] (($X - $INITPTX)^2 + ($Y - $INITPTY)^2)^0.5 > $RAPIDDISTANCE && $PROCESSONSTATE = FALSE [ARC RADIUS] (($I - $LASTX)^2 + ($J - $LASTY)^2)^0.5 [CHORD LENGTH] (($X - $LASTX)^2 + ($Y - $LASTY)^2)^0.5 [USER DEFINED VARIABLES] SAVEPARTNAME|STRING|0 SAVENUM|INTEGER|0 RAPIDDISTANCE|DOUBLE|0.0100 DX|DOUBLE|0.0 DY|DOUBLE|0.0 KERF|DOUBLE|0.0 AHCDISABLED|INTEGER|0 DISABLEAHC|INTEGER|0