| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: UsedArrangement Property - Baugruppe (1834 mal gelesen)
|
RobertM Mitglied
Beiträge: 223 Registriert: 03.12.2008 noch NX 8.5 + TC Teamcenter 9.1.2.2 64-Bit
|
erstellt am: 15. Jan. 2013 09:02 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich versuche herauszufinden, ob es sich bei einer geladenen Zeichnung um ein Einzelteil oder Baugruppe handelt. Dabei habe ich herausgefunden, dass bei einer Baugruppe am ersten Knoten die Eigenschaft UsedArrangement einen Wert hat und bei einem Einzelteil=null ist. 1. Kann mir bitte jemand Arrangement in diesem Zusammenhang sinnvoll übersetzen (Leo bringt mir zu viele Treffer) 2. Bin ich auf dem richtigen Weg?
------------------ Gruß Robert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gfx-toxic.de Moderator Konstruktion / Anwenderbetreuung
Beiträge: 501 Registriert: 09.06.2006 Teamcenter 11.3 / NX 11 Windows 10
|
erstellt am: 15. Jan. 2013 09:34 <-- editieren / zitieren --> Unities abgeben: Nur für RobertM
Hallo Robert, Arragments sind Baugruppenanordungen. Du kannst z.B. verschiedene Positionen von einzelenen Komponenten speichern um diese auf der Zeichnung darzustellen. Typischer Fall wäre z.B. Kolben vorne, Kolben hinten. Das könntest du nutzen um das abzufragen. Ich würde aber eher dazu raten zu schauen ob die "Root-Component" Children hat. Da gibts eine Methode dazu, die da heißt GetChildren(). Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gfx-toxic.de Moderator Konstruktion / Anwenderbetreuung
Beiträge: 501 Registriert: 09.06.2006 Teamcenter 11.3 / NX 11 Windows 10
|
erstellt am: 15. Jan. 2013 09:44 <-- editieren / zitieren --> Unities abgeben: Nur für RobertM
NX8 NXOpen .Net API Reference RootComponent Property Namespaces ► NXOpen.Assemblies ► ComponentAssembly ► RootComponentC#Visual BasicVisual C++Returns the top-level component, i.e. the component at the root of the component tree. Declaration Syntax C# Visual Basic Visual C++ public Component RootComponent { get; } Public ReadOnly Property RootComponent As Component Get public: property Component^ RootComponent { Component^ get (); } Remarks This component corresponds to the part that owns this Assemblies.ComponentAssembly . The components below this will correspond to parts added by calling Assemblies.ComponentAssembly.AddComponent . Note that this will be a null reference (Nothing in Visual Basic) if there are no components in the tree. (I.e. if the part that owns this ComponentAssembly is a piece part.) Created in NX3.0.0 License requirements: None. NX8 NXOpen .Net API Reference ComponentAssembly Property Namespaces ► NXOpen ► BasePart ► ComponentAssemblyC#Visual BasicVisual C++Returns the component assembly. Declaration Syntax C# Visual Basic Visual C++ public ComponentAssembly ComponentAssembly { get; } Public ReadOnly Property ComponentAssembly As ComponentAssembly Get public: property ComponentAssembly^ ComponentAssembly { ComponentAssembly^ get (); } Remarks Created in NX3.0.0 License requirements: None. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RobertM Mitglied
Beiträge: 223 Registriert: 03.12.2008 noch NX 8.5 + TC Teamcenter 9.1.2.2 64-Bit
|
erstellt am: 15. Jan. 2013 09:49 <-- editieren / zitieren --> Unities abgeben:
ich habe folgenden Code: NXOpen.Assemblies.ComponentAssembly _Bauteile; NXOpen.Assemblies.Component _Baugruppe; _Bauteile = workPart.ComponentAssembly; _Baugruppe = _Bauteile.RootComponent; NXOpen.Assemblies.Component[] _Bauteil = _Baugruppe.GetChildren(); in beiden Fällen (Baugruppe Einzelteil) ist _Bauteil != null ------------------ Gruß Robert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2700 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 15. Jan. 2013 12:15 <-- editieren / zitieren --> Unities abgeben: Nur für RobertM
|
RobertM Mitglied
Beiträge: 223 Registriert: 03.12.2008 noch NX 8.5 + TC Teamcenter 9.1.2.2 64-Bit
|
erstellt am: 15. Jan. 2013 13:46 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, ich komme nicht drauf, was du mir damit sagen willst. Weil ich in einer Zeichnung bin funktioniert folgende Abfrage nicht:
Code: if (_Baugruppe != null)
weil es ja immer einen Baum gibt
Zitat: Note that this will be a null reference (Nothing in Visual Basic) if there are no components in the tree. (I.e. if the part that owns this ComponentAssembly is a piece part.)
------------------ Gruß Robert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2700 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 15. Jan. 2013 18:31 <-- editieren / zitieren --> Unities abgeben: Nur für RobertM
Zitat: Original erstellt von RobertM: ich komme nicht drauf, was du mir damit sagen willst.
sh. oben: _Bauteile = workPart.ComponentAssembly; Daher geh' ich davon aus, daß auch _Bauteil vom Typ ComponentAssembly ist. Am ComponentAssembly läßt sich aber nicht feststellen, ob Komponenten dran sind. Das geht über die RootComponent. Zitat: Original erstellt von RobertM: Weil ich in einer Zeichnung bin ...
Deshalb wird's auch nicht funktionieren. Du solltest schon in das Part bzw. die Baugruppe wechseln, das der Zeichnung zugrunde liegt. Gruß, Michael
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RobertM Mitglied
Beiträge: 223 Registriert: 03.12.2008 noch NX 8.5 + TC Teamcenter 9.1.2.2 64-Bit
|
erstellt am: 16. Jan. 2013 08:22 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, dass hat schon seinen Grund, dass ich die Abfrage in der Zeichnung machen muss. Das Problem habe ich jetzt folgendermaßen gelöst. Im ersten Schritt muss ich auf Drawing prüfen und dann
Code: NXOpen.Assemblies.ComponentAssembly componentAssembly; NXOpen.Assemblies.Component rootComponent; componentAssembly = workPart.ComponentAssembly; rootComponent = componentAssembly.RootComponent; assemblies.Component[] children = rootComponent.GetChildren(); foreach (assemblies.Component child in children) { assemblies.Component[] grandChildren = child.GetChildren(); if (grandChildren.Length > 0) { assembly = true; } else { assembly = false; } }
------------------ Gruß Robert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| CNC-Fräser (m/w/d) | Die Marbach-Gruppe ist weltweit mit 1.600 Mitarbeitern führender Werkzeughersteller für die Verpackungsmittelindustrie. Als familiengeführtes Unternehmen mit Hauptsitz in Heilbronn (650 Mitarbeiter), steht der Name Marbach für Qualität und innovative Ideen. Seit 1923 sichern unsere qualifizierten und motivierten Mitarbeiter den wachsenden Unternehmenserfolg der Marbach-Gruppe. CNC-Fräser ... | Anzeige ansehen | Feste Anstellung |
|
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2700 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 16. Jan. 2013 15:57 <-- editieren / zitieren --> Unities abgeben: Nur für RobertM
Hallo Robert, im Prinzip genau so, wie oben beschrieben. Mit rootComponent.GetChildren() wird aus der Zeichnung heraus Teil oder BG ermittelt. Ob man anschließend die rootComponent prüft oder nochmals .GetChildren() verwendet, sollte zum selbem Ergebnis führen. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |