This shows you the differences between two versions of the page.
rhino:faqtolerances [2016/05/03] |
rhino:faqtolerances [2020/08/14] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ======Understanding Tolerances====== | ||
+ | > **Product: | ||
+ | > **Summary: | ||
+ | =====Tolerances, | ||
+ | <color darkslateblue> | ||
+ | |||
+ | The subject of file tolerances frequently comes up in new user questions. | ||
+ | |||
+ | {{vimeo> | ||
+ | |||
+ | |||
+ | =====1: Understanding tolerances===== | ||
+ | |||
+ | **//< | ||
+ | |||
+ | Engineering methods for specifying tolerances are precise and involved. We will not go into that kind of detail here. We are simply a guide to set up your projects for modeling in Rhino. Depending on which template you choose currently, Rhino sets your absolute tolerances at 0.01 or 0.001 units (whatever units you are using, inches, mm, meters, etc.). You can also create your own templates with other tolerances. | ||
+ | |||
+ | |||
+ | =====2: Absolute tolerance settings in Rhino===== | ||
+ | |||
+ | In Rhino' | ||
+ | |||
+ | > **Note:** //In joining operations, 2X the absolute tolerance is allowed, so be careful.// | ||
+ | |||
+ | **<color royalblue> | ||
+ | |||
+ | Some objects are possible to define mathematically perfect to the limits of what your computer' | ||
+ | |||
+ | Another downside of specifying a higher than needed absolute tolerance is that Rhino will then generate things like sections or intersections with many, many control points. Control points which are heavier (bigger data size), noisier (not as smooth), and harder to edit. | ||
+ | |||
+ | **<color royalblue> | ||
+ | |||
+ | Any command necessary to find the intersection between curves and surfaces is an example. Specific commands include (but are not limited to): Trim, Split, Intersect, Contour, Section, Offset (curves and surfaces) Project, Sweep 1 and 2 Rails, all the Boolean operations, FilletSrf, FilletEdge. | ||
+ | |||
+ | |||
+ | **<color royalblue> | ||
+ | |||
+ | The advantage of a looser (larger) tolerance is that computing time and data size may be reduced, but at the expense of your model' | ||
+ | |||
+ | For example, the // | ||
+ | |||
+ | Try the Intersect command and save the resulting curve off to one side. Then add a zero to the tolerance setting and run Intersect again. Now turn on the control points for both curves. The second curve will have more control points, will be heavier, and will stay closer to the two surfaces. Is one curve better than the other? It depends on your needs. If your manufacturing process can't benefit from the more closely fitting part, then the first lighter curve is better since it results in a smaller file, faster calculations, | ||
+ | |||
+ | Different objects and scales may require widely differing tolerances. | ||
+ | |||
+ | Another rule of thumb: Use a tolerance setting equal to or one order of magnitude tighter than (1/10 of) the best tolerance you can hold through your manufacturing process -- or one order of magnitude tighter than your smallest modeled detail, whichever is smaller. | ||
+ | |||
+ | **<color royalblue> | ||
+ | |||
+ | Some commands may let you individually specify the tolerance for that particular operation | ||
+ | |||
+ | And last, there are commands like JoinEdge that let you exceed the absolute tolerances locally if you think it might be useful. Use this with caution!! You are deliberately saying it's OK to be inaccurate here! | ||
+ | |||
+ | =====3.1: | ||
+ | |||
+ | The relative tolerance setting is no longer present from Rhino V6 and up. | ||
+ | Up until Rhino V5 is was used on few commands and could generally be left alone. | ||
+ | |||
+ | =====3.2: | ||
+ | |||
+ | The angular tolerance is important in that it tells Rhino at what point you want two curves or surfaces to be considered tangent. The default setting of 1 degree is rather large for fine modeling. Surfaces that are 1 degree out of tangency can still show a visible fold or line. I find a setting of 0.1 degree or even finer to be better. | ||
+ | =====4: | ||
+ | |||
+ | An important thing to note is that tolerances should be set at the beginning of the modeling process, for, although you can change the tolerances while you work, objects which were previously modeled with lower tolerances will not be fixed if you raise them. A good practice is to continuously check your work by joining up elements as you create them. If they join, you're within your tolerance limits. If they don't, you need to go back and find out why and correct the situation immediately. This avoids ending up with a finished model with problem areas or inaccuracies which may be hard to fix at that late stage without completely rebuilding certain sections. | ||
+ | |||
+ | Operations that involve the intersecting function, such as Intersect, Split or the Boolean operations, can also be quite sensitive to tolerance settings. Often, if the absolute tolerance is set too low, complete intersections may not be found. Splitting or Boolean operations may fail as a result. (Note that tolerances are not the only reason for these operations to fail.) Too tight a tolerance setting may also be harmful. Besides creating overly long calculation times, Rhino may even crash. In general you should keep the absolute tolerance setting in the range of 0.01 to 0.0001. And never set it below 1.0e-5. If you need a tighter tolerance, use smaller units instead. | ||
+ | |||
+ | |||
+ | =====5: | ||
+ | |||
+ | If you are going to export objects to another downstream application (such as CAM software or a solid modeler), it is important to take into account the precision that these programs require for imports to be successful. Experience is the only guide here. When in doubt, ask on the Rhino support newsgroup. Someone who has had the experience can give you guidelines. In general, MCAD applications seem to appreciate higher precision objects, so if that's your target, error on the more precise side if possible! Your entire modeling process from start to finish needs to be done at this level of precision to be successful with your export. | ||
+ | |||
+ | \\ | ||
+ | |||
+ | {{tag> |