Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Zugriff auf Parameter von (Multi-)Branchables

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:  Zugriff auf Parameter von (Multi-)Branchables (1368 mal gelesen)
LayKris
Mitglied
Student


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

Beiträge: 12
Registriert: 28.03.2012

@home:
i5-750 @ 4x2,66GHz
4GB DDR3
Radeon HD5770
@mobile:
Amd A8-3520 @ 4x2.5GHz
4GB DDR3
Radeon HD6740G2

erstellt am: 05. Apr. 2012 14:31    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 zusammen,
quasi als Fortführung meines anderen Threads bin ich an ein weiteres Problem geraten. Da das Thema aber inhaltlich kaum etwas mit dem vorherigen Problem zu tun hat, mache ich hier mal ein neues Thema auf.

Ich habe also aus dem Aufruf einer .exe meinen Rückgabewert und möchte den jetzt gerne in CATIA als Durchmesser für ein Kabelbündel übernehmen. Dafür habe ich mir ein kleines Makro zusammengebastelt, das in einer Unterfunktion den Wert zuweisen soll. Leider habe ich keine Ahnung, wie genau ich jetzt auf die Parameter zugreifen kann. Hier mal ein Auszug aus dem Code:

Code:
Function Benutzen(Wert1)
    'Variablendefinitionen

    Result = MsgBox("Wollen Sie den Wert übernehmen?", vbYesNo, "Wert übernehmen?")
    If Result = 6 Then
        MsgBox ("Bitte Multi-Branchable auswählen!")
        'Auswahl auf Multi-Branchables (Parts?) begrenzen
        Dim Was(0)
        Was(0) = "Part"
        Dim e As String
        e = objBuffer.SelectElement2(Was, "Multi-Branchable wählen.", False)
        If e = "Normal" Then
            Set partDocument1 = documents1.Item(UserSel) '<<<<an dieser Stelle bricht das Makro ab!
            Set part1 = partDocument1.Part
        Else
            MsgBox ("Abbruch")
        End If
        MsgBox ("Bitte Bündelsegment auswählen!")
        'Auswahl auf Bündelsegmente (Products?) begrenzen
        Was(0) = "Product"
        e = objBuffer.SelectElement2(Was, "Bündelsegment wählen.", False)
        If e = "Normal" Then
            Set partDocument2 = documents2.Item(UserSel)
            Set part2 = partDocument2.Part
            Dim Pfad As String
            Pfad = (part1 + "\Bedingungen\" + part2 + "\Durchmesser")
            Set dimension1 = parameters1.Item(Pfad)
            dimension1.Value = Wert1
            Set parameters1 = part1.Parameters
        Else
            MsgBox ("Abbruch")
        End If
    End If
End Function


An der markierten Stelle wirft er mir die Fehlermeldung "Verfahren Item fehlgeschlagen" aus. Anscheinend stimmen hier die Objektklassen nicht so ganz. Hat jemand eine Ahnung, wie das Ganze in diesem Fall funktioniert? Bin gerade recht ratlos, da ich via Google keinerlei Informationen zu den Objektklassen von elektrischen Komponenten gefunden habe.

Schon mal herzlichen Dank im Voraus für jeden Input!

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: 05. Apr. 2012 16:51    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 LayKris 10 Unities + Antwort hilfreich

Servus
Wo ist die Variable "UserSel" definiert?
Wenn du auf ein selektiertes Element zugreifen willst musst du zB UserSel.item2(1).Value verwenden.
ggf musst du von deinem selektierten Part noch auf das Dokument "hochwechseln" (zB UserSel.item2(1).document oder UserSel.item2(1).Value.Parent). Bitte mit Watchfenster prüfen was von der Selektion zurückgeliefert wurde.

Gruß
Bernd

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

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

LayKris
Mitglied
Student


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

Beiträge: 12
Registriert: 28.03.2012

@home:
i5-750 @ 4x2,66GHz
4GB DDR3
Radeon HD5770
@mobile:
Amd A8-3520 @ 4x2.5GHz
4GB DDR3
Radeon HD6740G2

erstellt am: 05. Apr. 2012 18: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

Servus!

UserSel ist innerhalb der Function folgendermaßen definiert:

Code:
Dim UserSel As Selection
Set UserSel = CATIA.ActiveDocument.Selection
Set objBuffer = UserSel
UserSel.Clear

Danke auf jeden Fall schon mal für den Vorschlag, werde das spätestens kommende Woche mal ausprobieren.
Jetzt wünsche ich aber erstmal schöne Feiertage!

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

LayKris
Mitglied
Student


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

Beiträge: 12
Registriert: 28.03.2012

@home:
i5-750 @ 4x2,66GHz
4GB DDR3
Radeon HD5770
@mobile:
Amd A8-3520 @ 4x2.5GHz
4GB DDR3
Radeon HD6740G2

erstellt am: 19. Apr. 2012 11:12    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

So, habe das jetzt auch endlich mal ausprobiert, und im ersten Fall funktioniert es tatsächlich:

Code:
Set partDocument1 = UserSel.Item2(1).Value.Parent

Allerdings wirft er mir bei der zweiten Auswahl trotz gleicher Bedingungen auf einmal einen Type Mismatch aus. Ich schätze, ich muss da auf jeden Fall noch eine Funktion einfügen, die bei falscher Auswahl durch den Benutzer eine entsprechende Fehlermeldung ausgibt.

Das Problem ist, dass ich nicht genau weiß welchen Ausdruck ich "watchen" muss, um zu sehen was er zurückgibt. Kann mir da jemand auf die Sprünge helfen?
Oder hat jemand eine Ahnung, wie die Automatisierungs-Objekte im Electrical-Bereich heißen? Speziell suche ich Multi Branchable und Bundle Segment.

[Diese Nachricht wurde von LayKris am 19. Apr. 2012 editiert.]

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