auto Z origin on lathe - Page 4


Page 4 of 5 FirstFirst 12345 LastLast
Results 37 to 48 of 56

Thread: auto Z origin on lathe

  1. #37
    scaring mice @ north pole deadlykitten's Avatar
    Join Date
    Jun 2015
    Location
    Antarctica
    Posts
    1947
    Downloads
    0
    Uploads
    0

    Default Re: auto Z origin on lathe

    Quote Originally Posted by OkumaWiz View Post
    ... chuck has clearance in it in order to operate. As it clamps, the tolerances are taken up ...
    hy mr Wizard if i may, how do you verify this clearance ?

    i do something like this :
    ... unclamp the chuck
    ... with the inside key, i rotate the nut, so to put the jaws in the upper limit
    ... i put a comparator on the jaw, paralel with jaw_radial_movement ( comparator_value=A )
    ... i turn the key in the opposite direction, so to create a bit of play ( comparator_value=A-0.1 )
    ... clamp & unclamp the chuck
    ... comparator value will be smaller, because of backlash ( comparator_value < A-0.1 )
    ... now i raise the jaw by hand, and see if i can reach the A-0.1 value
    ... i adjust the nut inside, until each jaw has a minimal comfortable/admisible play; 0.1 for example, or sliding the jaw by hand feels ok

    - at this point, the chuck is free of tension when it is opened
    - also there is enough jaw travel left, so the chuck will behave normal
    - thus i reduce a bit the jaw travel, so to gain clearance
    - if jaw travel is maximal, than there is no clearance and internal tension appears when chuck is unclamped


    this aplies only to normal ( OD ) clamping

    if there is no play when chuck is open, than it means that the chuck is in tension, also when lathe is powered off this behaviour is similar to when using the chuck for ID clamping

    when a chuck is used for :
    ... OD clamping, it is in stress only at clamp position, and at unclamp position may be free
    ... ID clamping, it is in stress at bought clamp & unclamp position

    achieving no tension at unclamp position when ID clamping is tricky

    i recomend always leaving the chuck unclamped, before power off, at the position where jaws are up, and be sure that the chuck is in a free position, thus only the hydraulic cilinder is in tension

    kindly !

    ps : here is a contraexample for the behaviour that i try to suggest : imagine a classic lathe, which has clamped normal a part ; when you unclamp it, consider that you dont leave the jaws free, but clamp a pipe, thus the chuck remains in tension, until next part is clamped

    Last edited by deadlykitten; 05-12-2017 at 03:09 AM.
    if you wish to be famous, first you have to succeed
    ... where is Sid ?



  2. #38
    scaring mice @ north pole deadlykitten's Avatar
    Join Date
    Jun 2015
    Location
    Antarctica
    Posts
    1947
    Downloads
    0
    Uploads
    0

    Default Re: auto Z origin on lathe

    hello i would like to share the procedure that i use for "senseless gauging" technique, thus using torque skip to detect Z0, when material feed is done by using a bar-puller

    such a procedure is subject to the following :
    ... fast editable for different materials
    ... fast editable for frontal machining, depending on material frontal condition after cutting ( tilted face after saw / circular / etc )
    ... safety bounds ( goldilocks zone )
    ... log
    ... no extra movements
    ... existing movements are as short as possible
    ... "senseless gauging" occurs on knife shank ( specified by 2nd offset ), and cutting ocurs normal, on insert ( specified by 1st offset )

    i tried to minimize the number of input variables without compromising functionality

    these are the input parameters :
    Code:
        V1 = 0.3    ( Z position for last frontal cut )
        V2 = 0.4    ( frontal cut width / how thick is the salami slice )
        V3 = 3      ( how many slices is desired to be cut >= 1 )
        V4 = 2      ( number of tries >= 1 ) (*1)
        V5 = 11     ( T - tool )
        V6 = -123   ( X contact )
    
        V21 = 1900     ( n )
        V22 = 0.15     ( f )
        V23 = 35       ( X start )
        V24 = -2*0.8   ( X  end  ) ( *r )
    for the above example, machine will behave like this :
    1) safe position
    2) will position, using 2nd offset of tool V5, at X=V6 and a specific Z
    3) M0 will occur, for the operator to pull the bar on the turret and close the chuck without the need to keep the bar pressed on the turret, thus no (extra) force is needed
    4) torque skip will occur
    5) if detected Z is ok, than machine will change to 1st offset of tool V5 and cut V3 slices, each slice with width=V2; last slice will be cut at Z=V1
    ... rpm, feed, X+ and X- for slicing ( frontal cut ) are specified by V21 .. V24
    6) safe position
    ... if after inspection frontal is not clean, than operator may rerun the program without the need to pull the bar on the turret at M0
    ... in this way, program will perform faster
    ... program will stop if number of repetitions exceeds V4



    ok, now lets go deeper into this

    program cuts a specified number of salamy slices (V3), with a specified width (V2)

    last slice is not at Z0, but at Z=V1, thus an editable value :
    ... if this program is not used with a bar puller, thus it is used for a single part, than V1 may be 0, and there may be no frontal cut inside the program
    ... if this program is used with a bar puller, than V1 must retain same amount of material, like the bar puller had been used
    ...... in this way, bar puller will pull the part at same Z as the final cut of this program it sounds normal

    about the repetability :
    ... this program cuts 3 times, each time a slice width=0.4; thus a total of 3*0.4=1.2
    ... this amount should be specified in such a manner that will deliver clean frontal bars, acording to their state ( how rough and tilted are before machining )
    ... same thing occurs on 2*0.6 or 1*1.2; however, is good to use more tiny slices instead of a big one, so to protect tool nose
    ... in this case, program uses a repetability input of 2 times ( V4 ); thus second time when program will be runned, it will cut same amount : 3*0.4=1.2; if operator runs the program a 3rd time, no cutting will ocurr, because program will detect that actual Z is too low
    ... this behaviour is because this program acts like a presseter : thus it runs only once, before the main program that loops to cut the parts; this program runs on an absolute zero, and it checks the detect frontal to be within some limits; if limits are ok, than slices will be cut, and Z will be updated, delivering a ready state for the main program

    thus this presseter detects part frontal, checks limits and logs data, just in case



    safe position
    come with tool shank in front of chuck
    orient chuck & change offset
    feed to position
    M0 ( operator should pull the material on the turret )
    torque skip
    log data
    check limits and continue only if all ok
    change offset & cut slices
    safe position



    so far so good ? lets develop

    safe position without broken vector
    activate main offset
    update X in 2nd offset, so to eliminate the need to manually update X in 2nd offset each time a X offset is changed ( thus a corection occurs )
    come with tool shank in front of chuck at Zmaxim+2.5
    orient chuck & change offset
    feed to position Z=Zmaxim
    M0 ( operator should pull the material on the turret )
    move to right
    torque skip
    move to right, so to disengage contact
    log data : zero before, z contact, computed zero
    check limits and continue only if all ok
    change offset & cut slices
    safe position without broken vector

    if you wish to be famous, first you have to succeed
    ... where is Sid ?



  3. #39
    scaring mice @ north pole deadlykitten's Avatar
    Join Date
    Jun 2015
    Location
    Antarctica
    Posts
    1947
    Downloads
    0
    Uploads
    0

    Default Re: auto Z origin on lathe

    lets continue

    safe position without broken vector
    activate main offset
    update X in 2nd offset, so to eliminate the need to manually update X in 2nd offset each time a X offset is changed ( thus a corection occurs )
    come with tool shank in front of chuck at Zmaxim+2.5
    ... Zmaxim=V1 + V2 * V3 * V4
    ... i dont go directly at Zmaxim, but at +2.5 in front, so to avoid contact when i rerun the program, and during previous session no cut occured
    orient chuck & change offset
    feed to position Z=Zmaxim
    ... feed, not rapid, so to achieve a gentle touch in case that material is allready there
    M0 ( operator should pull the material on the turret )
    move to right
    ... moving at Zmaxim+5
    ... +5 so monitoring_to_be_effective; 5 is a minimal recomended value
    ...... more than 5 : useless motion
    ...... less than 5 : monitoring may be ineffective
    torque skip
    move to right, so to disengage contact
    ... move right with 2.5
    log data : zero before, z contact, computed zero
    check limits and continue only if all ok
    ... Zminim<detected_z<Zmaxim
    ... Zminim=V1 + V2 * V3
    change offset & cut slices
    ... using not a cycle, but optimized G code
    safe position without broken vector

    if you wish to be famous, first you have to succeed
    ... where is Sid ?



  4. #40
    scaring mice @ north pole deadlykitten's Avatar
    Join Date
    Jun 2015
    Location
    Antarctica
    Posts
    1947
    Downloads
    0
    Uploads
    0

    Default Re: auto Z origin on lathe

    the thing :

    Code:
    OS000 ( pulling bars on the turret )
    
        V1 = 0.3    ( Z position for last frontal cut )
        V2 = 0.4    ( frontal cut width / how thick is the salami slice )
        V3 = 3      ( how many slices is desired to be cut >= 1 )
        V4 = 2      ( number of tries >= 1 ) (*1)
        V5 = 11     ( T - tool )
        V6 = -123   ( X contact )
    
      ( * ) ( LV01 , LV02 , LV03 : used lower )
    
      ( IF [ VRSTT NE 0 ] NEND ) ( this remains in paranthesis; this code will never be restarted )
    
      ( M867 )                   ( no shortening restart sequence )
        G00 X+LVXP-VETFX Z150-VETFZ
        T+V5*101 M66
        VTOFX [ VETLN+20 ] = VTOFX [ VETLN ]              ( 2nd offset )
        V4 = V1 + V2 * V3 * V4                            ( Z contact maxim )
        V7 = V4 + 5                                       ( Z start G22 = Z contact maxim + 5 ) (*2)
        V8 = V1 + V2 * V3                                 ( Z contact minim )
        V9 = 2.5 + VTOFZ [ VETLN ] - VTOFZ [ VETLN + 20 ] ( retreat after torque skip ) (*3)
    
        CALL OSG
        CALL OZCHK
        CALL OQ000
    
      ( NEND )
    
    RTS
    
     ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . )
    
    OSG ( senseless gauging )
    
        G00 X+V6 Z+V4+2.5    ( Z contact maxim + 2.5 )
        M19 T+VETLN+20
        G01 X+VSIOX Z+V4    F2000   G94
        M0
                  ( Z+V7+5 ) (*4)
                    Z+V7
        G29 PZ=60
        G22 PZ=25   Z-V7    F+100*5 G94 D+V7*2 ( L0 still going ) (*5)
        G28
    
    RTS
    
     ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . )
    
    OZCHK ( origin Z axis check )
    
        G00 Z=VSIOZ+V9 M18
        CALL OSGL
        IF [ [ [ VSIOZ-V9 GE V8 ] AND [ VSIOZ-V9 LE V4 ] ] EQ 1 ] NJUMP
            NRPT M0 ( out of bounds )
                 GOTO NRPT
            NJUMP VSZOZ=VSZOZ+VSIOZ-V9-V8
                  T = VETLN ( Z = Z contact minim + 2.5 )
        NEND
    
    RTS
    
     ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . )
    
    OSGL ( senseless gauging log )
    
        FWRITC contact-1.txt;A
    
        LV01 = VSIOZ-V9
        LV02 = VSZOZ+LV01-V8
    
        PUT '    '
        PUT VSZOZ       ( origin before contact )
        PUT '    '
        PUT LV01        ( contact )
        PUT '    '
        PUT LV02        ( origin after contact )
    
        WRITE C
        CLOSE C
    
    RTS
    
     ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . )
    
    OQ000 ( straight face )
    
        V21 = 1900     ( n )
        V22 = 0.15     ( f )
        V23 = 35       ( X start )
        V24 = -2*0.8   ( X  end  ) ( *r )
    
       ( * )
    
        G97 S=V21 M42 M03 M08 G00 X+V23 Z=VSIOZ M63
    
        NAGAIN V3=V3-1
                   Z+V1+V2*V3
               G01 X+V24 F+V22 G95 
                   Z+VSIOZ+0.3
               IF [ V3 EQ 0 ] NBREAK
               G00 X+V23
        GOTO NAGAIN
    
        NBREAK G00 X+LVXP-VETFX Z150-VETFZ M05 M63 M09
    
    RTS
    
     ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . )
    
    (*1)
    ( Z contact minim = V1+V2 )
    ( Z contact maxim - Z contact minim : multiple of salami slice )
    (*2)
    ( 5 is minimal recomended distance, so  torque skip will work )
    ( Monitoring is invalid   if : [APPROACH] <= [WORK POSITION]+[+OK]+2mm               )
    ( Monitoring is effective if : [APPROACH] >= [WORK POSITION]+[+OK]+[CENTER HOLE]+5mm )
    (*3)
    ( while 2nd offset is active, turret is moving at a position specific to 1st offset )
    (*4)
    ( eliminates backlash effort )
    ( to be used if this effort is big and may lead to wrong results )
    Code:
    	   105.555	     2.512	   106.967
    	   105.555	     1.752	   106.207
    	   105.555	     1.353	   105.808
    	   105.555	      1.26	   105.715
    	   105.555	     2.502	   106.957
    	   105.555	     1.953	   106.408
    	   105.555	     1.779	   106.234
    	   105.555	     2.259	   106.714
    	   105.555	     2.378	   106.833
    	   105.555	     2.592	   107.047
    	   105.555	     2.514	   106.969
    	   105.555	     2.673	   107.128
    	   105.555	     2.206	   106.661
    	   105.555	       1.9	   106.355
    	   105.555	     2.247	   106.702
    	   105.555	     2.593	   107.048
    	   105.555	     2.687	   107.142
    	   105.555	     2.633	   107.088
    	   105.555	     2.259	   106.714
    	   105.555	     2.273	   106.728
    	   105.555	     2.044	   106.499
    	   105.555	     1.873	   106.328
    	   105.555	     2.647	   107.102
    	   105.555	     2.246	   106.701
    	   105.555	     2.153	   106.608
    	   105.555	     1.833	   106.288
    	   105.555	     2.366	   106.821
    	   105.555	      2.14	   106.595
    	   105.555	     2.206	   106.661
    	   105.555	     2.406	   106.861
    	   105.555	       2.3	   106.755
    	   105.555	     2.273	   106.728
    	   105.555	     2.593	   107.048
    	   105.555	     2.139	   106.594
    	   105.555	     2.046	   106.501
    	   105.555	     1.766	   106.221
    	   105.555	     2.006	   106.461
    	   105.555	     2.687	   107.142
    	   105.555	     2.419	   106.874
    	   105.555	     2.472	   106.927
    	   105.555	     2.526	   106.981
    	   105.555	     2.206	   106.661
    	   105.555	     1.633	   106.088
    	   105.555	     2.166	   106.621


    Last edited by deadlykitten; 05-29-2017 at 09:24 AM.
    if you wish to be famous, first you have to succeed
    ... where is Sid ?



  5. #41
    scaring mice @ north pole deadlykitten's Avatar
    Join Date
    Jun 2015
    Location
    Antarctica
    Posts
    1947
    Downloads
    0
    Uploads
    0

    Default Re: auto Z origin on lathe

    hy in attached archive is a movie that shows this program at work

    ... in reality is much faster, since here i had to operate with the door open and one hand holding the camera, and another on the feed potentiometer
    ... a sharp eye should see that there are no extra movements ( specific to cycles ) when frontal is cut kindly !

    Attached Files Attached Files
    if you wish to be famous, first you have to succeed
    ... where is Sid ?



  6. #42
    scaring mice @ north pole deadlykitten's Avatar
    Join Date
    Jun 2015
    Location
    Antarctica
    Posts
    1947
    Downloads
    0
    Uploads
    0

    Default Re: auto Z origin on lathe

    [ delivering a stable machine condition before using G22, and a proper PZ ]

    hello all this thing generally occurs as default, so you dont have to worry about it; problems may appear when improper safe positions are used, or when using G22 for at least 2 times on same part, because screw ball area is changed

    1) running a simple code, without touching the material :

    Code:
        G29 PZ=69 (*1)
        G22 PZ=69 Z-15 G94 F100*5 D15 G91 (*1) (*2)
        G28
    i runned this code a few times, and between each run i have moved the turret :
    ... to left or to right
    ... by hand wheel or by the arrows
    ... with low or high feed
    ... in front of the chuck or far from the chuck

    as it can be seen in attached image 1, the effort is not identical

    2) adding movement before the G22, so to normalize the effort diagram :

    Code:
        G00 X+200 Z+200 G91
            X-200 Z-190
                  Z-10
        G29 PZ=69 (*1)
        G22 PZ=69 Z-15 G94 F100*5 D15 G91 (*1) (*2)
        G28
    trials are shown in image 2 : effort is normalized now ( last 2 runs are in a different screw ball area; at run 4 i have reduced the feed from the potentiometer, checking not to hit the tailstock )

    movement before G22 must exist and be repeatable, so to normalize the servos effort when G22 begins

    this code :
    ... safe position
    ... rapid movement to G22_start_position
    ... G22, may not be good : if during the rapid movement only X is traveling a lot ( from X+limit towards the part ), and Z is traveling short ( this may succumb the Z servo )

    so i suggest this approach :
    ... safe position
    ... rapid movement to G22_start_position.X G22_start_position.Z+10
    ... rapid movement to G22_start_position ( this line should normalize the servo )
    ... G22
    *or just control the safe position, being sure that Z servo during approaching has enough travel, to reach a normal feed

    with this approach, repetability is achieved : start-up effort is stable and also the normalization effort is stable; just replace PZ=69 with a value greater with 3..5 units than the normalized effort and hit the material PZ=25..30% should deliver in most cases ... kindly !





    (*1)
    PZ=69 is totally random; idea is to run a blank trial ( without touching the material ) and have an active torque limit big enough, so things will run smooth; this limit may be maximized in this stage, because servos will never reach it; after such trials, it can be lowered and material can be hit; if such trials are runned with a lower PZ, than the machine may stop without touching the material, but also very close to it, so making it hard to guess that the code is not working as it should

    (*2)
    turret should always execute the full travel and raise an error at the end; this is normal, and the error says that during the travel, the desired effort limit ( PZ=... ) was not reached; this is simply solved by hitting the material without reaching the end Z

    Attached Thumbnails Attached Thumbnails auto Z origin on lathe-02-stable-initial-condition-jpg   auto Z origin on lathe-01-unstable-initial-condition-jpg  
    Last edited by deadlykitten; 10-17-2017 at 05:40 AM.
    if you wish to be famous, first you have to succeed
    ... where is Sid ?



  7. #43
    Registered
    Join Date
    Mar 2018
    Posts
    14
    Downloads
    0
    Uploads
    0

    Default Re: auto Z origin on lathe

    ... G22 PZ=69 Z-15 G94 F100*5 D15 G91 (*1) (*2) ...Whats the D15 for? Does it have to match Z? Is this the limit that gives Torque alarm if it passes 15?



  8. #44
    scaring mice @ north pole deadlykitten's Avatar
    Join Date
    Jun 2015
    Location
    Antarctica
    Posts
    1947
    Downloads
    0
    Uploads
    0

    Default Re: auto Z origin on lathe

    hi / don't use PZ=69, but something lower, like PZ=15 - 20 - 25; 69 is too big ...

    there is a comment at the bottom of the post, where i said that 69 is random yeah, you know ...



    yup, match the D with the Z, more precise, when going left, Z will be negative and D = | Z |

    that code, because of the G91, will start moving the turret towards left, for a travel of 15mm long, regardless of initial turret position :
    ... if there is nothing in front of the turret, the cnc will raise an error after the 15mm had been traveled
    ... if there is something in front of the turret, the cnc will continue it's movement until the effort will be PZ; after that, next block is executed

    for more infos about G22 check attached file; also, pls consider initial posts; latest posts are a bit too wild : more precise there is a lot of code and things, that require time to be understood, but they perform pretty fast and versatile i don't know, just don't get lost ...

    Attached Files Attached Files
    if you wish to be famous, first you have to succeed
    ... where is Sid ?



  9. #45
    Registered OkumaWiz's Avatar
    Join Date
    Apr 2009
    Location
    United States
    Posts
    976
    Downloads
    0
    Uploads
    0

    Default Re: auto Z origin on lathe

    D does not have to match Z. It is only an approach Distance where the feed will be cut to 1/5 in order to more accurately detect the load value. Yes 69 is way too high. That may be a G29 torque limit max rather than the G22 torque skip value which should be about 20 as kitty says.

    D would be distance before target where feed decreases
    and L is distance after target before alarm occurs.

    Experience is what you get just after you needed it.


  10. #46
    scaring mice @ north pole deadlykitten's Avatar
    Join Date
    Jun 2015
    Location
    Antarctica
    Posts
    1947
    Downloads
    0
    Uploads
    0

    Default Re: auto Z origin on lathe

    hy mr wizard you are right, D does not have to match the Z, but this is how i use G22 : it simplifies the syntax, because there is no more the "L" parameter

    this is the " senseless gauging " fragment of code that i use :
    Code:
        G00       Z+V7
        G29 PZ=25
        G22 PZ=25 Z-V7 F+100*5 G94 D+V7*2
        G28
    it only requires a value for the V7, that is calculated automatically; for example, if i start a setup, i put a bar in there, and i simply input these values :
    ... minimal VSZOZ
    ... how many cuts
    ... cut width
    ... Z to leave for the main program, so to adjust origin as necessary ( for example : deliver Z0, or Z<>0 when a face cut is inside the main program )

    the soubroutine does all the work for example, after G22 is executed, it checks that the material is detected inside a small window arround V7-5mm; i use 5 mm, so to allow the monitoring effort to stabilize, thus it checks that a "minimal travel occurs", and raises an error otherwise


    approach depends on real setup / kindly !

    Last edited by deadlykitten; 04-17-2018 at 04:41 AM.
    if you wish to be famous, first you have to succeed
    ... where is Sid ?



  11. #47
    Registered
    Join Date
    Mar 2018
    Posts
    14
    Downloads
    0
    Uploads
    0

    Default Re: auto Z origin on lathe

    Quote Originally Posted by OkumaWiz View Post
    .....Then you will need to read the machine position once it stops. V1=VAPAZ (sets variable 1 = Actual Z position)You may need to do some math to determine how much to shift since this reads the machine position.VZSHZ=Zero Shift on ZVZOFZ=Zero OFFSET on ZVSIOZ=Zero Secondary Incremental offset on ZSo amount to shift would be V2=VAPAZ-VZSHZ-VZOFZ-VSIOZThen in your program shift to new origin by VSIOZ=VSIOZ+V2.Zero should now be at the front of your part....
    Hi again. Im struggling with this "equation".My V1 (VAPAZ) is 55387.251, but I cant seem to get anything useful out of it.Could you explain again with more details? How would you explain the difference between VZSHZ, VZOFZ and VSIOZ to a newbie?

    Also I am not looking for changing my zero point, but rather add the difference between the current position and my zero point to the cyclus start. Then I wont be running air cuts while facing the parts.



  12. #48
    scaring mice @ north pole deadlykitten's Avatar
    Join Date
    Jun 2015
    Location
    Antarctica
    Posts
    1947
    Downloads
    0
    Uploads
    0

    Default Re: auto Z origin on lathe

    paste your G22 code, and specify your control generation : if osp200 or 300 i will quick edit it for you, so to get the Z zero

    about explanations about those variables, let's postpone them : you may not need to use all those variables, so to make the G22 work so if i start explaining them, you won't move your cnc ...

    this is a paragraph : it has no safe position, no T codes; can you handle it ?
    M19
    G00 Z+10
    G29 PZ=25
    G22 PZ=25 Z-10 F+100*5 G94 D+10*2
    G28
    G00 Z+2.5 M18 G91
    G90
    NOEX VSZOZ = VSZOZ + VSIOZ - 2.5

    Last edited by deadlykitten; 04-23-2018 at 07:51 AM.
    if you wish to be famous, first you have to succeed
    ... where is Sid ?



Page 4 of 5 FirstFirst 12345 LastLast

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


About CNCzone.com

    We are the largest and most active discussion forum for manufacturing industry. The site is 100% free to join and use, so join today!

Follow us on


Our Brands

auto Z origin on lathe

auto Z origin on lathe