GH
gene heskett
Tue, Feb 8, 2022 1:15 PM
greetings;
I am trying to create the making of a pair of half nuts, big one to be
used in a woodworkers bench vice.
Creating the 2 start threads was a piece of cake. First two lines of the
union().
Then as part of the union I put what is supposed to be a solid cylinder
in the middle of it to give the threads an anchor base. but no matter how
I do it, its tapered over its length, then chamfored back to the correct
size, it is not a cylinder, nor are any of the vars I used involved with
the generation of this central cylinder, the thread roots shank of the
bolt.
To really see it, comment out the last line which disappears an outer
difference to clean up the outer faces of the threads. That line will not
be used to generate the nut, but will define the outer edge of the screw
to be carved in hard maple by expanding the thread count till its about
18 inches long. So what is generating this unwanted taper?
The code so far:
module squarethread()
{
// test draw sample screw thread, this a 2 start to prove idea.
threads=6;
tw=3.175; // 1/8 inch in mm
tp=25;
tt=2.9; //tilt of segment to align with neighbors
difference()
{
union() //combine next 3 lines as diff arg one
{
rotate([90,0,0])
for(fx=[0:1:359threads])
{
rotate([0,tt,fx])
{ //these are the threads, 2 start
translate([0,30,1+fx/tp])
rotate([0,0,45])
cylinder(h=tw,d=5,$fn=4,center=true);
translate([0,-30,1+fx/tp])
rotate([0,0,45])
cylinder(h=tw,d=5,$fn=4,center=true);
// fill interior with solid rod
translate([0,0,45])
cylinder(h=16threads,d=53.75,$fn=180,center=true);
}
}
}
}// subtract outer wall for smoothness is diff arg line 2
#rotate([90,90,0])
#translate([0,0,43.5])
cylinder(h=15*threads,d=66,$fn=180,center=true);
};
This email editor does not allow turning off word wrap, fixed above but
code now looks like above, apparent error is unaffected.
Thanks all.
Cheers, Gene Heskett.
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.
greetings;
I am trying to create the making of a pair of half nuts, big one to be
used in a woodworkers bench vice.
Creating the 2 start threads was a piece of cake. First two lines of the
union().
Then as part of the union I put what is supposed to be a solid cylinder
in the middle of it to give the threads an anchor base. but no matter how
I do it, its tapered over its length, then chamfored back to the correct
size, it is not a cylinder, nor are any of the vars I used involved with
the generation of this central cylinder, the thread roots shank of the
bolt.
To really see it, comment out the last line which disappears an outer
difference to clean up the outer faces of the threads. That line will not
be used to generate the nut, but will define the outer edge of the screw
to be carved in hard maple by expanding the thread count till its about
18 inches long. So what is generating this unwanted taper?
The code so far:
===========================
module squarethread()
{
// test draw sample screw thread, this a 2 start to prove idea.
threads=6;
tw=3.175; // 1/8 inch in mm
tp=25;
tt=2.9; //tilt of segment to align with neighbors
difference()
{
union() //combine next 3 lines as diff arg one
{
rotate([90,0,0])
for(fx=[0:1:359*threads])
{
rotate([0,tt,fx])
{ //these are the threads, 2 start
translate([0,30,1+fx/tp])
rotate([0,0,45])
cylinder(h=tw,d=5,$fn=4,center=true);
translate([0,-30,1+fx/tp])
rotate([0,0,45])
cylinder(h=tw,d=5,$fn=4,center=true);
// fill interior with solid rod
translate([0,0,45])
cylinder(h=16*threads,d=53.75,$fn=180,center=true);
}
}
}
}// subtract outer wall for smoothness is diff arg line 2
#rotate([90,90,0])
#translate([0,0,43.5])
cylinder(h=15*threads,d=66,$fn=180,center=true);
};
==========================
This email editor does not allow turning off word wrap, fixed above but
code now looks like above, apparent error is unaffected.
Thanks all.
Cheers, Gene Heskett.
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.
- Louis D. Brandeis
Genes Web page <http://geneslinuxbox.net:6309/gene>
DP
David Phillip Oster
Tue, Feb 8, 2022 8:41 PM
I'm not seeing the problem. I'm looking at in ortho, not perspective, and
I've move the central cylinder outside the for loop:
module squarethread(){
// test draw sample screw thread, this a 2 start to prove idea.
threads=6;
tw=3.175; // 1/8 inch in mm
tp=25;
tt=2.9; //tilt of segment to align with neighbors
rotate([90,0,0])
difference(){
union(){ //combine next 3 lines as diff arg one
for(fx=[0:1:359*threads]){
rotate([0,tt,fx]){
//these are the threads, 2 start
translate([0,30,1+fx/tp])
rotate([0,0,45])
cylinder(h=tw,d=5,$fn=4,center=true);
translate([0,-30,1+fx/tp])
rotate([0,0,45])
cylinder(h=tw,d=5,$fn=4,center=true);
}
}
// fill interior with solid rod
translate([0,0,45])
cylinder(h=16*threads,d=56.5,$fn=180,center=true);
}
}
}
squarethread();
On Tue, Feb 8, 2022 at 10:03 AM gene heskett gheskett@shentel.net wrote:
greetings;
I am trying to create the making of a pair of half nuts, big one to be
used in a woodworkers bench vice.
Creating the 2 start threads was a piece of cake. First two lines of the
union().
Then as part of the union I put what is supposed to be a solid cylinder
in the middle of it to give the threads an anchor base. but no matter how
I do it, its tapered over its length, then chamfored back to the correct
size, it is not a cylinder, nor are any of the vars I used involved with
the generation of this central cylinder, the thread roots shank of the
bolt.
To really see it, comment out the last line which disappears an outer
difference to clean up the outer faces of the threads. That line will not
be used to generate the nut, but will define the outer edge of the screw
to be carved in hard maple by expanding the thread count till its about
18 inches long. So what is generating this unwanted taper?
The code so far:
module squarethread()
{
// test draw sample screw thread, this a 2 start to prove idea.
threads=6;
tw=3.175; // 1/8 inch in mm
tp=25;
tt=2.9; //tilt of segment to align with neighbors
difference()
{
union() //combine next 3 lines as diff arg one
{
rotate([90,0,0])
for(fx=[0:1:359threads])
{
rotate([0,tt,fx])
{ //these are the threads, 2 start
translate([0,30,1+fx/tp])
rotate([0,0,45])
cylinder(h=tw,d=5,$fn=4,center=true);
translate([0,-30,1+fx/tp])
rotate([0,0,45])
cylinder(h=tw,d=5,$fn=4,center=true);
// fill interior with solid rod
translate([0,0,45])
cylinder(h=16threads,d=53.75,$fn=180,center=true);
}
}
}
}// subtract outer wall for smoothness is diff arg line 2
#rotate([90,90,0])
#translate([0,0,43.5])
cylinder(h=15*threads,d=66,$fn=180,center=true);
};
This email editor does not allow turning off word wrap, fixed above but
code now looks like above, apparent error is unaffected.
Thanks all.
Cheers, Gene Heskett.
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
I'm not seeing the problem. I'm looking at in ortho, not perspective, and
I've move the central cylinder outside the *for* loop:
module squarethread(){
// test draw sample screw thread, this a 2 start to prove idea.
threads=6;
tw=3.175; // 1/8 inch in mm
tp=25;
tt=2.9; //tilt of segment to align with neighbors
rotate([90,0,0])
difference(){
union(){ //combine next 3 lines as diff arg one
for(fx=[0:1:359*threads]){
rotate([0,tt,fx]){
//these are the threads, 2 start
translate([0,30,1+fx/tp])
rotate([0,0,45])
cylinder(h=tw,d=5,$fn=4,center=true);
translate([0,-30,1+fx/tp])
rotate([0,0,45])
cylinder(h=tw,d=5,$fn=4,center=true);
}
}
// fill interior with solid rod
translate([0,0,45])
cylinder(h=16*threads,d=56.5,$fn=180,center=true);
}
}
}
squarethread();
On Tue, Feb 8, 2022 at 10:03 AM gene heskett <gheskett@shentel.net> wrote:
> greetings;
>
> I am trying to create the making of a pair of half nuts, big one to be
> used in a woodworkers bench vice.
> Creating the 2 start threads was a piece of cake. First two lines of the
> union().
> Then as part of the union I put what is supposed to be a solid cylinder
> in the middle of it to give the threads an anchor base. but no matter how
> I do it, its tapered over its length, then chamfored back to the correct
> size, it is not a cylinder, nor are any of the vars I used involved with
> the generation of this central cylinder, the thread roots shank of the
> bolt.
>
> To really see it, comment out the last line which disappears an outer
> difference to clean up the outer faces of the threads. That line will not
> be used to generate the nut, but will define the outer edge of the screw
> to be carved in hard maple by expanding the thread count till its about
> 18 inches long. So what is generating this unwanted taper?
>
> The code so far:
> ===========================
> module squarethread()
> {
> // test draw sample screw thread, this a 2 start to prove idea.
> threads=6;
> tw=3.175; // 1/8 inch in mm
> tp=25;
> tt=2.9; //tilt of segment to align with neighbors
> difference()
> {
> union() //combine next 3 lines as diff arg one
> {
> rotate([90,0,0])
> for(fx=[0:1:359*threads])
> {
> rotate([0,tt,fx])
> { //these are the threads, 2 start
> translate([0,30,1+fx/tp])
> rotate([0,0,45])
> cylinder(h=tw,d=5,$fn=4,center=true);
> translate([0,-30,1+fx/tp])
> rotate([0,0,45])
> cylinder(h=tw,d=5,$fn=4,center=true);
> // fill interior with solid rod
> translate([0,0,45])
> cylinder(h=16*threads,d=53.75,$fn=180,center=true);
> }
> }
> }
> }// subtract outer wall for smoothness is diff arg line 2
> #rotate([90,90,0])
> #translate([0,0,43.5])
> cylinder(h=15*threads,d=66,$fn=180,center=true);
>
> };
> ==========================
> This email editor does not allow turning off word wrap, fixed above but
> code now looks like above, apparent error is unaffected.
>
> Thanks all.
>
> Cheers, Gene Heskett.
> --
> "There are four boxes to be used in defense of liberty:
> soap, ballot, jury, and ammo. Please use in that order."
> -Ed Howdershelt (Author, 1940)
> If we desire respect for the law, we must first make the law respectable.
> - Louis D. Brandeis
> Genes Web page <http://geneslinuxbox.net:6309/gene>
>
>
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
>
RW
Raymond West
Tue, Feb 8, 2022 11:35 PM
Hi Gene,
There is no need for the solid cylinder to be insideĀ the for loop. Move
it outside the loop, it looks OK then.
On 08/02/2022 13:15, gene heskett wrote:
greetings;
I am trying to create the making of a pair of half nuts, big one to be
used in a woodworkers bench vice.
Creating the 2 start threads was a piece of cake. First two lines of the
union().
Then as part of the union I put what is supposed to be a solid cylinder
in the middle of it to give the threads an anchor base. but no matter how
I do it, its tapered over its length, then chamfored back to the correct
size, it is not a cylinder, nor are any of the vars I used involved with
the generation of this central cylinder, the thread roots shank of the
bolt.
To really see it, comment out the last line which disappears an outer
difference to clean up the outer faces of the threads. That line will not
be used to generate the nut, but will define the outer edge of the screw
to be carved in hard maple by expanding the thread count till its about
18 inches long. So what is generating this unwanted taper?
The code so far:
module squarethread()
{
// test draw sample screw thread, this a 2 start to prove idea.
threads=6;
tw=3.175; // 1/8 inch in mm
tp=25;
tt=2.9; //tilt of segment to align with neighbors
difference()
{
union() //combine next 3 lines as diff arg one
{
rotate([90,0,0])
for(fx=[0:1:359threads])
{
rotate([0,tt,fx])
{ //these are the threads, 2 start
translate([0,30,1+fx/tp])
rotate([0,0,45])
cylinder(h=tw,d=5,$fn=4,center=true);
translate([0,-30,1+fx/tp])
rotate([0,0,45])
cylinder(h=tw,d=5,$fn=4,center=true);
// fill interior with solid rod
translate([0,0,45])
cylinder(h=16threads,d=53.75,$fn=180,center=true);
}
}
}
}// subtract outer wall for smoothness is diff arg line 2
#rotate([90,90,0])
#translate([0,0,43.5])
cylinder(h=15*threads,d=66,$fn=180,center=true);
};
This email editor does not allow turning off word wrap, fixed above but
code now looks like above, apparent error is unaffected.
Thanks all.
Cheers, Gene Heskett.
Hi Gene,
There is no need for the solid cylinder to be insideĀ the for loop. Move
it outside the loop, it looks OK then.
On 08/02/2022 13:15, gene heskett wrote:
> greetings;
>
> I am trying to create the making of a pair of half nuts, big one to be
> used in a woodworkers bench vice.
> Creating the 2 start threads was a piece of cake. First two lines of the
> union().
> Then as part of the union I put what is supposed to be a solid cylinder
> in the middle of it to give the threads an anchor base. but no matter how
> I do it, its tapered over its length, then chamfored back to the correct
> size, it is not a cylinder, nor are any of the vars I used involved with
> the generation of this central cylinder, the thread roots shank of the
> bolt.
>
> To really see it, comment out the last line which disappears an outer
> difference to clean up the outer faces of the threads. That line will not
> be used to generate the nut, but will define the outer edge of the screw
> to be carved in hard maple by expanding the thread count till its about
> 18 inches long. So what is generating this unwanted taper?
>
> The code so far:
> ===========================
> module squarethread()
> {
> // test draw sample screw thread, this a 2 start to prove idea.
> threads=6;
> tw=3.175; // 1/8 inch in mm
> tp=25;
> tt=2.9; //tilt of segment to align with neighbors
> difference()
> {
> union() //combine next 3 lines as diff arg one
> {
> rotate([90,0,0])
> for(fx=[0:1:359*threads])
> {
> rotate([0,tt,fx])
> { //these are the threads, 2 start
> translate([0,30,1+fx/tp])
> rotate([0,0,45])
> cylinder(h=tw,d=5,$fn=4,center=true);
> translate([0,-30,1+fx/tp])
> rotate([0,0,45])
> cylinder(h=tw,d=5,$fn=4,center=true);
> // fill interior with solid rod
> translate([0,0,45])
> cylinder(h=16*threads,d=53.75,$fn=180,center=true);
> }
> }
> }
> }// subtract outer wall for smoothness is diff arg line 2
> #rotate([90,90,0])
> #translate([0,0,43.5])
> cylinder(h=15*threads,d=66,$fn=180,center=true);
>
> };
> ==========================
> This email editor does not allow turning off word wrap, fixed above but
> code now looks like above, apparent error is unaffected.
>
> Thanks all.
>
> Cheers, Gene Heskett.
GH
gene heskett
Wed, Feb 9, 2022 12:19 AM
On Tuesday, February 8, 2022 3:41:56 PM EST David Phillip Oster wrote:
I'm not seeing the problem. I'm looking at in ortho, not perspective,
and I've move the central cylinder outside the for loop:
Probably a good idea, as this takes forever for an F6.
Thanks, I'll advise when done, put it above the for loop, the overlap
shouldn't need the union as long as its touching.
I'll probably make a module out of the shank and threads, and use the
module for a first argument for the diff so the rest of it can subtract.
Done, with reservations. There is a warning tast it masy not be a 2
manifold object and may need repair, this sfter 10 minutes of munching on
it aas a half nut.
The other concern seems related some how to the direction of the for, or
makeing a 2 start by changing the sign of the y offset so I'm cutting
tweo grooves with one step of the for.. The grooves cut in the f5 or f6
render are just noticably different sizes, maybe 5% different?
Thanks for the advice, Phillip, it was spot on.
Cheers, Gene Heskett.
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.
On Tuesday, February 8, 2022 3:41:56 PM EST David Phillip Oster wrote:
> I'm not seeing the problem. I'm looking at in ortho, not perspective,
> and I've move the central cylinder outside the *for* loop:
Probably a good idea, as this takes forever for an F6.
Thanks, I'll advise when done, put it above the for loop, the overlap
shouldn't need the union as long as its touching.
I'll probably make a module out of the shank and threads, and use the
module for a first argument for the diff so the rest of it can subtract.
Done, with reservations. There is a warning tast it masy not be a 2
manifold object and may need repair, this sfter 10 minutes of munching on
it aas a half nut.
The other concern seems related some how to the direction of the for, or
makeing a 2 start by changing the sign of the y offset so I'm cutting
tweo grooves with one step of the for.. The grooves cut in the f5 or f6
render are just noticably different sizes, maybe 5% different?
Thanks for the advice, Phillip, it was spot on.
Cheers, Gene Heskett.
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.
- Louis D. Brandeis
Genes Web page <http://geneslinuxbox.net:6309/gene>
GH
gene heskett
Wed, Feb 9, 2022 1:12 AM
On Tuesday, February 8, 2022 6:35:56 PM EST Raymond West wrote:
Hi Gene,
There is no need for the solid cylinder to be inside the for loop.
Move
it outside the loop, it looks OK then.
I actually made 5 new modules out of it, the only way I could keep the
differences straight in my ancient brain. Must have done something right,
the render time is now a few seconds over 10 minutes for the whole 2
start half nut subject of coarse to revisions depending on how big a fine
grained hardwood I can source for the screws. My new B drive is working
well so I can probably write the gcode for the screws in less time than
this has burned up... The B drive is now powered by a 1NM stepper/servo,
giving a 50/1 gear down from an all printed plastic drive I have about
$15 in, including the jar of crosman bb's for bearing balls. Beats paying
$2000+ for a new one. My 6040 mill can handle 600mm total X travel or
about 400mm when the length of the drive and its tail stock are
subtracted. If I can find good hardwood, 20" long screws 2"+ in diameter
are an achievable goal. Hard Sugar Maple from north of the 50th parallel
would be ideal, as its longitudinal sheer strength is well over a ton per
sq inch, say 1 4x4 about 4 foot long, but practice on cheaper stuff.
Thank you all.
On 08/02/2022 13:15, gene heskett wrote:
greetings;
I am trying to create the making of a pair of half nuts, big one to
be
used in a woodworkers bench vice.
Creating the 2 start threads was a piece of cake. First two lines of
the
Then as part of the union I put what is supposed to be a solid
cylinder
in the middle of it to give the threads an anchor base.
but no matter how I do it, its tapered over its length, then
chamfored back to the correct size, it is not a cylinder, nor are
any of the vars I used involved with the generation of this central
cylinder, the thread roots shank of the bolt.
To really see it, comment out the last line which disappears an
outer
difference to clean up the outer faces of the threads. That line will
not
be used to generate the nut, but will define the outer edge of
the screw to be carved in hard maple by expanding the thread count
till its about 18 inches long. So what is generating this unwanted
taper?
The code now:
global stuff:
threads=6;
tw=3.175; // 1/8 inch
tp=25;
tt=2.9; //tilt of segment to align with neighbors
to=-(3.175/2);
module halfnut()
difference()
{
translate([0,0,17.5])cube([72,75,35],center=true);
translate([36,0,36])squarethread();
};
module squarethread()
{
// test draw sample screw thread, this a 2 start to prove idea.
rotate([0,-90,0])
difference()
{
union()
{
rotate([0,0,0])
{
drawbase();
drawthreads();
}
}
cleanup();
}
}
module drawbase()
{
translate([0,0,36])
cylinder(h=14threads,d=55.25,$fn=180,center=true);
};
module drawthreads()
{
for(fx=[0:1:359threads])
{
rotate([0,tt,fx])
{ //these are the threads, 2 start, thread 1 by +y translate
translate([0,30,to+fx/tp])
rotate([0,0,45])
cylinder(h=tw,d=7,$fn=4,center=true);// end tooth 1 thread 1
translate([0,-30,to+fx/tp])// thread 2 start
rotate([0,0,45]) // 180 spin by -y above
cylinder(h=tw,d=7,$fn=4,center=true);
// fill interior for bolt shank for teeth to sit on
}
}
};
module cleanup()
{
// subtract clean baseline end
translate([0,0,-3])
rotate([0,0,0])
cylinder(h=6, d=70,$fn=180,center=true);
// subtract other clean far end
translate([0,0,79.5]) // clip nut to about 3" long?
rotate([0,0,0])
cylinder(h=15, d=70,$fn=180,center=true);
// subtract outer wall for smoothness, does NOT work
// rotate([90,90,0])
// #translate([0,0,35.75])
// cylinder(h=12threads,d=70.5,$fn=180,center=true);
// rotate([90,90,0])
// translate([0,0,-43.75])
// cylinder(h=15threads,d=63.25,$fn=180,center=true);
};
[...]
clear at bottom of file:
if(mode==12)
{
squarethread(); // generates bolt
};
if(mode==13)
{
halfnut(); // buries it in half nut.
};
Thanks. Take care and stay well.
Cheers, Gene Heskett.
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.
On Tuesday, February 8, 2022 6:35:56 PM EST Raymond West wrote:
> Hi Gene,
>
> There is no need for the solid cylinder to be inside the for loop.
> Move
it outside the loop, it looks OK then.
I actually made 5 new modules out of it, the only way I could keep the
differences straight in my ancient brain. Must have done something right,
the render time is now a few seconds over 10 minutes for the whole 2
start half nut subject of coarse to revisions depending on how big a fine
grained hardwood I can source for the screws. My new B drive is working
well so I can probably write the gcode for the screws in less time than
this has burned up... The B drive is now powered by a 1NM stepper/servo,
giving a 50/1 gear down from an all printed plastic drive I have about
$15 in, including the jar of crosman bb's for bearing balls. Beats paying
$2000+ for a new one. My 6040 mill can handle 600mm total X travel or
about 400mm when the length of the drive and its tail stock are
subtracted. If I can find good hardwood, 20" long screws 2"+ in diameter
are an achievable goal. Hard Sugar Maple from north of the 50th parallel
would be ideal, as its longitudinal sheer strength is well over a ton per
sq inch, say 1 4x4 about 4 foot long, but practice on cheaper stuff.
Thank you all.
> On 08/02/2022 13:15, gene heskett wrote:
>
> > greetings;
> >
> >
> >
> > I am trying to create the making of a pair of half nuts, big one to
> > be
used in a woodworkers bench vice.
> > Creating the 2 start threads was a piece of cake. First two lines of
> > the
union().
> > Then as part of the union I put what is supposed to be a solid
> > cylinder
in the middle of it to give the threads an anchor base.
> > but no matter how I do it, its tapered over its length, then
> > chamfored back to the correct size, it is not a cylinder, nor are
> > any of the vars I used involved with the generation of this central
> > cylinder, the thread roots shank of the bolt.
> >
> >
> >
> > To really see it, comment out the last line which disappears an
> > outer
> > difference to clean up the outer faces of the threads. That line will
> > not
be used to generate the nut, but will define the outer edge of
> > the screw to be carved in hard maple by expanding the thread count
> > till its about 18 inches long. So what is generating this unwanted
> > taper?
> >
> >
> >
The code now:
===========================
global stuff:
threads=6;
tw=3.175; // 1/8 inch
tp=25;
tt=2.9; //tilt of segment to align with neighbors
to=-(3.175/2);
module halfnut()
difference()
{
translate([0,0,17.5])cube([72,75,35],center=true);
translate([36,0,36])squarethread();
};
module squarethread()
{
// test draw sample screw thread, this a 2 start to prove idea.
rotate([0,-90,0])
difference()
{
union()
{
rotate([0,0,0])
{
drawbase();
drawthreads();
}
}
cleanup();
}
}
module drawbase()
{
translate([0,0,36])
cylinder(h=14*threads,d=55.25,$fn=180,center=true);
};
module drawthreads()
{
for(fx=[0:1:359*threads])
{
rotate([0,tt,fx])
{ //these are the threads, 2 start, thread 1 by +y translate
translate([0,30,to+fx/tp])
rotate([0,0,45])
cylinder(h=tw,d=7,$fn=4,center=true);// end tooth 1 thread 1
translate([0,-30,to+fx/tp])// thread 2 start
rotate([0,0,45]) // 180 spin by -y above
cylinder(h=tw,d=7,$fn=4,center=true);
// fill interior for bolt shank for teeth to sit on
}
}
};
module cleanup()
{
// subtract clean baseline end
translate([0,0,-3])
rotate([0,0,0])
cylinder(h=6, d=70,$fn=180,center=true);
// subtract other clean far end
translate([0,0,79.5]) // clip nut to about 3" long?
rotate([0,0,0])
cylinder(h=15, d=70,$fn=180,center=true);
// subtract outer wall for smoothness, does NOT work
// rotate([90,90,0])
// #translate([0,0,35.75])
// cylinder(h=12*threads,d=70.5,$fn=180,center=true);
// rotate([90,90,0])
// translate([0,0,-43.75])
// cylinder(h=15*threads,d=63.25,$fn=180,center=true);
};
[...]
clear at bottom of file:
if(mode==12)
{
squarethread(); // generates bolt
};
if(mode==13)
{
halfnut(); // buries it in half nut.
};
Thanks. Take care and stay well.
Cheers, Gene Heskett.
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.
- Louis D. Brandeis
Genes Web page <http://geneslinuxbox.net:6309/gene>
SP
Sanjeev Prabhakar
Wed, Feb 9, 2022 1:20 AM
There can be an alternate way of writing the same (attached here)
It takes around 6 sec for F6 render on my computer.
You can change few parameters to fit your exact requirements
Unfortunately, the code is not very clear for other users and I have to
improve my code writing skill.
On Tue, 8 Feb 2022 at 23:33, gene heskett gheskett@shentel.net wrote:
greetings;
I am trying to create the making of a pair of half nuts, big one to be
used in a woodworkers bench vice.
Creating the 2 start threads was a piece of cake. First two lines of the
union().
Then as part of the union I put what is supposed to be a solid cylinder
in the middle of it to give the threads an anchor base. but no matter how
I do it, its tapered over its length, then chamfored back to the correct
size, it is not a cylinder, nor are any of the vars I used involved with
the generation of this central cylinder, the thread roots shank of the
bolt.
To really see it, comment out the last line which disappears an outer
difference to clean up the outer faces of the threads. That line will not
be used to generate the nut, but will define the outer edge of the screw
to be carved in hard maple by expanding the thread count till its about
18 inches long. So what is generating this unwanted taper?
The code so far:
module squarethread()
{
// test draw sample screw thread, this a 2 start to prove idea.
threads=6;
tw=3.175; // 1/8 inch in mm
tp=25;
tt=2.9; //tilt of segment to align with neighbors
difference()
{
union() //combine next 3 lines as diff arg one
{
rotate([90,0,0])
for(fx=[0:1:359threads])
{
rotate([0,tt,fx])
{ //these are the threads, 2 start
translate([0,30,1+fx/tp])
rotate([0,0,45])
cylinder(h=tw,d=5,$fn=4,center=true);
translate([0,-30,1+fx/tp])
rotate([0,0,45])
cylinder(h=tw,d=5,$fn=4,center=true);
// fill interior with solid rod
translate([0,0,45])
cylinder(h=16threads,d=53.75,$fn=180,center=true);
}
}
}
}// subtract outer wall for smoothness is diff arg line 2
#rotate([90,90,0])
#translate([0,0,43.5])
cylinder(h=15*threads,d=66,$fn=180,center=true);
};
This email editor does not allow turning off word wrap, fixed above but
code now looks like above, apparent error is unaffected.
Thanks all.
Cheers, Gene Heskett.
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
There can be an alternate way of writing the same (attached here)
It takes around 6 sec for F6 render on my computer.
You can change few parameters to fit your exact requirements
Unfortunately, the code is not very clear for other users and I have to
improve my code writing skill.
On Tue, 8 Feb 2022 at 23:33, gene heskett <gheskett@shentel.net> wrote:
> greetings;
>
> I am trying to create the making of a pair of half nuts, big one to be
> used in a woodworkers bench vice.
> Creating the 2 start threads was a piece of cake. First two lines of the
> union().
> Then as part of the union I put what is supposed to be a solid cylinder
> in the middle of it to give the threads an anchor base. but no matter how
> I do it, its tapered over its length, then chamfored back to the correct
> size, it is not a cylinder, nor are any of the vars I used involved with
> the generation of this central cylinder, the thread roots shank of the
> bolt.
>
> To really see it, comment out the last line which disappears an outer
> difference to clean up the outer faces of the threads. That line will not
> be used to generate the nut, but will define the outer edge of the screw
> to be carved in hard maple by expanding the thread count till its about
> 18 inches long. So what is generating this unwanted taper?
>
> The code so far:
> ===========================
> module squarethread()
> {
> // test draw sample screw thread, this a 2 start to prove idea.
> threads=6;
> tw=3.175; // 1/8 inch in mm
> tp=25;
> tt=2.9; //tilt of segment to align with neighbors
> difference()
> {
> union() //combine next 3 lines as diff arg one
> {
> rotate([90,0,0])
> for(fx=[0:1:359*threads])
> {
> rotate([0,tt,fx])
> { //these are the threads, 2 start
> translate([0,30,1+fx/tp])
> rotate([0,0,45])
> cylinder(h=tw,d=5,$fn=4,center=true);
> translate([0,-30,1+fx/tp])
> rotate([0,0,45])
> cylinder(h=tw,d=5,$fn=4,center=true);
> // fill interior with solid rod
> translate([0,0,45])
> cylinder(h=16*threads,d=53.75,$fn=180,center=true);
> }
> }
> }
> }// subtract outer wall for smoothness is diff arg line 2
> #rotate([90,90,0])
> #translate([0,0,43.5])
> cylinder(h=15*threads,d=66,$fn=180,center=true);
>
> };
> ==========================
> This email editor does not allow turning off word wrap, fixed above but
> code now looks like above, apparent error is unaffected.
>
> Thanks all.
>
> Cheers, Gene Heskett.
> --
> "There are four boxes to be used in defense of liberty:
> soap, ballot, jury, and ammo. Please use in that order."
> -Ed Howdershelt (Author, 1940)
> If we desire respect for the law, we must first make the law respectable.
> - Louis D. Brandeis
> Genes Web page <http://geneslinuxbox.net:6309/gene>
>
>
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
>
GH
gene heskett
Wed, Feb 9, 2022 2:02 AM
On Tuesday, February 8, 2022 8:20:15 PM EST Sanjeev Prabhakar wrote:
There can be an alternate way of writing the same (attached here)
It takes around 6 sec for F6 render on my computer.
You can change few parameters to fit your exact requirements
Unfortunately, the code is not very clear for other users and I have to
improve my code writing skill.
Thanks a bunch, but that code has been re-written now, Still a 10 minute
job, and I need to improve my code writing too.
What I have now works, image attached. And the current code is in the
previous post. Gotta find the wood and make the screws next. Need some
sugar maple from north of the 50th parallel...
greetings;
I am trying to create the making of a pair of half nuts, big one to
be
used in a woodworkers bench vice.
Creating the 2 start threads was a piece of cake. First two lines of
the union().
Then as part of the union I put what is supposed to be a solid
cylinder in the middle of it to give the threads an anchor base. but
no matter how I do it, its tapered over its length, then chamfored
back to the correct size, it is not a cylinder, nor are any of the
vars I used involved with the generation of this central cylinder,
the thread roots shank of the bolt.
To really see it, comment out the last line which disappears an outer
difference to clean up the outer faces of the threads. That line will
not be used to generate the nut, but will define the outer edge of
the screw to be carved in hard maple by expanding the thread count
till its about 18 inches long. So what is generating this unwanted
taper?
The code so far:
module squarethread()
{
// test draw sample screw thread, this a 2 start to prove idea.
threads=6;
tw=3.175; // 1/8 inch in mm
tp=25;
tt=2.9; //tilt of segment to align with neighbors
difference()
{
union() //combine next 3 lines as diff arg one
{
rotate([90,0,0])
for(fx=[0:1:359*threads])
{
rotate([0,tt,fx])
{ //these are the threads, 2 start
translate([0,30,1+fx/tp])
rotate([0,0,45])
cylinder(h=tw,d=5,$fn=4,center=true);
translate([0,-30,1+fx/tp])
rotate([0,0,45])
cylinder(h=tw,d=5,$fn=4,center=true);
// fill interior with solid rod
translate([0,0,45])
cylinder(h=16*threads,d=53.75,$fn=180,center=true
);
}
}
}
}// subtract outer wall for smoothness is diff arg line 2
#rotate([90,90,0])
#translate([0,0,43.5])
cylinder(h=15*threads,d=66,$fn=180,center=true);
};
This email editor does not allow turning off word wrap, fixed above
but code now looks like above, apparent error is unaffected.
Thanks all.
Cheers, Gene Heskett.
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law
respectable.>
Genes Web page http://geneslinuxbox.net:6309/gene
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
Cheers, Gene Heskett.
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.
On Tuesday, February 8, 2022 8:20:15 PM EST Sanjeev Prabhakar wrote:
> There can be an alternate way of writing the same (attached here)
> It takes around 6 sec for F6 render on my computer.
> You can change few parameters to fit your exact requirements
> Unfortunately, the code is not very clear for other users and I have to
> improve my code writing skill.
>
Thanks a bunch, but that code has been re-written now, Still a 10 minute
job, and I need to improve my code writing too.
What I have now works, image attached. And the current code is in the
previous post. Gotta find the wood and make the screws next. Need some
sugar maple from north of the 50th parallel...
> On Tue, 8 Feb 2022 at 23:33, gene heskett <gheskett@shentel.net> wrote:
> > greetings;
> >
> > I am trying to create the making of a pair of half nuts, big one to
> > be
> > used in a woodworkers bench vice.
> > Creating the 2 start threads was a piece of cake. First two lines of
> > the union().
> > Then as part of the union I put what is supposed to be a solid
> > cylinder in the middle of it to give the threads an anchor base. but
> > no matter how I do it, its tapered over its length, then chamfored
> > back to the correct size, it is not a cylinder, nor are any of the
> > vars I used involved with the generation of this central cylinder,
> > the thread roots shank of the bolt.
> >
> > To really see it, comment out the last line which disappears an outer
> > difference to clean up the outer faces of the threads. That line will
> > not be used to generate the nut, but will define the outer edge of
> > the screw to be carved in hard maple by expanding the thread count
> > till its about 18 inches long. So what is generating this unwanted
> > taper?
> >
> > The code so far:
> > ===========================
> > module squarethread()
> > {
> > // test draw sample screw thread, this a 2 start to prove idea.
> > threads=6;
> > tw=3.175; // 1/8 inch in mm
> > tp=25;
> > tt=2.9; //tilt of segment to align with neighbors
> >
> > difference()
> > {
> >
> > union() //combine next 3 lines as diff arg one
> > {
> >
> > rotate([90,0,0])
> > for(fx=[0:1:359*threads])
> > {
> >
> > rotate([0,tt,fx])
> > { //these are the threads, 2 start
> >
> > translate([0,30,1+fx/tp])
> > rotate([0,0,45])
> > cylinder(h=tw,d=5,$fn=4,center=true);
> > translate([0,-30,1+fx/tp])
> > rotate([0,0,45])
> > cylinder(h=tw,d=5,$fn=4,center=true);
> > // fill interior with solid rod
> > translate([0,0,45])
> > cylinder(h=16*threads,d=53.75,$fn=180,center=true
> > );
> >
> > }
> >
> > }
> >
> > }
> >
> > }// subtract outer wall for smoothness is diff arg line 2
> > #rotate([90,90,0])
> > #translate([0,0,43.5])
> >
> > cylinder(h=15*threads,d=66,$fn=180,center=true);
> >
> > };
> > ==========================
> > This email editor does not allow turning off word wrap, fixed above
> > but code now looks like above, apparent error is unaffected.
> >
> > Thanks all.
> >
> > Cheers, Gene Heskett.
> > --
> >
> > "There are four boxes to be used in defense of liberty:
> > soap, ballot, jury, and ammo. Please use in that order."
> >
> > -Ed Howdershelt (Author, 1940)
> > If we desire respect for the law, we must first make the law
> > respectable.>
> > - Louis D. Brandeis
> >
> > Genes Web page <http://geneslinuxbox.net:6309/gene>
> >
> >
> > _______________________________________________
> > OpenSCAD mailing list
> > To unsubscribe send an email to discuss-leave@lists.openscad.org
Cheers, Gene Heskett.
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.
- Louis D. Brandeis
Genes Web page <http://geneslinuxbox.net:6309/gene>