Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
3D printing with UR10e
#1
Hello there,

I have the following setup:
Robot: UR10e
Extrude: the one from RoboDK library
Post Proccesor:Universal Robot

I can generate a robot program .urp and script successfully; however, on running script there is an error that says:
Code:
Compile Error: M_RunCode() is not defined.

How can I solve this problem.

Then I tried to use Universal Robot 3D printing as post processor. In this case, I cannot generate the code and having the following error:
Code:
Failed to generate program "Print3D" using the Post Processor "Universal_Robots_3D_Printing"
Post processor path:C:/Program Files/RoboDK/Posts/Universal_Robots_3D_Printing.py
Traceback (most recent call last):
File "C:/Users/[user]/AppData/Local/Temp/PostPrint3D.py", line 10676, in
make_program()
File "C:/Users/[user]/AppData/Local/Temp/PostPrint3D.py", line 308, in make_program
r.MoveL(p([22.185000,24.305000,0.500000,-0.000000,90.000000,0.000000]),[138.541038,-134.743422,-204.838150,-20.418427,48.541038,-90.000000],[0.0,1.0,0.0])
File "C:\Program Files\RoboDK\Posts\Universal_Robots_3D_Printing.py", line 643, in MoveL
self.new_move(pose) # used for 3D printing
File "C:\Program Files\RoboDK\Posts\Universal_Robots_3D_Printing.py", line 629, in new_move
signal = min(self.PRINT_FLOW_MAX_SIGNAL , self.PRINT_FLOW_2_SIGNAL * add_material/time_s)
ZeroDivisionError: float division by zero
I have followed the 3d printing tutorial, but I don't know how to fix it.
#2
You can remove triggering custom M_Code commands by following these steps:
  1. Double click your 3D printing project
  2. Select Program Events
  3. Leave the following section empty: Call M code
    (you may see M_RunCode by default but you should remove it)
#3
Hello,

I have the same problem as described above when I want generated program with the Post Processor "Universal_Robots_3D_Printing". 
I have remove triggering custom M_Code commands but the problem persists.

Is there another solution?

Regards,
Jérôme


Attached Files Thumbnail(s)
   
#4
Hi Jérôme,

I recommend you to take a look at how post processors work in RoboDK:
https://robodk.com/doc/en/Post-Processors.html#EditPost

It will allow you to customize the integration of your extruder for 3D printing. The error message is pointing at the error (division by zero). You can add a filter and if you calculate time_s as zero you can skip that line.
 
Albert
#5
(06-17-2020, 02:09 PM)Albert Wrote: Hi Jérôme,

I recommend you to take a look at how post processors work in RoboDK:
https://robodk.com/doc/en/Post-Processors.html#EditPost

It will allow you to customize the integration of your extruder for 3D printing. The error message is pointing at the error (division by zero). You can add a filter and if you calculate time_s as zero you can skip that line.
 
Albert

Thank you sir. It generates the code without problem now!.

Now, I have another issue. When I test on UR simulator or connect directly with RoboDK everything is fine. But, when I want to load the program on the controller, every time, I have a different issue.
- Sometimes the script won't load.
- Sometimes, there is an error exception: lack of memory on java file??
- And also, it's quite impossible to load script that generated from RoboDK when I using extruder for 3d printing. Is there any way to break through this problem. 

Thank you in advance!
#6
Dear Sir or Madam,

how is it possible to edit the postprocessor when it is in a compiled file? Or is it possible to download the UR10e 3D printing postprocessor somewhere?

Best regards
J. Kosiahn
#7
If you own a RoboDK professional license, you can go to "Help"->"Request support" and ask for a specific post-processor.

Jeremy
Find useful information about RoboDK and its features by visiting our Online Documentation and by watching tutorials on our Youtube Channel


#8
Hello, I have made the changes to the postprocessor as described in the instructions (https://robodk.com/doc/en/Robot-Machinin...rint3Dpost). The simulation works so far. However, when I try to use it with the robot, I get the following message: "Must be a 'boolean' not 'Int'. "with the reference to the command set_standard_digital_out(5.000, 0.000). I know that the second number must be a boolean but where did I make the mistake that this is still entered as 'int'? Do you have an idea for this?

Best regards
J.Kosiahn
#9
Try changing the line that causes issues for this:


Code:
set_standard_digital_out(5, False)
#10
(05-10-2021, 09:08 PM)Albert Wrote: Try changing the line that causes issues for this:


Code:
set_standard_digital_out(5, False)

Hello,
i changed this and all the other lines by hand and it works.
I wonder about this because there is code in the postprocessor that is supposed to solve this.

def setDO(selfio_vario_value):
        """Set a Digital Output"""
        if type(io_value) != str# set default variable value if io_value is a number            
            if io_value > 0:
                io_value = 'True'
            else:
                io_value = 'False'
        
        if type(io_var) != str:  # set default variable name if io_var is a number
            newline = 'set_standard_digital_out(%s%s)' % (str(io_var), io_value)
        else:
            newline = '%s = %s' % (io_vario_value)
            
        self.addline(newline)
  




Users browsing this thread:
1 Guest(s)