discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

My program does not rend (F6)

Y
ymolcho12@yahoo.com
Sun, Nov 21, 2021 1:20 PM

Please help me to find why the attached program cannot finish rend (F5).

Please help me to find why the attached program cannot finish rend (F5).
DM
Douglas Miller
Sun, Nov 21, 2021 8:14 PM

The biggest issue is that the } character at the end of line 33 belongs
on line 14 instead: you are needlessly creating 12 duplicates of the
rings that are rotated 90 degrees. Previous to this change, it failed to
render on my machine despite my waiting for over two hours; after this
change, it rendered in just over 11 minutes. Alternatively, you can just
delete the { and } characters on lines 13 and 33 respectively, producing
the same result.

Other fixes you should make:

  • The cylinders on lines 45 and 50 are tangent to the rings at a
    point, creating manifold errors. Change the height from 5 to 6 to
    embed them in the rings.

  • The for loop should run either from 0 to 330, or 30 to 360: the
    iteration at i=360 duplicates the iteration at i=0.

  • Instead of using five individual rotations, all with the same
    parameters (lines 16 through 33), group them and rotate once: wrap
    lines 17-33 in { and }, and remove lines 19, 23, 27, and 31.

  • The half-ring that hangs the globe is better constructed with
    rotate_extrude, rather than as a difference of two cylinders and a
    cube, e.g.

        rotate([0,0,-2.5])
        translate([0,0,-4])
        rotate_extrude(angle=185) translate([64,0]) square(8);

With these additional changes in place, I have the render time down to
around 5 minutes.

On 11/21/2021 8:20 AM, ymolcho12@yahoo.com wrote:

Please help me to find why the attached program cannot finish rend (F5).

The biggest issue is that the } character at the end of line 33 belongs on line 14 instead: you are needlessly creating 12 duplicates of the rings that are rotated 90 degrees. Previous to this change, it failed to render on my machine despite my waiting for over two hours; after this change, it rendered in just over 11 minutes. Alternatively, you can just delete the { and } characters on lines 13 and 33 respectively, producing the same result. Other fixes you should make: * The cylinders on lines 45 and 50 are tangent to the rings at a point, creating manifold errors. Change the height from 5 to 6 to embed them in the rings. * The for loop should run either from 0 to 330, or 30 to 360: the iteration at i=360 duplicates the iteration at i=0. * Instead of using five individual rotations, all with the same parameters (lines 16 through 33), group them and rotate once: wrap lines 17-33 in { and }, and remove lines 19, 23, 27, and 31. * The half-ring that hangs the globe is better constructed with rotate_extrude, rather than as a difference of two cylinders and a cube, e.g.     rotate([0,0,-2.5])     translate([0,0,-4])     rotate_extrude(angle=185) translate([64,0]) square(8); With these additional changes in place, I have the render time down to around 5 minutes. On 11/21/2021 8:20 AM, ymolcho12@yahoo.com wrote: > > Please help me to find why the attached program cannot finish rend (F5). >
Y
ymolcho12@yahoo.com
Wed, Nov 24, 2021 12:04 PM

Hello Mr. Miller,

Thank you very much. I learned a lot from you.

I did not know that rotate extrude has an angle parameter. It does not appear in the Cheat Sheet.

I made all the corrections on your advice.

Rendering time on my PC together with many other processes was 2.4 hours.

Thank you again.

Jaacov Molcho.

Hello Mr. Miller, Thank you very much. I learned a lot from you. I did not know that rotate extrude has an angle parameter. It does not appear in the Cheat Sheet. I made all the corrections on your advice. Rendering time on my PC together with many other processes was 2.4 hours. Thank you again. Jaacov Molcho.