I am wondering if it would be possible to adapt some of the path modules (specifically pocketing) for conversational use on controllers running linuxcnc or similar software?
More or less, instead of picking geometry representing a pocket in freecad, you would define a few basic parameters (pocket size and corner radius, depth, cutter diameter, feedrate/rpm, and distance from machine origin) on your cnc controller. These parameters are then fed into the TPG for solving (it may have to create geometry internally at this point, but I am not 100% sure what kind of object it requires).
Is this something that would be possible/not unreasonably difficult? As of right now I don't really know the inner workings of the path module, though it is something I would like to learn.
Path Conversational Possible?
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Re: Path Conversational Possible?
Are you familiar with NativeCAM as an add-on to LinuxCNC? Sounds very similar to what you want.
https://forum.linuxcnc.org/nativecam
Gene
https://forum.linuxcnc.org/nativecam
Gene
Re: Path Conversational Possible?
Gene,
I am somewhat familiar with native cam, I regularly use pathpilots conversational programming (which I believe is nativecam in a pathpilot wrapper, or at least very similar).
I want to take a look at adapting freecads path modules because they seem to be more developed than those in native cam. They are also fairly proven with more complex geometry. So If you wanted to work directly from an imported dxf, they might be better equipped to handle it. Whether or not its possible to make it work, I do not know.
One particular area of interest is the adaptive type pocketing. While not its intended purpose, I think that it would be excellent for a 2 axis bridgeport type cnc machine because you can cut the entire pocket in a single step (requiring only a pre drilled start hole instead of a helix entry), which is ideal when you do not have a cnc z axis.
I am somewhat familiar with native cam, I regularly use pathpilots conversational programming (which I believe is nativecam in a pathpilot wrapper, or at least very similar).
I want to take a look at adapting freecads path modules because they seem to be more developed than those in native cam. They are also fairly proven with more complex geometry. So If you wanted to work directly from an imported dxf, they might be better equipped to handle it. Whether or not its possible to make it work, I do not know.
One particular area of interest is the adaptive type pocketing. While not its intended purpose, I think that it would be excellent for a 2 axis bridgeport type cnc machine because you can cut the entire pocket in a single step (requiring only a pre drilled start hole instead of a helix entry), which is ideal when you do not have a cnc z axis.
- sliptonic
- Veteran
- Posts: 3459
- Joined: Tue Oct 25, 2011 10:46 pm
- Location: Columbia, Missouri
- Contact:
Re: Path Conversational Possible?
The 'conversational CAM' I'm familiar with seems to presume a close communication between CAM logic and machine controller. To calculate a toolpath, the CAM needs information about the state of the machine that can't be known otherwise.
Also, they seem to be limited to glorified macros for basic pocketing, profiling drilling of simple shapes. Good for bolt-holes and stock prep.
Is this what you have in mind? If so, how to you plan to establish communication between Path and Linuxcnc? If not, can you describe better what you have in mind?
Also, they seem to be limited to glorified macros for basic pocketing, profiling drilling of simple shapes. Good for bolt-holes and stock prep.
Is this what you have in mind? If so, how to you plan to establish communication between Path and Linuxcnc? If not, can you describe better what you have in mind?
Re: Path Conversational Possible?
Another option might be to use the standard FreeCAD gcode output and insert a pause whenever you need to manually change the z-position. I presume this would only be for entering and exiting each pocket.
LinuxCNC does not really know what the machine is doing unless you have a feedback loop from an encoder or similar. The simple implementations do not know if the machine has actually moved or not. False z-moves in the g-code would just be ignored.
I have not tried this, so it may be crazy. Worth some thought at least.
Gene
LinuxCNC does not really know what the machine is doing unless you have a feedback loop from an encoder or similar. The simple implementations do not know if the machine has actually moved or not. False z-moves in the g-code would just be ignored.
I have not tried this, so it may be crazy. Worth some thought at least.
Gene
Re: Path Conversational Possible?
This is kind of how I would think it could work. The major benefits of doing it this way would be the ability to generate more advanced toolpaths (adaptive, zigzag, etc) conversationally and it would allow you to do much more complex shapes since you are now solving using geometry instead of purely theoretical offsets.
I think that the changes described for the linux cnc side I could do on my own with time. What I am unsure of is the path side of things, from what I could find there is not a lot of information published on how it works.
For reference, I also snapped a few pictures of programming conversational right on the machine.
I think that the changes described for the linux cnc side I could do on my own with time. What I am unsure of is the path side of things, from what I could find there is not a lot of information published on how it works.
For reference, I also snapped a few pictures of programming conversational right on the machine.
- shadowbane1000
- Posts: 10
- Joined: Wed Jan 20, 2021 10:45 pm
Re: Path Conversational Possible?
Axis for Linux CNC supports (used to a few years ago anyway) loading a python file directly instead of a gcode file. It expects the py file to be executed and output gcode. I have used that before for conversational stuff (just a little script I hacked together for something). It can display a gui and take input before generating gcode. It was very simple to use, and for basic stuff, you don't need much of a UI. Just a few text fields to control what the script outputs. I used TK to prompt the user for the few values it needed.
Might be more applicable than trying to repurpose code deisgned to access a CAD model.
Might be more applicable than trying to repurpose code deisgned to access a CAD model.
Cincinnati Lamb VCNC 500 3 axis w/Fanuc 21i-MB 11hp
MightyMouse DIY 3 axis w/LinuxCNC 2hp
MightyMouse DIY 3 axis w/LinuxCNC 2hp