Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  NX Layer - Alle Sichtbaren Objekte anwählen und verschieben

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX
Autor Thema:  NX Layer - Alle Sichtbaren Objekte anwählen und verschieben (2321 mal gelesen)
RKW
Mitglied
Entwickler

Sehen Sie sich das Profil von RKW an!   Senden Sie eine Private Message an RKW  Schreiben Sie einen Gästebucheintrag für RKW

Beiträge: 2
Registriert: 09.07.2014

erstellt am: 09. Jul. 2014 10:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

wir haben bei alt Teilen sehr viele Objekte auf unterschiedlichen Layern liegen.

Der Ablauf der Journals soll so aussehen:

- alle Layer aktiv -->OK
- alle Sichtbaren Objekte auf Layer 1
- Layer zuordnen (Layer Journal) --> OK
- Objekt die nicht benötigt werden löschen (Layer 151)

Das Problem liegt in der Anwahl aller sichtbaren Objekte.
Die Möglichkeiten aus den Beispielen erfassen leider nicht alle Objekt.

Ich habe dieses gefunden.

'Get visible objects in work view
        Dim visibleObjects() As DisplayableObject 

        visibleObjects = workPart.Views.WorkView.AskVisibleObjects 
       

                Dim displayModification1 As DisplayModification
                displayModification1 = S.DisplayManager.NewDisplayModification()
                displayModification1.NewWidth = DisplayableObject.ObjectWidth.Thick
                displayModification1.ApplyToAllFaces = True
                displayModification1.ApplyToOwningParts = False
workPart.Layers.MoveDisplayableObjects(1, visibleObjects)

Funktioniert aber leider nicht!

Hat einer eine IDEE wie man das lösen kann. Vielen Danke im vorraus..

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Konstrukteur (m/w/d) Produktentwicklung

Die VTI Ventil Technik GmbH wurde 1946 gegründet und ist ein weltweit tätiges Unternehmen im Bereich der Hochdruck­ventiltechnik mit Sitz in Menden, Deutschland.

Wir entwickeln und produzieren inhouse Hochdruck­ventile und Druckregler zur Steuerung verschiedener Gase. Die Mission, die uns dabei täglich antreibt: Menschenleben schützen und retten. VTI zeichnet sich durch erstklassige Qualität ...

Anzeige ansehenKonstruktion, Visualisierung
wipc3d59
Mitglied
CAD Administrator


Sehen Sie sich das Profil von wipc3d59 an!   Senden Sie eine Private Message an wipc3d59  Schreiben Sie einen Gästebucheintrag für wipc3d59

Beiträge: 66
Registriert: 24.06.2008

NX11.0.2.7 MP13
NX1899 Test
ECTR 4.6 DSC Software AG
Windows 10
HP Workstation z4
Intel Xeon W-2135 3,7GHz
32 GB Ram, Nvidia Quadro P4000

erstellt am: 10. Jul. 2014 15:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für RKW 10 Unities + Antwort hilfreich

Hallo,

bei mir hat folgendes funktioniert:

Option Strict Off
Imports System.Collections
Imports NXOpen

Module NXJournal

    Dim theSession As Session = Session.GetSession
    Dim WP As Part = theSession.Parts.Work

    Sub Main()

        ' alle Layer selektierbar

        Dim stateCollection0 As NXOpen.Layer.StateCollection
        stateCollection0 = WP.Layers.GetStates()
        Dim category0 As NXOpen.Layer.Category = CType(WP.LayerCategories.FindObject("ALL"), NXOpen.Layer.Category)
        stateCollection0.SetStateOfCategory(category0, NXOpen.Layer.State.Selectable)
        WP.Layers.SetStates(stateCollection0, False)
        stateCollection0.Dispose()

        Dim objarray0() As DisplayableObject

        Dim objList As ArrayList = New ArrayList
        For ii As Integer = 1 To 256
            Dim objs As NXObject() = WP.Layers.GetAllObjectsOnLayer(ii)
            For Each an_obj As DisplayableObject In objs
                If an_obj.ToString.StartsWith("Face") = False AndAlso an_obj.ToString.StartsWith("Edge") = False Then
                    objList.Add(an_obj)
                End If
            Next
        Next

        objarray0 = objList.ToArray(GetType(DisplayableObject))

        ' alle DisplayableObjects in Liste auf Layer 1

        WP.Layers.MoveDisplayableObjects(1, objarray0)

        ' alle Layer unsichtbar

        Dim stateCollection1 As NXOpen.Layer.StateCollection
        stateCollection1 = WP.Layers.GetStates()
        Dim category1 As NXOpen.Layer.Category = CType(WP.LayerCategories.FindObject("ALL"), NXOpen.Layer.Category)
        stateCollection1.SetStateOfCategory(category1, NXOpen.Layer.State.Hidden)
        WP.Layers.SetStates(stateCollection1, False)
        stateCollection1.Dispose()

    End Sub

    Public Function GetUnloadOption(ByVal dummy As String) As Integer
        Return Session.LibraryUnloadOption.Immediately
    End Function

End Module

Allerdings scheinen Flächen und Kanten ebenfalls zu den DisplayableObjects zu gehören. Diese können nicht auf einen Layer verschoben werden.
Die Zeile If an_obj.ToString.StartsWith("Face") = False AndAlso an_obj.ToString.StartsWith("Edge") = False Then scheint mir nicht so elegant.
Vielleicht gibt es hier andere Lösungen. Aber es funzt.

Gruß Thorsten

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz