Problem with aborting while cutting helix thread

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Problem with aborting while cutting helix thread

Kent McNaughton
I'm working on an Acme thread, trying to use a 3D trapezoid as a 'thread
cutter' by differencing into the inner wall of a tube shape that is
intended to be the Acme-threaded lead-nut for a linear motion system.

If I try to keep the 'cutter' thickness small--say 2 degrees, I get a
warning and an abort when I try to make just a few revolutions of the
cutter.

        Module cache size: 0 modules
        Compiling design (CSG Tree generation)...
        Compiling design (CSG Products generation)...
        PolySets in cache: 9
        PolySet cache size in bytes: 86200
        CGAL Polyhedrons in cache: 0
        CGAL cache size in bytes: 0
        Compiling design (CSG Products normalization)...
        WARNING: Normalized tree is growing past 4000 elements.
        Aborting normalization.

        Normalized CSG tree has 601 elements
        CSG generation finished.
        Total rendering time: 0 hours, 0 minutes, 0 seconds

I can get more revolutions before the warning and abort if I "fatten"
the cutter, but as I do this the 'cut' gets coarser and at about 10
degrees the elements comprising the cutter separate, presumably now not
filling the criteria of "water-tightness".

The code is here. The cutter thickness is changed using the divisor term
(shown as 180, here) in the 'rotate' and 'translate' instructions. Sorry
for all the "magic numbers" in the code. They have to do with the shape
of the cut.

module wedge(len,dep,ht,wht){
polyhedron(
        points=[ [0,0,0],[0,dep,0],[0,dep,wht],
                [0,0,ht],[len,dep,0],[len,dep,wht],
                [len,0,ht],[len,0,0] ],
        triangles= [
                [0,1,2],[2,3,0], // R-side
                [4,5,1],[5,2,1], // Front vertical
                [2,5,6],[6,3,2], // Front slant
                [7,5,4],[7,6,5], // L side
                [0,3,7],[3,6,7], // Back vertical
                [0,7,1],[1,7,4]  // Bottom
                ]);
}

// Acme threads
        union() {
                for(i = [1:3600]) {
                        rotate(i*360/180, $fn=30, [0,0,1])
                        // For the nut, translate the cutting edge to
                        // Dmaj of the thread.
                        // Dmin of the screw thread is figured as:
                        // Nominal size - (1/TPI) + 0.20
                        // For 1/4"-20 Acme tread (conv'd to metric):
                        // (1/4 - .05 + .02) * 25.4 = 5.588
                        translate([0, 5.588/2, i/180])
                        union() {
                                translate([0,0,-0.01])
                                color("blue")
                                wedge(1.2,1.27/2,0.13,0.01);
                                translate([0,0,-.471])
                                cube([1.2, 1.27/2, 0.471]);
                                translate([0,0,-0.461])
                                mirror([0,0,180])
                                color("blue")
                                wedge(1.2,1.27/2,0.13,0.01);
                        } // end union
                } // end for
        } // end union

I'm running up-to-date x86_64 Ubuntu 12.04 OS on an Intel E6500-powered
4GB system using the internal video chip.

Can anyone suggest a solution? I'd ideally like a nice clean cut that
completes 20 revolutions through a 25.4mm tube.
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
ds
Reply | Threaded
Open this post in threaded view
|

Re: Problem with aborting while cutting helix thread

ds
Try going to the menu Edit then Preferences then the advanced tab.  
Change "Turn off render at" to a larger number, such as add a zero at
the end and retry.


On 04/05/13 18:50, Kent McNaughton wrote:

> I'm working on an Acme thread, trying to use a 3D trapezoid as a 'thread
> cutter' by differencing into the inner wall of a tube shape that is
> intended to be the Acme-threaded lead-nut for a linear motion system.
>
> If I try to keep the 'cutter' thickness small--say 2 degrees, I get a
> warning and an abort when I try to make just a few revolutions of the
> cutter.
>
> Module cache size: 0 modules
> Compiling design (CSG Tree generation)...
> Compiling design (CSG Products generation)...
> PolySets in cache: 9
> PolySet cache size in bytes: 86200
> CGAL Polyhedrons in cache: 0
> CGAL cache size in bytes: 0
> Compiling design (CSG Products normalization)...
> WARNING: Normalized tree is growing past 4000 elements.
> Aborting normalization.
>
> Normalized CSG tree has 601 elements
> CSG generation finished.
> Total rendering time: 0 hours, 0 minutes, 0 seconds
>
> I can get more revolutions before the warning and abort if I "fatten"
> the cutter, but as I do this the 'cut' gets coarser and at about 10
> degrees the elements comprising the cutter separate, presumably now not
> filling the criteria of "water-tightness".
>
> The code is here. The cutter thickness is changed using the divisor term
> (shown as 180, here) in the 'rotate' and 'translate' instructions. Sorry
> for all the "magic numbers" in the code. They have to do with the shape
> of the cut.
>
> module wedge(len,dep,ht,wht){
> polyhedron(
> points=[ [0,0,0],[0,dep,0],[0,dep,wht],
> [0,0,ht],[len,dep,0],[len,dep,wht],
> [len,0,ht],[len,0,0] ],
> triangles= [
> [0,1,2],[2,3,0], // R-side
> [4,5,1],[5,2,1], // Front vertical
> [2,5,6],[6,3,2], // Front slant
> [7,5,4],[7,6,5], // L side
> [0,3,7],[3,6,7], // Back vertical
> [0,7,1],[1,7,4]  // Bottom
> ]);
> }
>
> // Acme threads
> union() {
> for(i = [1:3600]) {
> rotate(i*360/180, $fn=30, [0,0,1])
> // For the nut, translate the cutting edge to
> // Dmaj of the thread.
> // Dmin of the screw thread is figured as:
> // Nominal size - (1/TPI) + 0.20
> // For 1/4"-20 Acme tread (conv'd to metric):
> // (1/4 - .05 + .02) * 25.4 = 5.588
> translate([0, 5.588/2, i/180])
> union() {
> translate([0,0,-0.01])
> color("blue")
> wedge(1.2,1.27/2,0.13,0.01);
> translate([0,0,-.471])
> cube([1.2, 1.27/2, 0.471]);
> translate([0,0,-0.461])
> mirror([0,0,180])
> color("blue")
> wedge(1.2,1.27/2,0.13,0.01);
> } // end union
> } // end for
> } // end union
>
> I'm running up-to-date x86_64 Ubuntu 12.04 OS on an Intel E6500-powered
> 4GB system using the internal video chip.
>
> Can anyone suggest a solution? I'd ideally like a nice clean cut that
> completes 20 revolutions through a 25.4mm tube.
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://rocklinux.net/mailman/listinfo/openscad
> http://openscad.org - https://flattr.com/thing/121566

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: Problem with aborting while cutting helix thread

Kent McNaughton
Excellent! I used 15000. It stopped at 10800.

Thanks so much for the help.

Kent

On 04/05/2013 10:09 PM, ds wrote:

> Try going to the menu Edit then Preferences then the advanced tab.  
> Change "Turn off render at" to a larger number, such as add a zero at
> the end and retry.
>
>
> On 04/05/13 18:50, Kent McNaughton wrote:
>> I'm working on an Acme thread, trying to use a 3D trapezoid as a 'thread
>> cutter' by differencing into the inner wall of a tube shape that is
>> intended to be the Acme-threaded lead-nut for a linear motion system.
>>
>> If I try to keep the 'cutter' thickness small--say 2 degrees, I get a
>> warning and an abort when I try to make just a few revolutions of the
>> cutter.
>>
>> Module cache size: 0 modules
>> Compiling design (CSG Tree generation)...
>> Compiling design (CSG Products generation)...
>> PolySets in cache: 9
>> PolySet cache size in bytes: 86200
>> CGAL Polyhedrons in cache: 0
>> CGAL cache size in bytes: 0
>> Compiling design (CSG Products normalization)...
>> WARNING: Normalized tree is growing past 4000 elements.
>> Aborting normalization.
>>
>> Normalized CSG tree has 601 elements
>> CSG generation finished.
>> Total rendering time: 0 hours, 0 minutes, 0 seconds
>>
>> I can get more revolutions before the warning and abort if I "fatten"
>> the cutter, but as I do this the 'cut' gets coarser and at about 10
>> degrees the elements comprising the cutter separate, presumably now not
>> filling the criteria of "water-tightness".
>>
>> The code is here. The cutter thickness is changed using the divisor term
>> (shown as 180, here) in the 'rotate' and 'translate' instructions. Sorry
>> for all the "magic numbers" in the code. They have to do with the shape
>> of the cut.
>>
>> module wedge(len,dep,ht,wht){
>> polyhedron(
>> points=[ [0,0,0],[0,dep,0],[0,dep,wht],
>> [0,0,ht],[len,dep,0],[len,dep,wht],
>> [len,0,ht],[len,0,0] ],
>> triangles= [
>> [0,1,2],[2,3,0], // R-side
>> [4,5,1],[5,2,1], // Front vertical
>> [2,5,6],[6,3,2], // Front slant
>> [7,5,4],[7,6,5], // L side
>> [0,3,7],[3,6,7], // Back vertical
>> [0,7,1],[1,7,4]  // Bottom
>> ]);
>> }
>>
>> // Acme threads
>> union() {
>> for(i = [1:3600]) {
>> rotate(i*360/180, $fn=30, [0,0,1])
>> // For the nut, translate the cutting edge to
>> // Dmaj of the thread.
>> // Dmin of the screw thread is figured as:
>> // Nominal size - (1/TPI) + 0.20
>> // For 1/4"-20 Acme tread (conv'd to metric):
>> // (1/4 - .05 + .02) * 25.4 = 5.588
>> translate([0, 5.588/2, i/180])
>> union() {
>> translate([0,0,-0.01])
>> color("blue")
>> wedge(1.2,1.27/2,0.13,0.01);
>> translate([0,0,-.471])
>> cube([1.2, 1.27/2, 0.471]);
>> translate([0,0,-0.461])
>> mirror([0,0,180])
>> color("blue")
>> wedge(1.2,1.27/2,0.13,0.01);
>> } // end union
>> } // end for
>> } // end union
>>
>> I'm running up-to-date x86_64 Ubuntu 12.04 OS on an Intel E6500-powered
>> 4GB system using the internal video chip.
>>
>> Can anyone suggest a solution? I'd ideally like a nice clean cut that
>> completes 20 revolutions through a 25.4mm tube.
>> _______________________________________________
>> OpenSCAD mailing list
>> [hidden email]
>> http://rocklinux.net/mailman/listinfo/openscad
>> http://openscad.org - https://flattr.com/thing/121566
>
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://rocklinux.net/mailman/listinfo/openscad
> http://openscad.org - https://flattr.com/thing/121566
>
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566