Trajectory Planner for 3D printing - A axis blending issues

More
13 Jul 2021 18:56 #214639 by AlessandroT
It will be very useful if we will able to merge their TP.

In our case, as we print with the spiralize option, the trick of exchange the "A" axis with the "Z" axis will be useless as both of them are in every gcode lines.

Here I found a branch more updated from the Tormach engineer, but unfortunately I am still unable to try it.

github.com/robEllenberg/linuxcnc-mirror/...ure/uvw-blending-2.7

It seems that there are differences in the tp and in the motion path. I will continue to investigate.

Please Log in or Create an account to join the conversation.

More
13 Jul 2021 21:46 #214651 by tommylight
The following user(s) said Thank You: AlessandroT

Please Log in or Create an account to join the conversation.

More
14 Jul 2021 01:17 #214662 by cakeslob
While I wont argue a new fancy trajectory planner would be sweet, it seems like overkill for something thats more like a synchronized toolhead, than an axis of motion. I dont think marlin or klipper have a 4 axis planner, probably a 3+1 but Im not to good with computers so I dont know for sure. Klipper seems closest in concept to linuxcnc so ill use that for reference. It looks like the extruder has a separate kniematics config, and the action is happening in toolhead.py I am trying to determine if this is similar to what PCW is saying with velocity extrusion and filters

github.com/KevinOConnor/klipper/blob/master/klippy/toolhead.py
github.com/KevinOConnor/klipper/blob/mas...nematics/extruder.py

 

Please Log in or Create an account to join the conversation.

More
14 Jul 2021 02:00 #214666 by tommylight
There is a working printer i linked to using axis U (or A ) for Z, and Z axis for driving the extrude.
On FDM printers Z axis moves only on layer shift so not blending or anything required as all other motion is stopped while the Z is moving.

Please Log in or Create an account to join the conversation.

More
14 Jul 2021 11:25 #214720 by AlessandroT
In our case, as we use a pellet extrusion with a large bead, we usually set the spiralize option in the slicing software: it means that X Y Z are moving together. For this reason, switching the Z and A axis will be useless.
The same for some fancy 45-degree prints.

The velocity extrusion with some filters works very well. The cons are that it requires coding to post-process the gcode outputted from slicing softwares. As different slicers are writing the gcode in different manners, I don't think is the right way because you will be slicer-dependent. 
Moreover to get the proper amount of extrusion it requires parameters as layer height and Nozzle diameter that are previously set in the slicer software. This software doesn't talk with linuxcnc and it generates human errors when the operator loads a gcode from time before and doesn't remember the slicing parameters. In synthesis, in my opinion, the velocity extrusion is a good workaround but it's not a final solution.

Could be possible to load two trajectory planners one for XYZ and one for the A axis?
The real problem in 3D printing with the actual Trajectory Planner is that is it optimized in the opposite way against necessity.
The aim should be to keep the extrusion more constant as possible acting as a constraint to the XYZ motion. If the objectives of the optimization strategy of the TP could be chosen, it will be amazing!
 
The following user(s) said Thank You: Aciera

Please Log in or Create an account to join the conversation.

More
14 Jul 2021 12:53 - 14 Jul 2021 13:02 #214729 by Todd Zuercher
Did you try it using U, V, or W instead of A? (I think the new planner's look ahead might be extended to those axis in v2.8+, just not A,B,C.)

I know I helped with testing the experimental UVW branch and it was working there. But I never tested 2.8-pre after that branch was supposedly merged, to see if it worked there. And I have not taken the time to upgrade my machines beyond 2.7, because the work-arounds I'd already implemented there work well and my complex configs don't import easily into 2.8 without a lot of manual changes. Not to mention nessisary OS upgrades, have kind of dead ended me, until I put in a lot of time testing and experimenting. (These are factory production machines.) So the time required and time available has made the incentive for upgrading low for me. (if it ain't broke...)
Last edit: 14 Jul 2021 13:02 by Todd Zuercher.
The following user(s) said Thank You: Aciera

Please Log in or Create an account to join the conversation.

More
14 Jul 2021 13:02 - 14 Jul 2021 13:04 #214730 by Todd Zuercher

The velocity extrusion with some filters works very well. The cons are that it requires coding to post-process the gcode outputted from slicing softwares. As different slicers are writing the gcode in different manners, I don't think is the right way because you will be slicer-dependent. 
Moreover to get the proper amount of extrusion it requires parameters as layer height and Nozzle diameter that are previously set in the slicer software. This software doesn't talk with linuxcnc and it generates human errors when the operator loads a gcode from time before and doesn't remember the slicing parameters. In synthesis, in my opinion, the velocity extrusion is a good workaround but it's not a final solution.

 

You might be able to work around the need for a custom post processor, by building the nessisary post processing into a filter in Linuxcnc that automatically makes the nessisary changes to the files as they are loaded.  I do this on several machines to convert g-code that was made for a different machine compatible with another.
Last edit: 14 Jul 2021 13:04 by Todd Zuercher.

Please Log in or Create an account to join the conversation.

More
14 Jul 2021 13:49 - 14 Jul 2021 14:03 #214737 by Aciera
@Todd
I run current master on everything and I'd really like to get to the bottom of this once and for all.
I know this may sound somewhat strange but how would I test this? Would I just use UVW instead of XYZ? Maybe I could use XYZUVW instead of XYZABC for my robot.

[edit]
or I guess the most logical would be to start with redefining the a-axis on my mill as u-axis.
Last edit: 14 Jul 2021 14:03 by Aciera.

Please Log in or Create an account to join the conversation.

More
14 Jul 2021 14:22 #214743 by Doogie
I thought I tested this and figured out it was not the case that the A axis dropped the TP to a 1 word buffer here(videos showing 1 word and 50 word buffers): forum.linuxcnc.org/38-general-linuxcnc-q...3-3d-printing#210835

Maybe arc_blend is quite different from what you are saying and seeing?

Please Log in or Create an account to join the conversation.

More
14 Jul 2021 15:23 #214756 by AlessandroT
Hi Doggie,

I saw your video and checked your gcode. In your case ( in the second video) the arc_blend option is working because you didn't have the A axis coordinate inside the gcode. If you execute the same gcode with A axis, I suppose that your second video will be identical to the first one.

@Todd, thanks, I can understand the feeling and the scares to upgrade when the stuff are going well. Honestly, I didn't test to swap A axis with U, I only read that it didn't work in some posts. I will do my homework soon. I have some little hope because we are testing the linuxcnc 2.9, and maybe the U swapped tester was using the 2.7!

About the post process inside linuxcnc, I never used this workaround and I will investigate it, but as we are loading very large files and it takes a long time already to be charged, I suppose that this will require even more time. 

Please Log in or Create an account to join the conversation.

Time to create page: 0.096 seconds
Powered by Kunena Forum