Autor
|
Thema: SelectionElement2: Kein Zugriff aus ausgewähltes Element (1606 mal gelesen)
|
Starbirth Mitglied Konstrukteur
Beiträge: 119 Registriert: 22.10.2009
|
erstellt am: 15. Nov. 2010 15:05 <-- editieren / zitieren --> Unities abgeben:
Hallo liebe Mitprogrammierer, Der Zugriff auf ein über SelectElement2 ausgewähltes Element wirft mir einen Fehler aus, mit dem ich nicht klar komme. Der Code:
Code: Private Function UserSelectionJoin(ByRef iDoc As Document) As Object 'As CATIAHybridShapeAssemble (würde es gerne richtig dimmen, aber VBA mag nicht)'**********************************Deklarationen********************************** Dim iSel As Object 'As Selection Dim iType(1) Dim iUserSel As String '**********************************Selektion und Übergabe********************************** Set iSel = iDoc.Selection iSel.Clear 'Box = MsgBox("Bitte Strakjoin auswählen" + Chr(10) + "Drücken Sie ESC um die Selektion und das Makro abzubrechen" _ , vbInformation, "Auswahl des Strakjoins") iType(0) = "CATIAHybridShapeAssemble" 'Join mit Historie iType(1) = "Face" '"dummer" Join, und leider auch alle andern Flaechen iUserSel = iSel.SelectElement2(iType, "Strak auswählen / ESC zum Abbrechen", True) 'MsgBox iSel.Item(1).Name If iUserSel <> "Normal" Then Box = MsgBox("Sie haben die Selektion abgebrochen" + Chr(10) + "Das Makro wird beendet" _ , vbExclamtion, "Abbruch der Selektion") End Else Set UserSelectionJoin = iSel.Item(1).Value End If iSel.Clear End Function
Bei der Zuweisung des ausgewäglten Elementes zum Objekt UserSelectionJoin oder der Ausgabe des Namens in der MsgBox gibts den Fehler "Run-time Error 91 Object variable or With block variable not set" Den kann ich nicht nachvollziehen. Oben ist das Ding als Objekt deklariert (als Face hab ichs auch schon versucht, machts nicht besser).Wenn ich mit Step by Step debugging durch gehe sieht die Selektion vorher OK aus. Nur zugewiesen oder sonst wie angesprochen werden kann das Ganze nicht. Interessant ist auch, dass ich den Code (in einer anderen, eigenständigen Function) nahezu 1:1 auch noch für die Auswahl eines Geometrical Sets nutze, natürlich mit anderem Filter. Da läuft alles wunderbar. Was meint ihr? Woran könnte es liegen? Und wie komme ich jetzt am dümmsten an meinen Flächenverbund? EDIT: Tja, offensichtlich kann man den Titel hier später nicht mehr editieren. dann bleibt SelectionElement halt stehen. [Diese Nachricht wurde von Starbirth am 15. Nov. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JuPaV Mitglied Software-Entwickler
Beiträge: 39 Registriert: 11.11.2010 CATIA V5R20SP364 CATScript, CATVba, VB6, .NET, C++, NXOpen
|
erstellt am: 15. Nov. 2010 16:17 <-- editieren / zitieren --> Unities abgeben: Nur für Starbirth
|
Starbirth Mitglied Konstrukteur
Beiträge: 119 Registriert: 22.10.2009
|
erstellt am: 16. Nov. 2010 07:27 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen allerseits, guten Morgen JuPaV. Mit deinem Filter funktioniert es... fast. Dir Routine stürzt jetzt nicht mehr ab wenn ich im 3D eine Subsurface des Joins selektiere. Leider liegt dann in der Selektion aber der BREP auf eben jene Subsurface. Mit dem kann ich nichts anfangen. (Immerhin bin ich so für mich auf ein schönes Makro gestoßen, mit dem man sich den BRep Name ausgeben lassen kann ) Wenn ich im Baum auswähle, kann ich bisher keine Fehler feststellen. Die Frage wäre nun, wie kann ich die Auswahl wieder so weit einschränken, dass der User keine Dummheiten mehr machen kann? AnyObject ist ja recht weit gefasst. Gewollt wären eigentlich nur Joins und wenn möglich "dumme" Kopien dieser. EDIT: Wenn es unbedingt notwendig sein sollte kann man die Geometrie ja auch noch nach der Selektion "per Hand" (oder per GetGeometricalFeatureType) überprüfen. Ist natürlich bei weitem nicht so elegant wie ein Filter direkt in der Selektion, und auch nicht unbedingt so genau. [Diese Nachricht wurde von Starbirth am 16. Nov. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JuPaV Mitglied Software-Entwickler
Beiträge: 39 Registriert: 11.11.2010 CATIA V5R20SP364 CATScript, CATVba, VB6, .NET, C++, NXOpen
|
erstellt am: 16. Nov. 2010 11:11 <-- editieren / zitieren --> Unities abgeben: Nur für Starbirth
|
Starbirth Mitglied Konstrukteur
Beiträge: 119 Registriert: 22.10.2009
|
erstellt am: 16. Nov. 2010 11:16 <-- editieren / zitieren --> Unities abgeben:
|
JuPaV Mitglied Software-Entwickler
Beiträge: 39 Registriert: 11.11.2010 CATIA V5R20SP364 CATScript, CATVba, VB6, .NET, C++, NXOpen
|
erstellt am: 16. Nov. 2010 11:26 <-- editieren / zitieren --> Unities abgeben: Nur für Starbirth
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|