What resources or methods would OpenSCAD users suggest to piece together disparate STL files?

I'd like to take an existing STL model-library of STL parts (head, torso, arms, legs) and make it a Thingiverse OpenSTL maker, similar to the castle generator and/or the puzzle generators available.

This way, users can generate a custom model using the designated parameters and download the model for printing.

  • $\begingroup$ Are you restricting yourself to using OpenSCAD to accomplish this assembly process? $\endgroup$ – fred_dot_u Dec 12 '16 at 21:35
  • $\begingroup$ I am currently restricting to OpenSCAD because I can import my OpenSCAD 'framework' and parts into Thingiverse and make this tool easily accessible to the open-source 3D print community. I realized I wasn't clear enough in my original post about the concept - I'll clarify. $\endgroup$ – William M-B Dec 12 '16 at 22:39
  • $\begingroup$ That's an interesting and admirable objective. I'll drop back to my answer posted below and suggest that the parametric manipulation of translate and rotate may give you the desired results. You would have to be certain to create appropriate parameters to be passed to the modules when combined. If you create a figure of x total height, the individual components would translate to x, x + part 1, x + part 2 or something similar. I like OpenSCAD, but I'm a mediocre coder. Perhaps your strengths are greater than mine. $\endgroup$ – fred_dot_u Dec 12 '16 at 22:45
  • $\begingroup$ I think that the project hinges on fairly standard dimensions. If I can build a set of OpenSCAD files that have a series of fixed positions, and I can prepare a series of model parts that can (essentially) be modular, this will work. $\endgroup$ – William M-B Dec 12 '16 at 23:22

I'll offer up the following options, without waiting for an answer to my question.

One can import a specific STL file into OpenSCAD and perform rotation, translation and scale, but it would be "clunky" as you'd be making miniscule changes to the parameters for those actions. Each imported object would have to be manipulated individually via the changes in the code. If your imported objects have quantifiable dimensions, that is, if you know specific measurements, you would have an easier time of the project.

If you are not limiting yourself to OpenSCAD, I'd recommend the easy-to-use MeshMixer. I recently "assembled" the parts of a cosplay "weapon" for a friend. All the parts were individual STL files and were positioned in 3-space using MeshMixer to make the parts appear as if the project were printed and assembled.

The transform tool in Meshmixer is a graphic three-arrow/three-axis manipulator icon. Grab an arrow tip and the model moves in the direction of the drag. Grab an arc between two arrows and the model rotates. If you want five degree rotation increments, move the mouse outward after the grab and get a calibration circle. When the mouse is on the circle, you get snaps to five degrees. If you need smaller movement, move the mouse out even farther from the center.

The 3-space presented in Meshmixer gives you the ability to align pieces/parts in all three dimensions, to your satisfaction. There is a model hide and a model-ghost feature as well, to assist the placement.

I expect that one could use a program such as Blender, but the learning curve is more like a chasm or cliff-face.

One could use an engineering-focus program such as SolidWorks, Fusion 360 and so many others, but I think your head, arms, legs, torso reference means you aren't using orthogonal models more suited to those programs.

Meshmixer, like OpenSCAD is free. I use both and approve this message.

  • $\begingroup$ That's a fantastic idea - my actual concept is deeper in design, it's a customizable figure generator based on a STL parts library. $\endgroup$ – William M-B Dec 12 '16 at 22:43
  • $\begingroup$ I hope you'll toss a link here when you get the coding figured out. $\endgroup$ – fred_dot_u Dec 12 '16 at 22:46
  • $\begingroup$ Certainly shall! $\endgroup$ – William M-B Dec 12 '16 at 23:24

While this is probably (?) not suitable for the Thingiverse customizer, OpenSCAD has a decent Makefile support. In a project I am currently working on, I have a set of include files that start off with some configurable parameters, then provide some computed dimensions based on these parameters which are then used to render the individual components. Through the Makefile/.deps mechanism, the system keeps track of which component .scad file is influenced by which settings file and automatically rebuilds the parts that might be affected. (Note that the .deps files are not checked into the repository.) In the assembled model, I merely import the individual rendered STL files (in my case, always through some wrapper module for coloring and BOM generation).

  • $\begingroup$ I'll have to investigate a bit and find out! $\endgroup$ – William M-B Dec 13 '16 at 14:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.