EXTENSION: .xxl

DESCRIPTION: Mobidelli/SCM

WERKZEUGE:Xilog Plus-Tools.txt
VARIABLES:Xilog Plus-Globals.txt

POSTLAUNCH:"C:\Programme\Scm Group\Xilog Plus\Bin\postlaunch.bat" [?CNCFILENAMENOEXTENSION]

ORDER:TOP BOTTOM LEFT RIGHT FRONT BACK
ORDERSURFACE:SAW REBATE MITRE GROOVE POLYLINE BORINGDIAMETER MACRO
ORDERDISTANCE: TRUE

UNERLAUBTE_ZEICHEN:_-äöü ÄÖÜß()

PRGNR_START:1
# PRGNR_FORMAT:%03d
# PRG_NAME: Formel[ERSETZEN("[?DOSFILENAME]";"XG-";"")][?UNIQUESUFFIX][?PARTID]Formel[ERSETZEN(ERSETZEN("[?WSSEITE]";"F";"V");"B";"H")]
PRG_NAME: [?NAME_AUSGABE][?PARTID][?WSSEITE][?UNIQUESUFFIX]

BEGIN MACRO Position([?FX];[?FXE];[?FY];[?FYE];[?L];[?B];[?BREITE])
IF [?BREITE]>8 AND [?FY]=[?FYE] AND [?FY]>[?B]/2 THEN '4' ELSE IF [?BREITE]>8 AND [?FY]=[?FYE] AND [?FY]<=[?B]/2 THEN '3' ELSE IF [?BREITE]>8 AND [?FX]=[?FXE] AND [?FX]>[?L]/2 THEN '2' ELSE IF [?BREITE]>8 AND [?FX]=[?FXE] AND [?FX]<=[?L]/2 THEN '1'  ELSE IF [?BREITE]<=8 THEN 'saegen' ELSE 'nd'
END MACRO

BEGIN MACRO FUEGEOFFSET_X([?X];[?KANTE_LINKS];[?KANTE_RECHTS];[?FUEGEMASSZUGABE])
IF [?KANTE_LINKS]>0 AND [?KANTE_RECHTS]>0 THEN [?X]+2*[?FUEGEMASSZUGABE] ELSE IF [?KANTE_LINKS]>0 OR [?KANTE_RECHTS]>0 THEN [?X]+[?FUEGEMASSZUGABE] ELSE [?X] 
END MACRO

BEGIN MACRO FUEGEOFFSET_Y([?Y];[?KANTE_VORNE];[?KANTE_HINTEN];[?FUEGEMASSZUGABE])
IF [?KANTE_VORNE]>0 AND [?KANTE_HINTEN]>0 THEN [?Y]+2*[?FUEGEMASSZUGABE] ELSE IF [?KANTE_VORNE]>0 OR [?KANTE_HINTEN]>0 THEN [?Y]+[?FUEGEMASSZUGABE] ELSE [?Y] 
END MACRO

BEGIN MACRO NPVCALC_X([?AUFMASS_X];[?FUEGEMASSZUGABE];[?KANTEANSCHLAG_X])
IF [?KANTEANSCHLAG_X]>0 THEN [?FUEGEMASSZUGABE] ELSE 0
END MACRO

BEGIN MACRO NPVCALC_Y([?AUFMASS_Y];[?FUEGEMASSZUGABE];[?KANTEANSCHLAG_Y])
IF [?KANTEANSCHLAG_Y]>0 THEN [?FUEGEMASSZUGABE] ELSE 0 
END MACRO


BEGIN WERKSTUECK
H DX=Formel[IF [?AUFLAGEFERTIGHAUPTSEITE]=0 THEN "Formel{MACRO['FUEGEOFFSET_X';[?X];[?KANTE_LINKS];[?KANTE_RECHTS];[?FUEGEMASSZUGABE]*[?FUEGEN]]}" ELSE "[?X_FERTIG]"] DY=Formel[IF [?AUFLAGEFERTIGHAUPTSEITE]=0 THEN "Formel{MACRO['FUEGEOFFSET_Y';[?Y];[?KANTE_VORNE];[?KANTE_HINTEN];[?FUEGEMASSZUGABE]*[?FUEGEN]]}" ELSE "[?Y_FERTIG]"] DZ[?STAERKE] -A /w *MM C0 T 0 R1 BX=0 BY=0 BZ=0
;Werkstueck
PAR KanteLinks =[?KANTE_LINKS] "Kantendicke links"
PAR KanteRechts =[?KANTE_RECHTS] "Kantendicke rechts"
PAR KanteVorne =[?KANTE_VORNE] "Kantendicke vorne"
PAR KanteHinten =[?KANTE_HINTEN] "Kantendicke hinten"
PAR KanteOX=[?KANTEANSCHLAG_X] "Kantenstaerke am Anschlag X"
PAR KanteOY=[?KANTEANSCHLAG_Y] "Kantenstaerke am Anschlag Y"
PAR BohrenJN =1 "Ausfuehrungsbedingung Bohren"
PAR BohrenDurchJN =1 "Ausfuehrungsbedingung Durchbohren"
PAR TopfJN =1 "Ausfuehrungsbedingung Topfband"
PAR LRJN =1 "Ausfuehrungsbedingung Lochreihe"
PAR KTJN =1 "Ausfuehrungsbedingung Kreistasche"
PAR BohrenHJN =1 "Ausfuehrungsbedingung Bohren horizontal"
PAR FalzJN =1 "Ausfuehrungsbedingung Falz"
PAR NutJN =1 "Ausfuehrungsbedingung Nut"
O X=Formel[IF [?AUFLAGEFERTIGHAUPTSEITE]=1 THEN "0" ELSE "-KanteOX+Formel{MACRO['NPVCALC_X';[?AUFMASS_X];[?FUEGEMASSZUGABE]*[?FUEGEN];[?KANTEANSCHLAG_X]]}"] Y=Formel[IF [?AUFLAGEFERTIGHAUPTSEITE]=1 THEN "0" ELSE "-KanteOY+Formel{MACRO['NPVCALC_Y';[?AUFMASS_Y];[?FUEGEMASSZUGABE]*[?FUEGEN];[?KANTEANSCHLAG_Y]]}"]
[?POLYWSEXEC]
END WERKSTUECK

BEGIN WERKSTUECKRUECKSEITE
H DX=Formel[IF [?AUFLAGEFERTIGNEBENSEITE]=0 THEN "Formel{MACRO['FUEGEOFFSET_X';[?X];[?KANTE_LINKS];[?KANTE_RECHTS];[?FUEGEMASSZUGABE]*[?FUEGEN]]}" ELSE "[?X_FERTIG]"] DY=Formel[IF [?AUFLAGEFERTIGNEBENSEITE]=0 THEN "Formel{MACRO['FUEGEOFFSET_Y';[?Y];[?KANTE_VORNE];[?KANTE_HINTEN];[?FUEGEMASSZUGABE]*[?FUEGEN]]}" ELSE "[?Y_FERTIG]"] DZ[?STAERKE] -A /w *MM C0 T 0 R1 BX=0 BY=0 BZ=0
;WERKSTUECKRUECKSEITE
PAR KanteLinks =[?KANTE_LINKS] "Kantendicke links"
PAR KanteRechts =[?KANTE_RECHTS] "Kantendicke rechts"
PAR KanteVorne =[?KANTE_VORNE] "Kantendicke vorne"
PAR KanteHinten =[?KANTE_HINTEN] "Kantendicke hinten"
PAR KanteOX=[?KANTEANSCHLAG_X] "Kantenstaerke am Anschlag X"
PAR KanteOY=[?KANTEANSCHLAG_Y] "Kantenstaerke am Anschlag Y"
PAR BohrenJN =1 "Ausfuehrungsbedingung Bohren"
PAR BohrenDurchJN =1 "Ausfuehrungsbedingung Durchbohren"
PAR TopfJN =1 "Ausfuehrungsbedingung Topfband"
PAR LRJN =1 "Ausfuehrungsbedingung Lochreihe"
PAR KTJN =1 "Ausfuehrungsbedingung Kreistasche"
PAR BohrenHJN =1 "Ausfuehrungsbedingung Bohren horizontal"
PAR FalzJN =1 "Ausfuehrungsbedingung Falz"
PAR NutJN =1 "Ausfuehrungsbedingung Nut"
O X=Formel[IF [?AUFLAGEFERTIGNEBENSEITE]=1 THEN "0" ELSE "-KanteOX+Formel{MACRO['NPVCALC_X';[?AUFMASS_X];[?FUEGEMASSZUGABE]*[?FUEGEN];[?KANTEANSCHLAG_X]]}"] Y=Formel[IF [?AUFLAGEFERTIGNEBENSEITE]=1 THEN "0" ELSE "-KanteOY+Formel{MACRO['NPVCALC_Y';[?AUFMASS_Y];[?FUEGEMASSZUGABE]*[?FUEGEN];[?KANTEANSCHLAG_Y]]}"]
[?POLYWSEXEC]
END WERKSTUECKRUECKSEITE

# Für getrenntformatieren im Fertigmaß von 0=0 auf 0=1 (also False umstellen)
BEGIN WERKSTUECKFORMAT
H DX=Formel[IF 0=0 THEN "Formel{MACRO['FUEGEOFFSET_X';[?X];[?KANTE_LINKS];[?KANTE_RECHTS];[?FUEGEMASSZUGABE]*[?FUEGEN]]}" ELSE "[?X_FERTIG]"] DY=Formel[IF 0=0 THEN "Formel{MACRO['FUEGEOFFSET_Y';[?Y];[?KANTE_VORNE];[?KANTE_HINTEN];[?FUEGEMASSZUGABE]*[?FUEGEN]]}" ELSE "[?Y_FERTIG]"] DZ[?STAERKE] -A /w *MM C0 T 0 R1 BX=Formel[[?AUFMASS_X]/2] BY=Formel[[?AUFMASS_Y]/2] BZ=0
;WERKSTUECKFORMAT
PAR KanteLinks =[?KANTE_LINKS] "Kantendicke links"
PAR KanteRechts =[?KANTE_RECHTS] "Kantendicke rechts"
PAR KanteVorne =[?KANTE_VORNE] "Kantendicke vorne"
PAR KanteHinten =[?KANTE_HINTEN] "Kantendicke hinten"
PAR KanteOX=[?KANTEANSCHLAG_X] "Kantenstaerke am Anschlag X"
PAR KanteOY=[?KANTEANSCHLAG_Y] "Kantenstaerke am Anschlag Y"
PAR BohrenJN =1 "Ausfuehrungsbedingung Bohren"
PAR BohrenDurchJN =1 "Ausfuehrungsbedingung Durchbohren"
PAR TopfJN =1 "Ausfuehrungsbedingung Topfband"
PAR LRJN =1 "Ausfuehrungsbedingung Lochreihe"
PAR KTJN =1 "Ausfuehrungsbedingung Kreistasche"
PAR BohrenHJN =1 "Ausfuehrungsbedingung Bohren horizontal"
PAR FalzJN =1 "Ausfuehrungsbedingung Falz"
PAR NutJN =1 "Ausfuehrungsbedingung Nut"
[?POLYWSEXEC]
END WERKSTUECKFORMAT

BEGIN WERKSTUECKSYNCFORMAT
H DX=Formel[IF [?AUFLAGEFERTIGHAUPTSEITE]=0 THEN "Formel{MACRO['FUEGEOFFSET_X';[?X];[?KANTE_LINKS];[?KANTE_RECHTS];[?FUEGEMASSZUGABE]*[?FUEGEN]]}" ELSE "[?X_FERTIG]"] DY=Formel[IF [?AUFLAGEFERTIGHAUPTSEITE]=0 THEN "Formel{MACRO['FUEGEOFFSET_Y';[?Y];[?KANTE_VORNE];[?KANTE_HINTEN];[?FUEGEMASSZUGABE]*[?FUEGEN]]}" ELSE "[?Y_FERTIG]"] DZ[?STAERKE] -A /w *MM C0 T 0 R1 BX=Formel[[?AUFMASS_X]/2] BY=Formel[[?AUFMASS_Y]/2] BZ=0
;WERKSTUECKSYNCFORMAT
PAR KanteLinks =[?KANTE_LINKS] "Kantendicke links"
PAR KanteRechts =[?KANTE_RECHTS] "Kantendicke rechts"
PAR KanteVorne =[?KANTE_VORNE] "Kantendicke vorne"
PAR KanteHinten =[?KANTE_HINTEN] "Kantendicke hinten"
PAR KanteOX=[?KANTEANSCHLAG_X] "Kantenstaerke am Anschlag X"
PAR KanteOY=[?KANTEANSCHLAG_Y] "Kantenstaerke am Anschlag Y"
PAR BohrenJN =1 "Ausfuehrungsbedingung Bohren"
PAR BohrenDurchJN =1 "Ausfuehrungsbedingung Durchbohren"
PAR TopfJN =1 "Ausfuehrungsbedingung Topfband"
PAR LRJN =1 "Ausfuehrungsbedingung Lochreihe"
PAR KTJN =1 "Ausfuehrungsbedingung Kreistasche"
PAR BohrenHJN =1 "Ausfuehrungsbedingung Bohren horizontal"
PAR FalzJN =1 "Ausfuehrungsbedingung Falz"
PAR NutJN =1 "Ausfuehrungsbedingung Nut"
[?POLYWSEXEC]
END WERKSTUECKSYNCFORMAT


BEGIN FORMATIERUNG
;FUEGEMASSZUGABE=[?FUEGEMASSZUGABE]*[?FUEGEN]
Formel[IF IDENTISCH('[?WSPOLYGONAL]';'NEIN') THEN 'FORMAT Z=DZ+2 V=10  a=2 G=0 T=[?formatwkz] F=1' ELSE '']
O X=Formel[IF [?AUFLAGEFERTIGHAUPTSEITE]=1 THEN "0" ELSE "-KanteOX+Formel{MACRO['NPVCALC_X';[?AUFMASS_X];[?FUEGEMASSZUGABE]*[?FUEGEN];[?KANTEANSCHLAG_X]]}"] Y=Formel[IF [?AUFLAGEFERTIGHAUPTSEITE]=1 THEN "0" ELSE "-KanteOY+Formel{MACRO['NPVCALC_Y';[?AUFMASS_Y];[?FUEGEMASSZUGABE]*[?FUEGEN];[?KANTEANSCHLAG_Y]]}"]
END FORMATIERUNG


BEGIN BOHRUNG_VERT
F=1
IF BohrenJN=1 THEN
XBO X[?FX] Y[?FY] Z[?TIEF] D[?D] N=P R=0#
FI
END BOHRUNG_VERT

BEGIN BOHRUNG_VERT_DURCH
F=1
IF BohrenDurchJN=1 THEN
XBO X=[?FX] Y=[?FY] Z=[?TIEF]+2 D=[?D] N=P R=0#
FI
END BOHRUNG_VERT_DURCH

BEGIN BOHRUNG_SCHRAEG
F=1
XBO X[?FX] Y[?FY] Z[?TIEF] D[?D] N=P R=0#
END BOHRUNG_SCHRAEG

BEGIN KREISTASCHE
F=1
KT X=[?FX] Y=[?FY] Z=[?TIEF] D=[?D] T=101 IF=KTJN=1
END KREISTASCHE

BEGIN ANKOERNUNG_VERT
;Ankörnung
F=1
XBO X[?FX] Y[?FY] Z1 D5 N=P R=0#
END ANKOERNUNG_VERT

BEGIN LOCHREIHE
XBO X=[?FX] Y=[?FY] Z=[?TIEF] R=[?ANZ_BOHRUNGEN] x=Formel[IF [?FX]=[?FXE] THEN 0 ELSE [?RASTER]] y=Formel[IF [?FY]=[?FYE] THEN 0 ELSE [?RASTER]] D=[?D] N=P F=1 IF=LRJN=1
END LOCHREIHE

BEGIN BOHRUNG_HOR_LINKS
XBO XFormel[[?STAERKE]-[?Z]] Y[?FY] Z[?TIEF] D=[?D] N=P F=3 IF=BohrenHJN=1
END BOHRUNG_HOR_LINKS

BEGIN BOHRUNG_HOR_RECHTS
XBO XFormel[[?STAERKE]-[?Z]] Y[?FY] Z[?TIEF] D=[?D] N=P F=2 IF=BohrenHJN=1
END BOHRUNG_HOR_RECHTS

BEGIN BOHRUNG_HOR_VORNE
XBO X[?FX] YFormel[[?STAERKE]-[?Z]] Z[?TIEF] D=[?D] N=P F=5 IF=BohrenHJN=1
END BOHRUNG_HOR_VORNE

BEGIN BOHRUNG_HOR_HINTEN
XBO X[?FX] YFormel[[?STAERKE]-[?Z]] Z[?TIEF] D=[?D] N=P F=4 IF=BohrenHJN=1
END BOHRUNG_HOR_HINTEN

BEGIN BOHRUNG_HOR_LINKS_WINKEL
;XBO X[?Z] Y[?FY] Z[?TIEF] D=[?D] N=P F=3 IF=BohrenHJN=1
END BOHRUNG_HOR_LINKS_WINKEL


BEGIN BOHRUNG_HOR_RECHTS_WINKEL
;XBO X[?Z] Y[?FY] Z[?TIEF] D=[?D] N=P F=2 IF=BohrenHJN=1
END BOHRUNG_HOR_RECHTS_WINKEL


BEGIN BOHRUNG_HOR_VORNE_WINKEL
;XBO X[?Z] Y[?FY] Z[?TIEF] D=[?D] N=P F=5 IF=BohrenHJN=1
END BOHRUNG_HOR_VORNE_WINKEL


BEGIN BOHRUNG_HOR_HINTEN_WINKEL
;XBO X[?Z] Y[?FY] Z[?TIEF] D=[?D] N=P F=4 IF=BohrenHJN=1
END BOHRUNG_HOR_HINTEN_WINKEL


BEGIN FALZ
Formel[IF [?FY]=[?FYE] AND [?FY]>100 THEN '*Falz hinten
C=2 
GIN G=1 R=5 Q=0
G0 XFormel{MAX([?FX];[?FXE])} YFormel{[?FY]-ABS([?BREITE])/2} Z=[?TIEF] V=4 S=18000 T=101
G1 XFormel{MIN([?FX];[?FXE])} YFormel{[?FY]-ABS([?BREITE])/2} Z=[?TIEF] V=4
GOUT G=1 R=5 L=10 Q=0' ELSE '']
Formel[IF [?FY]=[?FYE] AND [?FY]<100 THEN '*Falz vorne
C=2 
GIN G=1 R=5 Q=0
G0 XFormel{MIN([?FX];[?FXE])} YFormel{[?FY]+ABS([?BREITE])/2} Z=[?TIEF] V=4 S=18000 T=101
G1 XFormel{MAX([?FX];[?FXE])} YFormel{[?FY]+ABS([?BREITE])/2} Z=[?TIEF] V=4
GOUT G=1 R=5 L=10 Q=0' ELSE '']
Formel[IF [?FX]=[?FXE] AND [?FX]<100 THEN '*Falz links
C=2 
GIN G=1 R=5 Q=0
G0 XFormel{[?FX]+ABS([?BREITE])/2} YFormel{MAX([?FY];[?FYE])} Z=[?TIEF] V=4 S=18000 T=101
G1 XFormel{[?FX]+ABS([?BREITE])/2} YFormel{MIN([?FY];[?FYE])} Z=[?TIEF] V=4
GOUT G=1 R=5 L=10 Q=0' ELSE '']
Formel[IF [?FX]=[?FXE] AND [?FX]>100 THEN '*Falz rechts
C=2 
GIN G=1 R=5 Q=0
G0 XFormel{[?FX]-ABS([?BREITE])/2} YFormel{MIN([?FY];[?FYE])} Z=[?TIEF] V=4 S=18000 T=101
G1 XFormel{[?FX]-ABS([?BREITE])/2} YFormel{MAX([?FY];[?FYE])} Z=[?TIEF] V=4
GOUT G=1 R=5 L=10 Q=0' ELSE '']
Formel[IF [?FX]<>[?FXE] AND [?FY]<>[?FYE] THEN '*Falz schräg X=[?FX] XE=[?FXE] Y=[?FY] YE=[?FYE]
;C=2 
;GIN G=1 R=5 Q=0
;G0 X[?FX] Y[?FY] Z=-[?TIEF] V=4 s=Formel{ABS([?BREITE])/2} S=18000 T=102 E=1
;G1 X[?FXE] Y[?FYE] Z=-[?TIEF] V=4
;GOUT G=1 R=5 L=10 Q=0' ELSE '']
END FALZ

BEGIN FALZEINGESETZT
F=1
IF FalzJN=1 THEN
C=1 S=0
GIN G=1 R=2 Q=0
G0 X=Formel[IF [?FX]<>[?FXE] AND [?FY]>[?BREITE] THEN MIN([?FX];[?FXE]) ELSE IF [?FX]<>[?FXE] AND [?FY]<=[?BREITE] THEN MAX([?FX];[?FXE]) ELSE IF [?FX]=[?FXE] AND [?FX]>[?BREITE] THEN [?FX]+[?BREITE]/2+30 ELSE  [?FX]-[?BREITE]/2-30]Formel[IF [?FY]=[?FYE] AND [?FY]>[?BREITE] AND MIN([?FX];[?FXE])=0 THEN '-50' ELSE IF [?FY]=[?FYE] AND [?FY]<[?BREITE] AND MAX([?FX];[?FXE])=[?X_FERTIG] THEN '+50' ELSE '' ] Y=Formel[IF [?FY]<>[?FYE] AND [?FX]>[?BREITE] THEN MAX([?FY];[?FYE]) ELSE IF [?FY]<>[?FYE] AND [?FX]<=[?BREITE] THEN MIN([?FY];[?FYE]) ELSE IF [?FY]=[?FYE] AND [?FY]>[?BREITE] THEN [?FY]+[?BREITE]/2+30 ELSE  [?FY]-[?BREITE]/2-30]Formel[IF [?FX]=[?FXE] AND [?FX]<[?BREITE] AND MIN([?FY];[?FYE])=0 THEN '-50' ELSE IF [?FX]=[?FXE] AND [?FX]>[?BREITE] AND MAX([?FY];[?FYE])=[?Y_FERTIG] THEN '+50' ELSE '' ] Z=[?TIEF] T=102
G1 X=Formel[IF [?FX]<>[?FXE] AND [?FY]>[?BREITE] THEN MIN([?FX];[?FXE]) ELSE IF [?FX]<>[?FXE] AND [?FY]<=[?BREITE] THEN MAX([?FX];[?FXE]) ELSE IF [?FX]=[?FXE] AND [?FX]>[?BREITE] THEN [?FX]-[?BREITE]/2 ELSE  [?FX]+[?BREITE]/2]Formel[IF [?FY]=[?FYE] AND [?FY]>[?BREITE] AND MIN([?FX];[?FXE])=0 THEN '-50' ELSE IF [?FY]=[?FYE] AND [?FY]<[?BREITE] AND MAX([?FX];[?FXE])=[?X_FERTIG] THEN '+50' ELSE '' ] Y=Formel[IF [?FY]<>[?FYE] AND [?FX]>[?BREITE] THEN MAX([?FY];[?FYE]) ELSE IF [?FY]<>[?FYE] AND [?FX]<=[?BREITE] THEN MIN([?FY];[?FYE]) ELSE IF [?FY]=[?FYE] AND [?FY]>[?BREITE] THEN [?FY]-[?BREITE]/2 ELSE  [?FY]+[?BREITE]/2]Formel[IF [?FX]=[?FXE] AND [?FX]<[?BREITE] AND MIN([?FY];[?FYE])=0 THEN '-50' ELSE IF [?FX]=[?FXE] AND [?FX]>[?BREITE] AND MAX([?FY];[?FYE])=[?Y_FERTIG] THEN '+50' ELSE '' ]
G1 X=Formel[IF [?FX]<>[?FXE] AND [?FY]>[?BREITE] THEN MAX([?FX];[?FXE]) ELSE IF [?FX]<>[?FXE] AND [?FY]<=[?BREITE] THEN MIN([?FX];[?FXE]) ELSE IF [?FX]=[?FXE] AND [?FX]>[?BREITE] THEN [?FX]-[?BREITE]/2 ELSE  [?FX]+[?BREITE]/2]Formel[IF [?FY]=[?FYE] AND [?FY]<[?BREITE] AND MIN([?FX];[?FXE])=0 THEN '-50' ELSE IF [?FY]=[?FYE] AND [?FY]>[?BREITE] AND MAX([?FX];[?FXE])=[?X_FERTIG] THEN '+50' ELSE '' ] Y=Formel[IF [?FY]<>[?FYE] AND [?FX]>[?BREITE] THEN MIN([?FY];[?FYE]) ELSE IF [?FY]<>[?FYE] AND [?FX]<=[?BREITE] THEN MAX([?FY];[?FYE]) ELSE IF [?FY]=[?FYE] AND [?FY]>[?BREITE] THEN [?FY]-[?BREITE]/2 ELSE  [?FY]+[?BREITE]/2]Formel[IF [?FX]=[?FXE] AND [?FX]>[?BREITE] AND MIN([?FY];[?FYE])=0 THEN '-50' ELSE IF [?FX]=[?FXE] AND [?FX]<[?BREITE] AND MAX([?FY];[?FYE])=[?Y_FERTIG] THEN '+50' ELSE '' ]
G1 X=Formel[IF [?FX]<>[?FXE] AND [?FY]>[?BREITE] THEN MAX([?FX];[?FXE]) ELSE IF [?FX]<>[?FXE] AND [?FY]<=[?BREITE] THEN MIN([?FX];[?FXE]) ELSE IF [?FX]=[?FXE] AND [?FX]>[?BREITE] THEN [?FX]+[?BREITE]/2+30 ELSE  [?FX]-[?BREITE]/2-30]Formel[IF [?FY]=[?FYE] AND [?FY]<[?BREITE] AND MIN([?FX];[?FXE])=0 THEN '-50' ELSE IF [?FY]=[?FYE] AND [?FY]>[?BREITE] AND MAX([?FX];[?FXE])=[?X_FERTIG] THEN '+50' ELSE '' ] Y=Formel[IF [?FY]<>[?FYE] AND [?FX]>[?BREITE] THEN MIN([?FY];[?FYE]) ELSE IF [?FY]<>[?FYE] AND [?FX]<=[?BREITE] THEN MAX([?FY];[?FYE]) ELSE IF [?FY]=[?FYE] AND [?FY]>[?BREITE] THEN [?FY]+[?BREITE]/2+30 ELSE  [?FY]-[?BREITE]/2-30]Formel[IF [?FX]=[?FXE] AND [?FX]>[?BREITE] AND MIN([?FY];[?FYE])=0 THEN '-50' ELSE IF [?FX]=[?FXE] AND [?FX]<[?BREITE] AND MAX([?FY];[?FYE])=[?Y_FERTIG] THEN '+50' ELSE '' ]
C=0 S=0
FI
END FALZEINGESETZT


BEGIN NUT
;Nut
Formel[IF [?FY]=[?FYE] AND [?FX]>[?FXE] THEN 'RNT X=[?FX] Y=Formel{[?FY]-ABS([?BREITE])/2} Z=[?TIEF]  x=[?FXE] L=Formel{ABS([?BREITE])} T=193 C=1 IF=FalzJN=1' ELSE '']
Formel[IF [?FY]=[?FYE] AND [?FX]<[?FXE] THEN 'RNT X=[?FX] Y=Formel{[?FY]-ABS([?BREITE])/2} Z=[?TIEF]  x=[?FXE] L=Formel{ABS([?BREITE])} T=193 C=1 IF=FalzJN=1' ELSE '']
Formel[IF [?FX]=[?FXE] AND [?FY]<[?FYE] THEN 'RNTY Y=[?FY] X=Formel{[?FX]-ABS([?BREITE])/2} Z=[?TIEF]  y=[?FYE] L=Formel{ABS([?BREITE])} T=193 C=1 IF=FalzJN=1' ELSE '']
Formel[IF [?FX]=[?FXE] AND [?FY]>[?FYE] THEN 'RNTY Y=[?FY] X=Formel{[?FX]-ABS([?BREITE])/2} Z=[?TIEF]  y=[?FYE] L=Formel{ABS([?BREITE])} T=193 C=1 IF=FalzJN=1' ELSE '']
END NUT

BEGIN NUTEINGESETZT
F=1
IF NutJN=1 THEN
Formel[IF [?BREITE]<8 THEN 'RNT X=Formel{MIN([?FX];[?FXE]) + IF MIN([?FX];[?FXE])=0 THEN (-50) ELSE +20} Y=Formel{[?FY]-[?BREITE]/2} Z=[?TIEF] x=Formel{MAX([?FX];[?FXE]) + IF MAX([?FX];[?FXE])=[?X_FERTIG] THEN (+50) ELSE +0} B=[?BREITE] T=81' 
ELSE '']
Formel[CASE "Formel{MACRO['Position';[?FX];[?FXE];[?FY];[?FYE];[?X_FERTIG];[?Y_FERTIG];[?BREITE]]}" OF
     "1" : ";vertikal links
C =1 S=0
G0 X=Formel{MIN([?FX];[?FXE])+[?BREITE]/2} Y=Formel{MIN([?FY];[?FYE]) + IF MIN([?FY];[?FYE])=0 THEN (-50) ELSE +20} Z=Formel{IF MIN([?FY];[?FYE])=0 THEN [?TIEF] ELSE -10} T=Formel{IF [?BREITE]>=17 THEN 102 ELSE 123}
G1 Y=Formel{MIN([?FY];[?FYE]) + IF MIN([?FY];[?FYE])=0 THEN (-30) ELSE +60} Z=[?TIEF]
G1 Y=Formel{MAX([?FY];[?FYE]) + IF MAX([?FY];[?FYE])=[?Y_FERTIG] THEN (+50) ELSE +0}
G1 X=Formel{MAX([?FX];[?FXE])-[?BREITE]/2} Y=Formel{MAX([?FY];[?FYE]) + IF MAX([?FY];[?FYE])=[?Y_FERTIG] THEN (+50) ELSE +0} 
G1 X=Formel{MAX([?FX];[?FXE])-[?BREITE]/2} Y=Formel{MIN([?FY];[?FYE]) + IF MIN([?FY];[?FYE])=0 THEN (-50) ELSE +0}
G1 X=Formel{MIN([?FX];[?FXE])+[?BREITE]/2}
G1 Y=Formel{MIN([?FY];[?FYE])+70}	
C=0";
     "2" : ";vertikal rechts
C =1 S=0
G0 X=Formel{MIN([?FX];[?FXE])+[?BREITE]/2} Y=Formel{MIN([?FY];[?FYE]) + IF MIN([?FY];[?FYE])=0 THEN (-50) ELSE +20} Z=Formel{IF MIN([?FY];[?FYE])=0 THEN [?TIEF] ELSE -10} T=Formel{IF [?BREITE]>=17 THEN 102 ELSE 123}
G1 Y=Formel{MIN([?FY];[?FYE]) + IF MIN([?FY];[?FYE])=0 THEN (-30) ELSE +60} Z=[?TIEF]
G1 Y=Formel{MAX([?FY];[?FYE]) + IF MAX([?FY];[?FYE])=[?Y_FERTIG] THEN (+50) ELSE +0}
G1 X=Formel{MAX([?FX];[?FXE])-[?BREITE]/2} Y=Formel{MAX([?FY];[?FYE]) + IF MAX([?FY];[?FYE])=[?Y_FERTIG] THEN (+50) ELSE +0} 
G1 X=Formel{MAX([?FX];[?FXE])-[?BREITE]/2} Y=Formel{MIN([?FY];[?FYE]) + IF MIN([?FY];[?FYE])=0 THEN (-50) ELSE +0}
G1 X=Formel{MIN([?FX];[?FXE])+[?BREITE]/2}
G1 Y=Formel{MIN([?FY];[?FYE])+70}	
C=0";
     "3" : ";horizontal am Anschlag
C =1 S=0
G0 X=Formel{MIN([?FX];[?FXE]) + IF MIN([?FX];[?FXE])=0 THEN (-50) ELSE +20} Y=Formel{MIN([?FY];[?FYE])-[?BREITE]/2} Z=Formel{IF MIN([?FX];[?FXE])=0 THEN [?TIEF] ELSE -10} T=Formel{IF [?BREITE]>=17 THEN 102 ELSE 123}
G1 X=Formel{MIN([?FX];[?FXE]) + IF MIN([?FX];[?FXE])=0 THEN (-30) ELSE +60} Z=[?TIEF]
G1 X=Formel{MAX([?FX];[?FXE]) + IF MAX([?FX];[?FXE])=[?X_FERTIG] THEN (+50) ELSE +0}
G1 X=Formel{MAX([?FX];[?FXE]) + IF MAX([?FX];[?FXE])=[?X_FERTIG] THEN (+50) ELSE +0} Y=Formel{MAX([?FY];[?FYE])+[?BREITE]/2}
G1 X=Formel{MIN([?FX];[?FXE]) + IF MIN([?FX];[?FXE])=0 THEN (-50) ELSE +0} Y=Formel{MAX([?FY];[?FYE])+[?BREITE]/2}
G1 Y=Formel{MIN([?FY];[?FYE])-[?BREITE]/2}
G1 X=Formel{MIN([?FX];[?FXE])+70}	
C=0";
     "4" : ";horizontal gegenüber Anschlag
C =1 S=0
G0 X=Formel{MIN([?FX];[?FXE]) + IF MIN([?FX];[?FXE])=0 THEN (-50) ELSE +20} Y=Formel{MIN([?FY];[?FYE])-[?BREITE]/2} Z=Formel{IF MIN([?FX];[?FXE])=0 THEN [?TIEF] ELSE -10} T=Formel{IF [?BREITE]>=17 THEN 102 ELSE 123}
G1 X=Formel{MIN([?FX];[?FXE]) + IF MIN([?FX];[?FXE])=0 THEN (-30) ELSE +60} Z=[?TIEF]
G1 X=Formel{MAX([?FX];[?FXE]) + IF MAX([?FX];[?FXE])=[?X_FERTIG] THEN (+50) ELSE +0}
G1 X=Formel{MAX([?FX];[?FXE]) + IF MAX([?FX];[?FXE])=[?X_FERTIG] THEN (+50) ELSE +0} Y=Formel{MAX([?FY];[?FYE])+[?BREITE]/2}
G1 X=Formel{MIN([?FX];[?FXE]) + IF MIN([?FX];[?FXE])=0 THEN (-50) ELSE +0} Y=Formel{MAX([?FY];[?FYE])+[?BREITE]/2}
G1 Y=Formel{MIN([?FY];[?FYE])-[?BREITE]/2}
G1 X=Formel{MIN([?FX];[?FXE])+70}	
C=0";
     OTHERWISE: ";Schraege Nut wird noch nicht unterstuetzt";
END
]
FI
END NUTEINGESETZT

BEGIN AUSKLINKUNG
;Ausklinkung [?FPT1X]/[?FPT1Y] [?FPT2X]/[?FPT2Y] [?FPT3X]/[?FPT3Y] [?FPT4X]/[?FPT4Y]
Formel[IF ([?FPT1X]=0 AND [?FPT1Y]=0) OR ([?FPT4X]=0 AND [?FPT4Y]=0) THEN  ';links/vorne
C=1 S=0
G0 X=Formel{MAX([?FPT1X];[?FPT2X];[?FPT3X];[?FPT4X])} Y=-30 Z=DZ+5 T=102
G1 X=Formel{MAX([?FPT1X];[?FPT2X];[?FPT3X];[?FPT4X])} Y=Formel{MAX([?FPT1Y];[?FPT2Y];[?FPT3Y];[?FPT4Y])}
G1 X=-30 Y=Formel{MAX([?FPT1Y];[?FPT2Y];[?FPT3Y];[?FPT4Y])}
C=0 S=0'
ELSE IF ([?FPT1X]=[?X_FERTIG] AND [?FPT1Y]=0) OR ([?FPT4X]=[?X_FERTIG] AND [?FPT4Y]=0) THEN  ';rechts/vorne
C=2 S=0
G0 X=Formel{MIN([?FPT1X];[?FPT2X];[?FPT3X];[?FPT4X])} Y=-30 Z=DZ+5 T=102
G1 X=Formel{MIN([?FPT1X];[?FPT2X];[?FPT3X];[?FPT4X])} Y=Formel{MAX([?FPT1Y];[?FPT2Y];[?FPT3Y];[?FPT4Y])}
G1 X=DX+30 Y=Formel{MAX([?FPT1Y];[?FPT2Y];[?FPT3Y];[?FPT4Y])}
C=0 S=0'
ELSE IF ([?FPT1X]=[?X_FERTIG] AND [?FPT1Y]=[?Y_FERTIG]) OR ([?FPT4X]=[?X_FERTIG] AND [?FPT4Y]=[?Y_FERTIG]) THEN  ';rechts/hinten
C=1 S=0
G0 X=Formel{MIN([?FPT1X];[?FPT2X];[?FPT3X];[?FPT4X])} Y=DY+30 Z=DZ+5 T=102
G1 X=Formel{MIN([?FPT1X];[?FPT2X];[?FPT3X];[?FPT4X])} Y=Formel{MIN([?FPT1Y];[?FPT2Y];[?FPT3Y];[?FPT4Y])}
G1 X=DX+30 Y=Formel{MIN([?FPT1Y];[?FPT2Y];[?FPT3Y];[?FPT4Y])}
C=0 S=0'
ELSE IF ([?FPT1X]=0 AND [?FPT1Y]=[?Y_FERTIG]) OR ([?FPT4X]=0 AND [?FPT4Y]=[?Y_FERTIG]) THEN  ';links/hinten
C=2 S=0
G0 X=Formel{MAX([?FPT1X];[?FPT2X];[?FPT3X];[?FPT4X])} Y=DY+30 Z=DZ+5 T=102
G1 X=Formel{MAX([?FPT1X];[?FPT2X];[?FPT3X];[?FPT4X])} Y=Formel{MIN([?FPT1Y];[?FPT2Y];[?FPT3Y];[?FPT4Y])}
G1 X=-30 Y=Formel{MIN([?FPT1Y];[?FPT2Y];[?FPT3Y];[?FPT4Y])}
C=0 S=0'
ELSE ';In der Kante
C=1 S=0
GIN G=1 R=2 Q=0
G0 X=Formel{IF [?FPT1Y]=[?FPT2Y] AND [?FPT1X]=0 THEN [?FPT1X]-30 ELSE IF [?FPT1Y]=[?FPT2Y] AND [?FPT1X]>0 THEN [?FPT1X]+30 ELSE [?FPT1X]} Y=Formel{IF [?FPT1X]=[?FPT2X] AND [?FPT1Y]=0 THEN [?FPT1Y]-30 ELSE IF [?FPT1X]=[?FPT2X] AND [?FPT1Y]>0 THEN [?FPT1Y]+30 ELSE [?FPT1Y]} Z=DZ+5 T=102
G1 X=[?FPT2X] Y=[?FPT2Y]
G1 X=[?FPT3X] Y=[?FPT3Y]
G1 X=[?FPT4X] Y=[?FPT4Y]
G1 X=Formel{IF [?FPT3Y]=[?FPT4Y] AND [?FPT4X]=0 THEN [?FPT4X]-30 ELSE IF [?FPT3Y]=[?FPT4Y] AND [?FPT4X]>0 THEN [?FPT4X]+30 ELSE [?FPT4X]} Y=Formel{IF [?FPT3X]=[?FPT4X] AND [?FPT4Y]=0 THEN [?FPT4Y]-30 ELSE IF [?FPT3X]=[?FPT4X] AND [?FPT4Y]>0 THEN [?FPT4Y]+30 ELSE [?FPT4Y]} 
C=0 S=0']
END AUSKLINKUNG



BEGIN SAEGEN
;SAEGEN XStart=[?FX], YStart=[?FY], XEnd=[?FXE], YEnd=[?FYE], Tiefe=[?TIEF],
NT X[?FX] Y[?FY] x=[?FXE] y=[?FYE] Z=[?TIEF] T=193 C=[?RADIUSKORREKTUR]
END SAEGEN

BEGIN GEHRUNG
;Gehrung XStart=[?FX], YStart=[?FY], XEnd=[?FXE], YEnd=[?FYE], Tiefe=[?TIEF]
END GEHRUNG
 
BEGIN PRGEND
O X=0 Y=0
N X=DX+500
END PRGEND

RADIUSKORREKTUR: 0 2 1

BEGIN POLYFIRST
C[?RADIUSKORREKTUR] S=[?KONTURABSTAND]
GIN G=1 R=0 Q=0
XG0 X[?XSTART] Y[?YSTART] Z[?ZUSTELLUNGENDZ] V=7 T=Formel[IF 
IDENTISCH("[?WERKZEUGINFO]";"") THEN '102' ELSE '[?WERKZEUGINFO]']
G1 X[?XEND] Y[?YEND] V=4

END POLYFIRST



BEGIN POLYFIRSTCLOCKWISE
C[?RADIUSKORREKTUR] S=[?KONTURABSTAND]
GIN G=1 R=0 Q=0
G0 X[?XSTART] Y[?YSTART] Z[?ZUSTELLUNGENDZ] V=7 T=Formel[IF 
IDENTISCH("[?WERKZEUGINFO]";"") THEN '102' ELSE '[?WERKZEUGINFO]']
G2 X[?XEND] Y[?YEND] I[?XCENTER] J[?YCENTER]

END POLYFIRSTCLOCKWISE



BEGIN POLYFIRSTCOUNTERCLOCKWISE
C[?RADIUSKORREKTUR] S=[?KONTURABSTAND]
GIN G=1 R=0 Q=0
G0 X[?XSTART] Y[?YSTART] Z[?ZUSTELLUNGENDZ] V=7 T=Formel[IF IDENTISCH("[?WERKZEUGINFO]";"") THEN '102' ELSE '[?WERKZEUGINFO]']
G3 X[?XEND] Y[?YEND] I[?XCENTER] J[?YCENTER] 

END POLYFIRSTCOUNTERCLOCKWISE
BEGIN POLYBODY
G1 X[?XEND] Y[?YEND] V=7
END POLYBODY

BEGIN POLYBODYCLOCKWISE
G2 X[?XEND] Y[?YEND] I[?XCENTER] J[?YCENTER]
END POLYBODYCLOCKWISE

BEGIN POLYBODYCOUNTERCLOCKWISE
G3 X[?XEND] Y[?YEND] I[?XCENTER] J[?YCENTER]
END POLYBODYCOUNTERCLOCKWISE

BEGIN POLYLAST
G1 X[?XEND] Y[?YEND] V=7
GOUT G=1 R=0 L=10 Q=0
END POLYLAST

BEGIN POLYLASTCLOCKWISE
G2 X[?XEND] Y[?YEND] I[?XCENTER] J[?YCENTER]
GOUT G=1 R=0 L=10 Q=0
END POLYLASTCLOCKWISE

BEGIN POLYLASTCOUNTERCLOCKWISE
G3 X[?XEND] Y[?YEND] I[?XCENTER] J[?YCENTER]
GOUT G=1 R=0 L=10 Q=0
END POLYLASTCOUNTERCLOCKWISE


BEGIN ARBEITSINFO
Jobliste MPR "[?WS_NAME]"

Programmname	Anzahl	Bauteil-Name	Material	Bauteil-Nr	Bauteillänge	Bauteilbreite	Wird Formatiert	Getrenntes Formatierungsprogramm	Art.-Nr. Kante-Links	Art.-Nr. Kante-Rechts	Art.-Nr. Kante-Oben	Art.-Nr. Kante-Unten	Art.-Nr. Belag Innen	Art.-Nr. Belag Aussen	Art.-Nr. Beschichtung 1	Art.-Nr. Beschichtung 2	Art.-Nr. Beschichtung 3	Bemerkung	Dicke	Dicke Kante L	Dicke Kante R	Dicke Kante O	Dicke Kante U	Symbolname
[BEGIN LOOP]
[?PRG_NAME]	[?ANZAHL]	[?BAUTEIL_NAME]	[?MATERIAL]	[?BAUTEIL_NR]	[?LAENGE]	[?BREITE]	[?FORMATIERT]	[?GETRENNT_FORMATIERT]	[?ART_KANTE_L]	[?ART_KANTE_R]	[?ART_KANTE_O]	[?ART_KANTE_U]	[?ART_BELAG_INNEN]	[?ART_BELAG_AUSSEN] [?ART_BESCHICHTUNG_1]	[?ART_BESCHICHTUNG_2]	[?ART_BESCHICHTUNG_3]	[?BEMERKUNG]		[?STAERKE]	[?STAERKE_KANTE_L]	[?STAERKE_KANTE_R]	[?STAERKE_KANTE_O]	[?STAERKE_KANTE_U]	[?SYMBOLNAME]	
[END LOOP]
END ARBEITSINFO
