| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Materialien (1113 mal gelesen)
|
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 27. Aug. 2009 11:19 <-- editieren / zitieren --> Unities abgeben:
Ich habe im Internet folgendes beispiel gefunden, um Materialien anlegen zu können Code: Document doc = Application.DocumentManager.MdiActiveDocument; Database m_db = doc.Database; Editor ed = doc.Editor; Mapper mapper1 = new Mapper(); MaterialTexture mttr = new MaterialTexture(); MaterialMap map = new MaterialMap(Source.File, mttr, 1, mapper1); EntityColor eclr = new EntityColor(150, 150, 150); MaterialColor mc = new MaterialColor(Method.Override, 1, eclr); MaterialDiffuseComponent mdc = new MaterialDiffuseComponent(mc, map); MaterialSpecularComponent mck = new MaterialSpecularComponent(mc, map, 0.5); MaterialOpacityComponent moc = new MaterialOpacityComponent(1, map); MaterialRefractionComponent mrfr = new MaterialRefractionComponent(2, map); Material Mat = new Material(); Mat.Name = "MaterialName"; Mat.Description = "New Material"; Mat.Diffuse = mdc; Mat.Specular = mck; Mat.Refraction = mrfr; Mat.Reflectivity = 1; Mat.Reflection = map; Mat.Opacity = moc; Mat.Ambient = mc; Mat.Bump = map; Mat.SelfIllumination = 1; Transaction tr = Application.DocumentManager.MdiActiveDocument.TransactionManager.StartTransaction(); using (tr) { using (DBDictionary dict = (DBDictionary)tr.GetObject (m_db.MaterialDictionaryId, OpenMode.ForWrite)) { ObjectId idm = dict.SetAt(Mat.Name, Mat); tr.AddNewlyCreatedDBObject(Mat, true); } tr.Commit(); }
Das Zeugs funktioniert auch soweit, aber wie lege ich ein Material an, mit einem Bild (tga-File) als Textur ? Gibts irgendwo eine gute Beschreibung dazu?
Bzw. was machen die Objekte Mapper, MaterialTextur usw. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 27. Aug. 2009 11:39 <-- editieren / zitieren -->
Hi, vorweg, genauer kann ich mir's erst am Abend ansehen, zwischenzeitlich aber eine Frage: die Material-API hat sich in jeder der letzten Versionen von AutoCAD massiv geändert. Daher muss ich vorher wissen, on Deine SysInfo 'AutoCAD 2008' aktuell ist. - alfred - ------------------ www.hollaus.at |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 27. Aug. 2009 11:42 <-- editieren / zitieren --> Unities abgeben:
|
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 09. Sep. 2009 14:41 <-- editieren / zitieren --> Unities abgeben:
Da ich es nicht wirklich hinbekomme, Materialien richtig anzulegen, habe ich mich entschlossen, einen anderen Weg zu gehen. Da es sich lediglich um ca. 100 Materialien handelt, werde ich diese einfach manuell in einer DWG pflegen, und bei Bedarf die benötigten Materialien in meine 'Arbeits-DWG' rüberkopieren. Ich denke, dass istd er einfachere Weg. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 09. Sep. 2009 14:44 <-- editieren / zitieren -->
Hi, hast PM von mir bekommen? Das mit der Materialbibliothek schon in der Vorlagezeichnung sollte gut funktionieren, ich weiss nur nicht, wie groß die Vorlage wird, wenn 100 Materialien definiert sind? Was aber nach wie vor offen ist (und das kann leider in Materialien nicht gespeichert werden) sind die Mapping-Zuweisungen. Ausser Du legst diese schon bei der Blockdefinition fest. - alfred - ------------------ www.hollaus.at |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|