Hobby, 3D, Relief, CNC  
Share this page!
Általános Cikkek [6]
Elektronikai témájú cikkek [4]
ArtCAM témájú cikkek [17]
Fa anyaggal kapcsolatos cikkek [2]
MACH3 témájú cikkek [8]
Online összesen: 1
Vendégek: 1
Felhasználók: 0
  • Honlap létrehozása
  • TOP 100
  • HOBBYCNC fórum
  • Klavio Kft.
  • Felületkezelések
  • 3D Object Converter
  • Tavir AVR
  • Xplod lapja
  • H2Opok oldala
  • CNC4free
  • DOTG)
  • Tweakie CNC
  • Miki-bá oldala
  • Amatőr oldala
  • Íjász oldala
  • cncfafaragás (New!)
  • CnCPart.hu
  • MiniBee
  • Főoldal » Cikkek » Cikkek » MACH3 témájú cikkek

    Tool Position Setting Part 2.

    Tool Position Setting Part 2.



    Z axis height setting.


    For me, it is usual to set the Z axis Zero position to the top surface of the work and an automated setting procedure (Auto Tool Zero) saves a considerable amount of time when working with materials of differing thicknesses.


    To achieve this, I have used a ‘Touch Plate’ which is electrically connected to an LPT input pin – this plate is then placed below the cutting tool, the Z axis jogged until the tool is within 15mm of the plate and then by clicking on the Mach3 ‘Auto Tool Zero’ screen button  the Z axis is automatically, slowly, lowered until the tool makes electrical contact with the plate. The Z axis is then automatically raised a set distance and the Z axis DRO set to this distance plus the thickness of the touch plate. The plate is then removed and the Z axis DRO now reads the correct tool height above the surface of the work (in my case 5mm).




    To protect the delicate cutting edge of my engraving points the ‘touch plate’ I am using is a small piece of copper clad PCB material which has been bonded to, but electrically insulated from, a similar sized brass plate (just to give it a bit of extra weight). One end of the electrical connection is soldered to the PCB whilst the other end is connected to pin 15 of the LPT port then within Mach3, I have configured the ‘Probe’ input to pin 15 (Config / Ports & Pins / Input Pins / Probe) and set it to Active Low. PCB material is ideal for this purpose as the conductive surface, being soft, is extremely kind to the cutting edge of the tool and when the surface does eventually becomes peppered with tiny indentations it is cheap and easy to replace it with another piece. The down side is that copper tarnishes with the passage of time and copper oxide is a pretty good electrical insulator so the plate needs to be kept clean.


    My engraving spindle is of all metal construction and electrically connected to my machine frame (GND) so the cutting tool is always at GND potential. However, when using my Bosch routing spindle (which is fully insulated from the machine frame) it is necessary to temporarily add another lead, which connects the cutting tool to the machine frame (GND), to complete the electrical circuit and enable correct operation. This extra lead is just a short piece of wire with ‘crocodile clips’ each end and can easily be fitted and removed when required.




    The standard Mach3 screen already has a VB button intended for the Auto Tool Zero function but I have used one of the free screen designer programs (available from the Artsoft website) to add an additional LED (OemLED (825)). This LED illuminates when the cutting tool makes contact with the plate or, for testing purposes, will illuminate if the plate is touched to the machine frame (GND).





    The existing ‘Auto Tool Zero’ button already contains a very simple VB script which will, in many circumstances, work quite well (it may be in Imperial units) but the following script is one, which I have developed over the last couple of years (as Mach3 has evolved through various revisions) and which has some improved functions.


    To use this script - within Mach3, select; Operator / Edit Button Script then click on the flashing Auto Tool Zero button. Delete whatever is already in the VB box then copy and paste the following script into the box and finally save it.



    CurrentAbsInc = GetOemLED (48) 'Copy current G90/G91 state

    CurrentGMode = GetOemDRO (819) 'Copy current G0/G1 state

    CurrentFeed = GetOemDRO (818) 'Copy current feedrate

    Contact = 0 'Clear the contact flag

    PlateThickness = 2.8 'Touch Plate thickness is set here

    ProbeFeed = 40 'Probing feedrate is set here

    SetVar (1, -15) 'Maximum probing distance is set here

    SetVar (2, 5) 'Retract height is set here

    Code "M5" 'Ensures spindle is not running

    Code "G21” ‘Ensure metric units are used

    Zs = GetOemDRO (61) 'Copy current Z-Scale DRO

    Call SetOemDRO (61,1) 'Set Z-Scale DRO to 1

    Label1: 'Entry point for Retry

    DoOemButton (1010) 'Zero Z-Axis DRO

    Code "(Setting Tool Zero)" 'Message for status bar

    While IsMoving () 'Wait until task has been completed


    If GetOemLED (825) = 0 Then 'Check to see if touch plate is already grounded

    Code "G90 G31 Z #1 F" & ProbeFeed 'Probing move

    While IsMoving () 'Wait until task has been completed


    If GetOemLED (825) = True Then 'Check to see if probe has touched plate

    Contact = 1 'Set the contact flag

    End If

    ProbePos = GetVar (2002) 'Exact point probe touched

    Code "G0 Z" & ProbePos 'Go back to exact point of touch if there was any overrun

    While IsMoving () 'Wait until task has been completed


    Call SetDRO (2,PlateThickness) 'Set Z-Axis DRO to Touch Plate thickness

    Code "G0 Z #2" 'Retract off Touch Plate the set distance

    While IsMoving () 'Wait until task has been completed


    Code "(Z-Axis is now Zeroed.)" 'Message for status bar

    Code "F" & CurrentFeed 'Restore feedrate to original setting

    If Contact = 0 Then 'Probe reached max travel without touching

    Code "(ERROR - Probe did not touch.)" 'Message for status bar

    Response = MsgBox ("ERROR - Probe did not touch.",37,"Auto Tool Zero")

    If (Response = 4) Then 'User chose Retry

    GoTo Label1 'Retry Probing routine

    End If

    End If


    Code "(ERROR - Touch Plate is grounded.)" 'Message for status bar

    Response = MsgBox ("ERROR - Touch Plate is grounded.",16,"Auto Tool Zero")

    End If

    Call SetOemDRO (61,Zs) 'Restore Z-Scale DRO to original setting

    If CurrentAbsInc = 0 Then 'If G91 was in effect before then return to it

    Code "G91"

    End If

    If CurrentGMode = 0 Then 'If G0 was in effect before then return to it

    Code "G0"

    End If


    This implementation of Auto Tool Zero relies on having an electrically conductive tip to the cutting tool and as such would not be suitable for use with ceramic or diamond tipped tools. There are other solutions and once I have finalised the design and as time permits I will upload full constructional details of an alternative tool setter which does not have this limitation.


    Some notes regarding this script;


    (1) Although I have, for convenience, referred to the Mach3 scripts as VB (Visual Basic) they are, in fact, a subset of VB known as ‘Cypress Enable’ so those familiar with the VB language may find some of the command functions / statements unusual. To give a better understanding I have added comments to each line.


    (2) Before this script is used the ‘Plate Thickness’ (in line 5) must be changed to the exact thickness of the touch plate you will be using (my touch plate is 2.8mm thick overall).


    (3) All the dimensions and units used are Metric and you may wish to change some of the settings to be more suitable for your own machine.

    For example; I have set the probing feed rate to 40mm/minute, the maximum probe depth to -15mm and the retract height to 5mm (these settings can be altered in lines 6 to 8 of the script).


    (4) When setting up and testing this method for the first time observe caution and do not use one of your best cutting tools – incorrect electrical connection, incorrect Mach3 settings and incorrect copy and pasting or alteration of the script could all cause problems so take care.


    Just one final note – your personal safety is of paramount importance at all times – always use protective eyewear and never allow hands, fingers or anything else near to a running machine – please do not take any chances.



    Kategória: MACH3 témájú cikkek | Hozzáadta:: tweakie (2012-04-19)
    Megtekintések száma: 4979 | Hozzászólások: 2 | Helyezés: 5.0/2
    Összes hozzászólás: 2
    +1   Spam
    2 tweakie   (2012-05-11 07:52)
    Update – As the initial tests have proved successful, my design for a ‘low profile’ Tool Setter has been detailed in the English section here http://hobbycncart.com/forum/66-185-1
    This is an 'active' device (similar in operation to a probe) and does not rely on electrical contact with the tool tip so is suitable for use with diamond tipped and other electrically insulated tools.
    Full constructional details will be posted and I hope this project may be of interest / use to other forum members.


    0   Spam
    1 KisKZ   (2012-04-21 19:46)
    Excellent article again!

    Thank you Tweakie!

    Hozzászólásokat csak regisztrált felhasználók írhatnak.
    [ Regisztráció | Belépés ]

    Keresés a honlapon
    Fórum/Last posts
  • Free CAD/CAM softwa...
  • EMC vezérlő szoftve...
  • Vezérlő, szoftver p...
  • Lézergravírozás
  • Bárki gépe
  • Természetfotók
  • Vectric vektorgrafi...
  • Egyéb gravírozó esz...
  • Hirdetések
    Hobby CNC maró igé...
    Hobby CNC maró, fó...
    Nsk lineáris sin +...
    Utolsó képek
    Marási munkák
    Marásra kérhető
    Kézi rajzok
    Copyright HobbyCnCArt © 2016