Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: Дмитрий Загорулькин от 02-11-2020, 19:47:42
-
Понадобилось мне получить зеркальное отображение нескольких объектов в чертеже. Нашёл пример кода: https://www.keanw.com/2008/10/mirroring-autoc.html. Всё очевидно и просто - создаётся копия-клон (методом Clone), к ней применяется матрица преобразования. Но, как оказалось, с динамическими блоками этот механизм работает с полной потерей динамики! Вместо ожидаемого, получается вставка анонимного блока. Как выяснилось, так работает метод Clone на динамических блоках - он получает "снимок" текущего состояния динамического блока в виде анонимного блока и создаёт его копию! Возможно, для динамических блоков есть какой-то свой собственный способ копироваться? Бегло погуглил - ничего пока не нашёл толкового...
-
Возможно, для динамических блоков есть какой-то свой собственный способ копироваться?
Нет. Нужно делать новую вставку динамического блока, применять параметры из вставки оригинала и потом его зеркалить. Другого способа я не вижу.
-
Охохо... Ну ладно, в моём случае это не критично, т.к. я мало того, что исходные объекты (которые зеркалятся) программно создаю, так и зеркалить мне надо вертикально - слева-направо. Т.е. я просто программно создам ещё один такой блок в симметричной точке и задам ему Scale.X = -1. Но в общем случае эта задача ох как непроста! Если зеркалить относительно произвольной линии, заранее неизвестный блок с динамическими параметрами различного типа, да с атрибутами...