discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

BOSL - make threaded_rod and threaded_nut fit

RV
Roel Vanhout
Sat, Feb 20, 2021 8:01 PM

Hi,

I have the following threaded parts (from the BOSL library) as part of a
design:

threaded_rod(d = 20, l = 50, pitch = 2.5, bevel = true, $fn = 64);
threaded_nut(od = 30, id = 20, h = 10, pitch = 2.5, bevel = true, $fn = 64);

Unfortunately when I print this, the nut is too small to fit on the rod. I
have tried once as shown above and once increasing the id of the nut by
0.2, but before I spend a lot of time printing and a lot of filament, I
would like to ask how this is supposed to work. The 'slop' parameter of the
nut makes me think that the library is designed so that you should specify
the d of the rod and the id of the nut to be the same, and then the extra
room for fitting comes from the 'slop'; but maybe not?

cheers,

roel

Hi, I have the following threaded parts (from the BOSL library) as part of a design: threaded_rod(d = 20, l = 50, pitch = 2.5, bevel = true, $fn = 64); threaded_nut(od = 30, id = 20, h = 10, pitch = 2.5, bevel = true, $fn = 64); Unfortunately when I print this, the nut is too small to fit on the rod. I have tried once as shown above and once increasing the id of the nut by 0.2, but before I spend a lot of time printing and a lot of filament, I would like to ask how this is supposed to work. The 'slop' parameter of the nut makes me think that the library is designed so that you should specify the d of the rod and the id of the nut to be the same, and then the extra room for fitting comes from the 'slop'; but maybe not? cheers, roel
W
Whosawhatsis
Sat, Feb 20, 2021 8:20 PM

I haven't used that library, but a 2.5mm pitch sounds pretty fine for a 20mm diameter thread. I'm not sure what thread angle the library uses, but a coarser thread pitch helps to mitigate the overhang angle created by a steep thread angle. That might be part of your issue with fit on the printed parts.
On Feb 20, 2021, 12:02 -0800, Roel Vanhout roel.vanhout@gmail.com, wrote:

Hi,

I have the following threaded parts (from the BOSL library) as part of a design:

threaded_rod(d = 20, l = 50, pitch = 2.5, bevel = true, $fn = 64);
threaded_nut(od = 30, id = 20, h = 10, pitch = 2.5, bevel = true, $fn = 64);

Unfortunately when I print this, the nut is too small to fit on the rod. I have tried once as shown above and once increasing the id of the nut by 0.2, but before I spend a lot of time printing and a lot of filament, I would like to ask how this is supposed to work. The 'slop' parameter of the nut makes me think that the library is designed so that you should specify the d of the rod and the id of the nut to be the same, and then the extra room for fitting comes from the 'slop'; but maybe not?

cheers,

roel


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

I haven't used that library, but a 2.5mm pitch sounds pretty fine for a 20mm diameter thread. I'm not sure what thread angle the library uses, but a coarser thread pitch helps to mitigate the overhang angle created by a steep thread angle. That might be part of your issue with fit on the printed parts. On Feb 20, 2021, 12:02 -0800, Roel Vanhout <roel.vanhout@gmail.com>, wrote: > Hi, > > I have the following threaded parts (from the BOSL library) as part of a design: > > threaded_rod(d = 20, l = 50, pitch = 2.5, bevel = true, $fn = 64); > threaded_nut(od = 30, id = 20, h = 10, pitch = 2.5, bevel = true, $fn = 64); > > Unfortunately when I print this, the nut is too small to fit on the rod. I have tried once as shown above and once increasing the id of the nut by 0.2, but before I spend a lot of time printing and a lot of filament, I would like to ask how this is supposed to work. The 'slop' parameter of the nut makes me think that the library is designed so that you should specify the d of the rod and the id of the nut to be the same, and then the extra room for fitting comes from the 'slop'; but maybe not? > > cheers, > > roel > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
A
arnholm@arnholm.org
Sun, Feb 21, 2021 8:19 AM

On 2021-02-20 21:01, Roel Vanhout wrote:

Hi,

I have the following threaded parts (from the BOSL library) as part of
a design:

threaded_rod(d = 20, l = 50, pitch = 2.5, bevel = true, $fn = 64);
threaded_nut(od = 30, id = 20, h = 10, pitch = 2.5, bevel = true, $fn
= 64);

Unfortunately when I print this, the nut is too small to fit on the
rod. I have tried once as shown above and once increasing the id of
the nut by 0.2, but before I spend a lot of time printing and a lot of
filament, I would like to ask how this is supposed to work. The 'slop'
parameter of the nut makes me think that the library is designed so
that you should specify the d of the rod and the id of the nut to be
the same, and then the extra room for fitting comes from the 'slop';
but maybe not?

Things like this also depends on the slicer settings and the printing
process, so I don't think there is a universal answer other than you
must combine the software parameters with your printing slicer/printing
process to make it work. If you print with a large extrusion with you
will need a larger tolerance between the parts. With less extrusion
with/layer thickness the tolerance requirement may change.

Years ago I made a test model to learn about making threaded nuts and
bolts fit each other
https://www.thingiverse.com/thing:1445033

Carsten Arnholm

On 2021-02-20 21:01, Roel Vanhout wrote: > Hi, > > I have the following threaded parts (from the BOSL library) as part of > a design: > > threaded_rod(d = 20, l = 50, pitch = 2.5, bevel = true, $fn = 64); > threaded_nut(od = 30, id = 20, h = 10, pitch = 2.5, bevel = true, $fn > = 64); > > Unfortunately when I print this, the nut is too small to fit on the > rod. I have tried once as shown above and once increasing the id of > the nut by 0.2, but before I spend a lot of time printing and a lot of > filament, I would like to ask how this is supposed to work. The 'slop' > parameter of the nut makes me think that the library is designed so > that you should specify the d of the rod and the id of the nut to be > the same, and then the extra room for fitting comes from the 'slop'; > but maybe not? Things like this also depends on the slicer settings and the printing process, so I don't think there is a universal answer other than you must combine the software parameters with your printing slicer/printing process to make it work. If you print with a large extrusion with you will need a larger tolerance between the parts. With less extrusion with/layer thickness the tolerance requirement may change. Years ago I made a test model to learn about making threaded nuts and bolts fit each other https://www.thingiverse.com/thing:1445033 Carsten Arnholm
BC
Bob Carter
Sun, Feb 21, 2021 12:24 PM

I have had good results using https://dkprojects.net/openscad-threads/ https://dkprojects.net/openscad-threads/  for the bezels on my instrument dial gauges (think SLR camera filters)

First time out it took a few tries to get the right tolerance then I ran into two simple problems- 1- there was too much play in one of my carriages resulting in a slightly eccentric thread and 2 - PLA on PLA has a high friction coefficient - so spray the threads with ptfe lubricant before trying to thread them together -

First time using them it may take a few back and forths to knock off any blobs of PLA, and ease the pointy curves ( unless you have arc support enabled in both Marlin and your slicer (or post process with arcwelder) then you will be printing circles using a lot of small straight lines with pointed joints).

Unfortunately threads are precision bits and so you need to re-calibrate every time you change filament or modify your slicer print settings.

Good luck- it is very satisfying when you get a good print.

cheers
Bob

On 21 Feb 2021, at 08:19, arnholm@arnholm.org wrote:

On 2021-02-20 21:01, Roel Vanhout wrote:

Hi,
I have the following threaded parts (from the BOSL library) as part of
a design:
threaded_rod(d = 20, l = 50, pitch = 2.5, bevel = true, $fn = 64);
threaded_nut(od = 30, id = 20, h = 10, pitch = 2.5, bevel = true, $fn
= 64);
Unfortunately when I print this, the nut is too small to fit on the
rod. I have tried once as shown above and once increasing the id of
the nut by 0.2, but before I spend a lot of time printing and a lot of
filament, I would like to ask how this is supposed to work. The 'slop'
parameter of the nut makes me think that the library is designed so
that you should specify the d of the rod and the id of the nut to be
the same, and then the extra room for fitting comes from the 'slop';
but maybe not?

Things like this also depends on the slicer settings and the printing process, so I don't think there is a universal answer other than you must combine the software parameters with your printing slicer/printing process to make it work. If you print with a large extrusion with you will need a larger tolerance between the parts. With less extrusion with/layer thickness the tolerance requirement may change.

Years ago I made a test model to learn about making threaded nuts and bolts fit each other
https://www.thingiverse.com/thing:1445033 https://www.thingiverse.com/thing:1445033

Carsten Arnholm


OpenSCAD mailing list
Discuss@lists.openscad.org mailto:Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

I have had good results using https://dkprojects.net/openscad-threads/ <https://dkprojects.net/openscad-threads/> for the bezels on my instrument dial gauges (think SLR camera filters) First time out it took a few tries to get the right tolerance then I ran into two simple problems- 1- there was too much play in one of my carriages resulting in a slightly eccentric thread and 2 - PLA on PLA has a high friction coefficient - so spray the threads with ptfe lubricant before trying to thread them together - First time using them it may take a few back and forths to knock off any blobs of PLA, and ease the pointy curves ( unless you have arc support enabled in both Marlin and your slicer (or post process with arcwelder) then you will be printing circles using a lot of small straight lines with pointed joints). Unfortunately threads are precision bits and so you need to re-calibrate every time you change filament or modify your slicer print settings. Good luck- it is very satisfying when you get a good print. cheers Bob > On 21 Feb 2021, at 08:19, arnholm@arnholm.org wrote: > > On 2021-02-20 21:01, Roel Vanhout wrote: >> Hi, >> I have the following threaded parts (from the BOSL library) as part of >> a design: >> threaded_rod(d = 20, l = 50, pitch = 2.5, bevel = true, $fn = 64); >> threaded_nut(od = 30, id = 20, h = 10, pitch = 2.5, bevel = true, $fn >> = 64); >> Unfortunately when I print this, the nut is too small to fit on the >> rod. I have tried once as shown above and once increasing the id of >> the nut by 0.2, but before I spend a lot of time printing and a lot of >> filament, I would like to ask how this is supposed to work. The 'slop' >> parameter of the nut makes me think that the library is designed so >> that you should specify the d of the rod and the id of the nut to be >> the same, and then the extra room for fitting comes from the 'slop'; >> but maybe not? > > Things like this also depends on the slicer settings and the printing process, so I don't think there is a universal answer other than you must combine the software parameters with your printing slicer/printing process to make it work. If you print with a large extrusion with you will need a larger tolerance between the parts. With less extrusion with/layer thickness the tolerance requirement may change. > > Years ago I made a test model to learn about making threaded nuts and bolts fit each other > https://www.thingiverse.com/thing:1445033 <https://www.thingiverse.com/thing:1445033> > > Carsten Arnholm > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org <mailto:Discuss@lists.openscad.org> > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org <http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org>
F
fe60
Sun, Feb 21, 2021 12:35 PM

Roel Vanhout wrote

...
The 'slop' parameter of the nut makes me think that the library is
designed so that you should specify the d of the rod and the id of the nut
to be the same, and then the extra room for fitting comes from the 'slop';
but maybe not?
...

You got this right. But the required slop depends on your thread, the
filament, the printer and the print settings. Instead of increasing the
inner diameter of the nut, you can increase the slop (default value is 0.2
[1]).
The size of of the inner diameter of the nut is calculated as follows:

[1] https://github.com/revarbat/BOSL/blob/master/constants.scad#L41
[2a] https://github.com/revarbat/BOSL/blob/master/threading.scad#L286
[2b] https://github.com/revarbat/BOSL/blob/master/threading.scad#L99

--
Sent from: http://forum.openscad.org/

Roel Vanhout wrote > ... > The 'slop' parameter of the nut makes me think that the library is > designed so that you should specify the d of the rod and the id of the nut > to be the same, and then the extra room for fitting comes from the 'slop'; > but maybe not? > ... You got this right. But the required slop depends on your thread, the filament, the printer and the print settings. Instead of increasing the inner diameter of the nut, you can increase the slop (default value is 0.2 [1]). The size of of the inner diameter of the nut is calculated as follows: [1] https://github.com/revarbat/BOSL/blob/master/constants.scad#L41 [2a] https://github.com/revarbat/BOSL/blob/master/threading.scad#L286 [2b] https://github.com/revarbat/BOSL/blob/master/threading.scad#L99 -- Sent from: http://forum.openscad.org/
RV
Roel Vanhout
Sun, Feb 21, 2021 7:12 PM

Thanks all. I did realize that exact fit depends on slicer settings &
printer calibration/setup, but in my experience I can download pretty much
any properly designed stl with thread from Thingiverse and I can print
working thread, at any reasonable layer thickness, even if some are a bit
more loose or tight than others.

Anyway with some test designs and cut throughs in OpenSCAD, and a range of
overnight test prints at various diameters and slop settings, I can offer
the following experimental conclusions/guidelines to anyone stumbling upon
this thread at some point in the future:

  • Indeed the d of the rod and the id of the nut should be the same and fit
    can be calibrated using the nuts 'slop' parameter, thanks to fe60 for
    confirming
  • Slop setting changes of 0.05 have noticeable effects ('measured' by hand
    twisting the nut onto the rod, and for prints at layer heights 1.2 and 2.4
    using PLA+); for a rod d=20, 0.3 is rather too tight, 0.4 works but is
    quite loose and 0.35 gives a snug fit. So any trial prints should go down
    to that level of detail at least.
  • For rods d=20, the default slop of 0.2 is not enough (it's a bit much for
    diameters < 12, ok up to 16, not enough above). A good rule of thumb seems
    to be to take 15% of the diameter and round up for 'large' diameters and
    down for 'smaller' (sometimes requiring some adjustment still like my d=20
    -> 0.35). I didn't do an exhaustive study on this, but it seemed to work
    more often than not for the trial prints I did. Maybe it'll save someone a
    few test prints some time.

cheers,

roel

On Sun, Feb 21, 2021 at 1:36 PM fe60 fe_60@web.de wrote:

Roel Vanhout wrote
...
The 'slop' parameter of the nut makes me think that the library is
designed so that you should specify the d of the rod and the id of the nut
to be the same, and then the extra room for fitting comes from the 'slop';
but maybe not?
...

You got this right. But the required slop depends on your thread, the
filament, the printer and the print settings. Instead of increasing the
inner diameter of the nut, you can increase the slop (default value is 0.2
[1]).
The size of of the inner diameter of the nut is calculated as follows:

d = internal? d+default(slop,PRINTER_SLOP)*3 : d;  [2]

[1] https://github.com/revarbat/BOSL/blob/master/constants.scad#L41
[2a] https://github.com/revarbat/BOSL/blob/master/threading.scad#L286
[2b] https://github.com/revarbat/BOSL/blob/master/threading.scad#L99

Sent from the OpenSCAD mailing list archive http://forum.openscad.org/
at Nabble.com.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

Thanks all. I did realize that exact fit depends on slicer settings & printer calibration/setup, but in my experience I can download pretty much any properly designed stl with thread from Thingiverse and I can print working thread, at any reasonable layer thickness, even if some are a bit more loose or tight than others. Anyway with some test designs and cut throughs in OpenSCAD, and a range of overnight test prints at various diameters and slop settings, I can offer the following experimental conclusions/guidelines to anyone stumbling upon this thread at some point in the future: - Indeed the d of the rod and the id of the nut should be the same and fit can be calibrated using the nuts 'slop' parameter, thanks to fe60 for confirming - Slop setting changes of 0.05 have noticeable effects ('measured' by hand twisting the nut onto the rod, and for prints at layer heights 1.2 and 2.4 using PLA+); for a rod d=20, 0.3 is rather too tight, 0.4 works but is quite loose and 0.35 gives a snug fit. So any trial prints should go down to that level of detail at least. - For rods d=20, the default slop of 0.2 is not enough (it's a bit much for diameters < 12, ok up to 16, not enough above). A good rule of thumb seems to be to take 15% of the diameter and round up for 'large' diameters and down for 'smaller' (sometimes requiring some adjustment still like my d=20 -> 0.35). I didn't do an exhaustive study on this, but it seemed to work more often than not for the trial prints I did. Maybe it'll save someone a few test prints some time. cheers, roel On Sun, Feb 21, 2021 at 1:36 PM fe60 <fe_60@web.de> wrote: > Roel Vanhout wrote > ... > The 'slop' parameter of the nut makes me think that the library is > designed so that you should specify the d of the rod and the id of the nut > to be the same, and then the extra room for fitting comes from the 'slop'; > but maybe not? > ... > > You got this right. But the required slop depends on your thread, the > filament, the printer and the print settings. Instead of increasing the > inner diameter of the nut, you can increase the slop (default value is 0.2 > [1]). > The size of of the inner diameter of the nut is calculated as follows: > > d = internal? d+default(slop,PRINTER_SLOP)*3 : d; [2] > > > [1] https://github.com/revarbat/BOSL/blob/master/constants.scad#L41 > [2a] https://github.com/revarbat/BOSL/blob/master/threading.scad#L286 > [2b] https://github.com/revarbat/BOSL/blob/master/threading.scad#L99 > ------------------------------ > Sent from the OpenSCAD mailing list archive <http://forum.openscad.org/> > at Nabble.com. > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >
A
adrianv
Sun, Feb 21, 2021 8:01 PM

With my Prusa MK3 I find that in general, $slop values need to be around 0.05
for things to fit well.  The default of 0.2 is much too loose.  I use BOSL2
and am not sure how things might have changed with the threaded rod code
from BOSL, but there is new screw code in BOSL2 that supports standard
machine screws with standard screw tolerances, and in that case I have
printed parts with  $slop=0 that will fit onto standard metal parts or onto
each other, depending on the tolerance settings.  However my testing with
threading has been mostly with small sized parts like 1/4 inch or M6.
However, I would not expect this tolerance to change with a larger part.
If you print a square part 100x100 and measure with calipers, how accurate
is it?

I did recently print pipe threads at 3/4 inch and for that part I found
$slop=0.1 gave me a female part that my (mass produced, not printed) pipe
part threaded in very far (more than is probably normal), and $slop=0.05
gave a possibly normal fit, and $slop=0 a very tight fit (but still possible
to start engagement).

Roel Vanhout wrote

Thanks all. I did realize that exact fit depends on slicer settings &
printer calibration/setup, but in my experience I can download pretty much
any properly designed stl with thread from Thingiverse and I can print
working thread, at any reasonable layer thickness, even if some are a bit
more loose or tight than others.

Anyway with some test designs and cut throughs in OpenSCAD, and a range of
overnight test prints at various diameters and slop settings, I can offer
the following experimental conclusions/guidelines to anyone stumbling upon
this thread at some point in the future:

  • Indeed the d of the rod and the id of the nut should be the same and fit
    can be calibrated using the nuts 'slop' parameter, thanks to fe60 for
    confirming
  • Slop setting changes of 0.05 have noticeable effects ('measured' by hand
    twisting the nut onto the rod, and for prints at layer heights 1.2 and 2.4
    using PLA+); for a rod d=20, 0.3 is rather too tight, 0.4 works but is
    quite loose and 0.35 gives a snug fit. So any trial prints should go down
    to that level of detail at least.
  • For rods d=20, the default slop of 0.2 is not enough (it's a bit much
    for
    diameters < 12, ok up to 16, not enough above). A good rule of thumb seems
    to be to take 15% of the diameter and round up for 'large' diameters and
    down for 'smaller' (sometimes requiring some adjustment still like my d=20
    -> 0.35). I didn't do an exhaustive study on this, but it seemed to work
    more often than not for the trial prints I did. Maybe it'll save someone a
    few test prints some time.

cheers,

roel

On Sun, Feb 21, 2021 at 1:36 PM fe60 <

fe_60@

> wrote:

Roel Vanhout wrote
...
The 'slop' parameter of the nut makes me think that the library is
designed so that you should specify the d of the rod and the id of the
nut
to be the same, and then the extra room for fitting comes from the
'slop';
but maybe not?
...

You got this right. But the required slop depends on your thread, the
filament, the printer and the print settings. Instead of increasing the
inner diameter of the nut, you can increase the slop (default value is
0.2
[1]).
The size of of the inner diameter of the nut is calculated as follows:

d = internal? d+default(slop,PRINTER_SLOP)*3 : d;  [2]

[1] https://github.com/revarbat/BOSL/blob/master/constants.scad#L41
[2a] https://github.com/revarbat/BOSL/blob/master/threading.scad#L286
[2b] https://github.com/revarbat/BOSL/blob/master/threading.scad#L99

Sent from the OpenSCAD mailing list archive
<http://forum.openscad.org/>
at Nabble.com.


OpenSCAD mailing list

Discuss@.openscad

Discuss@.openscad

With my Prusa MK3 I find that in general, $slop values need to be around 0.05 for things to fit well. The default of 0.2 is much too loose. I use BOSL2 and am not sure how things might have changed with the threaded rod code from BOSL, but there is new screw code in BOSL2 that supports standard machine screws with standard screw tolerances, and in that case I have printed parts with $slop=0 that will fit onto standard metal parts or onto each other, depending on the tolerance settings. However my testing with threading has been mostly with small sized parts like 1/4 inch or M6. However, I would not expect this tolerance to change with a larger part. If you print a square part 100x100 and measure with calipers, how accurate is it? I did recently print pipe threads at 3/4 inch and for that part I found $slop=0.1 gave me a female part that my (mass produced, not printed) pipe part threaded in very far (more than is probably normal), and $slop=0.05 gave a possibly normal fit, and $slop=0 a very tight fit (but still possible to start engagement). Roel Vanhout wrote > Thanks all. I did realize that exact fit depends on slicer settings & > printer calibration/setup, but in my experience I can download pretty much > any properly designed stl with thread from Thingiverse and I can print > working thread, at any reasonable layer thickness, even if some are a bit > more loose or tight than others. > > Anyway with some test designs and cut throughs in OpenSCAD, and a range of > overnight test prints at various diameters and slop settings, I can offer > the following experimental conclusions/guidelines to anyone stumbling upon > this thread at some point in the future: > > - Indeed the d of the rod and the id of the nut should be the same and fit > can be calibrated using the nuts 'slop' parameter, thanks to fe60 for > confirming > - Slop setting changes of 0.05 have noticeable effects ('measured' by hand > twisting the nut onto the rod, and for prints at layer heights 1.2 and 2.4 > using PLA+); for a rod d=20, 0.3 is rather too tight, 0.4 works but is > quite loose and 0.35 gives a snug fit. So any trial prints should go down > to that level of detail at least. > - For rods d=20, the default slop of 0.2 is not enough (it's a bit much > for > diameters < 12, ok up to 16, not enough above). A good rule of thumb seems > to be to take 15% of the diameter and round up for 'large' diameters and > down for 'smaller' (sometimes requiring some adjustment still like my d=20 > -> 0.35). I didn't do an exhaustive study on this, but it seemed to work > more often than not for the trial prints I did. Maybe it'll save someone a > few test prints some time. > > cheers, > > roel > > > > On Sun, Feb 21, 2021 at 1:36 PM fe60 &lt; > fe_60@ > &gt; wrote: > >> Roel Vanhout wrote >> ... >> The 'slop' parameter of the nut makes me think that the library is >> designed so that you should specify the d of the rod and the id of the >> nut >> to be the same, and then the extra room for fitting comes from the >> 'slop'; >> but maybe not? >> ... >> >> You got this right. But the required slop depends on your thread, the >> filament, the printer and the print settings. Instead of increasing the >> inner diameter of the nut, you can increase the slop (default value is >> 0.2 >> [1]). >> The size of of the inner diameter of the nut is calculated as follows: >> >> d = internal? d+default(slop,PRINTER_SLOP)*3 : d; [2] >> >> >> [1] https://github.com/revarbat/BOSL/blob/master/constants.scad#L41 >> [2a] https://github.com/revarbat/BOSL/blob/master/threading.scad#L286 >> [2b] https://github.com/revarbat/BOSL/blob/master/threading.scad#L99 >> ------------------------------ >> Sent from the OpenSCAD mailing list archive >> &lt;http://forum.openscad.org/&gt; >> at Nabble.com. >> _______________________________________________ >> OpenSCAD mailing list >> > Discuss@.openscad >> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >> > > _______________________________________________ > OpenSCAD mailing list > Discuss@.openscad > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org -- Sent from: http://forum.openscad.org/
P
Parkinbot
Wed, Feb 24, 2021 10:22 PM

When using some library you haven't implemented on your own, it is always a
good idea to at least double check what you get. There are several ways to
do this:

  1. Use native primitives having the expexted measures (which you can vary)
    to see what you get. E.g.

threaded_rod(d = 20, l = 50, pitch = 2.5, bevel = true, $fn = 64);
#cylinder(d=20, h=50, $fn = 64);

  1. visualize gaps with difference() or intersection()

difference()
{
union()
{
threaded_rod(d = 20, l = 50, pitch = 2.5, bevel = true, $fn = 64);
threaded_nut(od = 30, id = 20, h = 10, pitch = 2.5, bevel = true, $fn =
64);  }
}
translate([15, 0, 0])cube([30, 30, 100], center = true);
}

  1. Use colors and z-fighting to visualize "exact" measures.

  2. Have a look into the code in order to learn about default values of
    variables, and hidden variables or values.

--
Sent from: http://forum.openscad.org/

When using some library you haven't implemented on your own, it is always a good idea to at least double check what you get. There are several ways to do this: 1. Use native primitives having the expexted measures (which you can vary) to see what you get. E.g. threaded_rod(d = 20, l = 50, pitch = 2.5, bevel = true, $fn = 64); #cylinder(d=20, h=50, $fn = 64); 2. visualize gaps with difference() or intersection() difference() { union() { threaded_rod(d = 20, l = 50, pitch = 2.5, bevel = true, $fn = 64); threaded_nut(od = 30, id = 20, h = 10, pitch = 2.5, bevel = true, $fn = 64); } } translate([15, 0, 0])cube([30, 30, 100], center = true); } 3. Use colors and z-fighting to visualize "exact" measures. 4. Have a look into the code in order to learn about default values of variables, and hidden variables or values. -- Sent from: http://forum.openscad.org/
F
fouroh-llc
Thu, Feb 25, 2021 7:52 PM

This is what I use to calibrate my nuts..

planeZ=1.0000+0.0060; // Galvanized 20 gauge
meshZ=0.0008;

/*
23FEB20201 - a go-nogo guage for hex nuts
Test printing both flat and upright, and save for each printer / model.
1.3.5.7..10.3.5.7..20.3.5.7..30.3.5.7..40.3.5.7..50.3.5.7..60.3.5.7..70.3.5.7890

*/

testHexNutRadius();
translate([-14, 0, 15]) rotate([0, 270, 180]) testHexNutRadius();

module testHexNutRadius() {
translate([8, 0, -((planeZ/2)-meshZ)]) cube([46, 16, planeZ], center=true);

translate([0*18, 0, 0]) // #6
gaugeHexNutSize(shaftRadius=3.2, nutRadius=4.8, nutHeight=2.8,
nutWallAngle=30, nutOuterWall=0.8, nutBotWallThickness=0.8);

translate([0.8*18, 0, 0]) // #4
gaugeHexNutSize(shaftRadius=2.4, nutRadius=3.8, nutHeight=2.4,
nutWallAngle=30, nutOuterWall=0.8, nutBotWallThickness=0.8);

translate([1.4*18, 0, 0]) // #2
gaugeHexNutSize(shaftRadius=1.8, nutRadius=2.8, nutHeight=1.8,
nutWallAngle=30, nutOuterWall=0.8, nutBotWallThickness=0.8);

}

module gaugeHexNutSize(shaftRadius, nutRadius, nutHeight, nutWallAngle,
nutOuterWall, nutBotWallThickness) {

fullZ=nutHeight+nutBotWallThickness;
addBotRad=fullZ*tan(nutWallAngle);

topRad=nutRadius+nutOuterWall;
botRad=addBotRad/2+topRad;

holeSizeZ=(planeZ+fullZ+meshZ)+meshZ;
holePlaceZ=(planeZ-nutBotWallThickness)+0.8;
nutPlaceZ=(fullZ-nutHeight)+meshZ;

rotate([0, 0, 0]) difference() {
cylinder($fn=6, h=fullZ, r1=botRad, r2=topRad);

union() {
hexRad=nutRadius;

translate([0, 0, -holePlaceZ])
color("Red") cylinder($fn=32, h=holeSizeZ, r=(shaftRadius/2));

translate([0, 0, nutPlaceZ])
color("Blue") cylinder($fn=6, h=nutHeight, r=hexRad);
}}

}

There are more details about this on our wiki at
https://welcome.factoryfouroh.net/dokuwiki/abc_sierra:abc_si:simpson_strong-tie:scripts:gauges


Cheers!
Mr. Sandor Kunyik
Founder, Technology Evangelist
Factory 4.0 Open Initiative, LLC.
https://hubzilla.factoryfouroh.net/channel/fouroh-llc

Sent from: http://forum.openscad.org/

This is what I use to calibrate my nuts.. planeZ=1.0000+0.0060; // Galvanized 20 gauge meshZ=0.0008; /* 23FEB20201 - a go-nogo guage for hex nuts Test printing both flat and upright, and save for each printer / model. 1.3.5.7..10.3.5.7..20.3.5.7..30.3.5.7..40.3.5.7..50.3.5.7..60.3.5.7..70.3.5.7890 ----------------------------------------------------------------------------- */ testHexNutRadius(); translate([-14, 0, 15]) rotate([0, 270, 180]) testHexNutRadius(); module testHexNutRadius() { translate([8, 0, -((planeZ/2)-meshZ)]) cube([46, 16, planeZ], center=true); translate([0*18, 0, 0]) // #6 gaugeHexNutSize(shaftRadius=3.2, nutRadius=4.8, nutHeight=2.8, nutWallAngle=30, nutOuterWall=0.8, nutBotWallThickness=0.8); translate([0.8*18, 0, 0]) // #4 gaugeHexNutSize(shaftRadius=2.4, nutRadius=3.8, nutHeight=2.4, nutWallAngle=30, nutOuterWall=0.8, nutBotWallThickness=0.8); translate([1.4*18, 0, 0]) // #2 gaugeHexNutSize(shaftRadius=1.8, nutRadius=2.8, nutHeight=1.8, nutWallAngle=30, nutOuterWall=0.8, nutBotWallThickness=0.8); } module gaugeHexNutSize(shaftRadius, nutRadius, nutHeight, nutWallAngle, nutOuterWall, nutBotWallThickness) { fullZ=nutHeight+nutBotWallThickness; addBotRad=fullZ*tan(nutWallAngle); topRad=nutRadius+nutOuterWall; botRad=addBotRad/2+topRad; holeSizeZ=(planeZ+fullZ+meshZ)+meshZ; holePlaceZ=(planeZ-nutBotWallThickness)+0.8; nutPlaceZ=(fullZ-nutHeight)+meshZ; rotate([0, 0, 0]) difference() { cylinder($fn=6, h=fullZ, r1=botRad, r2=topRad); union() { hexRad=nutRadius; translate([0, 0, -holePlaceZ]) color("Red") cylinder($fn=32, h=holeSizeZ, r=(shaftRadius/2)); translate([0, 0, nutPlaceZ]) color("Blue") cylinder($fn=6, h=nutHeight, r=hexRad); }} } There are more details about this on our wiki at https://welcome.factoryfouroh.net/dokuwiki/abc_sierra:abc_si:simpson_strong-tie:scripts:gauges ----- Cheers! Mr. Sandor Kunyik Founder, Technology Evangelist Factory 4.0 Open Initiative, LLC. https://hubzilla.factoryfouroh.net/channel/fouroh-llc -- Sent from: http://forum.openscad.org/
A
adrianv
Thu, Feb 25, 2021 9:48 PM

How do you print a go/no-go gauge when your printer might be overextruding
and printing inaccurately?  It seems like you need to get such a gauge from
another source with guaranteed precision, and then you can use it to test
printed parts.

I personally tested printed screws by seeing if the mated well with metal
parts of the same dimension.

fouroh-llc wrote

This is what I use to calibrate my nuts..

planeZ=1.0000+0.0060; // Galvanized 20 gauge
meshZ=0.0008;

/*
23FEB20201 - a go-nogo guage for hex nuts
Test printing both flat and upright, and save for each printer / model.
1.3.5.7..10.3.5.7..20.3.5.7..30.3.5.7..40.3.5.7..50.3.5.7..60.3.5.7..70.3.5.7890

*/

testHexNutRadius();
translate([-14, 0, 15]) rotate([0, 270, 180]) testHexNutRadius();

etc etc

How do you print a go/no-go gauge when your printer might be overextruding and printing inaccurately? It seems like you need to get such a gauge from another source with guaranteed precision, and then you can use it to test printed parts. I personally tested printed screws by seeing if the mated well with metal parts of the same dimension. fouroh-llc wrote > This is what I use to calibrate my nuts.. > > planeZ=1.0000+0.0060; // Galvanized 20 gauge > meshZ=0.0008; > > /* > 23FEB20201 - a go-nogo guage for hex nuts > Test printing both flat and upright, and save for each printer / model. > 1.3.5.7..10.3.5.7..20.3.5.7..30.3.5.7..40.3.5.7..50.3.5.7..60.3.5.7..70.3.5.7890 > ----------------------------------------------------------------------------- > */ > > testHexNutRadius(); > translate([-14, 0, 15]) rotate([0, 270, 180]) testHexNutRadius(); > > etc etc -- Sent from: http://forum.openscad.org/