discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Thin wall detection tools?

JL
Joseph Lenox
Sat, Dec 27, 2014 4:24 AM

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.

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.
M
MichaelAtOz
Sat, Dec 27, 2014 5:06 AM

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.

The TPP is no simple “trade agreement.”  Fight it! http://www.ourfairdeal.org/

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.

----- 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. The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ -- 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.
M
MichaelAtOz
Sat, Dec 27, 2014 5:08 AM

oops. sorry.

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.

The TPP is no simple “trade agreement.”  Fight it! http://www.ourfairdeal.org/

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.

oops. sorry. ------------ > 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. The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ -- 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.
NH
nop head
Sat, Dec 27, 2014 12:11 PM

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:

oops. sorry.

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.

The TPP is no simple "trade agreement."  Fight it!
http://www.ourfairdeal.org/

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

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: > oops. sorry. > ------------ > > > 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. > > The TPP is no simple "trade agreement." Fight it! > http://www.ourfairdeal.org/ > -- > 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 >
JL
Joseph Lenox
Sat, Dec 27, 2014 3:06 PM

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:

oops. sorry.

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.

The TPP is no simple “trade agreement.”  Fight it!
http://www.ourfairdeal.org/

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: > >> oops. sorry. >> ------------ >> >> > 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. >> >> The TPP is no simple “trade agreement.” Fight it! >> http://www.ourfairdeal.org/ >> -- >> 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 > >
AP
Andrew Plumb
Sat, Dec 27, 2014 3:29 PM

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.

On 27 December 2014 at 05:08, MichaelAtOz <oz.at.michael@gmail.com mailto:oz.at.michael@gmail.com> wrote:
oops. sorry.

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.

The TPP is no simple “trade agreement.”  Fight it! http://www.ourfairdeal.org/ http://www.ourfairdeal.org/

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

Me: http://clothbot.com/wiki/ http://clothbot.com/wiki/

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. > > On 27 December 2014 at 05:08, MichaelAtOz <oz.at.michael@gmail.com <mailto:oz.at.michael@gmail.com>> wrote: > oops. sorry. > ------------ > > > 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. > > The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ <http://www.ourfairdeal.org/> > -- > 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 Me: http://clothbot.com/wiki/ <http://clothbot.com/wiki/>
JL
Joseph Lenox
Sat, Dec 27, 2014 3:40 PM

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:

oops. sorry.

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.

The TPP is no simple “trade agreement.”  Fight it!
http://www.ourfairdeal.org/

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

Me: http://clothbot.com/wiki/


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

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: >> >>> oops. sorry. >>> ------------ >>> >>> > 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. >>> >>> The TPP is no simple “trade agreement.” Fight it! >>> http://www.ourfairdeal.org/ >>> -- >>> 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 >> >> _______________________________________________ > 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 > > Me: http://clothbot.com/wiki/ > > > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > >
TW
Torsten Wagner
Sat, Dec 27, 2014 11:28 PM

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 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.
WC
Wil Chung
Tue, Dec 30, 2014 7:06 AM

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

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