Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Objekt MaterialManager erzeugen

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:  Objekt MaterialManager erzeugen (4473 mal gelesen)
u01dz
Mitglied



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

Beiträge: 76
Registriert: 12.07.2003

V5R15GA

erstellt am: 23. Jun. 2005 14:06    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

Hi World,

in der Script-API gibt es ein Objekt des Typs "MaterialManager", mit dem man Materialien eines Bodies, HybridBodies, Parts und Products vergeben und auch auslesen kann.

Allerdings frage ich mich: WIE ERZEUGT MAN EIN OBJECT DES TYPS "MATERIALMANAGER"????

Vielleicht kann mir jemand weiterhelfen.

------------------
Tschüß, Dieter

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

Steffen Hohmann
Mitglied
 


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

Beiträge: 446
Registriert: 06.03.2002

erstellt am: 23. Jun. 2005 15:20    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 u01dz 10 Unities + Antwort hilfreich

Hallo Dieter,

es gibt das folgende Beispielmakro von Dassault:


Option Explicit

' COPYRIGTH DASSAULT SYSTEMES 2004

' ***********************************************************************
'  Purpose: Apply and retrieve materials onto Product, Part or Body
'  Assumptions    Looks for Product1.CATProduct, Part1.CATPart and MyCatalog.CATMaterial in the DocView
'  Version: 1.0
'  Author: AST
'  Languages: CATScript
'  Locales: English
'  CATIA Level: V5R14
' ***********************************************************************


' Main
Sub CATMain()

    ' -----------------------------------------------------------
    ' Optional: allows to find the sample wherever it's installed
    '
    Dim sDocPath As String
    sDocPath = CATIA.SystemService.Environ("CATDocView")
    If (Not CATIA.FileSystem.FolderExists(sDocPath)) Then
      Err.Raise 9999,,"No Doc Path Defined"
    End If
    '
    ' -----------------------------------------------------------
    ' Open the CATMaterial document (material library)
    ' -----------------------------------------------------------
    Dim sFilePath
    sFilePath = CATIA.FileSystem.ConcatenatePaths(sDocPath, _
                "\online\CAAScdMatUseCases\samples\MyCatalog.CATMaterial")

    Dim oMaterial_document As Document
    Set oMaterial_document = CATIA.Documents.Open(sFilePath)
    Set oMaterial_document = CATIA.ActiveDocument
    '
    ' -----------------------------------------------------------
    ' Read materials in this catalog (which contains 3 families and 5 materials in each family)
    ' First retrieve the families of the library
    ' -----------------------------------------------------------
    '
    Dim cFamilies_list As MaterialFamilies
    Set cFamilies_list = oMaterial_document.Families

    Dim iNb_families As Integer
    iNb_families = cFamilies_list.Count
    Dim sFamiliesName As String
    sFamiliesName = cFamilies_list.Name
    '
    ' -----------------------------------------------------------
    ' Retrieve the first family of the library
    ' -----------------------------------------------------------
    '
    Dim oFirst_family As MaterialFamily
    Dim ifamily_no As Integer
    ifamily_no = 1
    Set oFirst_family = cFamilies_list.Item(iFamily_no)
    Dim sFamilyName As String
    sFamilyName = oFirst_family.Name
    '
    ' -----------------------------------------------------------
    ' Retrieve the material number 1,2 and 3 of the family
    ' -----------------------------------------------------------
    '
    Dim cMaterials_list As Materials
    Set cMaterials_list = oFirst_family.Materials

    Dim iNb_materials As Integer
    iNb_materials = cMaterials_list.Count

    Dim imaterial_no As Integer
    imaterial_no = 1
    Dim oMaterial1 As Material
    Set oMaterial1 = cMaterials_list.Item(imaterial_no)
 
    imaterial_no = 2
    Dim oMaterial2 As Material
    Set oMaterial2 = cMaterials_list.Item(imaterial_no)
 
    imaterial_no = 3
    Dim oMaterial3 As Material
    Set oMaterial3 = cMaterials_list.Item(imaterial_no)
    '
    ' -----------------------------------------------------------
    ' Read product file
    ' -----------------------------------------------------------
    '
    Dim oProductDocument As Document
    sFilePath = CATIA.FileSystem.ConcatenatePaths(sDocPath, _
                "\online\CAAScdMatUseCases\samples\Product1.CATProduct")
    Set oProductDocument = CATIA.Documents.Open(sFilePath)
    Set oProductDocument = CATIA.ActiveDocument
    '
    ' -----------------------------------------------------------
    ' Access on material manager on root product document
    ' -----------------------------------------------------------
    '
    Dim oRootProduct As Product
    Set oRootProduct = oProductDocument.Product
     
    Dim oManager As MaterialManager
    Set oManager = oRootProduct.GetItem("CATMatManagerVBExt")
    '
    ' -----------------------------------------------------------
    ' Apply the material on the Product (as a link)
    ' -----------------------------------------------------------
    '
    Dim linkMode As Integer
    linkMode = 1
    oManager.ApplyMaterialOnProduct oRootProduct,oMaterial1,linkMode
    '
    ' -----------------------------------------------------------
    ' Retrieve the material applied on the Product
    ' -----------------------------------------------------------
    '
    Dim oAppliedMaterial As Material
    oManager.GetMaterialOnProduct oRootProduct,oAppliedMaterial
    oProductDocument.Close
    '
    ' -----------------------------------------------------------
    ' Open the Part document
    ' -----------------------------------------------------------
    '
    sFilePath = CATIA.FileSystem.ConcatenatePaths(sDocPath, _
                "\online\CAAScdMatUseCases\samples\Part1.CATPart")
   
    Dim oPartDocument As Document
    Set oPartDocument = CATIA.Documents.Open(sFilePath)
    Set oPartDocument = CATIA.ActiveDocument
    '
    ' -----------------------------------------------------------
    ' Access on material manager on root part document
    ' -----------------------------------------------------------
    '
    Dim oRootPart As Part
    Set oRootPart = oPartDocument.Part
   
    ' Retrieve the extension object associated to Y under the key "MyCATIVBExtensionImpl"
    Set oManager = oRootPart.GetItem("CATMatManagerVBExt")
    '
    ' -----------------------------------------------------------
    ' Apply the material on the Part
    ' -----------------------------------------------------------
    '
    linkMode = 0
    oManager.ApplyMaterialOnPart oRootPart,oMaterial2,linkMode
    '
    ' -----------------------------------------------------------
    ' Retrieve the material on the Part
    ' -----------------------------------------------------------
    '
    oManager.GetMaterialOnPart oRootPart,oAppliedMaterial
    '
    ' -----------------------------------------------------------
    '  Retrieve the Part Body
    ' -----------------------------------------------------------
    '
    Dim oMainBody As Body
    Set oMainBody = oRootPart.MainBody
    '
    ' -----------------------------------------------------------
    ' Apply the material on the Part Body (as a link)
    ' -----------------------------------------------------------
    '
    linkMode = 1
    oManager.ApplyMaterialOnBody oMainBody,oMaterial3,linkMode
    '
    ' -----------------------------------------------------------
    ' Retrieve the material on the Part Body
    ' -----------------------------------------------------------
    '
    oManager.GetMaterialOnBody oMainBody,oAppliedMaterial
    '
    ' -----------------------------------------------------------
    '  End of Script
    ' -----------------------------------------------------------
    '
    ' Close the documents
    '
    oMaterial_document.Close
    oPartDocument.Close

 
    Set oRootPart = Nothing
    Set oMainBody = Nothing
    Set oMaterial1 = Nothing
    Set oMaterial2 = Nothing
    Set oMaterial3 = Nothing
    Set oRootProduct = Nothing
    Set oProductDocument = Nothing
    Set oMaterial_document = Nothing
    Set oManager = Nothing
 
End Sub

Gruß
Steffen

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

u01dz
Mitglied



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

Beiträge: 76
Registriert: 12.07.2003

V5R15GA

erstellt am: 24. Jun. 2005 14:19    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

Hi Steffen,

danke!!! Das war genau das, was ich gesucht habe.

------------------
Tschüß, Dieter

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

Athelas
Mitglied
Studentin


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

Beiträge: 29
Registriert: 08.12.2008

erstellt am: 17. Aug. 2009 10:38    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 u01dz 10 Unities + Antwort hilfreich


IST.JPG


SOLL.JPG

 
Hallo zusammen,

ich habe mir das oben gezeigte Script aus der Automationsdatei geholt und den Abschnitt zum Zuweisen des Materials auf einen Body verwendet. Nun erscheint zwar der Parameter "Material", aber es wird kein Material zugewiesen (siehe Bilder).
Arbeite mit V5R16 SP05 HF94.
Hier ist mein Code:

    Dim sDocPath As String
    sDocPath = CATIA.SystemService.Environ("CATDocView")

sFilePath = "C:\Programme\Dassault Systemes\VW\B16\intel_a\startup\materials\Catalog.CATMaterial"

    Dim oMaterial_document As Document
    Set oMaterial_document = CATIA.Documents.Open(sFilePath)
    Set oMaterial_document = CATIA.ActiveDocument

    Dim cFamilies_list As MaterialFamilies
    Set cFamilies_list = oMaterial_document.Families

    Dim iNb_families As Integer
    iNb_families = cFamilies_list.Count
    Dim sFamiliesName As String
    sFamiliesName = cFamilies_list.Name

    Dim oFirst_family As MaterialFamily
    Dim ifamily_no As Integer
    ifamily_no = 3
    Set oFirst_family = cFamilies_list.Item(iFamily_no)
    Dim sFamilyName As String
    sFamilyName = oFirst_family.Name

    Dim cMaterials_list As Materials
    Set cMaterials_list = oFirst_family.Materials

    Dim iNb_materials As Integer
    iNb_materials = cMaterials_list.Count

    Dim imaterial_no As Integer

    imaterial_no = 18
    Dim oMaterial3 As Material
    Set oMaterial3 = cMaterials_list.Item(imaterial_no)

    oMaterial_document.Close
   
    Dim oPartDocument As Document
    Set oPartDocument = CATIA.ActiveDocument

    Dim oRootPart As Part
    Set oRootPart = oPartDocument.Part
   
Dim oManager As MaterialManager
    Set oManager = oRootPart.GetItem("CATMatManagerVBExt")

  Dim linkMode As Integer

    Dim oMainBody As Body
    Set oMainBody = oRootPart.MainBody

    linkMode = 1
    oManager.ApplyMaterialOnBody oMainBody,oMaterial3,linkMode
 
    Set oRootPart = Nothing
    Set oMainBody = Nothing
    Set oMaterial1 = Nothing
    Set oMaterial2 = Nothing
    Set oMaterial3 = Nothing
    Set oMaterial_document = Nothing
    Set oManager = Nothing


Kann mir da jemand weiterhelfen?

Gruß, Sarah

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

gunn
Mitglied


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

Beiträge: 7
Registriert: 12.03.2009

erstellt am: 21. Aug. 2009 13:11    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 u01dz 10 Unities + Antwort hilfreich

hast du schonmal geguckt ob in material3 überhaupt was drinne ist?

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

mellas
Mitglied
Student


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

Beiträge: 29
Registriert: 14.03.2012

CATIA V5R21

erstellt am: 16. Aug. 2012 14:55    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 u01dz 10 Unities + Antwort hilfreich

Hallo,
ich möchte den Thread nach fast genau 3 Jahren nochmal wieder aufgreifen, da ich grade versuche, das Beispielmakro so anzupassen, dass mehreren Körpern innerhalb eines Parts unterschiedliche Materialien zugewiesen werden.
In dem Beispiel wird nach meinem Verständnis so getan, als ob die Makrobibliothek ein zweidimensionales und komplett gefülltes Array ist - guck ich mir die Materialbibliothek (Catalog.CATMaterial) dann ist das ja nicht der Fall. Welchen Index eine Materialfamilie hat, kann ich dort ja noch über Zählen der Registerkarten rauskriegen, aber wie geht des dann mit den einzelnen Materialien in den Familie weiter? Die kann ich ja beliebig anordnen.
Ich habe ifamily_no=1 und imaterial_no=1 gesetzt und kriege dann in meinen Körpern auch den Materialparameter, der allerdings leer ist - meine Vermutung: Der Parameter ist leer, weil es das Material_1.1 nicht gibt und ich mach irgendwas falsch 

und noch eine kleine Frage am Rand: ich dachte bisher immer, die Elemente eines Array beginnen mit dem Index 0 - warum hat ein Array der Größe 3 ("Array(3)")dann die Elemente 0, 1, 2 und 3? 

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: 16. Aug. 2012 15:11    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 u01dz 10 Unities + Antwort hilfreich

Servus
Bitte Systeminfo ausfüllen.
Innerhalb CATMaterial-Datei gibt es eine Collection für die Material-Familien, eine Familie ist auch wieder eine Collection die die Materialen enthält (siehe auch V5Automation.chm).
Kopiere mal deinen Code in den VBA-Editor, und überprüfen, ob das entsprechende Objekt für das Material auch gefüllt wird.
Collections beginnen mit dem Index 1 und nicht wie ein Array bei 0. Collections haben auch noch weitere Methoden siehe zB zb hier.

Gruß
Bernd

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

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

mellas
Mitglied
Student


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

Beiträge: 29
Registriert: 14.03.2012

CATIA V5R21

erstellt am: 16. Aug. 2012 15:49    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 u01dz 10 Unities + Antwort hilfreich

Danke für die schnelle Antwort und sorry wegen der fehlenden Systeminfo, die war untergegangen...

Aber so wirklich weitergekommen bin ich noch nicht. Ich habe es erstmal mit einem Objekt "oMaterial" mit ifamily_no=1 und imaterial_no=1 versucht und der Wert dazu liegt laut dem Fenser Überwachungsausdrücke im VBA Editor "Außerhalb des Kontexts".
Ich muss doch irgendwie die beiden Collections MaterialFamilies und Materials einsehen können, um die Position der gewünschen Familie bzw. des Materials für den Aufruf der Funktion Item (so wie in der V5Automatin.chm) zu bekommen.
Um es mir etwas einfacher zu machen, habe ich im Materialkatalog eine neue Familie erstellt und dort alle benötigten Materialien reinkopiert bzw. drin erstellt - aber in Sachen Zugriff auf die Materialien hilft das erstmal auch nicht.

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: 16. Aug. 2012 15:54    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 u01dz 10 Unities + Antwort hilfreich

Servus
Im Local-Fesnter oder im Watch-Fenster kannst du doch den Inhalt der Objekte (zB der Materialfamilien-Collection) betrachten (Makro schrittweise ausführen oder Unterbrehungpunkt einfügen).
Hast du auch die richtige CTMaterial-Datei geöffnet?

Gruß
Bernd

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

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

mellas
Mitglied
Student


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

Beiträge: 29
Registriert: 14.03.2012

CATIA V5R21

erstellt am: 16. Aug. 2012 17:34    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 u01dz 10 Unities + Antwort hilfreich

Hallo (besonders Bernd),

mittlerweile haben die Objekte oMaterial1 bis ...5 lauf Local-Fenster die richtigen Werte (die Sache mit dem Fenster war übrigens ein super Tipp - jetzt kann ich nachgucken, was in den Collections drin ist und wie die Items heißen)
allerdings funktioniert die Methode "ApplyMaterialOnBody" noch nicht und ich weiß nicht warum.
deklariere ich partDocument1 als Document, dann kommt der Laufzeitfehler 438 (->=bjekt unterstützt Eigenschaft oder MEthode nicht) für die Zeile "Set part1 = partDocument1.Part"
deklariere ich das partDocument1 as PartDocument, dann kommt für die Zeile "Set partDocument1 = CATIA.ActiveDocument" der Laufzeitfehler 13 (Typen unverträglich)

Ist die Methode "GetMaterialOnBody" für die Materialzuweisung wichtig?

hier mal der Auszug aus meinem Quellcode, die 8 Körper sollen jeweils eins der 5 Materialien bekommen:

Sub Material_erzeugen()

        'Material-Bibliothek (material library) oeffen:
        Dim sFilePath As String
        sFilePath = "\\Mitarb-und-stud\mus\Studenten\CATIA\Catalog_erweitert.CATMaterial"
       
        Dim oMaterial_document As Document
        Set oMaterial_document = CATIA.Documents.Open(sFilePath)
        Set oMaterial_document = CATIA.ActiveDocument

        'Material-Familien im Materialkatalog auslesen
        Dim cFamilies_list As MaterialFamilies
        Set cFamilies_list = oMaterial_document.Families
       
        Dim iNb_families As Integer
        iNb_families = cFamilies_list.Count
        Dim sFamiliesName As String
        sFamiliesName = cFamilies_list.Name
       
        'eine Materialfamilie aus der Collection aufrufen, hier die selbsterstellte Familie "Batteriezelle" (Nummer 9)
        Dim oFamily As MaterialFamily
        Dim iFamily_no As Integer
        iFamily_no = 9
        Set oFamily = cFamilies_list.Item(iFamily_no)
        Dim sFamilyName As String
        sFamilyName = oFamily.Name
       
        'die Materialien aus der Collection der Familie aufrufen (5 Materialien)
        Dim cMaterials_list As Materials
        Set cMaterials_list = oFamily.Materials
       
        Dim iNb_materials As Integer
        i_Nb_materials = cMaterials_list.Count
       
        Dim imaterial_no As Integer
       
        'Material_1: "Separator"
            imaterial_no = 1
            Dim oMaterial1 As Material
            Set oMaterial1 = cMaterials_list.Item(imaterial_no)
           
        'Material_2: "Kathodenschicht"
            imaterial_no = 2
            Dim oMaterial2 As Material
            Set oMaterial2 = cMaterials_list.Item(imaterial_no)
           
        'Material_3: "Anodenschicht"
            imaterial_no = 3
            Dim oMaterial3 As Material
            Set oMaterial3 = cMaterials_list.Item(imaterial_no)
           
        'Material_4: "Kathodensubstrat"
            imaterial_no = 4
            Dim oMaterial4 As Material
            Set oMaterial4 = cMaterials_list.Item(imaterial_no)
           
        'Material_5: "Anodensubstrat"
            imaterial_no = 5
            Dim oMaterial5 As Material
            Set oMaterial5 = cMaterials_list.Item(imaterial_no)
      
  
        Dim linkMode As Integer
        linkMode = 1
          
        Dim partDocument1 As PartDocument
        Set partDocument1 = CATIA.ActiveDocument
          
        Dim part1 As Part
        Set part1 = partDocument1.Part
       
        Set oManager = part1.GetItem("CATMatManagerVBExt")
       
        Dim bodies1 As Bodies
        Set bodies1 = part1.Bodies
       
        Dim body1 As Body
       
        'Separatorlage_1 -> Material: Separator (oMaterial1)
            Set body1 = bodies1.Item("Separatorlage_1")
            oManager.ApplyMaterialOnBody body1, oMaterial1, linkMode
       
        'Kathodenschicht_1 -> Material: Kathodenschicht (oMaterial2)
            Set body1 = bodies1.Item("Kathodenschicht_1")
            oManager.ApplyMaterialOnBody body1, oMaterial2, linkMode
       
        'Kathodensubstrat -> Material Kathodensubstrat (oMaterial4)
            Set body1 = bodies1.Item("Kathodensubstrat")
            oManager.ApplyMaterialOnBody body1, oMaterial4, linkMode
       
        'Kathodenschicht_2 -> Material: Kathodenschicht (oMaterial2)
            Set body1 = bodies1.Item("Kathodenschicht_2")
            oManager.ApplyMaterialOnBody body1, oMaterial2, linkMode
       
        'Separatorlage_2 -> Material: Separator (oMaterial1)
            Set body1 = bodies1.Item("Separatorlage_2")
            oManager.ApplyMaterialOnBody body1, oMaterial1, linkMode
       
        'Anodenschicht_1 -> Material: Anodenschicht (oMaterial3)
            Set body1 = bodies1.Item("Anodenschicht_1")
            oManager.ApplyMaterialOnBody body1, oMaterial3, linkMode
       
        'Anodensubstrat -> Material Anodensubstrat (oMaterial5)
            Set body1 = bodies1.Item("Anodensubstrat")
            oManager.ApplyMaterialOnBody body1, oMaterial5, linkMode
       
        'Anodenschicht_2 -> Material: Anodenschicht (oMaterial3)
            Set body1 = bodies1.Item("Anodenschicht_2")
            oManager.ApplyMaterialOnBody body1, oMaterial3, linkMode

    oMaterial_document.Close
    part1.Update
   
End Sub


Viele Grüße, mellas

[Diese Nachricht wurde von mellas am 16. Aug. 2012 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: 16. Aug. 2012 17: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 u01dz 10 Unities + Antwort hilfreich

Servus
Nach dem Öffnen der Material-Datei ist diese dein aktuelles Dokument, und somit kannst du mit ActiveDocument nicht auf das PartDocument zugreifen.
Ist dein Part vor dem Ausführen schon geöffnet? Dann kannst du die Zuweisung des PartDocuments schon am Anfang machen.

Gruß
Bernd

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

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

mellas
Mitglied
Student


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

Beiträge: 29
Registriert: 14.03.2012

CATIA V5R21

erstellt am: 16. Aug. 2012 17: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 u01dz 10 Unities + Antwort hilfreich

Bernd, du bist spitze!!!
war ja am Ende doch recht einfach und trotzdem hat mich die Geschichte mit der Materialzuweisung fast 2 Tage beschäftigt...

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