Nabble has removed Mailing-list integration.
Posts created here DO NOT GET SENT TO THE MAILING LIST.
Mailing-list emails DO NOT GET POSTED TO THE FORUM.
So basically the Forum is now out of date, we are looking into migrating the history.
Please, can anyone help me to understand what's wrong in this code for it
can't work the CSG (no error issued): module pyramid_side(side, thickness) { linear_extrude(height = 2) { triangle_points =[[0,0],[side,0],[side/2, side * 1.5],[5, 5],[side - 5, 5],[side/2, side * 1.5 - 10]]; triangle_paths =[[0,1,2],[3,4,5]]; polygon(triangle_points,triangle_paths,10); } } rotate([109.5, 0, 0]) translate([1, 0, 0]) pyramid_side(100); rotate([109.5, 0, 90]) translate([-100, 0, 0]) pyramid_side(100); rotate([109.5, 0, -90]) translate([1, -34, -95]) pyramid_side(100); rotate([109.5, 0, 180]) translate([-100, -34, -95]) pyramid_side(100); Preview seems ok, I guess it's not a manifold but how can I fix it? Thanks -- Sent from: http://forum.openscad.org/ _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org |
Administrator
|
enzo wrote
> for it can't work the CSG (no error issued): Works for me. I exported it and the STL looks OK. What is "can't work the CSG"? ----- Admin - email* me if you need anything, or if I've done something stupid... * click on my MichaelAtOz label, there is a link to email me. 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. Obviously inclusion of works of previous authors is not included in the above. -- Sent from: http://forum.openscad.org/ _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
OpenSCAD Admin - email* me if you need anything, or if I've done something stupid...
* on the Forum, click on my MichaelAtOz label, there is a link to email me. 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. Obviously inclusion of works of previous authors is not included in the above. |
In reply to this post by enzo
You code is previewed and rendered fine. It is a manifold. You may not be happy with the vertices of your model. Try to start from a full pyramid and excavate it with difference(). module pyramid(height, side) { linear_extrude(height,scale=0.1/height) square(side,center=true); } _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org |
Ronaldo wrote
> You code is previewed and rendered fine. It is a manifold. You may not be > happy with the vertices of your model. Try to start from a full pyramid > and > excavate it with difference(). > > module pyramid(height, side) { > linear_extrude(height,scale=0.1/height) > square(side,center=true); > } I took this one as a bit of a challenge, and this is what I came up with. I basically used trial and error to size and position the cutters, but I imagine math would be helpful in sizing everything correctly. difference () { pyramid(100,100); sqcutter(); tricutter(); rotate([0,0,90]) tricutter(); } module pyramid(height, side) { linear_extrude(height,scale=0.1/height) square(side,center=true); } module tricutter () { rotate([0,-90,0]) translate([32,0,-60]) linear_extrude(120) scale ([1.1,1,1]) circle(50, $fn=3); } module sqcutter() { # linear_extrude(4.5) square(90,center=true); } -- Sent from: http://forum.openscad.org/ _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org |
I haven't checked your code yet but it seems that it might be easier to excavate with the pyramid itself.
_______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org |
Ronaldo wrote
> I haven't checked your code yet but it seems that it might be easier to > excavate with the pyramid itself. I'd be interested to see how you could do that. Yes, I can use the pyramid to hollow it out: difference() { pyramid(100,100); translate ([0,0,-5]) pyramid(100,100); } module pyramid(height, side) { linear_extrude(height,scale=0.1/height) square(side,center=true); } But that still leaves the walls. I could cut my code down some by eliminating sqcutter() and subsituting the technique above: difference () { pyramid(100,100); translate ([0,0,-5]) pyramid(100,100); tricutter(); rotate([0,0,90]) tricutter(); } module pyramid(height, side) { linear_extrude(height,scale=0.1/height) square(side,center=true); } module tricutter () { rotate([0,-90,0]) translate([32,0,-60]) linear_extrude(120) scale ([1.1,1,1]) circle(50, $fn=3); } -- Sent from: http://forum.openscad.org/ _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org |
> I haven't checked your code yet but it seems that it might be easier to There are many alternatives. Here is one:
You will need some trigonometry to calculate a, b and c from the pyramid height and side and the width of the studs. _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org |
You've bent my brain, sir!
Took me a while to figure it out. Very clever. -- Sent from: http://forum.openscad.org/ _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org |
In reply to this post by Ronaldo
Here's a fancy one, without any trigonometric stuff:
h=100; s=60; d = 5; intersection() { linear_extrude(h, scale = 0, convexity = 5) square(s, center = true); for(i=[0:3]) rotate(i*90) multmatrix([[1, 0, s/2/h], [0, 1, 0], [0, 0, 1]]) // skew x translate([-(s-d)/2, 0, 0]) rotate([0,-90,0]) linear_extrude(d, center = true) difference() { ci(s); offset(-d)ci(s); } } module ci(a) { r = a/3*sqrt(3); H = a/2*sqrt(3); scale([h/H, 1, 1]) translate([r/2, 0])circle(r, $fn=3); } -- Sent from: http://forum.openscad.org/ _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org |
Here's a fancy one, without any trigonometric stuff: You are right, Parkinbot: we don't need trigonometry here... neither fancy skews :)
_______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org |
In reply to this post by MichaelAtOz
Hi Michael,
I tried again and this time OpenSCAD built the .stl! I don't know why the last time id didn't!!! Thanks for your answer! -- Sent from: http://forum.openscad.org/ _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org |
In reply to this post by lar3ry
Hi lar3ry,
I went crazy to find a solid to subtract from the main pyramid at first but I couldn't get it! I've so much to learn about OpenSCAD! Thanks a lot! -- Sent from: http://forum.openscad.org/ _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org |
In reply to this post by Ronaldo
Ronaldo wrote
>> >> > I haven't checked your code yet but it seems that it might be easier to >> > excavate with the pyramid itself. >> >> I'd be interested to see how you could do that. >> > > There are many alternatives. Here is one: > > module pyramid(height, side) { > > linear_extrude(height,scale=0.1/height) > > square(side,center=true); > > } > > Hi Ronaldo, > > I see it works but just can't figure out why!!! > I can't understand how the sutracting pyramids don't cut out the edges of > the main pyramid! > I need to study it again and again: I tried commenting some statements to > simplify the model but had no success. > Thanks for upgrading my OpenSCAD knowledge. > > > module A(height,side,a,b,c,d) > > difference(){ > > pyramid(150,100); > > translate([ a, d, b]) pyramid(150,100); > > translate([-a,-d, b]) pyramid(150,100); > > translate([ 0, 0, c]) pyramid(150,100); > > } > > > a = 5; > > b = 4; > > c = 11; > > union() { > > A(150,100,a,b,-c,-a); > > A(150,100,a,b,-c, a); > > } > > You will need some trigonometry to calculate a, b and c from the pyramid > height and side and the width of the studs. > > _______________________________________________ > OpenSCAD mailing list > Discuss@.openscad > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org -- Sent from: http://forum.openscad.org/ _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org |
Free forum by Nabble | Edit this page |