How aPriori calculates achievable tolerance ranges
Given a process and a GCD’s size, aPriori can determine the range of tolerances that the process can achieve for that GCD. The achievable tolerance range helps determine operation feasibility (the tolerance required for the GCD must be no tighter than the best achievable tolerance for the operation’s parent process). The achievable tolerance range also helps aPriori adjust cycle times based on required tolerance (see How aPriori determines cycle time adjustment factors).
aPriori determines the best and worst tolerance that a given process can achieve for a given GCD as follows:
1 Determine the best and worst achievable tolerance grade for the process: the lookup table tblGtolProcessCapabilities associates two International Tolerance (IT) Grades with each process, the best achievable tolerance grade and the worst achievable tolerance grade. (Some entries in the table refer to a group of processes, rather than an individual process; in this case, every process in the group has the same best and worst achievable tolerance grades.) aPriori looks up the best and worst achievable grades by process (or group) in tblGtolProcessCapabilities. Note that IT Grades are independent of feature size but can be used together with size to obtain a literal tolerance range.
2 Determine a size value for the GCD as follows:
 
GCD
GTOL Category
GCD Size
Simple Hole
Position Tolerance
Part length/2
Simple Hole
All other GTOL categories
Diameter
Curved Wall
Diameter Tolerance
Diameter or bend diameter (if diameter is null. If both are null, use Sqrt(Finished area)
Curved Wall
Position Tolerance
Part length / 2
Keyway
Symmetry
Max of GCD length, width, and height
Remaining GCDs
Remaining Categories
Sqrt(Finished area)
 
3 Use the size value (obtained in step2) and the best or worst achievable tolerance grade (obtained in step 1) in the formula below, in order to calculate best or worst achievable tolerance. This is the literal tolerance value that takes GCD size into account:
Tolerance = 10^(0.2 * (Grade - 1)) * (0.45 * Size ^ (1 / 3) + 0.001 * Size) / 1000
Note that, unlike achievable tolerances, the achievable roughness for a process and GCD does not depend on the GCD’s size. Literal achievable roughness ranges are stored directly in tblGtolProcessCapabilities, and they require no conversion based on GCD size.
Note: As of Release 16.2, aPriori has added roughness “Rz” to the existing roughness specification found in earlier releases. Throughout the UI, all Rz and Ra specifications are clearly labeled. If you encounter a roughness specification with no Rz or Ra label, it is Ra. By default, if no Roughness Rz value is specified, the default “Best Achievable”/”Worst Achievable” values for Roughness Rz are 4.5 times the value of the specified Roughness Ra.
Besides GCD size and process, another factor that can affect best achievable tolerance is the GCD’s distance from some relevant datum feature, but aPriori does not currently take this into account.
Note: The Injection Molding process allows for significantly tighter “Best Achievable” surface roughness than machining processes (such as those that might be used to make the mold). This is because the best tolerances in Injection Molding are achieved via hand polishing of the mold surface, which is not available in other processes. This results in Injection Molding being more capable than other processes with regard to tolerance/surface finish.