Rotation around X axis, why is so difficult??

Hi.
I am glad you have Rhino yourself. In Rhino 5.0 you can install grasshopper 0.96 as plugin. Rhino education is totally the same as the Rhino commercial and you can use it forever even after leaving school.
In Rhino 6.0 the grasshopper is no longer a plugin, it is a basic function to Rhino (called grasshopper 1.0)
I am not sure if my Grasshopper 1.0 file can be opened with no error with your 0.96 version.

I forgot to mension. For your application which is CNC cutting, most main robot company have some kind of powerpack or toolpack to do so.
Your “free z rotation” may be the main feature to CNC cutting. because if it is laser, then orientation does not matter at all. This is my understanding, I am not sure it is right, I major in architecture design, mechanic and robot are just my hobby. Please correct me if I am wrong.

https://new.abb.com/products/robotics/application-software
This is the page of Robot Apps by ABB.
https://new.abb.com/products/robotics/application-software/cutting
This is the page of Cutting apps.
In Robotstudio you can click on the “add-on” tap on the top tab bar. Click “RobotApps” and enter “cutting” in the search box, you can find RobotWare Cutting app to download.

My way as previous reply is to make the robot arm move as few angles as possible from default position. But I don’t think it is the best algorithm to optimize the move.
Maybe you will find RobotWare Cutting useful and it can solve your problem with easy way.

Actually I am wondering for you 2000 points, are you planning to code them one by one? That is 2000 line of code and you have to calculate 2000 group of coordinates/quaternions.
Can you share us the whole process? What does the 2000 original data come from?

@Deer,
I will have a look at the plug-in you’ve mentioned. I think even in the student version should be possible to run.
Now about Robot Studio App. I have RobotWare ver 5, 6, and 7. It was necessary to install them since the Pack&Go file came from an old robot from Germany, which doesn’t have all options in 6. /SingArea\LockAxis4 = SingArea\Wrist;
The application I am working on is for 3D printing. Idea is to create complex geometry by making the intersection of two objects, produce track and routes, with a segment perpendicular to the tool - print head because that’s the proper way how the printer should extrude filament.
Each of these lines is a path, that robot will move over. Each of these targets has the same orientation XYZ coordinates pointing in one direction, relative to the robot tool orientation.
In this particular example, the total number of targets that have been created is 21 345. Despite the fact that my GPU is heavily breathing, Robot Studio is fine and able to make the whole simulation.
When I load your program example, I saw that you came up with the same result as I did by quaternions - the targets are rotated. However, I’ve noticed that you’ve made config for each one of the targets separately. I am not sure if you made this by programming (automatically), but if it’s manually I think you would understand me now, why it’s not a doable variant for my case. Maybe with your tool in Rhino, as far as I understood you can control joints, but not XYZ? Is this correct? I think we had achieved the same result by using two different methods.
In the next post, I will show a .gif file, demonstrating a solution for the robot.
The whole process currently I am afraid that I cannot share because it’s a company project for customers. However, everything that I can say is: It doesn’t exist as an option in ABB studio or any other competitor Robot on the field. It is an advanced technology that we would like to create, simply because it has huge potential on the market. If someone of you would like to have the information I would suggest typing me on my email.
Here I would like to thank ABB service technical center in the USA, who supported us with advice and share knowledge.

Example:

Hi!
I think this is getting more and more interesting.
I like what you are doing.
Since it will be complicated, I will organize my post:

1: If you can check the first link I gave you in my former reply, you can see "3D Printing PowerPac".

2: As you can see in my first reply No.16 process, the configuration are all automatic.

3: It is both convenient to return [XYZ-coordinates/quaternions/configuration] or [6 joint axis] in my Rhinoceros program.
For XYZ one or RobotTarget, it will cost more procedure to calculate because it obviously requires more numbers, but the RAPID program will be much shorter, 1 point 1 line like this

moveL [[x,y,z],[q1,q2,q3,q4],[cfg1,cfg2,cfg3,cfg4]],v100,fine,tool0;

For 6 angles or RobotJoint, the procedure in Rhino will be a little simpler, but the RAPID program will be much longer, actually 1 point 4 line like this

VAR robtarget p1;
CONST robjoint j1:=[[a1,a2,a3,a4,a5,a6],[9E9,9E9,9E9,9E9,9E9,9E9]];
p1=calcrobj(j1,tool0);
moveL p1,v100,fine,tool0;

As you can see you will have to pre-define p1 and j1, and also call a function “calcrobj” to convert joint angles to robot target, after 3 line of preparation, you can call moveL finally.

I think both way are OK, and they are the same to me, because I have finished all Rhino programming. But I do think that the later way will make RAPID program much longer, and it will cost more time to scroll down/up. hahahaha.

4: I have one FDM printer, I am not sure about other printers, but I think for FDM machines, nozzle can not rotate too much during the path. The material will somehow twist and reduce the overall quality. If this is the case, then the algorithm has to be designed carefully. I do have something in mind too.

5: I am interested in your work/project. But for confidential reason, I can not see your whole model, if it is possible, could you give me some part of it? I think 1printing path with 20-30 points are enough.

6: If you are interested we can talk outside this forum. You can message me and we can work on whatsapp/line/ or something else.

You do not have to always use robotstudio and it’s gadgets, Rapid is a great language in itself. Read this part of my blogs to see how to write the orientation and configuration to your robtargets as you like.

https://www.robot-forum.com/blog/entry/2-picking-part-2-from-a-tray-of-parts/

@lemster68
Thank you so much :))) I will have a look for sure. At first glance, I see very solid information :slight_smile:
Taniq

As @Deer guessed Abb provides a powerpack for 3d printing, simply called 3d Printing PowerPac.

Here’s a presentation:

Here’s a short presentation video:

Here’s a link with some tutorials. If you want to get a better hands on understanding of the software:
https://new.abb.com/products/robotics/robotstudio/tutorials

Please contact your local ABB office if your interested in getting the PowerPac.

Best regards,
Daniel