Доброго времени суток.
К сути.
Есть станок, работает на маче.
Работает из под пронест.
Возможно ли поправить в шиткам пост процес для того что бы станок его хавал, и что для этог нужно.
Спасибо всем кто поучаствует.
Вопрос от дилетанта.
- Евгений+++
- Мастер
- Сообщения: 1595
- Зарегистрирован: 19 авг 2015, 14:18
- Репутация: 176
- Настоящее имя: Евгений
- Откуда: Воронеж.., пока что
- Контактная информация:
Вопрос от дилетанта.
- Жене сказал, что пошел к любовнице, любовнице сказал, что пошел к
жене, а сам взял книжки, залез на чердак и учиться, учиться, учиться.
-------------------------------------------------------------------------------------------
Дайте мне собственный гольф-клуб, свежий воздух и красивую женщину в
партнеры – и можете оставить гольф-клуб и свежий воздух себе.
жене, а сам взял книжки, залез на чердак и учиться, учиться, учиться.
-------------------------------------------------------------------------------------------
Дайте мне собственный гольф-клуб, свежий воздух и красивую женщину в
партнеры – и можете оставить гольф-клуб и свежий воздух себе.
-
Евжений
- Мастер
- Сообщения: 1168
- Зарегистрирован: 05 апр 2016, 20:18
- Репутация: 136
- Настоящее имя: Жэзэрэл
- Откуда: Там, сям.
- Контактная информация:
Re: Вопрос от дилетанта.
Правится в текстовом редакторе. Есть встроенный редактор в шиткаме. Можно во внешнем.Евгений+++ писал(а):Возможно ли поправить в шиткам пост процес для того что бы станок его хавал, и что для этог нужно.
Блин, речь про pronest. Но там тоже самое.
Поиск
ВК https://vk.com/id353124059
О Боже, дай мне .... пендель!
О Боже, дай мне .... пендель!
- Евгений+++
- Мастер
- Сообщения: 1595
- Зарегистрирован: 19 авг 2015, 14:18
- Репутация: 176
- Настоящее имя: Евгений
- Откуда: Воронеж.., пока что
- Контактная информация:
Re: Вопрос от дилетанта.
в шите постпроцес в блокноте открыл, все более менее.
А в проесте Хл таблица.
А в проесте Хл таблица.
- Жене сказал, что пошел к любовнице, любовнице сказал, что пошел к
жене, а сам взял книжки, залез на чердак и учиться, учиться, учиться.
-------------------------------------------------------------------------------------------
Дайте мне собственный гольф-клуб, свежий воздух и красивую женщину в
партнеры – и можете оставить гольф-клуб и свежий воздух себе.
жене, а сам взял книжки, залез на чердак и учиться, учиться, учиться.
-------------------------------------------------------------------------------------------
Дайте мне собственный гольф-клуб, свежий воздух и красивую женщину в
партнеры – и можете оставить гольф-клуб и свежий воздух себе.
- Евгений+++
- Мастер
- Сообщения: 1595
- Зарегистрирован: 19 авг 2015, 14:18
- Репутация: 176
- Настоящее имя: Евгений
- Откуда: Воронеж.., пока что
- Контактная информация:
Re: Вопрос от дилетанта.
Доброго времени суток.
Скидываю пост процесс от пронест.
Где поправить что бы не притормажиал перед завершением реза каждого элемента. ( не дорезает 1 см. делает паузу.)
2. Не корректно видит дуги, меняет их размер или сплайн пытается пребразовать в дуги.
ТЕКСТ.
[MAIN PART OF THE CFF]
[MACHINE NAMES]
Machine:
Model:
Customer:
[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
SCRIBE1=Scribe-G
SCRIBE2=Scribe-P
PUNCH1=Punch-G
PUNCH2=Punch-P
[SECTION PART OF THE CFF]
[START OF FILE]
%
[PROGRAM INIT]
{UNITS}
{MODE}
[UNITS]
IF $UNITS=INCH
{LINENO :M}G70
ELSE
{LINENO :M}G71
END
[MODE]
IF $MODE=ABSOLUTE
{LINENO :M}G90
{LINENO :M}G92{INITPTX}{INITPTY}
ELSE
{LINENO :M}G91
END
[STEP AND REPEAT START]
{LINENO :M}G97
[STEP AND REPEAT END]
{LINENO :M}G98
[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]
{CANCEL CURRENT OFFSET}
{END OF PROGRAM}
[END OF PROGRAM]
IF $RETURNTOINIT=TRUE
{LINEAR MOTION TO INIT}
END
M30
[LINEAR MOTION TO INIT]
{LINENO :M}{INIT PT MOTION CODE:M}{RETURNINITPTX}{RETURNINITPTY}
[CANCEL CURRENT OFFSET]
IF $PROCESS=SCRIBE1
{LINENO :M}M70
END
IF $PROCESS=SCRIBE2
{LINENO :M}M72
END
[OUTPUT START INTERIOR PROFILE]
IF $USELINENUMBERS = STARTOFPROFILE
{NWORD}
END
{CANCEL PREVIOUS OFFSET}
{OUTPUT TORCH SPACING}
{ACTIVATE NEXT OFFSET}
{PROCESS ON MOTION}
END
[OUTPUT START EXTERIOR PROFILE]
IF $USELINENUMBERS = STARTOFPROFILE
{NWORD}
END
{CANCEL PREVIOUS OFFSET}
{OUTPUT TORCH SPACING}
{ACTIVATE NEXT OFFSET}
{PROCESS ON MOTION}
END
[OUTPUT START OPEN PROFILE]
IF $USELINENUMBERS = STARTOFPROFILE
{NWORD}
END
{CANCEL PREVIOUS OFFSET}
{OUTPUT TORCH SPACING}
{ACTIVATE NEXT OFFSET}
{PROCESS ON MOTION}
END
[OUTPUT START CROP]
IF $USELINENUMBERS = STARTOFPROFILE
{NWORD}
END
{CANCEL PREVIOUS OFFSET}
{OUTPUT TORCH SPACING}
{ACTIVATE NEXT OFFSET}
{PROCESS ON MOTION}
END
[OUTPUT TORCH SPACING]
IF {TORCH SPACING REQUIRED}
IF $NUMTORCHES = 1 || $NUMTORCHES = 0
(Set 1 torch.)
{OUTPUT STOP}
ELSE
(Set {NUMTORCHES} torches at {TORCHSPACING}{TORCHUNITS}.)
{OUTPUT STOP}
END
END
[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
[PART SEQUENCE NUMBER]
ARGUMENT=$PARTSEQUENCENUMBER
FORMAT=%d
[CHANGE OFFSETS]
{CANCEL PREVIOUS OFFSET}
{ACTIVATE CURRENT OFFSET}
[CANCEL PREVIOUS OFFSET]
IF $PROCESSONSTATE = TRUE && $PROCESS != $LASTPROCESS
IF $LASTPROCESS=SCRIBE1
{LINENO :M}M70
END
IF $LASTPROCESS=SCRIBE2
{LINENO :M}M72
END
ELSE
IF $PROCESSONSTATE = FALSE && $PROCESS != $NEXTPROCESS
{CANCEL CURRENT OFFSET}
END
END
[ACTIVATE CURRENT OFFSET]
IF $PROCESS != $LASTPROCESS
IF ($PROCESS=PUNCH1 || $PROCESS=PUNCH2 || $PROCESS=PUNCH3 || $PROCESS=PUNCH4 || $PROCESS=PUNCH5 || $PROCESS=PUNCH6) && $STOPBEFOREPUNCH = TRUE
{OUTPUT STOP}
ELSE
IF ($PROCESS=SCRIBE1 || $PROCESS=SCRIBE2) && $STOPBEFORESCRIBE = TRUE
{OUTPUT STOP}
ELSE
IF ($PROCESS=CUT1 || $PROCESS=CUT2 || $PROCESS=CUT3) && $STOPBEFORECUT = TRUE
{OUTPUT STOP}
END
END
END
IF $PROCESS=SCRIBE1
{LINENO :M}M71
END
IF $PROCESS=SCRIBE2
{LINENO :M}M73
END
END
[ACTIVATE NEXT OFFSET]
IF $PROCESS != $NEXTPROCESS
IF ($NEXTPROCESS=PUNCH1 || $NEXTPROCESS=PUNCH2 || $NEXTPROCESS=PUNCH3 || $NEXTPROCESS=PUNCH4 || $NEXTPROCESS=PUNCH5 || $NEXTPROCESS=PUNCH6) && $STOPBEFOREPUNCH = TRUE
{OUTPUT STOP}
ELSE
IF ($NEXTPROCESS=SCRIBE1 || $NEXTPROCESS=SCRIBE2) && $STOPBEFORESCRIBE = TRUE
{OUTPUT STOP}
ELSE
IF ($NEXTPROCESS=CUT1 || $NEXTPROCESS=CUT2 || $NEXTPROCESS=CUT3) && $STOPBEFORECUT = TRUE
{OUTPUT STOP}
END
END
END
IF $NEXTPROCESS=SCRIBE1
{LINENO :M}M71
END
IF $NEXTPROCESS=SCRIBE2
{LINENO :M}M73
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
{FEEDRATE LINE}
{ADD KERF VALUE}
{LINENO :M}{LINEAR MOTION CODE :M}{CURRENTX :M}{CURRENTY :M}
END
[CLOCKWISE MOTION]
IF {ARC TOO SMALL}
{LINEAR MOTION}
ELSE
{FEEDRATE LINE}
{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
{FEEDRATE LINE}
{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 FEEDRATE]
IF $FEEDRATE > 0.0 && $FEEDRATE != $LASTFEEDRATE
{FEEDRATE :M}
$FEEDRATE:=$FEEDRATE
END
[FEEDRATE LINE]
IF $FEEDRATE > 0.0 && $FEEDRATE != $LASTFEEDRATE
{LINENO :M}{FEEDRATE :M}
$FEEDRATE:=$FEEDRATE
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
ELSE
{LINENO :M}G41{KERF VALUE :M}
$KERF:=$KERF
END
[OUTPUT KERF RIGHT]
IF $KERF <= 0
{LINENO :M}G42
ELSE
{LINENO :M}G42{KERF VALUE :M}
$KERF:=$KERF
END
[OUTPUT KERF OFF]
{LINENO :M}G40
[KERF OFF]
{OUTPUT KERF OFF}
[KERF DIRECTION]
IF ($PROCESS != SCRIBE1) && ($PROCESS != SCRIBE2)
IF $KERFDIR = LEFT
{OUTPUT KERF LEFT}
END
IF $KERFDIR = RIGHT
{OUTPUT KERF RIGHT}
END
IF $KERFDIR = OFF
{OUTPUT KERF OFF}
END
END
[OUTPUT STOP]
{LINENO :M}M00
[OUTPUT AHCON]
IF $AHCDISABLED = 0
{LINENO :M}M15
END
[OUTPUT AHCOFF]
IF $AHCDISABLED = 0
{LINENO :M}M14
END
[OUTPUT CUT1 ON]
{FEEDRATE LINE}
{LINENO :M}M04
[OUTPUT CUT1 OFF]
{LINENO :M}M03
$KERF:=0.0
$FEEDRATE:=0.0
[OUTPUT CUT1 OFFUP]
{LINENO :M}M03
$KERF:=0.0
$FEEDRATE:=0.0
[OUTPUT CUT2 ON]
{FEEDRATE LINE}
{LINENO :M}M21
IF $DISABLEAHC = 1
{OUTPUT AHCOFF}
$AHCDISABLED := 1
END
[OUTPUT CUT2 OFF]
{LINENO :M}M20
IF $DISABLEAHC = 1
$AHCDISABLED := 0
{OUTPUT AHCON}
END
$KERF:=0.0
$FEEDRATE:=0.0
[OUTPUT CUT2 OFFUP]
{LINENO :M}M20
IF $DISABLEAHC = 1
$AHCDISABLED := 0
{OUTPUT AHCON}
END
$KERF:=0.0
$FEEDRATE:=0.0
[OUTPUT SCRIBE1 ON]
IF $USELINENUMBERS = STARTOFPROFILE
{NWORD}
END
{CHANGE OFFSETS}
{PROCESS ON MOTION}
END
{LINENO :M}M08
[OUTPUT SCRIBE1 OFF]
{LINENO :M}M07
$KERF:=0.0
$FEEDRATE:=0.0
[OUTPUT SCRIBE2 ON]
IF $USELINENUMBERS = STARTOFPROFILE
{NWORD}
END
{CHANGE OFFSETS}
{PROCESS ON MOTION}
END
{LINENO :M}M10
[OUTPUT SCRIBE2 OFF]
{LINENO :M}M09
$KERF:=0.0
$FEEDRATE:=0.0
[OUTPUT PUNCH1 ON]
IF $USELINENUMBERS = STARTOFPROFILE
{NWORD}
END
{CHANGE OFFSETS}
{PROCESS ON MOTION}
END
{LINENO :M}M08
{LINENO :M}G04F0.5
{LINENO :M}M07
$KERF:=0.0
$FEEDRATE:=0.0
[OUTPUT PUNCH2 ON]
IF $USELINENUMBERS = STARTOFPROFILE
{NWORD}
END
{CHANGE OFFSETS}
{PROCESS ON MOTION}
END
{LINENO :M}M10
{LINENO :M}G04F0.5
{LINENO :M}M09
$KERF:=0.0
$FEEDRATE:=0.0
[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
[NUMTORCHES]
ARGUMENT=$NUMTORCHES
FORMAT=%d
[TORCHSPACING]
ARGUMENT=$TORCHSPACING * $CONVERSION
FORMAT=%1.3lf
[TORCHUNITS]
IF $UNITS = INCH
in
ELSE
mm
END
[XY FORMAT]
IF $PRECISION=NORMAL
%1.2lf
ELSE
%1.3lf
END
[IJ FORMAT]
IF $PRECISION=NORMAL
%1.2lf
ELSE
%1.3lf
END
[FEEDRATE FORMAT]
IF $UNITS=INCH
%1.1lf
ELSE
%1.0lf
END
[DWELL FORMAT]
%1.2lf
[XYIJ DECIMAL SHIFT]
1
[FEEDRATE 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}
[FEEDRATE]
MODAL_ARGUMENT=$FEEDRATE
ARGUMENT=$FEEDRATE * $CONVERSION * $FEEDRATEDECIMALSHIFT
FORMAT=F{FEEDRATE FORMAT}
[KERF VALUE]
MODAL_ARGUMENT=$KERF
ARGUMENT=$KERF * $CONVERSION * $KERFDECIMALSHIFT
FORMAT=K%1.3f
[OUTPUT DWELL]
ARGUMENT=$DWELL * $DWELLDECIMALSHIFT
FORMAT={LINENO :M}G04F{DWELL FORMAT}
[CONDITIONS PART OF THE CFF]
[MAXLINENO]
9999
[TORCH SPACING REQUIRED]
($TORCHSPACING != $PREVTORCHSPACING || $NUMTORCHES != $PREVNUMTORCHES)
[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]
SAVENUM|INTEGER|0
RAPIDDISTANCE|DOUBLE|0.0100
DX|DOUBLE|0.0
DY|DOUBLE|0.0
KERF|DOUBLE|0.0
FEEDRATE|DOUBLE|0.0
AHCDISABLED|INTEGER|0
DISABLEAHC|INTEGER|0
Скидываю пост процесс от пронест.
Где поправить что бы не притормажиал перед завершением реза каждого элемента. ( не дорезает 1 см. делает паузу.)
2. Не корректно видит дуги, меняет их размер или сплайн пытается пребразовать в дуги.
ТЕКСТ.
[MAIN PART OF THE CFF]
[MACHINE NAMES]
Machine:
Model:
Customer:
[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
SCRIBE1=Scribe-G
SCRIBE2=Scribe-P
PUNCH1=Punch-G
PUNCH2=Punch-P
[SECTION PART OF THE CFF]
[START OF FILE]
%
[PROGRAM INIT]
{UNITS}
{MODE}
[UNITS]
IF $UNITS=INCH
{LINENO :M}G70
ELSE
{LINENO :M}G71
END
[MODE]
IF $MODE=ABSOLUTE
{LINENO :M}G90
{LINENO :M}G92{INITPTX}{INITPTY}
ELSE
{LINENO :M}G91
END
[STEP AND REPEAT START]
{LINENO :M}G97
[STEP AND REPEAT END]
{LINENO :M}G98
[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]
{CANCEL CURRENT OFFSET}
{END OF PROGRAM}
[END OF PROGRAM]
IF $RETURNTOINIT=TRUE
{LINEAR MOTION TO INIT}
END
M30
[LINEAR MOTION TO INIT]
{LINENO :M}{INIT PT MOTION CODE:M}{RETURNINITPTX}{RETURNINITPTY}
[CANCEL CURRENT OFFSET]
IF $PROCESS=SCRIBE1
{LINENO :M}M70
END
IF $PROCESS=SCRIBE2
{LINENO :M}M72
END
[OUTPUT START INTERIOR PROFILE]
IF $USELINENUMBERS = STARTOFPROFILE
{NWORD}
END
{CANCEL PREVIOUS OFFSET}
{OUTPUT TORCH SPACING}
{ACTIVATE NEXT OFFSET}
{PROCESS ON MOTION}
END
[OUTPUT START EXTERIOR PROFILE]
IF $USELINENUMBERS = STARTOFPROFILE
{NWORD}
END
{CANCEL PREVIOUS OFFSET}
{OUTPUT TORCH SPACING}
{ACTIVATE NEXT OFFSET}
{PROCESS ON MOTION}
END
[OUTPUT START OPEN PROFILE]
IF $USELINENUMBERS = STARTOFPROFILE
{NWORD}
END
{CANCEL PREVIOUS OFFSET}
{OUTPUT TORCH SPACING}
{ACTIVATE NEXT OFFSET}
{PROCESS ON MOTION}
END
[OUTPUT START CROP]
IF $USELINENUMBERS = STARTOFPROFILE
{NWORD}
END
{CANCEL PREVIOUS OFFSET}
{OUTPUT TORCH SPACING}
{ACTIVATE NEXT OFFSET}
{PROCESS ON MOTION}
END
[OUTPUT TORCH SPACING]
IF {TORCH SPACING REQUIRED}
IF $NUMTORCHES = 1 || $NUMTORCHES = 0
(Set 1 torch.)
{OUTPUT STOP}
ELSE
(Set {NUMTORCHES} torches at {TORCHSPACING}{TORCHUNITS}.)
{OUTPUT STOP}
END
END
[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
[PART SEQUENCE NUMBER]
ARGUMENT=$PARTSEQUENCENUMBER
FORMAT=%d
[CHANGE OFFSETS]
{CANCEL PREVIOUS OFFSET}
{ACTIVATE CURRENT OFFSET}
[CANCEL PREVIOUS OFFSET]
IF $PROCESSONSTATE = TRUE && $PROCESS != $LASTPROCESS
IF $LASTPROCESS=SCRIBE1
{LINENO :M}M70
END
IF $LASTPROCESS=SCRIBE2
{LINENO :M}M72
END
ELSE
IF $PROCESSONSTATE = FALSE && $PROCESS != $NEXTPROCESS
{CANCEL CURRENT OFFSET}
END
END
[ACTIVATE CURRENT OFFSET]
IF $PROCESS != $LASTPROCESS
IF ($PROCESS=PUNCH1 || $PROCESS=PUNCH2 || $PROCESS=PUNCH3 || $PROCESS=PUNCH4 || $PROCESS=PUNCH5 || $PROCESS=PUNCH6) && $STOPBEFOREPUNCH = TRUE
{OUTPUT STOP}
ELSE
IF ($PROCESS=SCRIBE1 || $PROCESS=SCRIBE2) && $STOPBEFORESCRIBE = TRUE
{OUTPUT STOP}
ELSE
IF ($PROCESS=CUT1 || $PROCESS=CUT2 || $PROCESS=CUT3) && $STOPBEFORECUT = TRUE
{OUTPUT STOP}
END
END
END
IF $PROCESS=SCRIBE1
{LINENO :M}M71
END
IF $PROCESS=SCRIBE2
{LINENO :M}M73
END
END
[ACTIVATE NEXT OFFSET]
IF $PROCESS != $NEXTPROCESS
IF ($NEXTPROCESS=PUNCH1 || $NEXTPROCESS=PUNCH2 || $NEXTPROCESS=PUNCH3 || $NEXTPROCESS=PUNCH4 || $NEXTPROCESS=PUNCH5 || $NEXTPROCESS=PUNCH6) && $STOPBEFOREPUNCH = TRUE
{OUTPUT STOP}
ELSE
IF ($NEXTPROCESS=SCRIBE1 || $NEXTPROCESS=SCRIBE2) && $STOPBEFORESCRIBE = TRUE
{OUTPUT STOP}
ELSE
IF ($NEXTPROCESS=CUT1 || $NEXTPROCESS=CUT2 || $NEXTPROCESS=CUT3) && $STOPBEFORECUT = TRUE
{OUTPUT STOP}
END
END
END
IF $NEXTPROCESS=SCRIBE1
{LINENO :M}M71
END
IF $NEXTPROCESS=SCRIBE2
{LINENO :M}M73
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
{FEEDRATE LINE}
{ADD KERF VALUE}
{LINENO :M}{LINEAR MOTION CODE :M}{CURRENTX :M}{CURRENTY :M}
END
[CLOCKWISE MOTION]
IF {ARC TOO SMALL}
{LINEAR MOTION}
ELSE
{FEEDRATE LINE}
{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
{FEEDRATE LINE}
{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 FEEDRATE]
IF $FEEDRATE > 0.0 && $FEEDRATE != $LASTFEEDRATE
{FEEDRATE :M}
$FEEDRATE:=$FEEDRATE
END
[FEEDRATE LINE]
IF $FEEDRATE > 0.0 && $FEEDRATE != $LASTFEEDRATE
{LINENO :M}{FEEDRATE :M}
$FEEDRATE:=$FEEDRATE
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
ELSE
{LINENO :M}G41{KERF VALUE :M}
$KERF:=$KERF
END
[OUTPUT KERF RIGHT]
IF $KERF <= 0
{LINENO :M}G42
ELSE
{LINENO :M}G42{KERF VALUE :M}
$KERF:=$KERF
END
[OUTPUT KERF OFF]
{LINENO :M}G40
[KERF OFF]
{OUTPUT KERF OFF}
[KERF DIRECTION]
IF ($PROCESS != SCRIBE1) && ($PROCESS != SCRIBE2)
IF $KERFDIR = LEFT
{OUTPUT KERF LEFT}
END
IF $KERFDIR = RIGHT
{OUTPUT KERF RIGHT}
END
IF $KERFDIR = OFF
{OUTPUT KERF OFF}
END
END
[OUTPUT STOP]
{LINENO :M}M00
[OUTPUT AHCON]
IF $AHCDISABLED = 0
{LINENO :M}M15
END
[OUTPUT AHCOFF]
IF $AHCDISABLED = 0
{LINENO :M}M14
END
[OUTPUT CUT1 ON]
{FEEDRATE LINE}
{LINENO :M}M04
[OUTPUT CUT1 OFF]
{LINENO :M}M03
$KERF:=0.0
$FEEDRATE:=0.0
[OUTPUT CUT1 OFFUP]
{LINENO :M}M03
$KERF:=0.0
$FEEDRATE:=0.0
[OUTPUT CUT2 ON]
{FEEDRATE LINE}
{LINENO :M}M21
IF $DISABLEAHC = 1
{OUTPUT AHCOFF}
$AHCDISABLED := 1
END
[OUTPUT CUT2 OFF]
{LINENO :M}M20
IF $DISABLEAHC = 1
$AHCDISABLED := 0
{OUTPUT AHCON}
END
$KERF:=0.0
$FEEDRATE:=0.0
[OUTPUT CUT2 OFFUP]
{LINENO :M}M20
IF $DISABLEAHC = 1
$AHCDISABLED := 0
{OUTPUT AHCON}
END
$KERF:=0.0
$FEEDRATE:=0.0
[OUTPUT SCRIBE1 ON]
IF $USELINENUMBERS = STARTOFPROFILE
{NWORD}
END
{CHANGE OFFSETS}
{PROCESS ON MOTION}
END
{LINENO :M}M08
[OUTPUT SCRIBE1 OFF]
{LINENO :M}M07
$KERF:=0.0
$FEEDRATE:=0.0
[OUTPUT SCRIBE2 ON]
IF $USELINENUMBERS = STARTOFPROFILE
{NWORD}
END
{CHANGE OFFSETS}
{PROCESS ON MOTION}
END
{LINENO :M}M10
[OUTPUT SCRIBE2 OFF]
{LINENO :M}M09
$KERF:=0.0
$FEEDRATE:=0.0
[OUTPUT PUNCH1 ON]
IF $USELINENUMBERS = STARTOFPROFILE
{NWORD}
END
{CHANGE OFFSETS}
{PROCESS ON MOTION}
END
{LINENO :M}M08
{LINENO :M}G04F0.5
{LINENO :M}M07
$KERF:=0.0
$FEEDRATE:=0.0
[OUTPUT PUNCH2 ON]
IF $USELINENUMBERS = STARTOFPROFILE
{NWORD}
END
{CHANGE OFFSETS}
{PROCESS ON MOTION}
END
{LINENO :M}M10
{LINENO :M}G04F0.5
{LINENO :M}M09
$KERF:=0.0
$FEEDRATE:=0.0
[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
[NUMTORCHES]
ARGUMENT=$NUMTORCHES
FORMAT=%d
[TORCHSPACING]
ARGUMENT=$TORCHSPACING * $CONVERSION
FORMAT=%1.3lf
[TORCHUNITS]
IF $UNITS = INCH
in
ELSE
mm
END
[XY FORMAT]
IF $PRECISION=NORMAL
%1.2lf
ELSE
%1.3lf
END
[IJ FORMAT]
IF $PRECISION=NORMAL
%1.2lf
ELSE
%1.3lf
END
[FEEDRATE FORMAT]
IF $UNITS=INCH
%1.1lf
ELSE
%1.0lf
END
[DWELL FORMAT]
%1.2lf
[XYIJ DECIMAL SHIFT]
1
[FEEDRATE 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}
[FEEDRATE]
MODAL_ARGUMENT=$FEEDRATE
ARGUMENT=$FEEDRATE * $CONVERSION * $FEEDRATEDECIMALSHIFT
FORMAT=F{FEEDRATE FORMAT}
[KERF VALUE]
MODAL_ARGUMENT=$KERF
ARGUMENT=$KERF * $CONVERSION * $KERFDECIMALSHIFT
FORMAT=K%1.3f
[OUTPUT DWELL]
ARGUMENT=$DWELL * $DWELLDECIMALSHIFT
FORMAT={LINENO :M}G04F{DWELL FORMAT}
[CONDITIONS PART OF THE CFF]
[MAXLINENO]
9999
[TORCH SPACING REQUIRED]
($TORCHSPACING != $PREVTORCHSPACING || $NUMTORCHES != $PREVNUMTORCHES)
[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]
SAVENUM|INTEGER|0
RAPIDDISTANCE|DOUBLE|0.0100
DX|DOUBLE|0.0
DY|DOUBLE|0.0
KERF|DOUBLE|0.0
FEEDRATE|DOUBLE|0.0
AHCDISABLED|INTEGER|0
DISABLEAHC|INTEGER|0
- Жене сказал, что пошел к любовнице, любовнице сказал, что пошел к
жене, а сам взял книжки, залез на чердак и учиться, учиться, учиться.
-------------------------------------------------------------------------------------------
Дайте мне собственный гольф-клуб, свежий воздух и красивую женщину в
партнеры – и можете оставить гольф-клуб и свежий воздух себе.
жене, а сам взял книжки, залез на чердак и учиться, учиться, учиться.
-------------------------------------------------------------------------------------------
Дайте мне собственный гольф-клуб, свежий воздух и красивую женщину в
партнеры – и можете оставить гольф-клуб и свежий воздух себе.