| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Fehlermeldung bei AskVisibleObjects (1273 mal gelesen)
|
jevertz Mitglied
Beiträge: 15 Registriert: 05.04.2010 NX 8.5 WIN 7 64 MS VB 2010 Express
|
erstellt am: 29. Apr. 2010 08:26 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich frage mittels AskVisibleObjects alle sichtbaren Objekte des Displayed part ab. Anschliessend nutze ich das für den Export von solids (If TypeOf (Obj) Is Body Then...). Das funktionert sehr gut, vor allem muss ich nicht fragen, ob es sich um ein Solid handelt und ob dessen Layer "hidden" ist usw. Allerdings taucht jetzt bei eingeblendeten assembly constraints eine Fehlermeldung auf. Die Lösung wäre also constraints zu erfragen, diese blanken und anschliessend mittels AskVisibleObjects fortfahren. Kann mir jemand einen Tip geben, wie ich diese constraints finde und blanke? Code:
Imports NXOpen Module module3 Dim s As session = session.GetSession() Sub Main(ByVal args As String()) Dim objekte() As DisplayableObject objekte = s.Parts.Display.Views.WorkView.AskVisibleObjects MsgBox(objekte.Length) End Sub End Module
angewendet auf die Baugruppe ergibt das den oben genannten Fehler. [Diese Nachricht wurde von jevertz am 29. Apr. 2010 editiert.] [Diese Nachricht wurde von jevertz am 29. Apr. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
seiwi Mitglied Programmierer, Systembetreuer
Beiträge: 53 Registriert: 28.06.2005 Windows 7 NX 7.5 bis NX11 VB .Net, C#, C, GRIP, NXOpen, SNAP
|
erstellt am: 29. Apr. 2010 09:04 <-- editieren / zitieren --> Unities abgeben: Nur für jevertz
Hallo, schau dir mal folgende Funktion an: Code:
Dim ufs As UFSession = UFSession.GetUFSession() ufs.Obj.AskTypeAndSubtype(objekte(i).Tag, Typ, SubTyp)
Du kannst den Typ und Subtyp eines Objektes abfragen und dementsprechend auswerten... lg Seiwi
------------------ Let's Rock... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jevertz Mitglied
Beiträge: 15 Registriert: 05.04.2010 NX 8.5 WIN 7 64 MS VB 2010 Express
|
erstellt am: 29. Apr. 2010 23:01 <-- editieren / zitieren --> Unities abgeben:
Hallo Seiwi, auf meinem Client zu Hause (gleiche Installation, aber was heisst schon gleich...) bekomme ich die Fehlermeldung von der Methode AskVisibleObjects nicht. Dafür auf zwei Clients im Büro... Habe mal Deinen Tip angeschaut. Auch dort muss ich ja erstmal auf die Objekte zugreifen können. Dachte das geht so, aber nix da, liefert immer BodyCount=0
Code: Sub Main() Dim ufs As UFSession = UFSession.GetUFSession() Dim ObjTag As NXOpen.Tag = Tag.Null Dim BodyCount As Integer = 0 Do ufs.Obj.CycleObjsInPart(s.Parts.Display.Tag, UFConstants.BODY, ObjTag) If ObjTag <> Tag.Null Then BodyCount = BodyCount + 1 End If Loop While ObjTag <> Tag.Null MsgBox(BodyCount) End Sub End Module
Ich kann ja danach mittels AskTypeAndSubtype die Bodies finden, aber dann weiss ich immer noch nicht ob die displayed sind - oder? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jevertz Mitglied
Beiträge: 15 Registriert: 05.04.2010 NX 8.5 WIN 7 64 MS VB 2010 Express
|
erstellt am: 04. Mai. 2010 20:48 <-- editieren / zitieren --> Unities abgeben:
Hallo NX-ler wie ich festgestellt habe, liegt der Grund für meine Fehlermeldung in unterschiedlichen NX Versionen: 6.0.3: AskVisibleObjects ergibt Fehlermeldung 6.0.5: AskVisibleObjects läuft fehlerfrei Das war also der Unterschied... Bin trotzdem froh um einen Input zu ufs.Obj.CycleObjsInPart und mein unerwartetes BodyCount=0 Resultat. Gruss jevertz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
seiwi Mitglied Programmierer, Systembetreuer
Beiträge: 53 Registriert: 28.06.2005 Windows 7 NX 7.5 bis NX11 VB .Net, C#, C, GRIP, NXOpen, SNAP
|
erstellt am: 05. Mai. 2010 08:02 <-- editieren / zitieren --> Unities abgeben: Nur für jevertz
|
| Konstrukteur/in (m/w/d) in der Tragwerksplanung | Als innovatives Architektur- und Ingenieurbüro, das vor mehr als 60 Jahren als Büro für Statik und Baukonstruktion gegründet wurde, prägt uns eine interdisziplinäre Zusammenarbeit, eine ganzheitliche Herangehensweise und eine nachhaltige wie auch digitale Projektbearbeitung. Mit unseren Projekten stiften wir Identität, finden wir Antworten auf komplexe gesellschaftliche Fragen. Wir gehen ... | Anzeige ansehen | Konstruktion, Visualisierung |
|
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 05. Mai. 2010 19:44 <-- editieren / zitieren --> Unities abgeben: Nur für jevertz
Hallo jeverts, kann es sein, daß in Deinem DisplayedPart keine Bodies, sondern nur Komponenten drin sind? CycleObjsInPart geht sehr wahrscheinlich, wie der Name schon sagt, nur die Objs in Part, nicht in den Komponenten durch. Mach' einfach mal 'nen Quader direkt ins DisplayedPart, dann siehts Du, ob's das war. Evtl. auch mal das WorkPart probieren. Falls es das nicht sein sollte, kannst Du den Objekttyp anstatt über die UFConstants gleich als Integer angeben. Mein Tip wäre die 70 oder UFConstants.SOLID. Gruß, Michael
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|