| |
| 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 (1282 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
|
| Bauingenieur (m/w/d) Tiefbau | Der Landesbetrieb Bau und Immobilien Hessen (LBIH) ist der zentrale Bau- und Immobiliendienstleister der hessischen Landesverwaltung. Er übernimmt Aufgaben im Bau-, Gebäude- und Standortmanagement. Seine Stärke: Als Komplettanbieter leistet der LBIH alles aus einer Hand ? effizient und serviceorientiert. Mit rund 2.400 Mitarbeiterinnen und Mitarbeitern setzt der LBIH ein jährliches Bauvolumen von rund 500 Millionen Euro um und betreut mehr als 3 Millionen Quadratmeter Gebäudefläche.... | Anzeige ansehen | Bauwesen |
|
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 |