![]() | |
| Home Page | Mark Forums Read | Today's Posts | My Replies | Classifieds | Reviews | Photo Gallery | Web Links | Share Files | Advertise With Us | Ad List |
| |||||||
| This forum is sponsored by: |
![]() |
| | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#1
| |||
| |||
I've had a quick google about without much luck - most circle related wizards see to focus on touching the inner eges of a hollow circle (eg pipe/tube) , but what I seek is a Mach3 Mill wizard where it'll find the centre of a piece of circular material by probing the outside edges of the material in a few places. Does such a wizard exist? Last edited by HankMcSpank; 09-30-2009 at 05:01 PM. |
|
#3
| |||
| |||
| Hi Hank, A Tormach owner, Maurice Proulx posted a wizard (Circular Boss Center Point)on the Yahoo Tormach group (files section). This add on for Mach 3 is increadibly useful. It is compressed using RAR compresssion - so you have to have a RAR extract utility to open it. Once I downloaded this utility, I found all kinds of uses for it. Best regards; Art Pentz |
|
#4
| |||
| |||
| This is the "Shaft" extract To run it you have to link to a user button or include in yours other functions. Take care, when you run the shaft procedure, a check is made to be sure that the gauge is not already engaged, than to continue the operation you must engage it (ground it like a push button). 'find shaft center and calculate diameter Sub Shaft Option Explicit Dim TS As Single Dim FeedCurrent, Xcurrent, Ycurrent , Zcurrent As Single Dim XCenter, YCenter, XPos1, XPos2, YPos1, YPos2, XNew, YNew, ZNew, ZPos1,ZSafe As Single Dim responce As Integer Dim Max_move , Shaft_D As Double Const ZClear = 10 'Safe Z Const XMove = 4 'Max probe search Const YMove = 4 'Max probe search Const FSlow = 50 'edje search speed Const Tout = 15 'Time out in seconds Const Probe_Radius = 3.15 ' If GetOemLed (825) <> 0 Then 'Check to see if the probe is already grounded or faulty Code "(Probe grounded, check connection and try again)" responce = MsgBox ("Probe grounded, check connection and try again" , 0 , "Probe **ERROR**" ) Exit Sub End If Rem VBScript To shaft center Max_move = Question ("Enter max shaft diameter, min value 1 mm") If Max_move < 1 Then Code "(Diameter < 1, Function abort)" Exit Sub End If If Touch ("(Touch the Probe to start Shaft center function)") Then Exit Sub Code "F" & FSlow Rem Probe up YNew = YCurrent + Max_move Code "G31 Y" &YNew While IsMoving() sleep 100 Wend YPos1 = GetVar(2001) YNew = YPos1 - 0.5 Code "G0 Y" &YNew ZNew = ZCurrent + ZClear Code "G0 Z" &ZNew YNew = YPos1 + Max_move + (Probe_Radius * 2) + 2 Code "G0 Y" &YNew Code "G0 Z" &ZCurrent Rem Probe down YNew = YNew - Max_move - Probe_Radius Code "G31 Y" &YNew While IsMoving() sleep 100 Wend YPos2 = GetVar(2001) YNew = YPos2 + 0.5 Code "G0 Y" &YNew ZNew = ZCurrent + ZClear Code "G0 Z" &ZNew YCenter = (YPos1 + YPos2) / 2 Code "G0 Y" &YCenter Rem Probe Left XNew = XCurrent - Max_move - (Probe_Radius * 2) 'probe to left Code "G0 X" &XNew Code "G0 Z" &ZCurrent XNew = XNew + Max_move + Probe_Radius Code "G31 X" &XNew While IsMoving() 'wait for the move to finish sleep 100 Wend XPos1 = GetVar(2000) 'get the probe touch location XNew = XPos1 - 0.5 Code "G0 X" &XNew ZNew = ZCurrent + ZClear Code "G0 Z" &ZNew Rem Probe Right XNew = XPos1 + Max_move + (Probe_Radius * 2) + 2 'probe to right Code "G0 X" &XNew Code "G0 Z" &ZCurrent XNew = XNew - Max_move - Probe_Radius Code "G31 X" &XNew While IsMoving() sleep 100 Wend XPos2 = GetVar(2000) XNew = XPos2 + 0.5 Code "G0 X" &XNew ZNew = ZCurrent + ZClear Code "G0 Z" &ZNew XCenter = (XPos1 + XPos2) / 2 'center is midway between XPos1 and XPos2 Code "G0 X" &XCenter 'rapid move to the x center location While IsMoving () sleep 100 Wend Shaft_D = (XPos2 - XPos1) - (2 * Probe_Radius) Code "(Shaft diameter = " & Shaft_D & " mm)" Code "F" &FeedCurrent 'restore starting feed rate End Sub 'Wait for a probe touch - untouch Function Touch (Tshow As String) As Integer Code Tshow 'wait probe touch TS = Timer Do If Timer - TS > Tout Then Code "(Function Time Out, no probe touch detected)" responce = MsgBox ("Function Time Out, no probe touch detected" , 0 , "Probe **ERROR**" ) Touch = 1 Exit Function End If sleep 100 Loop Until GetOemLed (825) <> 0 'short delay sleep 1000 'let user to untouch probe 'Wait for probe untouch TS = Timer Do If Timer - TS > 2 Then Code "(Function Time Out, continuous probe touch detected)" responce = MsgBox ("Function Time Out, continuous probe touch detected" , 0 , "Probe **ERROR**" ) Touch = 1 Exit Function End If sleep 100 Loop Until GetOemLed (825) = 0 Touch = 0 End Function Regards |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | Search this Thread |
| Display Modes | |
| |
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Problem- tip not at the centre | david_geng | Digitizing and Laser Digitizing | 1 | 02-26-2009 09:03 AM |
| Looking for 3 pins metal circular connector | rainman | Want To Buy...Need help! | 0 | 02-08-2009 07:59 PM |
| Need Help!- Finding the centre of an arc | Robin Hewitt | G-Code Programing | 15 | 03-28-2008 08:02 AM |
| Nesting Wizard, Mach3 internal wizard. | thuffner3 | Mach Software (ArtSoft software) | 1 | 03-04-2007 08:38 PM |
| Where can i find metal lathe spare parts in brisbane? | rhino | Australia, New Zealand Club house | 6 | 05-09-2006 02:02 AM |