I've been doing some work with OpenSCAD, and am finding myself wanting
some sort of enhancement to the UI so I could at least identify wall
sections arbitrarily thinner than some width (measured from normal to
normal). While I guess a tool to highlight these with an STL, I think
having it in the preview mode would be extremely helpful to designers.
Anyone know offhand if this kind of information can be pulled from the
CSG in a usable manner?
What'd be even cooler is some sort of design rules-check file. Optional,
of course, but probably would be extremely helpful w/r/t designing with
specific printers in mind (which I suspect is what 90% of us do with
OpenSCAD who also have a 3d printer).
--
--Joseph Lenox, BS, MS
I'm an engineer. I solve problems.
Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above.
View this message in context: http://forum.openscad.org/Thin-wall-detection-tools-tp10737p10738.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
I think having it in the preview mode would be extremely helpful
Unfortunately the geometry is not calculated in preview, so it doesn't know
how thin things are.
Could be helpful, along with a general 'rubber ruler thing' in Render mode
tho.
Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above.
View this message in context: http://forum.openscad.org/Thin-wall-detection-tools-tp10737p10740.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
Since you specify the geometry you should know what the wall thickness is.
I use constants like min_wall and wall and use them for all geometry that
creates walls. For example this generates a simple storage box with rounded
corners and a known wall thickness.
$fa = 5;
$fs = 0.1;
height = 60;
length = 90 / 2;
width = 55;
wall = 2.2;
irad = 8;
orad = irad + wall;
difference() {
hull()
for(end = [-1,1])
for(side = [-1,1])
translate([end * (length / 2 - orad), side * (width / 2 - orad), 0])
cylinder(r = orad, h = height);
hull()
for(end = [-1,1])
for(side = [-1,1])
translate([end * (length / 2 - wall - irad), side * (width / 2 - wall -
irad), wall + irad]) {
cylinder(r = irad, h = height);
sphere(irad);
}
}
There is never any need to query geometry dimensions because you have
already specified them directly of indirectly. The trick is to make the
dimensions that matter explicit constants and calculate the rest from
those. Sometimes you need a bit of high school trigonometry, for example a
sloping wall of a funnel.
On 27 December 2014 at 05:08, MichaelAtOz oz.at.michael@gmail.com wrote:
I think having it in the preview mode would be extremely helpful
Unfortunately the geometry is not calculated in preview, so it doesn't know
how thin things are.
Could be helpful, along with a general 'rubber ruler thing' in Render mode
tho.
Unless specifically shown otherwise above, my contribution is in the
Public Domain; To the extent possible under law, I have waived all
copyright and related or neighbouring rights to this work. This work is
published globally via the internet. :) Inclusion of works of previous
authors is not included in the above.
View this message in context:
http://forum.openscad.org/Thin-wall-detection-tools-tp10737p10740.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
I thought of that. For many people I think your solution becomes more
trouble than it's worth when considering difference'ing multiple oddball
shapes, or ones you don't have the explicit dimensions (imported stls come
to mind).
Additionally I feel that the purpose of a ui is to make certain things
easy. And to reduce the time spent between iterations of a design.
Obviously I wouldn't expect this kind of help when running as a script :D.
An external tool would be fine for people who just get stls off of thing
verse or youmagine.
My example comes from the Virtuoso EDA software package from Cadence. It
has as part of its work flow a design rule check script that can be run on
a layout. Newer version has an interactive version which is a huge time
saver.
Just trying to take some of the guess work out of making models to print.
On Dec 27, 2014 6:11 AM, "nop head" nop.head@gmail.com wrote:
Since you specify the geometry you should know what the wall thickness is.
I use constants like min_wall and wall and use them for all geometry that
creates walls. For example this generates a simple storage box with rounded
corners and a known wall thickness.
$fa = 5;
$fs = 0.1;
height = 60;
length = 90 / 2;
width = 55;
wall = 2.2;
irad = 8;
orad = irad + wall;
difference() {
hull()
for(end = [-1,1])
for(side = [-1,1])
translate([end * (length / 2 - orad), side * (width / 2 - orad), 0])
cylinder(r = orad, h = height);
hull()
for(end = [-1,1])
for(side = [-1,1])
translate([end * (length / 2 - wall - irad), side * (width / 2 - wall -
irad), wall + irad]) {
cylinder(r = irad, h = height);
sphere(irad);
}
}
There is never any need to query geometry dimensions because you have
already specified them directly of indirectly. The trick is to make the
dimensions that matter explicit constants and calculate the rest from
those. Sometimes you need a bit of high school trigonometry, for example a
sloping wall of a funnel.
On 27 December 2014 at 05:08, MichaelAtOz oz.at.michael@gmail.com wrote:
I think having it in the preview mode would be extremely helpful
Unfortunately the geometry is not calculated in preview, so it doesn't
know
how thin things are.
Could be helpful, along with a general 'rubber ruler thing' in Render mode
tho.
Unless specifically shown otherwise above, my contribution is in the
Public Domain; To the extent possible under law, I have waived all
copyright and related or neighbouring rights to this work. This work is
published globally via the internet. :) Inclusion of works of previous
authors is not included in the above.
View this message in context:
http://forum.openscad.org/Thin-wall-detection-tools-tp10737p10740.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
OpenSCAD is capable of being its own DRC engine, after a fashion:
https://github.com/clothbot/ClothBotCreations/blob/master/examples/design_rule_checks.scad https://github.com/clothbot/ClothBotCreations/blob/master/examples/design_rule_checks.scad
Aside: Until there’s a 3D variant of offset(), you have to kludge it with something like the inner_offset_3d() in this example, but it gets the job done. Ideally, you’d offset(delta=delta) offset(delta=-delta) children() to trim off all geometry thinner than 2*delta, assuming orientation doesn’t matter (e.g. thinner delta in X-Y may be different than in Z).
Technically, the DRC features you’d be using in Virtuoso would be coming in by way of GDS export to PVS, Assura and/or Calibre. Export STL and run “OpenSCAD DRC scripts”, then import() the resulting geometry back into your original design with color() for context would be similar in behaviour to what you’re used to.
Andrew.
On Dec 27, 2014, at 10:06 AM, Joseph Lenox lenox.joseph@gmail.com wrote:
I thought of that. For many people I think your solution becomes more trouble than it's worth when considering difference'ing multiple oddball shapes, or ones you don't have the explicit dimensions (imported stls come to mind).
Additionally I feel that the purpose of a ui is to make certain things easy. And to reduce the time spent between iterations of a design. Obviously I wouldn't expect this kind of help when running as a script :D.
An external tool would be fine for people who just get stls off of thing verse or youmagine.
My example comes from the Virtuoso EDA software package from Cadence. It has as part of its work flow a design rule check script that can be run on a layout. Newer version has an interactive version which is a huge time saver.
Just trying to take some of the guess work out of making models to print.
On Dec 27, 2014 6:11 AM, "nop head" <nop.head@gmail.com mailto:nop.head@gmail.com> wrote:
Since you specify the geometry you should know what the wall thickness is. I use constants like min_wall and wall and use them for all geometry that creates walls. For example this generates a simple storage box with rounded corners and a known wall thickness.
$fa = 5;
$fs = 0.1;
height = 60;
length = 90 / 2;
width = 55;
wall = 2.2;
irad = 8;
orad = irad + wall;
difference() {
hull()
for(end = [-1,1])
for(side = [-1,1])
translate([end * (length / 2 - orad), side * (width / 2 - orad), 0])
cylinder(r = orad, h = height);
hull()
for(end = [-1,1])
for(side = [-1,1])
translate([end * (length / 2 - wall - irad), side * (width / 2 - wall - irad), wall + irad]) {
cylinder(r = irad, h = height);
sphere(irad);
}
}
There is never any need to query geometry dimensions because you have already specified them directly of indirectly. The trick is to make the dimensions that matter explicit constants and calculate the rest from those. Sometimes you need a bit of high school trigonometry, for example a sloping wall of a funnel.
I think having it in the preview mode would be extremely helpful
Unfortunately the geometry is not calculated in preview, so it doesn't know
how thin things are.
Could be helpful, along with a general 'rubber ruler thing' in Render mode
tho.
Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above.
View this message in context: http://forum.openscad.org/Thin-wall-detection-tools-tp10737p10740.html http://forum.openscad.org/Thin-wall-detection-tools-tp10737p10740.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
OpenSCAD mailing list
Discuss@lists.openscad.org mailto:Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
OpenSCAD mailing list
Discuss@lists.openscad.org mailto:Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
--
"The future is already here. It's just not very evenly distributed" -- William Gibson
Thanks for the link, I will have to study it.
You're right, in our environment it is assura providing the drc engine (and
a different package for parasitic extraction, can't remember what it was
called). Unfortunately to all of my users (local Admin for the EDA packages
from Cadence and Synopsys), everything is "cadence" from ncvhdl to
simvision, to spectre and qrc.
On Dec 27, 2014 9:29 AM, "Andrew Plumb" andrew@plumb.org wrote:
OpenSCAD is capable of being its own DRC engine, after a fashion:
https://github.com/clothbot/ClothBotCreations/blob/master/examples/design_rule_checks.scad
Aside: Until there’s a 3D variant of offset(), you have to kludge it with
something like the inner_offset_3d() in this example, but it gets the job
done. Ideally, you’d offset(delta=delta) offset(delta=-delta) children()
to trim off all geometry thinner than 2*delta, assuming orientation doesn’t
matter (e.g. thinner delta in X-Y may be different than in Z).
Technically, the DRC features you’d be using in Virtuoso would be coming
in by way of GDS export to PVS, Assura and/or Calibre. Export STL and run
“OpenSCAD DRC scripts”, then import() the resulting geometry back into your
original design with color() for context would be similar in behaviour to
what you’re used to.
Andrew.
On Dec 27, 2014, at 10:06 AM, Joseph Lenox lenox.joseph@gmail.com wrote:
I thought of that. For many people I think your solution becomes more
trouble than it's worth when considering difference'ing multiple oddball
shapes, or ones you don't have the explicit dimensions (imported stls come
to mind).
Additionally I feel that the purpose of a ui is to make certain things
easy. And to reduce the time spent between iterations of a design.
Obviously I wouldn't expect this kind of help when running as a script :D.
An external tool would be fine for people who just get stls off of thing
verse or youmagine.
My example comes from the Virtuoso EDA software package from Cadence. It
has as part of its work flow a design rule check script that can be run on
a layout. Newer version has an interactive version which is a huge time
saver.
Just trying to take some of the guess work out of making models to print.
On Dec 27, 2014 6:11 AM, "nop head" nop.head@gmail.com wrote:
Since you specify the geometry you should know what the wall thickness
is. I use constants like min_wall and wall and use them for all geometry
that creates walls. For example this generates a simple storage box with
rounded corners and a known wall thickness.
$fa = 5;
$fs = 0.1;
height = 60;
length = 90 / 2;
width = 55;
wall = 2.2;
irad = 8;
orad = irad + wall;
difference() {
hull()
for(end = [-1,1])
for(side = [-1,1])
translate([end * (length / 2 - orad), side * (width / 2 - orad), 0])
cylinder(r = orad, h = height);
hull()
for(end = [-1,1])
for(side = [-1,1])
translate([end * (length / 2 - wall - irad), side * (width / 2 - wall -
irad), wall + irad]) {
cylinder(r = irad, h = height);
sphere(irad);
}
}
There is never any need to query geometry dimensions because you have
already specified them directly of indirectly. The trick is to make the
dimensions that matter explicit constants and calculate the rest from
those. Sometimes you need a bit of high school trigonometry, for example a
sloping wall of a funnel.
On 27 December 2014 at 05:08, MichaelAtOz oz.at.michael@gmail.com
wrote:
I think having it in the preview mode would be extremely helpful
Unfortunately the geometry is not calculated in preview, so it doesn't
know
how thin things are.
Could be helpful, along with a general 'rubber ruler thing' in Render
mode
tho.
Unless specifically shown otherwise above, my contribution is in the
Public Domain; To the extent possible under law, I have waived all
copyright and related or neighbouring rights to this work. This work is
published globally via the internet. :) Inclusion of works of previous
authors is not included in the above.
View this message in context:
http://forum.openscad.org/Thin-wall-detection-tools-tp10737p10740.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
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
--
"The future is already here. It's just not very evenly distributed" --
William Gibson
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
I think we had this discussion before and I thought pretty much the same as you do. However, IIRC, the result was that this should be a part of the printer software. As it would be totally different from printer to printer.
Ideally you draw in OpenSCAD the perfect ideal geometry and if you ask for a 0.001 mm wall thickness, OpenSCAD should just create this.
Within the next step, most likely within your printer software you could run some DRC against the capabilities of the particular printer.
I can easily see, that this is not ideal, if you want to have some feedback during the design stage (switching between different programs and even possibly different machines).
Thus, the question would be should OpenScad get an entire new feature branch "DRC"? People could contribute rule sets for printers and by time, someone could design something entirely 3d printer agnostic, run the DRC check for a certain printer get some feedback and make necessary adjustments to the design. Later, one could take the same basic design and with the help of another rule-set adopt it for a different 3d printer.
Wall thickness would be just one parameter to check for. Clearing, minimum feature size, build volume, etc. would be other parameters.
Why should this be part of OpenSCAD? Because people could test the designs for a certain printer even without having access to one (or its software). That would make business of 3d print on demand much easier.
Very similar situation exist for printed circuit board design. One can download set of DRC-rules from a manufacture and load them in the PCB design software. Those help to spot problems which might occur during manufacturing at that given company.
Guess the same would be valid for OpenScad and the 3D printing world.
The only problem I see, there are not enough resources (contributors) to implement such feature.
Greetings
Torwag
On 27 December 2014 05:24:41 CET, Joseph Lenox lenox.joseph@gmail.com wrote:
I've been doing some work with OpenSCAD, and am finding myself wanting
some sort of enhancement to the UI so I could at least identify wall
sections arbitrarily thinner than some width (measured from normal to
normal). While I guess a tool to highlight these with an STL, I think
having it in the preview mode would be extremely helpful to designers.
Anyone know offhand if this kind of information can be pulled from the
CSG in a usable manner?
What'd be even cooler is some sort of design rules-check file.
Optional,
of course, but probably would be extremely helpful w/r/t designing with
specific printers in mind (which I suspect is what 90% of us do with
OpenSCAD who also have a 3d printer).
--
--Joseph Lenox, BS, MS
I'm an engineer. I solve problems.
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.
I think your argument is balanced, and I too err on not putting too much
into OpenSCAD.
Is there a way to push this off into a plugin system? So a 3rd party
plugins that can be loaded to do things like thin wall detection? That
might be even more work at first, however, and like you said, limited
coding resources and all.
Wil
On Sat, Dec 27, 2014 at 3:28 PM, Torsten Wagner torsten.wagner@gmail.com
wrote:
I think we had this discussion before and I thought pretty much the same
as you do. However, IIRC, the result was that this should be a part of the
printer software. As it would be totally different from printer to printer.
Ideally you draw in OpenSCAD the perfect ideal geometry and if you ask for
a 0.001 mm wall thickness, OpenSCAD should just create this.
Within the next step, most likely within your printer software you could
run some DRC against the capabilities of the particular printer.
I can easily see, that this is not ideal, if you want to have some
feedback during the design stage (switching between different programs and
even possibly different machines).
Thus, the question would be should OpenScad get an entire new feature
branch "DRC"? People could contribute rule sets for printers and by time,
someone could design something entirely 3d printer agnostic, run the DRC
check for a certain printer get some feedback and make necessary
adjustments to the design. Later, one could take the same basic design and
with the help of another rule-set adopt it for a different 3d printer.
Wall thickness would be just one parameter to check for. Clearing, minimum
feature size, build volume, etc. would be other parameters.
Why should this be part of OpenSCAD? Because people could test the designs
for a certain printer even without having access to one (or its software).
That would make business of 3d print on demand much easier.
Very similar situation exist for printed circuit board design. One can
download set of DRC-rules from a manufacture and load them in the PCB
design software. Those help to spot problems which might occur during
manufacturing at that given company.
Guess the same would be valid for OpenScad and the 3D printing world.
The only problem I see, there are not enough resources (contributors) to
implement such feature.
Greetings
Torwag
On 27 December 2014 05:24:41 CET, Joseph Lenox lenox.joseph@gmail.com
wrote:
I've been doing some work with OpenSCAD, and am finding myself wanting
some sort of enhancement to the UI so I could at least identify wall
sections arbitrarily thinner than some width (measured from normal to
normal). While I guess a tool to highlight these with an STL, I think
having it in the preview mode would be extremely helpful to designers.
Anyone know offhand if this kind of information can be pulled from the
CSG in a usable manner?
What'd be even cooler is some sort of design rules-check file. Optional,
of course, but probably would be extremely helpful w/r/t designing with
specific printers in mind (which I suspect is what 90% of us do with
OpenSCAD who also have a 3d printer).
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
--
Wil Chung
https://cubehero.com
Blog: http://iamwilchung.wordpress.com
Twitter: http://twitter.com/iamwil
Repos: http://github.com/iamwilhelm
http://github.com/cubehero