Parametizer tool

Parametizer workflow

This is a tool that I've written to help parameterize a polygon mesh back to format that's usable for CAD modelling.

Typically, it's used when you only have a STL file of some model and want to apply some modification to it without having to model the same object from scratch completely again. It can be used to measure features out of a STL model, build up sketches and in the future, rebuild a stack of functions to apply to the sketches to get the initial object.

How does it work ?

Please have a look to the picture above.

  1. You start from the STL model (on the left in the picture above)
  2. The tool will find out polygonal primitives that lies on planes.
  3. It's extracting the planes' sides (exterior and interior to the plane).
  4. It then characterizes the sides into either a polygon or an arc (in the middle of the picture above).
  5. (optional/not functional yet) It also find out fillets/chamfer and removes them
  6. Then it produces a sketch with constraints from each interesting plane in the model that you can export (on the right of the picture above)

Demo

Go there for a demo of this tool online.

Limitations

Many of the algorithms used by this tools are made without any consideration for speed but correctness and ease of development instead. As far as I know, there isn't any open standard parametric CAD format. FreeCAD is open source, but its file format is not documented. So exporting of sketches is done in SVG right now, although you can't import them in FreeCAD.

Optimization might come later when I'm done with all the ideas of improvement of features.

The project is plugin based, so it'll likely be improved step by step.

The sketcher is using canvas (and also SVG) to draw the model to sketches. My canvas skills are limited so there might be bugs in the output drawn.

I'm planning to improve the tool by adding and fixing plugins in a rolling release fashion.

Right now, the tool is not open source (well, it's javascript, anyway), and I'll probably make it open source in the future if the demand is high enough. I've spent a lot of time developing it and I find it useful so there might be multiple version with a commercial closed source version and a community free open source version.

Article précédent