Asura3D vs Formware 3D GCode generation


I’ve been comparing Asura3D and Formware 3D for slicing and have noticed that the GCode generated from Formware does not reduce the speed for the first layer. I’ve included some screen snips below that show the GCode opened in Simplify3D.


This shows that the first layer is printed at reduced speed (blue is slower than green). Compare this with the following GCode from Formware:


Notice that only the outline of the first layer is printed at reduced speed while the rest of the layer (and all subsequent layers) are printed at the speed defined in the Formware Moai 60um profile.

Has anyone seen this behavior before?

The print from the Formware GCode partially failed:


Here you can see the outer rim that was printed at reduced speed.



Contact Elco the developer - he is very responsive.



@Frmingr, thanks for the reponse. I also got a response from Elco via the Formware website contact form. He was really helpful and also referred me to another thread that is already discussing the Formware Moai settings: Formware3D for Moai - what is the best print logic / speeds?




Have you checked the actual gcode? Just scan the code for F and Z commands?

I just checked our export on a simple cube and the code producing it.
It seems to work fine.
I"m not sure how Simplify3d interprets speeds?

Below the GCode with the 2 layer starts highlighted.
This is with a setting of 1 bottom layer.
F300 should be correct?
Or are we missing something?


;Filament used: 0.00
;Layer height: 0.080
;Generated with Formware 3D Slicer
M82 ;absolute extruction mode
G28 ;Home
;Layer gcode is added after this line
G0 F7200 X66.999 Y67.076 Z0.040
G1 F300 X63.001 Y67.076 E3.998
G1 X63.001 Y62.924 E8.150
G1 X66.999 Y62.924 E12.148
G1 X66.999 Y67.076 E16.300
G0 X66.932 Y67.009
G1 X63.068 Y67.009 E20.164
G1 X63.068 Y62.991 E24.182
G1 X66.932 Y62.991 E28.046
G1 X66.932 Y67.009 E32.064
G0 X66.865 Y66.942
G1 X63.135 Y66.942 E35.794
G1 X63.135 Y63.058 E39.678
G1 X66.865 Y63.058 E43.408
G1 X66.865 Y66.942 E47.292
G0 X66.798 Y66.875
G1 X63.202 Y66.875 E50.888
G1 X63.202 Y63.125 E54.638
G1 X66.798 Y63.125 E58.234
G1 X66.798 Y66.875 E61.984
G0 X66.731 Y66.808
G1 X63.269 Y66.808 E65.446
G1 X63.269 Y63.192 E69.062
G1 X66.731 Y63.192 E72.524
G1 X66.731 Y66.808 E76.140
G0 X66.664 Y66.741
G1 X63.336 Y66.741 E79.468
G1 X63.336 Y63.259 E82.950
G1 X66.664 Y63.259 E86.278
G1 X66.664 Y66.741 E89.760
G0 X66.597 Y66.674
G1 X63.403 Y66.674 E92.954
G1 X63.403 Y63.326 E96.302
G1 X66.597 Y63.326 E99.496
G1 X66.597 Y66.674 E102.844
G0 X63.387 Y63.389
G1 X63.466 Y63.310 E102.956
G0 X63.561 Y63.310
G1 X63.387 Y63.484 E103.201
G0 X63.387 Y63.579
G1 X63.656 Y63.310 E103.581
G0 X63.750 Y63.310
G1 X63.387 Y63.673 E104.095
G0 X63.387 Y63.768
G1 X63.845 Y63.310 E104.742
G0 X63.940 Y63.310
G1 X63.387 Y63.863 E105.524
G0 X63.387 Y63.958
G1 X64.035 Y63.310 E106.440
G0 X64.129 Y63.310
G1 X63.387 Y64.052 E107.489
G0 X63.387 Y64.147
G1 X64.224 Y63.310 E108.673
G0 X64.319 Y63.310
G1 X63.387 Y64.242 E109.991
G0 X63.387 Y64.337
G1 X64.414 Y63.310 E111.442
G0 X64.508 Y63.310
G1 X63.387 Y64.431 E113.028
G0 X63.387 Y64.526
G1 X64.603 Y63.310 E114.748
G0 X64.698 Y63.310
G1 X63.387 Y64.621 E116.601
G0 X63.387 Y64.716
G1 X64.793 Y63.310 E118.589
G0 X64.887 Y63.310
G1 X63.387 Y64.810 E120.711
G0 X63.387 Y64.905
G1 X64.982 Y63.310 E122.966
G0 X65.077 Y63.310
G1 X63.387 Y65.000 E125.356
G0 X63.387 Y65.095
G1 X65.172 Y63.310 E127.880
G0 X65.266 Y63.310
G1 X63.387 Y65.189 E130.537
G0 X63.387 Y65.284
G1 X65.361 Y63.310 E133.329
G0 X65.456 Y63.310
G1 X63.387 Y65.379 E136.255
G0 X63.387 Y65.474
G1 X65.551 Y63.310 E139.314
G0 X65.645 Y63.310
G1 X63.387 Y65.568 E142.508
G0 X63.387 Y65.663
G1 X65.740 Y63.310 E145.836
G0 X65.835 Y63.310
G1 X63.387 Y65.758 E149.297
G0 X63.387 Y65.853
G1 X65.930 Y63.310 E152.893
G0 X66.024 Y63.310
G1 X63.387 Y65.947 E156.623
G0 X63.387 Y66.042
G1 X66.119 Y63.310 E160.486
G0 X66.214 Y63.310
G1 X63.387 Y66.137 E164.484
G0 X63.387 Y66.232
G1 X66.309 Y63.310 E168.616
G0 X66.403 Y63.310
G1 X63.387 Y66.326 E172.881
G0 X63.387 Y66.421
G1 X66.498 Y63.310 E177.281
G0 X66.593 Y63.310
G1 X63.387 Y66.516 E181.815
G0 X63.387 Y66.611
G1 X66.613 Y63.385 E186.376
G0 X66.613 Y63.480
G1 X63.403 Y66.690 E190.916
G0 X63.498 Y66.690
G1 X66.613 Y63.575 E195.321
G0 X66.613 Y63.669
G1 X63.592 Y66.690 E199.593
G0 X63.687 Y66.690
G1 X66.613 Y63.764 E203.730
G0 X66.613 Y63.859
G1 X63.782 Y66.690 E207.734
G0 X63.877 Y66.690
G1 X66.613 Y63.954 E211.603
G0 X66.613 Y64.048
G1 X63.971 Y66.690 E215.338
G0 X64.066 Y66.690
G1 X66.613 Y64.143 E218.940
G0 X66.613 Y64.238
G1 X64.161 Y66.690 E222.407
G0 X64.256 Y66.690
G1 X66.613 Y64.333 E225.741
G0 X66.613 Y64.427
G1 X64.350 Y66.690 E228.940
G0 X64.445 Y66.690
G1 X66.613 Y64.522 E232.006
G0 X66.613 Y64.617
G1 X64.540 Y66.690 E234.937
G0 X64.635 Y66.690
G1 X66.613 Y64.712 E237.735
G0 X66.613 Y64.806
G1 X64.729 Y66.690 E240.398
G0 X64.824 Y66.690
G1 X66.613 Y64.901 E242.928
G0 X66.613 Y64.996
G1 X64.919 Y66.690 E245.323
G0 X65.014 Y66.690
G1 X66.613 Y65.091 E247.584
G0 X66.613 Y65.185
G1 X65.108 Y66.690 E249.712
G0 X65.203 Y66.690
G1 X66.613 Y65.280 E251.705
G0 X66.613 Y65.375
G1 X65.298 Y66.690 E253.565
G0 X65.393 Y66.690
G1 X66.613 Y65.470 E255.290
G0 X66.613 Y65.564
G1 X65.487 Y66.690 E256.882
G0 X65.582 Y66.690
G1 X66.613 Y65.659 E258.339
G0 X66.613 Y65.754
G1 X65.677 Y66.690 E259.663
G0 X65.772 Y66.690
G1 X66.613 Y65.849 E260.852
G0 X66.613 Y65.943
G1 X65.866 Y66.690 E261.908
G0 X65.961 Y66.690
G1 X66.613 Y66.038 E262.829
G0 X66.613 Y66.133
G1 X66.056 Y66.690 E263.616
G0 X66.151 Y66.690
G1 X66.613 Y66.228 E264.270
G0 X66.613 Y66.322
G1 X66.245 Y66.690 E264.789
G0 X66.340 Y66.690
G1 X66.613 Y66.417 E265.175
G0 X66.613 Y66.512
G1 X66.435 Y66.690 E265.426
G0 X66.530 Y66.690
G1 X66.613 Y66.607 E265.544
;Layer gcode is added after this line
G0 F7200 X66.999 Y67.076 Z0.120
G1 F5400 X63.001 Y67.076 E269.542
G1 X63.001 Y62.924 E273.694
G1 X66.999 Y62.924 E277.692
G1 X66.999 Y67.076 E281.844
G0 X66.932 Y67.009
G1 X63.068 Y67.009 E285.708
G1 X63.068 Y62.991 E289.726
G1 X66.932 Y62.991 E293.590
G1 X66.932 Y67.009 E297.608
G0 X66.865 Y66.942
G1 X63.135 Y66.942 E301.338
G1 X63.135 Y63.058 E305.222
G1 X66.865 Y63.058 E308.952
G1 X66.865 Y66.942 E312.836



It looks like Simplify3D did not interpret the GCode correctly. As a test, I ran both of the GCodes on the Moai with an empty vat to see how the laser traced out the first layer and it IS tracing at the reduced speed.

As a side note to anyone using Simplify3D to visualize GCode, it appears the Simplify3D displays the correct speeds ONLY when the Feedrate parameter is supplied on every G0 parameter, and on the first G1 parameter after each G0. For example:

G0 F6000 X55.092 Y55.239 Z0.1
G1 F300 X55.442 Y54.986 E0.0012
…more G1 commands…
G0 F6000 X55.104 Y55.275 <— F parameter provided again
G1 F300 X74.902 Y55.275 E0.28039 <— F parameter provided



Hi Maximums,

Thanks for this confirmation!

I was already reading about the GCodes if perhaps I got the functioning of the F parameter wrong… might there be 2 different ones? for G1 and G0? but i guess not.

I did notice however a slight difference in GCode i didn’t notice before.
Formware GCode: first Z level is 0.5layerThickness
Cura GCode: first Z level is 1

It’s a matter of definition i guess where you start slicing; but it does mean that the exposure is ‘doubled’ on the first layer from formware.

I already corrected it in the code for the next release.
But if you can’t wait just ‘divided’ the current bottom layer speed by 2. (assuming you only have 1 bottom layer)




If you are saying to divide the current bottom speed by two, does this mean that the currently the first-layer speed is two times faster than it should be?



Hello Elco,

here are some comments on the G-Code commands G0, G1 and Feed (F)
G0: Rapid positioning
G1: Linear interpolation

Both types of movement have different speeds.

For G0, there is usually a default setting (maximum travel speed allowed by the machine). Feed for G0 can be overwritten.

G0 F8000; set the rapid move feedrate to 8000mm / minute
G1 F1500; set the linear move feed rate to 1500mm / minute

The next time you call G0 or G1 without specifying the parameter F, the previously defined value is used.

There is no good reason why an unchanged feed is given. Especially with SLA-G code, it only unnecessarily inflates the G-coded file.



no. The opposite. I have a bottom layer that is half as thick as it should be.
So probably if you do nothing you are also fine.
Theoretically you could double your bottom speed.



Hi Ad_fontec,

So you are saying there are 2 different speed settings in Marlin? (or another flavor for that matter?)
I didn’t find this in the documentation…

i.e. if I do this:
G0 F8000
G1 F1500
G0 …
G1 …

What will the last 2 commands get for speed?



If i Look at the source of Marlin I see the following 2 methods below.

I think there is only 1 feedrate set… “feedrate_mm_s” independent of G0 or G1.

Source file:




How Marlin interprets in detail the G0 F … and the G1 F … I do not know.

From my point of view, it makes no sense (and it would not be G-Code compliant) to override the rapid traverse speed each time.

At the end it depends on the respective G-code interpreter.



I have just tested Feed at G0 / G1 on Moai 200.

The Moai firmware actually does not distinguish between G0 and G1 FEED :anguished:

From this follows: Feed at G1 (and G0) determines the speed during the following rapid traverses.

This is a mistake!

I wonder who did it first … and the rest copied without thinking. :rage: