NoneNoneNoneClick Center If%+.4f<&PNoneNoneNone If Indicating%+.4fPd NoneNoneMillBitmaps\grayZero4.jpgLabel%+.4f*N NoneNoneMillBitmaps\grayZeroZ.jpgLabel%+.4f*N NoneNoneMillBitmaps\grayZeroY.jpgLabel%+.4f*aNNoneNoneMillBitmaps\grayZeroX.jpgLabel<.%+.4f*.NX NoneNoneMillBitmaps\grayZero4.jpgLabel%+.4f NoneNoneMillBitmaps\grayZeroZ.jpgLabel%+.4f NoneNoneMillBitmaps\grayZeroY.jpgLabel%+.4fVNoneNoneMillBitmaps\grayZeroX.jpgLabel<.%+.4f+U NoneNoneNoneLabel%+.4f)  Load WizardsNoneNoneLabel@%+.4f4?S  NFS WizardsNoneNone NFS WizardsA%+.4f4Vj  Load G-CodeNoneNoneLabel%+.4fzNoneNone MillBitmaps\BackgroundManual.jpgLabel%+.4f!Fixture 6 (G59)g59NoneLabel%+.4f( !Fixture 5 (G58)g58NoneLabel%+.4f(!Fixture 4 (G57)g57NoneLabel%+.4f)!Fixture 3 (G56)g56NoneLabel%+.4f(!Fixture 2 (G55)g55NoneLabel%+.4f(!Fixture 1 (G54)g54NoneLabel%+.4f(NoneNoneNoneCOSYS %+.4f9_s"None>DoButton( 24 ) DoButton( 23 ) DoButton( 22 ) DoButton( 25 )MillBitmaps\Refallgry2.jpgLabeli$%+.4f+ NoneNoneMillBitmaps\MachineCoords.jpgLabel%+.4f   NoneNoneMillBitmaps\ToolOffsetOnOff.jpgNonep %+.4f9m"NoneTool_Num = GetDRO (24) If Tool_Num <>0 then Z_Shift = GetOEMDRO (1002) Z_Offset = GetOEMDRO ( 49 ) Axis_Pos = GetOEMDRO(85) Tool_Offset = Axis_Pos - Z_Offset -Z_Shift Call setOEMDRO(42, Tool_Offset) End if MillBitmaps\SetToolOffset.jpgLabel%+.4fB+t"NoneHCode "G92.2" 'Call SetDRO(24,0) Call SetDRO(2, ABS(GetOEMDRO(1001)))MillBitmaps\SetZ.jpgLabelP"%+.4fzNq NoneNoneMillBitmaps\SaveToolOffsets.jpgLabely%+.4f8It NoneNoneMillBitmaps\SaveWorkOffsets.jpgLabelz%+.4foI)t"Nonecode "(No Help Available)" MillBitmaps\HelpWorkOffset.jpgNoneone%+.4fIXt"Nonecode "(No Help Available)" MillBitmaps\HelpToolOffset.jpgNone%+.4f>@k 2NoneNoneMillBitmaps\JogSlow-.jpgLabelp%+.4f&S  2NoneNoneMillBitmaps\Jogslow+.jpgLabelo%+.4f  2NoneNoneMillBitmaps\JogButtony-.jpgLabel6%+.4fj 2NoneNoneMillBitmaps\JogButtony+.jpgLabel5Non%+.4fh1\ 2NoneNoneMillBitmaps\JogButtonx-.jpgLabel4%+.4fQ\ 2NoneNoneMillBitmaps\JogButtonx+.jpgLabel3Non%+.4f^ 2NoneNoneMillBitmaps\JogButtonz-.jpgLabel8%+.4f 2NoneNoneMillBitmaps\JogButtonz+.jpgLabel7Non%+.4f0[ 2NoneNoneMillBitmaps\JogButtonA+.jpgLabel9Non%+.4f'0[[ 2NoneNoneMillBitmaps\JogButtonA-.jpgLabel:%+.4f'^ 2NoneNoneMillBitmaps/JogMultiStep.jpgLabel2%+.4fs 2NoneNoneMillBitmaps/JogSingleStep.jpgLabel1%+.4fs 2NoneNoneMillBitmaps/JogStepVelocity.jpgLabel0%+.4fss 2NoneNoneMillBitmaps/JogVelocityOnly.jpgLabel/%+.4fs[r8NoneNoneNoneLabelS%+.4faq8NoneNoneNoneLabelS%+.4fUa]q Jog ON/OFF Ctrl-Alt-JNoneLabelgJ%+.4f_VsNoneNoneNone Abs Coords%+%+.4f,< NoneNoneNoneLabel%%+.4ftUk NoneNoneNoneLabel+%.3f8NoneNoneNoneLabel%+.4fr NoneNoneNoneLabel*%.3fNoneNoneNoneLabel%2.0f NoneNoneNoneNone/%+.4f!g NoneNoneNoneNone1%+.4f! NoneNoneNoneNone0%+.4f! NoneNoneNoneNone2%+.4f!"None7Code "G92.2" Call SetDRO(0, ABS(GetOEMDRO(1000))/-2) MillBitmaps\select2.jpgLabel%+.4f q%"None4Code "G92.2" Call SetDRO(0, ABS(GetOEMDRO(1000))/2)MillBitmaps\select2.jpgLabel%+.4f_>u"None7Code "G92.2" Call SetDRO(1, ABS(GetOEMDRO(1000))/(-2))MillBitmaps\select2.jpgLabel%+.4f^%"None6Code "G92.2" Call SetDRO(1, ABS(GetOEMDRO(1000))/(2))MillBitmaps\select2.jpgLabel%+.4f Aqx"None"Call SetDRO(0,0) Call SetDRO(1,0)MillBitmaps\TouchImageC2.jpgLabele3.j%+.4f NoneNoneNoneLabel%%+.4fUok NoneNoneNoneLabel%%+.4f@!NoneG50MillBitmaps\scalingoff.jpgLabel%+.4f/"Nonevx = GetUserDRO( 1000 ) y = GetUserDRO( 1001 ) z = GetUserDRO( 1002 ) code "G0G53Z" & z code "G53X" & x & "Y" & y MillBitmaps\gotoVariable.jpgLabel%+%+.4f> "Nonex = GetABSPosition(0) y = GetABSPosition(1) z = GetABSPosition(2) SetUserDRO 1000, x SetUserDRO 1001, y SetUserDRO 1002, z MillBitmaps\SetVariable.jpgLabel%+%+.4f" "NoneCloseTeachFileMillBitmaps\StopTeach.jpgLabelV%+.4f>u"NoneOpenTeachFile "MDITeach.tap"MillBitmaps\StartTeach.jpgLabelop.j%+.4fu" NoneNoneMillBitmaps\loadEdit.jpgLabel\%+.4f=)rNoneNoneMillBitmaps\StopEsc.jpgLabel%+.4f)"rNoneNoneMillBitmaps\Verify3.jpgLabelV%+.4f"k1 NoneNoneMillBitmaps\DeRefAxes.jpgLabel%+.4fY12NoneNoneMillBitmaps\BackgroundJog.jpgLabel%+.4fNoneNoneNoneSpeed and Feed%+.4fNoneNoneMillBitmaps\verify2.jpgLabelV}%+.4f5S NoneNoneMillBitmaps\Safez.jpgLabelhZ%+.4fS.NoneNoneMillBitmaps\Gotoz.jpgLabel%+.4fsSNoneNoneMillBitmaps\MachineCoord.jpgLabel%+.4fRkNoneNoneMillBitmaps\refAllgry2.jpgLabel%+.4fD(+"Nonevalue = GetParam("Boundry") if value = 1 then 'SetButtonText " Job " SetParam "Boundry" , 0 else SetParam "Boundry" , 1 'SetButtonText "Machine" end ifMillBitmaps\DisplayMode.jpgLabel%+.4f@v NoneNoneMillBitmaps\JogFollow.jpgLabel%+.4f@cv NoneNoneMillBitmaps\RegenToolpath.jpgLabel%+.4fAw"Nonevalue = GetParam("Boundry") if value = 1 then 'SetButtonText " Job " SetParam "Boundry" , 0 else SetParam "Boundry" , 1 'SetButtonText "Machine" end ifMillBitmaps\DisplayMode.jpgLabel%+.4f NoneNoneMillBitmaps\regentoolpath.jpgLabel%+.4f NoneNoneMillBitmaps\reverserun.jpgLabel%+.4f wNoneNoneMillBitmaps\SingleBlk.jpgLabelN%+.4f {wNoneNoneMillBitmaps\rewind.jpgLabelW%+.4f|NoneNoneMillBitmaps\cyclestop.jpgLabelS%+.4fNoneNoneMillBitmaps\Feedhold3.jpgLabel %+.4fNoneNoneMillBitmaps\cyclestart3.jpgLabelR%+.4fy NoneNoneMillBitmaps\offline.jpgLabel%+.4f^18NoneNoneMillBitmaps\BoxLEDGreen.pngNone%+.4f,8NoneNoneMillBitmaps\BoxLEDRed.pngNone%+.4fe. NoneNoneNoneLabel%4.2fNoneNoneNone Units/Min%+.4fNoneNoneNone Units/Rev%+.4f NoneNoneNoneLabel:%4.2fNoneNoneMillBitmaps\Small Reset.jpgLabel%+.4f] NoneNoneMillBitmaps\speed+.jpgNonelzLabe%+.4f4\ NoneNoneMillBitmaps\speed-.jpgNonemy%+.4f NoneNoneMillBitmaps\Small Reset.jpgLabel%+.4f^ NoneNoneMillBitmaps\speed+.jpgLabelk%+.4f5] NoneNoneMillBitmaps\speed-.jpgLabelm%+.4f OverRide%NoneNone OverRide%%+.4f!| NoneNoneMillBitmaps\BlueDro.pngSkinnedJ%3.0f~NoneNoneNoneF%+.4fi}NoneNoneNoneLabel%4.2fi} NoneNoneNoneLabel7%4.2fNbNoneNoneNoneFRO%+.4fOc NoneNoneMillBitmaps\BlueDro.pngSkinned'%.0fPbvNoneNoneNoneRPM%+.4f$bPvNoneNoneNone%%+.4fNoneNoneNoneLabel%3.0f8NoneNoneNoneLabel%+.4fAI8NoneNoneNoneLabel %+.4f%4=  Spindle CW F5M3NoneLabelnt%+.4f#AUS ovNoneNoneS ov%+.4f&|G NoneNoneMillBitmaps\BlueDro.pngSkinned%.0f9"None>DoButton( 24 ) DoButton( 23 ) DoButton( 22 ) DoButton( 25 )MillBitmaps\Refallgry2.jpgLabeli$<.%+.4f -%NoneNoneNoneFile%+.4f=J\ NoneNoneMillBitmaps\machinecoord.jpgNone%+.4f18NoneNoneNoneLabelC%+.4f\8NoneNoneNoneLabel)%+.4fM5k= NoneNoneNoneLabel;%+.4f-GoZ8NoneNoneNoneLabel*%+.4fMgko NoneNoneNoneLabel<%+.4f-zo NoneNoneNoneLabel=%+.4f-o8NoneNoneNoneLabel+%+.4fMk8NoneNoneNoneLabel%+.4f`hNoneNoneMillBitmaps\GreenDRO.pngSkinnedA%+.4faNoneNoneMillBitmaps\GreenDRO.pngSkinnedZ%+.4faNoneNoneMillBitmaps\GreenDRO.pngSkinnedY%+.4fahNoneNoneMillBitmaps\GreenDRO.pngSkinnedX%+.4f`6Y8NoneNoneNoneLabel'%+.4fR-Z[8NoneNoneNoneLabel(%+.4fRaZ8NoneNoneNoneLabel)%+.4fRZ8NoneNoneNoneLabel*%+.4fRZ8NoneNoneNoneLabel%+.4fNoneNoneMillBitmaps\stopbutton.jpgLabelS%+.4f d*NoneNoneMillBitmaps\Feedhold2.jpgLabel %+.4f cNonefffMillBitmaps\cyclestart.jpgNoneR%+.4f~f NoneNoneMillBitmaps\BlueDro.pngSkinned%.0fn/S-ovNoneNoneS-ov%+.4fEl/  Spindle CW F5M3None Spindle CW F5nt%+.4fP8NoneNoneMillBitmaps\BoxLEDYellow.pngNone %+.4fJ8NoneNoneNoneLabel%+.4fNoneNoneNoneRPM%+.4fFr NoneNoneMillBitmaps\BlueDro.pngSkinned'%.0fyNoneNoneNoneFRO%+.4f NoneNoneMillBitmaps\YellowDro.pngSkinned7%4.2f NoneNoneMillBitmaps\YellowDro.pngSkinned%4.2f% 9FeedrateNoneNoneFeedrate%+.4f# NoneNoneMillBitmaps\Small Reset.jpgNone%+.4f"Nonevalue = GetParam("Boundry") if value = 1 then 'SetButtonText " Job " SetParam "Boundry" , 0 else SetParam "Boundry" , 1 'SetButtonText "Machine" end ifMillBitmaps\Displaymode.jpgLabel0%+.4fh@k NoneNoneMillBitmaps\jogfollow.jpgLabel<.%+.4f@k NoneNoneMillBitmaps\Regentoolpath.jpgLabel<.%+.4f@fk NoneNoneMillBitmaps\grayZero4.jpgLabel%+.4f NoneNoneMillBitmaps\grayZeroZ.jpgLabel%+.4f NoneNoneMillBitmaps\grayZeroY.jpgLabel%+.4fdNoneNoneMillBitmaps\grayZeroX.jpgNone<.%+.4f0X NoneMillBitmaps\softlimits.jpgLabelwB%+.4f) NoneNoneMillBitmaps\MachineCoord.jpgLabelPD%+.4fj*"NoneqDoButton( 24 ) DoButton( 23 ) DoButton( 22 ) DoButton( 25 ) DoOEMButton(133) DoOEMButton(134) DoOEMButton(135) MillBitmaps\Refallgry2.jpgLabel$%+.4f+NoneNoneNone Time in Int.%+.4f"* NoneNoneNoneLabel%+.1fU)8NoneNoneNoneLabel%+.4fGWNoneNoneNoneEJogA+%+.4fGWNoneNoneNoneEJogZ+%+.4flGW8NoneNoneNoneLabel}%+.4fUGeWNoneNoneNoneEJogY+%+.4fGJW8NoneNoneNoneLabel{%+.4fG WNoneNoneNoneEJogX++%+.4fGW8NoneNoneNoneLabely%+.4fGW8NoneNoneNoneLabel%+.4fYiNoneNoneNoneEJogA-%+.4f[kNoneNoneNoneEJogZ-%+.4fl[k8NoneNoneNoneLabel~%+.4fUYeiNoneNoneNoneEJogY-%+.4f[Jk8NoneNoneNoneLabel|%+.4fY iNoneNoneNoneEJogX--%+.4f[k8NoneNoneNoneLabelz%+.4fYi 2NoneNoneNoneLabel~%4.2fQ/8NoneNoneNoneLabelS%+.4f8NoneNoneNoneLabelS%+.4fIQ Jog ON/OFF Ctrl-Alt-JNoneLabelgJ%+.4fI8NoneNoneMillBitmaps\BoxLEDGreen.pngNoneS%+.4fL]e Jog ON/OFF Ctrl-Alt-JNoneLabelgJ%+.4fOUb82NoneNoneNoneLabelS%+.4f82NoneNoneNoneLabelS%+.4f<D 2Jog ON/OFF Ctrl-Alt-JNoneLabelgJ%+.4f<8NoneNoneNoneLabelS%+.4f 2ModeNoneNoneLabel.%+.4f+O? 2NoneNoneNoneLabel|%+3.0fv 2CALNoneNoneLabel;%+.4f+?82NoneNoneNoneLabelv%+.4fs82NoneNoneNoneLabelu%+.4f^p82NoneNoneNoneLabelx%+.4f82NoneNoneNoneLabelw%+.4f2NoneNoneNoneA%+.4f 2Alt BNoneNoneLabelB%+.4f/`2NoneNoneNoneC%+.4f82NoneNoneNoneLabelg%+.4f2NoneNoneNoneB%+.4f82NoneNoneNoneLabelf%+.4f82NoneNoneNoneLabele%+.4ft~2NoneNoneNoneZ%+.4f82NoneNoneNoneLabeld%+.4f2NoneNoneNoneY%+.4f82NoneNoneNoneLabelc%+.4f2NoneNoneNoneX%+.4f82NoneNoneNoneLabelb%+.4ft~2NoneNoneNone2nd Axis%+.4f/`2NoneNoneNoneLabel%.4fPb2NoneNoneNoneStep%+.4f8M82NoneNoneNoneNone%+.4ffs2Cont.NoneNoneCont.%+.4fs82NoneNoneNoneNone%+.4ffs2StepNoneNoneStep%+.4fs 2NoneNoneNoneLabel%3.1f_2NoneNoneNoneShift Jog to Override Jog Mode%+.4f; 2Up )NoneNoneLabelo%+.4f@ 2Dn (NoneNoneLabelp%+.4f 2Cycle Jog StepNoneNoneLabelJH %+.4f%Pd2MPGNoneNoneMPG%+.4fs82NoneNoneNoneNone9%+.4ffs82NoneNoneNoneLabel:%+.4frfs2NoneNoneNoneMPG Axis%+.4f0{a82NoneNoneNoneLabel;%+.4ft~2NoneNoneNoneX%+.4f82NoneNoneNoneLabel<%+.4f2NoneNoneNoneY%+.4f82NoneNoneNoneLabel=%+.4f2NoneNoneNoneZ%+.4f82NoneNoneNoneLabel>%+.4ft~82NoneNoneNoneLabel?%+.4f2NoneNoneNoneB%+.4f82NoneNoneNoneLabel@%+.4f2NoneNoneNoneC%+.4f 2Alt ANoneNoneLabelA%+.4f._ 2Jog ModeNoneNoneLabelJ%+.4f%gp{2NoneNoneNoneA%+.4f 2 Shuttle ModeNoneNoneLabel%+.4f%:N82NoneNoneNoneLabelj%+.4f;K FeedHold NoneNoneLabel %+.4f28NoneNoneNoneLabela%+.4f(Z NoneNoneNoneLabelh%3.2f\o8NoneNoneNoneLabelm%+.4fp]m  Rapid OvRdNoneNoneLabel%+.4f\lp RememberNoneNoneLabel%+.4f) Return NoneNoneLabel%+.4fO) NoneNoneNoneLabelv2f%+.1f8NoneNoneNoneLabell%+.4f:l  Last WizardNoneNoneLabel%+.4f?S8NoneNoneMillBitmaps\BlueLED.pngNonea%+.4f  Reverse RunNoneNoneLabel%+.4f NoneNoneNoneLabelgn%+.2f- NoneNoneNoneLabelfn%+.2fp. NoneNoneNoneLabelen%+.2fV.mNoneNoneNoneCount%+.4f>#RNoneNoneNoneVelocity%+.4f|>RNoneNoneNoneMPG 3%+.4f*dNoneNoneNoneMPG 2%+.4f*qdNoneNoneNoneMPG 1%+.4f*Ydm NoneNoneNoneLabelqn%+.2fmVm NoneNoneNoneLabelrn%+.2fmp NoneNoneNoneLabelsn%+.2flNoneNoneNoneB%+.4f<hPNoneNoneNoneZ%+.4fI eNoneNoneNoneY%+.4f& BNoneNoneNoneX%+.4f NoneNoneNoneC%+.4f<P8NoneNoneNoneLabel/%+.4f9?8NoneNoneNoneLabel/%+.4fc@mqNoneNoneNone-Y%+.4f%G"NoneNoneNone+X%+.4faNoneNoneNone+Y%+.4f%GNoneNoneNone-X%+.4f NoneNoneMillBitmaps\REDDro.pngSkinned%+.4f:NoneNoneMillBitmaps\REDDro.pngSkinned%+.4f:NoneNoneMillBitmaps\REDDro.pngSkinned%2.0f'NoneNoneNoneH%+.4fNoneNoneNoneDia.%+.4fNoneNoneNoneTool%+.4f8NoneNoneMillBitmaps\BlueLED.pngNoneR%+.4f"Auto Tool ZeroRem HiddenScript.m1s (2020/02/06 1620 Rem programming #7, #17, & #27 & #37 XYZ Rem VBScript To center probe inside the edge-finder hole, And On Any edge rem Vancura Innovations 2006/10/30 creation Date; (copyright 2006 - 2020) rem 9010 33rd ST W rem Rock Island, IL 61201 rem (309) 235-1069 rem edgefinder@vancura.biz rem CAUTION: Do Not change Any Line marked With Dim Or REM! rem NOTE: User changable parameters start at Line 105 rem revisions: rem 2019/10/18: More Speedy fixup Fcn 7 incorporated Fcn17 & 27 Rem 2019/09/20: Added speedy FCN-17 & FCN-27 setup Rem 2019/09/05: Fixed Z operation On Fcn 7 Rem 2019/06/12: Put feed rate On same Line As G0 And G31 commands; Fixed fcn 6 three Read Rem 2019/06/15: major Mod To Seek edges ' Option Explicit ' this forces programmer to list all variables ' Dim tool_1 As Double ' Favorite tool #1 size Dim tool_2 As Double ' Favorite tool #2 size Dim tool_3 As Double ' Favorite tool #3 size Dim SIDE_X As Double ' 0.300" = 7.72mm finder side width X Dim SIDE_Y As Double ' 0.300" = 7.72mm finder side width Y Dim CENTER_X As Double ' Center of hole offset X Dim CENTER_Y As Double ' Center of hole offset Y Dim Z_TOP1 As Double ' Top of edgefinder #1 to workpiece surface Dim Z_TOP2 As Double ' Top of edgefinder #2 to workpiece surface Dim BigMove As Double ' about 1" (25.4mm) move probe this distance looking for edge Dim SmallMove As Double ' about 0.100" (2.54mm) clearance over material Dim FeedSlow As Double ' 4in/min or 100mm/min; Faster sacrifices accuracy, slower increases boredom Dim FeedFast As Double ' 10 x FeedSlow Faster sacrifices accuracy, slower increases boredom Dim safeZ As Double ' === change safe Z height; should clear work-piece ' ==================================================== Dim toolsize As Double ' tool diameter Dim touchoffsetX As Double ' tool + side thickness Dim touchoffsetY As Double ' tool + side thickness Dim FeedCurrent As Double ' feed speed being used Dim Xoffset As Double ' position information Dim Yoffset As Double ' position information Dim XCurrent As Double ' position information Dim YCurrent As Double ' position information Dim ZCurrent As Double ' position information Dim XCenter As Double ' calculated center Dim YCenter As Double ' calculated center Dim ZTOP As Double Dim ZTOP_GOAL As Double ' Desired setting after touch off Dim XNew As Double ' destination of next move Dim YNew As Double ' destination of next move Dim ZNew As Double ' destination of next move Dim XPos1 As Double ' saved temp position Dim YPos1 As Double ' saved temp position Dim ZPos1 As Double ' saved temp position Dim XPos2 As Double ' saved temp position Dim YPos2 As Double ' saved temp position Dim ZPos2 As Double ' saved temp position Dim XAvg As Double ' saved temp value Dim YAvg As Double ' saved temp value Dim ZAvg As Double ' saved temp value Dim XSave As Double ' saved temp value Dim YSave As Double ' saved temp value Dim ZSave As Double ' saved temp value Dim Temp As Double Dim SpeedSetup17_tool As Double Dim SpeedSetup17_finderX As Double Dim SpeedSetup17_finderY As Double Dim SpeedSetup17_top As Double Dim SpeedSetup27_tool As Double Dim SpeedSetup27_finderX As Double Dim SpeedSetup27_finderY As Double Dim SpeedSetup27_top As Double Dim max_error As Double ' allowed max error for a good reading Dim UnitsMode As Double ' 0- Metric, 1 = Inch Dim TopFlag As Double ' 0=Finder 1= Workpiece Dim mymode As Double ' selection: for action; answer to question Dim mytoolsize As Double ' Answer to question Dim myanswer As Double ' Answer to question Dim mySide As Double ' Answer to question Dim toolSelected As Double Dim DefaultTool As Double Dim DefaultHeight As Double Dim DefaultSideX As Double Dim DefaultSideY As Double Dim Zsel As Double Dim cmd1 As Integer Dim cmd2 As Integer Dim cmd3 As Integer ' Dim RetryLimit As Integer ' Loop retry limit Dim LoopCount As Integer ' Loop retry limit ' ' ================================================================= ' ===== CODE STARTS HERE ========================================= ' ================================================================= ' Sub Main code "G52 X0.0 Y0.0 Z0.0" UnitsMode = 7 ' === Dummy value to detect a read error === UnitsMode = GetParam("Units") ' === Determine if Metric (0) or English (1) mode RetryLimit = 3 ' === Loop Retry limit === ' If UnitsMode = 0 Then ' === Set Metric Parameters === ' ======================================================= ' ====== CHANGE HERE to set METRIC mode parameters ====== ' ======================================================= Code "(Operating in mm mode.)" tool_1 = 2.380 ' 3/32" = 2.380mm Favorite tool #1 size tool_2 = 3.175 ' 1/8" = 3.175mm Favorite tool #2 size tool_3 = 6.35 ' 1/4" = 6.350mm Favorite tool #3 size SIDE_X = 7.720 ' 0.300" = 7.720mm finder side width both X SIDE_Y = 7.720 ' 0.300" = 7.720mm finder side width both Y CENTER_X = 00.000 ' mm Center of hole offset X CENTER_Y = 00.000 ' mm Center of hole offset Y Z_TOP1 = 3.81 ' mm Top of edgefinder to workpiece surface Z_TOP2 = 6.35 ' mm Top of edgefinder to workpiece surface BigMove = 25.4 ' 1.000" = 25.400mm move probe this distance looking for edge SmallMove = 2.54 ' 0.100" = 2.540mm clearance over material FeedSlow = 100 ' 4in/min or 100mm/min Faster sacrifices accuracy, slower max_error = 0.025 ' 0.001" = 0.025mm ' ElseIf UnitsMode = 1 Then ' === set INCH mode parameters === ' ======================================================= ' ======= CHANGE HERE to set INCH mode parameters ======= ' ======================================================= Code "(Operating in INCH mode.)" tool_1 = 0.0937 ' 3/32" = 2.380mm Favorite tool #1 size tool_2 = 1/8 ' 1/8" = 3.175mm Favorite tool #2 size tool_3 = 1/4 ' 1/4" = 6.350mm Favorite tool #3 size SIDE_X = 0.300 ' 0.300" = 7.720mm finder side width both X SIDE_Y = 0.300 ' 0.300" = 7.720mm finder side width both Y CENTER_X = 0.000 ' inches Center hole offset X CENTER_Y = 0.000 ' inches Center hole offset Y Z_TOP1 = 0.150 ' inches Top of edgefinder to workpiece surface Z_TOP2 = 0.250 ' inches Top of edgefinder to workpiece surface BigMove = 1.000 ' 1.000" = 25.400mm move probe this distance looking for edge SmallMove = 0.100 ' 0.100" = 2.540mm clearance over material FeedSlow = 4.000 ' 4in/min or 100mm/min Faster sacrifices accuracy, slower max_error = 0.001 ' 0.001" = 0.025mm ' Else Code "(Major Error: Cannot determine if INCH or MM mode.)" Exit Sub ' === if system mode is not zero or one then quit === End If ' ================================================================= While IsMoving() 'Force a display update to show mm/INCH mode Sleep(1) 'Sleep give other processes time to run Wend 'An empty while/wend loop takes almost 100% of computer time ' ' === M Y D E F A U L T I T E M E S === DefaultTool = tool_2 DefaultHeight = Z_TOP1 DefaultSideX = SIDE_X DefaultSideY = SIDE_Y ' ' # 7 & 17 Without finder SpeedSetup17_tool = tool_2 ' speedy setup selector fcn-17 SpeedSetup17_finderX = 0.0 ' speedy setup selector fcn-17 SpeedSetup17_finderY = 0.0 ' speedy setup selector fcn-17 SpeedSetup17_top = 0.0 ' speedy setup selector fcn-17 ' # 7 & 27 With finder SpeedSetup27_tool = tool_2 ' speedy setup selector fcn-27 SpeedSetup27_finderX = SIDE_X ' speedy setup selector fcn-27 SpeedSetup27_finderY = SIDE_Y ' speedy setup selector fcn-27 SpeedSetup27_top = Z_TOP1 ' speedy setup selector fcn-27 safeZ = SmallMove ' === change safe Z height; should clear work-piece FeedFast = FeedSlow * 10 ' === Faster sacrifices accuracy, slower increases boredom ' ================================================================= rem rem === program will Not run If probe is shorted === If GetOemLed (825) <> 0 Then 'Check to see if the probe is already grounded or faulty Code "(Probe is grounded, check clearance and try again)" Else ' === module works in only one mode === If GetOemLed (16) <> 0 Then 'Warning Wrong Coordinate system DoOEMButton(107) Code "(Changing to Normal DRO Mode)" Code "G4 P0.25" ' === Pause 1/4 sec === End If DoSpinStop ' === double check motor is not running === Xoffset = SmallMove Yoffset = SmallMove toolsize = (tool_2)/2 ' === 1/8" tool default tool size === ' === ask user to select an operation to perform. === mymode = Question ("0=Q 1=CTR 2=XL 3=YL 4=XH 5=YH 6=Z 7,8=XYZ") ' Character count 1 ^10 ^20 ^30 ^40 ' If mymode = 0 Then ' === zero quits without doing anything === Code "(0 = Quit)" Exit Sub End If ' === ask more questions if not finding center or Z=0 === If ((mymode = 1) Or (mymode = 8) Or (mymode = 11)) Then ' === do nothing here === ElseIf mymode = 6 Or mymode = 16 Then ' mytoolsize = Question ("Top Offset: 0=None; 1=" & Z_TOP1 &"; 2="& Z_TOP2 &"; 3=More") ' Finder thickness ' If mytoolsize = 0 Then ZTOP_GOAL = 0 ' Find Workpiece Top' ElseIf mytoolsize = 1 Then ZTOP_GOAL = Z_TOP1 ' Find edge finder 1 Top' ElseIf mytoolsize = 2 Then ZTOP_GOAL = Z_TOP2 ' Find edge finder 2 Top' ElseIf mytoolsize = 3 Then ' More Options myanswer = Question ("Enter Finder Thickness: 0=Quit") If (myanswer <=0) Then Exit Sub Else ZTOP_GOAL = (myanswer) End If Else Exit Sub ' QUIT allow only 1, 2, & 3 End If ' ElseIf (((mymode >= 2) And (mymode < 7)) Or (mymode = 12) Or (mymode = 13) Or (mymode = 14) Or (mymode = 15)) Then mytoolsize = Question ("Probe Diam: 0=Quit; 1="& tool_1 & "; 2=" & tool_2 & "; 3=More") If (mytoolsize = 1) Then toolsize = (tool_1) /2 ElseIf (mytoolsize = 2) Then toolsize = (tool_2) /2 ElseIf (mytoolsize = 3) Then myanswer = Question ("Enter Probe Diameter: 0=Quit") If (myanswer <=0) Then Exit Sub Else toolsize = (myanswer) /2 End If Else 'If (mytoolsize <= 0) Then Exit Sub End If ' mySide = Question ("Edge Compensation: 0=quit 1=EdgeFinder 2=None") ' Character count 1 ^10 ^20 ^30 ^40 If mySide = 2 Then touchoffsetX = toolsize ' Touch to work_piece touchoffsetY = toolsize ' Touch to work_piece Code "(Using Offset for Work Piece)" ElseIf mySide = 1 Then touchoffsetX = toolsize + SIDE_X ' Touch to edgefinder touchoffsetY = toolsize + SIDE_Y ' Touch to edgefinder Code "(Using Offset for Edge Finder)" Else Exit Sub End If ElseIf (mymode = 7) Then myanswer = Question ("1=Finder_Fast, 2=Work-piece_Fast, 3=Manual") If (myanswer = 2) Then ' To the work piece touchoffsetX = SpeedSetup17_tool/2 + SpeedSetup17_finderX ' Touch to edgefinder touchoffsetY = SpeedSetup17_tool/2 + SpeedSetup17_finderY ' Touch to edgefinder ZTOP_GOAL = SpeedSetup17_top myanswer = Question ("Ready? 0=NO 1-2=YES") If myanswer <= 0 Then Exit Sub ElseIf (myanswer =1) Then ' To the Edge finder touchoffsetX = SpeedSetup27_tool/2 + SpeedSetup27_finderX ' Touch to edgefinder touchoffsetY = SpeedSetup27_tool/2 + SpeedSetup27_finderY ' Touch to edgefinder ZTOP_GOAL = SpeedSetup27_top myanswer = Question ("Ready? 0=NO 1-2=YES") If myanswer <= 0 Then Exit Sub ElseIf (myanswer = 3) Then ' Custom setup mytoolsize = Question ("Probe Diam: 0=Quit; 1="& tool_1 & "; 2=" & tool_2 & "; 3=More") If (mytoolsize = 1) Then toolsize = (tool_1) /2 ElseIf (mytoolsize = 2) Then toolsize = (tool_2) /2 ElseIf (mytoolsize = 3) Then myanswer = Question ("Enter Probe Diameter: 0=Quit") If (myanswer <=0) Then Exit Sub Else toolsize = (myanswer) /2 End If Else 'If (mytoolsize <= 0) Then Exit Sub End If mytoolsize = Question ("Top Offset: 0=None; 1=" & Z_TOP1 &"; 2="& Z_TOP2 &"; 3=More") ' Finder thickness ' If mytoolsize = 0 Then ZTOP_GOAL = 0 ' Find Workpiece Top' ElseIf mytoolsize = 1 Then ZTOP_GOAL = Z_TOP1 ' Find edge finder 1 Top' ElseIf mytoolsize = 2 Then ZTOP_GOAL = Z_TOP2 ' Find edge finder 2 Top' ElseIf mytoolsize = 3 Then ' More Options myanswer = Question ("Enter Finder Thickness: 0=Quit") If (myanswer <=0) Then Exit Sub Else ZTOP_GOAL = (myanswer) End If Else Exit Sub ' QUIT allow only 1, 2, & 3 End If Else Exit Sub End If ElseIf mymode = 8 Then ' === XYZ with center hole === touchoffsetX = DefaultTool + SIDE_X ' Touch to edgefinder touchoffsetY = DefaultTool + SIDE_Y ' Touch to edgefinder ZTOP_GOAL = Z_TOP1 ElseIf (mymode = 17) Then touchoffsetX = SpeedSetup17_tool/2 + SpeedSetup17_finderX ' Touch to edgefinder touchoffsetY = SpeedSetup17_tool/2 + SpeedSetup17_finderY ' Touch to edgefinder ZTOP_GOAL = SpeedSetup17_top ElseIf (mymode = 27) Then touchoffsetX = SpeedSetup27_tool/2 + SpeedSetup27_finderX ' Touch to edgefinder touchoffsetY = SpeedSetup27_tool/2 + SpeedSetup27_finderY ' Touch to edgefinder ZTOP_GOAL = SpeedSetup27_top ' ElseIf (mymode = 700) Then ' xyz, 0=surface, 2=tool_1 ' touchoffsetX = tool_1 ' Touch to edgefinder ' touchoffsetY = tool_1 ' Touch to edgefinder ' ZTOP_GOAL = SpeedSetup17_top ' ElseIf (mymode = 710) Then ' xyz; 1=finder; 2=tool_0 ' touchoffsetX = SIDE_X + tool_1 ' Touch to edgefinder ' touchoffsetY = SIDE_Y + tool_1 ' Touch to edgefinder ' ZTOP_GOAL = SpeedSetup27_top ' ElseIf (mymode = 720) Then ' xyz; 1=finder; 2=tool_0 ' touchoffsetX = SIDE_X + tool_2 ' Touch to edgefinder ' touchoffsetY = SIDE_Y + tool_2 ' Touch to edgefinder ' ZTOP_GOAL = SpeedSetup27_top ElseIf (Int(mymode/100) <= 0) Then Exit Sub Else cmd1 = Int(mymode/100) cmd2 = Int((mymode - cmd1*100)/10) cmd3 = mymode - cmd1*100 - cmd2*10 End If ' FeedCurrent = GetOemDRO(818) 'Get the current settings code "G52 X0 Y0 Z0" XCurrent = GetOEMDRO(800) ' location of tool X position YCurrent = GetOEMDRO(801) ' location of tool Y position ZCurrent = GetOEMDRO(802) ' location of tool Z position Code "G4 P1" 'Pause 1 second to give time to position probe plate '======================================== If cmd1 >= 0 Then Go_Mode_100 ' returns with cmd1 End If ' '=========================================== If (cmd1 <1) Or (cmd1>8) Then Exit Sub '=========================================== ElseIf (mymode = 1 Or mymode = 8 Or mymode = 11 Or cmd1 = 1) Then ' === FIND CENTER OF HOLE) === Go_Mode_1 '=================================== ElseIf ((mymode = 2) Or (mymode = 12) Or (cmd1 = 2)) Then '=================================== Go_Mode_2 '=================================== ElseIf ((mymode = 3) Or (mymode = 13) Or (cmd1 = 3)) Then Go_Mode_3 '=================================== ElseIf ((mymode = 4) Or (mymode = 14) Or (cmd1 = 4)) Then Go_Mode_4 '=================================== ElseIf ((mymode = 5) Or (mymode = 15) Or (cmd1 = 5)) Then Go_Mode_5 '=================================== ElseIf mymode = 6 Or (cmd1 = 6) Then '==== Z TOP ==== Go_Mode_6 '=================================== ElseIf mymode=7 Or mymode=17 Or mymode=27 Or cmd1= 7 Then '==== X Y Z ==== Go_Mode_7 '=================================== ElseIf mymode = 8 Or mymode = 37 Or cmd1 = 8 Then ' === XYZ with center hole === Go_Mode_8 '=================================== ElseIf mymode = 9 Then ' === Dummy routine === toolsize = (tool_2) /2 '=================================== '=================================== End If '=================================== Rem: === Restore original feedrate === Code "G01 F" &FeedCurrent ' This does not move but does set the Feedrate back to original While IsMoving() 'Wait for stop signal Sleep(1) Wend If(LoopCount > RetryLimit) Then ' see if process timed out Code "(=== DONE === Caution Retry limit was exceeded ===)" Else Code "(=== SUCCESS DONE ===)" End If End If End Sub ' Sub Main() ' ============================ ' === E N D O F M A I N === ' ============================ ' ' ========================================================= ' ========================================================= ' ========= S T A R T O F S U B R O U T I N E S ========= ' ========================================================= ' ========================================================= Sub Go_Mode_1 ' ========================================================= ' ========================================================= If mymode = 1 Then ' text message on screen Code "(Mode 1: Find Hole Center and SET X and Y DROs to zero.)" Else Code "(Mode 8: Find Hole Center and Show Position)" End If Rem Move Probe X Minus XCurrent = GetOEMDRO(800) ' location of tool X position XPos2 = GetOEMDRO(800) ' get the probe start location LoopCount = 0 ' set retry count to zero ' ===== go in X MINUS direction ===== Do XPos1 = XPos2 XNew = Xcurrent - BigMove 'Move probe (1 inch) MINUS Code "G31 X" &XNew & " F" &FeedSlow 'hunt for touch While IsMoving() 'wait for the move to finish Sleep(1) Wend XPos2 = GetOEMDRO(800) 'get the probe touch location ' XAvg = (Abs(XPos1 - XPos2)) Temp = (XCurrent + XPos2*4)/5 Code "G01 X" &Temp & " F" &FeedFast 'rapid move back to start point LoopCount = LoopCount + 1 'update loop count Loop Until ((XAvg < max_error) Or (LoopCount > RetryLimit)) XSave = ((XPos1 + XPos2) / 2) ' ' ===== go in X PLUS direction ===== Code "G01 X" &XCurrent & " F" &FeedFast 'rapid move back to start point XPos2 = GetOEMDRO(800) ' get the probe Start location LoopCount = 0 ' set retry count to zero Do XPos1 = XPos2 XNew = Xcurrent + BigMove 'Move probe (1 inch) PLUS Code "G31 X" &XNew & " F" &FeedSlow 'hunt for touch While IsMoving() 'wait for the move to finish Sleep(1) Wend XPos2 = GetOEMDRO(800) 'get the probe touch location ' XAvg = Abs(XPos1 - XPos2) Temp = (XCurrent + XPos2*4)/5 Code "G01 X" &Temp & " F" &FeedFast 'rapid move back to start point LoopCount = LoopCount + 1 'update loop count ' Loop Until ((XAvg < max_error) Or (LoopCount > RetryLimit)) ' XCenter = (XSave + ((XPos1 + XPos2) / 2)) / 2 'center is midway between XSave and XPos2 Code "G01 X" &XCenter &" F" &FeedFast 'rapid move to the x center location While IsMoving () 'Wait for stop signal Sleep(1) Wend If mymode = 1 Then SetOEMDRO(800,0.000) 'Zero out the location X End If Code "G4 P0.25" 'Pause 1/4 sec ' ====================================== Rem ===== Find Center In Y direction ===== ' ====================================== YCurrent = GetOEMDRO(801) ' location of tool Y position YPos2 = GetOEMDRO(801) ' get the probe start location LoopCount = 0 ' set retry count to zero ' ===== go in Y MINUS direction ===== Do YPos1 = YPos2 ' YNew = Ycurrent - BigMove 'Move probe (1 inch) MINUS Code "G31 Y" &YNew & " F" &FeedSlow 'hunt for touch While IsMoving() 'wait for the move to finish Sleep(1) Wend YPos2 = GetOEMDRO(801) 'get the probe touch location ' YAvg = (Abs(YPos1 - YPos2)) Temp = (YCurrent + YPos2*4)/5 Code "G01 Y" &Temp & " F" &FeedFast 'rapid move back to start point LoopCount = LoopCount + 1 'update loop count Loop Until ((YAvg < max_error) Or (LoopCount > RetryLimit)) YSave = ((YPos1 + YPos2) / 2) ' ' ===== go in Y PLUS direction ===== Code "G01 Y" &YCurrent & " F" &FeedFast 'rapid move back to start point YPos2 = GetOEMDRO(801) ' get the probe Start location LoopCount = 0 ' set retry count to zero Do YPos1 = YPos2 YNew = Ycurrent + BigMove 'Move probe (1 inch) PLUS Code "G31 Y" &YNew & " F" &FeedSlow 'hunt for touch While IsMoving() 'wait for the move to finish Sleep(1) Wend YPos2 = GetOEMDRO(801) 'get the probe touch location ' YAvg = Abs(YPos1 - YPos2) Temp = (YCurrent + YPos2*4)/5 Code "G01 Y" &Temp & " F" &FeedFast 'rapid move back to start point LoopCount = LoopCount + 1 'update loop count Loop Until ((YAvg < max_error) Or (LoopCount > RetryLimit)) ' YCenter = (YSave + ((YPos1 + YPos2) / 2)) / 2 'center is midway between YSave and YPos2 Code "G01 Y" &YCenter &" F" &FeedFast 'rapid move to the Y center location While IsMoving () 'Wait for stop signal Sleep(1) Wend If mymode = 1 Then SetOEMDRO(801,0.000) 'Zero out the location Y End If Code "G4 P0.25" 'Pause 1/4 sec ' Rem ================================================== Rem === Do X center again For better accuracy. ======= Rem ================================================== XCurrent = GetOEMDRO(800) ' location of tool X position XPos2 = GetOEMDRO(800) ' get the probe start location LoopCount = 0 ' set retry count to zero ' ===== go in X MINUS direction ===== Do XPos1 = XPos2 'Latest reading is now older reading XNew = Xcurrent - BigMove 'Move probe (1 inch) MINUS Code "G31 X" &XNew & " F" &FeedSlow 'hunt for touch While IsMoving() 'wait for the move to finish Sleep(1) Wend XPos2 = GetOEMDRO(800) 'get the probe touch location ' XAvg = Abs(XPos1 - XPos2) Temp = (XCurrent + XPos2*4)/5 Code "G01 X" &Temp & " F" &FeedFast 'rapid move back to start point LoopCount = LoopCount + 1 'update loop count Loop Until ((XAvg < max_error) Or (LoopCount > RetryLimit)) XSave = ((XPos1 + XPos2) / 2) ' ' ===== go in X PLUS direction ===== Code "G01 X" &XCurrent & " F" &FeedFast 'rapid move back to start point XPos2 = GetOEMDRO(800) ' get the probe Start location LoopCount = 0 ' set retry count to zero Do XPos1 = XPos2 XNew = Xcurrent + BigMove 'Move probe (1 inch) PLUS Code "G31 X" &XNew & " F" &FeedSlow 'hunt for touch While IsMoving() 'wait for the move to finish Sleep(1) Wend XPos2 = GetOEMDRO(800) 'get the probe touch location ' XAvg = Abs(XPos1 - XPos2) Temp = (XCurrent + XPos2*4)/5 Code "G01 X" &Temp & " F" &FeedFast 'rapid move back to start point LoopCount = LoopCount + 1 'update loop count Loop Until ((XAvg < max_error) Or (LoopCount > RetryLimit)) ' XCenter = (XSave + ((XPos1 + XPos2) / 2)) / 2 'center is midway between XSave and XPos2 Code "G01 X" &XCenter &" F" &FeedFast 'rapid move to the x center location While IsMoving () 'Wait for stop signal Sleep(1) Wend If mymode = 1 Then SetOEMDRO(800,0.000) 'Zero out the location X End If Code "G4 P0.25" 'Small Pause Rem ======================================================= Rem ===== We are done: Center the tool And Do a dance ===== Rem ======================================================= ZPos1 = GetOEMDRO(802) ' get the probe Z location as current ZNew = ZPos1 + safeZ Code "G01 Z" &ZNew ' Pop Up to indicate done While IsMoving () ' Wait for stop signal Sleep(1) Wend Code "G4 P0.1" 'Small Pause ' Code "G01 Z" &ZPos1 ' Pop back down to indicate done While IsMoving () ' Wait for stop signal Sleep(1) Wend Code "G4 P0.1" 'Small Pause ZNew = ZPos1 + (BigMove/2) Code "G01 Z" &ZNew ' Pop Up to big indicate done While IsMoving () ' Wait for stop signal Sleep(1) Wend Code "G4 P0.1" 'Small Pause Code "(=== DONE ===)" End Sub ' ========================================================= ' ========================================================= Sub Go_Mode_2 ' ========================================================= ' ========================================================= Rem === find the outside edge To minus X === If mymode = 2 Then Code "(Mode 2: Find X Left and set X DRO to zero.)" Else Code "(Mode 12: Find X Left and show position.)" End If Rem Move Probe X Plus XPos1 = 0 XCurrent = GetOEMDRO(800) ' location of tool X position LoopCount = 0 ' set count to zero Do XNew = XCurrent + BigMove 'move probe 1 inch to right Code "G31 X" &XNew &" F" &FeedSlow 'Start hunt for edge While IsMoving() 'Wait for stop signal Sleep(1) Wend XPos2 = GetOEMDRO(800) ' Get the X location ' XCenter = (XPos2) + touchoffsetX 'compensate for tool & finder edge Code "G01 X" &(XPos2-safeZ/4) &" F" &FeedFast 'rapid back away from touched surface While IsMoving() 'Wait for stop signal Sleep(1) Wend ' XAvg = Abs(Xpos1 - XCenter) ' do these positions differ XPos1 = XCenter LoopCount = LoopCount + 1 Loop Until((XAvg < max_error)Or(LoopCount > RetryLimit)) ' ZCurrent = GetOEMDRO(802) ' location of tool Z position Code "G01 Z" &(BigMove + ZCurrent)'rapid move to a safe height While IsMoving() 'Wait for stop signal Sleep(1) Wend Code "G01 X" &XCenter &" F" &FeedFast 'rapid move to the x center location While IsMoving () 'Wait for stop signal Sleep(1) Wend If mymode = 2 Then SetOEMDRO(800,0.000) 'Zero the X DRO location End If Code "G4 P0.25" 'Pause 1/4 sec ' ===== End Sub ' ' ========================================================= ' ========================================================= Sub Go_Mode_3 ' ========================================================= ' ========================================================= Rem === find the outside edge To minus Y === If mymode = 3 Then Code "(Mode 3: Find Y Low and set Y DRO to zero.)" Else Code "(Mode 13: Find Y Low and show position.)" End If Rem Move Probe Y Plus YPos1 = 0 YCurrent = GetOEMDRO(801) ' location of tool X position LoopCount = 0 ' set count to zero Do YNew = YCurrent + BigMove 'move probe 1 inch to right Code "G31 Y" &YNew &" F" &FeedSlow 'Start hunt for edge While IsMoving() 'Wait for stop signal Sleep(1) Wend YPos2 = GetOEMDRO(801) 'Get the Y location ' YCenter = (YPos2) + touchoffsetY Code "G01 Y" &(YPos2-safeZ/4) &" F" &FeedFast 'rapid move to the x center location While IsMoving() 'Wait for stop signal Sleep(1) Wend ' YAvg = Abs(Ypos1 - YCenter) ' do these positions differ YPos1 = YCenter LoopCount = LoopCount + 1 Loop Until((YAvg < max_error)Or(LoopCount > RetryLimit)) ' ZCurrent = GetOEMDRO(802) ' location of tool X position Code "G01 Z" &(BigMove + ZCurrent)'rapid move to the x center location While IsMoving() 'Wait for stop signal Sleep(1) Wend Code "G01 Y" &YCenter &" F" &FeedFast 'rapid move to the x center location While IsMoving () 'Wait for stop signal Sleep(1) Wend If mymode = 3 Then SetOEMDRO(801,0.000) 'Zero the Y DRO position End If Code "G4 P0.25" 'Pause 1/4 sec ' ===== End Sub ' ========================================================= ' ========================================================= Sub Go_Mode_4 ' ========================================================= ' ========================================================= Rem === find the outside edge To plus X === If Mymode = 14 Then Code "(Mode 14: Find Y Max and set Y=0.0.)" Else Code "(Mode 4: Find Y Max and Show location)" End If Rem Move Probe X Minus (Move the probe In the X minus direction Until touch) XPos1 = 0 ' assume last position was zero XCurrent = GetOEMDRO(800) ' location of tool X position LoopCount = 0 ' set count to zero Do XNew = XCurrent - BigMove 'set destination 1 inch minus X Code "G31 X" &XNew &" F" &FeedSlow 'Start hunt for edge While IsMoving() 'Wait for stop signal Sleep(1) Wend XPos2 = GetOEMDRO(800) 'get the touch X location ' XCenter = XPos2 - touchoffsetX 'Calculate the actual work_piece edge location Code "G01 X" &(XPos2+safeZ/4) &" F" &FeedFast 'rapid back away from touched surface While IsMoving() 'Wait for stop signal Sleep(1) 'Allow computer to run other tasks for 1ms Wend ' XAvg = Abs(Xpos1 - XCenter) 'do these positions differ ? XPos1 = XCenter 'update last reading LoopCount = LoopCount + 1 Loop Until((XAvg < max_error)Or(LoopCount > RetryLimit)) ' ZCurrent = GetOEMDRO(802) 'location of tool Z position Code "G01 Z" &(BigMove + ZCurrent) 'rapid move UP to the Z high position While IsMoving() 'Wait for stop signal Sleep(1) Wend Code "G01 X" &XCenter &" F" &FeedFast 'move to the work_piece X edge location While IsMoving () 'Wait for stop signal Sleep(1) Wend If Mymode = 14 Then SetOEMDRO(800,0.000) 'Zero the X-DRO to the work_piece edge End If Code "G4 P0.25" 'Pause 1/4 sec ' ===== End Sub ' ========================================================= ' ========================================================= Sub Go_Mode_5 ' ========================================================= ' ========================================================= Rem === find the outside edge To plus Y === If Mymode = 15 Then Code "(Mode 15: Find Y Max and set Y=0.0.)" Else Code "(Mode 5: Find Y Max and Show location)" End If Rem Move Probe Y Minus 'Move the probe in the Y minus direction until touch of workPiece YPos1 = 0 ' assume last position was zero YCurrent = GetOEMDRO(801) ' location of tool X position LoopCount = 0 ' set count to zero Do YNew = YCurrent - BigMove 'set destination 1 inch minus Y Code "G31 Y" &YNew &" F" &FeedSlow 'Start hunt for edge While IsMoving() 'Wait for stop signal Sleep(1) Wend YPos2 = GetOEMDRO(801) 'Get the Y touch location ' YCenter = (YPos2) - touchoffsetY 'Calculate the actual work_piece edge location Code "G01 Y" &(YPos2+safeZ/4) &" F" &FeedFast 'rapid move to the x center location While IsMoving() 'Wait for stop signal Sleep(1) Wend ' YAvg = Abs(Ypos1 - YCenter) ' do these positions differ YPos1 = YCenter LoopCount = LoopCount + 1 Loop Until((YAvg < max_error)Or(LoopCount > RetryLimit)) ' ZCurrent = GetOEMDRO(802) ' location of tool Z position Code "G01 Z" &(BigMove + ZCurrent)'rapid move to a safe Z height While IsMoving() 'Wait for stop signal Sleep(1) Wend Code "G01 Y" &YCenter &" F" &FeedFast 'move to the workpiece Y edge location While IsMoving () 'Wait for stop signal Sleep(1) Wend If Mymode = 15 Then SetOEMDRO(801,0.000) 'Zero the Y-DRO to the work_piece edge End If Code "G4 P0.25" 'Pause 1/4 sec ' ===== End Sub ' ========================================================= ' ========================================================= Sub Go_Mode_6 ' ========================================================= ' ========================================================= Rem === find the top surface Z = Zero === Code "(Mode 6: Find Z Top and Set Z DRO to zero.)" Rem Assume probe is closer than one inch from finder surface Rem ========================== Rem === Move Probe Z Minus === Rem ========================== LoopCount = 0 ' set retry count to zero Do ' === take a reading === ZNew = (ZCurrent - BigMove) 'set destination -1" (down) Code "G31 Z" &ZNew &" F" &FeedSlow 'Start probe hunt for surface While IsMoving() 'Wait for stop signal Sleep(1) 'While waiting, let other tasks run Wend Code "G4 P0.500" 'Pause 0.5 sec Let user see touch ZAvg = Abs(GetOEMDRO(802) - ZTOP_GOAL) 'compare this reading with desired position ' SetOEMDRO(802,ZTOP_GOAL) 'Set the DRO display to be the desired Z position ZCurrent = ZTOP_GOAL ' location of tool Z position ' Code "G01 Z" &(ZTOP_GOAL + (safeZ/4)) &" F" &FeedFast 'rapid move to the (Z + 0.1") location While IsMoving() 'Wait for stop signal Sleep(1) 'While waiting, let other tasks run Wend 'An empty while/wend loop takes 100% of computer time ' LoopCount = LoopCount + 1 'update loop count ' Loop Until((ZAvg <= max_error)Or(LoopCount > RetryLimit)) ' loop again if ZAvg is grater than max_error ' ' or until retry limit is met ' done looping Code "G01 Z" &(BigMove*0.75) &" F" &FeedFast 'rapid move to the (Z + 0.75") location While IsMoving() 'Wait for stop signal Sleep(1) 'While waiting, let other tasks run Wend ' End Sub ' ========================================================= ' ========================================================= Sub Go_Mode_7 ' ========================================================= ' ========================================================= Rem === find the outside edge minus X, minus Y, And Z = 0 === Code "(Mode 7: Find Edgefinder and set X, Y, and Z DROs to zero.)" ' Must be within 1 inch of the corner over the work XCurrent = GetOEMDRO(800) ' location of tool X position YCurrent = GetOEMDRO(801) ' location of tool X position ZCurrent = GetOEMDRO(802) ' location of tool X position ' ' ======================== ' ===== First find Z ===== ' ======================== LoopCount = 0 ' set retry count to zero Do ' === take a reading === ZNew = ZCurrent - BigMove 'set destination -1" (down) Code "G31 Z" &ZNew &" F" &FeedSlow 'Start probe hunt for surface While IsMoving() 'Wait for stop signal Sleep(1) 'While waiting, let other tasks run Wend Code "G4 P0.200" 'Pause 0.5 sec Let user see touch ZAvg = Abs(GetOEMDRO(802) - ZTOP_GOAL) 'compare this reading with desired position ' SetOEMDRO(802,ZTOP_GOAL) 'Set the DRO display to be the desired Z position ZCurrent = ZTOP_GOAL ' Code "G01 Z" &(ZTOP_GOAL + safeZ/4) &" F" &FeedFast 'rapid move to the (Z + 0.1") location While IsMoving() 'Wait for stop signal Sleep(1) 'While waiting, let other tasks run Wend 'An empty while/wend loop takes 100% of computer time ' LoopCount = LoopCount + 1 'update loop count ' Loop Until((ZAvg <= max_error)Or(LoopCount > RetryLimit)) ' loop again if ZAvg is grater than max_error ' ' or until retry limit is met ' done looping: === ' Code "G01 Z" &(safeZ + ZCurrent) &" F" &FeedFast 'rapid move to safe height While IsMoving() 'Wait for stop signal Sleep(1) Wend ' ======================= ' ===== Then find X ===== ' ======================= Code "G01 Z" &(safeZ + ZCurrent) &" F" &FeedFast 'rapid move to safeZ location While IsMoving() 'Wait for stop signal Sleep(1) Wend XPos1 = 0 ' assume zero is correct XNew = XCurrent - BigMove 'back off X to a reasonable distance YNew = YCurrent + SIDE_Y*1.5 Code "G01 X" &XNew &" Y" &YNew &" F" &FeedFast 'rapid move to the x starting location While IsMoving() 'Wait for stop signal Sleep(1) Wend Code "G31 Z" &(ZCurrent - SmallMove) &" F" &FeedSlow*3 'move to starting height While IsMoving() 'Wait for stop signal Sleep(1) Wend ' ' === test for illegal touch === If GetOemLed (825) <> 0 Then 'Check to see if the probe is already grounded or faulty Code "G01 Z" &(SafeZ+ZCurrent) &" F" &FeedFast 'move Z up to clear material While IsMoving() 'Wait for stop signal Sleep(1) Wend Code "G01 X" &(-BigMove * 0.5) &" F" &FeedFast 'rapid move to the y starting location While IsMoving() 'Wait for stop signal Sleep(1) Wend Code "G31 Z" &(ZCurrent-SmallMove) &" F" &FeedFast 'move Z down to starting height While IsMoving() 'Wait for stop signal Sleep(1) Wend End If ' Do XNew = XCurrent 'probe seek 1 inch to right Code "G31 X" &XNew &" F" &FeedSlow 'Start hunt for edge While IsMoving() 'Wait for stop signal Sleep(1) Wend XPos2 = GetOEMDRO(800) ' Get the X location ' XCenter = (XPos2) + touchoffsetX 'compensate for tool & finder edge Code "G01 X" &(XPos2-SmallMove/4) &" F" &FeedFast 'rapid back away from touched surface While IsMoving() 'Wait for stop signal Sleep(1) Wend ' XAvg = Abs(Xpos1 - XCenter) ' do these positions differ XPos1 = XCenter ' update Pos1 for next try LoopCount = LoopCount + 1 Loop Until((XAvg < max_error)Or(LoopCount > RetryLimit)) Code "G01 X" &(XPos2 -(SmallMove)) &" F" &FeedFast 'back off from work. don't scratch it. While IsMoving() 'Wait for stop signal Sleep(1) Wend Code "G01 Z" &(safeZ + ZCurrent) &" F" &FeedFast 'rapid move to the safeZ location While IsMoving() 'Wait for stop signal Sleep(1) Wend Code "G01 X" &XCenter &" F" &FeedFast 'rapid move to the workpiece X Edge location While IsMoving () 'Wait for stop signal Sleep(1) Wend SetOEMDRO(800,0.000) 'Set workpiece X edge to DRO zero XCurrent = 0.000 Code "G4 P0.25" 'Pause 1/4 sec ' ======================= ' ===== Then find Y ===== '======================== Code "G01 Z" &(safeZ+ZCurrent) &" F" &FeedFast 'rapid move to safeZ location While IsMoving() 'Wait for stop signal Sleep(1) Wend ' If mySide = 2 Then TEMP = SIDE_X * 2 Else TEMP = SIDE_X End If Code "G01 X" &(XCurrent+TEMP) &" F" &FeedFast 'rapid move to the x starting location While IsMoving() 'Wait for stop signal Sleep(1) Wend ' Code "G01 Y" &(YCurrent-BigMove) &" F" &FeedFast 'rapid move to the y starting location While IsMoving() 'Wait for stop signal Sleep(1) Wend Code "G31 Z" &(ZCurrent-(SmallMove)) &" F" &FeedSlow*3 'move Z down to starting height While IsMoving() 'Wait for stop signal Sleep(1) Wend ' === test for illegal touch === If GetOemLed (825) <> 0 Then 'Check to see if the probe is already grounded or faulty Code "G01 Z" &(SafeZ) &" F" &FeedFast 'move Z up to clear material While IsMoving() 'Wait for stop signal Sleep(1) Wend Code "G01 Y" &(-BigMove * 0.5) &" F" &FeedFast 'rapid move to the y starting location While IsMoving() 'Wait for stop signal Sleep(1) Wend Code "G31 Z" &(ZCurrent-SmallMove) &" F" &FeedFast 'move Z down to starting height While IsMoving() 'Wait for stop signal Sleep(1) Wend End If ' Ypos1 = 0 LoopCount = 0 ' set count to zero Do YNew = YCurrent ' YCurrent is inside the edgefinder frame Code "G31 Y" &YNew &" F" &FeedSlow 'Start hunt for edge While IsMoving() 'Wait for stop signal Sleep(1) Wend YPos2 = GetOEMDRO(801) 'Get the Y location ' YCenter = YPos2 + touchoffsetY ' correct offset for tool thickness Code "G01 Y" &(YPos2-safeZ/4) &" F" &FeedFast 'rapid move to the x center location While IsMoving() 'Wait for stop signal Sleep(1) Wend ' YAvg = Abs(Ypos1 - YCenter) ' do these positions differ YPos1 = YCenter ' update last position LoopCount = LoopCount + 1 Loop Until((YAvg < max_error)Or(LoopCount > RetryLimit)) ' === we have a decent reading === Code "G01 Y" &(YPos2 -(SmallMove)) &" F" &FeedFast 'back off from work While IsMoving() 'Wait for stop signal Sleep(1) Wend Code "G01 Z" &(ZCurrent+safeZ) &" F" &FeedFast 'rapid move to the safeZ location While IsMoving() 'Wait for stop signal Sleep(1) Wend Code "G01 Y" &YCenter &" F" &FeedFast 'rapid move to the workpiece Y location While IsMoving () 'Wait for stop signal Sleep(1) Wend SetOEMDRO(801,0.000) 'Set Y DRO to zero for workpiece edge Code "G4 P0.25" 'Pause 1/4 sec ' ========================== ' ===== Go to x0,y0,z0 ===== ' ========================== Code "G01 Z" &(ZCurrent+safeZ) &" F" &FeedFast 'rapid move to the safeZ location While IsMoving () 'Wait for stop signal Sleep(1) Wend Code "G01 X" &(0.000) &" F" &FeedFast 'rapid move to the x corner location While IsMoving () 'Wait for stop signal Sleep(1) Wend Code "G01 Y" &(0.000) &" F" &FeedFast 'rapid move to the y corner location While IsMoving () 'Wait for stop signal Sleep(1) Wend Code "G01 Z" &(ZTOP_GOAL) &" F" &FeedFast 'rapid move to the z corner location While IsMoving () 'Wait for stop signal Sleep(1) Wend ' Code "G4 P0.500" 'Pause 1/2 sec Code "G01 Z" &(ZCurrent + safeZ) &" F" &FeedFast 'rapid move to the safeZ location While IsMoving () 'Wait for stop signal Sleep(1) Wend ' ===== Function 7 Done =====End Sub End Sub ' ========================================================= ' ========================================================= Sub Go_Mode_8 ' ========================================================= ' ========================================================= Code "(Mode 8 Find Edgefinder and set X, Y, and Z DROs to zero.)" ' Must be over the hole & within 0.5inch of top XCurrent = GetOEMDRO(800) ' location of tool X position YCurrent = GetOEMDRO(801) ' location of tool X position ZCurrent = GetOEMDRO(802) ' location of tool X position ' ' ======================== ' ===== First find Z ===== ' ======================== LoopCount = 0 ' set retry count to zero Code "G31 Z" &(ZCurrent + SmallMove) &" F" &FeedSlow*3 'move to starting height While IsMoving() 'Wait for stop signal Sleep(1) Wend Code "G01 X" &(XCurrent + (BigMove/3)) &" F" &FeedFast 'rapid move to the x corner location While IsMoving () 'Wait for stop signal Sleep(1) Wend ' Go_Mode_6 'Z is zet here to work surface ' Code "G01 X" &(XCurrent) &" F" &FeedFast 'rapid move to the x corner location While IsMoving () 'Wait for stop signal Sleep(1) Wend ' Code "G31 Z" &(ZTOP_GOAL/5) &" F" &FeedFast 'move to starting height While IsMoving() 'Wait for stop signal Sleep(1) Wend ' Go_Mode_1 ' Do a center find; zeros not set ' Code "G01 Z" &(ZTOP_GOAL + safeZ) &" F" &FeedFast 'rapid move to the (surface of finder) location While IsMoving() 'Wait for stop signal Sleep(1) 'While waiting, let other tasks run Wend 'An empty while/wend loop takes 100% of computer time ' SetOEMDRO(800,0.000) ' Zero out the location X SetOEMDRO(801,0.000) ' Zero out the location Y XCurrent = GetOEMDRO(800) ' location of tool X position YCurrent = GetOEMDRO(801) ' location of tool X position ZCurrent = GetOEMDRO(802) ' location of tool X position End Sub ' ========================================================= ' ========================================================= Sub Go_Mode_100 ' === Three digit commands === ' ========================================================= ' ========================================================= ' === Select the tool to be used === If ((cmd3 <= 0) Or (cmd3 >= 3)) Then toolSelected = DefaultTool/2 'Default tool ElseIf (cmd3 = 1) Then toolSelected = tool_1/2 ElseIf (cmd3 = 2) Then toolSelected = tool_2/2 ElseIf (cmd3 = 3) Then toolSelected = tool_3/2 End If ' If cmd2 = 0 Then ' === S U R F A C E === touchoffsetX = toolSelected + 0.0 ' Touch to surface touchoffsetY = toolSelected + 0.0 ' Touch to surface ZTOP_GOAL = 0.000 ElseIf cmd2 = 1 Then '=== E D E G E F I N D E R === L O W T O P === touchoffsetX = toolSelected + SIDE_X ' Touch to edgefinder touchoffsetY = toolSelected + SIDE_Y ' Touch to edgefinder ZTOP_GOAL = Z_TOP1 ElseIf cmd2 = 2 Then ' === H I G H T O P === F C N 6 === touchoffsetX = toolSelected + SIDE_X ' Touch to edgefinder touchoffsetY = toolSelected + SIDE_Y ' Touch to edgefinder ZTOP_GOAL = Z_TOP2 ElseIf cmd2 >= 3 Then ' DEFAULT touchoffsetX = toolSelected + 0.0 ' Touch to surface touchoffsetY = toolSelected + 0.0 ' Touch to surface ZTOP_GOAL = 0.000 End If ' End Sub ' ========================================================= ' ========================================================= ' ' ========================================================= ' ========================================================= ' === E N D ==== E N D ==== E N D ==== E N D ==== E N D === ' ========================================================= ' ========================================================= NoneAuto Tool Zero%+.4f0  Set Next LineNoneNoneLabelt%+.4fz Run From HereNoneNoneLabel%+.4fz$NoneNoneNoneLine:%+.4fy NoneNoneNoneLabel%.0f 8NoneNoneMillBitmaps\BoxLEDGreen.pngNone$%+.4f ylNoneNoneNoneChange%+.4f2\8NoneNoneNoneLabel&%+.4f,[Single BLK Alt-NNoneNoneLabelN%+.4f Rewind Ctrl-WNoneNoneLabelW%+.4fwNoneNoneNoneTool%+.4f9R Jog ON/OFF Ctrl-Alt-JNoneLabelgJ%+.4fp8NoneNoneNoneLabelS%+.4f8NoneNoneNoneLabelS%+.4fqyNoneNoneNone - Manual%+.4f?ThNoneNoneNone- MDI%+.4f3GNoneNoneNoneDwell%+.4fI)NoneNoneNoneLabel%+.4fs<mNoneNoneNoneLabel%+.4fsNoneNoneNoneLabel%+.4fsNoneNoneNoneLabel%+.4fs58NoneNoneNoneLabel'%+.4f`;jl8NoneNoneNoneLabel(%+.4f`~j8NoneNoneNoneLabel)%+.4f`j8NoneNoneNoneLabel*%+.4f`j48NoneNoneNoneLabel%+.4f$FVPNoneNoneNoneLabel%+.4f \JoyStick (Ctrl-S)NoneNoneLabelS%+.4f  8NoneNoneNoneLabel.%+.4f   NoneNoneNoneLabel%4.2foNoneNoneNone Units/Min%+.4fjNoneNoneNone Units/Rev%+.4fj NoneNoneNoneLabel:%4.2fo NoneNoneNoneLabelĂ%+.4f?)NoneNoneNone Positioning%+.4fk8NoneNoneNoneLabel%+.4f$ NoneNoneNoneLabel.%3.0f/v^NoneNoneNoneLabel%.2fD3GNoneNoneNoneElapsed%+.4f 8AHNoneNoneNoneReduced%+.4f8NoneNoneNoneLabelU%+.4f)8NoneNoneNoneLabelT%+.4fEZ  CV Feedrate NoneNoneLabel%+.4f[ NoneNoneNoneLabela%+.4f8NoneNoneNoneLabelR%+.4f(pZxNoneNoneNoneOutput 6%+.4feNu8NoneNoneNoneLabelO%+.4fe uNoneNoneNoneOutput 5%+.4feu8NoneNoneNoneLabelN%+.4feu8NoneNoneNoneLabelM%+.4fQaNoneNoneNoneOutput 4%+.4fO_8NoneNoneNoneLabelR%+.4f%5 NoneNoneMillBitmaps\M-code_US.bmpLabelۜ%+.4f^HnNoneNoneMillBitmaps\G-codes_US.bmpLabel%+.4f96 NoneNoneNoneLabel]%+1.2fFlNoneNoneNoneLift Z%+.4fENoneNoneNone Lift Angle%+.4fE NoneNoneNoneLabel\%+3.0fJl Tangential ControlNoneNoneLabel%+.4f8NoneNoneNoneLabelQ%+.4f"Displayvalue = GetParam("Boundry") if value = 1 then 'SetButtonText " Job " SetParam "Boundry" , 0 else SetParam "Boundry" , 1 'SetButtonText "Machine" end ifNoneLabel%+.4f 8NoneNoneNoneLabelJ%+.4f&u: NoneNoneNoneNoneY%1.4f  Recent FileNoneNoneLabel%+.4fy  Block DeleteNoneNoneLabel.%+.4f M1 Optional StopNoneNoneM1 Optional Stop#%+.4f8NoneNoneMillBitmaps\BlueLED.pngNoneB%+.4f8NoneNoneMillBitmaps\BlueLED.pngNoneA%+.4f  Close G-CodeNoneNoneLabel%+.4fz8NoneNoneNoneLabel4%+.4fZ1; On/OffNoneLabel%+.4fW=MNoneNoneNone Z Inhibit%+.4f[M\ NoneNoneNoneLabelP%+.3fH]oNoneNoneNoneCV Mode%+.4fU(8NoneNoneMillBitmaps\BoxLEDGreen.pngNone6%+.4fO*8NoneNoneNoneLabel5%+.4f" Ignore Tool ChangeNoneNoneLabel%+.4f#8NoneNoneMillBitmaps\BoxLEDRedGreen.pngNone %+.4f3u NoneNoneNoneLabel%+.4f$5*NoneNoneNone Laser Grid%+.4f 2NoneNoneNoneYNone%+.4fPdNoneNoneNoneXNone%+.4f4H NoneNoneNoneLabelM%+.4fP e NoneNoneNoneLabelL%+.4f5 J Laser Grid ZeroNoneNoneLabel%+.4f  ToggleNoneNoneLabel%+.4fNoneNoneNoneLaser Trigger On %+.4f8NoneNoneNoneLabel3%+.4f RegenNoneNoneLabel%+.4f :8NoneNoneNoneLabel/%+.4f   Jog FollowNoneNoneLabelʛ%+.4f<  NoneNoneMillBitmaps\YellowDro.pngSkinned:%4.2f]sNoneNoneNone Units/Rev%+.4fq`qNoneNoneNone Units/Min%+.4fqEV NoneNoneMillBitmaps\YellowDro.pngSkinned%4.2fCY8NoneNoneNoneLabel+%+.4f 8NoneNoneNoneLabel*%+.4ff n8NoneNoneNoneLabel)%+.4f4 < NoneNoneNoneLabel<%+.4fx  NoneNoneNoneLabel=%+.4f  NoneNoneNoneLabel;%+.4fC VSpindle Pulley NoneNoneSpindle Pulley %+.4fV NoneNoneNoneNone8o 8%2.0fyNoneNoneNoneLabel%2.0f0P_p8NoneNoneNoneLabel&%+.4f8NoneNoneNoneLabel%%+.4fUe8NoneNoneNoneLabel$%+.4f Torch DnNoneNoneTorch Dn%+.4fNoneNoneNoneTorch UP%+.4fkNoneNoneNoneTorch On%+.4fONoneNoneNoneProfile%+.4fNoneNoneNone Single Step on input Activation4%+.4fy ToggleNoneNoneLabel%+.4f8NoneNoneNoneLabel#%+.4f8NoneNoneNoneLabel"%+.4f OverRide LimitsNoneNoneLabel%+.4f Auto LimitOverRideNoneNoneLabel%+.4f8NoneNoneNoneLabel!%+.4fNoneNoneNone CPU Speed%+.4f" NoneNoneNoneLabel5%+.4f' Reset Interp Alt-iNoneNoneLabelfI%+.4fbPlNoneNoneNoneInch%+.4f 48NoneNoneNoneLabel!%+.4f8HNoneNoneNoneMM's%+.4fz 48NoneNoneNoneLabel"%+.4f8H  UNITS Alt-UNoneNone UNITS Alt-Uju%+.4f  8NoneNoneNoneLabel*%+.4f8NoneNoneNoneLabel)%+.4fNoneNoneNoneLabel%+.4fNoneNoneNoneLabel%+.4f Offsets (Alt-5)NoneNoneOffsets (Alt-5)5%+.4fH NoneNoneNoneLabel.%3.0f1G8NoneNoneNoneLabel(%+.4f\u8NoneNoneNoneLabel'%+.4f6ONoneNoneNoneLabel%+.4f`yNoneNoneNoneLabel%+.4f5NNoneNoneNoneAlt Z%+.4f.MYaNoneNoneNoneAlt Y%+.4f.)Y=NoneNoneNoneAlt X%+.4f.Y ZeroNoneNoneLabelz%+.4fG*f ZeroNoneNoneLabely%+.4f$)C ZeroNoneNoneLabelx%+.4f)8NoneNoneNoneLabel%+.4f 0 ToolPath on/offNoneNoneLabel%+.4fy0ModeNoneNoneMode%+.4f NoneNoneNone Worst Case%+.4f|" NoneNoneNoneLabel(%+.6f;y Load DRONoneNoneLabel%+.4fWg To DRONoneNoneLabel~%+.4fFV Load DRONoneNoneLabel%+.4f4D To DRONoneNoneLabel%+.4f#3 Load DRONoneNoneLabel}%+.4f  To DRONoneNoneLabel~%+.4fNoneNoneNoneEncoder Position%+.4f NoneNoneNoneLabel%+.4f He NoneNoneNoneLabel%+.4f %B NoneNoneNoneLabel%+.4f NoneNoneNone Buffer Load%+.4fK'ZNoneNoneNone%%+.4fH\ NoneNoneNoneLabel%3.0f`F[ NoneNoneNoneLabel%+4.0f;NoneNoneNonePWM Base%+.4f NoneNoneNoneLabel%+.4f[q NoneNoneNoneNone%+.4f[ NoneNoneNoneNone%+.4f[CV NoneNoneNoneLabel%+.4f[ZmNoneNoneNone Time Scale%+.4f" NoneNoneNoneLabel%+.4f=NoneNoneNone Queue Depth%+.4fc4s NoneNoneNoneLabel%+3.fT`u WorkOffsetNoneNone WorkOffset%+.4f%09 NoneNoneNoneNone%+.4fp-!NoneNoneNoneNone%+.4f-NoneNoneNoneNone%+.4fB-UNoneNoneNoneNone%+.4fY-lNoneNoneMillBitmaps\GreenDRO.pngSkinned%+.4fNoneNoneMillBitmaps\GreenDRO.pngSkinned%+.4fNoneNoneMillBitmaps\GreenDRO.pngSkinned%+.4f]{NoneNoneMillBitmaps\GreenDRO.pngSkinned%+.4f4R8NoneNoneNoneLabel%+.4fRotation RadiusNoneNoneRotation Radius%+.4f7*ANoneNoneNoneA%+.4f<HPdNoneNoneNoneLabel%+.4fSNoneNoneNoneLabel%+.4fThNoneNoneNoneLabel%+.4fTGd Settings (Alt-6)NoneNoneSettings (Alt-6)6%+.4f NoneNoneNone Emergency%+.4f 8NoneNoneNoneLabel%+.4f8NoneNoneNoneLabel$%+.4f5pgx8NoneNoneNoneLabel%+.4f?S8NoneNoneMillBitmaps\BoxLEDYellow.pngNone-%+.4fH+NoneNoneNoneEstimated Program Run Time%+.4fIYkNoneNoneNoneLabel%.2fVxj NoneNoneNoneLabel %+.4fY NoneNoneNoneLabel %+.4fY NoneNoneNoneLabel%+.4fL NoneNoneNoneLabel%+.4fL NoneNoneMillBitmaps\BlueDro.pngNone%+.4fPLa NoneNoneNoneLabel %+.4fYPa NoneNoneNoneLabel %+.4fYl} NoneNoneNoneNone%+.4fmL~NoneNoneNoneElapsed%+.4f3ANoneNoneMillBitmaps\REDDro.pngSkinned%.2f/JF  Mist ToggleNoneNoneLabelr%+.4fA-  Flood ToggleNoneNoneLabelq%+.4fA Spindle ToggleNoneNoneLabeln%+.4fAOutput Signals current StateNoneNoneOutput Signals current State%+.4f NoneNoneNoneDigitize%+.4fjeu8NoneNoneNoneLabelW%+.4fQeauNoneNoneNoneOutput 3%+.4fhP`8NoneNoneNoneLabelV%+.4fQPa`NoneNoneNoneEnable 6%+.4f;LKNoneNoneNoneEnable 3%+.4fh$48NoneNoneNoneLabelS%+.4f: J8NoneNoneNoneLabelP%+.4fQ$a4NoneNoneNone Output 2 %+.4fON_8NoneNoneNoneLabelU%+.4fP `NoneNoneNoneEnable 5%+.4f:JNoneNoneNoneEnable 2%+.4f$N48NoneNoneNoneLabelR%+.4f:J8NoneNoneNoneLabelO%+.4f$ 4NoneNoneNoneOutput 1%+.4fN^8NoneNoneNoneLabelT%+.4fP`NoneNoneNoneEnable 4%+.4f$4NoneNoneNoneEnable 1%+.4f$48NoneNoneNoneLabelQ%+.4f$48NoneNoneNoneLabelN%+.4f$4Input Signals current StateNoneNoneInput Signals current State%+.4f*>NoneNoneNoneM6Home%+.4f8NoneNoneNoneNoneM%+.4fNoneNoneNoneM5Home%+.4fNoneNoneNoneM4Home%+.4fNoneNoneNoneM3Home%+.4fNoneNoneNoneM2Home%+.4fNoneNoneNoneM1Home%+.4fm}8NoneNoneNoneNoneJ%+.4f8NoneNoneNoneNoneG%+.4f8NoneNoneNoneNoneD%+.4f8NoneNoneNoneLabelA%+.4f~8NoneNoneNoneLabel>%+.4fl|NoneNoneNone M6--Limit%+.4fl8NoneNoneNoneLabelL%+.4fUeNoneNoneNone M5--Limit%+.4flNoneNoneNone M4--Limit%+.4flNoneNoneNone M3--Limit%+.4flNoneNoneNone M2--Limit%+.4flNoneNoneNone M1--Limit%+.4flm}8NoneNoneNoneLabelI%+.4fUe8NoneNoneNoneLabelF%+.4fUe8NoneNoneNoneLabelC%+.4fUe8NoneNoneNoneLabel@%+.4fU}e8NoneNoneNoneNone=%+.4fUke{NoneNoneNone M6++Limit%+.4fJ8NoneNoneNoneLabelK%+.4f NoneNoneNone M5++Limit%+.4fJNoneNoneNone M4++Limit%+.4fJNoneNoneNone M3++Limit%+.4fJNoneNoneNone M2 ++Limit%+.4fJNoneNoneNone M1++Limit%+.4fmJ}NoneNoneNoneLimitOV%+.4f8NoneNoneNoneLabelH%+.4f 8NoneNoneNoneLabelE%+.4f 8NoneNoneNoneLabelB%+.4f 8NoneNoneNoneLabel?%+.4f} 8NoneNoneNoneLabel<%+.4fk {8NoneNoneNoneLabel;%+.4fNoneNoneNoneIndex%+.4fNoneNoneNoneDigitize%+.4fNoneNoneNoneInput 4%+.4fNoneNoneNoneInput 3%+.4fNoneNoneNoneInput 2%+.4fNoneNoneNoneInput 1%+.4fm}8NoneNoneNoneLabel:%+.4f8NoneNoneNoneNone9%+.4f8NoneNoneNoneLabel8%+.4f8NoneNoneNoneLabel7%+.4f8NoneNoneNoneLabel6%+.4f}8NoneNoneNoneLabel5%+.4fk{Ref CNoneNoneLabel%+.4fDRef BNoneNoneLabel%+.4fDRef ANoneNoneLabel%+.4fDRef ZNoneNoneLabel%+.4frDRef YNoneNoneLabel%+.4f[DiRef XNoneNoneLabel%+.4fDDRNoneNoneNone Dwell Active%+.4f<9LNoneNoneNone Tool Request%+.4fcSsNoneNoneNoneRun%+.4fP`8NoneNoneNoneLabel-%+.4f<L8NoneNoneNoneLabel,%+.4fIY8NoneNoneNoneLabel+%+.4fIY8NoneNoneNoneLabel*%+.4fIY8NoneNoneNoneLabel)%+.4fIqY8NoneNoneNoneLabel(%+.4fIZYj8NoneNoneNoneLabel'%+.4fICYS8NoneNoneNoneLabel&%+.4faq8NoneNoneNoneLabel$%+.4fN^NoneNoneNonePulse Frequency%+.4ft  NoneNoneNoneLabel%5.0f!A NoneNoneNoneLabel%+.4f8Zero AllNoneNoneLabel%+.4f /G?  Edit G-CodeNoneNoneLabels%+.4fzw EditNoneNoneLabels%+.4fCSingleNoneNoneLabel%+.4f$StopNoneNoneLabel%+.4f$RewindNoneNoneLabel%+.4f$ Cycle StartNoneNoneLabel%+.4fz4 NoneNoneNoneLabel%+.4fy NoneNoneNoneLabel %+.4ft Blended SpdNoneNone Blended Spd%+.4f02@ NoneNoneNoneLabel%.2f1,CNoneNoneNoneC Pos%+.4f`NoneNoneNoneB Pos%+.4f`NoneNoneNoneA Pos%+.4f`NoneNoneNoneZ Pos%+.4f`pNoneNoneNoneY Pos%+.4f`YjNoneNoneNoneX Pos%+.4faBSNoneNoneNoneLabel%+.4fNoneNoneNoneLabel%+.4fNoneNoneNoneLabel%+.4fNoneNoneNoneLabel%+.4foNoneNoneNoneLabel%+.4fXoNoneNoneNoneNone%+.4f@W Run From HereNoneNoneLabel%+.4f?SSimulate Program RunNoneNoneLabel%+.4f?S NoneNoneNoneLabel%+.4fi NoneNoneNoneNone%+.4f4$ NoneNoneNoneLabel%+.4f"NoneNoneNoneError%+.4f^8NoneNoneMillBitmaps\BoxLEDRedGreen.pngNone*%+.4f8NoneNoneMillBitmaps\BoxLEDRedGreen.pngNone)%+.4f8NoneNoneMillBitmaps\BoxLEDRedGreen.pngNone(%+.4f_8NoneNoneMillBitmaps\BoxLEDRedGreen.pngNone'%+.4f,^8NoneNoneMillBitmaps\BlueLED.pngNone %+.4f  Flood Ctrl-F NoneLabelqF%+.4fNoneNoneMillBitmaps\GreenDRO.pngSkinnedA%+.4fNoneNoneMillBitmaps\GreenDRO.pngSkinnedZ%+.4fNoneNoneMillBitmaps\GreenDRO.pngSkinnedY%+.4feNoneNoneMillBitmaps\GreenDRO.pngSkinnedX%+.4f4W NoneNoneNoneNone%+.4f7' Diagnostics (Alt-7)*DoOEMButton( 5 ) rem PlayWave "diags.wav"NoneDiagnostics (Alt-7)7%+.4f Tool Path (Alt-4)NoneNoneTool Path (Alt-4)4%+.4fF  MDI (Alt-2)NoneNone MDI (Alt-2)2%+.4f Program Run (Alt-1)NoneNoneProgram Run (Alt-1)1%+.4fNoneNone#MillBitmaps\BackgroundToolpath2.jpgLabel%+.4fNoneNoneMillBitmaps\TouchImage2.jpgLabel%+.4f]H)NoneNoneMillBitmaps\BackgroundMain.jpgNone%+.4fNoneNoneMillBitmaps\backgroundMDI.jpgLabel%+.4fNoneNone MillBitmaps\backgroundoffset.jpgLabel%+.4fNoneNoneNoneA Circle&%+.4fg {"None4Code "G92.2" Call SetDRO(0, ABS(GetOEMDRO(1000))/2) NoneLabel&%+.4f$LQ"None7Code "G92.2" Call SetDRO(1, ABS(GetOEMDRO(1000))/(-2)) NoneLabelAC%+.4f H"None7Code "G92.2" Call SetDRO(0, ABS(GetOEMDRO(1000))/(-2)) NoneLabel%+.4f"None6Code "G92.2" Call SetDRO(1, ABS(GetOEMDRO(1000))/(2)) NoneLabel%+.4fLTicker0NoneNoneTicker0%+.4fGT[ M-CodesNoneNoneM-Codes %+.4f]Cq"G-Codes3HtmlDialog( GetMainFolder()+"Mach3MillGcode.htm" ) NoneG-Codes%+.4f]q HistoryNoneNoneLabel%+.4fD ClearNoneNoneClear%+.4fHy8NoneNoneMillBitmaps\BoxLEDRedGreen.pngNone %+.4f 9nNoneNoneMillBitmaps\reset2.jpgNone%+.4f<l"Set Steps per UnitSub Main() Begin Dialog GroupSample 31,32,120,96,"Axis Selection" OKButton 38,75,40,14 GroupBox 12,8,96,62,"Pick Axis to Calibrate",.GroupBox1 OptionGroup .OptionGroup1 OptionButton 20,24,40,8,"X Axis",.OptionButton1 OptionButton 20,40,40,8,"Y Axis",.OptionButton2 OptionButton 20,56,40,8,"Z Axis",.OptionButton3 OptionButton 67,24,40,8,"A Axis",.OptionButton4 OptionButton 67,40,40,8,"B Axis",.OptionButton5 OptionButton 67,56,40,8,"C Axis",.OptionButton6 End Dialog Dim Dlg1 As GroupSample Button = Dialog (Dlg1) If Button = 0 Then Exit Sub End If AxisNum = Dlg1.OptionGroup1 Select Case AxisNum Case 0 'HSS Axis = "StepsPerAxisX" Axis_Letter = "X" Case 1 'HSStin Axis = "StepsPerAxisY" Axis_Letter =" Y" Case 2 'Carbide Axis = "StepsPerAxisZ" Axis_Letter = "Z" Case 3 'Carbide Axis = "StepsPerAxisA" Axis_Letter = "A" Case 4 'Carbide Axis = "StepsPerAxisB" Axis_Letter = "B" Case 5 'Carbide Axis = "StepsPerAxisC" Axis_Letter = "C" End Select Com_Move = Question ("How far would you like to Move the " & Axis_Letter & " Axis?") If COM_Move = 0 Then MsgBox "Can't have a Move of Zero, Axis Calc aborted." Exit Sub End If Code "G0 G91 " & Axis_Letter & Com_Move While Ismoving() Wend Code("G90") Code "G4 P0.5" Act_Move = Question("How far did the " & Axis_Letter & " Axis move? (Measured Value)") If Act_Move = 0 Then MsgBox "Can't have a Move of Zero, Axis Calc aborted." Exit Sub End If Old_PPR = GetParam(Axis) New_PPR = Abs((Com_Move/Act_Move) * Old_PPR) Response = MsgBox ( Axis_Letter & " Axis Will be Set to " & New_PPR & " Steps per Unit. Would you like to Accept it??", 4 , "Set Steps Per Unit") If Response = 6 Then ' User chose Yes. Call SetParam(Axis, New_PPR) MsgBox (Axis_Letter & " Axis Has Been Set") Else ' User chose No. MsgBox (Axis_Letter & " Axis Has NOT Been Set") End If End Sub Main NoneLabel%+.4f.NoneNoneNoneAxis Calibration%+.4f1 NoneNoneNoneRapid Override Rate (Units/Min)%+.4fLZNoneNoneNoneAuto Limit Override%+.4fNoneNoneNoneManual Limit Override%+.4fNoneNoneNoneDo not run Tool Change Macro%+.4f  NoneNoneNoneLabel%3.0fCNoneNoneNone LookAhead%+.4f%  NoneNoneNoneLabel%+.0f$< NoneNoneNoneLabel%+.4f@Zs NoneNoneNoneMDI,"%+.4fnCW NoneNoneNone Mavg_curr%+.4f&'; NoneNoneNoneI_isr%+.4f*p  NoneNoneNoneLabel%+.0f NoneNoneNonem_isr%+.4f*p  NoneNoneNoneLabel%+.0f NoneNoneNonegrr_tgt%+.4f*p  NoneNoneNoneLabel%+.0f NoneNoneNonegrr_curr%+.4f*p  NoneNoneNoneLabel%+.0f NoneNoneNoneIters%+.4f*xp  NoneNoneNoneLabel%+.0fu NoneNoneNone Curr Seq.%+.4f,Vyj  NoneNoneNoneLabel%+.0fRj8 NoneNoneNoneLabel%+.4f|[k NoneNoneNoneCurrent Status%+.4fH:N8 NoneNoneNoneLabel%+.4f|z8 NoneNoneNoneLabel%+.4f}8 NoneNoneNoneLabel%+.4f|8 NoneNoneNoneLabel%+.4f|8 NoneNoneNoneLabel%+.4f|8 NoneNoneNoneLabel%+.4f|%8 NoneNoneNoneLabel%+.4f|4D NoneNoneNone HeartBeatX<[w%+.4fZjl NoneNoneNoneStillX<[w%+.4fxj NoneNoneNone Queue EndX<[w%+.4fi NoneNoneNone Mavg DrainX<[w%+.4fp NoneNoneNonePauseX<[w%+.4fj NoneNoneNonePurgeingX<[w%+.4fi  NoneNoneNoneHaltX<[w%+.4fj& NoneNoneNone GRR MatchedX<[w%+.4f3tE NoneNoneNoneC HomeX<[w%+.4f NoneNoneNoneB HomeX<[w%+.4f NoneNoneNoneA HomeX<[w%+.4f NoneNoneNoneZ HomeX<[w%+.4f NoneNoneNoneY HomeX<[w%+.4ft NoneNoneNoneX HomeX<[w%+.4fYh8 NoneNoneNoneLabel%+.4f8 NoneNoneNoneLabel%+.4f8 NoneNoneNoneLabel%+.4f8 NoneNoneNoneLabel%+.4f8 NoneNoneNoneLabel%+.4fv8 NoneNoneNoneLabel%+.4fWg8 NoneNoneNoneLabel%+.4f$8 NoneNoneNoneLabel%+.4f7G NoneNoneNoneQueFullX<[w%+.4f% NoneNoneNoneSeq ErrX<[w%+.4f3E  NoneNoneNoneLabel%+.fEg~  NoneNoneNoneLabel%+.0fD~  NoneNoneNoneLabel%+.0fD  NoneNoneNoneLabel%+.0fD  NoneNoneNoneLabel%+.0fD  NoneNoneNoneLabel%+.0fD NoneNoneNoneX Pos%+.4fh:y NoneNoneNoneY Pos%+.4f 9 NoneNoneNoneZ Pos%+.4f 9 NoneNoneNoneA Pos%+.4f 9 NoneNoneNoneB Pos%+.4f 9 NoneNoneNoneC Pos%+.4f 9 NoneNoneNoneMach3 Positions%+.4f#K_ NoneNoneNoneGRex Positions%+.4fKg_ NoneNoneNoneC Pos%+.4f NoneNoneNoneB Pos%+.4f NoneNoneNoneA Pos%+.4f NoneNoneNoneZ Pos%+.4f NoneNoneNoneY Pos%+.4f NoneNoneNoneX Pos%+.4fhy  NoneNoneNoneLabel%+.0fr  NoneNoneNoneLabel%+.0fr  NoneNoneNoneLabel%+.0fr  NoneNoneNoneLabel%+.0fr  NoneNoneNoneLabel%+.0f~r  NoneNoneNoneLabel%+.0fgs~ NoneNoneNone Halt Triggersc %+.4f5|I NoneNoneNonePin8X<[w%+.4f$ NoneNoneNonePin7X<[w%+.4f$8 NoneNoneNoneLabel %+.4f(88 NoneNoneNoneLabel%+.4f(88 NoneNoneNoneLabel%+.4f(M8]8 NoneNoneNoneLabel%+.4f(^8n8 NoneNoneNoneLabel%+.4f(o88 NoneNoneNoneLabel%+.4f(88 NoneNoneNoneLabel%+.4f(88 NoneNoneNoneLabel%+.4f(8 NoneNoneNonePin1X<[w%+.4fM$_ NoneNoneNonePin2X<[w%+.4f^$p NoneNoneNonePin3X<[w%+.4fo$ NoneNoneNonePin4X<[w%+.4f$ NoneNoneNonePin5X<[w%+.4f$ NoneNoneNonePin6X<[w%+.4f$ NoneNoneNonePin14X<[w%+.4fDm NoneNoneNonePin13X<[w%+.4fDo NoneNoneNonePin12X<[w%+.4fDn NoneNoneNonePin11X<[w%+.4fDnm NoneNoneNonePin10X<[w%+.4fD]oo NoneNoneNonePin9X<[w%+.4fDLc^8 NoneNoneNoneLabel%+.4fq8 NoneNoneNoneLabel%+.4fq8 NoneNoneNoneLabel %+.4fq8 NoneNoneNoneLabel %+.4fqp8 NoneNoneNoneLabel %+.4fq_o8 NoneNoneNoneLabel %+.4fqN^8 NoneNoneNoneLabel%+.4fq8 NoneNoneNoneLabel%+.4fq NoneNoneNonePin15X<[w%+.4fDm NoneNoneNonePin16X<[w%+.4fDo NoneNoneNoneNext Seq%+.4f+6xJ  NoneNoneNoneLabel%+.0f3K  NoneNoneNoneLabel%+.0f! NoneNoneNone Next Message%+.4f  NoneNoneNoneLabel%+.0f  NoneNoneNone Last Message%+.4f  UCHAN_SYNNoneNoneLabelp%+.4f Enable THC Tog.NoneNoneLabel{%+.4f8NoneNoneNoneLabel%+.4f  Drop 1 in 5NoneNoneLabel%+.4f  Stop DropNoneNoneLabel%+.4f8 NoneNoneNoneLabel%+.4f  NoneNoneNoneLabel%XM NoneNoneNone1%+.4f NoneNoneNone2%+.4f  NoneNoneNoneLabel%XM NoneNoneNone3%+.4f   NoneNoneNoneLabel%XM  NoneNoneNone4%+.4f'  NoneNoneNoneLabel%XM) NoneNoneNone5%+.4f  NoneNoneNoneLabel%XR NoneNoneNone6%+.4f  NoneNoneNoneLabel%XR NoneNoneNoneEncoders%+.%+.4f9BM NoneNoneNoneAnalogue Outputs%+.4fS  NoneNoneNoneLabel%XQ NoneNoneNone4%+.4f  NoneNoneNoneLabel%XR NoneNoneNone3%+.4f  NoneNoneNoneLabel%XvR NoneNoneNone2%+.4fw NoneNoneNone1%+.4fZn  NoneNoneNoneLabel%XYRp  NoneNoneNoneLabels%8XF2 NoneNoneNone Digital In%+.4f9  Jog ON/OFF Ctrl-Alt-JNoneLabelgJ%+.4f +8 NoneNoneNoneLabelS%+.4f ,8 NoneNoneNoneLabelS%+.4f-  Torch VoltageNoneNoneLabelE /%+.4fL]q NoneNoneNonePin16X<[w%+.4fCkn} NoneNoneNonePin15X<[w%+.4fCZll8 NoneNoneNoneLabel$%+.4fpm}8 NoneNoneNoneLabel#%+.4fp\l8 NoneNoneNoneLabel%+.4fp8 NoneNoneNoneLabel%+.4fp8 NoneNoneNoneLabel%+.4fp(8 NoneNoneNoneLabel %+.4fp)98 NoneNoneNoneLabel!%+.4fp:J8 NoneNoneNoneLabel"%+.4fpK[ NoneNoneNonePin9X<[w%+.4fCb NoneNoneNonePin10X<[w%+.4fCn NoneNoneNonePin11X<[w%+.4fCl( NoneNoneNonePin12X<[w%+.4fC'm9 NoneNoneNonePin13X<[w%+.4fC8nJ NoneNoneNonePin14X<[w%+.4fCIl[ NoneNoneNonePin6X<[w%+.4fJ#\ NoneNoneNonePin5X<[w%+.4f9#K NoneNoneNonePin4X<[w%+.4f(#: NoneNoneNonePin3X<[w%+.4f#) NoneNoneNonePin2X<[w%+.4f# NoneNoneNonePin1X<[w%+.4f#8 NoneNoneNoneLabel%+.4f'J7Z8 NoneNoneNoneLabel%+.4f'97I8 NoneNoneNoneLabel%+.4f&(688 NoneNoneNoneLabel%+.4f'7'8 NoneNoneNoneLabel%+.4f'78 NoneNoneNoneLabel%+.4f'78 NoneNoneNoneLabel%+.4f'\7l8 NoneNoneNoneLabel%+.4f&l6| NoneNoneNonePin7X<[w%+.4f[#m NoneNoneNonePin8X<[w%+.4fl#~ NoneNoneNone Input Pinsc %+.4fm 2Alt CNoneNoneLabelHC%+.4f/`2NoneNoneNone3rd Axis%+.4f/`82NoneNoneNoneLabel%+.4ft~82NoneNoneNoneLabel%+.4f82NoneNoneNoneLabel%+.4f82NoneNoneNoneLabel%+.4ft~82NoneNoneNoneLabel%+.4f2NoneNoneNoneB%+.4f82NoneNoneNoneLabel%+.4f2NoneNoneNoneC%+.4f2NoneNoneNoneA%+.4f2NoneNoneNoneX%+.4f2NoneNoneNoneY%+.4f2NoneNoneNoneZ%+.4f NoneNone!MillBitmaps\G-code-letters_US.bmpLabel%+.4fJ]8NoneNoneNoneNone%+.4f 8NoneNoneNoneNone%+.4f 8NoneNoneNoneNone%+.4f 8NoneNoneNoneNone%+.4f 8NoneNoneNoneNone%+.4f 8NoneNoneNoneNone%+.4f 8NoneNoneNoneNone%+.4f; E8NoneNoneNoneNone%+.4f- 78NoneNoneNoneNone%+.4f )8NoneNoneNoneNone%+.4f 8NoneNoneNoneNone%+.4f  8NoneNoneNoneNone%+.4f 8NoneNoneNoneNone%+.4f&8NoneNoneNoneNone%+.4f&8NoneNoneNoneNone%+.4f&8NoneNoneNoneNone%+.4f&8NoneNoneNoneNone%+.4f&8NoneNoneNoneNone%+.4f&8NoneNoneNoneNone%+.4f<F&8NoneNoneNoneNone%+.4f.8&8NoneNoneNoneNone%+.4f *&8NoneNoneNoneNone%+.4f&8NoneNoneNoneNone%+.4f&8NoneNoneNoneNone%+.4f&Port 1 Pins current StateNoneNonePort 1 Pins current State%+.4f NoneNoneMillBitmaps\Togo.jpgNoneM(%+.4f$^+8NoneNoneMillBitmaps\BoxLEDYellow.pngNone%+.4f!`-NoneNoneMillBitmaps\gotoz.jpgNoneO(%+.4f+8NoneNoneMillBitmaps\BoxLEDYellow.pngNoneC%+.4f. NoneNoneMillBitmaps\offline.jpgLabel%+.4f,8NoneNoneMillBitmaps\BoxLEDYellow.pngNone%+.4f2 NoneNoneMillBitmaps\Togo.jpgNoneMO(%+.4f0FRO %NoneNoneFRO %%+.4f.NoneNoneMillBitmaps\Slider1.pngSkinnedSDTL5H250%3.0f -sNoneNoneMillBitmaps\Small Reset.jpgNone%+.4fNoneNoneMillBitmaps\BlueDro.pngSkinned%.0fn\p Spindle SpeedNoneNone Spindle Speed%+.4fCAUNoneNoneNoneS%+.4f&<NoneNoneMillBitmaps\BlueDro.pngSkinned%.0f9 NoneNoneMillBitmaps\Slider1.pngSkinnedJSDTL5H250%3.0fv OverRiddenNoneNone OverRidden%+.4fSRO %NoneNoneSRO %%+.4fNoneNoneMillBitmaps\settings.jpgNone%+.4f 8NoneNoneNoneNoneW%+.4fhz8NoneNoneNoneLabelZ%+.4fhz8NoneNoneNoneNoneV%+.4fJ\8NoneNoneNoneNoneX%+.4f8NoneNoneNoneLabel[%+.4f8NoneNoneNoneNoneY%+.4fJ\ ZNoneNoneLabel%+.4f| YNoneNoneLabel%+.4f|d~ XNoneNoneLabel%+.4f|F` ANoneNoneLabel%+.4fE_ BNoneNoneLabel%+.4fc} CNoneNoneLabel%+.4fNoneNoneNoneTool Change Location%+.4f4, NoneNoneNoneLabel%+.4fS/K NoneNoneNoneLabel%+.4fSOk NoneNoneNoneLabel%+.4fSnNoneNoneNoneZ%+.4f7oGNoneNoneNoneY%+.4f7UGiNoneNoneNoneX%+.4f7:GNCurrent PositionNoneNoneCurrent Position%+.4f%9 G92 OffsetNoneNone G92 Offset%+.4fY%9-NoneNone-%+.4f>ALU-NoneNone-%+.4f>XLl-NoneNone-%+.4f>nL-NoneNone-%+.4f>L Machine CoordNoneNone Machine Coord%+.4f2%9=NoneNone=%+.4f#=NoneNone=%+.4f#=NoneNone=%+.4fB$V=NoneNone=%+.4fY#m=NoneNone=%+.4fp#=NoneNone=%+.4f#-NoneNone-%+.4f>L-NoneNone-%+.4f>L#NoneNoneNoneNone%+.4f-"NoneNoneNoneNone%+.4f- NoneNoneNoneNone%+.4f[ NoneNoneNoneNone%+.4f[ NoneNoneNoneNoneW%+.4f@ NoneNoneNoneNoneX%+.4f@ NoneNoneNoneNoneT%+.4f@Xk NoneNoneNoneNoneS%+.4f@AT NoneNoneNoneNoneV%+.4f@ NoneNoneNoneNoneU%+.4f@o-NoneNone-%+.4f>R-NoneNone-%+.4fUi-NoneNone-%+.4fk-NoneNone-%+.4f-NoneNone-%+.4f-NoneNone-%+.4f Tool OffsetNoneNone Tool Offset%+.4f&@: NoneNoneNoneNone%+.4fB6U NoneNoneNoneNone %+.4fo6-NoneNone-%+.4f?S-NoneNone-%+.4fn8NoneNoneMillBitmaps\conditions.pngNone%+.4fTj NoneNoneMillBitmaps\speed+.jpgNonelzLabe%+.4f NoneNoneMillBitmaps\speed-.jpgNonemy%+.4f NoneNoneMillBitmaps\speed+.jpgLabelk%+.4fu NoneNoneMillBitmaps\speed-.jpgLabelm%+.4fOn  CV DistanceNoneNone CV Distance[%+.4f]8NoneNoneNoneNone%+.4fF[ abs max x,y,zNoneNone abs max x,y,z%+.4f1 NoneNoneNoneNone%+.4f4I NoneNoneNoneNone%+.4fJ_ NoneNoneNoneNone%+.4fbwMinNoneNoneMin%+.4fz NoneNoneNoneNone%+.4f NoneNoneNoneNone%+.4f NoneNoneNoneNone%+.4f Servo Freq. GeneratorNoneNoneServo Freq. Generatorg%+.4f Brain Time (ms)NoneNoneBrain Time (ms)%+.4f NoneNoneNoneNone%+.0f NoneNoneNoneNone%+.4f6I\Probe Tip DiameterNoneNoneProbe Tip Diameter%+.4f/2B NoneNoneMillBitmaps\Slider1.pngSkinnedSDTL0H102%3.0fu@RapidNoneNoneRapid%+.4fnFRONoneNoneFRO%+.4fr8NoneNoneNoneNone9%+.4f"Help9HtmlDialog( GetMainFolder()+"Edge-Finder_Options.htm" ) NoneHelp%+.4f7`,"