Just came across this:
Good find!
Looks like a very good tool.
It has a python console and a gcode library? I’m thinking that this would be a good fit for pythonSCAD.
- I do all my original 2d design in scad… It’s not just for 3d stuff.
Edit: EG:
A workflow of scad design+visualisation, path generation+visualisation, then gcode generation, viewng and checking; then sending…
All driven from a Python console…
Am I alone in thinking we have all the parts to work towards this now? PythonSCAD, Path libs, Gcode libs… ?
That’s an interesting question.
Not sure what the developer’s long-term plans are — a further consideration is how any added complexity would affect this being integrated into the OpenSCAD project as a whole — we’ll see what the developer thinks.
I must confess I’m thinking of something new.
TL;DR brainfart…
Eg a python based UI to bring together all these disparate things.
A console and editor panel where you can script, import and edit python (and scad?) files, and a 3d viewer for previewing the results.
The resulting objects then get processed using the path generators, and the resulting paths also displayed and previewed in the 3d viewer.
These paths are then turned into toolpaths (with offsets, passes, travel moves, power factors and cut depths applied.
Finally those toolpaths are converted to Gcode; with flavors for different machines and wrappers, macros, templates etc as needed.
A seperate ‘machine’ tab / window allows selecting speeds, tools, defaults, etc… One that also includes machine control and a local gcode sender.
Finally an exporter for the resultant code. Either export to a local sender, file, or direct to a remote webUI (eg FluidNC, Duet3D, etc).
[edit: I just expanded the above… what I am actually describing is the same as the way LaserWeb breaks these steps down internally.]
You also need to be able to import and process raw SVG’s and DXF’s to their component paths (It should be possible to do this using the existing SCAD importers and then manipulate the results as needed…)
And, to make it properly useful it also needs to be able to import and process images to raster maps, and turn these to toolpaths. Being able to vectorize bitmaps would be a big plus too.
There are a dozen other points that occur… notice I say ‘3d’, since it should do both 2d design and cutting (laser, knife, etc) and 3d design and milling operations.
None of this is ‘easy’, but it seems possible. There are libraries and tools for pretty much everything needed above. I’m not sure I could take it on though; I’m overwhelmed by stuff as it is.
There is, of course, all the work @WillAdams is doing on gcodepreview, and other python path libs exist.
I’m sort of thinking the input side should be very ‘source agnostic’, based on plugin modules, for pythonSCAD, openSCAD. raw DXF/SVG/(corel??), FreeCAD, and anything else that has a python library which produces paths.
There are a bunch of tools in this space:
- bCNC has a Python-scripting mode already
- GrblGru (not opensource) is amazing in what it can do, and unique in its approach
- CAMotics/tplang seems quite promising, but doesn’t support G53 and has a reputation (not sure if deserved or no) for being buggy, possibly because of the limited G-code support
- SketchNC from the NCPlot folks seems moribund
- FreeCAD’s workbenches seem an area ripe for development — notably at least one project started there, but then escaped to become a stand-alone thing (CADquery)
- even Inkscape has a scripting mode
The thing is, as soon as one opens up to general programming, one can do pretty much anything which was why the page I had on this on the old Shapeoko wiki got to be such a mess (that and the fact that there was an endless stream of Python projects making OpenSCAD code).
I think we should fork this off as a new discussion where we begin with two separate surveys:
- an overview of what has been developed thus far
- a list of the ideal features/capabilities
and see how things line up.