New Machine Build Mach3 Retrofit to 1989 CNC Lathe - Page 7


Page 7 of 7 FirstFirst ... 4567
Results 121 to 134 of 134

Thread: Mach3 Retrofit to 1989 CNC Lathe

  1. #121
    Member TomKerekes's Avatar
    Join Date
    May 2006
    Location
    USA
    Posts
    4043
    Downloads
    0
    Uploads
    0

    Default Re: Mach3 Retrofit to 1989 CNC Lathe

    Hi Jim,

    KMotionCNC supports Rigid Tapping using G84 which invokes the C Program assigned to M119. See the wiki for a description and example.

    Here's an example (tapping is at the end)



    Regards
    TK http://dynomotion.com


  2. #122
    Member
    Join Date
    Aug 2016
    Location
    United Kingdom
    Posts
    147
    Downloads
    0
    Uploads
    0

    Default Re: Mach3 Retrofit to 1989 CNC Lathe

    Hi Tom,

    Ok, so i set PrintRigidTapParams.c to run in thread 6. M-code M119 is set to VAR 60 (also adjusted in the C-program), thread 6 and Exec, wait, sync. When I enter and execute

    Code:
    G21G98 G84 Z-30 R40 Q3 F1.5
    M30
    the console prints:

    Code:
    MCode = -1
    Bottom = -30.000000
    Retract = 40.000000
    Peck = 3.000000
    Rate = 1.500000
    RPM = 400.000000
    Units = mm
    Axis = 2
    AxisRes = 25400.000000
    So we know the G-code is being interpreted correctly by the C-program.

    I've then copied your complete example program RigidTapCycle+M119 Feedhold Rev 6. and modified the properties needed to suit my machine:

    Code:
    #define ZAXIS 2			// Axis to slave
    #define MAXERROR 0.05	// MAX slave error in inches
    #define SPINDLE_AXIS 0	// Spindle Axis With Encoder Feedback 
    #define SPINDLECW 		// SPINDLE CW Bit number
    #define SPINDLECCW 		// SPINDLE CCW Bit number
    #define Z_CPI 25400		// Counts per inch of slave axis
    #define CPR 4096		// Counts per rev of spindle encoder
    #define TAU 0.001		// Smoothing time
    #define MAXTAPSPEED 150 // Maximum Tapping speed in rpm
    #define OSFACTOR 0.0077	// Overshoot Factor (higher number reduces overshoot at higher rpms)
    #define OSCONSTANT 0.034// Overshoot Constant (constant amount of compensation applied at all rpms, in inches)
    #define ESTOP 137		// Emergency stop bit number 
    #define ESTOPSTATE 0	// Emergency stop triggered by ClearBit = 0, SetBit = 1
    #define STOPFACTOR 2.0	// Stop delay Factor (increase number to allow more time for spindle to stop while still slaving after hole in finished)
    #define SPINDLE_STOP_TIME 1.0 // for Job aborts, don't exit to keep Slaving until this much time after the Spindle was turned off 
    double SlaveGain,ToCut,Z0,S0,OS,SpindleStopTime;
    I originally left SPINDLECW and SPINDLECCW bits without values in MySpindleDefs.h as I'm using USE_POS_NEG_VOLTAGE 1 for analog +/-10v spindle control. As such I deleted the bit values in your example above. Is this correct?

    If I try and run the same G-code as above KmotionCNC then moves the Z axis to the retract position and gives me
    Code:
    :130: too few arguments to function
    .

    Is that purely because my G-code is incomplete, not specifying a spindle RPM? Or is it to with the spindle rotation config?

    Thanks
    Jim



  3. #123
    Member TomKerekes's Avatar
    Join Date
    May 2006
    Location
    USA
    Posts
    4043
    Downloads
    0
    Uploads
    0

    Default Re: Mach3 Retrofit to 1989 CNC Lathe

    Hi Jim,

    It isn't clear how your Spindle is controlled, but you can't set the CW and CCW to be nothing. If you don't need any bits to be activated assign them to some dummy bits that won't do anything such as KFLOP's LEDs 46 and 47. Or go down and remove any code that uses them.

    HTH

    Regards
    TK http://dynomotion.com


  4. #124
    Member
    Join Date
    Aug 2016
    Location
    United Kingdom
    Posts
    147
    Downloads
    0
    Uploads
    0

    Default Re: Mach3 Retrofit to 1989 CNC Lathe

    Hmmm odd. This is my MySpindleDefs.h:

    Code:
    #define SPINDLEAXIS 0			// Axis Channel to Jog to rotate Spindle#define FACTOR (4096/60.0)  	// to convert RPM to counts/sec (counts/rev / 60.0sec)
    #define SPINDLECW_BIT   	// bit to activate to cause CW rotation
    #define SPINDLECCW_BIT		// bit to activate to cause CCW rotation
    #define SPEEDVAR 99		// global persistant variable to store latest speed
    #define STATEVAR 98		// global persistant variable to store latest state (-1=CCW,0=off,1=CW)
    #define KMVAR PC_COMM_CSS_S 	// variable KMotionCNC will pass speed parameter (113)
    #define USE_POS_NEG_VOLTAGE 1 	// 0 = output Magnitude, 1 = output positive and negative speed 
    #define IS_GHIGH 140
    #define IS_GLOW 141
    #define SET_GHIGH 146
    #define SET_GLOW 145
    Below is my OnCCWJog.c:

    Code:
    #include "KMotionDef.h"
    
    #include "MySpindleDefs.h"
    
    
    int   *css_mode = &persist.UserData[PC_COMM_CSS_MODE];			// Mode 1=Normal RPM mode. 2=CSS
    int intIsLow;
    int intIsHigh;
    // desired speed is passed from KMotionCNC in variable KMVAR
    // save in user variable STATEVAR whether it was off, CW, or CCW (0,1,-1)
    // save in user variable SPEEDVAR the last desired speed
    
    
    main()
    {
    	float speed = *(float *)&persist.UserData[SPEEDVAR];  // value stored is actually a float 
    	float LastState = persist.UserData[STATEVAR];  // get last state 
    	
    	intIsLow = ReadBit(IS_GLOW);
    	intIsHigh = ReadBit(IS_GHIGH);
    	
    	// if spindle was CW now we want CCW 
    	if (LastState==1)  
    	{
    		// spin down
    		Jog(SPINDLEAXIS,0);
    		while (!CheckDone(SPINDLEAXIS)) ;
    		Delay_sec(3.0);
    	}
    	
    	// Is gear change required. If yes execute
    	if (*css_mode != 2) {
    	if (speed <= 500) {
    		if (intIsHigh == 1) {
    
    
    			Jog(SPINDLEAXIS,0);
    			while (!CheckDone(SPINDLEAXIS)) ;
    			Delay_sec(3.0);
    			
    			//while(intIsLow != 1) {
    			SetBit(SET_GLOW);
    			Delay_sec(2.5);
    			intIsLow = ReadBit(IS_GLOW);
    			//}
    	
    			ClearBit(SET_GLOW);
    			printf("Spindle in low gear\n");
    			Delay_sec(3.0);
    		}
    			
    	} else if (speed >= 501) {
    		if (intIsLow == 1) {
    
    
    			Jog(SPINDLEAXIS,0);
    			while (!CheckDone(SPINDLEAXIS)) ;
    			Delay_sec(3.0);
    			
    			//while(intIsHigh != 1) {
    			SetBit(SET_GHIGH);
    			Delay_sec(2.5);
    			intIsHigh = ReadBit(IS_GHIGH);
    			//}
    	
    			ClearBit(SET_GHIGH);
    			printf("Spindle in high gear\n");
    			Delay_sec(3.0);
    		}
    	}
    	} else {
    	Delay_sec(10.0);
    	}
    	
    	// turn spindle on CCW and ramp to new speed
    	
    	LastState = -1;
    	
    	if (*css_mode != 2)
    	{
    		// spindle is already on, so ramp to new speed
    		if (USE_POS_NEG_VOLTAGE)
    			Jog(SPINDLEAXIS,speed * FACTOR * LastState);
    		else
    			Jog(SPINDLEAXIS,speed * FACTOR);
    		
    		printf("Jogging Spindle %f counts/sec\n",speed * FACTOR);
    	}	
    	persist.UserData[STATEVAR] = -1;  // remember we are CCW
    }
    The spindle drive accepts +/- 10v to control speed and direction, no bits need to be active. Am I right in thinking the line of code
    Code:
    Jog(SPINDLEAXIS,speed * FACTOR * LastState)
    is the equivalent to activating a bit and setting speed?

    I'm confused, if I set dummy bits and no reference to the above jog in RigidTapCycle+M119 Feedhold Rev 6.c, how the does script know how to control the spindle?

    Thanks,
    Jim




  5. #125
    Member TomKerekes's Avatar
    Join Date
    May 2006
    Location
    USA
    Posts
    4043
    Downloads
    0
    Uploads
    0

    Default Re: Mach3 Retrofit to 1989 CNC Lathe

    Hi Jim,

    The spindle drive accepts +/- 10v to control speed and direction, no bits need to be active. Am I right in thinking the line of code
    Code:

    Jog(SPINDLEAXIS,speed * FACTOR * LastState)

    is the equivalent to activating a bit and setting speed?

    I'm confused, if I set dummy bits and no reference to the above jog in RigidTapCycle+M119 Feedhold Rev 6.c, how the does script know how to control the spindle?
    You are correct, your system works much differently (and better) than that Spindle code was written for. Instead of commanding CW and CCW with bits your system can move the Spindle much like a servo axis. Instead of commanding CW (by activating IO bits) then waiting until close to the bottom of the Thread and commanding a reversal with CCW expecting some overshoot and so forth, your system should be able to simply move some number of CW rotations, then some number of CCW rotations also with proper accelerations and such.

    Attached is a program that uses that technique (it commands moves of the Spindle, while slaving the Z ans to the motion). Please give it a try and let us know what happens.

    Attached Files Attached Files
    Regards
    TK http://dynomotion.com


  6. #126
    Member
    Join Date
    Aug 2016
    Location
    United Kingdom
    Posts
    147
    Downloads
    0
    Uploads
    0

    Default Re: Mach3 Retrofit to 1989 CNC Lathe

    Hi Tom,

    Thanks for the script. However not much seems to be happening. With the new code, when I run:

    Code:
    %G21
    G98 G84 Z-20 R2 Q20 F1.5
    M30
    %
    The Z axis simply moves to the retract value of 2 and the program ends. Regardless of peck value. No spindle rotation, nothing. Does my G-code look to be correct for executing G84 using Kmotion, or are there parameters missing? Does spindle direction and speed have to be defined within G84 or prior to called G84.

    I also get the following in the console:

    Code:
    Bottom = -20.000000Retract = 2.000000
    Peck = 20.000000
    Pitch = 1.500000
    RPM = 50.000000
    Units = mm
    Axis = 2
    AxisRes = 25400.000000
    Jogging Spindle Stop
    This is your script with values modified to suit my config:

    Code:
    #include "KMotionDef.h"
    
    #define TAP_VAR 60 // start of where parameters should be placed
    
    
    #define SPINDLE_AXIS 0
    #define CNTS_PER_REV 4096
    #define Z_DIST 0.625 //inches
    #define TAU 0.001
    
    
    double SlaveGain,ToCut,TotalCut,Z0,S0;
    void DoSlave(int Axis);
    void DoTap(int Axis, double Pitch, double Dist, double RPM);
    
    
    main()
    {
        // Set variables
    
    
        // Call MCode M119 to do Rigid Tapping
        // 
        // Var+0 - (int) 119 (MCode number)
        // Var+1 - (float) Bottom Z in User Units
        // Var+2 - (float) Retract Position in User Units
        // Var+3 - (float) Distance per Peck in User Units (0 if unspecified)
        // Var+4 - (float) Feed Rate F Number (User Units/Rev)
        // Var+5 - (float) Spindle RPM to Tap
        // Var+6 - (int) Units (INCHES=1 MM=2)
        // Var+7 - (int) KFLOP axis to move (derived from active GCode Plane and Coord Motion System defs)
        // Var+8 - (float) Axis Resolution Counts/inch
    
    
        float Depth;
    //    int *pFeedhold = &persist.UserData[TAP_VAR+0];
        float Bottom = *(float *)&persist.UserData[TAP_VAR+1];
        float Retract = *(float *)&persist.UserData[TAP_VAR+2];
        float Peck = *(float *)&persist.UserData[TAP_VAR+3];
        float Pitch = *(float *)&persist.UserData[TAP_VAR+4];
        float RPM = *(float *)&persist.UserData[TAP_VAR+5];
        int Units = persist.UserData[TAP_VAR+6];
        int Axis = persist.UserData[TAP_VAR+7];
        float AxisRes = *(float *)&persist.UserData[TAP_VAR+8];
    
    
        printf("Bottom = %f\n",Bottom); 
        printf("Retract = %f\n",Retract); 
        printf("Peck = %f\n",Peck); 
        printf("Pitch = %f\n",Pitch); 
        printf("RPM = %f\n",RPM); 
        if (Units == 1)
            printf("Units = Inches\n"); 
        else
            printf("Units = mm\n"); 
        printf("Axis = %d\n",Axis); 
        printf("AxisRes = %f\n",AxisRes);         
    
    
        
        //printf("Bottom = %f\n",Bottom);    // Print Bottom
        //printf("Pitch = %f\n",Pitch);    // Print pitch
    
    
        if (Units == 2) // if metric convert units 
        {
            Bottom = Bottom / 25.4;
            Retract = Retract / 25.4;
            Pitch = Pitch / 25.4;
            Peck = Peck / 25.4;
        }
        
        Depth = Bottom - Retract;    // Depth equal to bottom and retract height
        if (Peck == 0) Peck = Depth * -1.1;    // if peck = zero, set larger then depth so its ignored    
        
        // Slave the Z Axis to the Spindle
        SlaveGain = AxisRes * Pitch / CNTS_PER_REV;
        Z0 = chan[Axis].Dest;
        S0 = chan[SPINDLE_AXIS].Dest;
    
    
        // in case there is significant spindle position error move there first
        Move(Axis,(chan[SPINDLE_AXIS].Position-S0)*SlaveGain+Z0);
        while (!CheckDone(Axis)) ;
        
        TotalCut=0.0;
        while (TotalCut < Bottom)
        {
            if (TotalCut + Peck > Bottom) // last feed
            {
                // yes, do any remaining
                DoTap(Axis, Pitch, Bottom-TotalCut, RPM);
                // retract fully
                DoTap(Axis, Pitch, -Bottom, RPM);
                TotalCut=Bottom;
            }
            else
            {
                // no, just cut a bit
                DoTap(Axis, Pitch, Peck, RPM);
                DoTap(Axis, Pitch, -Retract, RPM);
                TotalCut+=Peck-Retract;
            }
        }
            
        Delay_sec(1.0);
        Move(Axis,Z0);   // move back to where we started 
        while (!CheckDone(Axis)) ;
    }
    
    
    void DoTap(int Axis, double Pitch, double Dist, double RPM)
    {
        // Tap down
        MoveRelAtVel(SPINDLE_AXIS, Dist*CNTS_PER_REV/Pitch, RPM*CNTS_PER_REV*60.0);
        
        while(!CheckDone(SPINDLE_AXIS))
            DoSlave(Axis);
    }
    
    
    void DoSlave(int Axis)
    {
        MoveExp(Axis,(chan[SPINDLE_AXIS].Dest-S0)*SlaveGain+Z0, TAU);
        WaitNextTimeSlice();
    }
    Out of curiosity what is
    Code:
    #define Z_DIST 0.625 //inches
    ?

    Appreciate your help Tom.

    Thanks again



  7. #127
    Member TomKerekes's Avatar
    Join Date
    May 2006
    Location
    USA
    Posts
    4043
    Downloads
    0
    Uploads
    0

    Default Re: Mach3 Retrofit to 1989 CNC Lathe

    Hi Jim,

    Sorry we tried to merge a hard codded tapping program with one that uses G84 parameters and had a number of mistakes.

    Please try this attached and let us know what happens.

    Attached Files Attached Files
    Regards
    TK http://dynomotion.com


  8. #128
    Member
    Join Date
    Aug 2016
    Location
    United Kingdom
    Posts
    147
    Downloads
    0
    Uploads
    0

    Default Re: Mach3 Retrofit to 1989 CNC Lathe

    Hi Tom,

    Thanks for that. We're getting somewhere now. So when I execute the following:

    Code:
    %G21
    G98 G84 Z-20 R2 Q20 F1.5 S20
    M30
    %
    The spindle moves, but the axis is not in sync. The spindle is not sticking to 20 RPM, it seems to run away with itself. See below:

    http://81.138.85.180/~jim_cliff11/G84/IMG_1256.mp4

    Another example is when I set the peck value:

    Code:
    %G21
    G98 G84 Z-20 R2 Q5 F1.5 S20
    M30
    %
    Same again, but more frantic.

    http://81.138.85.180/~jim_cliff11/G84/IMG_1257.mp4

    What do you think?

    Thanks.



  9. #129
    Member TomKerekes's Avatar
    Join Date
    May 2006
    Location
    USA
    Posts
    4043
    Downloads
    0
    Uploads
    0

    Default Re: Mach3 Retrofit to 1989 CNC Lathe

    Hi Jim,

    Oops to convert RPM ro RPS we should divide by 60 not multiply.

    Please change the *60.0 to /60.0

    Regards
    TK http://dynomotion.com


  10. #130
    Member
    Join Date
    Aug 2016
    Location
    United Kingdom
    Posts
    147
    Downloads
    0
    Uploads
    0

    Default Re: Mach3 Retrofit to 1989 CNC Lathe

    Hmmm so I fired the lathe up this morning, usual start up procedure. Enabled all axis through KmotionCNC. The Z and X axis came to life and function accordingly. But the spindle has a mind of its own....

    It simply does nothing, I can rotate it manually by hand. Usually it locks into position, judders slightly, and awaits a Gcode command. The axis tab on kmotion shows channel 0 (spindle) as enabled. If I rotate the spindle back and forth by hand I can see the encoder counting + and - as expected. Back to KmotionCNC, and I issued M4S1300 with no initial response. 5 minutes later the spindle came alive and sat at 1300rpm (I think) before accelerating, slowing and restabilising for a few minutes. Finally, it slowly crawled down to a stop and back to its unresponsive state. A few more attempts had the same results, but now it wont respond at all.

    One thing that struck me as odd, when the spindle did jump into life as described above, KMotionCNC did not show its rpm. The commanded rpm is displayed above the spindle speed slider as usual. But the actual rpm remained at 0 the whole time the spindle was running. Even though kmotion shows the encoder count climbing. Why would this be?

    I've done the usual hardware checks and found nothing untoward. The KDV power supply and TBM bleeder are both energised and ready. The KDA spindle drive is energising after receiving the RF signal. As per usual there are no error or fault lights on any hardware.

    I also tried to run a step response on channel 0. The graph display showed an output and command, but the position flat lined completely.

    What would be the best way to trouble this? Is there a way I can test the output from the Kanalog and test the drive separately?

    Thanks,
    Jim



  11. #131
    Member TomKerekes's Avatar
    Join Date
    May 2006
    Location
    USA
    Posts
    4043
    Downloads
    0
    Uploads
    0

    Default Re: Mach3 Retrofit to 1989 CNC Lathe

    Hi Jim,

    It simply does nothing, I can rotate it manually by hand. Usually it locks into position, judders slightly, and awaits a Gcode command. The axis tab on kmotion shows channel 0 (spindle) as enabled. If I rotate the spindle back and forth by hand I can see the encoder counting + and - as expected. Back to KmotionCNC, and I issued M4S1300 with no initial response. 5 minutes later the spindle came alive and sat at 1300rpm (I think) before accelerating, slowing and restabilising for a few minutes. Finally, it slowly crawled down to a stop and back to its unresponsive state. A few more attempts had the same results, but now it wont respond at all.
    I think this would indicate a bad or disabled amplifier.

    One thing that struck me as odd, when the spindle did jump into life as described above, KMotionCNC did not show its rpm. The commanded rpm is displayed above the spindle speed slider as usual. But the actual rpm remained at 0 the whole time the spindle was running. Even though kmotion shows the encoder count climbing. Why would this be?
    The Threading parameters in the KMotionCNC Trajectory Planner settings need to be set in KFLOP for KFLOP to report RPM properly. This occurs when KMotionCNC starts up, or when the Trajectory Planner settings are changed, or whenever KFLOP re-connects. Although I can't think of a scenario where they would normally not be set properly maybe they were not set.

    I also tried to run a step response on channel 0. The graph display showed an output and command, but the position flat lined completely.
    Did the Spindle move? If not then that would be expected.

    What would be the best way to trouble this? Is there a way I can test the output from the Kanalog and test the drive separately?
    I would check the voltage with a voltmeter at the DAC output on Kanalog. If there is voltage and the Spindle is not turning then the problem is in the Drive. If there is no voltage the problem is with KFLOP/Kanalog.

    Regards
    TK http://dynomotion.com


  12. #132
    Member
    Join Date
    Aug 2016
    Location
    United Kingdom
    Posts
    147
    Downloads
    0
    Uploads
    0

    Default Re: Mach3 Retrofit to 1989 CNC Lathe

    Hi Tom,

    Thanks for the reply.

    Yep, I'm leaning more towards an issue with the KDA spindle amplifier. The KDV, TBM bleeder and TDM servo drives are all functioning as normal which is reassuring that the power side of things is correct. What is baffling me is that the KDA is energising and says its ready to accept input according to the LCD screen on the rear of it. I have however found a thread started by a chap with very similar issues.

    https://www.cnc.info.pl/indramat-kda...n-t102601.html
    https://en.industryarena.com/forum/i...p--392427.html

    With regards to your questions Tom.

    When running the step response, nope the spindle didn't move. It was as if Kanalog sent the commands, but the amp didn't relay this to the motor and as such Kanalog received no feedback from the encoder.

    When the spindle did run intermittently from the M4S1200 command through Kmotion, the no real time rpm was extremely odd. I've changed nothing. In fact the lathe ran perfectly 24 hours earlier machining a seal gland / end cap for a 30 ton CAT excavator hydraulic ram. Job took 45 minutes and every time I popped in to check on her Kmotion was showing real-time feed rates and spindle rpm.

    Tomorrow night I'll check your suggestion on measuring voltage on channel 0 on the DAC output from Kanalog. I'm guessing after issuing a command such as M4S1200 through KMotion, I should be able to read a voltage on this? I can't see the problem being with Kanalog as the other two channels work accordingly.

    Thanks for the prompt reply as per usual Tom. Much appreciated.
    Jim



  13. #133
    Member TomKerekes's Avatar
    Join Date
    May 2006
    Location
    USA
    Posts
    4043
    Downloads
    0
    Uploads
    0

    Default Re: Mach3 Retrofit to 1989 CNC Lathe

    Hi Jim,

    When the spindle did run intermittently from the M4S1200 command through Kmotion, the no real time rpm was extremely odd. I've changed nothing. In fact the lathe ran perfectly 24 hours earlier machining a seal gland / end cap for a 30 ton CAT excavator hydraulic ram.
    That was odd. Like I said the only thing I can think of is KFLOP was not configured with the Spindle Threading Settings. If KFLOP was rebooted/reset then KMotionCNC should detect a disconnect and after re-connecting it should configure the Spindle Threading Settings. I suppose if KFLOP rebooted quickly and KMotionCNC never detected a disconnect then KFLOP may remain not configured. Running the INIT C Program would not re-configure the KFLOP Threading Parameters (unless special code was added to do so). But I just tried a number of reboots and KMotion re-configured every time. Even if KMotionCNC doesn't report Spindle Speed properly I wouldn't expect that to have any effect on commanding the Spindle to run as that is only for a status display.

    Actually looking back through this Thread it seems the Spindle is KFLOP Axis 0 which is configured to read encoder 6? By default KFLOP Axis 0 is configured to read encoder 0. So if KFLOP was simply not initialized and somehow the spindle ran, then the RPM would not display properly.

    Regards
    TK http://dynomotion.com


  14. #134
    Member
    Join Date
    Aug 2016
    Location
    United Kingdom
    Posts
    147
    Downloads
    0
    Uploads
    0

    Default Re: Mach3 Retrofit to 1989 CNC Lathe

    Tom,

    Sorry on the huge delay in replying. I've been off site for the past month unfortunately.

    I did however, have a session on the lathe this weekend. And I managed to fix the problem (I think). It turned out to be a split wire between the Kanalog DAC and the drive input command signal. I ripped it out completely, ran a fresh wire, and so far all seems good.

    With regards to Kmotion not detecting spindle speed, your right. If Kanalog disconnects / reconnects while KmotionCNC is open, Kmotion doesn't pick up the RPM. If I restart Kmotion, then all is good. The PC and KmotionCNC are often left on overnight. When the lathe is isolated Kflop/analog has no power. I'll just have to remind all to turn the PC off .

    Thanks for help Tom,
    Jim



Page 7 of 7 FirstFirst ... 4567

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

Mach3 Retrofit to 1989 CNC Lathe

Mach3 Retrofit to 1989 CNC Lathe