Mask triples NX10
Mask triples NX10
(OP)
Hello,
I have question about mask triples in NX 10. Did something changes in this dialog , because I have journal to select face and change it color. In NX 8.5 it works perfect - select only face, but in NX 10 it also selecting solid body.
Below is my code:
I have question about mask triples in NX 10. Did something changes in this dialog , because I have journal to select face and change it color. In NX 8.5 it works perfect - select only face, but in NX 10 it also selecting solid body.
Below is my code:
CODE
Option Strict Off
Imports System
Imports NXOpen
Imports NXOpen.UF
Imports NXOpenUI
Module changeColorOfPreSelectedFaces_v2
Dim theSession As Session = Session.GetSession()
Dim sel As Selection = NXOpen.UI.GetUI.SelectionManager
Sub Main()
'' Integer variable to store color code in.
Dim newColorCode As Integer = 114
newColorCode = Convert.ToInt32(6)
'' The selectFaces method takes an NXobject array by reference
Dim selectedObjectsArray() As NXObject
SelectFaces(selectedObjectsArray)
'' Need to recast the face NXObjects to Displayable objects
Dim faceArray(selectedObjectsArray.Length - 1) As DisplayableObject
For i As Integer = 0 To selectedObjectsArray.Length - 1
faceArray(i) = CType(selectedObjectsArray(i), DisplayableObject)
Next
'' A display modification object is used to change to color of the faces.
Dim changeFaceColor As DisplayModification = theSession.DisplayManager.NewDisplayModification()
With changeFaceColor
.ApplyToAllFaces = False
.NewColor = newColorCode
.Apply(faceArray)
.Dispose()
End With
End Sub
'' The following routine is from GTAC
' ----------------------------------------------
' sub to select faces
' ----------------------------------------------
Sub SelectFaces(ByRef selectedObjects As NXObject())
Dim ui As UI = NXOpen.UI.GetUI
Dim message As String = "Select Faces"
Dim title As String = "Selection"
Dim scope As Selection.SelectionScope = Selection.SelectionScope.WorkPart
Dim keepHighlighted As Boolean = False
Dim includeFeatures As Boolean = False
Dim response As Selection.Response
Dim selectionAction As Selection.SelectionAction = Selection.SelectionAction.ClearAndEnableSpecific
Dim selectionMask_array(1) As Selection.MaskTriple
With selectionMask_array(0)
.Type = UFConstants.UF_solid_type
.Subtype = 0
.SolidBodySubtype = UFConstants.UF_UI_SEL_FEATURE_ANY_FACE
End With
response = ui.SelectionManager.SelectObjects(message, title, scope, _
selectionAction, includeFeatures, _
keepHighlighted, selectionMask_array, _
selectedObjects)
If response = Selection.Response.Cancel Or response = Selection.Response.Back Then
Return
End If
End Sub
Public Function GetUnloadOption(ByVal dummy As String) As Integer
GetUnloadOption = NXOpen.UF.UFConstants.UF_UNLOAD_IMMEDIATELY
End Function
End Module With best regards
Michael





RE: Mask triples NX10
www.nxjournaling.com
RE: Mask triples NX10
With best regards
Michael
RE: Mask triples NX10
.Subtype = UFConstants.UF_solid_face_subtype
RE: Mask triples NX10
With best regards
Michael
RE: Mask triples NX10
I have some info about this problem. Like I said, I contacted our NX support, and they help me solve the problem. There is an error in my code.
there is:
CODE
Dim selectionMask_array(1) As Selection.MaskTriple With selectionMask_array(0)But should be:
CODE
Dim selectionMask_array(0)As Selection.MaskTriple With selectionMask_array(0)The best thing is that, this is working fine in NX 8,5, I don't know how it's works in 9, but in 10 the problem appears.
One more questions about mask triple. I have this code for change body translucency. I use two selectionMask_array. Can I merge them somehow?
CODE
Option Strict Off Imports System Imports NXOpen Imports NXOpen.UF Imports NXOpenUI Module changeColorOfPreSelectedFaces_v2 Dim theSession As Session = Session.GetSession() Dim sel As Selection = NXOpen.UI.GetUI.SelectionManager Sub Main() '' The selectFaces method takes an NXobject array by reference Dim selectedObjectsArray() As NXObject Selectbody(selectedObjectsArray) '' Need to recast the face NXObjects to Displayable objects Dim faceArray(selectedObjectsArray.Length - 1) As DisplayableObject For i As Integer = 0 To selectedObjectsArray.Length - 1 faceArray(i) = CType(selectedObjectsArray(i), DisplayableObject) Next Dim changeBodytransluency As DisplayModification = theSession.DisplayManager.NewDisplayModification() With changeBodytransluency .ApplyToAllFaces = true ' .NewColor = newColorCode .NewTranslucency = 40 .Apply(faceArray) .Dispose() End With End Sub '' The following routine is from GTAC ' ---------------------------------------------- ' sub to select faces ' ---------------------------------------------- Sub Selectbody(ByRef selectedObjects As NXObject()) Dim ui As UI = NXOpen.UI.GetUI Dim message As String = "Select body" Dim title As String = "Selection" Dim scope As Selection.SelectionScope = Selection.SelectionScope.AnyInAssembly Dim keepHighlighted As Boolean = False Dim includeFeatures As Boolean = False Dim response As Selection.Response Dim selectionAction As Selection.SelectionAction = Selection.SelectionAction.ClearAndEnableSpecific Dim selectionMask_array(1) As Selection.MaskTriple With selectionMask_array(0) .Type = UFConstants.UF_component_type .Subtype = UFConstants.UF_component_subtype .SolidBodySubtype = UFConstants.UF_UI_SEL_FEATURE_BODY .SolidBodySubtype = UFConstants.UF_UI_SEL_FEATURE_SOLID_BODY End With With selectionMask_array(1) .Type = UFConstants.UF_solid_type .Subtype = 0 .SolidBodySubtype = UFConstants.UF_UI_SEL_FEATURE_BODY .SolidBodySubtype = UFConstants.UF_UI_SEL_FEATURE_SOLID_BODY End with response = ui.SelectionManager.SelectObjects(message, title, scope, _ selectionAction, includeFeatures, _ keepHighlighted, selectionMask_array, _ selectedObjects) If response = Selection.Response.Cancel Or response = Selection.Response.Back Then Return End If End Sub Public Function GetUnloadOption(ByVal dummy As String) As Integer GetUnloadOption = NXOpen.UF.UFConstants.UF_UNLOAD_IMMEDIATELY End Function End ModuleWith best regards
Michael