Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  Material und Rendern...

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
  
PDM Ablösung von Productstream Professional auf GAIN Collaboration (GAIN Collaboration,PDM,PDM System,PLM,PLM System)
Autor Thema:  Material und Rendern... (715 mal gelesen)
daywa1k3r
Ehrenmitglied V.I.P. h.c.
Softwareentwickler



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

Beiträge: 3497
Registriert: 01.08.2002

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012 64Bi

erstellt am: 26. Nov. 2002 06: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

Hallo Leute,

ich habe ein Problem und zwar, möchte ich an ein Teil Material und Render-Stil übergeben.
Hier ein Paar Zeilen:

Dim oApp As Inventor.Application
Dim oAsm As AssemblyDocument
Dim oNewDoc As PartDocument
Dim oMaterial As Material
Dim oRenderStyle As RenderStyle
Dim oTransGeom As TransientGeometry
Dim CurrentTransform As Matrix

Set oApp = GetObject(, "Inventor.Application")
Set oAsm = oApp.ActiveDocument

Set oTransGeom = oApp.TransientGeometry
CurrentTransform.SetToIdentity

Set oNewDoc = oApp.Documents.Open("C:\Temp\Test.ipt", False)

Set oMaterial = oNewDoc.Materials.Item("1.2162 21 MnCr 5")
Set oRenderStyle = oNewDoc.RenderStyles.Item("Chrom")

oMaterial.RenderStyle = oRenderStyle

Call oNewDoc.Update

Das Material bleibt aber immer gleich, egal was ich übergebe. Ich habe in einer anderen Funktion das schon mal gemacht, und es hat gefunzt, aber es war nicht wirklich identisch. Deklarationen wie oben, nur hier:

Dim oDerivedAsmDef As DerivedAssemblyDefinition

Set oPartDoc = oApp.Documents.Add(kPartDocumentObject, oApp.FileManager.GetTemplateFile(kPartDocumentObject))
Set oDerivedAsmDef = oPartDoc.ComponentDefinition.ReferenceComponents.DerivedAssemblyComponents.CreateDefinition(sFilePath & "test.iam")

oDerivedAsmDef.Occurrences.Item("meine Occurence").InclusionOption = kDerivedIncludeAll

Call oPartDoc.ComponentDefinition.ReferenceComponents.DerivedAssemblyComponents.Add(oDerivedAsmDef)

Dim oMaterial As material
Set oMaterial = oPartDoc.Materials.Item("Standard")

Dim oRenderStyle As RenderStyle
Set oRenderStyle = oPartDoc.RenderStyles.Item("Gold (metallisch)")

oMaterial.RenderStyle = oRenderStyle
 
Call oPartDoc.Update

Irgendwie sieht der erste Quellcode "richtiger" als der zweite, es ist aber nicht so.

Vielleicht weiss jemand wo das Problem liegt ?

------------------
Grüße daywa1k3r

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

Pisarz
Mitglied



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

Beiträge: 280
Registriert: 05.03.2002

AIP2011 Win7x64
HP Z400/W3565(3.2GHz) 12GB RAM
100GB SSD / 1TB Raid1
MSI R5770 Hawk
SpacePilot

erstellt am: 26. Nov. 2002 13:43    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 daywa1k3r 10 Unities + Antwort hilfreich

Hi Daywalker,

also wenn ich die wesentlichen Zeilen:

Set oApp = ThisApplication
Set oNewDoc = oApp.Documents.Open("C:\Temp\Test.ipt", False)

Set oMaterial = oNewDoc.Materials.Item("1.2162 21 MnCr 5")
Set oRenderStyle = oNewDoc.RenderStyles.Item("Chrom")

oMaterial.RenderStyle = oRenderStyle

bei mir laufen lasse, so funktioniert das Programm. Ich habe vorher eine test.ipt erzeugt, die das Material "1.2162 21 MnCr 5" enthält mit einem anderen RenderStyle und nach dem Durchlauf war der Renderstyle "chrom".

Es gab mal Probleme mit Materialien und Zugriff via .item("Name"): http://ww3.cad.de/foren/ubb/Forum50/HTML/000909.shtml
aber es scheint, dass der Bug in IV6 behoben ist...

------------------
Grüße Jörgen

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

daywa1k3r
Ehrenmitglied V.I.P. h.c.
Softwareentwickler



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

Beiträge: 3497
Registriert: 01.08.2002

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012 64Bi

erstellt am: 26. Nov. 2002 14:05    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 Jörgen,

ja,... Die Zeile Set oApp = ThisApplication ist beim paste and copy verloren gegangen. Im Projekt ist die schon drinn. Das Problem ist weniger mit Renderstyle, da der immer gleich bleibt. Ich setzte es immer wieder auf "Chrom", weil wen Material umgestellt wird, verstellt sich der Renderstyle auch. Vielleicht konnte ich daswegen keine veränderungen sehen. Mein Problem ist mehr das Material, da es immer gleich bleibt. Wenn Du bei test.ipt manuel irgendein anderes Material zuweist, wirst Du sehen, dass es so auch bleibt. Ich wusste nichts von dem "Name Bug" bei Material, und das sieht genau so aus. Wenn das so ist, wie soll ich denn über den Index auf die Material Liste zugreifen ?!? Ich habe mein Material doch in Form eines Strings "vorliegen". Da ist doch der Zugriff über Name viel einfacher...

Naja, ich hoffe, Du kannst es kurz testen, mit anderen Material.

Danke und

------------------
Grüße daywa1k3r

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

Pisarz
Mitglied



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

Beiträge: 280
Registriert: 05.03.2002

AIP2011 Win7x64
HP Z400/W3565(3.2GHz) 12GB RAM
100GB SSD / 1TB Raid1
MSI R5770 Hawk
SpacePilot

erstellt am: 26. Nov. 2002 14:21    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 daywa1k3r 10 Unities + Antwort hilfreich

mmmh,
wenn Du die Veränderung im Bauteil sehen willst, dann musst du das Material dem Bauteil auch zuweisen:

oPartDoc.ComponentDefinition.Material = oMaterial (oder so ähnlich)

Da liegt vielleicht der Unterschied ziwschen deinen beiden Beispielen, da das Zweite das Material "Standard" manipuliert und das Bauteil wahrscheinlich auf Standard stand...

------------------
Grüße Jörgen

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

daywa1k3r
Ehrenmitglied V.I.P. h.c.
Softwareentwickler



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

Beiträge: 3497
Registriert: 01.08.2002

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012 64Bi

erstellt am: 26. Nov. 2002 14:31    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,

Zitat:
oPartDoc.ComponentDefinition.Material = oMaterial

Ja, das klingt doch logisch, aber wie übergebe ich ein String an oMaterial ? Da würde es doch meckern. Oder nicht ?

Danke

------------------
Grüße daywa1k3r

Ah ja, oMaterial.Name = "1.2162 21 MnCr 5" könnte funzen. Ich probiere es mal.

[Diese Nachricht wurde von daywa1k3r am 26. November 2002 editiert.]

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

Pisarz
Mitglied



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

Beiträge: 280
Registriert: 05.03.2002

AIP2011 Win7x64
HP Z400/W3565(3.2GHz) 12GB RAM
100GB SSD / 1TB Raid1
MSI R5770 Hawk
SpacePilot

erstellt am: 26. Nov. 2002 14: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 daywa1k3r 10 Unities + Antwort hilfreich

Ne, du hast doch oMaterial dir aus der Liste schon rausgesucht:

Set oMaterial = oNewDoc.Materials.Item("1.2162 21 MnCr 5")

Und das jetzt zuweisen...

------------------
Grüße Jörgen

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

daywa1k3r
Ehrenmitglied V.I.P. h.c.
Softwareentwickler



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

Beiträge: 3497
Registriert: 01.08.2002

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012 64Bi

erstellt am: 26. Nov. 2002 14:53    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

Nein, das mit "oMaterial.Name =" war Schwachsinn, da ich, wenn überhaupt nur den Namen ändern kann. Ich habe jetzt das

Set oMaterial = oNewDoc.Materials.Item(Die Varialble die das Material enthält)
oNewDoc.ComponentDefinition.Material = oMaterial

probiert, und in debug Modus sehe ich, dass die Variable auf "1.1730 C45W3" steht, obwohl ich "1.2767 x45 NiCrMo 4" ausgewählt habe. Peinlich, nicht Wahr ? Ich schaue erst, dass meine Variablen richtig funzen, dann melde ich mich wieder. Ist ja kein Wunder, dass ich kein Erfolg habe, da "1.1730 C45W3" die Standard Einstellung ist 

Danke

------------------
Grüße daywa1k3r

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

daywa1k3r
Ehrenmitglied V.I.P. h.c.
Softwareentwickler



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

Beiträge: 3497
Registriert: 01.08.2002

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012 64Bi

erstellt am: 26. Nov. 2002 15:00    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

Juhu,

es funzt !!! Ich glaube ich weine gerade... Oder auch nicht 

DANKE !!!

------------------
Grüße daywa1k3r

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

Pisarz
Mitglied



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

Beiträge: 280
Registriert: 05.03.2002

AIP2011 Win7x64
HP Z400/W3565(3.2GHz) 12GB RAM
100GB SSD / 1TB Raid1
MSI R5770 Hawk
SpacePilot

erstellt am: 26. Nov. 2002 15:09    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 daywa1k3r 10 Unities + Antwort hilfreich

Ja, das sind so die kurzen Glücksgefühle des Programmiererdaseins.

Aber wehe, der nächste Bug lauert schon und er wird niederträchtiger sein als der vorhergehende...

Viel Spaß auch! 

------------------
Grüße Jörgen

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)2024 CAD.de | Impressum | Datenschutz