; G-code for oxford using Fusion 360. ; Author: Prashant Patil. ;=================================================== ; ==== DEFINING LOOP VARIABLES ==== ;=================================================== DVAR $LASER_POWER_2D Contour1 DVAR $FEEDRATE_2D Contour1 DVAR $IL_PASSES_2D Contour1 DVAR $OL_PASSES_2D Contour1 DVAR $RAPID_FEED_RATE DVAR $DO_ALIGNMENT DVAR $IL_PASSES_COUNT DVAR $OL_PASSES_COUNT ; Variables for alignment using alignment marks DVAR $XONE, $YONE, $XTWO, $YTWO, $DELTA_X, $DELTA_Y, $ANGLE ;=================================================== ; ==== ASSIGN VALUES TO LOOP VARIABLES ==== ;=================================================== $LASER_POWER_2D Contour1 = 10 $FEEDRATE_2D Contour1 = 0.01 $IL_PASSES_2D Contour1 = 1 $OL_PASSES_2D Contour1 = 5 $RAPID_FEED_RATE = 1 ; RAPID MOVE FEED RATE ;=================================================== ;=================================================== ; ======== SETTING INITIAL MACHINE SETTINGS ======= ;=================================================== ; Set distance mode as absolute: G90 G90 ; Set units as Metric: G71 G71 ; Set feedrate unit as units per second G76 ; Set No deacceleration to zero velocity G108 ; Set current location as origin. G92 X0 Y0 Z0 ; Moving close to CAM origin. G0 X0 Y-2 MSGDISPLAY 1, "Move to the CAM origin" M00 ; Set this new location as X Y origin. G92 X0 Y0 ; Set Beam OFF BEAMOFF MSGCLEAR -1 ; Dispaly message to User: Program started MSGDISPLAY 1, "Program Started" ;=================================================== ;=================================================== ; ============= TWO POINT ALIGNMENT ================ ;=================================================== MSGMENU (DF_MENU_REMOVE), -1 "" MSGMENU (DF_MENU_ADD), 1 "RESET_ALIGNMENT (Default)" MSGMENU (DF_MENU_ADD), 2, "SET_ALIGNMENT" MSGMENU (DF_MENU_ADD), 3, "KEEP_ALIGNMENT" $DO_ALIGNMENT = MSGMENU (DF_MENU_SHOW), (DF_MSGBOX_OKCANCEL), "Select the desired alignment option;Alignment Options;", 1 IF( $DO_ALIGNMENT == 1 ) THEN MSGDISPLAY 0, "Resetting alignment to ZERO.." G84 X Y ELSEIF( $DO_ALIGNMENT == 2 ) THEN MSGDISPLAY 0, "Setting alignment angle" G84 X Y MSGDISPLAY 1, "Move to the Fiducial Mark ONE" G0 X-2 Y0 M00 $XONE = AXISSTATUS(X, DATAITEM_PositionCommand) $YONE = AXISSTATUS(Y, DATAITEM_PositionCommand) MSGDISPLAY 1, "Move to the Fiducial Mark TWO" G0 X2 Y0 M00 $XTWO = AXISSTATUS(X, DATAITEM_PositionCommand) $YTWO = AXISSTATUS(Y, DATAITEM_PositionCommand) $DELTA_X = $XTWO-$XONE $DELTA_Y = $YTWO-$YONE $ANGLE = ATAN2($DELTA_Y,$DELTA_X)*180/3.1415926 IF $ANGLE < 0 THEN $ANGLE = 360+$ANGLE ENDIF G0X0Y0 MSGDISPLAY 1, "Applying a rotation of" $ANGLE G84 X Y F$ANGLE ELSEIF( $DO_ALIGNMENT == 3 ) THEN ENDIF ;==================================================== ; ==== START OF OUTER LOOP FOR SECTION: 2D Contour1 ==== ;==================================================== MSGDISPLAY 1, "CUREENT_SECTION: 2D Contour1" ; Set laser power percentage MSGDISPLAY 1, "Setting Laser Power to " $LASER_POWER_2D Contour1 "%" FARCALL "ATTENUATOR.PGM" s$LASER_POWER_2D Contour1 MSGDISPLAY 1, "Setting FEEDRATE to " $FEEDRATE_2D Contour1 "mm/sec" F$FEEDRATE_2D Contour1 E$FEEDRATE_2D Contour1 $OL_PASSES_COUNT = 1 RPT $OL_PASSES_2D Contour1 MSGDISPLAY 1, "2D Contour1: OL_PASSES = "$OL_PASSES_COUNT G0 X-18.0069 Y0.0020 F$RAPID_FEED_RATE ;(RAPID_MOVE) G0 X-18.0069 Y0.0020 F$RAPID_FEED_RATE ;(RAPID_MOVE) ; ==== INNER LOOP for section: 2D Contour1 ==== ;=================================================== MSGDISPLAY 1, "INNER_LOOP FOR SECTION: 2D Contour1" $IL_PASSES_COUNT = 1 RPT $IL_PASSES_2D Contour1 MSGDISPLAY 1,"2D Contour1: IL_PASSES = "$IL_PASSES_COUNT G1 X-18.0069 Y0.0020 ;(PLUNGE) BEAMON G1 X-18.0069 Y0.0020 ;(PLUNGE) BEAMON G1 X-18.0059 Y0.0020 ;(PLUNGE) BEAMON ; MOVEMENT_LEAD_IN G1 X-18.0049 Y0.0020 Z0.0000 ;(LEAD_IN) G1 X-18.0039 Y0.0030 Z0.0000 ;(LEAD_IN) ; MOVEMENT_FINISH_CUTTING F$FEEDRATE_2D Contour1 E$FEEDRATE_2D Contour1 G2 X-16.9973 Y0.0614 I0.5050 J0.0001 G1 X-15.6261 Y0.0614 Z0.0000 G1 X-15.6261 Y2.5557 Z0.0000 G2 X-15.4954 Y3.5572 I0.0654 J0.5008 G2 X-15.4961 Y2.5556 I-0.0654 J-0.5008 G1 X-15.4961 Y0.0614 Z0.0000 G1 X16.9986 Y0.0614 Z0.0000 G2 X17.9992 Y-0.0768 I0.5003 J-0.0691 G2 X16.9975 Y-0.0686 I-0.5003 J0.0691 G1 X-14.4743 Y-0.0686 Z0.0000 G1 X-14.4743 Y-2.5553 Z0.0000 G2 X-14.5996 Y-3.5576 I-0.0626 J-0.5011 G2 X-14.6043 Y-2.5559 I0.0626 J0.5011 G1 X-14.6043 Y-0.0686 Z0.0000 G1 X-16.9990 Y-0.0686 Z0.0000 G2 X-18.0039 Y0.0030 I-0.4999 J0.0716 ; MOVEMENT_LEAD_OUT BEAMOFF $IL_PASSES_COUNT = $IL_PASSES_COUNT + 1 ENDRPT ; == END OF INNER LOOP for: 2D Contour1 G1 X-18.0049 Y0.0040 ;(LEAD_OUT) G1 X-18.0059 Y0.0040 ;(LEAD_OUT) G1 X-18.0069 Y0.0040 ;(LEAD_OUT) G0 X-18.0069 Y0.0040 F$RAPID_FEED_RATE ;(RAPID_MOVE) $OL_PASSES_COUNT = $OL_PASSES_COUNT + 1 ENDRPT ;==== END OF OUTER LOOP FOR 2D Contour1====== ;==================================================== ; ===== Closing program ===== BEAMOFF ; Move to the origin. G1 X0 Y0 Z0 ; UNDO COORDINATE ROTATION MSGDISPLAY 1, "Program Finished." ; End of program code: M2 M2