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

NACHi Post Format Error and Correction Example

Hi all,

I need help modifying the post processor for a NACHi robot. I think I know what is happening.

This is related to other posts such as:

The suggestion to make the post processor to use the user coordinate system by
  1. Open the file: C:/RoboDK/Posts/
  2. Comment the line self.REF_FRAME = pose (around line 260, just add the # character in front)
will produce the correct numerical values for the Cartesian coordinate in the post, but still with the wrong format.

I attached 3 zip files here for you to review:
1) the RoboDK file following the spray paint program from the tutorial (yes, I am still learning from those).
2) the post from RoboDK after commenting the line #260ish following instruction above to use user coordinate system. The main program 110 will call 111, 112, 113
3) the post I edited manually to get them working

Here is what I did:
1) Using the teach pendent, I added User Coordinate Frame 1 (same location as the work piece frame in RoboDK) to the robot controller, and also added Tool 1 geometry (same definition as in RoboDK).
2) In 110, before calling the subprogram, I inserted the line CHGCOORD 1 to use user coordinate frame 1. I inserted the line CHGCOORD 0 to user the robot base frame before ending the program. (It is probably a good idea insert these two lines in ALL subprogram though. CHGCOORD is fn113. It should be called before the move(s).)
3) Add a "U" to MOVEX lines. (Note: MOVEX M1J doesn't need it because it is joint move.) For example, in 111
MOVEX M1X,L,(222.258,199.775,333.893,0.000,-0.000,0.000),S=200.00,H=1,MS
MOVEX M1X,L,(222.258,199.775,333.893,0.000,-0.000,0.000)U,S=200.00,H=1,MS

Note the U after ')'

And that's how I get the program to work. I also compiled and ran these on FD on DESK II before i sent to the robot.

So, my question is: how do I modify the post processor to do these steps automatically?


Attached Files
.rdk   NACHi 1.rdk (Size: 1.78 MB / Downloads: 508)
.zip   RoboDK output (Size: 1.75 KB / Downloads: 473)
.zip   RoboDK (Size: 1.73 KB / Downloads: 490)
Thank you for your feedback. This helps us improve our default post processor for Nachi and OTC robots.

Taking a look at your modifications, I attached an updated post processor for OTC and Nachi robots to handle the following:
  1. Use the CHGCOORD with all set reference frame instructions: the id of the reference will be 0 by default if you don't use any numbered frames. However, you can add a number to your reference frame in RoboDK (for example, rename your reference to "workpiece 1" to generate "CHGCOORD 1").
  2. Add a U after the pose if you are using a numbered reference frame.
Let me know if this works better by default or you would like to see other changes.


Attached Files
.py (Size: 21.25 KB / Downloads: 529)
Hi Albert,

I've tested out the new post processor. So far so good. : )

I promise I will learn Python next. I think I can get more out of RoboDK if I know it. (It is not hard. It is just time. : p)

Hi all,

I have made some changes in the Postprocessor.
Now my question is if every Robot Model has the same type of functionnaming
I've got a MZ12-01 with a CFD-Controller

Changes I made
The Robot-programname normally  was "MZ12-01-01-A.005"
Change to generate a program in Nachi-Software "MZ12-01.005"

Line 115
self.BASE_PROGNAME = robotnamelist[1] + ''     # 
#Before                                            ... + '-01-A'

When calling Subprogram(s) the squaret brackets interfere with the Nachi-Software
Should be 
CALLP XX instead of CALLP [XX]
Line 173
mainprog += 'CALLP %03i\n' % (self.PROG_ID+i+1) 
#Before ...+='CALLP [%03i]\n'

I would like to know if these are general issues at the Nachi PP or just for my robot-model 
Programming isn't my strenght... maybe there are some better solutions

Another thing I would like to change is the numeration of the called subprograms
The Programs start with .005 (always main)
Think it refers to Line 58 

My idea would be like this example:
'generate robot program as...'
MZ12-01.XX     #For XX type a number (Main Prog)
                      # Calling X+n subprograms 

hope my idea is goodwhat I fall down on is implementing it...


Users browsing this thread:
1 Guest(s)