Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: valtur1983 от 12-11-2021, 17:34:32
-
Всем доброго вечера!
Макрос запускается в одном чертеже. Необходимо вставить в этот чертеж все элементы из другого чертежа. Порыскав на просторах инета понял, что проще всего вставлять один элемент (блок состоящий из всех элементов другого чертежа), а потом его взорвать. Вопрос в том, как можно создать определение блока, в который будут входить все примитивы другого чертежа), не открывая его вручную.
-
Порыскав на просторах инета понял, что проще всего вставлять один элемент (блок состоящий из всех элементов другого чертежа), а потом его взорвать.
Нет. Проще и правильнее всего использовать Database.WblockCloneObjects
-
Вопрос в том, как можно создать определение блока, в который будут входить все примитивы другого чертежа), не открывая его вручную.
Он уже создан - это блок ModelSpace
-
Что то не пойму.
Я инженер по автокаду, с прошлым программным знанием, но по элементам автокада чуть больше чем ноль. и для меня блок это определение блока и вставка блока.
ModelSpace, как я понял, это пространство модели со всеми примитивами.
Мне надо вставить все примитивы в определенную точку.
Не сочтите за наглость, но можно ли ссылку или часть кода как реализовать это в моем макросе
-
WblockCloneObjects я как раз таки и использую, но для этот надо сформировать определение блока из всех примитивов чертежа донора
-
ModelSpace, как я понял, это пространство модели со всеми примитивами.
И она же является определением блока (класс BlockTableRecord)
-
WblockCloneObjects я как раз таки и использую, но для этот надо сформировать определение блока из всех примитивов чертежа донора
Зачем? Достаточно в коллекцию (ObjectIdCollection) добавить все примитивы из ModelSpace и выполнить WblockCloneObjects с указанием нового владельца ModelSpace второго чертежа.
-
Спасибо Александр, все получилось!
Меня, как инженера, все время сбивает с толку слово Block в процедурах и свойствах. Я интерпретирую его в понятие блока автокада. Так и с методом WblockCloneObjects. Думал он клонирует именно блок.
Следующий вопрос. Можно ли задать стартовую точку (смещение по X, Y) вставляемых элементов?
-
Следующий вопрос. Можно ли задать стартовую точку (смещение по X, Y) вставляемых элементов?
Один вопрос - одна тема.