Название материала солида

Автор Тема: Название материала солида  (Прочитано 5196 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн avcАвтор темы

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Нужно получить имя материала, присвоенного солиду. Свойство Material всегда пустое (вообще не понятно зачем оно). Свойство MaterialId указывает на нужный материал, но есть засада: как правило там "странные" материалы с именами Global, ByLayer, ByBlock. Не предоставляю как понять, что это не настоящее имя материала - ведь эти названия зависят от локализации. У слоев есть MaterialId - наверно разберусь. ByBlock для объекта вне блока наверно всегда будет присваивать Global, так? А сам Global - может быть переименован? Может есть какой-то универсальный способ находить действующий материал? Интересует только имя материала, текстуры всякие не имеют значения.
Спасибо.


Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Название материала солида
« Ответ #2 : 19-05-2016, 16:24:01 »
Свойство MaterialId указывает на нужный материал, но есть засада: как правило там "странные" материалы с именами Global, ByLayer, ByBlock. Не предоставляю как понять, что это не настоящее имя материала - ведь эти названия зависят от локализации.
Зависят. Но сравнить полученное имя и "локализованное имя" для ByBlock и ByLayer - не проблема. Для этого есть метод:
Код - C# [Выбрать]
  1. Autodesk.AutoCAD.Runtime.Utilities.GetReservedString(ReservedStringEnumType reservedType,  bool bGetLocalized);
передаёшь ему reservedType == ReservedStringEnumType.ByBlock (или ReservedStringEnumType.ByLayer) и bGetLocalized == true и получаешь соответствующее локализованное имя.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн avcАвтор темы

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Re: Название материала солида
« Ответ #3 : 19-05-2016, 16:39:28 »
Александр Пекшев aka Modis, не-а. Там просто материал грани извлекается. У меня правда не получилось так извлечь - ругается что IsDeleted при получении MaterialId, но даже если получится - наверняка на выходе будет тот же "ByLayer"
Александр Ривилис, а вот это уже очень даже пригодится. Тут и стили ячеек таблицы есть! Спасибо!