KE
Karl Exler
Fri, Jun 9, 2023 8:42 AM
Dear all,
I did several tries to print screws and nuts. I use Openscad for
development and tried ABS, and PLA for printing. As I mentioned that the
standard DIN pitch is too small for printing (??) I tried higher
pitches. (up to 2)
My questions are:
- what is the smallest screw (+nut) you can print on a Prusa Mini+ (and
it works)?
- which filament is best for screws?
- which layer height should I use?
- are there any examples available?
------------------------------------------Code START
include <bosl2/std.scad>;
include <bosl2/screws.scad>;
$fn=100;
l=15;
b=2.5;
h=12;
gl=10;
sp=15;
rotate([0,0,0])
translate([0,35,0])
xdistribute(spacing=sp)
{
screw("M6", anchor="bot",head="none", length=l,thread_len=gl);
screw("M8", anchor="bot",head="none", length=l,thread_len=gl);
threaded_rod(d = 6, l = l, pitch = 1, anchor=BOT, bevel = true);
threaded_rod(d = 6, l = l, pitch = 1.5, anchor=BOT, bevel = true);
threaded_rod(d = 6, l = l, pitch = 2, anchor=BOT, bevel = true);
threaded_rod(d = 7, l = l, pitch = 1, anchor=BOT, bevel = true);
threaded_rod(d = 7, l = l, pitch = 1.5, anchor=BOT, bevel = true);
threaded_rod(d = 7, l = l, pitch = 2, anchor=BOT, bevel = true);
}
xdistribute(spacing=sp)
{
nut("M6");
nut("M8");
threaded_nut(nutwidth=8, anchor=BOT, id=6, h=5, pitch=1, $slop=0.05,
$fa=1, $fs=1);
threaded_nut(nutwidth=9, anchor=BOT, id=6, h=5, pitch=1.5, $slop=0.05,
$fa=1, $fs=1);
threaded_nut(nutwidth=10, anchor=BOT, id=6, h=5, pitch=2, $slop=0.05,
$fa=1, $fs=1);
threaded_nut(nutwidth=9, anchor=BOT, id=7, h=5, pitch=1, $slop=0.05,
$fa=1, $fs=1);
threaded_nut(nutwidth=10, anchor=BOT, id=7, h=5, pitch=1.5, $slop=0.05,
$fa=1, $fs=1);
threaded_nut(nutwidth=11, anchor=BOT, id=7, h=5, pitch=2, $slop=0.05,
$fa=1, $fs=1);
}
------------------------------------------Code
END---------------------------------------
Dear all,
I did several tries to print screws and nuts. I use Openscad for
development and tried ABS, and PLA for printing. As I mentioned that the
standard DIN pitch is too small for printing (??) I tried higher
pitches. (up to 2)
My questions are:
- what is the smallest screw (+nut) you can print on a Prusa Mini+ (and
it works)?
- which filament is best for screws?
- which layer height should I use?
- are there any examples available?
------------------------------------------Code START
---------------------------------------
include <bosl2/std.scad>;
include <bosl2/screws.scad>;
$fn=100;
l=15;
b=2.5;
h=12;
gl=10;
sp=15;
rotate([0,0,0])
translate([0,35,0])
xdistribute(spacing=sp)
{
screw("M6", anchor="bot",head="none", length=l,thread_len=gl);
screw("M8", anchor="bot",head="none", length=l,thread_len=gl);
threaded_rod(d = 6, l = l, pitch = 1, anchor=BOT, bevel = true);
threaded_rod(d = 6, l = l, pitch = 1.5, anchor=BOT, bevel = true);
threaded_rod(d = 6, l = l, pitch = 2, anchor=BOT, bevel = true);
threaded_rod(d = 7, l = l, pitch = 1, anchor=BOT, bevel = true);
threaded_rod(d = 7, l = l, pitch = 1.5, anchor=BOT, bevel = true);
threaded_rod(d = 7, l = l, pitch = 2, anchor=BOT, bevel = true);
}
xdistribute(spacing=sp)
{
nut("M6");
nut("M8");
threaded_nut(nutwidth=8, anchor=BOT, id=6, h=5, pitch=1, $slop=0.05,
$fa=1, $fs=1);
threaded_nut(nutwidth=9, anchor=BOT, id=6, h=5, pitch=1.5, $slop=0.05,
$fa=1, $fs=1);
threaded_nut(nutwidth=10, anchor=BOT, id=6, h=5, pitch=2, $slop=0.05,
$fa=1, $fs=1);
threaded_nut(nutwidth=9, anchor=BOT, id=7, h=5, pitch=1, $slop=0.05,
$fa=1, $fs=1);
threaded_nut(nutwidth=10, anchor=BOT, id=7, h=5, pitch=1.5, $slop=0.05,
$fa=1, $fs=1);
threaded_nut(nutwidth=11, anchor=BOT, id=7, h=5, pitch=2, $slop=0.05,
$fa=1, $fs=1);
}
------------------------------------------Code
END---------------------------------------
AM
Adrian Mariano
Fri, Jun 9, 2023 10:26 AM
The examples in the BOSL2 manual in example 5 for screw() and Example 3 for
nut() I have printed on a Prusa Mk3 and they work. What is your method of
deciding whether the printed objects work? I printed threaded holes in
smaller sizes, but I don't remember what the smallest that worked was. (I
was also doing tap holes in the same print.) But the 1/4-20 screws worked
fine. I didn't do strength testing. But they mate with each other and
with off the shelf hardware and screw together. I printed in PLA with .15
mm layer height. Note that 1/4-20 would be M6.35x1.27. Note also that
threaded_rod and screw are going to produce different sized output for the
same specified object because screw applies the tolerance adjustments and
threaded rod does not. You can change the pitch by doing screw("M6x2") or
by giving the pitch argument to screw(). I would suggest using one or the
other for consistency if you're trying to test fit, say.
On Fri, Jun 9, 2023 at 4:43 AM Karl Exler karl.exler@meinklang.cc wrote:
Dear all,
I did several tries to print screws and nuts. I use Openscad for
development and tried ABS, and PLA for printing. As I mentioned that the
standard DIN pitch is too small for printing (??) I tried higher
pitches. (up to 2)
My questions are:
- what is the smallest screw (+nut) you can print on a Prusa Mini+ (and
it works)?
- which filament is best for screws?
- which layer height should I use?
- are there any examples available?
------------------------------------------Code START
include <bosl2/std.scad>;
include <bosl2/screws.scad>;
$fn=100;
l=15;
b=2.5;
h=12;
gl=10;
sp=15;
rotate([0,0,0])
translate([0,35,0])
xdistribute(spacing=sp)
{
screw("M6", anchor="bot",head="none", length=l,thread_len=gl);
screw("M8", anchor="bot",head="none", length=l,thread_len=gl);
threaded_rod(d = 6, l = l, pitch = 1, anchor=BOT, bevel = true);
threaded_rod(d = 6, l = l, pitch = 1.5, anchor=BOT, bevel = true);
threaded_rod(d = 6, l = l, pitch = 2, anchor=BOT, bevel = true);
threaded_rod(d = 7, l = l, pitch = 1, anchor=BOT, bevel = true);
threaded_rod(d = 7, l = l, pitch = 1.5, anchor=BOT, bevel = true);
threaded_rod(d = 7, l = l, pitch = 2, anchor=BOT, bevel = true);
}
xdistribute(spacing=sp)
{
nut("M6");
nut("M8");
threaded_nut(nutwidth=8, anchor=BOT, id=6, h=5, pitch=1, $slop=0.05,
$fa=1, $fs=1);
threaded_nut(nutwidth=9, anchor=BOT, id=6, h=5, pitch=1.5, $slop=0.05,
$fa=1, $fs=1);
threaded_nut(nutwidth=10, anchor=BOT, id=6, h=5, pitch=2, $slop=0.05,
$fa=1, $fs=1);
threaded_nut(nutwidth=9, anchor=BOT, id=7, h=5, pitch=1, $slop=0.05,
$fa=1, $fs=1);
threaded_nut(nutwidth=10, anchor=BOT, id=7, h=5, pitch=1.5, $slop=0.05,
$fa=1, $fs=1);
threaded_nut(nutwidth=11, anchor=BOT, id=7, h=5, pitch=2, $slop=0.05,
$fa=1, $fs=1);
}
------------------------------------------Code
END---------------------------------------
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
The examples in the BOSL2 manual in example 5 for screw() and Example 3 for
nut() I have printed on a Prusa Mk3 and they work. What is your method of
deciding whether the printed objects work? I printed threaded holes in
smaller sizes, but I don't remember what the smallest that worked was. (I
was also doing tap holes in the same print.) But the 1/4-20 screws worked
fine. I didn't do strength testing. But they mate with each other and
with off the shelf hardware and screw together. I printed in PLA with .15
mm layer height. Note that 1/4-20 would be M6.35x1.27. Note also that
threaded_rod and screw are going to produce different sized output for the
same specified object because screw applies the tolerance adjustments and
threaded rod does not. You can change the pitch by doing screw("M6x2") or
by giving the pitch argument to screw(). I would suggest using one or the
other for consistency if you're trying to test fit, say.
On Fri, Jun 9, 2023 at 4:43 AM Karl Exler <karl.exler@meinklang.cc> wrote:
> Dear all,
> I did several tries to print screws and nuts. I use Openscad for
> development and tried ABS, and PLA for printing. As I mentioned that the
> standard DIN pitch is too small for printing (??) I tried higher
> pitches. (up to 2)
>
> My questions are:
> - what is the smallest screw (+nut) you can print on a Prusa Mini+ (and
> it works)?
> - which filament is best for screws?
> - which layer height should I use?
> - are there any examples available?
>
>
>
> ------------------------------------------Code START
> ---------------------------------------
> include <bosl2/std.scad>;
> include <bosl2/screws.scad>;
> $fn=100;
>
> l=15;
> b=2.5;
> h=12;
> gl=10;
> sp=15;
>
> rotate([0,0,0])
> translate([0,35,0])
>
> xdistribute(spacing=sp)
> {
> screw("M6", anchor="bot",head="none", length=l,thread_len=gl);
> screw("M8", anchor="bot",head="none", length=l,thread_len=gl);
> threaded_rod(d = 6, l = l, pitch = 1, anchor=BOT, bevel = true);
> threaded_rod(d = 6, l = l, pitch = 1.5, anchor=BOT, bevel = true);
> threaded_rod(d = 6, l = l, pitch = 2, anchor=BOT, bevel = true);
> threaded_rod(d = 7, l = l, pitch = 1, anchor=BOT, bevel = true);
> threaded_rod(d = 7, l = l, pitch = 1.5, anchor=BOT, bevel = true);
> threaded_rod(d = 7, l = l, pitch = 2, anchor=BOT, bevel = true);
> }
>
> xdistribute(spacing=sp)
> {
> nut("M6");
> nut("M8");
> threaded_nut(nutwidth=8, anchor=BOT, id=6, h=5, pitch=1, $slop=0.05,
> $fa=1, $fs=1);
> threaded_nut(nutwidth=9, anchor=BOT, id=6, h=5, pitch=1.5, $slop=0.05,
> $fa=1, $fs=1);
> threaded_nut(nutwidth=10, anchor=BOT, id=6, h=5, pitch=2, $slop=0.05,
> $fa=1, $fs=1);
> threaded_nut(nutwidth=9, anchor=BOT, id=7, h=5, pitch=1, $slop=0.05,
> $fa=1, $fs=1);
> threaded_nut(nutwidth=10, anchor=BOT, id=7, h=5, pitch=1.5, $slop=0.05,
> $fa=1, $fs=1);
> threaded_nut(nutwidth=11, anchor=BOT, id=7, h=5, pitch=2, $slop=0.05,
> $fa=1, $fs=1);
> }
> ------------------------------------------Code
> END---------------------------------------
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
>
AM
Adrian Mariano
Fri, Jun 9, 2023 8:28 PM
Just to be clear, when you use screw() the code looks up tolerance values
from ASME or ISO formulas and tables. You can in fact specify tolerance
settings to change these tolerances to officially designated higher or
lower tolerance levels. Without screw tolerances, metal hardware wouldn't
mate together, so some tolerance is needed for screws and nuts to mate. If
you use your model to fabricate a screw and your output device is perfect
then you'll get a ASME or ISO compliant screw that will mate with standard
hardware. However, if your output device (3d printer) is not perfect, then
overextrusion may prevent the screws from fitting. If I recall correctly,
I found that I got a fairly snug fit with Imperial threaded 1/4-20 when I
used the loosest tolerances (1A and 1B). So the $slop mechanism provides a
method for making nuts looser to help them fit, and depending on what
tolerance setting you've used, you may need to use $slop as well. With the
default tolerances you almost certainly need to use $slop, perhaps a value
of 0.05 for a Prusa printer. But basically you should print nuts at
several $slop values until you find what works for your hardware.
For threaded_rod(), there are no tables and no consultation of standards,
because that's all done in screw. (That's the whole point of
screws.scad---to provide those lookup tables for standard screw
dimensions.) If you specify a size, that's what you get, so in that case,
$slop will be essential to get parts to fit. Or you can directly
under/oversize the parts that need to mate. You will need a larger $slop
with threaded_rod() because the $slop needs to provide both the tolerance
and account for printing inaccuracy.
On Fri, Jun 9, 2023 at 7:57 AM Ken bats059@gmail.com wrote:
Thanks Adrian- I did not know that, it explains why my screws are always
rather tight on first fitting. I see some small adjustments to my code
coming in my near future....
On 2023-06-09 20:26, Adrian Mariano wrote:
Note also that threaded_rod and screw are going to produce different
sized output for the same specified object because screw applies the
tolerance adjustments and threaded rod does not.
A baby can be defined as an ego with a noise at one end and a smell at the
other.
Your job as parents is to teach them to control all three.
My job as a grandad is to tell you how you are doing it all wrong!
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
Just to be clear, when you use screw() the code looks up tolerance values
from ASME or ISO formulas and tables. You can in fact specify tolerance
settings to change these tolerances to officially designated higher or
lower tolerance levels. Without screw tolerances, metal hardware wouldn't
mate together, so some tolerance is needed for screws and nuts to mate. If
you use your model to fabricate a screw and your output device is perfect
then you'll get a ASME or ISO compliant screw that will mate with standard
hardware. However, if your output device (3d printer) is not perfect, then
overextrusion may prevent the screws from fitting. If I recall correctly,
I found that I got a fairly snug fit with Imperial threaded 1/4-20 when I
used the loosest tolerances (1A and 1B). So the $slop mechanism provides a
method for making nuts looser to help them fit, and depending on what
tolerance setting you've used, you may need to use $slop as well. With the
default tolerances you almost certainly need to use $slop, perhaps a value
of 0.05 for a Prusa printer. But basically you should print nuts at
several $slop values until you find what works for your hardware.
For threaded_rod(), there are no tables and no consultation of standards,
because that's all done in screw. (That's the whole point of
screws.scad---to provide those lookup tables for standard screw
dimensions.) If you specify a size, that's what you get, so in that case,
$slop will be essential to get parts to fit. Or you can directly
under/oversize the parts that need to mate. You will need a larger $slop
with threaded_rod() because the $slop needs to provide both the tolerance
and account for printing inaccuracy.
On Fri, Jun 9, 2023 at 7:57 AM Ken <bats059@gmail.com> wrote:
> Thanks Adrian- I did not know that, it explains why my screws are always
> rather tight on first fitting. I see some small adjustments to my code
> coming in my near future....
>
> On 2023-06-09 20:26, Adrian Mariano wrote:
> > Note also that threaded_rod and screw are going to produce different
> > sized output for the same specified object because screw applies the
> > tolerance adjustments and threaded rod does not.
>
> --
> Cheers, Ken
> bats059@gmail.com
> https://vk7krj.com
> https://vk7krj.com/running.html
> ----------------------------------------
> A baby can be defined as an ego with a noise at one end and a smell at the
> other.
> Your job as parents is to teach them to control all three.
> My job as a grandad is to tell you how you are doing it all wrong!
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
>
PC
Patrick Callahan
Sat, Jun 10, 2023 2:12 AM
I found that having a set of taps and dies to use on printed nuts and
screws helps clean things up. I did this with a 15/32-32 fitting with a
knurled nut.
On Fri, Jun 9, 2023 at 4:29 PM Adrian Mariano avm4@cornell.edu wrote:
Just to be clear, when you use screw() the code looks up tolerance values
from ASME or ISO formulas and tables. You can in fact specify tolerance
settings to change these tolerances to officially designated higher or
lower tolerance levels. Without screw tolerances, metal hardware wouldn't
mate together, so some tolerance is needed for screws and nuts to mate. If
you use your model to fabricate a screw and your output device is perfect
then you'll get a ASME or ISO compliant screw that will mate with standard
hardware. However, if your output device (3d printer) is not perfect, then
overextrusion may prevent the screws from fitting. If I recall correctly,
I found that I got a fairly snug fit with Imperial threaded 1/4-20 when I
used the loosest tolerances (1A and 1B). So the $slop mechanism provides a
method for making nuts looser to help them fit, and depending on what
tolerance setting you've used, you may need to use $slop as well. With the
default tolerances you almost certainly need to use $slop, perhaps a value
of 0.05 for a Prusa printer. But basically you should print nuts at
several $slop values until you find what works for your hardware.
For threaded_rod(), there are no tables and no consultation of standards,
because that's all done in screw. (That's the whole point of
screws.scad---to provide those lookup tables for standard screw
dimensions.) If you specify a size, that's what you get, so in that case,
$slop will be essential to get parts to fit. Or you can directly
under/oversize the parts that need to mate. You will need a larger $slop
with threaded_rod() because the $slop needs to provide both the tolerance
and account for printing inaccuracy.
On Fri, Jun 9, 2023 at 7:57 AM Ken bats059@gmail.com wrote:
Thanks Adrian- I did not know that, it explains why my screws are always
rather tight on first fitting. I see some small adjustments to my code
coming in my near future....
On 2023-06-09 20:26, Adrian Mariano wrote:
Note also that threaded_rod and screw are going to produce different
sized output for the same specified object because screw applies the
tolerance adjustments and threaded rod does not.
A baby can be defined as an ego with a noise at one end and a smell at
the other.
Your job as parents is to teach them to control all three.
My job as a grandad is to tell you how you are doing it all wrong!
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
I found that having a set of taps and dies to use on printed nuts and
screws helps clean things up. I did this with a 15/32-32 fitting with a
knurled nut.
On Fri, Jun 9, 2023 at 4:29 PM Adrian Mariano <avm4@cornell.edu> wrote:
> Just to be clear, when you use screw() the code looks up tolerance values
> from ASME or ISO formulas and tables. You can in fact specify tolerance
> settings to change these tolerances to officially designated higher or
> lower tolerance levels. Without screw tolerances, metal hardware wouldn't
> mate together, so some tolerance is needed for screws and nuts to mate. If
> you use your model to fabricate a screw and your output device is perfect
> then you'll get a ASME or ISO compliant screw that will mate with standard
> hardware. However, if your output device (3d printer) is not perfect, then
> overextrusion may prevent the screws from fitting. If I recall correctly,
> I found that I got a fairly snug fit with Imperial threaded 1/4-20 when I
> used the loosest tolerances (1A and 1B). So the $slop mechanism provides a
> method for making nuts looser to help them fit, and depending on what
> tolerance setting you've used, you may need to use $slop as well. With the
> default tolerances you almost certainly need to use $slop, perhaps a value
> of 0.05 for a Prusa printer. But basically you should print nuts at
> several $slop values until you find what works for your hardware.
>
> For threaded_rod(), there are no tables and no consultation of standards,
> because that's all done in screw. (That's the whole point of
> screws.scad---to provide those lookup tables for standard screw
> dimensions.) If you specify a size, that's what you get, so in that case,
> $slop will be essential to get parts to fit. Or you can directly
> under/oversize the parts that need to mate. You will need a larger $slop
> with threaded_rod() because the $slop needs to provide both the tolerance
> and account for printing inaccuracy.
>
> On Fri, Jun 9, 2023 at 7:57 AM Ken <bats059@gmail.com> wrote:
>
>> Thanks Adrian- I did not know that, it explains why my screws are always
>> rather tight on first fitting. I see some small adjustments to my code
>> coming in my near future....
>>
>> On 2023-06-09 20:26, Adrian Mariano wrote:
>> > Note also that threaded_rod and screw are going to produce different
>> > sized output for the same specified object because screw applies the
>> > tolerance adjustments and threaded rod does not.
>>
>> --
>> Cheers, Ken
>> bats059@gmail.com
>> https://vk7krj.com
>> https://vk7krj.com/running.html
>> ----------------------------------------
>> A baby can be defined as an ego with a noise at one end and a smell at
>> the other.
>> Your job as parents is to teach them to control all three.
>> My job as a grandad is to tell you how you are doing it all wrong!
>> _______________________________________________
>> OpenSCAD mailing list
>> To unsubscribe send an email to discuss-leave@lists.openscad.org
>>
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
>