Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: Константин А от 02-02-2018, 15:11:14
-
Добрый день.
Делаю плагин для AutoCAD.
Задача следующая:
Имеется набор чертежей в пространстве модели.
Плагин будет раскидывать чертежи (рамки) по отдельным файлам dwg, и публиковать в pdf.
Рассматриваю, такую логику, выбираем рамки, создаем копию документа по кол-ву рамок, в каждом документе удаляем все объекты кроме соответствующей рамки и объектов в её границах, и так в каждом документе.
Проблема в следующем:
Перебор всех объектов (Entity), с проверкой координат (в нашей рамке объект или нет), (удаляем все что за границами рамки), занимает много времени.
Может у Вас есть идеи, или может есть способ программного выделения области (дабы не перебирать все объекты а получить набор выделения)?
Благодарю!
-
Рассматриваю, такую логику, выбираем рамки, создаем копию документа по кол-ву рамок, в каждом документе удаляем все объекты кроме соответствующей рамки и объектов в её границах, и так в каждом документе.
Не понял зачем так. Достаточно для каждой рамки отобрать всё что внутри неё и использовать метод Database.Wblock для создания нового файла, в котором только объекты внутри рамки.
-
Достаточно для каждой рамки отобрать всё что внутри неё
Процесс отбора объектов и занимает относительно много времени, ибо набор объектов неизвестен, приходиться проходить по всем объектам пространства модели и проверять координаты.
-
Можно воспользоваться Editor.SelectWindow или Editor.SelectCrossingWindow, указав диагональные точки рамки. При этом точки должны быть видны на экране.
-
Можно воспользоваться Editor.SelectWindow или Editor.SelectCrossingWindow, указав диагональные точки рамки. При этом точки должны быть видны на экране.
То что нужно.
Благодарю!