cncdrive wrote:What do you mean by "Simultanous"?
You mean to probe one axis and after the other and after the third?
if(stMethod == "1") // Left Front Corner
{
// Start the X axis dual probe cycle
exec.AddStatusmessage("Executing Left Front Corner Probe Cycle.....");
double dblZero = 0;
exec.ChangeaxisDROvalue(0, dblZero.ToString()); //Change the DRO value
exec.Wait(200);
exec.ChangeaxisDROvalue(1, dblZero.ToString()); //Change the DRO value
exec.Wait(200);
exec.ChangeaxisDROvalue(2, dblZero.ToString()); //Change the DRO value
exec.Wait(200);
exec.Code("G31 X" + move1 + " F" + FeedrateFast);
while(exec.IsMoving()){}
exec.Wait(200);
exec.Code("G91 G0 X-" + move020);
while(exec.IsMoving()){}
exec.Wait(200);
exec.Code("G31 X" + move1 + " F" + FeedrateSlow);
while(exec.IsMoving()){}
exec.Wait(200);
newX = - newX - newBitR;
exec.ChangeaxisDROvalue(0, newX.ToString());
exec.Wait(200);
// Reposition for Y Zeroing.
exec.Code("G91 G0 X-" + move125);
exec.Code("G91 G0 Y-" + move1);
exec.Code("G91 G0 X" + move625);
exec.Code("G31 Y" + move1 + " F" + FeedrateFast);
while(exec.IsMoving()){}
exec.Wait(200);
exec.Code("G91 G0 Y-" + move020);
while(exec.IsMoving()){}
exec.Wait(200);
exec.Code("G31 Y" + move1 + " F" + FeedrateSlow);
while(exec.IsMoving()){}
exec.Wait(200);
newY = - newY - newBitR;
exec.ChangeaxisDROvalue(1, newY.ToString());
exec.Wait(200);
//Reposition for Z Zeroing
exec.Code("G91 G0 Y-" + move125);
exec.Code("G91 G0 Z" + move1);
exec.Code("G91 G0 Y" + move625);
// Start Z Axis Zeroing
exec.AddStatusmessage("Executing Z Axis Only Probing....");
exec.Code("G31 Z" + Zmin + "F" + FeedrateFast); // Do the Z probing With Fast feedrate first
while(exec.IsMoving()){}
exec.Wait(200);
exec.Code("G91 G0 Z" + RetractForSecondMeasurement);
while(exec.IsMoving()){}
exec.Code("G90");
exec.Wait(200);
// Start the second for the dual probe cycle Or the only probe in a single cycle setup.
exec.Code("G31 Z" + Zmin + "F" + FeedrateSlow); // Do the Z probing again With Slow Feedrate To Get a more accurate reading
while(exec.IsMoving()){}
exec.Wait(200);
//newZ = newZ - Nominal;
exec.ChangeaxisDROvalue(2, newZ.ToString()); //Change the DRO value
exec.Wait(200); //Safety wait For the UC100 syncronisation
// Restore original modes And feed
exec.Code("G" + CurrentDistanceMode); // Set Distance Mode back To previous (G90, G91, Etc)
exec.Code("G" + CurrentModalMode); // Set Modal Mode back To previous (G0, G1, etc)
exec.Code("F" + CurrentFeed); // Set Feedrate back To previous
AS3.Setfield(CurrentFeedOverride, 232); // Set FeedOverride back
AS3.Validatefield(232); // Validate To field value
exec.Wait(200);
exec.AddStatusmessage("Probe Complete.");
if(!exec.Ismacrostopped()) // If tool change was not interrupted with a stop only then validate new tool number
{
double Zup = exec.GetZmachpos() + RetractHeight;
if(Zup > SafeZ)
{
Zup = SafeZ;
}
exec.Code("G00 G53 Z" + Zup); // Move 10mm above probe plate
while(exec.IsMoving()){}
exec.Wait(200);
MessageBox.Show("***WARNING*** PROBE CYCLE COMPLETED. PLEASE REMOVE YOUR TOUCH PLATE AND WIRING FROM THE MACHINING AREA.");
}
}
RsX wrote:I could answer that you can hold the block against the material, but that wouldn't be safe, right?
Maybe the machine moves too fast. I see the macro calculates automatically the fast and slow feedrate.
What are the feedrates it uses? Maybe you could try manually setting a slower value.
Users browsing this forum: Bing [Bot] and 3 guests