discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

rendering for paper assembly manual...

P
pierrepoulpe
Mon, Jan 16, 2017 10:06 AM

Hello,

I used openscad to design my new thing.
(To fix ideas, imagine 16 alu profile, ~30 small laser cuts, ~150
screws-nuts-rivet, ~10 parts from shelf)

I'm currently in the process of writing an assembly manual for the end user,
who will assemble everything.

I'd like to get something that looks like an ikea manual.
Kind of simplified wireframe perspective view, black&white optimized for
printing.

And I'd like to be able to modify my model and simply regenerate all the
assembly views as automated as possible.

I know that in openscad I can programmatically set a view (camera position &
direction, angle, etc...)

How would you do?
Play with openscad wireframe view, change the colors to just black and
white, and export bitmap?
Rotate the object, and make a projection, to export dxf?
Or export a 3D model, STL, or CSG, and process with an external tool, and
which one?

any idea, advice, experience feedback will be much appreciated, Pierre

--
View this message in context: http://forum.openscad.org/rendering-for-paper-assembly-manual-tp20108.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

Hello, I used openscad to design my new thing. (To fix ideas, imagine 16 alu profile, ~30 small laser cuts, ~150 screws-nuts-rivet, ~10 parts from shelf) I'm currently in the process of writing an assembly manual for the end user, who will assemble everything. I'd like to get something that looks like an ikea manual. Kind of simplified wireframe perspective view, black&white optimized for printing. And I'd like to be able to modify my model and simply regenerate all the assembly views as automated as possible. I know that in openscad I can programmatically set a view (camera position & direction, angle, etc...) How would you do? Play with openscad wireframe view, change the colors to just black and white, and export bitmap? Rotate the object, and make a projection, to export dxf? Or export a 3D model, STL, or CSG, and process with an external tool, and which one? any idea, advice, experience feedback will be much appreciated, Pierre -- View this message in context: http://forum.openscad.org/rendering-for-paper-assembly-manual-tp20108.html Sent from the OpenSCAD mailing list archive at Nabble.com.
TP
Torsten Paul
Mon, Jan 16, 2017 11:33 AM

Or export a 3D model, STL, or CSG, and process with
an external tool, and which one?

I'd probably try to go this way and export to Blender and
use the Freestyle renderer there.

ciao,
Torsten.

> Or export a 3D model, STL, or CSG, and process with > an external tool, and which one? > I'd probably try to go this way and export to Blender and use the Freestyle renderer there. ciao, Torsten.
P
Parkinbot
Mon, Jan 16, 2017 1:27 PM

You are tackling a problem I had many times, but never found enough reason to
go deeper into it and implement a solution. I think many people are
confronted with it and would appreciate to have some build-in function at
best, or at least a viable solution for this.

Let me sketch my approach, which is - no wonder - quite similar to the
algorithm I proposed to Jon in  the  flattening curved surfaces
http://forum.openscad.org/flattening-curved-surfaces-tp19727p19736.html
thread.
Jon wanted to unroll dominant surfaces of 3D objects (by the way, Jon, how
is your progress?) on 2D. For this he had to separate the model into a set
of surfaces. Using the assumption the surfaces are unrollable, it is enough
to test the scalar product of the normals of adjoint triags against a
threshold.

The same approach can be used to find the dominant "borders" of a surface.
In this case the unrollability assumption can be weakend into a "almost
unrollable" criterium, which (I hope: to Ronaldos relief) is exactly the
semantics of the threshold test. Let's draw "almost unrollable surfaces", by
skipping less important lines and staying in 3D.

So a "cheap" recipe could be: find all common edges of all adjoint triag
pairs, for which the threshold test fails and draw them on top of the model
similar to the visualisation in my  unrolling sufaces demo
http://forum.openscad.org/flattening-curved-surfaces-tp19727p19807.html  .

While this little helper is a someliner e.g. in Matlab, it is (again) beyond
the scope of OpenSCAD language as long as no import function for STL data is
available. Having this import function would serve many more requests - from
boundingboxes, calculating distortions, calculating testless unions and many
more.

So my question to the dev team would be: Is it planned, or are there any
objections I might have missed?

--
View this message in context: http://forum.openscad.org/rendering-for-paper-assembly-manual-tp20108p20110.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

You are tackling a problem I had many times, but never found enough reason to go deeper into it and implement a solution. I think many people are confronted with it and would appreciate to have some build-in function at best, or at least a viable solution for this. Let me sketch my approach, which is - no wonder - quite similar to the algorithm I proposed to Jon in the flattening curved surfaces <http://forum.openscad.org/flattening-curved-surfaces-tp19727p19736.html> thread. Jon wanted to unroll dominant surfaces of 3D objects (by the way, Jon, how is your progress?) on 2D. For this he had to separate the model into a set of surfaces. Using the assumption the surfaces are unrollable, it is enough to test the scalar product of the normals of adjoint triags against a threshold. The same approach can be used to find the dominant "borders" of a surface. In this case the unrollability assumption can be weakend into a "almost unrollable" criterium, which (I hope: to Ronaldos relief) is exactly the semantics of the threshold test. Let's draw "almost unrollable surfaces", by skipping less important lines and staying in 3D. So a "cheap" recipe could be: find all common edges of all adjoint triag pairs, for which the threshold test fails and draw them on top of the model similar to the visualisation in my unrolling sufaces demo <http://forum.openscad.org/flattening-curved-surfaces-tp19727p19807.html> . While this little helper is a someliner e.g. in Matlab, it is (again) beyond the scope of OpenSCAD language as long as no import function for STL data is available. Having this import function would serve many more requests - from boundingboxes, calculating distortions, calculating testless unions and many more. So my question to the dev team would be: Is it planned, or are there any objections I might have missed? -- View this message in context: http://forum.openscad.org/rendering-for-paper-assembly-manual-tp20108p20110.html Sent from the OpenSCAD mailing list archive at Nabble.com.
P
pierrepoulpe
Mon, Jan 16, 2017 1:43 PM

@tp3 : Thanks! Although I didn't know blender and it looks like an airliner
cockpit for beginner like me, I managed to find the three options to get
there :
http://forum.openscad.org/file/n20111/4.png

To be honest, the result is better than expected. :-)

Now I just have to found a way to render let's say 30 different views
without redoing everything 30 times.
But it's not anymore an openscad issue....

@Parkinbot, I must admit your approach is not very clear to me, but anyway,
thanks.

--
View this message in context: http://forum.openscad.org/rendering-for-paper-assembly-manual-tp20108p20111.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

@tp3 : Thanks! Although I didn't know blender and it looks like an airliner cockpit for beginner like me, I managed to find the three options to get there : <http://forum.openscad.org/file/n20111/4.png> To be honest, the result is better than expected. :-) Now I just have to found a way to render let's say 30 different views without redoing everything 30 times. But it's not anymore an openscad issue.... @Parkinbot, I must admit your approach is not very clear to me, but anyway, thanks. -- View this message in context: http://forum.openscad.org/rendering-for-paper-assembly-manual-tp20108p20111.html Sent from the OpenSCAD mailing list archive at Nabble.com.
J
jon
Mon, Jan 16, 2017 1:48 PM

Interesting approach!

Parkinbot: I got distracted.  Still on the list, just not at the top.
Thanks for the prod!

On 1/16/2017 8:27 AM, Parkinbot wrote:

You are tackling a problem I had many times, but never found enough reason to
go deeper into it and implement a solution. I think many people are
confronted with it and would appreciate to have some build-in function at
best, or at least a viable solution for this.

Let me sketch my approach, which is - no wonder - quite similar to the
algorithm I proposed to Jon in  the  flattening curved surfaces
http://forum.openscad.org/flattening-curved-surfaces-tp19727p19736.html
thread.
Jon wanted to unroll dominant surfaces of 3D objects (by the way, Jon, how
is your progress?) on 2D. For this he had to separate the model into a set
of surfaces. Using the assumption the surfaces are unrollable, it is enough
to test the scalar product of the normals of adjoint triags against a
threshold.

The same approach can be used to find the dominant "borders" of a surface.
In this case the unrollability assumption can be weakend into a "almost
unrollable" criterium, which (I hope: to Ronaldos relief) is exactly the
semantics of the threshold test. Let's draw "almost unrollable surfaces", by
skipping less important lines and staying in 3D.

So a "cheap" recipe could be: find all common edges of all adjoint triag
pairs, for which the threshold test fails and draw them on top of the model
similar to the visualisation in my  unrolling sufaces demo
http://forum.openscad.org/flattening-curved-surfaces-tp19727p19807.html  .

While this little helper is a someliner e.g. in Matlab, it is (again) beyond
the scope of OpenSCAD language as long as no import function for STL data is
available. Having this import function would serve many more requests - from
boundingboxes, calculating distortions, calculating testless unions and many
more.

So my question to the dev team would be: Is it planned, or are there any
objections I might have missed?

--
View this message in context: http://forum.openscad.org/rendering-for-paper-assembly-manual-tp20108p20110.html
Sent from the OpenSCAD mailing list archive at Nabble.com.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


No virus found in this message.
Checked by AVG - www.avg.com
Version: 2016.0.7996 / Virus Database: 4749/13780 - Release Date: 01/16/17

Interesting approach! Parkinbot: I got distracted. Still on the list, just not at the top. Thanks for the prod! On 1/16/2017 8:27 AM, Parkinbot wrote: > You are tackling a problem I had many times, but never found enough reason to > go deeper into it and implement a solution. I think many people are > confronted with it and would appreciate to have some build-in function at > best, or at least a viable solution for this. > > Let me sketch my approach, which is - no wonder - quite similar to the > algorithm I proposed to Jon in the flattening curved surfaces > <http://forum.openscad.org/flattening-curved-surfaces-tp19727p19736.html> > thread. > Jon wanted to unroll dominant surfaces of 3D objects (by the way, Jon, how > is your progress?) on 2D. For this he had to separate the model into a set > of surfaces. Using the assumption the surfaces are unrollable, it is enough > to test the scalar product of the normals of adjoint triags against a > threshold. > > The same approach can be used to find the dominant "borders" of a surface. > In this case the unrollability assumption can be weakend into a "almost > unrollable" criterium, which (I hope: to Ronaldos relief) is exactly the > semantics of the threshold test. Let's draw "almost unrollable surfaces", by > skipping less important lines and staying in 3D. > > So a "cheap" recipe could be: find all common edges of all adjoint triag > pairs, for which the threshold test fails and draw them on top of the model > similar to the visualisation in my unrolling sufaces demo > <http://forum.openscad.org/flattening-curved-surfaces-tp19727p19807.html> . > > While this little helper is a someliner e.g. in Matlab, it is (again) beyond > the scope of OpenSCAD language as long as no import function for STL data is > available. Having this import function would serve many more requests - from > boundingboxes, calculating distortions, calculating testless unions and many > more. > > So my question to the dev team would be: Is it planned, or are there any > objections I might have missed? > > > > > > > > > > -- > View this message in context: http://forum.openscad.org/rendering-for-paper-assembly-manual-tp20108p20110.html > Sent from the OpenSCAD mailing list archive at Nabble.com. > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > > > > ----- > No virus found in this message. > Checked by AVG - www.avg.com > Version: 2016.0.7996 / Virus Database: 4749/13780 - Release Date: 01/16/17 > >
P
Parkinbot
Mon, Jan 16, 2017 1:54 PM

pierrepoulpe wrote

@Parkinbot, I must admit your approach is not very clear to me, but
anyway, thanks.

Sorry, it was not so much meant as immediate solution or direct answer to
your question, more as a feature request to bring some more functionality
(e.g. your helper function) into OpenSCAD on the longer run ;-)

--
View this message in context: http://forum.openscad.org/rendering-for-paper-assembly-manual-tp20108p20113.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

pierrepoulpe wrote > @Parkinbot, I must admit your approach is not very clear to me, but > anyway, thanks. Sorry, it was not so much meant as immediate solution or direct answer to your question, more as a feature request to bring some more functionality (e.g. your helper function) into OpenSCAD on the longer run ;-) -- View this message in context: http://forum.openscad.org/rendering-for-paper-assembly-manual-tp20108p20113.html Sent from the OpenSCAD mailing list archive at Nabble.com.
R
Ronaldo
Mon, Jan 16, 2017 2:46 PM

@Parkinbot

I haven't understood your approach either. Maybe you are trying to find the
silhouette edges of the model seeing from a point of view.

Regarding "import function for STL data": this is a reiterate
question/feature request here. I myself asked in a recent thread why
bounding box functions (which are computed by resize(), for instance) is not
available in code level. Torsten answer that: " internally the geometry will
be known, there's currently no
means to communicate this information to the back to the script." So, I
understand it as a language limitation: there is no way a function can
receive a model as input in the current language. It will be easy in
OpenSCAD2 though.

--
View this message in context: http://forum.openscad.org/rendering-for-paper-assembly-manual-tp20108p20115.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

@Parkinbot I haven't understood your approach either. Maybe you are trying to find the silhouette edges of the model seeing from a point of view. Regarding "import function for STL data": this is a reiterate question/feature request here. I myself asked in a recent thread why bounding box functions (which are computed by resize(), for instance) is not available in code level. Torsten answer that: " internally the geometry will be known, there's currently no means to communicate this information to the back to the script." So, I understand it as a language limitation: there is no way a function can receive a model as input in the current language. It will be easy in OpenSCAD2 though. -- View this message in context: http://forum.openscad.org/rendering-for-paper-assembly-manual-tp20108p20115.html Sent from the OpenSCAD mailing list archive at Nabble.com.
R
Ronaldo
Mon, Jan 16, 2017 2:50 PM

pierrepoulpe wrote

@tp3 : Thanks! Although I didn't know blender and it looks like an
airliner cockpit for beginner like me,

I managed to find the three options to get there

:

Could you share them?

--
View this message in context: http://forum.openscad.org/rendering-for-paper-assembly-manual-tp20108p20116.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

pierrepoulpe wrote > @tp3 : Thanks! Although I didn't know blender and it looks like an > airliner cockpit for beginner like me, * > I managed to find the three options to get there * > : Could you share them? -- View this message in context: http://forum.openscad.org/rendering-for-paper-assembly-manual-tp20108p20116.html Sent from the OpenSCAD mailing list archive at Nabble.com.
WA
William Adams
Mon, Jan 16, 2017 2:52 PM

If you're inclined to shift gears a bit --- curious as to what people think
of the assembly approach which was used on the Shapeoko 2 manual:

http://shapeoko.github.io/Docs/content/tPictures/PS20028-100.svg

If you open that in a browser you can click on the part # list to highlight
the parts.

William

On Mon, Jan 16, 2017 at 8:54 AM, Parkinbot rudolf@parkinbot.com wrote:

pierrepoulpe wrote

@Parkinbot, I must admit your approach is not very clear to me, but
anyway, thanks.

Sorry, it was not so much meant as immediate solution or direct answer to
your question, more as a feature request to bring some more functionality
(e.g. your helper function) into OpenSCAD on the longer run ;-)

--
View this message in context: http://forum.openscad.org/
rendering-for-paper-assembly-manual-tp20108p20113.html
Sent from the OpenSCAD mailing list archive at Nabble.com.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

If you're inclined to shift gears a bit --- curious as to what people think of the assembly approach which was used on the Shapeoko 2 manual: http://shapeoko.github.io/Docs/content/tPictures/PS20028-100.svg If you open that in a browser you can click on the part # list to highlight the parts. William On Mon, Jan 16, 2017 at 8:54 AM, Parkinbot <rudolf@parkinbot.com> wrote: > pierrepoulpe wrote > > @Parkinbot, I must admit your approach is not very clear to me, but > > anyway, thanks. > > Sorry, it was not so much meant as immediate solution or direct answer to > your question, more as a feature request to bring some more functionality > (e.g. your helper function) into OpenSCAD on the longer run ;-) > > > > -- > View this message in context: http://forum.openscad.org/ > rendering-for-paper-assembly-manual-tp20108p20113.html > Sent from the OpenSCAD mailing list archive at Nabble.com. > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >
P
pierrepoulpe
Mon, Jan 16, 2017 3:25 PM

Of course (and it's a note to myself in the same time, good idea) :

after deleting default cube, importing your stl, set your view, ctlr+alt+0
to set the camera view.

In World properties, change "Horizon color" to white
In Render tab
resolution 1920x100 100%
check "Freestyle"
In Render layers tab :
under 'layer', uncheck solid
under 'freestyle line style, thickness at 1.5

Render...

That should be enough.

--
View this message in context: http://forum.openscad.org/rendering-for-paper-assembly-manual-tp20108p20118.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

Of course (and it's a note to myself in the same time, good idea) : after deleting default cube, importing your stl, set your view, ctlr+alt+0 to set the camera view. In World properties, change "Horizon color" to white In Render tab resolution 1920x100 100% check "Freestyle" In Render layers tab : under 'layer', uncheck solid under 'freestyle line style, thickness at 1.5 Render... That should be enough. -- View this message in context: http://forum.openscad.org/rendering-for-paper-assembly-manual-tp20108p20118.html Sent from the OpenSCAD mailing list archive at Nabble.com.