Will MillMage provide support for an extension language?

Is support for some sort of extension (aka scripting) language coming?

I hope the answer is yes.

Lua seems to be supported by a number of other CNC CAD tools but other languages (eg python, javascript/ECMAscript, etc) would be acceptable.

Why am I asking? Several people have created modules for other CNC CAD tools and these modules are written in lua, python, etc. These modules can be used to handle cabinet design, guitar construction, etc.

Those modules likely were designed to interface with those other CAD/CAM applications. Even if MillMage allowed scripting, the interface would likely have to be rewritten for feeding information to MillMage. Otherwise what parameters are being passed would not necessarily align with the parameters expecting input.

It might be possible the output of the modules could be utilized as maybe SVG, STL, or DXF. If so, Millmage could import them into the design grid. Do you have a module we could experiment with, preferably Python?

The benefits that arise by having an extension language are many but it pretty much boils down to this: many people - lightburn employees and otherwise - are able to provide additional capabilities beyond what is offered by the core tool. These capabilities can be provided outside or, or on top of, the core MillMage tool.

For Vectric VCarve Pro and Aspire, they call these modules ā€˜gadgets’. You can perform a web search to find out more about VCarve gadgets.

Fusion 360 also offers Lua as an extension language. You can learn more about the Lua API provided by Fusion with a web search of <Fusion 360 lua>

Using Lua as an extension language is relatively straightforward, esp. if the core program is written in C or C++. I’d provide a link but the lightburn forum software only allows 2 links in a post.

FreeCAD provides python as an extension language. You can read more about it here: <run a web search for ā€˜FreeCAD python’> You can find a number of modules that have been written for FreeCAD; one of the more interesting modules for me is the guitar workbench:

By the way, if you want to expose a C++ program to python there are fairly modern ways to do that. For example, pybind11 is one tool I’ve seen people use. Beware: while you can generate an interface automatically using pybind11, I’ve found this to be a very heavy-weight approach. Your mileage may vary. If you are willing to take a bit more of an old-school approach, I suggest you have a look at swig.org It requires more effort to use swig than pybind11 but the results are more sleek and also more predictable (I think).

My interest in having an extension language is simple: I want modules to help me design/build guitars; I want cabinet-design modules to help me build kitchen cabinets (for the kitchen remodel I have planned for next year); I have some ideas that I want to explore for a rotary/4th axis feature of my CNC machine. I’m hoping to use modules others have created, to maybe write my own modules or to collaborate with others. etc, etc, etc.

I understand completely. You did not need to provide all those examples for my benefit because I know about most of them, but it is good that you did. Others may find it useful.

There is a platform for suggesting features to add to MillMage. The more votes it gets, the more likely it will percolate to the top of the priority list.

Thanks for the link… which I examined. An interesting set of ā€œwish listā€ items. I wish there was a way to classify/group the items, or to hide items that are planned or in progress.

Unfortunately, I tried to log in to make a comment or two but the system seems to lose the pass key obtained from the system. That’s a barrier I can’t overcome.

I have two items I’d really like to see in MillMage: 1, extension language support; 2, sqlite virtual table support. My schedule is fairly full, already, but I think I’ll try to write up a more detailed description and send this in to MillMage by email. They can add this to the fider system if they want (and I can avoid having to sign up for yet another system with its own password, etc.)

I think Fider is a separate login from Lightburn.

Then I read this.

Fider is indeed a separate system.