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

Статьи => Опубликованные статьи => Тема начата: Александр Ривилис от 31-07-2020, 14:36:59

Название: RealDWG: Получение информации о цвете граней твердых тел
Отправлено: Александр Ривилис от 31-07-2020, 14:36:59
RealDWG: Получение информации о цвете граней твердых тел (https://adn-cis.org/realdwg-poluchenie-informaczii-o-czvete-granej-tverdyix-tel.html)
Название: Re: RealDWG: Получение информации о цвете граней твердых тел
Отправлено: avc от 31-07-2020, 15:04:28
Просто прокомментирую:
1. Строка 40 - имелся ввиду var вместо List> ?
2. Строка 26 - требуется using т.к. создается новый объект, который надо непременно диспозить до уничтожения brep. Иначе Автокад вылетает с фаталом. Не сразу, после десятков вызовов, но гарантированно. По крайней мере старые версии Автокада.
3. Почему собственно RealDWG? Весь код рабочий для запуска под Автокадом.
4. Большинство команд моделирования сбивают раскраску солида. Поэтому присваивать цвета граням можно только в самом конце работы.
5. Во всех версиях Автокад есть баг: Если раскрасить грани солида, то Автокад не сможет нормально выбирать грани. кликаешь по одной, выбирается совсем другая. Спасает только переключение в визуальный стиль 2D-каркас. Тема обсуждалась на форумах, но воз и ныне там...
6. В Brep баг с идентификаторами граней (по мимо миллиона других багов). Требуется обязательно сохранить солид в БД и получить brep через полный путь. Клоны солидов и новые солиды пути не имеют. brep с ними не работает (не даст id грани). Но идентификаторы граней у них тоже есть, команды типа GetSubentityColor прекрасно работают. Обидно, однако...
Название: Re: RealDWG: Получение информации о цвете граней твердых тел
Отправлено: Александр Ривилис от 31-07-2020, 15:15:41
1. Строка 40 - имелся ввиду var вместо List> ?
Спасибо. Не заметил эту ошибку у автора. Исправил на List<KeyValuePair<Color,SubentityId>> . Видимо в оригинале что-то "съело" угловые скобки.
2. Строка 26 - требуется using т.к. создается новый объект, который надо непременно диспозить до уничтожения brep.
Для RealDwg думаю это не актуально.
3. Почему собственно RealDWG? Весь код рабочий для запуска под Автокадом.
Это вопрос к автору статьи - наверняка был создан case, на который он и отвечал. А там было указано, что используется RealDWG. Хотя согласен, что многие коды, для RealDWG прекрасно работают и в самом AutoCAD.
4. Большинство команд моделирования сбивают раскраску солида. Поэтому присваивать цвета граням можно только в самом конце работы.
Программа не присваивает цвета, а считывает заданные.
5) и 6) не комментирую.