niedzviedz
Mechanical
- Apr 1, 2012
- 307
Hello every one,
I'm trying to write journal which selected body:
- change translucency to 60
- change line to dashed
- put it on layer 100
- and finally put it in reference set "false"
First 3 point work perfect but the last one not. Below is my code:
I receive an error in line:
I tried many different ways but no one has worked. Any one can help me to solve this problem?
With best regards
Michael
I'm trying to write journal which selected body:
- change translucency to 60
- change line to dashed
- put it on layer 100
- and finally put it in reference set "false"
First 3 point work perfect but the last one not. Below is my code:
Code:
Option Strict Off
Imports System
Imports NXOpen
Imports NXOpen.UF
Imports NXOpenUI
Imports System.Collections
Imports System.Collections.Generic
Module Ref_False
Dim theSession As Session = Session.GetSession()
Dim sel As Selection = NXOpen.UI.GetUI.SelectionManager
Dim myRefSetNames As New List(Of String)
Dim ref_temp as ReferenceSet
Dim workPart As Part = theSession.Parts.Work
Dim dispPart As Part = theSession.Parts.Display
Sub Main()
Dim referenceSet1 As ReferenceSet
Dim selectedObjectsArray() As NXObject
Selectbody(selectedObjectsArray)
Dim BodyArray(selectedObjectsArray.Length - 1) As DisplayableObject
For i As Integer = 0 To selectedObjectsArray.Length - 1
BodyArray(i) = CType(selectedObjectsArray(i), DisplayableObject)
Next
If IsNothing(theSession.Parts.BaseWork) Then
'active part required
Return
End If
myRefSetNames.Add("FALSE")
For Each tempRefSetName As String In myRefSetNames
Dim refSetExists As Boolean = False
For Each tempRefSet As ReferenceSet In workPart.GetAllReferenceSets
If tempRefSet.Name.ToUpper = tempRefSetName.ToUpper Then
refSetExists = True
End If
If tempRefSet.Name.ToUpper() = "FALSE" Then
ref_temp = tempRefSet
ref_temp.SetAddComponentsAutomatically(true, true)
end if
Next
If refSetExists Then
referenceSet1.AddObjectsToReferenceSet(BodyArray)
Else
referenceSet1 = workPart.CreateReferenceSet()
referenceSet1.SetName(tempRefSetName)
referenceSet1.SetAddComponentsAutomatically(True, True)
referenceSet1.AddObjectsToReferenceSet(BodyArray)
End If
Next
myRefSetNames.clear()
Dim changeBodytransluency As DisplayModification = theSession.DisplayManager.NewDisplayModification()
With changeBodytransluency
.ApplyToAllFaces = true
.NewTranslucency = 60
.NewFont = NXOpen.DisplayableObject.ObjectFont.Dashed
.NewLayer = 100
.Apply(bodyArray)
.Dispose()
End With
End Sub
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 Module
I receive an error in line:
Code:
referenceSet1.AddObjectsToReferenceSet(BodyArray)
I tried many different ways but no one has worked. Any one can help me to solve this problem?
With best regards
Michael