bsuter ben.suter at gmail.com
Thu Jun 2 08:11:46 EDT 2016

```Dear Rudolf, thank you for this info - it may take me some time to
fully understand, I'll try.

> A similar problem, doing a union() of a large number of cylinder and sphere
> primitives is currently discussed here.
> CGAL rendering is not very efficient when (very) large numbers of shapes
> come into play.

In that post you wrote "A single sweep() along a smoothed trajectory
will be faster than a union of cylinders and spheres describing the
terms, by "single sweep() along a smoothed trajectory"? This sounds
useful. Certainly each of my branches can be modeled as a sequence of
nodes, where each node has an associated radius. Is there a way to
represent this directly in OpenSCAD? I.e. to specify a trajectory in
3D, and then extrude (ideally a circular cross-section, but a polygon
would work too) along this trajectory, with the extrusion radius
defined at each node?

Essentially this is what I tried to mimic using cylinder primitives
(and spheres at the nodes, to fill in the gaps between cylinder ends).

> I've implemented some Matlab class to generically describe arteries with an
> interpolation scheme. The output is a winding 'wire' in 3D with free radius
> a each point in STL-format.

This part I seem to understand. Arteries are quite similar, in the
present context, to dendritic arbors - tapered cylinders with branch
points. Ultimately all I want is STL. In my own Matlab code I am able
to generate a reasonable 3D figure (by using the cylinder() function
and, after some manipulations, passing the results to the surf()
function). I've toyed with the idea of instead taking the cylinder()
output (basically the vertices at the bottom and top edge of the
cylinder) and using these to generate a tessellated surface in STL
syntax. As long as I use a fixed # of vertices for all cylinders,
connecting the top of one to the base of the next via triangles should
be quite doable.

> In lack of an own union or furcation operator
> capable to do the intersection triangulation we currently use OpenSCAD and
> Blender to compose porperly placed wires into tree structures which we again
> cut into puzzle pieces for 3D print.

This part I don't understand ;(

> You might be interested for inspiration or even build on at least part of
> the code (in a non-commercial way), e.g. to implement this 'little' details
> on your own. Send me a PM to get in further touch.
Thank you!

> I imagine some tree class, allowing for a (recursive) generic description of
> path points with radii that can render its objects to STL. In your case, I
> guess, you will add a net class to connect those tree objects formally into
> a network to do functional simulation.

Such a class would be quite useful - seemingly to a variety of problem domains.

For functional simulations, the format we already use is quite
suitable (it's called SWC; a list of tuples, each tuple has <ID, type,
x, y, z, r, parent>) and widely used (see neuromorpho database if
curious).

My main goal is (a) virtual reality visualization of many neurons
together, and (b) 3D printing of individual neurons. For the latter,
there's a nice paper, but the code there is implemented within a
simulation environment (NEURON) and does not fit well with my current
pipeline.

McDougal, R. A. and G. M. Shepherd (2015). 3D-printer visualization of
neuron models. Frontiers in neuroinformatics 9.

> OpenSCAD or any other CAD-Programm could be used to provide the final
> union() operation connecting some number of precompiled trees (neurons) into
> a printable unit. I wouldn't advise to do the programming natively in
>
>
> Rudolf
>
>
>
> ________________________________
> below:
> NAML

--
View this message in context: http://forum.openscad.org/STL-without-render-tp17503p17526.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...