Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Bauteile am Namen identifizieren

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:  Bauteile am Namen identifizieren (620 mal gelesen)
Shadyyy
Mitglied


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

Beiträge: 7
Registriert: 05.12.2016

Catia V5R6 2018

erstellt am: 11. Jun. 2019 21:58    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 sorry für die vielleicht einfache Frage, aber ich blick in manchen Sachen noch nicht so ganz durch

Habe mir jetzt ein Makro geschrieben (Austausch einer Fläche im Bauteil/Parameter eingeben + updaten).
Das Makro wird im Produkt ausgeführt und Updated jeweils beide Bauteile.
Die Bauteile sowie das Produkt gibt es jetzt mit 3 verschiedenen Namen. Aufbau ist wie folgt

Produkt 1 enthält
Bauteil A
Bauteil B

Produkt 2 enthält
Bauteil C
Bauteil D

Produkt 3 enthält
Bauteil E
Bauteil F

Code bisher
Set doc = CATIA.Documents
Set document1 = doc.Item("BauteilNameA.CATPart")
set BauteilA = document1.Part

so definier ich mir mein Bauteil A das ganze dann parallel für Bauteil B nun kann ich über BauteilA.update bzw. BauteilB.update das entsprechende Part updaten.
Das Makro soll anhand des Part Namen erkennen welches Bauteil geöffnet ist, also Product 1 mit Parts 2 mit Parts oder 3 mit Parts, um dann entsprechend set document = doc.Item(" Hier der richtige Part Name")
dachte an eine IF Bauteilname = BauteilA Then set document1 = doc.Item("BauteilA.Catpart) Abfrage das ganze jeweils für alle anderen auch
Oder geht das auch einfacher ?

Danke schonmal für eure Hilfe und Gruß

[Diese Nachricht wurde von Shadyyy am 11. Jun. 2019 editiert.]

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: 11. Jun. 2019 22:37    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 Shadyyy 10 Unities + Antwort hilfreich

Servus

Willst du wirklich über den Dateinamen auf die Einzelteile zugreifen?
Du könntest ja auch auf die verbauten Einzelteile (bzw deren Instanzen) der Baugruppe auslesen und von da aus zum entsprechenden Dokument "wechseln".

Code:
Sub CATMain()

Dim oRootDocument as ProductDocument
Dim oRootProduct as Product
Dim oInstanceProduct as Product
Dim oDocument as Document

Set oRootDocument = CATIA.ActiveDocument
Set oRootProduct = oRootDocument.Product

for each oInstanceProduct in oRootProduct.Products
      Set oDocument = oInstanceProduct.ReferenceProduct.Parent
      MsgBox oDocument.FullName
next

End Sub


Falls der Aufbau der Baugruppen fix ist könntest du ja immer auf die ersten beiden Instanzen zugreifen.

Gruß
Bernd

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

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

Shadyyy
Mitglied


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

Beiträge: 7
Registriert: 05.12.2016

Catia V5R6 2018

erstellt am: 11. Jun. 2019 22:48    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

Vielen Dank schonmal, habe mir schon gedacht das es so in der Richtung wie du sagst auch geht.

Beides wäre möglich. Alle Bauteilnamen sind fix und werden sich auch nicht ändern also könnte man auch direkt über die Bauteilnamen gehen
Der Aufbau ist allerdings auch fix also könnte man auch das erste bzw. zweite Dokument ansprechen. Wie spreche ich denn Bsp das erste Dokument der Baugruppe an ? Würde es schon gerne so haben das ich das Bauteil als Part definiere und dann über BauteilA.update oder BauteilA.parameters die Parameter anpassen kann, da ich das ganze jetzt soweit fast fertig habe. Es hat sich nur die Notwendigkeit ergeben mehrere Products zu erstellen da sich die Parts geringfügig unterscheiden.

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: 11. Jun. 2019 22: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 Nur für Shadyyy 10 Unities + Antwort hilfreich

Servus

zB so:

Code:
Set oInstanceProduct = oRootProduct.Products.Item(1)
Set oDocument = oInstanceProduct.ReferenceProduct.Parent
Set oPartA = oDocument.Part

Gruß
Bernd

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

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

Shadyyy
Mitglied


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

Beiträge: 7
Registriert: 05.12.2016

Catia V5R6 2018

erstellt am: 12. Jun. 2019 23:29    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,

Ich hab mir aus deinem Code und meinem bisher geschriebenen jetzt was zusammen gebastelt. Funktioniert derweil auch perfekt, vielen Dank dafür schonmal. Allerdings muss das Makro in der Baugruppe ausgeführt werden (wenn über die Bauteilstruktur angesprochen werden soll). Mit meiner bisherigen Funktion Bauteilnamen direkt anzusprechen konnte ich das Makro auch in einem beliebigen Bauteil ausführen. Allerdings ist das Makro dann auf eine Bauteil/Baugruppen Kombination beschränkt.

Gibt es die Möglichkeit vor dem Makrostart in das Fenster der Baugruppe zu springen ? sodass man diesen Fehler vermeiden könnte ? Es werden bei Makrobenutzung die 2 Bauteile und die Baugruppe geöffnet also habe ich 3 Catia Fenster. Könnte man also eigentlich zur einzig geöffneten Baugruppe springen. Sollte doch über Windows.active funktionieren bekomm es nur irgendwie nicht hin.

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: 12. Jun. 2019 23:45    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 Shadyyy 10 Unities + Antwort hilfreich

Servus

Warum willst du die Bauteile extra öffnen? Meist reicht es doch die Baugruppe zu öffnen, dann werden die Einzelteil ja mit geladen.
Fast immer ist es nicht nötig ein Part zur Bearbeitung im extra Fenster zu öffnen.
Wenn ein Dokument in einem extra Fenster geöffnet ist kannst du es über oDocument.Activate() aktivieren.

Gruß
Bernd

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

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