simple linux cam
27 Mar 2022 15:19 - 14 Apr 2022 14:00 #238462
by Reinhard
simple linux cam was created by Reinhard
Hi,
Here is a small teaser of my current project. The work is tougher and more extensive than expected. But that is probably usually so.
I have a hard time with the graphics, because I am simply underexposed at that corner.
Anyway - the last days were successful, so I can already create a few tool paths based on 3D-model and defined tools.
simple 3-Axis machining:
indexed 5-Axis machining:
Repository available at: kuteCAM
Here is a small teaser of my current project. The work is tougher and more extensive than expected. But that is probably usually so.
I have a hard time with the graphics, because I am simply underexposed at that corner.
Anyway - the last days were successful, so I can already create a few tool paths based on 3D-model and defined tools.
simple 3-Axis machining:
indexed 5-Axis machining:
Repository available at: kuteCAM
Attachments:
Last edit: 14 Apr 2022 14:00 by Reinhard.
The following user(s) said Thank You: andypugh, joekline9, tommylight, Grotius, robertspark, silopolis, Thorhian, itsme
Please Log in or Create an account to join the conversation.
28 Mar 2022 13:23 #238523
by HansU
Replied by HansU on topic simple linux cam
It looks really nice! On which framework/language is this based?
Please Log in or Create an account to join the conversation.
28 Mar 2022 13:36 #238526
by Reinhard
Replied by Reinhard on topic simple linux cam
Hi,
project uses C++, Qt5 and opencascade. I wanted to use CavalierContours as well, but it looks only nice and easy for prototyping. I'm not cute enuf to modify the toolkit for my needs ...
And opencascade is so huge, that I have problems following the docs to get things work.
More than that - occ forum is far from being beginner friendy ...
Its a lonely fight ...
So if someone with grafic skills likes to participate - I would be happy about it.
project uses C++, Qt5 and opencascade. I wanted to use CavalierContours as well, but it looks only nice and easy for prototyping. I'm not cute enuf to modify the toolkit for my needs ...
And opencascade is so huge, that I have problems following the docs to get things work.
More than that - occ forum is far from being beginner friendy ...
Its a lonely fight ...
So if someone with grafic skills likes to participate - I would be happy about it.
Please Log in or Create an account to join the conversation.
30 Mar 2022 17:59 #238767
by Grotius
Replied by Grotius on topic simple linux cam
Hi Reinhard,
Nice work. Looks nice.
And opencascade is so huge, that I have problems following the docs to get things work.
I understand this. Indeed it is huge and can be painfull.
One thing to try out is open the opencascade library as qt project. This give's you more power over the lib.
To read :
github.com/grotius-cnc/gcode-ripper/releases/tag/1.0.0
Qt opencascade project download :
github.com/grotius-cnc/gcode-ripper/rele...ripper-source.tar.gz
The gcode ripper program uses the include path's as used by the qt opencascade project.
So if someone with grafic skills likes to participate - I would be happy about it.
If you have any questions just ask. Maybe i can create some sample code, if the question is not too difficult.
Nice work. Looks nice.
And opencascade is so huge, that I have problems following the docs to get things work.
I understand this. Indeed it is huge and can be painfull.
One thing to try out is open the opencascade library as qt project. This give's you more power over the lib.
To read :
github.com/grotius-cnc/gcode-ripper/releases/tag/1.0.0
Qt opencascade project download :
github.com/grotius-cnc/gcode-ripper/rele...ripper-source.tar.gz
The gcode ripper program uses the include path's as used by the qt opencascade project.
So if someone with grafic skills likes to participate - I would be happy about it.
If you have any questions just ask. Maybe i can create some sample code, if the question is not too difficult.
Please Log in or Create an account to join the conversation.
30 Mar 2022 18:24 #238781
by Reinhard
Replied by Reinhard on topic simple linux cam
Hi,
> One thing to try out is open the opencascade library as qt project. This give's you more power over the lib.
I already did that. I compiled the whole toolkit with debug information. But it does not change anything - opencascade is huge and documentation is for math specialists, not for hobby users.
I don't have the math skills to understand docs or big parts from source code.
What I achieved is a result of tedious trial and error.
> If you have any questions just ask.
My non existant math skills is a problem for CavalierContours as well. I thought, I could get it, but opposite is true.
So I tried to achieve same thing like polylines from CavalieContours by using opencascade:
The trivial parts already work fine:
... but on creating toolpath based on user selection I'm stuck:
Do you know, how to extend the red wires on each end?
> One thing to try out is open the opencascade library as qt project. This give's you more power over the lib.
I already did that. I compiled the whole toolkit with debug information. But it does not change anything - opencascade is huge and documentation is for math specialists, not for hobby users.
I don't have the math skills to understand docs or big parts from source code.
What I achieved is a result of tedious trial and error.
> If you have any questions just ask.
My non existant math skills is a problem for CavalierContours as well. I thought, I could get it, but opposite is true.
So I tried to achieve same thing like polylines from CavalieContours by using opencascade:
The trivial parts already work fine:
... but on creating toolpath based on user selection I'm stuck:
Do you know, how to extend the red wires on each end?
Attachments:
Please Log in or Create an account to join the conversation.
30 Mar 2022 18:44 #238790
by Grotius
Replied by Grotius on topic simple linux cam
Hi Reinhard,
documentation is for math specialists,
Not all opencascade math is usefull.
For example doing a 3d line - 3d arc intersection. I made a c++ header to find intersection points :
github.com/grotius-cnc/3d_intersection
For extending 3d lines or 3d arc's we can use math.
1. I could write a c++ header only function for extending a line or arc. This then could be used in a simple way.
Considering:
2. Another way is to write a header only interface that uses the Cavaliercontour operations for Occt.
I think using Cavaliercontours with Occt interface is a powerfull 2d offset solution. Wich can be used in a 3d plane.
Then your last picture example (where lines would be extended) would result in a pocket offset operation.
documentation is for math specialists,
Not all opencascade math is usefull.
For example doing a 3d line - 3d arc intersection. I made a c++ header to find intersection points :
github.com/grotius-cnc/3d_intersection
For extending 3d lines or 3d arc's we can use math.
1. I could write a c++ header only function for extending a line or arc. This then could be used in a simple way.
Considering:
2. Another way is to write a header only interface that uses the Cavaliercontour operations for Occt.
I think using Cavaliercontours with Occt interface is a powerfull 2d offset solution. Wich can be used in a 3d plane.
Then your last picture example (where lines would be extended) would result in a pocket offset operation.
Please Log in or Create an account to join the conversation.
30 Mar 2022 19:30 - 30 Mar 2022 22:06 #238806
by Grotius
Replied by Grotius on topic simple linux cam
This is a header file i just made for 3d line extend. Let me know if you can use this type of implementation?
Last edit: 30 Mar 2022 22:06 by Grotius.
Please Log in or Create an account to join the conversation.
30 Mar 2022 19:39 #238809
by Grotius
Replied by Grotius on topic simple linux cam
For the arc extension, would you like to input extension value in degrees or in mm?
Please Log in or Create an account to join the conversation.
30 Mar 2022 21:33 - 30 Mar 2022 21:45 #238833
by Grotius
Replied by Grotius on topic simple linux cam
Just made a header function to extend a arc in 3d.
Input is degrees to add for start or end point.Let me know if this is usable for you.
And the archive with complete code for above examples :
github.com/grotius-cnc/occt-samples-qope.../OcctQtGuiApp.tar.gz
Then to extend a wire. Use the "wire add" function. And add the exension.
BRepBuilderAPI_MakeWire wire;
TopoDS_Edge edge = BRepBuilderAPI_MakeEdge(Line or Arc);
wire.Add(edge);
return new AIS_Shape(wire);
Input is degrees to add for start or end point.Let me know if this is usable for you.
And the archive with complete code for above examples :
github.com/grotius-cnc/occt-samples-qope.../OcctQtGuiApp.tar.gz
Then to extend a wire. Use the "wire add" function. And add the exension.
BRepBuilderAPI_MakeWire wire;
TopoDS_Edge edge = BRepBuilderAPI_MakeEdge(Line or Arc);
wire.Add(edge);
return new AIS_Shape(wire);
Last edit: 30 Mar 2022 21:45 by Grotius.
Please Log in or Create an account to join the conversation.
31 Mar 2022 02:20 #238861
by Reinhard
Replied by Reinhard on topic simple linux cam
Hi grotius,
thank you for your attention and support!
> Then to extend a wire. Use the "wire add" function. And add the exension.
Great! Didn't thought of the most obvious solution. Thank you for the kick.
Using own math objects might be a good solution too. Maybe better than fiddling with opencascade objects.
I already tried similar by using CavalierContours. If you follow the link from CavalieContours from my last post, you'll see, where I got stuck with cc.
A big problem (for me) of opencascade is that so many methods (+ classes) don't do, what the name makes you expect.
Just selecting the same faces than with picture from last post only in different order result in completely different behaviour.
Still looking for a way to make opencascade do what I want.
When I ask opencascade for intersection of two shapes I get a bunch of unordered edges (AIS_Shape), which is based on some parametric Geom-class. When I ask occ for geom-object I get it together with the limits of the parameters and using D0 with some parameter gives the vertex points of the curve.
To sort those edges for cavaliercontours polyline you maybe need to flip the direction of an edge. The geom-classes have some Revert/Reverted methods, so I thought reverting a line that goes from A to B would lead to a line from B to A, but that's not true.
So - may be I should go for my own math objects and use occ for display only ...
thank you for your attention and support!
> Then to extend a wire. Use the "wire add" function. And add the exension.
Great! Didn't thought of the most obvious solution. Thank you for the kick.
Using own math objects might be a good solution too. Maybe better than fiddling with opencascade objects.
I already tried similar by using CavalierContours. If you follow the link from CavalieContours from my last post, you'll see, where I got stuck with cc.
A big problem (for me) of opencascade is that so many methods (+ classes) don't do, what the name makes you expect.
Just selecting the same faces than with picture from last post only in different order result in completely different behaviour.
Still looking for a way to make opencascade do what I want.
When I ask opencascade for intersection of two shapes I get a bunch of unordered edges (AIS_Shape), which is based on some parametric Geom-class. When I ask occ for geom-object I get it together with the limits of the parameters and using D0 with some parameter gives the vertex points of the curve.
To sort those edges for cavaliercontours polyline you maybe need to flip the direction of an edge. The geom-classes have some Revert/Reverted methods, so I thought reverting a line that goes from A to B would lead to a line from B to A, but that's not true.
So - may be I should go for my own math objects and use occ for display only ...
Attachments:
Please Log in or Create an account to join the conversation.
Moderators: Skullworks
Time to create page: 0.187 seconds