Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Make Displayed Part

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:  Make Displayed Part (3267 mal gelesen)
GeorgK
Mitglied



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

Beiträge: 619
Registriert: 06.06.2001

erstellt am: 28. Feb. 2014 08:34    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 zusammen,

wie kann ich ein Teil im 3D selektieren und dieses dann öffnen - "Make Displayed Part"?

Das folgende Journal habe ich aufgezeichnet.

Vielen Dank Georg

Option Strict Off
Imports System
Imports NXOpen

Module NXJournal
Sub Main (ByVal args() As String)

Dim theSession As Session = Session.GetSession()
Dim workPart As Part = theSession.Parts.Work

Dim displayPart As Part = theSession.Parts.Display

' ----------------------------------------------
'   Menu: Assemblies->Context Control->Set Displayed Part
' ----------------------------------------------
Dim markId1 As Session.UndoMarkId
markId1 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Make Displayed Part")

Dim component1 As Assemblies.Component = CType(workPart.ComponentAssembly.RootComponent.FindObject("COMPONENT 122835181350000 1"), Assemblies.Component)

Dim component2 As Assemblies.Component = CType(component1.FindObject("COMPONENT 122835181359999 1"), Assemblies.Component)

Dim component3 As Assemblies.Component = CType(component2.FindObject("COMPONENT 122835181358000 1"), Assemblies.Component)

Dim components1(0) As Assemblies.Component
components1(0) = component3
Dim errorList1 As ErrorList
errorList1 = component3.DisplayComponentsExact(components1)

errorList1.Clear()

Dim part1 As Part = CType(theSession.Parts.FindObject("122835181358000"), Part)

part1.Preferences.Modeling.CutViewUpdateDelayed = True

Dim partLoadStatus1 As PartLoadStatus
Dim status1 As PartCollection.SdpsStatus
status1 = theSession.Parts.SetDisplay(part1, False, True, partLoadStatus1)

workPart = theSession.Parts.Work
displayPart = theSession.Parts.Display
partLoadStatus1.Dispose()
' ----------------------------------------------
'   Menu: Tools->Journal->Stop Recording
' ----------------------------------------------

End Sub
End Module

[Diese Nachricht wurde von GeorgK am 28. Feb. 2014 editiert.]

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

gfx-toxic.de
Moderator
Konstruktion / Anwenderbetreuung


Sehen Sie sich das Profil von gfx-toxic.de an!   Senden Sie eine Private Message an matthias-p  Schreiben Sie einen Gästebucheintrag für matthias-p

Beiträge: 501
Registriert: 09.06.2006

Teamcenter 11.3 / NX 11
Windows 10

erstellt am: 03. Mrz. 2014 09:47    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 GeorgK 10 Unities + Antwort hilfreich

Hallo Georg,

zu was brauchst du dabei ein Journal?
Rechtsklick auf das Teil und "Make Displayed Part" gibts doch schon...?!

Oder hab ich was falsch verstanden...

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

GeorgK
Mitglied



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

Beiträge: 619
Registriert: 06.06.2001

erstellt am: 03. Mrz. 2014 10:42    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

Ich will verschiedene Sachen automatisieren. Dafür bräuchte ich die Funktion. Den Befehl kenne ich.

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



Konstrukteur Schiffbau (m/w/d)

Vielseitige technische und kaufmännische Projekte aus sämtlichen industriellen Branchen bestimmen das Tätigkeitsfeld der KBN-Gruppe. Spannende herausfordernde Aufgaben in Kombination mit ausgeprägter Wertschätzung jedes einzelnen Mitarbeiters sorgen für ein motivierendes Arbeitsumfeld, in dem man sich wohlfühlen und seine Fähigkeiten einbringen als auch weiterentwickeln kann.

Zusammen wollen wir weiter wachsen....

Anzeige ansehenKonstruktion, Visualisierung
gfx-toxic.de
Moderator
Konstruktion / Anwenderbetreuung


Sehen Sie sich das Profil von gfx-toxic.de an!   Senden Sie eine Private Message an matthias-p  Schreiben Sie einen Gästebucheintrag für matthias-p

Beiträge: 501
Registriert: 09.06.2006

Teamcenter 11.3 / NX 11
Windows 10

erstellt am: 03. Mrz. 2014 13:00    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 GeorgK 10 Unities + Antwort hilfreich

Die angehängt Klasse hat zwei statische Methoden, mit dennen kannst du NXObjects selektieren. Mit der einen kannst du filtern, das nur Komponenten ausgewählt werden können.

Die kannst du ggf. noch mit Filtern erweitern.

Das Part wo du ausgewählt hast musst du dann der Methode übergeben, wie im Journal angegeben.

Dim partLoadStatus1 As PartLoadStatus
Dim status1 As PartCollection.SdpsStatus
status1 = theSession.Parts.SetDisplay(part1, False, True, partLoadStatus1)

Das ganze ist jetzt C#, aber daraus kannst du dir ja den VB Code ableiten.

Code:

using System;
using NXOpen;

namespace libnixeclass.Select
{
    public class NiXeSelectNXObject
    {
        public enum Selectable : int
        {
            Component = 1,
            Kanten = 2,
            Dimension = 3,
            Note = 4
        }

        /// <summary>
        /// Liefert ein selktiertes Objekt zurück
        /// </summary>
        public static NXObject GetSelection(Selectable select)
        {
            NiXeSession session = new NiXeSession();
            if (session.WorkPart == null) { return null; }

            NXObject obj = null;
            Point3d cursor;
            //Braucht man das man auch im Drafting View auswählen kann
            session.TheUFSession.Ui.SetCursorView(0);
            Selection.MaskTriple[] maskArray = new Selection.MaskTriple[1];

            if (select == Selectable.Component)
            {
                maskArray[0].Type = NXOpen.UF.UFConstants.UF_component_type;
                maskArray[0].Subtype = NXOpen.UF.UFConstants.UF_component_subtype;
                maskArray[0].SolidBodySubtype = 0;
            }
            if (select == Selectable.Dimension)
            {
                maskArray[0].Type = NXOpen.UF.UFConstants.UF_dimension_type;
            }

            Selection.Response resp =
            session.TheUI.SelectionManager.SelectObject(
            "Bitte auswählen",
            "NiXeSelect",
            Selection.SelectionScope.AnyInAssembly,
            Selection.SelectionAction.ClearAndEnableSpecific,
            false, false, maskArray, out obj, out cursor);

            return obj;
        }

        public static NXObject GetSelection()
        {
            NiXeSession session = new NiXeSession();
            if (session.WorkPart == null) { return null; }

            NXObject obj = null;
            Point3d cursor;
            //Braucht man das man auch im Drafting View auswählen kann
            session.TheUFSession.Ui.SetCursorView(0);
       

            Selection.Response resp = session.TheUI.SelectionManager.SelectObject(
                "Bitte auswählen",
                "NiXeSelect",
                Selection.SelectionScope.AnyInAssembly,
                false,
                false,
                out obj,
                out cursor);

            return obj;
        }
    }
}


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