Использование AutoLISP для выбора нескольких копий объекта по одной

Я пробую AutoLISP в первый раз. В моем чертеже AutoCAD у меня есть около 300 копий объекта, разбросанных по разным местам. Я хочу отразить каждый объект вокруг фиксированной оси в середине объекта.

Первым препятствием, которое я получаю, является выбор каждой копии объекта по одной для выполнения операции зеркального отображения. Может ли кто-нибудь помочь мне с этим? Является ли это возможным?


person Mohit Singh    schedule 03.06.2020    source источник


Ответы (1)


Вы можете получить выбор, используя AutoLISP ssget с соответствующей строкой режима и аргументом списка фильтров, позволяющим выбирать объекты, свойства которых соответствуют вашим критериям выбора.

Если ваш выбор должен быть автоматизирован без ввода данных пользователем (например, с использованием строки режима X для запроса к базе данных чертежей), вам потребуется свойство, с помощью которого можно отличать целевые объекты от других объектов на чертеже — это может зависеть от тип объекта, который вы хотите выбрать.

Например, вы можете отфильтровать все объекты одного типа, используя группу DXF 0; в том же макете с использованием группы DXF 410; размещение на том же слое с использованием группы DXF 8; или по другим свойствам, таким как цвет, тип линии или толщина линии.

Фильтры, основанные на геометрии объекта, будут зависеть от типа объекта, на который вы хотите нацелиться, например, набор кругов одного радиуса может быть получен путем фильтрации группы DXF 40; или стандартные (нединамические) блоки с тем же именем, использующие группу DXF 2.

После получения вашего выбора вам нужно будет выполнить итерацию по выбору, чтобы операцию зеркалирования можно было выполнить для каждого объекта отдельно (поскольку ось зеркала будет разной для каждого объекта в выборе). Для этого вы можете выбрать один из методов, описанных в моем руководстве по обработке набора выбора.

person Lee Mac    schedule 03.06.2020
comment
Большое спасибо, я попробую. - person Mohit Singh; 03.06.2020