585,763 active members*
4,098 visitors online*
Register for free
Login
Page 7 of 7 567
Results 121 to 136 of 136
  1. #121

    Re: Mach3 Retrofit to 1989 CNC Lathe

    Hi Tom,

    Sorry I thought I'd replied to this nearly a year ago :S Apologies.

    I have had CSS working without a problem. But given the high low gearshift from 400-500rpm I tend not to use it. Going forward I will probably code it so the minimum allowable speed when using CSS is 550rpm. Therefore avoiding the gear change. I might need help with this at a later stage.

    As per, the lathe is operating perfectly and is in use nearly everyday still. It doesn't owe me a penny, and we now have a man full time running it and the manual lathes.

    I've just had a job come in for 300 custom shafts, each of which has an M12 threaded hole in the end. As of yet I haven't used rigid tapping, just G32 for single pointing threading regularly. Does Kmotion CNC support rigid tapping? If so, how do I go about implementing this?

    Thanks,
    Jim

  2. #122
    Join Date
    May 2006
    Posts
    4045

    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)

    https://youtu.be/qfY4WMXaTAw
    TK
    http://dynomotion.com

  3. #123

    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

  4. #124
    Join Date
    May 2006
    Posts
    4045

    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
    TK
    http://dynomotion.com

  5. #125

    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

  6. #126
    Join Date
    May 2006
    Posts
    4045

    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
    TK
    http://dynomotion.com

  7. #127

    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

  8. #128
    Join Date
    May 2006
    Posts
    4045

    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.
    TK
    http://dynomotion.com

  9. #129

    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.

  10. #130
    Join Date
    May 2006
    Posts
    4045

    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
    TK
    http://dynomotion.com

  11. #131

    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

  12. #132
    Join Date
    May 2006
    Posts
    4045

    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.
    TK
    http://dynomotion.com

  13. #133

    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

  14. #134
    Join Date
    May 2006
    Posts
    4045

    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.
    TK
    http://dynomotion.com

  15. #135

    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 (chair).

    Thanks for help Tom,
    Jim

  16. #136
    Join Date
    Oct 2020
    Posts
    11

    Re: Mach3 Retrofit to 1989 CNC Lathe

    Motors, drives and other related parts may be used in machine tool transformation. Hope there is an opportunity for cooperation. email: [email protected]
    http://metonec.com/

Page 7 of 7 567

Similar Threads

  1. 1989 Hurco Km3P retrofit
    By ABFrank in forum Vertical Mill, Lathe Project Log
    Replies: 4
    Last Post: 10-28-2015, 09:15 AM
  2. More troubles with mach3 retrofit
    By billsnogo in forum Bridgeport / Hardinge Mills
    Replies: 19
    Last Post: 09-20-2015, 09:51 PM
  3. Replies: 0
    Last Post: 08-10-2013, 02:31 PM
  4. What should I keep here? - Mach3 retrofit
    By DiyAddicts in forum Uncategorised MetalWorking Machines
    Replies: 3
    Last Post: 09-02-2012, 04:08 AM
  5. Hurco KMB-1 Mach3 Retrofit
    By jalessi in forum HURCO
    Replies: 0
    Last Post: 08-19-2008, 03:19 PM

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
  •