RW
Rogier Wolff
Sun, Mar 13, 2022 7:17 AM
Then we can help him by quoting as little as possible.
So hendrik: There are two things at play here. Circles (and therefore
cylinders) in openscad are actually regular polygons. Openscad choses
to use the inscribed polygon so if you use that as a cutout, the
resulting hole will be slightly smaller than intended.
But there are more things at play.
The most important one is that FDM 3D printers will deposit a layer of
flexible goop while moving around. When going straight, the goop will
form a straight line, but when going around a curve, the goop will
pull to the inside. The smaller the radius of the curve the stronger
the pull and the larger the difference between design and reality.
That said: even machinists know that a bearing with an outer diameter
of 16.000 mm will not fit in a hole that's 16.000 mm. With "hammer it
in" kind of fitting they will aim for 21 microns of gap between the
shaft and the hole! When 3D printing, the tolerance needs to
be much bigger. At least ten times, or 0.2mm, but usually .5 or so.
It depends a lot on the printer and the material.
So... My recommendation is to define a variable for the gaps you'll
need to design everywhere. That way if you decide to switch
technologies and the printed results get a lot better then you can
just reduce that tolerance variable and hopefully most of the design
will adapt...
Roger.
--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 **
** Delftechpark 11 2628 XJ Delft, The Netherlands. KVK: 27239233 **
f equals m times a. When your f is steady, and your m is going down
your a is going up. -- Chris Hadfield about flying up the space shuttle.
Hendrik wrote:
> for I am blind.
Then we can help him by quoting as little as possible.
So hendrik: There are two things at play here. Circles (and therefore
cylinders) in openscad are actually regular polygons. Openscad choses
to use the inscribed polygon so if you use that as a cutout, the
resulting hole will be slightly smaller than intended.
But there are more things at play.
The most important one is that FDM 3D printers will deposit a layer of
flexible goop while moving around. When going straight, the goop will
form a straight line, but when going around a curve, the goop will
pull to the inside. The smaller the radius of the curve the stronger
the pull and the larger the difference between design and reality.
That said: even machinists know that a bearing with an outer diameter
of 16.000 mm will not fit in a hole that's 16.000 mm. With "hammer it
in" kind of fitting they will aim for 21 microns of gap between the
shaft and the hole! When 3D printing, the tolerance needs to
be much bigger. At least ten times, or 0.2mm, but usually .5 or so.
It depends a lot on the printer and the material.
So... My recommendation is to define a variable for the gaps you'll
need to design everywhere. That way if you decide to switch
technologies and the printed results get a lot better then you can
just reduce that tolerance variable and hopefully most of the design
will adapt...
Roger.
--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 **
** Delftechpark 11 2628 XJ Delft, The Netherlands. KVK: 27239233 **
f equals m times a. When your f is steady, and your m is going down
your a is going up. -- Chris Hadfield about flying up the space shuttle.
NH
nop head
Sun, Mar 13, 2022 8:19 AM
If the printer is well calibrated, such that linear dimensions of square
holes are correct, then circular holes can be printed accurately using a
technique I discovered that I named polyholes and implemented in my library
here:
https://github.com/nophead/NopSCADlib/blob/master/utils/core/polyholes.scad.
I expand the circle so that flat sides of the polygon lie on the circle,
not the vertices. I also reduce the number of sides depending on the hole
radius. That causes the vertices to be further off the circle, so when the
plastic cuts the cornes, it is still outside the circle.
For large holes, like say 22mm skate bearings, the hole still has plenty of
vertices and looks round when printed. For small holes it can get very
polygonal and in the extreme case of 1mm becomes triangular. A recent
development is the ability to twist each layer so the hole looks round when
looking down it. That does make it a bit slow to render if the hole is
deep. I don't use it for clearance holes for fasteners that get covered
but I do use it for pilot holes for tapping.
As others have said, if the hole is the same size as the bearing it will be
an interference fit. I use 22mm polyholes for a 22mm bearing and press
them in with a vice and they will stay in place. If I want a loose fit I
would add 0.2mm to the diameter.
I tend to print with a single outline to get accurate dimensions. Most
people use multiple outlines for more strength. In that case it is
important the outermost perimeter is printed first, otherwise the holes
tend to shrink more.
If the printer is well calibrated, such that linear dimensions of square
holes are correct, then circular holes can be printed accurately using a
technique I discovered that I named polyholes and implemented in my library
here:
https://github.com/nophead/NopSCADlib/blob/master/utils/core/polyholes.scad.
I expand the circle so that flat sides of the polygon lie on the circle,
not the vertices. I also reduce the number of sides depending on the hole
radius. That causes the vertices to be further off the circle, so when the
plastic cuts the cornes, it is still outside the circle.
For large holes, like say 22mm skate bearings, the hole still has plenty of
vertices and looks round when printed. For small holes it can get very
polygonal and in the extreme case of 1mm becomes triangular. A recent
development is the ability to twist each layer so the hole looks round when
looking down it. That does make it a bit slow to render if the hole is
deep. I don't use it for clearance holes for fasteners that get covered
but I do use it for pilot holes for tapping.
As others have said, if the hole is the same size as the bearing it will be
an interference fit. I use 22mm polyholes for a 22mm bearing and press
them in with a vice and they will stay in place. If I want a loose fit I
would add 0.2mm to the diameter.
I tend to print with a single outline to get accurate dimensions. Most
people use multiple outlines for more strength. In that case it is
important the outermost perimeter is printed first, otherwise the holes
tend to shrink more.
DS
David Schooley
Sun, Mar 13, 2022 3:11 PM
The technique nop described is something I was thinking about last night, although his implementation is much more refined. I was wondering if anybody had tried it and then nop’s email came across this morning.
I’ve always set $fn high enough that my round holes appear to be round. Maybe that’s the wrong idea.
For example, my bearings have a 1.125” (28.575 mm) OD with a small flange. As long as the hole is sized to hold the bearing firmly and any weird stuff is covered by the flange, then all is good. The width of the flange is about 1.75mm. A reasonable approach would be to set $fn so that the vertices are inside the flange and the faces hold the bearing. Use the smallest $fn that allows everything to fit. The hole might not appear to be round under close inspection, but you won’t care because nobody will see it after the bearing is installed.
The technique nop described is something I was thinking about last night, although his implementation is much more refined. I was wondering if anybody had tried it and then nop’s email came across this morning.
I’ve always set $fn high enough that my round holes appear to be round. Maybe that’s the wrong idea.
For example, my bearings have a 1.125” (28.575 mm) OD with a small flange. As long as the hole is sized to hold the bearing firmly and any weird stuff is covered by the flange, then all is good. The width of the flange is about 1.75mm. A reasonable approach would be to set $fn so that the vertices are inside the flange and the faces hold the bearing. Use the smallest $fn that allows everything to fit. The hole might not appear to be round under close inspection, but you won’t care because nobody will see it after the bearing is installed.
JB
Jordan Brown
Sun, Mar 13, 2022 3:18 PM
Filling in a few gaps in what others have written...
Does it matter if I use r for radius or d for diameter?
No.
--
Press fit - what others have called "interference fit" or "transition
fit" - is an interesting topic that yields some unobvious results.
It is said that you can't hammer a square peg into a round hole, but an
article in Make magazine
https://makezine.com/2015/07/22/tips-3d-printing-press-fit-parts/
recommends (almost) exactly that. I've found the technique to work
well. The article looks at this from the perspective of mating two 3D
printed parts, but the same concepts apply to mating with other parts.
The problem is that if you try to mate round parts with round parts, you
have to get the dimensions super-precise. Even a tiny bit too large
will mean that the part will not fit; even a tiny bit too small and it
will be loose.
The idea is to deliberately use polygonal shafts to mate with round
holes. The vertices of the polygons can then deform (and, for a plastic
hole, can deform the sides of the hole) so that the tolerance required
for a good fit is considerably loosened.
Octagons are a good choice. They print well horizontally, and they
provide a bunch of points of contact while still having sharp enough
vertices that they can deform. For small shafts, making the shaft
hollow allows for a bit more flexibility.
Filling in a few gaps in what others have written...
> Does it matter if I use r for radius or d for diameter?
>
No.
--
Press fit - what others have called "interference fit" or "transition
fit" - is an interesting topic that yields some unobvious results.
It is said that you can't hammer a square peg into a round hole, but an
article in Make magazine
https://makezine.com/2015/07/22/tips-3d-printing-press-fit-parts/
recommends (almost) exactly that. I've found the technique to work
well. The article looks at this from the perspective of mating two 3D
printed parts, but the same concepts apply to mating with other parts.
The problem is that if you try to mate round parts with round parts, you
have to get the dimensions super-precise. Even a tiny bit too large
will mean that the part will not fit; even a tiny bit too small and it
will be loose.
The idea is to *deliberately* use polygonal shafts to mate with round
holes. The vertices of the polygons can then deform (and, for a plastic
hole, can deform the sides of the hole) so that the tolerance required
for a good fit is considerably loosened.
Octagons are a good choice. They print well horizontally, and they
provide a bunch of points of contact while still having sharp enough
vertices that they can deform. For small shafts, making the shaft
hollow allows for a bit more flexibility.
FH
Father Horton
Sun, Mar 13, 2022 3:30 PM
The technique nop described is something I was thinking about last night,
although his implementation is much more refined. I was wondering if
anybody had tried it and then nop’s email came across this morning.
I’ve always set $fn high enough that my round holes appear to be round.
Maybe that’s the wrong idea.
For example, my bearings have a 1.125” (28.575 mm) OD with a small flange.
As long as the hole is sized to hold the bearing firmly and any weird stuff
is covered by the flange, then all is good. The width of the flange is
about 1.75mm. A reasonable approach would be to set $fn so that the
vertices are inside the flange and the faces hold the bearing. Use the
smallest $fn that allows everything to fit. The hole might not appear to be
round under close inspection, but you won’t care because nobody will see it
after the bearing is installed.
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
The manual has a section on undersized holes here:
https://en.m.wikibooks.org/wiki/OpenSCAD_User_Manual/undersized_circular_objects
But even with this, you'll have to print holes a little wider than you
think.
On Sun, Mar 13, 2022 at 10:12 AM David Schooley <dcschooley@gmail.com>
wrote:
> The technique nop described is something I was thinking about last night,
> although his implementation is much more refined. I was wondering if
> anybody had tried it and then nop’s email came across this morning.
>
> I’ve always set $fn high enough that my round holes appear to be round.
> Maybe that’s the wrong idea.
>
> For example, my bearings have a 1.125” (28.575 mm) OD with a small flange.
> As long as the hole is sized to hold the bearing firmly and any weird stuff
> is covered by the flange, then all is good. The width of the flange is
> about 1.75mm. A reasonable approach would be to set $fn so that the
> vertices are inside the flange and the faces hold the bearing. Use the
> smallest $fn that allows everything to fit. The hole might not appear to be
> round under close inspection, but you won’t care because nobody will see it
> after the bearing is installed.
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
>
DM
Douglas Miller
Sun, Mar 13, 2022 3:40 PM
Both the design and the printing are at fault.
It is normal for 3D prints to shrink slightly as they cool; thus,
anything that needs to be a precise size will probably need to be scaled
up slightly to compensate. This scaling can be done either in the design
phase (e.g. by using scale() in your OpenSCAD code) or in the print
preparation phase (most slicer software provides a means of scaling the
model, also). I find that most of the time scaling up by 2.0% or 2.5% is
sufficient to compensate for cooling.
Your design is at fault as well: a shaft with an outside diameter of
8.0mm will not fit into a bearing with an inside diameter of 8.0mm
without the use of a hydraulic press. You need a little bit of
clearance. How much clearance depends on the material, but certainly you
should plan on a little bit, perhaps 0.05mm. Of course, your printer
can't print to that degree of precision.
Assuming that your bearing is a conventional steel ball bearing, with
outside diameter 16.0mm and inside diameter 8.0mm, I suggest as a
starting point that you specify an inside diameter of 16.4mm (16.0 +
2.5%) for your cylinder, and an outside diameter of 7.95mm for the
shaft. If you have access to precision measuring instruments such as a
micrometer or caliper, measure the /actual /sizes of the printed
cylinder and shaft you have now, and use those measurements to refine
the scaling factor. For example, if you specified 16mm for the cylinder,
and actually got 15.8, then specify 16.2 and try again.
This is inherently a trial-and-error process.
On 3/13/2022 12:03 AM, Hendrik wrote:
Hi all
I want to find out if it is my design or the printing. I designed a
hollow cylinder where a bearing would fit in and then a shaft that
will go through the bearing. Bearing size outer diameter = 16mm,
inner diameter =8mm. But when I received the part the bearing did not
fit inside and also the shaft was to big to fit in the inner of the
bearing. I created my cylinder with a 16 inner and the shaft with a 8
outer diameter.
difference() {
cylinder(d=20, h=10, $fn=100);
translate([0,0,-1]) cylinder(d=16, h=10+2, $fn=100);
}
Now this should give me a cylinder with a inner of 16mm where my
bearing should fit in. Or must I make it larger the inner diameter to
get a 16mm to fit my bearing in when it is printed.
Bearing shaft
Cylinder(d=8, h=10, $fn=100);
This should give me a shaft of 8mm to fit into the bearing 8mm inner.
But is to large for my bearing. Must I make this smaller?
Does it matter if I use r for radius or d for diameter?
Also why I think it could have to do with quality of print is that it
makes some places a thin thread that can be pulled of. Like a thin
plastic thread if you pull it it start running all around the cylinder.
Hope I make sence.
Thank you
Sent from Mail https://go.microsoft.com/fwlink/?LinkId=550986 for
Windows
Both the design and the printing are at fault.
It is normal for 3D prints to shrink slightly as they cool; thus,
anything that needs to be a precise size will probably need to be scaled
up slightly to compensate. This scaling can be done either in the design
phase (e.g. by using scale() in your OpenSCAD code) or in the print
preparation phase (most slicer software provides a means of scaling the
model, also). I find that most of the time scaling up by 2.0% or 2.5% is
sufficient to compensate for cooling.
Your design is at fault as well: a shaft with an outside diameter of
8.0mm will not fit into a bearing with an inside diameter of 8.0mm
without the use of a hydraulic press. You need a little bit of
clearance. How much clearance depends on the material, but certainly you
should plan on a little bit, perhaps 0.05mm. Of course, your printer
can't print to that degree of precision.
Assuming that your bearing is a conventional steel ball bearing, with
outside diameter 16.0mm and inside diameter 8.0mm, I suggest as a
starting point that you specify an inside diameter of 16.4mm (16.0 +
2.5%) for your cylinder, and an outside diameter of 7.95mm for the
shaft. If you have access to precision measuring instruments such as a
micrometer or caliper, measure the /actual /sizes of the printed
cylinder and shaft you have now, and use those measurements to refine
the scaling factor. For example, if you specified 16mm for the cylinder,
and actually got 15.8, then specify 16.2 and try again.
This is inherently a trial-and-error process.
On 3/13/2022 12:03 AM, Hendrik wrote:
>
> Hi all
>
> I want to find out if it is my design or the printing. I designed a
> hollow cylinder where a bearing would fit in and then a shaft that
> will go through the bearing. Bearing size outer diameter = 16mm,
> inner diameter =8mm. But when I received the part the bearing did not
> fit inside and also the shaft was to big to fit in the inner of the
> bearing. I created my cylinder with a 16 inner and the shaft with a 8
> outer diameter.
>
> difference() {
>
> cylinder(d=20, h=10, $fn=100);
>
> translate([0,0,-1]) cylinder(d=16, h=10+2, $fn=100);
>
> }
>
> Now this should give me a cylinder with a inner of 16mm where my
> bearing should fit in. Or must I make it larger the inner diameter to
> get a 16mm to fit my bearing in when it is printed.
>
> Bearing shaft
>
> Cylinder(d=8, h=10, $fn=100);
>
> This should give me a shaft of 8mm to fit into the bearing 8mm inner.
> But is to large for my bearing. Must I make this smaller?
>
> Does it matter if I use r for radius or d for diameter?
>
> Also why I think it could have to do with quality of print is that it
> makes some places a thin thread that can be pulled of. Like a thin
> plastic thread if you pull it it start running all around the cylinder.
>
> Hope I make sence.
>
> Thank you
>
> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
> Windows
>
AM
Adrian Mariano
Sun, Mar 13, 2022 4:03 PM
I tested nophead's approach a couple years ago and it didn't seem to
work for me with my printer (Prusa MK3S with prusaslicer). I don't
remember exactly what went wrong, and I also just did the one test and
then moved on. I was wondering if the adjustments he tries to capture
could already be done by the slicer.
On Sun, Mar 13, 2022 at 11:12 AM David Schooley dcschooley@gmail.com wrote:
The technique nop described is something I was thinking about last night, although his implementation is much more refined. I was wondering if anybody had tried it and then nop’s email came across this morning.
I’ve always set $fn high enough that my round holes appear to be round. Maybe that’s the wrong idea.
For example, my bearings have a 1.125” (28.575 mm) OD with a small flange. As long as the hole is sized to hold the bearing firmly and any weird stuff is covered by the flange, then all is good. The width of the flange is about 1.75mm. A reasonable approach would be to set $fn so that the vertices are inside the flange and the faces hold the bearing. Use the smallest $fn that allows everything to fit. The hole might not appear to be round under close inspection, but you won’t care because nobody will see it after the bearing is installed.
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
I tested nophead's approach a couple years ago and it didn't seem to
work for me with my printer (Prusa MK3S with prusaslicer). I don't
remember exactly what went wrong, and I also just did the one test and
then moved on. I was wondering if the adjustments he tries to capture
could already be done by the slicer.
On Sun, Mar 13, 2022 at 11:12 AM David Schooley <dcschooley@gmail.com> wrote:
>
> The technique nop described is something I was thinking about last night, although his implementation is much more refined. I was wondering if anybody had tried it and then nop’s email came across this morning.
>
> I’ve always set $fn high enough that my round holes appear to be round. Maybe that’s the wrong idea.
>
> For example, my bearings have a 1.125” (28.575 mm) OD with a small flange. As long as the hole is sized to hold the bearing firmly and any weird stuff is covered by the flange, then all is good. The width of the flange is about 1.75mm. A reasonable approach would be to set $fn so that the vertices are inside the flange and the faces hold the bearing. Use the smallest $fn that allows everything to fit. The hole might not appear to be round under close inspection, but you won’t care because nobody will see it after the bearing is installed.
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
DS
David Schooley
Sun, Mar 13, 2022 4:29 PM
You will still need to experiment to get the tolerance to what it needs to be, but I think you could remove a couple of variables, which matters for an open-source project printed by unknown slicers using unknown materials and printers that might be sloppier than others. I think it would be beneficial to remove the dependencies on the slicer and material as much as possible. The printer still needs to be calibrated.
For my example bearing, I found that $fn=8 is the minimum that keeps the polygon under the flange while also fitting the bearing. It’s right on the edge, so maybe you go with $fn = 10. For $fn=10, the specified hole diameter is 30.05 mm, which is 1mm less than the flange diameter and 1.5mm larger than the bearing diameter. The printer has a lot of room to be sloppy on the corners and it gets nice straight lines where they matter. I need to do some experiments to see if this works.
On Mar 13, 2022, at 11:03 AM, Adrian Mariano avm4@cornell.edu wrote:
I tested nophead's approach a couple years ago and it didn't seem to
work for me with my printer (Prusa MK3S with prusaslicer). I don't
remember exactly what went wrong, and I also just did the one test and
then moved on. I was wondering if the adjustments he tries to capture
could already be done by the slicer.
On Sun, Mar 13, 2022 at 11:12 AM David Schooley dcschooley@gmail.com wrote:
The technique nop described is something I was thinking about last night, although his implementation is much more refined. I was wondering if anybody had tried it and then nop’s email came across this morning.
I’ve always set $fn high enough that my round holes appear to be round. Maybe that’s the wrong idea.
For example, my bearings have a 1.125” (28.575 mm) OD with a small flange. As long as the hole is sized to hold the bearing firmly and any weird stuff is covered by the flange, then all is good. The width of the flange is about 1.75mm. A reasonable approach would be to set $fn so that the vertices are inside the flange and the faces hold the bearing. Use the smallest $fn that allows everything to fit. The hole might not appear to be round under close inspection, but you won’t care because nobody will see it after the bearing is installed.
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
You will still need to experiment to get the tolerance to what it needs to be, but I think you could remove a couple of variables, which matters for an open-source project printed by unknown slicers using unknown materials and printers that might be sloppier than others. I think it would be beneficial to remove the dependencies on the slicer and material as much as possible. The printer still needs to be calibrated.
For my example bearing, I found that $fn=8 is the minimum that keeps the polygon under the flange while also fitting the bearing. It’s right on the edge, so maybe you go with $fn = 10. For $fn=10, the specified hole diameter is 30.05 mm, which is 1mm less than the flange diameter and 1.5mm larger than the bearing diameter. The printer has a lot of room to be sloppy on the corners and it gets nice straight lines where they matter. I need to do some experiments to see if this works.
> On Mar 13, 2022, at 11:03 AM, Adrian Mariano <avm4@cornell.edu> wrote:
>
> I tested nophead's approach a couple years ago and it didn't seem to
> work for me with my printer (Prusa MK3S with prusaslicer). I don't
> remember exactly what went wrong, and I also just did the one test and
> then moved on. I was wondering if the adjustments he tries to capture
> could already be done by the slicer.
>
> On Sun, Mar 13, 2022 at 11:12 AM David Schooley <dcschooley@gmail.com> wrote:
>>
>> The technique nop described is something I was thinking about last night, although his implementation is much more refined. I was wondering if anybody had tried it and then nop’s email came across this morning.
>>
>> I’ve always set $fn high enough that my round holes appear to be round. Maybe that’s the wrong idea.
>>
>> For example, my bearings have a 1.125” (28.575 mm) OD with a small flange. As long as the hole is sized to hold the bearing firmly and any weird stuff is covered by the flange, then all is good. The width of the flange is about 1.75mm. A reasonable approach would be to set $fn so that the vertices are inside the flange and the faces hold the bearing. Use the smallest $fn that allows everything to fit. The hole might not appear to be round under close inspection, but you won’t care because nobody will see it after the bearing is installed.
>> _______________________________________________
>> 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
AM
Adrian Mariano
Sun, Mar 13, 2022 5:34 PM
Right. So I just add a gap rather than trying to use Nophead's method
which purports to give "exact" fit. I usually find that if I use a
large $fn, like 32 say, I add about a 0.1mm gap, then I get a good
slip fit that works for things like screw threads or parts that are
meant to slide on each other. A 0.5 mm gap as suggested earlier
would be horribly loose. Maybe I could see 0.2mm as the absolute max.
Why are you trying to minimize $fn? To make rendering faster, or for
some other reason?
On Sun, Mar 13, 2022 at 12:30 PM David Schooley dcschooley@gmail.com wrote:
You will still need to experiment to get the tolerance to what it needs to be, but I think you could remove a couple of variables, which matters for an open-source project printed by unknown slicers using unknown materials and printers that might be sloppier than others. I think it would be beneficial to remove the dependencies on the slicer and material as much as possible. The printer still needs to be calibrated.
For my example bearing, I found that $fn=8 is the minimum that keeps the polygon under the flange while also fitting the bearing. It’s right on the edge, so maybe you go with $fn = 10. For $fn=10, the specified hole diameter is 30.05 mm, which is 1mm less than the flange diameter and 1.5mm larger than the bearing diameter. The printer has a lot of room to be sloppy on the corners and it gets nice straight lines where they matter. I need to do some experiments to see if this works.
On Mar 13, 2022, at 11:03 AM, Adrian Mariano avm4@cornell.edu wrote:
I tested nophead's approach a couple years ago and it didn't seem to
work for me with my printer (Prusa MK3S with prusaslicer). I don't
remember exactly what went wrong, and I also just did the one test and
then moved on. I was wondering if the adjustments he tries to capture
could already be done by the slicer.
On Sun, Mar 13, 2022 at 11:12 AM David Schooley dcschooley@gmail.com wrote:
The technique nop described is something I was thinking about last night, although his implementation is much more refined. I was wondering if anybody had tried it and then nop’s email came across this morning.
I’ve always set $fn high enough that my round holes appear to be round. Maybe that’s the wrong idea.
For example, my bearings have a 1.125” (28.575 mm) OD with a small flange. As long as the hole is sized to hold the bearing firmly and any weird stuff is covered by the flange, then all is good. The width of the flange is about 1.75mm. A reasonable approach would be to set $fn so that the vertices are inside the flange and the faces hold the bearing. Use the smallest $fn that allows everything to fit. The hole might not appear to be round under close inspection, but you won’t care because nobody will see it after the bearing is installed.
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
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
Right. So I just add a gap rather than trying to use Nophead's method
which purports to give "exact" fit. I usually find that if I use a
large $fn, like 32 say, I add about a 0.1mm gap, then I get a good
slip fit that works for things like screw threads or parts that are
meant to slide on each other. A 0.5 mm gap as suggested earlier
would be horribly loose. Maybe I could see 0.2mm as the absolute max.
Why are you trying to minimize $fn? To make rendering faster, or for
some other reason?
On Sun, Mar 13, 2022 at 12:30 PM David Schooley <dcschooley@gmail.com> wrote:
>
> You will still need to experiment to get the tolerance to what it needs to be, but I think you could remove a couple of variables, which matters for an open-source project printed by unknown slicers using unknown materials and printers that might be sloppier than others. I think it would be beneficial to remove the dependencies on the slicer and material as much as possible. The printer still needs to be calibrated.
>
> For my example bearing, I found that $fn=8 is the minimum that keeps the polygon under the flange while also fitting the bearing. It’s right on the edge, so maybe you go with $fn = 10. For $fn=10, the specified hole diameter is 30.05 mm, which is 1mm less than the flange diameter and 1.5mm larger than the bearing diameter. The printer has a lot of room to be sloppy on the corners and it gets nice straight lines where they matter. I need to do some experiments to see if this works.
>
>
> > On Mar 13, 2022, at 11:03 AM, Adrian Mariano <avm4@cornell.edu> wrote:
> >
> > I tested nophead's approach a couple years ago and it didn't seem to
> > work for me with my printer (Prusa MK3S with prusaslicer). I don't
> > remember exactly what went wrong, and I also just did the one test and
> > then moved on. I was wondering if the adjustments he tries to capture
> > could already be done by the slicer.
> >
> > On Sun, Mar 13, 2022 at 11:12 AM David Schooley <dcschooley@gmail.com> wrote:
> >>
> >> The technique nop described is something I was thinking about last night, although his implementation is much more refined. I was wondering if anybody had tried it and then nop’s email came across this morning.
> >>
> >> I’ve always set $fn high enough that my round holes appear to be round. Maybe that’s the wrong idea.
> >>
> >> For example, my bearings have a 1.125” (28.575 mm) OD with a small flange. As long as the hole is sized to hold the bearing firmly and any weird stuff is covered by the flange, then all is good. The width of the flange is about 1.75mm. A reasonable approach would be to set $fn so that the vertices are inside the flange and the faces hold the bearing. Use the smallest $fn that allows everything to fit. The hole might not appear to be round under close inspection, but you won’t care because nobody will see it after the bearing is installed.
> >> _______________________________________________
> >> 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
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
NH
nop head
Sun, Mar 13, 2022 6:13 PM
I haven't had to do trial and error since I came up with Polyholes. I do
have an overall scale factor to compensate for plastic shrinkage to get the
linear dimensions spot on.
The empirical Polyhole method reduces the number of vertices as the hole
gets smaller to keep the corner cut outside the circle, so it should always
work if the printer gets linear internal dimension correct. For example a
2mm hole will be a square. If your printer / slicer combination doesn't get
square holes right you have a problem. Although the corners will be rounded
they start off sqrt(2) away from the centre, so 0.4mm from the edge of the
circle with radius 1mm. It would be extreme corner cutting if the filament
got dragged within the circle. Similarly for a 4mm hole it would be an
octagon. The corners would be closer to the circle but they are then only
45 degree turns instead of 90 degrees, so they come in less and so on. I
found with
The most common reason for wrong dimensions is printing multiple outlines
because when filaments butt against each other they leave a void that
depends on the viscosity and layer height, so is plastic and temperature
dependent. With a single outline you only need to get the flow rate correct
to get the correct line width and offset by half that.
When I was selling 3D printer kits I did have a short 8mm h6 rod pressed
into a 608 bearing. I had a 3D printed jig to hold the bearing and knocked
it in with a hammer, so I can attest to it being a tight fit!
I haven't had to do trial and error since I came up with Polyholes. I do
have an overall scale factor to compensate for plastic shrinkage to get the
linear dimensions spot on.
The empirical Polyhole method reduces the number of vertices as the hole
gets smaller to keep the corner cut outside the circle, so it should always
work if the printer gets linear internal dimension correct. For example a
2mm hole will be a square. If your printer / slicer combination doesn't get
square holes right you have a problem. Although the corners will be rounded
they start off sqrt(2) away from the centre, so 0.4mm from the edge of the
circle with radius 1mm. It would be extreme corner cutting if the filament
got dragged within the circle. Similarly for a 4mm hole it would be an
octagon. The corners would be closer to the circle but they are then only
45 degree turns instead of 90 degrees, so they come in less and so on. I
found with
The most common reason for wrong dimensions is printing multiple outlines
because when filaments butt against each other they leave a void that
depends on the viscosity and layer height, so is plastic and temperature
dependent. With a single outline you only need to get the flow rate correct
to get the correct line width and offset by half that.
When I was selling 3D printer kits I did have a short 8mm h6 rod pressed
into a 608 bearing. I had a 3D printed jig to hold the bearing and knocked
it in with a hammer, so I can attest to it being a tight fit!