In Creo 3.0 and earlier we used to have a config.pro option called 'restricted_gtol_dialog' that would restrict access to various options in the GTOL dialog based on what was allowed or disallowed according to the GD&T standards. Effectively this option would prevent you from creating an "illegal" combination of symbols in a GTOL by disabling some of the UI components based on the options previously selected. For instance, the datum reference fields were disabled for Flatness tolerance since Flatness does not allow datum references per the standards.
While in general this functionality had some benefits, there were also a number of problems associated with it:
It sets the expectation that the Creo software has a comprehensive understanding of the standards and that any GTOL you were allowed to create was "legal" and, conversely, anything that you were prohibited from doing was "illegal" according to the standards.
There was no way to indicate which particular standard was being referenced for the logic behind this option.
Most of the logic was implemented a long time ago and hadn't been updated as new functionality in the GTOL dialog was implemented and for recent revisions of the standards.
PTC doesn't have in-house expertise on the intricacies of the various GD&T standards and we wouldn't be in a position to update the logic without external help even if we were inclined to make such an update.
If you wanted to do something in a GTOL that was not allowed (perhaps because it was allowed by your company standard or because the embedded PTC logic wasn't exactly correct), you had to disable the restriction by setting the option to NO - which had the effect of allowing any combination of options and symbols in the GTOL dialog.
While the net effect of these issues wasn't great, overall I have heard that customers appreciate any amount of intelligence that the tool could provide. Because, let's face it, GD&T is a complex language and the average engineer or designer is far from an expert in the topic. What typically happens is that someone's GD&T knowledge is usually at its peak immediately after they've attended a training class, but if they don't use this knowledge regularly they'll lose it over time. Having some GD&T rules embedded into the CAD software is helpful for those users whose GD&T knowledge has gotten a little bit rusty.
What's changed in Creo 4.0?
In Creo 4.0 we have eliminated this config option and provided a different mechanism for users to identify standards-compliance problems with their GTOLs and other GD&T-related annotations. We call this new mechanism "syntax checking" and this is a capability that will be provided in the base package of Creo Parametric (no additional license needed) and it is powered by our partner, Sigmetrix, who provides us with GD&T Advisor as well as Tolerance Analysis Extension (TAE). Being the experts in tolerance analysis makes Sigmetrix the right choice to provide the logic engine for this syntax checking capability. By effectively outsourcing the GD&T standards logic and rules to an expert partner, we at PTC are addressing the issue of the lack of in-house expertise in GD&T standards. By externalizing the logic "engine" of syntax checking we also remove the dependency between the UI and the syntax checking capability, meaning that we can implement updates to the logic without needing to update the UI of the annotation itself.
So, what does the syntax checking do and how does it work?
Think of it like a spell check or grammar check in Microsoft Word. It works on GTOL, Datum Feature Symbol and Datum Target. If some of the content in one of those annotations is not correct according to the standard, you'll be notified in two ways:
The contextual ribbon tab for the annotation will display a red wavy underline in the field where the error is noted and a text bubble with a brief description of the error will pop up.
You'll also see a red line under the annotation in the graphics area, which indicates that there is an error with that annotation.
In the image below, I've created a Flatness tolerance and attempted to provide a datum reference, which is not allowed.
The syntax rules will be checked while you're editing the annotation and you'll get real-time feedback on the issues. This means you don't have to complete the task and regenerate in order to see the check results.
How to set the standard you want to use?
The standard used for the syntax checker is determined in the same way that the standard used for GD&T Advisor will be determined. In Creo 4.0, we are using the Tolerance Standard option that is found under the Model Properties dialog. If you'd like to use the ISO 1101-2012 and related standards, choose the ISO/DIN option. If you'd like to use the ASME Y14.5-2009 and related standards, choose the ANSI option.
As a side note, in the future we do plan to provide an improved option that would allow more flexibility and capability for setting the standard to be used, but for now in Creo 4.0 we are tying this in with the existing Tolerance option.
What's the difference between syntax checking and semantic validation?
It's worth mentioning here that the syntax checker available in the base package of Creo Parametric is not the same thing as the full-blown semantic validation that is provided by the optional module, GD&T Advisor. The syntax check is limited in scope to only the content of the particular annotation in question and it does not consider the geometry of the model or any of the other annotations in the check. In other words, the syntax check will make sure that the fields of the annotation are filled out properly and that there is no illegal combination of symbols present, but it will not check that you've picked an appropriate geometry reference or that the datum reference frame being specified is valid. Here are a few examples:
The syntax checker WILL tell you that you've chosen to specify a datum reference when one is not allowed (see example above)
The syntax checker WILL tell you if you've put some illegal characters into the tolerance value field such as a diameter symbol in a Surface Profile tolerance
The syntax checker WILL tell you that you've specified a non-standard name for a datum feature (I, O, Q for instance)
The syntax checker will NOT tell you that you've attached a Flatness tolerance to a cylindrical surface
The syntax checker will NOT tell you that the datums you specify are not mutually perpendicular
Let me know in the comments what you think of the syntax checking functionality.
Moved this blog from Creo Sneak Peek group to the Model Based Enterprise group.
Also edited slightly to reflect the fact that Creo 4.0 is now shipping