|  |  | 
|  | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 | 
|  |  | 
|  | Qualität sichtbar gemacht, dank leistungsfähiger 3DViewStation Grafik, eine Pressemitteilung 
 | 
| Autor | Thema:  Inheritance Mode (726 /  mal gelesen) | 
 | Darthwalter Mitglied
 
 
  
 
      Beiträge: 13Registriert: 16.10.2014
 Win 7 ProCatia V5-6R2016
 HP Z400 Workstation
 |    erstellt am: 24. Okt. 2018 13:14  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo zusammen, ich habe per VBA einem Body ein Material zugewiesen. Jetzt möchte ich für dieses Material gerne den InheritanceMode auf 3 setzen. Wie bekomme ich Zugriff auf das Objekt PositionedMaterial für diesen Body? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 24. Okt. 2018 13:21  <-- editieren / zitieren -->    Unities abgeben:           Nur für Darthwalter   
  Servus Hast du dir schon die Methode GetMaterialOnBody angeschaut (siehe Doku)?Oder geht das nur mit "normalen" Materials?
 GrußBernd
 ------------------Warum einfach, wenn es auch kompliziert geht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Darthwalter Mitglied
 
 
  
 
      Beiträge: 13Registriert: 16.10.2014
 Win 7 ProCatia V5-6R2016
 HP Z400 Workstation
 |    erstellt am: 24. Okt. 2018 13:33  <-- editieren / zitieren -->    Unities abgeben:            
  Wenn ich mir das Material über den MaterialManager mit getMaterialOnBody wieder ausgeben lasse bekomme ich ein Material zurück. Aber wenn ich darauf direkt die Eigenschaft "InheritanceMode" anwende gibts die Fehlermeldung "Objekt unterstützt Eigenschaft/Methode nicht". Ich denke man braucht ein Objekt vom Typ PositionedMaterial oder sowas für die diese EIgenschaft gilt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 24. Okt. 2018 13:41  <-- editieren / zitieren -->    Unities abgeben:           Nur für Darthwalter   
  Servus Wie fügst du das "PositionedMaterial" hinzu?Liefert dir die Objektauflösung was brauchbares zurück? (eventuell gibt es da undokumentierte Methoden/Funktionen (die dann Intellisense anzeigt)).
 In der Doku steht was, dass man über GetItem("CATMaterialVBExt") auf die zugreifen sollte (ungetestet).
 GrußBernd
 ------------------Warum einfach, wenn es auch kompliziert geht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Darthwalter Mitglied
 
 
  
 
      Beiträge: 13Registriert: 16.10.2014
 Win 7 ProCatia V5-6R2016
 HP Z400 Workstation
 |    erstellt am: 24. Okt. 2018 14:30  <-- editieren / zitieren -->    Unities abgeben:            
  Servus, ich füge das Material ganz normal über den MaterialManager hinzu und kann es auch über diesen wieder abgreifen.
 Code:oManager.ApplyMaterialOnBody oRootPart.Bodies.Item(i), oMaterial, LinkMode
 oManager.GetMaterialOnBody oRootPart.Bodies.Item(i), appliedMat
 
 Auf das appliedMat kann ich "InheritanceMode" aber nicht anwenden. Die Eigenschaft InheritanceMode läuft unter PositionedMaterials, die eine eigene Gruppe unter den CatMatInterfaces bilden.
 Ich habe daher den Verdacht, dass man auf diese anders zugreifen muss, sowie man für die Zuweisung der Materialien auch den MaterialManager nutzen muss.
 
 Code:Set oManager = oRootPart.GetItem("CATMatManagerVBExt")
 
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 26. Okt. 2018 22:01  <-- editieren / zitieren -->    Unities abgeben:           Nur für Darthwalter   
  Servus Ich hab noch mal was rumprobiert.Dieser Code läuft bei mir:
 Code:Dim oPositionedMaterial As PositionedMaterial
 Set oPositionedMaterial = oBody.GetItem("CATMaterialVBExt")oPositionedMaterial.InheritanceMode = 2
 
 Das GetItem  einfach auf das Objekt los lassen, an dem das Material hängt (Body, Product, ...). GrußBernd
 ------------------Warum einfach, wenn es auch kompliziert geht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Darthwalter Mitglied
 
 
  
 
      Beiträge: 13Registriert: 16.10.2014
 Win 7 ProCatia V5-6R2016
 HP Z400 Workstation
 |    erstellt am: 29. Okt. 2018 06:52  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 29. Okt. 2018 09:02  <-- editieren / zitieren -->    Unities abgeben:           Nur für Darthwalter   
  Servus Weil es Dassault so festgelegt hat, und es so auch in der Doku steht.Der Materialmanager ist wohl zum Zuordnen von Material zB aus einer Bibliothek, PositionedMaterial für ein schon zugeordnetes Material.
 GrußBernd
 ------------------Warum einfach, wenn es auch kompliziert geht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                       
 | Darthwalter Mitglied
 
 
  
 
      Beiträge: 13Registriert: 16.10.2014
 Win 7 ProCatia V5-6R2016
 HP Z400 Workstation
 |    erstellt am: 29. Okt. 2018 09:10  <-- editieren / zitieren -->    Unities abgeben:            |