upsm
Posts: 151
Joined: Sun Mar 12, 2017 5:37 am

Re: G0 code

Wed Sep 06, 2017 7:18 pm

horst.w wrote:Sorry, I don't understand this. G1 is always the definited movement of the print head to a certain position AND allows extrusion with the parameter "E" ... mm or even no extrusion when "E" stays empty. What do you need more?
G-code is bit older then 3D printing.
G0 is "move without running a tool" (non running, idle move)
G1 is "move running a tool" (action move)

when reprap started the G0 and G1 were used as: http://reprap.org/wiki/G-code#G0_.26_G1:_Move
* G0 : Rapid linear Move
* G1 : Linear Move

So G0 was "as fast as your printer allow if not specified differently, without running extruder" and G1 was "run as default set speed while running extruder"

The E value (5th axis) was added many years later, before that the speed of the extruder was set with M108, it would turn on for G1 and off for G0.

Most modern printers moved to 5 axes firmware with support for E value (both volumetric and length variants, most slicers support both, Simplify3D support only length).

There are also modifiers like M222/M223/M224, M225.. also some require using M101/M102/M103 to run extruder (IIRC Simplify3D support this)

What I find weird is that Simplify3D support "support 5D firmware" checkbox so it is supposed to generate G-code for old firmware that is not 5D that does not support E value but still used G1 instead of G0 for idle moves :(. That's IMHO a bug, not a missing feature.
horst.w wrote: At the moment I have tested a very complex thing with 2.500.000 g-code lines and there is no one line with G0
Simplify3D does not produce G0 moves (some other slicers do).
Used cars search engine
  • TT UP Plus 2 / Smoothieware
  • M150 / Smoothieware
  • Custom (mendel) / Smoothieware
  • Custom (darwin) / Smoothieware
  • Custom (darwin) / Marlin
  • Custom (darwin) / Replicape

upsm
Posts: 151
Joined: Sun Mar 12, 2017 5:37 am

Re: G0 code

Wed Sep 06, 2017 7:26 pm

You can also find reference to G0 and G1 working like that in almost any CNC documentation

starting by the NIST standard:
http://technisoftdirect.com/catalog/dow ... 4NGC_3.pdf

following applications that use g-code for decades:
http://linuxcnc.org/docs/html/gcode.html
https://machmotion.com/cnc-info/g-code.html
https://github.com/synthetos/g2/wiki/Gcodes

all summarizing same thing:

3.5.1 Rapid Linear Motion — G0
For rapid linear motion, program G0 X... Y... Z... A... B... C..., where all the axis words are optional, except that at least one must be used. The G0 is optional if the current motion mode is G0. This will produce coordinated linear motion to the destination point at the current traverse rate (or slower if the machine will not go that fast). It is expected that cutting will not take place when a G0 command is executing

3.5.2 Linear Motion at Feed Rate — G1
For linear motion at feed rate (for cutting or not), program G1 X... Y... Z... A... B... C..., where all the axis words are optional, except that at least
one must be used. The G1 is optional if the current motion mode is G1. This will produce coordinated linear motion to the destination point at the current feed rate (or slower if the machine will not go that fast).
Used cars search engine
  • TT UP Plus 2 / Smoothieware
  • M150 / Smoothieware
  • Custom (mendel) / Smoothieware
  • Custom (darwin) / Smoothieware
  • Custom (darwin) / Marlin
  • Custom (darwin) / Replicape

upsm
Posts: 151
Joined: Sun Mar 12, 2017 5:37 am

Re: G0 code

Wed Sep 06, 2017 7:32 pm

Now while modern firmware's like smoothieware do not make a difference between G1 and G0, most old firmware's from time before 5D make that distinction and without it they can't print properly.

@webers, you might want to just turn off the 5D option in Simplify3D and click to add M101/102/103, that way it will manually start/stop the extruder, that maybe helps on your printer that work with G0/G1 differently. It should not extruder on G1 when M103 is executed (and Simplify3D knows how to insert M101/M102/M103). If not check if your firmware react on M3/M4/M5, if you have variant that runs with these you can easily convert M103-5 to M3-5
Used cars search engine
  • TT UP Plus 2 / Smoothieware
  • M150 / Smoothieware
  • Custom (mendel) / Smoothieware
  • Custom (darwin) / Smoothieware
  • Custom (darwin) / Marlin
  • Custom (darwin) / Replicape

horst.w
Posts: 852
Joined: Fri Oct 17, 2014 5:00 pm

Re: G0 code

Thu Sep 07, 2017 3:17 am

Hi, thanks. The history is known.

I have testet a small cylinder with Cura 2.4;
all movements to change only the position are realized with G0.

A firmware that can understand G0 for "empty" movements and can print with the G1 & "E..." command is also able to change positions with G1 and NO "E". G0 is not needed!

If the speed is the problem, increase the TravelSpeed, that's the same effect.

H.

brian442
Posts: 1243
Joined: Mon Nov 28, 2016 5:35 am

Re: G0 code

Thu Sep 07, 2017 4:44 am

FWIW - I've already encountered 2 different firmwares that did not properly handle G0 commands, so I'm sure that's part of why S3D doesn't do this by default

If you need G0's then just run a simple regex on the file using post-processing. That way S3D will run that command automatically each time you export the file.

arhi
Posts: 455
Joined: Thu Oct 06, 2016 5:13 pm

Re: G0 code

Thu Sep 07, 2017 8:51 pm

I have a firmware on one old machine that needs G0 and G1 and does not understand E at all. S3D can generate g-code without E but can't generate the code with G0. I would not like for S3D to change default behavior to start using G0 for rapid movement but I'd love to see a switch box under "Use M101/102/103" that states "Use G0 for rapid movement". would make s3d more versatile. now if the decision is "always G0" or "never G0" I'll rather chose always G0 as it's super easy to convert all G0's into G1's. with existing postprocessing inside the s3d you can't simply convert G1 into G0 (especially as you will anyhow generate G1's without E, at least in my case).. It would be useful feature, I doubt it's crucial, tbh I'd rather have 3d mouse support than this, not to mention api support that I'd like before anything in the feature request list

brian, which ones you found that does not handle g0 properly? most modern ones just treat them the same?
gcodestat integrates with Simplify3D and allow you to
Calculate print time accurately (acceleration, max speed, junction deviation all taken into consideration)
Embed M117 codes into G-Code
Upload your G-Code directly to Octoprint
open source and unlicence

horst.w
Posts: 852
Joined: Fri Oct 17, 2014 5:00 pm

Re: G0 code

Fri Sep 08, 2017 12:52 pm

arhi wrote:
... It would be useful feature, I doubt it's crucial, tbh I'd rather have 3d mouse support than this ....

... the development is always directed forwards, not backwards.

And if I think to all the hardware (and also software) I must scrap therefore the last 30 years ... :evil:

H.

arhi
Posts: 455
Joined: Thu Oct 06, 2016 5:13 pm

Re: G0 code

Fri Sep 08, 2017 10:27 pm

supporting legacy machines and legacy firmware is always a big plus, not only in 3d printing :D
gcodestat integrates with Simplify3D and allow you to
Calculate print time accurately (acceleration, max speed, junction deviation all taken into consideration)
Embed M117 codes into G-Code
Upload your G-Code directly to Octoprint
open source and unlicence

DirkT
Posts: 11
Joined: Sat Mar 26, 2016 10:07 pm

Re: G0 code

Wed Jul 04, 2018 3:21 am

Hello,

the difference between G0 and G1 is the accelearation. You can define for rapid linear moves(G0) an acceleration of 2000mm/s² and for G1 moves 1000mm/s². The RegEx replacement doesnt help, because you can move at the end of a "line" without extruding and then the acceleration is maybe to fast.
Please implement in simplify3d the g0/g1 commands. Thanks

regards,

Dirk

Return to “General Discussion and Tips”