Andrew, Your suggestion is interesting. Indeed, my original code called for a 2D shape that coincided with the Yaxis & was rotate_extruded from there. Marius said that the bug I triggered involved just that problem. So I introduced the overlap (I believe) on his suggestion & here we are today. I'm not quite sure I completely understand your code snippet but it may be a bit complex for my actual application. You see, the code snippets I have been showing here are greatly simplified from the actual code which involves differences with many circles. I simplified it on the grounds that the simple code still exhibits the problem & is easier to read. However, I fear if I were to try your approach it would involve a great many ANDs, ORs, & differences, each of which would be far more involved than I had hoped. Still, your approach looks interesting. I will cogitate on it to see if I can solve the original problem in a similar way. Thanks for the suggestion, Dan > From: [hidden email] > Subject: OpenSCAD Digest, Vol 24, Issue 4 > To: [hidden email] > Date: Wed, 02 Nov 2011 16:18:15 +0100 > > . . . > > Today's Topics: > > 1. . . . > 2. . . . > 3. . . . > 4. . . . > 5. . . . > 6. . . . > 7. Re: Still lost on my journey... (Andrew Plumb) > 8. . . . > 9. . . . > > >  > > . . . > > Message: 7 > Date: Wed, 2 Nov 2011 10:51:55 0400 > From: Andrew Plumb <[hidden email]> > Subject: Re: [OpenSCAD] Still lost on my journey... > To: [hidden email] > MessageID: <[hidden email]> > ContentType: text/plain; charset=usascii > > Hey Dan, > > You can work around the problem by intersectionmasking the two parts of the 2D shape at the yaxis and unioning the rotate_extruded parts. Here's how I'd tackle it with an "operator" module: > > snip > > module unitCircle() circle(1,$fn=400); > module unitSquare() square([1,1],center=true); > > module rotate_extrude_masked(mask_window_l=4,convexity=1,fn=5) { > union() for(i=[0:$children1]) { > rotate_extrude(convexity=convexity,$fn=fn) render() intersection() { > child(i); > translate([0,mask_window_l/2]) square([mask_window_l,mask_window_l],center=false); > } > rotate_extrude(convexity=convexity,$fn=fn) render() intersection() { > child(i); > mirror([0,1]) translate([0,mask_window_l/2]) square([mask_window_l,mask_window_l],center=false); > } > } > } > > translate([0,0,25]) scale([25,25,25*sqrt(2)]) > rotate_extrude_masked(mask_window_l=4,convexity=1,fn=5) > translate([1/2,0]) scale([2,sqrt(2)]) unitSquare(); > > endsnip > > Just set the "mask_window_l" variable to be "sufficiently large" to enclose all your preextruded 2D shapes. > > Aside: Out of habit, I limit my 2D operations (like translate(), scale(), rotate(), etc) to 2D so I can keep track of when I'm in 2D vs 3D operation space. > > Andrew. > 
Can you start with an arbitrary large cube and create each facet by differencing another large cube positioned to slice it off?
On 2 November 2011 15:44, Dan Zuras 3D <[hidden email]> wrote:

> Date: Wed, 2 Nov 2011 15:52:35 +0000
> Subject: Re: [OpenSCAD] This could be interesting... > From: nop head <[hidden email]> > To: Dan Zuras 3D <[hidden email]>, [hidden email] > > > Can you start with an arbitrary large cube and create each facet by > differencing another large cube positioned to slice it off? > No. But I might be able to start off with a large sphere (of the correct number of facets) & bite off chunks made from tori (of the same number of facets) each of which has a circular cross section. That way all the hard stuff takes place in 3D. I can't do it right now as the rest of my life is interfering. But that doesn't stop me from cogitating on the matter. :) I'll let all of you know what happens. Thanks.  Dan 
Free forum by Nabble  Edit this page 