3d printed part tolerances

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

3d printed part tolerances

Jesse Guardiani
I've had the pleasure of designing my own case for my Arduino Nano recently. I used a caliper, so the measurements are exact.

I printed the case on my Printrbot printer at home and the arduino nano fit easily into the case. The lid fit, everything was perfect. You can see it here (blue prints): http://www.createthis.com/products/create-this-arduino-nano-enclosure-3d-printed

I then printed the case on a Makerbot Replicator 2 using the high quality setting, because I wanted a showpiece for my website. I was shocked when the nano wouldn't fit in the case. The tolerances were too tight. (grey prints in the link above)

The Makerbot case looks a little better than the Printrbot case, especially on the bottom, but the tolerances are way too tight.

Has anyone else run into this? What's the generally accepted way to handle this sort of thing in OpenSCAD? Is there a scale factor I should be applying to all of my measurements to insure a good print fit? I've done this before with screw holes, multiplying the radius by 10% or something to get a good fit, but I hate doing it. It just seems like a hack. I'd hate to pay for a print with Shapeways or something only to learn it didn't fit.

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: 3d printed part tolerances

kintel
Administrator
On 2013-06-12, at 09:51 , Jesse Guardiani wrote:
>
> Has anyone else run into this? What's the generally accepted way to handle this sort of thing in OpenSCAD? Is there a scale factor I should be applying to all of my measurements to insure a good print fit? I've done this before with screw holes, multiplying the radius by 10% or something to get a good fit, but I hate doing it. It just seems like a hack.

In general, you would want to tune your printer (and more importantly, your slicer configuration) to provide print results with the same dimensions as your 3D model.
Naturally, you'd like some tolerance, but that would be the case for any manufacturing process.

Now, if there are components in your toolchain which aren't possible (or feasible) to configure this way, I guess the only way out is to have larger tolerances in your design.
..but try the printer toolchain first - once your printer works perfectly, it will improve all your prints.

 -Marius

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: 3d printed part tolerances

William Adams-2
In reply to this post by Jesse Guardiani
On Jun 12, 2013, at 9:51 AM, Jesse Guardiani wrote:

> Has anyone else run into this?

One of the people using a ShapeOko did some extensive work on measuring the parts which were cut out and calibrating the machine's controller to take into account belt stretch.

> What's the generally accepted way to handle this sort of thing in OpenSCAD? Is there a scale factor I should be applying to all of my measurements to insure a good print fit?

I think that's the wrong place to address this.

> I've done this before with screw holes, multiplying the radius by 10% or something to get a good fit, but I hate doing it. It just seems like a hack. I'd hate to pay for a print with Shapeways or something only to learn it didn't fit.

The machine should print at 100% scale unless told otherwise. Perhaps there's a material shrinkage factor which needs to be accounted for --- I remember dealing w/ that for cire perdue (lost wax) casting.

If it isn't, then one could scale the .stl file in one's CAM program if it's off by a known percentage --- better to address the machine's calibration and adjust things until it's as accurate and precise as can be reasonably expected.

William

--
William Adams
senior graphic designer
Fry Communications
Sphinx of black quartz, judge my vow.

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: 3d printed part tolerances

nophead
Did you use the same slicing software on both machines? That can affect the dimensions. 


On 12 June 2013 14:59, William Adams <[hidden email]> wrote:
On Jun 12, 2013, at 9:51 AM, Jesse Guardiani wrote:

> Has anyone else run into this?

One of the people using a ShapeOko did some extensive work on measuring the parts which were cut out and calibrating the machine's controller to take into account belt stretch.

> What's the generally accepted way to handle this sort of thing in OpenSCAD? Is there a scale factor I should be applying to all of my measurements to insure a good print fit?

I think that's the wrong place to address this.

> I've done this before with screw holes, multiplying the radius by 10% or something to get a good fit, but I hate doing it. It just seems like a hack. I'd hate to pay for a print with Shapeways or something only to learn it didn't fit.

The machine should print at 100% scale unless told otherwise. Perhaps there's a material shrinkage factor which needs to be accounted for --- I remember dealing w/ that for cire perdue (lost wax) casting.

If it isn't, then one could scale the .stl file in one's CAM program if it's off by a known percentage --- better to address the machine's calibration and adjust things until it's as accurate and precise as can be reasonably expected.

William

--
William Adams
senior graphic designer
Fry Communications
Sphinx of black quartz, judge my vow.

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: 3d printed part tolerances

Joseph Brinker
In order to make one part (case) fit  to another part (phone) you need to know the tolerance band of both parts.  In this case you need to know the variability of the phone (you only have 1 phone, therefore you have no phone tolerance band) and you need to define the dimension and tolerance band of the case so that it will fit with out bulging or falling off.    Once you know the tolerance band, you then need to determine the tool's (in this case the printer) reproducability {http://en.wikipedia.org/wiki/ANOVA_gauge_R%26R}.   Different printers (and their operators) will cause each case to be slightly different in their dimension.  The key to manufacturing is obtaining from the tool maker their  "reproducable" metric.  Then you can determine if that tool's variability meets your tolerance needs (for the case).


On Wed, Jun 12, 2013 at 10:03 AM, nop head <[hidden email]> wrote:
Did you use the same slicing software on both machines? That can affect the dimensions. 


On 12 June 2013 14:59, William Adams <[hidden email]> wrote:
On Jun 12, 2013, at 9:51 AM, Jesse Guardiani wrote:

> Has anyone else run into this?

One of the people using a ShapeOko did some extensive work on measuring the parts which were cut out and calibrating the machine's controller to take into account belt stretch.

> What's the generally accepted way to handle this sort of thing in OpenSCAD? Is there a scale factor I should be applying to all of my measurements to insure a good print fit?

I think that's the wrong place to address this.

> I've done this before with screw holes, multiplying the radius by 10% or something to get a good fit, but I hate doing it. It just seems like a hack. I'd hate to pay for a print with Shapeways or something only to learn it didn't fit.

The machine should print at 100% scale unless told otherwise. Perhaps there's a material shrinkage factor which needs to be accounted for --- I remember dealing w/ that for cire perdue (lost wax) casting.

If it isn't, then one could scale the .stl file in one's CAM program if it's off by a known percentage --- better to address the machine's calibration and adjust things until it's as accurate and precise as can be reasonably expected.

William

--
William Adams
senior graphic designer
Fry Communications
Sphinx of black quartz, judge my vow.

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: 3d printed part tolerances

terramir
In reply to this post by Jesse Guardiani
The thing is not only slicing software is involved also the extruder tolerances filament diameter tolerances and what belts and pulleys are being used and well one can expect the overall part to contract slightly as it cools off. maybe your home extruder extrudes a little less plastic (this can be due to filament diameter it's rarely ever exactly 3mm or exactly 1.7mm. my prusa prints at 100 steps per mm so I can expect parts to be very precise however contraction filament diameter and slippage will throw a monkey wrench in every time
terramir




On Wed, Jun 12, 2013 at 6:51 AM, Jesse Guardiani <[hidden email]> wrote:
I've had the pleasure of designing my own case for my Arduino Nano recently. I used a caliper, so the measurements are exact.

I printed the case on my Printrbot printer at home and the arduino nano fit easily into the case. The lid fit, everything was perfect. You can see it here (blue prints): http://www.createthis.com/products/create-this-arduino-nano-enclosure-3d-printed

I then printed the case on a Makerbot Replicator 2 using the high quality setting, because I wanted a showpiece for my website. I was shocked when the nano wouldn't fit in the case. The tolerances were too tight. (grey prints in the link above)

The Makerbot case looks a little better than the Printrbot case, especially on the bottom, but the tolerances are way too tight.

Has anyone else run into this? What's the generally accepted way to handle this sort of thing in OpenSCAD? Is there a scale factor I should be applying to all of my measurements to insure a good print fit? I've done this before with screw holes, multiplying the radius by 10% or something to get a good fit, but I hate doing it. It just seems like a hack. I'd hate to pay for a print with Shapeways or something only to learn it didn't fit.

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566



--
Respectfully,
R. Daniel Borkan
727 S. Coronado St. 201
Los Angeles, CA 90057
H: (213) 739-1863
C: (213) 271-6721

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: 3d printed part tolerances

David Powell
In reply to this post by Joseph Brinker
it could also be down to a calibration error , i.e. the steps per mm on one machine is not quite 1mm or the other is over , 
it would probably be worth printing some long calibration prints  and checking them for length and adjusting the machine step sizes to correctly calibrate them both 
missing or dropping steps can also be a problem if the steppers are under powered or there is a lot of friction on an axis  

as to how to handle it in software , if you want a 8mm shaft to fit into a 8mm hole ether the hole needs to be bigger than 8mm or the shaft smaller ,, by how much depends on how "slack" the fit can be and how accurate the surface of the 2   parts can be made , so if the surface of the shaft and hole  differ by 0.1mm then you need a gap of 0.2mm so a 8mm shaft with a 8.2mm dia hole ,  

as to calibration of the printer you could scale the print to correct it  but its still way better to calibrate the printer properly 

dave


On Wed, Jun 12, 2013 at 4:41 PM, Joseph Brinker <[hidden email]> wrote:
In order to make one part (case) fit  to another part (phone) you need to know the tolerance band of both parts.  In this case you need to know the variability of the phone (you only have 1 phone, therefore you have no phone tolerance band) and you need to define the dimension and tolerance band of the case so that it will fit with out bulging or falling off.    Once you know the tolerance band, you then need to determine the tool's (in this case the printer) reproducability {http://en.wikipedia.org/wiki/ANOVA_gauge_R%26R}.   Different printers (and their operators) will cause each case to be slightly different in their dimension.  The key to manufacturing is obtaining from the tool maker their  "reproducable" metric.  Then you can determine if that tool's variability meets your tolerance needs (for the case).


On Wed, Jun 12, 2013 at 10:03 AM, nop head <[hidden email]> wrote:
Did you use the same slicing software on both machines? That can affect the dimensions. 


On 12 June 2013 14:59, William Adams <[hidden email]> wrote:
On Jun 12, 2013, at 9:51 AM, Jesse Guardiani wrote:

> Has anyone else run into this?

One of the people using a ShapeOko did some extensive work on measuring the parts which were cut out and calibrating the machine's controller to take into account belt stretch.

> What's the generally accepted way to handle this sort of thing in OpenSCAD? Is there a scale factor I should be applying to all of my measurements to insure a good print fit?

I think that's the wrong place to address this.

> I've done this before with screw holes, multiplying the radius by 10% or something to get a good fit, but I hate doing it. It just seems like a hack. I'd hate to pay for a print with Shapeways or something only to learn it didn't fit.

The machine should print at 100% scale unless told otherwise. Perhaps there's a material shrinkage factor which needs to be accounted for --- I remember dealing w/ that for cire perdue (lost wax) casting.

If it isn't, then one could scale the .stl file in one's CAM program if it's off by a known percentage --- better to address the machine's calibration and adjust things until it's as accurate and precise as can be reasonably expected.

William

--
William Adams
senior graphic designer
Fry Communications
Sphinx of black quartz, judge my vow.

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: 3d printed part tolerances

Lampbus
In reply to this post by terramir
Yes, The overall scale may be perfect, but the extruder laying down a
path that is slightly wider (or narrower) than what you put in the settings.

Thus the path centerline is right, but the deposited track too wide - I
see this on my first later when not rafting.

Scaling will not help you here - unless you are printing
squares/circles. ANy other rectangle will need scaling differently in X
and Y to fit, and then outside features will be even further out.

On 12/06/2013 20:06, r.d. terramir wrote:
> ing used and well one can expect the overall part to contract slightly
> as it cools off. maybe your home extruder extrudes a little less
> plastic (this can be due to filament diameter it's rarely ever exactly
> 3mm or exactly 1.7mm. my prusa prints at 100 steps per mm so I can
> expect parts to be very precise however contraction filament diameter
> and slippage will throw a monkey wrench in every time
> terramir
>

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: 3d printed part tolerances

Ed Nisley
In reply to this post by Jesse Guardiani
On 06/12/2013 09:51 AM, Jesse Guardiani wrote:
> Is there a scale factor I should be applying to all of my measurements

Holes typically come out slightly smaller than the solid model would
have you believe. Posts may also be too small, even though the object's
overall dimensions will be very accurate.

I made some measurements while I was bringing up my M2:
http://softsolder.com/2013/04/21/makergear-m2-post-and-hole-calibration-test-objects/

Slicing software can attempt to identify and adjust features, but the
STL model format don't contain enough information to make that work very
well (IMHO). I apply a Finagle Constant for small hole diameters when
I'm designing the part, so that the answers come out right on my printers.

In practice, adding 0.2 mm to diameters above 2 mm and below about 10 mm
suffices. I generally hand-twist a drill through the holes to clean them
up, so being very slightly undersize works out fine.

> It just seems like a hack.

That's certainly true, but adjusting the model to fit a particular
printer seems to be the only way to get a precise result.

Of course, all those folks printing bunnies and chess pieces don't care
about sub-millimeter tolerances like we do... [grin]

--
Ed
softsolder.com
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: 3d printed part tolerances

Len Trigg
Ed,

Have you tried your calibration example by using Nophead's "polyholes" instead of regular cylinders for the holes?
See: http://hydraraptor.blogspot.co.nz/2011/02/polyholes.html

Cheers,
Len.



On Thu, Jun 13, 2013 at 9:20 AM, Ed Nisley <[hidden email]> wrote:
On 06/12/2013 09:51 AM, Jesse Guardiani wrote:
> Is there a scale factor I should be applying to all of my measurements

Holes typically come out slightly smaller than the solid model would
have you believe. Posts may also be too small, even though the object's
overall dimensions will be very accurate.

I made some measurements while I was bringing up my M2:
http://softsolder.com/2013/04/21/makergear-m2-post-and-hole-calibration-test-objects/

Slicing software can attempt to identify and adjust features, but the
STL model format don't contain enough information to make that work very
well (IMHO). I apply a Finagle Constant for small hole diameters when
I'm designing the part, so that the answers come out right on my printers.

In practice, adding 0.2 mm to diameters above 2 mm and below about 10 mm
suffices. I generally hand-twist a drill through the holes to clean them
up, so being very slightly undersize works out fine.

> It just seems like a hack.

That's certainly true, but adjusting the model to fit a particular
printer seems to be the only way to get a precise result.

Of course, all those folks printing bunnies and chess pieces don't care
about sub-millimeter tolerances like we do... [grin]

--
Ed
softsolder.com
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: 3d printed part tolerances

Torsten Wagner
This was exactly the reason I asked some days ago for a variable which would mimic the printer resolution and hence people could check there models.
From that thread some suggest that this is part of a CAM process e.g. slicer. However, I still would think that it would be beneficial to have this within openscad.  
E.g. people could give feature size and positioning accuracy and openscad could 

a) redraw the model according to this numbers. That would make people e.g. aware of different resolutions in X,Y and Z direction. A perfect sphere would suddenly contain steps etc.

b) Like e.g. PCB programs openscad could provide some sort of testing unit throwing out warnings for features to small, to close to each other or even unwanted intersections, or which can't be created with the given accuracy.

I know, many might say, this is part of the CAM process. But as we learn from this thread, we might have no influence on the CAM process, e.g. sending it to a fabhouse. In those cases it would be great if openscad can help out.
Same for parts which you got from somewhere. Some are created taking tolerances of a certain printer into account, some does not. It is difficult to adapt those objects to another printer. Having features like emulating the final printing object can help people to adopt those objects to there printers.

Finally, I believe that openscads intermediate format does provide more information and more possibilities compared to the STL format and feature set of many CAM processes. As written by Ed, we might loose possibilities by relying on STL-based CAM process features.

All the best 

Torwag 



On 13 June 2013 03:18, Len Trigg <[hidden email]> wrote:
Ed,

Have you tried your calibration example by using Nophead's "polyholes" instead of regular cylinders for the holes?
See: http://hydraraptor.blogspot.co.nz/2011/02/polyholes.html

Cheers,
Len.



On Thu, Jun 13, 2013 at 9:20 AM, Ed Nisley <[hidden email]> wrote:
On 06/12/2013 09:51 AM, Jesse Guardiani wrote:
> Is there a scale factor I should be applying to all of my measurements

Holes typically come out slightly smaller than the solid model would
have you believe. Posts may also be too small, even though the object's
overall dimensions will be very accurate.

I made some measurements while I was bringing up my M2:
http://softsolder.com/2013/04/21/makergear-m2-post-and-hole-calibration-test-objects/

Slicing software can attempt to identify and adjust features, but the
STL model format don't contain enough information to make that work very
well (IMHO). I apply a Finagle Constant for small hole diameters when
I'm designing the part, so that the answers come out right on my printers.

In practice, adding 0.2 mm to diameters above 2 mm and below about 10 mm
suffices. I generally hand-twist a drill through the holes to clean them
up, so being very slightly undersize works out fine.

> It just seems like a hack.

That's certainly true, but adjusting the model to fit a particular
printer seems to be the only way to get a precise result.

Of course, all those folks printing bunnies and chess pieces don't care
about sub-millimeter tolerances like we do... [grin]

--
Ed
softsolder.com
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: 3d printed part tolerances

Ed Nisley
In reply to this post by Len Trigg
On 06/12/2013 09:18 PM, Len Trigg wrote:
> Have you tried your calibration example by using Nophead's "polyholes"

Actually, I ran that test to find the HoleWindage constant for my M2,
which I plug into my version of his module:

HoleWindage = 0.3;

module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes
   Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
   FixDia = Dia / cos(180/Sides);
   cylinder(r=(FixDia + HoleWindage)/2,h=Height,$fn=Sides);
}

Sometimes I want the circumscribed polygon to have a specific number of
sides, but most often the default is Good Enough.

I use two other constants that define the printed thread thickness and
width:

ThreadThick = 0.25;
ThreadWidth = 0.40;

Those feed into a function that ensures a given dimension comes out as
an integral multiple of the thread size:

function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);

So, to build a tiny brick that measures 1 x 3 x 0.8 mm:

cube([IntegerMultiple(1.0,ThreadWidth), // 3 wide = 1.2 mm
       IntegerMultiple(3.0,ThreadWidth), // 8 wide = 3.2 mm
       IntegerMultiple(0.8,ThreadThick)]); // 4 tall = 1.0 mm

The dimensions may be slightly larger than nominal, but rounding up that
way ensures the features will always work on that particular printer.
It's most useful for "as thin as possible" features, not for anything
over a few millimeters.

As nearly as I can tell, the only way to share a model intended for 3D
printing is through the source code: a bare STL file removes your
freedom to tinker.

--
Ed
softsolder.com
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: 3d printed part tolerances

Jesse Guardiani
I'm glad I started this discussion. I've learned a lot.

Joseph Brinker's comment sounded like it came from experience in manufacturing and maybe engineering. My question for anyone after reading his comment about tolerance bands, is... how would I go about calculating the tolerance band on my reprap or printrbot or makerbot? Is that a statistical model built through experimentation, or can it be calculated?

The article by nophead on polycircles was great. I already use a "resolution" variable in all of my code. I manually set the $fn of every cylinder to resolution. (It would be great if there was a global resolution variable so I didn't have to do this) During development, I set it low. When I'm ready to print, I set it to 100 and do a final (long/slow) render. However, I still have to add 10%, often. My goal is to not have to drill out my holes after printing. 10% usually works for this.

Beyond polycircles, I personally think all of this belongs in the slicer. If I design a part with a 10mm hole, it's the job of the slicer to make sure that happens.

However... I wonder if there is something we can do in OpenSCAD to help define tolerance bands? That seems to be a genuine engineering issue that belongs in the CAD software.

--
Jesse



On Thu, Jun 13, 2013 at 7:33 AM, Ed Nisley <[hidden email]> wrote:
On 06/12/2013 09:18 PM, Len Trigg wrote:
> Have you tried your calibration example by using Nophead's "polyholes"

Actually, I ran that test to find the HoleWindage constant for my M2,
which I plug into my version of his module:

HoleWindage = 0.3;

module PolyCyl(Dia,Height,ForceSides=0) {       // based on nophead's polyholes
   Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
   FixDia = Dia / cos(180/Sides);
   cylinder(r=(FixDia + HoleWindage)/2,h=Height,$fn=Sides);
}

Sometimes I want the circumscribed polygon to have a specific number of
sides, but most often the default is Good Enough.

I use two other constants that define the printed thread thickness and
width:

ThreadThick = 0.25;
ThreadWidth = 0.40;

Those feed into a function that ensures a given dimension comes out as
an integral multiple of the thread size:

function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);

So, to build a tiny brick that measures 1 x 3 x 0.8 mm:

cube([IntegerMultiple(1.0,ThreadWidth),         // 3 wide = 1.2 mm
       IntegerMultiple(3.0,ThreadWidth),                // 8 wide = 3.2 mm
       IntegerMultiple(0.8,ThreadThick)]);      // 4 tall = 1.0 mm

The dimensions may be slightly larger than nominal, but rounding up that
way ensures the features will always work on that particular printer.
It's most useful for "as thin as possible" features, not for anything
over a few millimeters.

As nearly as I can tell, the only way to share a model intended for 3D
printing is through the source code: a bare STL file removes your
freedom to tinker.

--
Ed
softsolder.com
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: 3d printed part tolerances

Ed Nisley
On 06/13/2013 10:36 AM, Jesse Guardiani wrote:
> all of this belongs in the slicer.

The gotcha is that the slicer knows nothing of your model and,
therefore, nothing of your intentions. All it gets is a list of
triangles representing the model, so it must deduce all of the shapes
and positions from those fragments.

For example, a hole with a vertical axis may need 0.2 mm of diameter
enlargement, but a hole with a horizontal axis needs something
completely different... maybe even a different shape, as in the classic
RepRap hole-with-peak.

If a vertical hole must fit a peg that's part of another object, you
would enlarge it to guarantee a sliding fit given the known tolerances.
But an adjacent hole that will be tapped for a threaded screw doesn't
need any enlargement at all. All the slicer sees is that list of
triangles making up the hole walls; it can't tell what you intended to do.

The OpenSCAD source (or, equivalently, the CAD drawing) is the only
place where all that knowledge comes together.

All manufacturing has tolerances and process limitations, so you must
design the parts with those tolerances in mind. Filament-based DIY 3D
printing has tolerances in the quarter-millimeter range, which is sloppy
by milling-machine standards and workable for human-scale objects. If
you really care, you must build that care into the model.

When it works, it works *really* well!

--
Ed
softsolder.com
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566