Toolpath for Concrete 3D Printing

Started by Khalilullah_Taj, February 12, 2025, 08:45:24 PM

Previous topic - Next topic

Khalilullah_Taj

Hi Johannes,

I am trying to generate a toolpath for 3D printing. Thankfully, I can import .gcode files to the grasshopper environment. The problem I have been having is the orientation of points. I use Simplify3D for generating .gcode. It automatically makes the direction of Z axis from bottom to top. However, TCP of my robot is directed with an inversed Z direction.
I attached all the necessary files to this post. Can you please take a look? Thanks.

Johannes @ Robots in Architecture

Hello,
I only skipped through the G-Code file and didn't see anything that would set the tool axis - only the usual XYZ coordinates, extruder feed and TCP speed.
If it's only about the tool, then the easiest solution would be to switch the B value that is currently at 90 to -90. Note that you need to do that both in KUKA|prc and on the physical robot, as by default KUKA|prc only references the tool/base value and not the exact XYZABC values.
Best,
Johannes

Khalilullah_Taj

Thank you so much, Johannes.
I tried changing B from 90 to -90. However, the robot took an unnatural position.
Fortunately, by changing the C from 0 to -180, I was able to obtain the position I wanted.

On another note, there is an error in the beginning of the simulation. Robot tries to take the TCP to a point close to the origin. I don't know what is the cause of this. Below is the corresponding lines of code associated with this:
PTP {X 0, Y 0, Z 23.1, A 175.534, B 0, C 0, E1 -1, E2 0, E3 0, E4 0, S 'B110'} C_PTP
LIN {X 0, Y 0, Z 23.1, A 175.534, B 0, C 0, E1 -1, E2 0, E3 0, E4 0} C_DIS


Sincerely,
Taj

Johannes @ Robots in Architecture

Hello,

I looked at the G-code and the first part with XYZ movement would be that line:
G1 Z23.1000 F12000
Here, X and Y are not set, which are assumed to be 0.

The G1 gets turned into a PTP + LIN movement automatically in order to set the posture of the robot. This will only happen if the first movement you input is a LIN movement and then also only for the very first movement.

Best,
Johannes