Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  SelectionElement2: Kein Zugriff aus ausgewähltes Element

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
Autor Thema:  SelectionElement2: Kein Zugriff aus ausgewähltes Element (1606 mal gelesen)
Starbirth
Mitglied
Konstrukteur


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

Beiträge: 119
Registriert: 22.10.2009

erstellt am: 15. Nov. 2010 15:05    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 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


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

Beiträge: 39
Registriert: 11.11.2010

CATIA V5R20SP364
CATScript, CATVba, VB6, .NET, C++, NXOpen

erstellt am: 15. Nov. 2010 16:17    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 Starbirth 10 Unities + Antwort hilfreich

Hallo!

Versucht so:

iType(0)="AnyObject"

------------------
Mit freundlichen Grüßen,
JuPaV

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

Starbirth
Mitglied
Konstrukteur


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

Beiträge: 119
Registriert: 22.10.2009

erstellt am: 16. Nov. 2010 07:27    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

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


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

Beiträge: 39
Registriert: 11.11.2010

CATIA V5R20SP364
CATScript, CATVba, VB6, .NET, C++, NXOpen

erstellt am: 16. Nov. 2010 11:11    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 Starbirth 10 Unities + Antwort hilfreich

Hallo!

  iType(0) = "HybridShapeAssemble"  'Join
  iType(1) = "HybridShapeSurfaceExplicit"  'Surface

------------------
Mit freundlichen Grüßen,
JuPaV

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

Starbirth
Mitglied
Konstrukteur


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

Beiträge: 119
Registriert: 22.10.2009

erstellt am: 16. Nov. 2010 11:16    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

Perfekt. Mit dem Array läufts. 
Kannst du mir noch sagen wo oben im ersten Versuch mein Fehler war?
(Klar, offensichtlich im Array das den Filter definiert).
Lag es am "Face"?

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

JuPaV
Mitglied
Software-Entwickler


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

Beiträge: 39
Registriert: 11.11.2010

CATIA V5R20SP364
CATScript, CATVba, VB6, .NET, C++, NXOpen

erstellt am: 16. Nov. 2010 11:26    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 Starbirth 10 Unities + Antwort hilfreich

Hallo!

"Face" war falsche Filter.

"Face": beliebige Flächen und Teilflächen von Solids

------------------
Mit freundlichen Grüßen,
JuPaV

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