Option Strict Off Imports System Imports NXOpen Module NXJournal Dim theSession As Session = Session.GetSession Dim WP As Part = theSession.Parts.Work Sub Main() Dim workPart As Part = theSession.Parts.Work Dim displayPart As Part = theSession.Parts.Display Dim range1, range2 As Integer Dim catName As String ' ---------------------------------------------- ' alle Layer auf sichtbar setzen ' ---------------------------------------------- Dim stateCollection1 As Layer.StateCollection stateCollection1 = workPart.Layers.GetStates() Dim category1 As Layer.Category = CType(workPart.LayerCategories.FindObject("ALL"), Layer.Category) stateCollection1.SetStateOfCategory(category1, Layer.State.Selectable) workPart.Layers.SetStates(stateCollection1, False) stateCollection1.Dispose() ' ---------------------------------------------- ' vorhandene Kategorien löschen ' ---------------------------------------------- Dim s As Session = Session.GetSession() Dim ufs As UF.UFSession = UF.UFSession.GetUFSession() Dim wPart As Part = s.Parts.Work Dim obj1 As Layer.Category For Each obj1 In wPart.LayerCategories.ToArray ufs.Obj.DeleteObject(obj1.Tag) Next ' ---------------------------------------------- ' Ansicht orientieren->Trimetrisch ' ---------------------------------------------- workPart.ModelingViews.WorkView.Orient(View.Canned.Trimetric, View.ScaleAdjustment.Fit) ' ---------------------------------------------- ' Kategorien setzen/erzeugen ' ---------------------------------------------- set_category(1, 10, "Solids") set_category(11, 20, "Wave-Links") set_category(21, 40, "Sketches") set_category(41, 60, "Curves") set_category(61, 80, "Datums") set_category(80, 100, "Sheet-Bodys") set_category(240, 255, "Draftings") ' ---------------------------------------------- ' Objekte auf Layer verschieben ' ---------------------------------------------- Dim length As Integer length = 0 Dim objArray(0) As NXObject 'Solids auf Layer 1 verschieben For Each obj As DisplayableObject In WP.Bodies If Not obj.IsBlanked AndAlso WP.Layers.GetState(obj.Layer) <> Layer.State.Hidden Then objArray(0) = obj WP.Layers.MoveObjects(1, objArray) End If Next 'Skizzen auf Layer 21 verschieben For Each obj As DisplayableObject In WP.Sketches If Not obj.IsBlanked AndAlso WP.Layers.GetState(obj.Layer) <> Layer.State.Hidden Then objArray(0) = obj WP.Layers.MoveObjects(21, objArray) End If Next 'Punkte auf Layer 21 verschieben For Each obj As DisplayableObject In WP.Points If Not obj.IsBlanked AndAlso WP.Layers.GetState(obj.Layer) <> Layer.State.Hidden Then objArray(0) = obj WP.Layers.MoveObjects(21, objArray) End If Next ' Layer 21 auf unsichtbar setzen Dim stateArray1(0) As Layer.StateInfo stateArray1(0).Layer = 21 stateArray1(0).State = Layer.State.hidden workPart.Layers.ChangeStates(stateArray1, False) 'Kurven auf Layer 41 verschieben For Each obj As DisplayableObject In WP.Curves If Not obj.IsBlanked AndAlso WP.Layers.GetState(obj.Layer) <> Layer.State.Hidden Then objArray(0) = obj WP.Layers.MoveObjects(41, objArray) End If Next 'Datum auf Layer 61 verschieben For Each obj As DisplayableObject In WP.Datums If Not obj.IsBlanked AndAlso WP.Layers.GetState(obj.Layer) <> Layer.State.Hidden Then objArray(0) = obj WP.Layers.MoveObjects(61, objArray) End If Next '~ 'Axen auf Layer 62 verschieben '~ ' Dim Csys As CoordinateSystemCollection = workPart.CoordinateSystems '~ Dim csys As NXOpen.Tag '~ ' Dim Csys As AxisCollection = workPart.DatumAxis '~ Dim DatumAxis(-1) As Axis '~ Dim counter As Integer = 0 '~ For Each thisAxis As Axis In csys '~ If thisAxis.Aces.Equals(True) Then '~ ReDim Preserve DatumAxis(counter) '~ DatumAxis(counter) = thisAxis '~ counter += 1 '~ objArray(0) = thisAxis '~ WP.Layers.MoveObjects(62, objArray) '~ End If '~ Next 'Flächen auf Layer 81 verschieben Dim bodies As BodyCollection = workPart.Bodies Dim sheetBodies(-1) As Body Dim counter2 As Integer = 0 For Each thisBody As Body In bodies If thisBody.IsSheetBody.Equals(True) Then ReDim Preserve sheetBodies(counter2) sheetBodies(counter2) = thisBody counter2 += 1 objArray(0) = thisBody WP.Layers.MoveObjects(81, objArray) End If Next ' ---------------------------------------------- ' alle Layer auf unsichtbar setzen ' ---------------------------------------------- Dim stateCollection2 As Layer.StateCollection stateCollection2 = workPart.Layers.GetStates() stateCollection2.SetStateOfCategory(category1, Layer.State.Hidden) workPart.Layers.SetStates(stateCollection2, False) stateCollection2.Dispose() ' Layer 81 auf sichtbar setzen Dim stateArray2(0) As Layer.StateInfo stateArray2(0).Layer = 81 stateArray2(0).State = Layer.State.Selectable workPart.Layers.ChangeStates(stateArray2, False) ' ---------------------------------------------- ' Ansicht orientieren->Trimetrisch ' ---------------------------------------------- workPart.ModelingViews.WorkView.Orient(View.Canned.Trimetric, View.ScaleAdjustment.Fit) End Sub Function set_category(ByVal range1, ByVal range2, ByVal catName) Dim layerCategory As Layer.Category Dim i As Integer Dim intArray(range2 - range1) As Integer For i = 0 To range2 - range1 intArray(i) = range1 + i Next i Dim catDesc As String catDesc = CType(range1, String) + "-" + CType(range2, String) If Not CategoryExists(catName) Then layerCategory = WP.LayerCategories.CreateCategory(catName, catDesc, intArray) End If End Function Function CategoryExists(ByVal categoryName As String) As Boolean Try Return Not WP.LayerCategories.FindObject(categoryName) Is Nothing Catch ex As Exception Return False End Try End Function Public Function GetUnloadOption(ByVal dummy As String) As Integer Return Session.LibraryUnloadOption.Immediately End Function End Module