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

RoboDK SetRPM for 3d Printing - Limit RPM

#1
Hello everyone,

First post here.

Excellent support I've seen from both Jeremy and Albert so I thought to ask a question in hopes one of you bright fellows can assist me.

I am currently 3D Printing with a Fanuc m710ic-45m and a pellet extruder.

I would like to better understand how I can adjust robodk to function as desired with respect to RPM control. At the moment, when I start my print the RPM goes quiet high, bringing the Torque % above the suggested 80% limit set by the OEM. It's extruding with about 75 RPM's give or take with this high torque value. I only need it to do maybe 20 at the most (for now). 

Is it possible with Robodk to either set a cap on the RPM or even consider a static RPM?  Preferably a cap as there are, of course, areas where we may not want extrusion. Even if it's static but simply doesn't extrude when it shouldn't, like a binary state with either, say, 20 rpm or no rpm, that could be okay as well. However, if a more refined solution exists, I'm all ears.

I have attached a very common image showing my options for the 3d printing on this particular project. 

If you fine folks can help with this I will 3d print you a mug and fill it with an ice cold beer for you :D  


Thanks!
#2
RoboDK automatically uses the Extruder function to drive the extruder flow. The same E value that you have in your G-code for each move line is passed through the Extruder function. In your post processor you can filter this value. You could even adjust the speed of the robot based on a desired constant E value.

Can you provide more information about your current workflow? For example, RDK project file, G-code samples, Slicer software you use for 3D printing, etc.
What robots are you using? Did you customize the post processor?
#3
(08-07-2023, 07:49 AM)Albert Wrote: RoboDK automatically uses the Extruder function to drive the extruder flow. The same E value that you have in your G-code for each move line is passed through the Extruder function. In your post processor you can filter this value. You could even adjust the speed of the robot based on a desired constant E value.

Can you provide more information about your current workflow? For example, RDK project file, G-code samples, Slicer software you use for 3D printing, etc.
What robots are you using? Did you customize the post processor?

Hi Albert,

That's great to hear that Robodk possesses such capabilities.

The workflow is as follows:
-CAD to STL, which is then sliced by Cura
-Cura outputs the G-code file
-Load this g-code file within our configured work cell in Robodk
-Output LS file and then utilize on robot

-In terms of robot, we are operating a Fanuc m710ic-45m with a 30ib Plus controller
-Post processor modifications are minor; only adjusted things like FINE and CNT values or number of lines per program. Nothing for manipulation of data as you have described.


It would be great to see how we could facilitate the improvements you have listed, with respect to filtering E values and adjusting speed values based on desired constant E value. This sounds like the precise adjustments that are required for this operation.

I have attached our robodk file. Some notes on it to avoid any confusion:
-Reference point "MDF height" is the height of the printing table
-Reference point "extrusion height" is the height of the nozzle above the print table.
I believe all else is fairly clear. Please let me know if anything needs more explanation.

Additionally, I have attached a sample g-code file for this as well. (Not all the lines as the file size was too big to upload). Please let me know if you require more detail for that. 

I really appreciate your time and support on this.

Thanks.


.rdk   ROBODK FORUM SHARE.rdk (Size: 2.07 MB / Downloads: 139)

.txt   gcodesample.txt (Size: 22.59 KB / Downloads: 130)
#4
(08-07-2023, 12:11 PM)3D_FANUC_DUDE Wrote:
(08-07-2023, 07:49 AM)Albert Wrote: RoboDK automatically uses the Extruder function to drive the extruder flow. The same E value that you have in your G-code for each move line is passed through the Extruder function. In your post processor you can filter this value. You could even adjust the speed of the robot based on a desired constant E value.

Can you provide more information about your current workflow? For example, RDK project file, G-code samples, Slicer software you use for 3D printing, etc.
What robots are you using? Did you customize the post processor?

Hi Albert,

That's great to hear that Robodk possesses such capabilities.

The workflow is as follows:
-CAD to STL, which is then sliced by Cura
-Cura outputs the G-code file
-Load this g-code file within our configured work cell in Robodk
-Output LS file and then utilize on robot

-In terms of robot, we are operating a Fanuc m710ic-45m with a 30ib Plus controller
-Post processor modifications are minor; only adjusted things like FINE and CNT values or number of lines per program. Nothing for manipulation of data as you have described.


It would be great to see how we could facilitate the improvements you have listed, with respect to filtering E values and adjusting speed values based on desired constant E value. This sounds like the precise adjustments that are required for this operation.

I have attached our robodk file. Some notes on it to avoid any confusion:
-Reference point "MDF height" is the height of the printing table
-Reference point "extrusion height" is the height of the nozzle above the print table.
I believe all else is fairly clear. Please let me know if anything needs more explanation.

Additionally, I have attached a sample g-code file for this as well. (Not all the lines as the file size was too big to upload). Please let me know if you require more detail for that. 

I really appreciate your time and support on this.

Thanks.

I have attached another G-code file in case the other is not suitable or is incorrect for any reason. It pertains the design found in the robodk file. (Again, a sample as the whole g-code file is too large for upload).


.txt   Octohedron Bucket_.txt (Size: 158.13 KB / Downloads: 104)

Thanks.
#5
I assume you have a custom "Extrud" or Extruder function which handles updating the speed of the extruder. Do you use the value of the parameter?

Also, it looks like you already customized the post processor to produce custom output. You could also customize updating the extruder speed based on the E value passed through the Extruder function.

This link provides more information and tips on how to convert the E value to speed:
https://robodk.com/doc/en/Robot-Machinin...rint3Dpost
#6
(08-07-2023, 02:39 PM)Albert Wrote: I assume you have a custom "Extrud" or Extruder function which handles updating the speed of the extruder. Do you use the value of the parameter?

Also, it looks like you already customized the post processor to produce custom output. You could also customize updating the extruder speed based on the E value passed through the Extruder function.

This link provides more information and tips on how to convert the E value to speed:
https://robodk.com/doc/en/Robot-Machinin...rint3Dpost

Hi Albert,

Can I set a constant RPM with the setRPM line? I see the code that was supplied but it's not clear to me what's going on with it and if its what we really need. I know how many RPM's I need in relation to my nozzle size and desired layer thickness, so if we can just fix that to a set value, I believe we will be much better. Right now, Robodk takes the gcode and breaks the extrude calls into not so ideal amounts. Unless the design is simple, it is really struggling. It either under extrudes or over extrudes when curvatures or corners are being printed. Straight paths are done well, but of course the more complex geometries aren't quite there. There is very little reason for the RPM to not be more or less constant, even if there are variations in speed. The difference in layer quality will deviate minimally. Therefore there is little reason for variation in extrusion amounts. 

Thanks.


Attached Files Image(s)
   
#7
Setting the spindle RPM usually applies to robot machining projects. You'll rarely see the SetRPM function call with a G-code made for 3D printing.

I noticed you customized the post processor. You should rely on the Extruder length to fine tune the flow of the extruder. This issue is related to the calibration of the Extruder and properly setting the extruder feed from the post processor (more than tweaking RoboDK settings).
#8
(08-18-2023, 12:19 PM)Albert Wrote: Setting the spindle RPM usually applies to robot machining projects. You'll rarely see the SetRPM function call with a G-code made for 3D printing.

I noticed you customized the post processor. You should rely on the Extruder length to fine tune the flow of the extruder. This issue is related to the calibration of the Extruder and properly setting the extruder feed from the post processor (more than tweaking RoboDK settings).

Understood. Can you please elaborate on how we can integrate the code snippet you suggested with our post processor. I am unfamiliar with this process. Is it as simple as copy any paste, etc? Looking for your guidance to integrate accordingly.

Thank you.
#9
There is some information in the link provided before:
https://robodk.com/doc/en/Robot-Machinin...rint3Dpost

The post processor you are using is not the default. Did you or someone in your team customize it?
#10
(08-18-2023, 12:38 PM)Albert Wrote: There is some information in the link provided before:
https://robodk.com/doc/en/Robot-Machinin...rint3Dpost

The post processor you are using is not the default. Did you or someone in your team customize it?

I adjusted the post processor to make it work accordingly with Fanuc robot we own. Plain Jane, it will not produce files that will operate on the Fanuc. It was the slightest of tweaks.

I see the link and appreciate the info. So, would we simply drag and drop this code snipped into the existing post processor .py file? Can you provide any guidance over and above the guide?

Thanks.

I tried incorporating the code snippet provided on your end into the post-processor and the outputted program file(s) I get are the displaying all the same values. I would have assumed this would have adjusted something, even if minor or incorrect. If you can kindly suggest a path forward on this post-processor modification it would be greatly appreciated. Perhaps I misunderstood or missed something.

Thank you.
  




Users browsing this thread:
2 Guest(s)