Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Mit VB auf ein Part zugreifen

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:  Mit VB auf ein Part zugreifen (778 mal gelesen)
Jan24
Mitglied
student


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

Beiträge: 14
Registriert: 13.10.2006

erstellt am: 23. Nov. 2006 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 zusammmen,
ich möchte gerne wissen wie ich im VB auf einen Part zugreifen kann
bsp.: es ist ein Part mit dem Namen "Balken" geöffnet ich möchte jetzt nun in VB sagen wenn "Balken" geöffnet ist dann führe folgendes aus.
Ich weiss das man im VB wenn man auf ein Parameter zugreifen möchte folgenden Code benutzt:

Set part1 = CATIA.ActiveDocument.Part
Set Param = part1.Parameters.RootParametersSet.DirectParameters

daher denke ich das es für mein Problem ein ähnlicher Code benutzt wird
MfG
Jan

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 23. Nov. 2006 23: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 Nur für Jan24 10 Unities + Antwort hilfreich

Hallo Jan24,

versuch es doch mal mit:

Code:
Set part1 = CATIA.Documents.Item("Balken.CATPart")
oder
Code:

If CATIA.Documents.Item("Balken.CATPart").name = "Balken.CATPart" Then
    Set part1 = CATIA.Documents.Item("Balken.CATPart")
End If

mfg,
Lusilnie

------------------

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

Tstone
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 163
Registriert: 04.06.2003

Dell Precision 470
Intel Xeon CPU 3,00GHz
2GB Ram
Microsoft Windows XP
Catia V5 R18 SP6
VB2005

erstellt am: 24. Nov. 2006 12:33    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 Jan24 10 Unities + Antwort hilfreich

Hallo Jan24 , Hallo Lusilnie
Lusilnie erstes Code-Schnippsel funktioniert sicherlich, aber das zweite verwirrt mich ein wenig:

If CATIA.Documents.Item("Balken.CATPart").name = "Balken.CATPart" Then
    Set part1 = CATIA.Documents.Item("Balken.CATPart")
End If

Also wenn das Dokument "Balken.CATPart" den Namen "Balken.CATPart" trägt, dann ....???

Desweitern muss man wissen, das wenn auch ein Dokument in der Dokumentauflistung enthalten ist, es nicht zwangsläufig auch visualisiert wird, sprich in einem eigenen Fenster angezeigt wird. Es ist dann einfach nur die Frage was du willst. Ich hatte immer Probleme ein Dokument das nur gelesen aber nicht visualisiert ist, nach dem Modifizieren von Parametern zu speichern.
Das war jedenfalls mit R12 so.

------------------
Grüße TStone
   "Respektiere die Macht der Worte, wähle sie mit Bedacht!"

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 24. Nov. 2006 21: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 Nur für Jan24 10 Unities + Antwort hilfreich

Hallo Tstone,

Deine Verwunderung ist zurecht! Es sollte eine Abfrage werden, ob das Part überhaupt vorhanden ist, wird aber so nicht funktionieren! Sorry, es war wohl doch schon etwas spät....

Besser ist es so:

Code:
For I=1 To CATIA.Documents.Count
    If CATIA.Documents.Item(I).name = "Balken.CATPart" Then
        Set part1 = CATIA.Documents.Item("Balken.CATPart")
        Exit For
    End If
Next


mfg,
Lusilnie

------------------

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

Jan24
Mitglied
student


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

Beiträge: 14
Registriert: 13.10.2006

erstellt am: 25. Nov. 2006 13:59    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


Symbolleiste.GIF

 
Hallo noch einmal und danke für die schnellen Antworten.

Mein eigentliches Problem ist es das ich im CATIA drei unterschiedliche Bauteile modelliert habe und jeweils zu jedem habe ich mit VB Eingabemasken erzeugt. Danach habe im zum starten diese Masken in Catia eine Symbolleiste erzeugt wo ich über 3 unterschiedliche Buttons (siehe Bild im Anhang) die Masken starten kann, wobei der erste Button die Eingabemasken vom Bauteil 1 starten usw. Aber es kann vorkommen dass der Benutzer Bauteil.1  startet und dann auf einen falschen Button klickt, weil die Button nicht eindeutig sind.

Meine Idee ist es nur mit einem Button zu arbeiten der erkennt welcher Bauteil grade geladen ist und dementsprechend die dazugehörenden Eingabemasken gestartet.

MfG
Jan

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 25. Nov. 2006 15:46    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 Jan24 10 Unities + Antwort hilfreich

Hallo Jan24,

für Deine Absicht wäre der Select-Befehl sehr elegent, etwa so:

Code:
Select Case CATIA.ActiveDocument.Name
   
    Case "Balken.CATPart"
        'hier was bei "Balken.CATPart" ausgeführt wird
   
    Case "BLABLA.CATPart"
        'hier was bei "BLABLA.CATPart" ausgeführt wird
           
    Case "Suelz.CATPart"
        'hier was bei "Suelz.CATPart" ausgeführt wird

    Case Else
        Exit Sub
       
End Select



Hier wird geprüft, welchem Part das gerade Geöffnete entspricht. Entspricht es keinem, so wird das Script beendet (Exit Sub)!


mfg,
Lusilnie

------------------

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

Jan24
Mitglied
student


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

Beiträge: 14
Registriert: 13.10.2006

erstellt am: 26. Nov. 2006 20:02    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

Danke Lusilnie ich werde es mal sofort ausprobieren.
hoffe das es funktioniert.

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

Tstone
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 163
Registriert: 04.06.2003

Dell Precision 470
Intel Xeon CPU 3,00GHz
2GB Ram
Microsoft Windows XP
Catia V5 R18 SP6
VB2005

erstellt am: 27. Nov. 2006 09:10    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 Jan24 10 Unities + Antwort hilfreich

Moin Lusilnie
Ich will ja nicht kleinlich sein, aber so gefällt mir dein Code am Besten:

For I=1 To CATIA.Documents.Count
    If CATIA.Documents.Item(I).name = "Balken.CATPart" Then
        Set part1 = CATIA.Documents.Item(I) '<-so Besser, meine ich
        Exit For
    End If
Next

Bis denn!

------------------
Grüße TStone
   "Respektiere die Macht der Worte, wähle sie mit Bedacht!"

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



Spezialist*in Anlagen- und Rohrleitungsbau

SCHOTT ist ein international führender Technologiekonzern auf den Gebieten Spezialglas und Glaskeramik. Mit der Erfahrung von über 130 Jahren herausragender Entwicklungs-, Material- und Technologiekompetenz bietet das Unternehmen ein breites Portfolio hochwertiger Produkte und intelligenter Lösungen an. Damit ist SCHOTT ein innovativer Partner für viele Branchen, zum Beispiel Hausgeräteindustrie, Pharma, Elektronik, Optik, Life Sciences, Automotive und Aviation....

Anzeige ansehenMaschinenbau
Jan24
Mitglied
student


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

Beiträge: 14
Registriert: 13.10.2006

erstellt am: 27. Nov. 2006 14: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

Der Code von Lusilnie ist für mein Vorhaben eigentlich ganz ok und leicht zu verstehen da ich mich mit VB noch nicht so gut auskenne.
Nur ich habe für alle drei Fälle unterschiedliche Projekte erzeugt und der Code funktioniert nur innerhalb eines Projektes.
Ich würde gern ein weiteres Projekt erzeugen wo ich über die Case-Bedingungen auf die einzelnen Projekte damit auch auf die Masken zugreifen kann.
Ist dies Möglich oder muss ich alle Masken in einem Projekt packen?????
MfG
Jan

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