Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Hierarchie unabhängige erstellung von Elementen durch User-Selektion?

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:  Hierarchie unabhängige erstellung von Elementen durch User-Selektion? (850 mal gelesen)
Beny
Mitglied
Konstrukteur - Standardisierung


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

Beiträge: 36
Registriert: 15.11.2010

erstellt am: 08. Mrz. 2011 11:36    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,


Irgendwie sitz ich grad auf dem schlauch, und hoffe das mir jemand nen guten tipp geben kann ;-)

Ich möchte ein Makro schreiben wo der User ein Geometrisches Set irgendwo im Strukturbaum auswählen kann. Dieses Geometrische Set soll dann deklariert werden, damit ich darin in meiner Programmstruktur weitere Geometrische Sets anlegen kann. (ich hab versucht das ganze Baum-Hierarchie-unabhängig über den Namen zu steuern, doch es hat irgendwie nicht geklappt :-(  )

in meinem Makro funktioniert das nur wenn ich ihm sage wo das Geometrische set sich gerade befindet. (doch das ist unmöglich alles abzufangen... weil der User ja selbst in einem von seinem selbst angelegten Geosets dieses Makro ausführen soll)

*verwirrt* 

anbei hab ich den code:

wär lieb wenn euch was dazu einfallen würde.

vielen dank schonmal im voraus

Code:


Sub CATMain()

        Dim AktuellesPartDocument As PartDocument
        Set AktuellesPartDocument = CATIA.ActiveDocument
       
        Dim AktuellesPart As Part
        Set AktuellesPart = AktuellesPartDocument.Part

        '----- Selektion definieren und leeren -----
        Dim UserSel1 As Object
        Set UserSel1 = AktuellesPartDocument.Selection
        UserSel1.Clear

      '----- Auswahl_USfilter festlegen -------------------
        Dim Was_US(0 To 0)
        Was_US(0) = "HybridBody"
      '-------------------------------------------
      'USfilter = User Selektion filter
      'Was_Us = Was User Selektion
      '-------------------------------------------
     
      'User Auswahl (kann nur ein geometrisches Set anwählen.)
        Dim Auswahl_US1 'As Object
        Auswahl_US1 = UserSel1.SelectElement2(Was_US, "Bitte selektieren sie ein geometrisches Set, in welches sie die Struktur erstellen möchten.", True)
    AktuellesPart.Update
       

        MsgBox UserSel1.Item(1).Value.Name
        '------------------------------------------
        'Namensabfrage was der User selektiert hat (später wieder rauslöschen)
        '------------------------------------------
        Dim VarUS As String
        VarUS = UserSel1.Item(1).Value.Name

    AktuellesPart.Update
       
        Dim GSHBS_US1 As HybridBodies
        Set GSHBS_US1 = AktuellesPart.HybridBodies
       
        Dim GSHB_US1 As HybridBody
        Set GSHB_US1 = GSHBS_US1.Item(VarUS) '<== Hier soll er das Geometrische Set mit dem Variablen Namen (vom User ausgewählt)
                                            '    das sich irgendwo im Strukturbaum befindet deklariert werden.
        '------------------------------------------
        'GSHBS_US1 = GeometrischesSetHybridBodieS_UserSelektion1
        'GSHB_US1 = GeometrischesSetHybridBody_userSelektion1
        '------------------------------------------
       
       
        Dim GSHBS_T As HybridBodies
        Set GSHBS_T = GSHB_SE.HybridBodies
       
        Dim GSHB_T As HybridBody
        Set GSHB_T = GSHBS_US1.Add()
        GSBHS_US1.Name = "Test"
        '-------------------------------------------
        'GSHBS_T = GeometrischesSetHybridBodieS_Test
        'GSHB_T = GeometrischesSetHybridBody_Test
        '-------------------------------------------
       
End Sub

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 08. Mrz. 2011 12:24    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 Beny 10 Unities + Antwort hilfreich

Servus
Versuch es mal so:
Code:
Sub CATMain()

        Dim AktuellesPartDocument As PartDocument
        Set AktuellesPartDocument = CATIA.ActiveDocument
     
        Dim AktuellesPart As Part
        Set AktuellesPart = AktuellesPartDocument.Part

        '----- Selektion definieren und leeren -----
        Dim UserSel1 As Object
        Set UserSel1 = AktuellesPartDocument.Selection
        UserSel1.Clear

      '----- Auswahl_USfilter festlegen -------------------
        Dim Was_US(0)
        Was_US(0) = "HybridBody"
      '-------------------------------------------
      'USfilter = User Selektion filter
      'Was_Us = Was User Selektion
      '-------------------------------------------
   
      'User Auswahl (kann nur ein geometrisches Set anwählen.)
        Dim Auswahl_US1 'As Object
        Auswahl_US1 = UserSel1.SelectElement2(Was_US, "Bitte selektieren sie ein geometrisches Set, in welches sie die Struktur erstellen möchten.", True)
    AktuellesPart.Update
     

        MsgBox UserSel1.Item(1).Value.Name
        '------------------------------------------
        'Namensabfrage was der User selektiert hat (später wieder rauslöschen)
        '------------------------------------------
        Dim VarUS As String
        VarUS = UserSel1.Item(1).Value.Name

        AktuellesPart.Update
     
        Dim GSHB_US1 As HybridBody
        Set GSHB_US1 = UserSel1.Item(1).Value
     
        Dim GSHBS_T As HybridBodies
        Set GSHBS_T = GSHB_US1.HybridBodies
     
        Dim GSHB_T As HybridBody
        Set GSHB_T = GSHBS_T.Add()
        GSHB_T.Name = "Test"
     
End Sub



Du brauchst den Umweg über den Namen nicht gehen. Du kannst direkt mit UserSel1.Item(1).Value auf das Objekt (in diesem Fall das GeoSet) zugreifen.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Beny
Mitglied
Konstrukteur - Standardisierung


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

Beiträge: 36
Registriert: 15.11.2010

erstellt am: 08. Mrz. 2011 12:32    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

Huhu,

vielen vielen dank, es funktioniert tatsächlich so wie ich es mir vorgestellt habe, jetzt werd ich mir den ma ganz genau ansehen, warum ich da nich früher draufgekommen bin ;-)

mfg

beny

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