// ---------------------------------------- // // The following SmartCAM code generator has been // created to generate NC code for the respective // machine and control combinations listed below. // // Due to differences in programming styles, // controller versions, and optional equipment, // SmartCAMcnc DOES NOT and CANNOT guarantee // that the NC code generated is correct for any // specific machine. Some modification to the code // generator to match your setup and output // requirements is likely necessary. // // Modifications to code generators do not TYPICALLY // require a significant amount of time. SmartCAM // customers with active SSA contracts are entitled // to support for their code generators from the // SmartCAMcnc Support Group. To contact them for // support, please send an email to: // Support@SmartCAMcnc.com. If you would like // information on purchasing SSA for your SmartCAM // products, please contact: Sales@SmartCAMcnc.com // // DISCLAIMER: It is the responsibility of the end // user to confirm and verify that the NC code // created by any code generator is accurate and // will not cause a machine malfunction which // could result in stock, tooling, machine, and/or // personal injury. // // SmartCAMcnc assumes no responsibility or // liability for any damage caused or alleged to // have been caused by the use of any of the code // generators it provides. // ---------------------------------------- //7/11/88 //Machine: AGIE 315/425/740/100/200/300 //Control: Agietron CNC 100/123 @START #NEXTPT #EVAL(#BLK=1) %N#BLK / G01 G40 X#XPOS Y#YPOS M22 #EVAL(#BLK=2) #ONBLK #IF(#V2=0)<#UPDATE(#V2)> #IF(#V1=0)<#EVAL(#V1=1)> #RESET(#DCOMP) #EVAL(#V9=0) #EVAL(#V8=0) #EVAL(#V7=0) #EVAL(#V3=0) #EVAL(#ZSET=1) @END M02 #OFFBLK% @STPROF #EVAL(#V9=0) #EVAL(#C0=0) #UPDATE(#XPOS,#YPOS) #IF(#V8=0)<#EXIT> #IF(#V3=1)<#EVAL(#C3=1)> #IF(#XPOS=0,AND#YPOS=0)<#EVAL(#C1=0)>#ELSE<#EVAL(#C1=1)> #IF(#C1=1)<#EVAL(#C3=1)> #IF(#YPOFF=1)<< #MOV> G40 X#XPOS Y#YPOS #C1#RESET(#YPOFF)> #SAFBLK @ENDPROF #EVAL(#YPOFF=1) #RESET(#XSET) #RESET(#YSET) #RESET(#CUTC) #RESET(#DCOMP) G45 M21 #NEXTPT @RAP < #MOV> G40 X#XPOS Y#YPOS M22 @LINE #IF(#V9=0)<#EVAL(#DCOMP=1)> #IF(#DCOMP=0)<#EVAL(#XSET=COS(#U1))#EVAL(#YSET=SIN(#U1)) #MOV X#XSET Y#YSET #MOV X#XPOS Y#YPOS G40< #C0>> #IF(#DCOMP=0)<#EXIT> #IF(#V9>2)<< #MOV>< X#XPOS>< Y#YPOS>< #DCOMP>#EVAL(#U1=#LNANG)> #IF(#V9>2)<#EXIT> #IF(#V9>=0)<#EVAL(#V9=#V9+1)> #IF(#V9=1)<#EVAL(#XSET=#XPOS)#EVAL(#YSET=#YPOS) #UPDATE(#XPOS,#YPOS)> #IF(#V9=2)<#EVAL(#V7=#V7+1)> #IF(#V8=0)<#EVAL(#V7=#V7+1)> #IF(#V7=3)< D#DOFF T#TOOL P#FMT(#V1,F2.0)< S#FMT(#V2,F2.0)> G43 #ONBLK G01< X#XPOS>< Y#YPOS> G44#EVAL(#U1=#LNANG) G01< X#XSET>< Y#YSET> G40 #RESET(#CUTC) #EVAL(#ZSET=0) #EVAL(#V7=#V7+1) #EVAL(#V8=#V8+1) #EVAL(#V9=#V9+1)> #IF(#V9=2,AND#C3=1)< #C3> #IF(#V9=2)< D#DOFF T#TOOL P#FMT(#V1,F2.0)#EXLN < S#FMT(#V2,F2.0)> G43 #ONBLK G01< X#XPOS>< Y#YPOS> G44#EVAL(#U1=#LNANG) G01< X#XSET>< Y#YSET> G40 #EVAL(#V9=#V9+1)> @ARC #IF(#V9>=0)<#EVAL(#V9=#V9+1)> #IF(#V9>2)< #EVAL(#EANG=#STANG+#TANG) #IF(#MOV=2)<#EVAL(#U1=#EANG-90)>#ELSE<#EVAL(#U1=#EANG+90)> #MOV< X#XPOS>< Y#YPOS> I#XCTR J#YCTR< #DCOMP>> #IF(#V9=1)<#EVAL(#XSET=#XPOS)#EVAL(#YSET=#YPOS) #UPDATE(#XPOS,#YPOS)> #IF(#V9=2)<#EVAL(#V7=#V7+1)> #IF(#ZSET=1)<#EVAL(#V7=3) #EVAL(#ZSET=0)> #IF(#V7=3) G43 #EVAL(#EANG=#STANG+#TANG) #IF(#MOV=2)<#EVAL(#U1=#EANG-90)>#ELSE<#EVAL(#U1=#EANG+90)> #ONBLK #MOV< X#XPOS>< Y#YPOS> I#XCTR J#YCTR G44 G01< X#XSET>< Y#YSET> G40 #RESET(#CUTC) #EVAL(#V7=#V7+1) #EVAL(#V8=#V8+1) #EVAL(#V9=#V9+1)> #IF(#V9=2)<#ONBLK #C3 D#DOFF T#TOOL P#FMT(#V1,F2.0)#EXLN < S#FMT(#V2,F2.0)> G43 #EVAL(#EANG=#STANG+#TANG) #IF(#MOV=2)<#EVAL(#U1=#EANG-90)>#ELSE<#EVAL(#U1=#EANG+90)> #MOV< X#XPOS>< Y#YPOS> I#XCTR J#YCTR G44 G01< X#XSET>< Y#YSET> G40 #EVAL(#V9=#V9+1)> #IF(#V9>0)<#EXIT> @OPSTOP M00 @STOP M00 #EVAL(#V7=4) @CUT #EVAL(#C2=1) #C2 #EVAL(#V7=4) #EVAL(#V8=4) #EVAL(#V3=1) @TECH D#DOFF T#TOOL P#FMT(#V1,F2.0)< S#FMT(#V2,F2.0)> G43 #RESET(#DCOMP) @