×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

NX open version

NX open version

NX open version

(OP)
Hello everyone,

I would like to check on which version of NX open the journal is currently running. The reason is simply - from NX9, representation for limits and fits has changes. I wanna change my journals to works on NX8.5 and also on new version. When I use them (from NX8.5) on NX 9/10 they work, but when the dimensions lost associativity and You re associate them, then when You have for example "10 f8" NX automatic change it to "10H7". To prevent this I must check which version is running, and then apply right code.

With best regards
Michael

RE: NX open version

Use this below code to get the NX version.

CODE --> C#

string nxVersion = NXOpen.Session.GetSession().GetEnvironmentVariableValue("UGII_FULL_VERSION"); 

Thanks,
Selvaraj Chellamuthu
NX Automation Engineer

RE: NX open version

(OP)
Thanks SelvarajC, it's working. Now I have to figure out some conditions, because in NX8.5 I get v8.5.3.3 but in NX10 v10.0.3.5. There are different number of chars.

With best regards
Michael

RE: NX open version

Try this:

CODE

Dim nxVersion As String = theSession.GetEnvironmentVariableValue("UGII_MAJOR_VERSION") & "." & theSession.GetEnvironmentVariableValue("UGII_MINOR_VERSION") 

www.nxjournaling.com

RE: NX open version

(OP)
Thanks @Cowski for Your help. It's works like a charm :) but now I have another problem.

I try this:

CODE

Dim nxVersion As String = theSession.GetEnvironmentVariableValue("UGII_MAJOR_VERSION") & "." & theSession.GetEnvironmentVariableValue("UGII_MINOR_VERSION") 

if nxversion > 8.5 then
	msgbox("YES")
else 
	msgbox("NO")
end if 


And I receive error:

CODE

System.InvalidCastException: Conversion from sequence "10.0" to type 'Double' is not valid.
In Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value, NumberFormatInfo NumberFormat) 
(...) 

Any clue how to solve it?

With best regards
Michael

RE: NX open version

(OP)
Thanks again.

I have tested this:
  • Double.TryParse(Nxversion, nxversion1) -> which return 0 in all cases
  • nxversion = val(nxversion) -> which return 10 in NX 10.0 and 8.5 in NX 8.5
  • Double.Parse(nxversion) -> gives me an error
  • Double.Parse(nxversion), USculture) -> works like val.
  • CDbl(nxversion) -> gives me an error
  • Ctype(nxversion, double) -> also gives me the same error

  • and finally

  • Convert.ToDouble(nxversion) -> gives me similar error
I think the simplest method is val, but I lost trailing zeros. Also some functions which aren't working because of regional settings in system.

With best regards
Michael

RE: NX open version

(OP)
Hello everyone. Here is my code for "f8". It's works perfect in NX10, but what I didn't predicted is some part of code will give me an error in NX 8.5. Is there any way to exclude some part of code from check by NX 8.5 compiler?

CODE

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 

With best regards
Michael

RE: NX open version

Ideally, you would have one version for NX 8.5 and another version for NX 10.

www.nxjournaling.com

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources