Looks to me like you need to think about decimal places when you place the dimension.
The example shown is (to me) correct, for a dimension with *0* decimal places.
So either change the dimension to 1 decimal place, or change the model to 14.0
Production: NX10.0.3.5 MP16/TC11.2
I'd rather be e-steamed than e-diseaseled
I would just take a screen shot of your display, then select all the dimensions and set the decimal places to 2 or 3 places and then compare the critical dimensions. But if this is such an important issue, why not display your dims with at least 1 or 2 decimal places. After all, rounding is just what it says it is.
Looking again at your picture, it would seem that you would have been better off designing the Maximum Material Condition, rather than the minimum, and then dimension appropriately.
Ken: Maybe because of my bad english writing skill (not a native speaker) I didn't correctly state the problem we are facing. It's only when the supplier called that I realized there was a problem (20 parts in production, drawing release). I was trying to find a way to catch this kind of mistake while checking the draft. Often the person doing the drafting is not the designer .
John : What a nice trick! I will give it a try. Can we customize check-mate for that purpose?
As for modeling in MMC condition, it's a old topic here and we have not yet decided the proper way to go. The 3D is often done so that tolerance will be centered around the nominal. But as in this case, under huge pressure for release, we can't always go back and change the 3D.
Thank you both for taking your time to answer my question.
But if you were modeling to the nominal, then your tolerance should have been ' ± ' and not just 'plus'.
That was the idea when the model was created. But by the time the draft was created and ready for release, someone decided that + only was safer. And with no time left to go back and changed the 3D to recenter the tolerance...
Anyways, let's me rephrase my question: assuming the dimension was intended to be 13.6±0.25, how do I make sure I don't end up with 14±0.25? Can we set up a simple check-mate test or it will require some code to browse the drawing and list all dim with say less than 2 decimal places?
There is no predefined test like that in CheckMate but perhaps one could be developed using Knowledge Fusion.
I'd suggest changing your customer defaults and/or templates to set the desired number of decimal places for dimensions. This way all dimensions placed will have X number of decimal places by default, if any need to deviate from this it can be done by manually changing the setting of the dimension.
Anyway, here is a very barebones journal that will report any dimensions that are set for less than 2 decimal places (edit the "minDecimalPlaces" constant to change this as desired).
Option Strict Off Imports System Imports NXOpen Imports NXOpen.UF Module Module1 Dim theSession As Session = Session.GetSession() Dim theUfSession As UFSession = UFSession.GetUFSession '$$$$$ specify minimum number of decimal places desired for dimensions Const minDecimalPlaces As Integer = 2 Sub Main() If IsNothing(theSession.Parts.Work) Then 'active part required Return End If Dim workPart As Part = theSession.Parts.Work Dim lw As ListingWindow = theSession.ListingWindow lw.Open() Const undoMarkName As String = "NXJ journal" Dim markId1 As Session.UndoMarkId markId1 = theSession.SetUndoMark(Session.MarkVisibility.Invisible, undoMarkName) For Each tempDim As Annotations.Dimension In workPart.Dimensions Dim mainText() As String Dim dualText() As String tempDim.GetDimensionText(mainText, dualText) Dim trailingZeros As Boolean = tempDim.GetDimensionPreferences.GetUnitsFormatPreferences.DisplayTrailingZeros Dim decimalPlaces As Integer = tempDim.NominalDecimalPlaces If decimalPlaces < minDecimalPlaces Then 'tempDim.Highlight() lw.WriteLine("dim text: " & mainText(0)) lw.WriteLine(" on sheet: " & AskDrawingSheet(tempDim).Name) lw.WriteLine(" nominal decimal places: " & decimalPlaces.ToString) lw.WriteLine(" trailing zeros displayed: " & trailingZeros.ToString) lw.WriteLine("") End If Next lw.Close() End Sub ' This function will work for: ' an object which "Resides on drawing" or is "View Dependent In" a DraftingView ' a DraftingView ' a DrawingSheet.View ' Returns Nothing for all other (ie. model mode) objects 'code by Amy Webster of GTAC, 'GTAC document: nx_api4936 or nx_api4937 Function AskDrawingSheet(ByVal theObject As TaggedObject) As Drawings.DrawingSheet Dim theView As View = TryCast(theObject, View) If Not theView Is Nothing Then Dim sheetTag As Tag = Nothing Try theUFSession.Draw.AskDrawingOfView(theView.Tag, sheetTag) Return Utilities.NXObjectManager.Get(sheetTag) ' the drawing it is on Catch ex As NXException Return Nothing ' it is a model view End Try End If Dim viewName As String = Nothing Dim status As Integer = Nothing Try theUFSession.View.AskViewDependentStatus(theObject.Tag, status, viewName) Catch ex As NXException Return Nothing End Try If status = 0 Then Return Nothing ' it is a model mode object Dim viewTag As Tag = Nothing theUFSession.View.AskTagOfViewName(viewName, viewTag) Dim viewType As Integer = Nothing Dim viewSubtype As Integer = Nothing theUFSession.View.AskType(viewTag, viewType, viewSubtype) If viewType = 0 Then Return Nothing ' it is view dependent in a modeling view Dim drawingTag As Tag = Nothing theUFSession.Draw.AskDrawingOfView(viewTag, drawingTag) Return Utilities.NXObjectManager.Get(drawingTag) ' the drawing it is on! End Function Public Function GetUnloadOption(ByVal dummy As String) As Integer 'Unloads the image when the NX session terminates GetUnloadOption = NXOpen.Session.LibraryUnloadOption.AtTermination '----Other unload options------- 'Unloads the image immediately after execution within NX 'GetUnloadOption = NXOpen.Session.LibraryUnloadOption.Immediately 'Unloads the image explicitly, via an unload dialog 'GetUnloadOption = NXOpen.Session.LibraryUnloadOption.Explicitly '------------------------------- End Function End Module