Creating screw threads?

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

Creating screw threads?

Scalpel78
This post has NOT been accepted by the mailing list yet.
Hi, I see this has been asked a few times before, but perhaps something has changed since then.

Is there any (good) way to create threads for a screw?
Reply | Threaded
Open this post in threaded view
|

Re: Creating screw threads?

MichaelAtOz
Administrator
Bump - so it goes to the mailing list.
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.


The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ time is running out!
Reply | Threaded
Open this post in threaded view
|

Re: Creating screw threads?

Mythobeast
Try this. It's simplistic, but you should be able to adjust it to do what you're looking for.



linear_extrude(h=20, twist=20*90)

{

union()

{

circle(r=15);

polygon([[30,0],[7.5813,13],[7.5813,-13]]);

polygon([[-30,0],[-7.5813,13],[-7.5813,-13]]);

}

}





On 12/4/2014 2:03 PM, MichaelAtOz wrote:
Bump - so it goes to the mailing list.



-----
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. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above.

The TPP is no simple “trade agreement.”   Fight it! http://www.ourfairdeal.org/
--
View this message in context: http://forum.openscad.org/Creating-screw-threads-tp10306p10336.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Creating screw threads?

MichaelAtOz
Administrator
In reply to this post by Scalpel78
have a look in libraries/mcad/screw.scad and search thingiverse.com for 'screw'.
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.


The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ time is running out!
Reply | Threaded
Open this post in threaded view
|

Re: Creating screw threads?

Chow Loong Jin
In reply to this post by Mythobeast
On Sat, Dec 06, 2014 at 07:50:04PM -0700, Robert Rapplea wrote:

> Try this. It's simplistic, but you should be able to adjust it to do what
> you're looking for.
>
>
>
> linear_extrude(h=20, twist=20*90)
>
> {
>
> union()
>
> {
>
> circle(r=15);
>
> polygon([[30,0],[7.5813,13],[7.5813,-13]]);
>
> polygon([[-30,0],[-7.5813,13],[-7.5813,-13]]);
>
> }
>
> }
If you can plot out a polygon of the thread profile for the entire length of
rotation in a circular form, you can then linear_extrude it with a certain
amount of twist and height in order to get your screw.

Basically, take a thread profile, plot it on graph paper on an X/Y axis, and
change the X/Y labels to angle/radius, and you've gotten a proper cross-section
for your thread.

I implemented this in https://github.com/openscad/MCAD, in fasteners/thread.scad
in the dev branch.

--
Kind regards,
Loong Jin

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

signature.asc (836 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Creating screw threads?

Chow Loong Jin
On Mon, Dec 08, 2014 at 12:16:09PM +0800, Chow Loong Jin wrote:

> [...]
> If you can plot out a polygon of the thread profile for the entire length of
> rotation in a circular form, you can then linear_extrude it with a certain
> amount of twist and height in order to get your screw.
>
> Basically, take a thread profile, plot it on graph paper on an X/Y axis, and
> change the X/Y labels to angle/radius, and you've gotten a proper cross-section
> for your thread.
>
> I implemented this in https://github.com/openscad/MCAD, in fasteners/thread.scad
> in the dev branch.
https://github.com/openscad/MCAD/blob/dev/fasteners/threads.scad#L147 for a
generic trapezoidal thread that can generate buttress, acme, and metric threads.
Doing a tapered thread this way is beyond me, though. I'm thinking of replacing
this approach with the sweep() module from the list comprehension demos, which
would be cleaner and simpler to implement.

--
Kind regards,
Loong Jin

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

signature.asc (836 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Creating screw threads?

GregL
This post has NOT been accepted by the mailing list yet.
Try this code to get either a smooth tooth form, or a trapezoidal tooth form.
Simply stack replications to get a worm gear of the required length

//----------------------------------
module Worm1(Wpcd,Wtooth,Wpitch)//PCD, tooth height above PCD, worm pitch and length
{ linear_extrude(height = Wpitch, twist = -360, slices = 80)
                translate([Wtooth,0,0])circle(d = Wpcd);
}; // end module
//-----------------------------------------------------------------------------------
module TrapToothSection(PCD,Theight)
{ $fn=30;
        RPT = PCD/2+Theight;
        RMT = PCD/2-Theight;
        TRM = sqrt(RPT*RMT/(PCD*PCD/4+Theight*Theight));
        XX = 0.5*( RPT - RMT*TRM);
        YY = 0.5*(-RMT + RPT*TRM);
        difference(){union()
                                                { circle(r=RMT);
                                                        translate([ XX,YY,0])circle(d = PCD);
                                                        translate([ YY,XX,0])circle(d = PCD);
                                                };
                                                difference(){ circle(r = PCD);
                                                                                        circle(r = RPT);
                                                                                 };
                                        };
};
//-------------------------------------------------------------------------
module WormT1(Wpcd,Wtooth,Wpitch)//PCD, tooth height above PCD, worm pitch and length
{ linear_extrude(height = Wpitch, twist = -360, slices = 50)
                TrapToothSection(Wpcd,Wtooth);
};
//-------------------------------------------------------------------------
Worm1(10,1,3);
translate([15,0,0])WormT1(10,1,3);
Reply | Threaded
Open this post in threaded view
|

Re: Creating screw threads?

AdrianSchlatter
In reply to this post by Scalpel78

Hi,

I like the way it is done here. The lead-in / lead-out tapers are nice.

I built upon that to create an entire library of threads: With it you create threads by simply naming the designator of the thread (e.g. “M6-ext” or “G3/4-int”). Currently, it has metric screw threads and British pipe threads.

Regards, Adrian



Sent from the OpenSCAD mailing list archive at Nabble.com.

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org