Option Strict Off
Imports System
Imports NXOpen
Imports NXOpen.UF
Imports NXOpen.UI
Imports NXOpen.Annotations
Module NX85LimitsFits
Dim s As Session = Session.GetSession()
Dim ui As UI = UI.GetUI()
Dim ufs As UFSession = UFSession.GetUFSession()
Dim workPart As Part = s.Parts.Work
Dim nxVersion As String = s.GetEnvironmentVariableValue("UGII_MAJOR_VERSION") & "." & s.GetEnvironmentVariableValue("UGII_MINOR_VERSION")
Sub Main()
Dim selecteddims(-1) As TaggedObject
Dim response1 As Selection.Response = Selection.Response.Cancel
nxversion = val(nxversion)
if nxversion > 8.5 then
start1:
response1 = Select_dims(selecteddims)
EditDimensionTolerance2(selecteddims)
end1:
else
start2:
response1 = Select_dims(selecteddims)
EditDimensionTolerance(selecteddims)
end2:
end if
End Sub
' ----------------------------------------------
' sub to edit tolerance
' ----------------------------------------------
Sub EditDimensionTolerance(ByVal selecteddims () As TaggedObject)
Dim markId3 As Session.UndoMarkId
Dim dimname1 As String = Nothing
For Each selecteddim As Dimension In selecteddims
dimname1 = selecteddim.ToString()
If dimname1.Contains("Radius") = True Then
Dim radiusDimension1 As Annotations.RadiusDimension = selecteddim
Dim linearTolerance1 As Annotations.LinearTolerance
linearTolerance1 = radiusDimension1.GetTolerance()
linearTolerance1.ToleranceType = Annotations.ToleranceType.LimitsAndFits
radiusDimension1.SetTolerance(linearTolerance1)
Dim dimensionPreferences1 As Annotations.DimensionPreferences
dimensionPreferences1 = radiusDimension1.GetDimensionPreferences()
dimensionPreferences1.LimitFitDeviation = "f"
dimensionPreferences1.LimitFitGrade = 8
radiusDimension1.SetDimensionPreferences(dimensionPreferences1)
ElseIf dimname1.Contains("Horizontal") = True Then
Dim horizontalDimension1 As Annotations.HorizontalDimension = selecteddim
Dim linearTolerance1 As Annotations.LinearTolerance
linearTolerance1 = horizontalDimension1.GetTolerance()
linearTolerance1.ToleranceType = Annotations.ToleranceType.LimitsAndFits
horizontalDimension1.SetTolerance(linearTolerance1)
Dim dimensionPreferences1 As Annotations.DimensionPreferences
dimensionPreferences1 = horizontalDimension1.GetDimensionPreferences()
dimensionPreferences1.LimitFitDeviation = "f"
dimensionPreferences1.LimitFitGrade = 8
horizontalDimension1.SetDimensionPreferences(dimensionPreferences1)
ElseIf dimname1.Contains("Vertical") = True Then
Dim verticalDimension1 As Annotations.VerticalDimension = selecteddim
Dim linearTolerance1 As Annotations.LinearTolerance
linearTolerance1 = VerticalDimension1.GetTolerance()
linearTolerance1.ToleranceType = Annotations.ToleranceType.LimitsAndFits
VerticalDimension1.SetTolerance(linearTolerance1)
Dim dimensionPreferences1 As Annotations.DimensionPreferences
dimensionPreferences1 = verticalDimension1.GetDimensionPreferences()
dimensionPreferences1.LimitFitDeviation = "f"
dimensionPreferences1.LimitFitGrade = 8
verticalDimension1.SetDimensionPreferences(dimensionPreferences1)
ElseIf dimname1.Contains("Parallel") = True Then
Dim ParallelDimension1 As Annotations.ParallelDimension = selecteddim
Dim linearTolerance1 As Annotations.LinearTolerance
linearTolerance1 = ParallelDimension1.GetTolerance()
linearTolerance1.ToleranceType = Annotations.ToleranceType.LimitsAndFits
ParallelDimension1.SetTolerance(linearTolerance1)
Dim dimensionPreferences1 As Annotations.DimensionPreferences
dimensionPreferences1 = ParallelDimension1.GetDimensionPreferences()
dimensionPreferences1.LimitFitDeviation = "f"
dimensionPreferences1.LimitFitGrade = 8
ParallelDimension1.SetDimensionPreferences(dimensionPreferences1)
ElseIf dimname1.Contains("Diameter") = True Then
Dim DiameterDimension1 As Annotations.DiameterDimension = selecteddim
Dim linearTolerance1 As Annotations.LinearTolerance
linearTolerance1 = DiameterDimension1.GetTolerance()
linearTolerance1.ToleranceType = Annotations.ToleranceType.LimitsAndFits
DiameterDimension1.SetTolerance(linearTolerance1)
Dim dimensionPreferences1 As Annotations.DimensionPreferences
dimensionPreferences1 = DiameterDimension1.GetDimensionPreferences()
dimensionPreferences1.LimitFitDeviation = "f"
dimensionPreferences1.LimitFitGrade = 8
DiameterDimension1.SetDimensionPreferences(dimensionPreferences1)
ElseIf dimname1.Contains("Cylindrical") = True Then
Dim CylindricalDimension1 As Annotations.CylindricalDimension = selecteddim
Dim linearTolerance1 As Annotations.LinearTolerance
linearTolerance1 = CylindricalDimension1.GetTolerance()
linearTolerance1.ToleranceType = Annotations.ToleranceType.LimitsAndFits
CylindricalDimension1.SetTolerance(linearTolerance1)
Dim dimensionPreferences1 As Annotations.DimensionPreferences
dimensionPreferences1 = CylindricalDimension1.GetDimensionPreferences()
dimensionPreferences1.LimitFitDeviation = "f"
dimensionPreferences1.LimitFitGrade = 8
CylindricalDimension1.SetDimensionPreferences(dimensionPreferences1)
ElseIf dimname1.Contains("Perpendicular") = True Then
Dim PerpendicularDimension1 As Annotations.PerpendicularDimension = selecteddim
Dim linearTolerance1 As Annotations.LinearTolerance
linearTolerance1 = PerpendicularDimension1.GetTolerance()
linearTolerance1.ToleranceType = Annotations.ToleranceType.LimitsAndFits
PerpendicularDimension1.SetTolerance(linearTolerance1)
Dim dimensionPreferences1 As Annotations.DimensionPreferences
dimensionPreferences1 = PerpendicularDimension1.GetDimensionPreferences()
dimensionPreferences1.LimitFitDeviation = "f"
dimensionPreferences1.LimitFitGrade = 8
PerpendicularDimension1.SetDimensionPreferences(dimensionPreferences1)
End If
Next
Dim nErrs1 As Integer
nErrs1 = s.UpdateManager.DoUpdate(markId3)
End Sub
'************************************************************************************************************
'************************************************************************************************************
Sub EditDimensionTolerance2(ByVal selecteddims () As TaggedObject)
Dim markId3 As Session.UndoMarkId
Dim dimname1 As String = Nothing
For Each selecteddim As Dimension In selecteddims
dimname1 = selecteddim.ToString()
If dimname1.Contains("Radius") = True Then
Dim radiusDimension1 As Annotations.RadiusDimension = selecteddim
Dim linearTolerance1 As Annotations.LinearTolerance
linearTolerance1 = radiusDimension1.GetTolerance()
linearTolerance1.ToleranceType = Annotations.ToleranceType.LimitsAndFits
radiusDimension1.SetTolerance(linearTolerance1)
Dim dimensionPreferences1 As Annotations.DimensionPreferences
dimensionPreferences1 = radiusDimension1.GetDimensionPreferences()
dimensionPreferences1.LimitFitAnsiHoleType = NXOpen.Annotations.FitAnsiHoleType.Shaft
dimensionPreferences1.LimitFitShaftDeviation = "f"
dimensionPreferences1.LimitFitShaftGrade = 8
radiusDimension1.SetDimensionPreferences(dimensionPreferences1)
ElseIf dimname1.Contains("Horizontal") = True Then
Dim horizontalDimension1 As Annotations.HorizontalDimension = selecteddim
Dim linearTolerance1 As Annotations.LinearTolerance
linearTolerance1 = horizontalDimension1.GetTolerance()
linearTolerance1.ToleranceType = Annotations.ToleranceType.LimitsAndFits
horizontalDimension1.SetTolerance(linearTolerance1)
Dim dimensionPreferences1 As Annotations.DimensionPreferences
dimensionPreferences1 = horizontalDimension1.GetDimensionPreferences()
dimensionPreferences1.LimitFitAnsiHoleType = NXOpen.Annotations.FitAnsiHoleType.Shaft
dimensionPreferences1.LimitFitShaftDeviation = "f"
dimensionPreferences1.LimitFitshaftGrade = 8
horizontalDimension1.SetDimensionPreferences(dimensionPreferences1)
ElseIf dimname1.Contains("Vertical") = True Then
Dim verticalDimension1 As Annotations.VerticalDimension = selecteddim
Dim linearTolerance1 As Annotations.LinearTolerance
linearTolerance1 = VerticalDimension1.GetTolerance()
linearTolerance1.ToleranceType = Annotations.ToleranceType.LimitsAndFits
VerticalDimension1.SetTolerance(linearTolerance1)
Dim dimensionPreferences1 As Annotations.DimensionPreferences
dimensionPreferences1 = verticalDimension1.GetDimensionPreferences()
dimensionPreferences1.LimitFitAnsiHoleType = NXOpen.Annotations.FitAnsiHoleType.Shaft
dimensionPreferences1.LimitFitShaftDeviation = "f"
dimensionPreferences1.LimitFitshaftGrade = 8
verticalDimension1.SetDimensionPreferences(dimensionPreferences1)
ElseIf dimname1.Contains("Parallel") = True Then
Dim ParallelDimension1 As Annotations.ParallelDimension = selecteddim
Dim linearTolerance1 As Annotations.LinearTolerance
linearTolerance1 = ParallelDimension1.GetTolerance()
linearTolerance1.ToleranceType = Annotations.ToleranceType.LimitsAndFits
ParallelDimension1.SetTolerance(linearTolerance1)
Dim dimensionPreferences1 As Annotations.DimensionPreferences
dimensionPreferences1 = ParallelDimension1.GetDimensionPreferences()
dimensionPreferences1.LimitFitAnsiHoleType = NXOpen.Annotations.FitAnsiHoleType.Shaft
dimensionPreferences1.LimitFitShaftDeviation = "f"
dimensionPreferences1.LimitFitShaftGrade = 8
ParallelDimension1.SetDimensionPreferences(dimensionPreferences1)
ElseIf dimname1.Contains("Diameter") = True Then
Dim DiameterDimension1 As Annotations.DiameterDimension = selecteddim
Dim linearTolerance1 As Annotations.LinearTolerance
linearTolerance1 = DiameterDimension1.GetTolerance()
linearTolerance1.ToleranceType = Annotations.ToleranceType.LimitsAndFits
DiameterDimension1.SetTolerance(linearTolerance1)
Dim dimensionPreferences1 As Annotations.DimensionPreferences
dimensionPreferences1 = DiameterDimension1.GetDimensionPreferences()
dimensionPreferences1.LimitFitAnsiHoleType = NXOpen.Annotations.FitAnsiHoleType.Shaft
dimensionPreferences1.LimitFitShaftDeviation = "f"
dimensionPreferences1.LimitFitShaftGrade = 8
DiameterDimension1.SetDimensionPreferences(dimensionPreferences1)
ElseIf dimname1.Contains("Cylindrical") = True Then
Dim CylindricalDimension1 As Annotations.CylindricalDimension = selecteddim
Dim linearTolerance1 As Annotations.LinearTolerance
linearTolerance1 = CylindricalDimension1.GetTolerance()
linearTolerance1.ToleranceType = Annotations.ToleranceType.LimitsAndFits
CylindricalDimension1.SetTolerance(linearTolerance1)
Dim dimensionPreferences1 As Annotations.DimensionPreferences
dimensionPreferences1 = CylindricalDimension1.GetDimensionPreferences()
dimensionPreferences1.LimitFitAnsiHoleType = NXOpen.Annotations.FitAnsiHoleType.Shaft
dimensionPreferences1.LimitFitShaftDeviation = "f"
dimensionPreferences1.LimitFitShaftGrade = 8
CylindricalDimension1.SetDimensionPreferences(dimensionPreferences1)
ElseIf dimname1.Contains("Perpendicular") = True Then
Dim PerpendicularDimension1 As Annotations.PerpendicularDimension = selecteddim
Dim linearTolerance1 As Annotations.LinearTolerance
linearTolerance1 = PerpendicularDimension1.GetTolerance()
linearTolerance1.ToleranceType = Annotations.ToleranceType.LimitsAndFits
PerpendicularDimension1.SetTolerance(linearTolerance1)
Dim dimensionPreferences1 As Annotations.DimensionPreferences
dimensionPreferences1 = PerpendicularDimension1.GetDimensionPreferences()
dimensionPreferences1.LimitFitAnsiHoleType = NXOpen.Annotations.FitAnsiHoleType.Shaft
dimensionPreferences1.LimitFitShaftDeviation = "f"
dimensionPreferences1.LimitFitShaftGrade = 8
PerpendicularDimension1.SetDimensionPreferences(dimensionPreferences1)
End If
Next
Dim nErrs1 As Integer
nErrs1 = s.UpdateManager.DoUpdate(markId3)
End Sub
' ----------------------------------------------
' function to select dimensions
' ----------------------------------------------
Function Select_dims(ByRef obj() As TaggedObject) As Selection.Response
Dim resp As Selection.Response = Selection.Response.Cancel
Dim prompt As String = "Select dimensions"
Dim message As String = "Select dimensions"
Dim title As String = "Selection"
Dim scope As Selection.SelectionScope = Selection.SelectionScope.WorkPart
Dim selAction As Selection.SelectionAction = Selection.SelectionAction.ClearAndEnableSpecific
Dim selectionMask_array(0) As Selection.MaskTriple
Dim includeFeatures As Boolean = False
Dim keepHighlighted As Boolean = False
With selectionMask_array(0)
.Type = UFConstants.UF_dimension_type
.Subtype = 0
.SolidBodySubtype = 0
End With
resp = ui.SelectionManager.SelectTaggedObjects(prompt, message, _
scope, selAction, includeFeatures, keepHighlighted, selectionMask_array, obj)
If resp = Selection.Response.ObjectSelected Or _
resp = Selection.Response.ObjectSelectedByName Then
Return Selection.Response.Ok
Else
Return Selection.Response.Cancel
End If
End Function
Public Function GetUnloadOption(ByVal dummy As String) As Integer
'Unloads the image immediately after execution within NX
GetUnloadOption = NXOpen.Session.LibraryUnloadOption.Immediately
End Function
End Module