Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: German от 28-02-2014, 17:23:03

Название: Цвет Material
Отправлено: German от 28-02-2014, 17:23:03
По умолчанию создаваемый Material имеет типичное(типовое) свойство "Цвет по объекту", приложил картинку.

Нужно изменить это свойство, чтобы у материала был назначен именно "Цвет".

Искал в интернете, как задать цвет материалу, все что нашел:
http://adndevblog.typepad.com/autocad/2012/05/setting-u-and-v-tile-scale-of-a-newly-created-material-using-net.html (http://adndevblog.typepad.com/autocad/2012/05/setting-u-and-v-tile-scale-of-a-newly-created-material-using-net.html)
http://adndevblog.typepad.com/autocad/2013/07/applying-material-to-a-cylinder.html

В этих примерах применяются текстуры, а мне нужно обойтись только цветом, без текстур.
Название: Re: Цвет Material
Отправлено: German от 07-03-2014, 10:20:56
Отвечу сам себе, вдруг кому-то пригодится.

Для установки у материала "Цвета" достаточно установить одно его свойство Material.Diffuse
примерно следующим способом:

Код - C# [Выбрать]
  1. //сам цвет задаем битами RGB
  2. Autodesk.AutoCAD.Colors.EntityColor entColor = new Autodesk.AutoCAD.Colors.EntityColor(128, 128, 128);
  3. //внимание на Method.Override
  4. MaterialColor mColor = new MaterialColor(Method.Override, 1.0, entColor);
  5. //пустой конструктор MaterialMap(): текстура не используется
  6. MaterialDiffuseComponent mdc = new MaterialDiffuseComponent(mColor, new MaterialMap());
  7. Material mat = new Material();
  8. //минимальный набор свойств и можно добавлять материал в MaterialDictionary
  9. mat.Name = "Test";
  10. mat.Diffuse = mdc;

Правда, заметил некоторые тормоза, при открытии материала в редакторе материалов.
Предполагаю, что в этот момент "дописываются" не установленные параметры свойств.
Но, сами 3d-тела раскрашиваются на ура.
Название: Re: Цвет Material
Отправлено: Александр Ривилис от 07-03-2014, 15:09:00
Извини. Я пропустил вопрос.