Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Variable speed of movement for non-planar 3D printing

#1
Hi, guys, does anyone know how to make a variable speed of movement of TCP within one layer - for example, on specific edges or sides of object I would like one speed, on the opposite sides - another speed on the sides, that are connecting these edges I need speed that is changing from the beginning point A to end point B for example, I start slowly, 250 mm/s then GRADUALLY increase to 500 mm/s then continue that speed and then backwards gradually reduce speed from 500 mm/s to 250 mm/s. Ideally, to find some instruments that adjust this gradient depending on the initial parameters: for example, for layer height (or distance between curve layers) we set one speed and they it changes it changes it automatically. 
I attache the input data what we had as initial curve and what we got when we have 3D printed it MANUALLY changing the speed from 250 mm/s (where you see 10 mm thick layers) to 500 mm/s where you see 4 mm thick layers. The transition is not even because we just pressed the button 50% of initial speed on the FlexPendant :)) 
Any ideas, help is appreciated.


Attached Files Thumbnail(s)
Screenshot 2026-07-15 at 17.37.49.png    Screenshot 2026-07-15 at 17.38.05.png    98ACBD7B-9AF8-42D3-A818-9127CE8CD8F4.png   
#2
Do this on slicer level. I make a decision on point distance for the toolpath (number of points pr layer). Then meassure distance from the point i am going to and the opposing point on previous toolpath. This distance is what i use to either change speed or feed. Depending on ease of use and implementation. Since you use clay and use backpressure over time to adhere to previous layer i think i rather change feed than speed. Both can be implemented on the same time to achieve correct surface of course.you end up with a table of feeds for each point. Find max/min and decide on feeds/speeds. Interpolate for the between points .
#3
Nice project! Another option is to customize the post processor to adjust the speed as needed based on where you are in your program.

For example, when generating a program you can activate this setting:
  1. Select Tools-Options-Program
  2. Set Output for linear movements to 1 mm
This will force generating one movement instruction every 1 mm.

You can then customize the post processor to adjust the speed as a function of where you are in your path and custom triggers such as function calls or comments in your code.

Some tips:
  • Any program calls or comments go through the RunMessage function of the post processor. You can use this to flag layers for example.
  • All linear movements are generated by the MoveL function call. You can remember the last position to understand the delta movement you are doing at each step.
  • You can use pose.Pos() to obtain the XYZ position of the tip of the tool for each movement.
  • You can use the RDK_COMMANDS special command to force changing this setting on any machine you use your custom post processor.
  • I attached the source code of a custom post processor we once did for KUKA CamRob (CSV file output) that was adjusting the speed for each movement.


Attached Files
.zip   KUKA_KRC2_CamRob_AvgSpeed.zip (Size: 6.16 KB / Downloads: 2)
  




Users browsing this thread:
1 Guest(s)