Cubit 17.10 User Documentation![]()
The accuracy setting of the ACIS solid model geometry can be controlled using the following command:
[set] Geometry Accuracy <value = 1e-6>
Some operations like imprinting can be more successful with a lower accuracy setting (i.e., 0.1 to 1e-5). However, it is not recommended to change this value. Be sure to set it back to 1e-6 before exporting the model or doing other operations as a higher setting can corrupt your geometry.
Most geometric modelers use double precision numbers for the coordinate values of a point in three-dimensional space. The maximum number of base ten digits that one can expect from a double precision number is 15. However, if one wants to work with the numbers, such as take their square root to find distances between points, then the precision is cut in half to 7. Moreover, if your numbers are not close to the origin, then you lose more precision for each order of magnitude that a point is away from (0,0,0). Hence, if you make a part with coordinate aligned analytics such as planes, sphere, cylinders, lines and circles, then you may expect tolerances to have 6 significant digits or with luck even more. However, once one introduces NURB curves, which are used to find piecewise polynomial approximations of intersections which are not lines, circles or conic sections, then one cuts the accuracy in half again to around three significant digits. In other words, the accuracy of a CAD model is a lot less than most people would expect.
In addition to tolerances in 3D geometric position, there are also tolerances in the parameter space of curves and surfaces, and there are tolerances in the derivatives of curves and surfaces. NURBs, or rational piecewise polynomials, may fail to even have derivatives. However, most CAD programs try to make sure that the first and second derivatives of their curves and surfaces exist at least on the interior of their domains. Hence, Gaussian integration and Romberg integration, which depend of the continuity of derivatives work but only up to the second derivative and only with low accuracy.
Changing the tolerance in ACIS to a number smaller than 1E-6 will not make parts read into ACIS more accurately. Making the ACIS tolerance a larger number might make some things work on low accuracy data. However, if you change the ACIS tolerance to a larger number, then you are using ACIS in a non-tested mode. It is almost always better to scale your part, or change the units that you are using, instead of changing the ACIS tolerance. In general, all parts in ACIS should be within 10,000 to the origin. CAD systems used to model larger things such as bridges, mines, and skyscrapers need to use even less accurate tolerances. Which is to say that one does not measure a long suspension bridge in microns.
To accommodate different tolerances and low accuracy approximations of curves from different CAD systems, ACIS measures the accuracy of each curve and vertex when it is read in and marks any curves that do not lie on their surfaces to 1E-6 as a tolerant curve, and any vertex that does not lie on its curves to 1E-6 as a tolerant vertex, and these tolerances are used internally in ACIS to make such things as Booleans work with low accuracy data. In general, expect parts that were not made with ACIS to have errors as large as 1E-3. To deal with parts that are very large, scaling them down, performing the operation in question and then scaling the results back up may help. Also moving things closer to the origin may help. ACIS is a unitless geometric modeler and the units that you use need to fit into these numerically sweet spots.
![]()