discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Re: [OpenSCAD] make an object hollow with constant wall thickness

R
rew
Sun, Nov 15, 2015 11:37 AM

Michael,
The "generate a hollow object" is a difficult problem in general.

But if you want to print the hull of an object, it may be easier to just set
"infill" to zero on your slicing program.

--
View this message in context: http://forum.openscad.org/make-an-object-hollow-with-constant-wall-thickness-tp14255p14507.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

Michael, The "generate a hollow object" is a difficult problem in general. But if you want to print the hull of an object, it may be easier to just set "infill" to zero on your slicing program. -- View this message in context: http://forum.openscad.org/make-an-object-hollow-with-constant-wall-thickness-tp14255p14507.html Sent from the OpenSCAD mailing list archive at Nabble.com.
P
plasticmonk
Mon, Nov 16, 2015 6:59 PM

zero infill is not an option. the object is going to be parametric. I'll have
a look at the other optiions tomorrrow. thanks for the replys so far.

--
View this message in context: http://forum.openscad.org/make-an-object-hollow-with-constant-wall-thickness-tp14255p14561.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

zero infill is not an option. the object is going to be parametric. I'll have a look at the other optiions tomorrrow. thanks for the replys so far. -- View this message in context: http://forum.openscad.org/make-an-object-hollow-with-constant-wall-thickness-tp14255p14561.html Sent from the OpenSCAD mailing list archive at Nabble.com.
P
plasticmonk
Mon, Nov 16, 2015 7:04 PM

@peter
what for is the //small number "e"?

--
View this message in context: http://forum.openscad.org/make-an-object-hollow-with-constant-wall-thickness-tp14255p14562.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

@peter what for is the //small number "e"? -- View this message in context: http://forum.openscad.org/make-an-object-hollow-with-constant-wall-thickness-tp14255p14562.html Sent from the OpenSCAD mailing list archive at Nabble.com.
P
plasticmonk
Mon, Nov 16, 2015 7:23 PM

@peter, i understand the small number now but in general its not the solution
im looking for. let me refrase the qusetion:

difference(){

cube([50-x,50-x,100]);
x=2;
translate([x/2,x/2,0])
cube([50-x,50-x,100]);
}

if I could make it work that the 2nd cube gets another x value then the 1st,
i could reuse the same code for the inner and the outer object. Because we
are talking about a very complex object, this would help me a lot.

--
View this message in context: http://forum.openscad.org/make-an-object-hollow-with-constant-wall-thickness-tp14255p14564.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

@peter, i understand the small number now but in general its not the solution im looking for. let me refrase the qusetion: difference(){ cube([50-x,50-x,100]); x=2; translate([x/2,x/2,0]) cube([50-x,50-x,100]); } if I could make it work that the 2nd cube gets another x value then the 1st, i could reuse the same code for the inner and the outer object. Because we are talking about a very complex object, this would help me a lot. -- View this message in context: http://forum.openscad.org/make-an-object-hollow-with-constant-wall-thickness-tp14255p14564.html Sent from the OpenSCAD mailing list archive at Nabble.com.
PF
Peter Falke
Tue, Nov 17, 2015 8:35 PM

Please note that in your program x is defined as 2 in all the code.
Openscad makes one pass through the code to process all the variabes.
Then it writes all the geometry in a CSG-tree.
For your code example this is:

group() {
difference() {
cube(size = [48, 48, 100], center = false);
multmatrix([[1, 0, 0, 1], [0, 1, 0, 1], [0, 0, 1, 0], [0, 0, 0,
1]]) {
cube(size = [48, 48, 100], center = false);
}
}
}

Then it sends this CSG-tree to the , CGAL http://cgal.org

2015-11-16 20:23 GMT+01:00 plasticmonk deurer@rocketmail.com:

@peter, i understand the small number now but in general its not the
solution
im looking for. let me refrase the qusetion:

difference(){

cube([50-x,50-x,100]);
x=2;
translate([x/2,x/2,0])
cube([50-x,50-x,100]);
}

if I could make it work that the 2nd cube gets another x value then the
1st,
i could reuse the same code for the inner and the outer object. Because we
are talking about a very complex object, this would help me a lot.

--
View this message in context:
http://forum.openscad.org/make-an-object-hollow-with-constant-wall-thickness-tp14255p14564.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

Please note that in your program x is defined as 2 in all the code. Openscad makes one pass through the code to process all the variabes. Then it writes all the geometry in a CSG-tree. For your code example this is: group() { difference() { cube(size = [48, 48, 100], center = false); multmatrix([[1, 0, 0, 1], [0, 1, 0, 1], [0, 0, 1, 0], [0, 0, 0, 1]]) { cube(size = [48, 48, 100], center = false); } } } Then it sends this CSG-tree to the , CGAL <http://cgal.org> 2015-11-16 20:23 GMT+01:00 plasticmonk <deurer@rocketmail.com>: > @peter, i understand the small number now but in general its not the > solution > im looking for. let me refrase the qusetion: > > difference(){ > > cube([50-x,50-x,100]); > x=2; > translate([x/2,x/2,0]) > cube([50-x,50-x,100]); > } > > if I could make it work that the 2nd cube gets another x value then the > 1st, > i could reuse the same code for the inner and the outer object. Because we > are talking about a very complex object, this would help me a lot. > > > > -- > View this message in context: > http://forum.openscad.org/make-an-object-hollow-with-constant-wall-thickness-tp14255p14564.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 >
PF
Peter Falke
Tue, Nov 17, 2015 8:42 PM

Please note that in your program x is defined as 2 in all the code.
Openscad makes one pass through the code to process all the variabes.
Then it resolves all the variables and calculations and  writes all the
geometry in a CSG-tree.
For your code example this is:
(

group() {
difference() {
cube(size = [48, 48, 100], center = false);
multmatrix([[1, 0, 0, 1], [0, 1, 0, 1], [0, 0, 1, 0], [0, 0, 0,
1]]) {
cube(size = [48, 48, 100], center = false);
}
}
}

Then it sends this CSG-tree to the , CGAL http://cgal.org
engine to render. This last step is what takes so long.

So optimising the calculations in your code is almost always not effective.
The time to calculate the 3d-mesh takes way longer.

Please note that in your program x is defined as 2 in all the code. Openscad makes one pass through the code to process all the variabes. Then it resolves all the variables and calculations and writes all the geometry in a CSG-tree. For your code example this is: ( group() { difference() { cube(size = [48, 48, 100], center = false); multmatrix([[1, 0, 0, 1], [0, 1, 0, 1], [0, 0, 1, 0], [0, 0, 0, 1]]) { cube(size = [48, 48, 100], center = false); } } } Then it sends this CSG-tree to the , CGAL <http://cgal.org> engine to render. This last step is what takes so long. So optimising the calculations in your code is almost always not effective. The time to calculate the 3d-mesh takes way longer.