<p>While this is probably (?) not suitable for the Thingiverse customizer, OpenSCAD has a decent <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Using_OpenSCAD_in_a_command_line_environment#Makefile_example" rel="nofollow noreferrer">Makefile support</a>. In <a href="https://github.com/vwegert/Deltonator" rel="nofollow noreferrer">a project I am currently working on</a>, 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 <code>import</code> the individual rendered STL files (in my case, always through some wrapper module for coloring and BOM generation).</p>

CC BY-SA 3.0
2016-12-13T14:32:14.760Z
I'll have to investigate a bit and find out!
William M-B
CC BY-SA 3.0
2016-12-13T06:33:41.890Z
2016-12-13T06:33:41.890Z
vwegert
<p>I'll offer up the following options, without waiting for an answer to my question.</p>

<p>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.</p>

<p>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.</p>

<p>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.</p>

<p>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.</p>

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

<p>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.</p>

<p>Meshmixer, like OpenSCAD is free. I use both and approve this message.</p>

CC BY-SA 3.0
2016-12-12T22:43:05.247Z
That's a fantastic idea - my actual concept is deeper in design, it's a customizable figure generator based on a STL parts library.
William M-B
CC BY-SA 3.0
2016-12-12T22:46:49.193Z
I hope you'll toss a link here when you get the coding figured out.
fred_dot_u
CC BY-SA 3.0
2016-12-12T23:24:32.383Z
Certainly shall!
William M-B
CC BY-SA 3.0
2016-12-12T21:43:34.310Z
2016-12-12T21:43:34.310Z
fred_dot_u
<p>What resources or methods would OpenSCAD users suggest to piece together disparate STL files?</p>

<p>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.</p>

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

CC BY-SA 3.0
2016-12-12T21:35:00.070Z
Are you restricting yourself to using OpenSCAD to accomplish this assembly process?
fred_dot_u
CC BY-SA 3.0
2016-12-12T22:39:19.653Z
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.
William M-B
CC BY-SA 3.0
2016-12-12T22:45:40.893Z
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.
fred_dot_u
CC BY-SA 3.0
2016-12-12T23:22:11.237Z
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.
William M-B
<3d-models><cad><open-source>
Resources/methods to construct STL files using disparate parts using OpenSCAD
William M-B
# Resources/methods to construct STL files using disparate parts using OpenSCAD

(Asked by: username_0 on 2016-12-12)

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.

**Tags:** 3d-models, cad, open-source

> **Comments:**
> **username_1**: Are you restricting yourself to using OpenSCAD to accomplish this assembly process?  
> **username_0**: 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.  
> **username_1**: 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.  
> **username_0**: 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.  

---

## 2 answers

### Answer by username_2 on 2016-12-13. Score: 2

While this is probably (?) not suitable for the Thingiverse customizer, OpenSCAD has a decent [Makefile support](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Using_OpenSCAD_in_a_command_line_environment#Makefile_example). In [a project I am currently working on](https://github.com/username_2/Deltonator), 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).

> **Comments:**
> **username_0**: I'll have to investigate a bit and find out!  

---

### Answer by username_1 on 2016-12-12. Score: 2

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.

> **Comments:**
> **username_0**: That's a fantastic idea - my actual concept is deeper in design, it's a customizable figure generator based on a STL parts library.  
> **username_1**: I hope you'll toss a link here when you get the coding figured out.  
> **username_0**: Certainly shall!  

---

