3D vs. 2D movements

Hi Less,

I am using post processor: “Richauto 3 axis.scpost”.

When I insert a “rapid move”, I can choose “Move Z first”, “Move Z last” and 3D.
3D is my choice, and the code looks like e.g.:
G00 X1388.5000 Y250.0000 Z100.0000

However, when moving between two operations, SheetCam seems to choose “Move Z last”, and does not give me the option to choose 3D.
The code looks like e.g.
G00 X1007.5000 Y940.0000
G00 X1007.5000 Y940.0000 Z100.0000

I would like to move 3D all through my programs, so, so far, I have put the “redundant” code in parenthesis.
(G00 X1007.5000 Y940.0000)
G00 X1007.5000 Y940.0000 Z100.0000

But could I have SheetCam to work with 3D moves, between operations also?

Any thoughts?

BR. Martin

The code looks like e.g.
G00 X1007.5000 Y940.0000
G00 X1007.5000 Y940.0000 Z100.0000

This may look a little ugly if you are reading the code but it will have no effect on cut times.
A 3D move will move from the current point to the destination in a straight line. If you did this between operations it is very likely the cutter would hit your work.

Hi Les,

Thank you for your reply.
I understand the code, and I understand the magnitude (or lack there off) on cut times.

However, I do not think lasers in general are “into the material” when cutting?!
At least our laser, never dives into the material, its always above 1 - 2 mm.
Therefore i would like to always run 3D moves.

Today, I am changing the codes manually my self, but it would be nice to get the code production ready out of SheetCam.
It is possible to choose 3D when creating rapid moves.
I thought that the option of having 3D moves through out operations, might be one of the things that would be enabled and selected when choosing the tool “laser”.

What are your thoughts?

BR. Martin

What I meant is that taking out the ‘redundant’ code has absolutely no effect.
If you want the head to stay lower down between cuts, change your clearance height. You could even change it to the cut height. In that case the head won’t lift at all between cuts.

Hi Less,

Thank you for your reply.

Here are my settings for my work:

  • Welding Z = 100
  • Cutting Z = 1
  • Rapid clearance Z = 10

This works fine for me:

  • when making several cuts in a row, the laser just lifts to Z = 10 mm in between the cuts (and soon this will be reduced to 5 mm)
  • and it also works well when welding, the head just stays in the same position Z = 100 mm.
    No time is wasted

But when changig from cutting to welding this happens:

  • First move from Z = 1 to Z = 10 (rapid clearance)
  • Then move to new 2D coordinate (X,Y)
  • Then move from Z = 10 to Z = 100
  • Then start the process in Z = 100

It would be better if:

  • First move from Z = 1 to Z = 10 (rapid clearance)
  • Then move to new 3D coordinate (X,Y,Z) where Z moves from 10 to 100
  • Then start the process in Z = 100.

And when changing from welding to cutting, this happens:

  • First move to new 2D coordinate (X,Y)
  • Then move from Z = 100 to Z = 1
  • Then start the process in Z = 1

It would be better if:

  • First move to new 3D coordinate (X,Y,Z) where Z moves from 100 to 10 (rapid clearance)
  • Then move from Z = 10 to Z = 1
  • Then start the process in Z = 1

When I do a lot of changing between welding and cutting it takes time to go up and down separately, and this is really unnecessary. The CNC machine can do 3D moves, SheetCam can generate 3D code as seen as selection in the “Rapid move” function (this is where the inspiration came from).

It would be nice to get the option of deselecting “2D then Z” and instead selecting “3D”. Just like the option we have in the rapid move function. And as this is an option, it would not destroy anything for anyone. Those who want to use it can use it, and those who do not, can do as they have always done.

BR. Martin

Your application is pretty rare and I don’t see many other applications for this option so I don’t think I will add it to SheetCam. I try to keep feature creep down. It is easy to end up adding lots of obscure functions that only end up confusing the majority of users. Options like this usually end up causing more problems than they solve.
Luckily for you this can be fixed on the post processor. I have attached a post that should do what you want. I’d suggest testing it pretty thoroughly before using it for any real work.
Richauto 3 axis - weld.scpost (3.3 KB)

Hi Les,

Thank you very much for the efforts and attempt.
I just ran the new postprocesser, and it still splits up X,Y and Z.
Below is an example.

G90 G40
(- welding -)
G01 X886.5000 Y84.6779
(- Cutting -)
G00 X1040.0101 Y100.0953
G00 X1040.0101 Y100.0953 Z0.0000

It is the “G00 X1040.0101 Y100.0953” that I would liket avoid.

I was studying the codes for “function OnRapid()”, but did not understand it 100%.
I see the new is:
if(endZ == safeZ and currentZ > safeZ) then return end
if(endZ == safeZ and endZ < pierceHeight) then
if(math.hypot(endX - currentX, endY - currentY) < 0.001) then return end
endZ = pierceHeight

So maybe I am not using PierceHeight right?

Actually, I do not use this actively, it is just set to the same as cut height (for some unknown reason).

In order to have your new code to work, should I then actively do something different to the pierceHeight. Or why is the postprocesser still making 2D then Z?

BR. Martin

Could you send me one of your job files (File->save job) with everything set up ready to cut.