How to start
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
-
- Posts: 22
- Joined: Thu Sep 26, 2013 1:52 pm
Re: How to start
What is a postprocessor allowed to do/has access to?
Idea:
I have my
http://code.google.com/p/simplemultiaxiscam/
that can post-process a 3 axis toolpath to make a 4/5 axis toolpath that
follows the surface normal.
But it needs access to collision detection (including tool-shape),
machine geometry (what axis exists, min/max coordinates, what's the geometric axis of a rotary axis, is the 5th axis attached to the 4th),
modify the toolpath and access some device constraints.
Idea:
I have my
http://code.google.com/p/simplemultiaxiscam/
that can post-process a 3 axis toolpath to make a 4/5 axis toolpath that
follows the surface normal.
But it needs access to collision detection (including tool-shape),
machine geometry (what axis exists, min/max coordinates, what's the geometric axis of a rotary axis, is the 5th axis attached to the 4th),
modify the toolpath and access some device constraints.
-
- Posts: 40
- Joined: Sat Apr 28, 2012 10:41 am
- Location: Melbourne, Australia
Re: How to start
Hi Marcus,
I presume that you are asking this because you would like to integrate your project with this one. If so, then I imagine that your code would best sit between our TPG's and the Post-processor so that it only has to understand one input language (the python Toolpath) and can be used with any machines that we have a Post-processor for. This would probably be implemented as a TPG since it has access to all the inputs that you would need; we would only need to give it access to the Toolpath generated by an earlier TPG in the program so that yours could modify it.
An aside: your code is released under GPLv3 and this one is LGPL. This can be addressed by an exception/dual-licence on your code or you maintain a separate wrapper that implements an API that we present; your code and wrapper would be installed by the user as a separate package
Anyway, if this is your aim please let us know. Some details on the input/output languages your program uses would be useful; I noticed that your code had an STLModel so I guess your input geometry comes in that format. Does it take the 'toolpath' as 3-axis GCode and output 5-axis GCode?
Cheers
Andrew
Interesting project.aj5robinson wrote:http://code.google.com/p/simplemultiaxiscam/
Basically, the Post processor is responsible for converting the machine independent toolpath (we are using the python implementation that HeeksCNC uses) to a machine specific language such as a GCode variety. It is not meant to be compulationatlly heavy; that is reserved for the ToolPathGenerators.marcuswolschon wrote:What is a postprocessor allowed to do/has access to?
I presume that you are asking this because you would like to integrate your project with this one. If so, then I imagine that your code would best sit between our TPG's and the Post-processor so that it only has to understand one input language (the python Toolpath) and can be used with any machines that we have a Post-processor for. This would probably be implemented as a TPG since it has access to all the inputs that you would need; we would only need to give it access to the Toolpath generated by an earlier TPG in the program so that yours could modify it.
An aside: your code is released under GPLv3 and this one is LGPL. This can be addressed by an exception/dual-licence on your code or you maintain a separate wrapper that implements an API that we present; your code and wrapper would be installed by the user as a separate package
Anyway, if this is your aim please let us know. Some details on the input/output languages your program uses would be useful; I noticed that your code had an STLModel so I guess your input geometry comes in that format. Does it take the 'toolpath' as 3-axis GCode and output 5-axis GCode?
Cheers
Andrew
-
- Posts: 22
- Joined: Thu Sep 26, 2013 1:52 pm
Re: How to start
Input is 3-4 axis toolpath in a 5 axis data structure.
The output is then 4-5 axis. For a 5 axis toolpath you'd chain the postprocessor twice to solve the inverse kinematic for A and then for B.
My Toolpath-generation works by chaining very simple modules that take care of only one direction each. This way the code stays small and easy to understand.
The geometry data model is format agnostic. It does the collision test
(3D tool shape) but the return value of the hit-test is a triangle with U and V coordinates of the hit-point. It doesn't matter if this tesselation happens at runtime and the actual model uses a CSG model instead of triangles.
(I don't like meshes, they mess up all circles and organic shapes.)
Having this algorithm be a TPG that is a frontend for another TPG sounds like a good idea.
I have no problems with allowing LGPL for my intended FreeCAM code. I choose GPL3 to avoid companies incorporating the code into a sold CAM that is no longer avaliable to the public to read and modify the code.
I guess I'd have to repimplement everything in python (and learn more python) anyway.
The output is then 4-5 axis. For a 5 axis toolpath you'd chain the postprocessor twice to solve the inverse kinematic for A and then for B.
My Toolpath-generation works by chaining very simple modules that take care of only one direction each. This way the code stays small and easy to understand.
The geometry data model is format agnostic. It does the collision test
(3D tool shape) but the return value of the hit-test is a triangle with U and V coordinates of the hit-point. It doesn't matter if this tesselation happens at runtime and the actual model uses a CSG model instead of triangles.
(I don't like meshes, they mess up all circles and organic shapes.)
Having this algorithm be a TPG that is a frontend for another TPG sounds like a good idea.
I have no problems with allowing LGPL for my intended FreeCAM code. I choose GPL3 to avoid companies incorporating the code into a sold CAM that is no longer avaliable to the public to read and modify the code.
I guess I'd have to repimplement everything in python (and learn more python) anyway.
-
- Posts: 22
- Joined: Thu Sep 26, 2013 1:52 pm
Re: How to start
It's one month later.
What's the status?
Can I start implementing and testing a Tool Path Generator now or is the interface required still a work in progress?
What's the status?
Can I start implementing and testing a Tool Path Generator now or is the interface required still a work in progress?
-
- Posts: 12
- Joined: Thu Jun 06, 2013 12:16 am
Re: How to start
I'm certainly eager to see your code ported across to the CAM module but it's not ready yet. I've been working on the Settings classes. I have the C++ versions mostly done and am trying to get the Python interface to them together now (although that part is early days yet). My next step is to port the Tool library code from HeeksCNC into this. That code generates a TopoDS_Shape that represents the 3D solid of the tool based on the tool's various parameters. Hopefully you will be able to use that in part of your code but, as I said, I'm not there yet.
-
- Posts: 22
- Joined: Thu Sep 26, 2013 1:52 pm
Re: How to start
I guess not much has changed during november?
-
- Posts: 40
- Joined: Sat Apr 28, 2012 10:41 am
- Location: Melbourne, Australia
Re: How to start
A bit has changed but from a user point of view, 'not much' would a good assessment.marcuswolschon wrote:I guess not much has changed during november?
Re: How to start
Hello,
Just curious what is with the CAM development?
Just curious what is with the CAM development?
Last edited by Gegsite on Mon Jun 16, 2014 1:45 pm, edited 1 time in total.
-
- Posts: 20
- Joined: Sat Feb 22, 2014 10:11 pm
Re: How to start
It's true that not much has progressed. We started with a structure put together by Luke Parry (I think) and then some more of us got together and used a modified version of that structure to try to setup the workbench but it's still too complex. I'm eager to port some of the HeeksCNC code to this CAM workbench but it's still too confusing for me. Andrew Robinson and I will get together to see if we can simplify it but life gets in the way.
Re: How to start
Please ask in the relevant forum. This has nothing to do with the development of the CAM module.Gegsite wrote:(oh do we have a 14.04 ppa, because I did not find it)