Autor
|
Thema: Material Copy/ Paste (819 / mal gelesen)
|
FRZ Mitglied Maschinenbauer
Beiträge: 13 Registriert: 04.06.2020 Windows 10, CATIA V5R19
|
erstellt am: 15. Jul. 2020 10:58 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, Ich möchte die Materialeigenschaften eines Körpers kopieren und in einem anderen Körper den Material einfügen. Könnt Ihr mir dabei helfen? Ich bedanke mich im Voraus Beste Grüße Fariz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 15. Jul. 2020 11:05 <-- editieren / zitieren --> Unities abgeben: Nur für FRZ
Servus Probier mal mit GetMaterialOnBody das Material auslesen und per ApplyMaterialOnBody dem andern Körper zuzuweisen. (siehe auch Applying or Retrieving a Material on a Product, a Part, or a Body in der Doku) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FRZ Mitglied Maschinenbauer
Beiträge: 13 Registriert: 04.06.2020 Windows 10, CATIA V5R19
|
erstellt am: 23. Jul. 2020 13:34 <-- editieren / zitieren --> Unities abgeben:
Vielen vielen Dank Bernd, dass du immer hilfsbereit bist,und entschuldige mich bitte für die späte Antwort! Ich sende mal den Code, den ich geschrieben hab. Die Körper sollen zuerst as Result kopiert und danach gelöscht werden. Aber Ich möchte die Materialwerte erhalten. Der Code funktioniert aber iwie nicht, kannst du mir bitte helfen, wo ich den Fehler mache? Beste Grüße Fariz Sub CATMain() Dim arrlocMaterial(1 To 100) As Material Dim locMatManager As MaterialManager Set oDoc = CATIA.ActiveDocument Set oPart = oDoc.Part For X = oPart.Bodies.Count To 1 Step -1 Set oBody = oPart.Bodies.Item(X) locMatManager.GetMaterialOnBody(oBody, arrlocMaterial(X)) Next ... ''' hier findet copy and paste special statt For X = oPart.Bodies.Count To 1 Step -1 Set oBody = oPart.Bodies.Item(X) locMatManager.ApplyMaterialOnBody(oBody, arrlocMaterial(X)) Next End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 23. Jul. 2020 13:42 <-- editieren / zitieren --> Unities abgeben: Nur für FRZ
Servus Kommt eine Fehlermeldung? Wird der Array mit den Materialien gefüllt? Wo ist dein Zugriff auf den Material-Manager? (zB oPart.GetItem("CATMatManagerVBExt")) ApplyMaterialOnBody erwartet noch einen dritten Parameter für den Linkmode (bei dir vermutlich 0) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FRZ Mitglied Maschinenbauer
Beiträge: 13 Registriert: 04.06.2020 Windows 10, CATIA V5R19
|
erstellt am: 23. Jul. 2020 13:52 <-- editieren / zitieren --> Unities abgeben:
in den Zeilen locMatManager.GetMaterialOnBody oBody, arrlocMaterial(X) locMatManager.ApplyMaterialOnBody oBody, arrlocMaterial(X) bekomme ich den Fehler "Argument not optional ". Der Array ist komplett leer. Ich entschuldige mich aber ich weiß eigentlich gar nicht wieso ich " (zB oPart.GetItem("CATMatManagerVBExt"))" und den dritten Parameter für den Linkmode brauche oder was die machen... (mein erster Monat mit VBA) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 23. Jul. 2020 13:57 <-- editieren / zitieren --> Unities abgeben: Nur für FRZ
Servus Die Doku (V5Automation.chm) ist dein Freund Kurzes Beispiel: Code: Sub CATMain() Dim oPartDocument As Document Dim oRootPart As Part Dim oManager Dim sLinkMode as Short Dim oSecondBody As Body Dim oFirstBody As Body Dim oAppliedMaterial as Material Set oPartDocument = CATIA.ActiveDocument Set oRootPart = oPartDocument.Part Set oManager = oRootPart.GetItem("CATMatManagerVBExt") Set oFirstBody = oRootPart.Bodies.Item(1) Set oSecondBody = oRootPart.Bodies.Item(2) oManager.GetMaterialOnBody oFirstBody, oAppliedMaterial sLinkMode = 0 '0 = ohne Link oManager.ApplyMaterialOnBody oSecondBody, oAppliedMaterial, sLinkMode End Sub
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Buchhalter für die Finanzbuchhaltung (m/w/d) | Gräbert ist ein mittelständisches Softwareunternehmen mit Hauptsitz in Berlin und Büros in Amerika, Europa und Asien. Wir sind spezialisiert auf die Entwicklung von CAD-Software und CAD-Softwarelösungen und bieten angeschlossene Services und Dienstleistungen an. Als Vorreiter im Computer Aided Design mit mehr als 40 Jahren Erfahrung in CAD-Technologie, Projektmanagement und Consulting ist Gräbert weltweit bekannt.... | Anzeige ansehen | Finanzbuchhaltung, Bilanzbuchhaltung |
|
FRZ Mitglied Maschinenbauer
Beiträge: 13 Registriert: 04.06.2020 Windows 10, CATIA V5R19
|
erstellt am: 23. Jul. 2020 14:08 <-- editieren / zitieren --> Unities abgeben:
Vielen Vielen Dank Bernd Hervorragend!!! es Funktioniert einwandfrei ich werde es nur meinem Code anpassen, dann ist es fertig... Und die Doku werde ich mir auf jeden Fall anschauen, Vielen Dank für die Empfehlung Beste Grüße Fariz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |