How to start

Here's the place for discussion related to CAM/CNC and the development of the Path module.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
marcuswolschon
Posts: 22
Joined: Thu Sep 26, 2013 1:52 pm

Re: How to start

Post by marcuswolschon »

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.
aj5robinson
Posts: 40
Joined: Sat Apr 28, 2012 10:41 am
Location: Melbourne, Australia

Re: How to start

Post by aj5robinson »

Hi Marcus,
Interesting project.
marcuswolschon wrote:What is a postprocessor allowed to do/has access to?
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.

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
marcuswolschon
Posts: 22
Joined: Thu Sep 26, 2013 1:52 pm

Re: How to start

Post by marcuswolschon »

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.
marcuswolschon
Posts: 22
Joined: Thu Sep 26, 2013 1:52 pm

Re: How to start

Post by marcuswolschon »

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?
david-nicholls
Posts: 12
Joined: Thu Jun 06, 2013 12:16 am

Re: How to start

Post by david-nicholls »

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.
marcuswolschon
Posts: 22
Joined: Thu Sep 26, 2013 1:52 pm

Re: How to start

Post by marcuswolschon »

I guess not much has changed during november?
aj5robinson
Posts: 40
Joined: Sat Apr 28, 2012 10:41 am
Location: Melbourne, Australia

Re: How to start

Post by aj5robinson »

marcuswolschon wrote:I guess not much has changed during november?
A bit has changed but from a user point of view, 'not much' would a good assessment.
User avatar
Gegsite
Posts: 11
Joined: Mon Jun 16, 2014 6:21 am
Location: Hungary
Contact:

Re: How to start

Post by Gegsite »

Hello,

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.
DavidNicholls
Posts: 20
Joined: Sat Feb 22, 2014 10:11 pm

Re: How to start

Post by DavidNicholls »

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.
User avatar
NormandC
Veteran
Posts: 18589
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: How to start

Post by NormandC »

Gegsite wrote:(oh do we have a 14.04 ppa, because I did not find it)
Please ask in the relevant forum. This has nothing to do with the development of the CAM module.
Post Reply