2017-01-30 19 views
0

Что я хочу сделать, это обрезать некоторые полилинии, которые сохраняются как VLA-OBJECTS, нет никаких проблем при их преобразовании в Entities, но то, что я нахожу графически, это обрезать изображение в следующим образом:Trim VLA-OBJECTS Outside Circles автоматически, не выбирая ничего

enter image description here

enter image description here

так как вы можете видеть, что я хочу, чтобы обрезать все из синих линий за пределами красных кругов по углам, и я хочу, чтобы он автоматически без выбора ничего. Для этой цели я сохранил круг как VLA-OBJECT. Голубые полилинии как независимые VLA-OBJECTS, центры кругов, на самом деле все на первом изображении хранится в памяти как VLA-OBJECT. Поэтому мне было интересно, можете ли вы предложить любую процедуру lisp, чтобы сделать это автоматически ?. Я думал об использовании команды Break или команды Extend, но я не могу найти реального решения. Спасибо заранее.

ответ

1

У меня нет времени для подготовки рабочего образца кода, но я могу показать вам путь. Я попытался бы сделать так:

Вы можете найти пересечения кругов и линий.

(vlax-invoke-method circle 'IntersectWith BlueLine acExtendNone) 

перерыв каждый синяя линия этой

(foreach line BlueLines 
    (command "_break" line pt pt) ; where pt is point returned by IntersectWith 
) 

и последний шаг, чтобы проверить, все ли объекты, созданные _break внутри или снаружи кругов.

У вас нет доступа к объектам, созданным _break. чтобы получить их, вы можете использовать (entlast) перед командой _break. и (entnext) после этого.

 Смежные вопросы

  • Нет связанных вопросов^_^