Тема: Как программно расширить линию?

как програмно расширить линию?

Re: Как программно расширить линию?

> Сергей
Что такое расширить - это изменить ее ширину или длину? И что такое линия - в AutoCAD такого понятия нет - это или LINE, или POLYLINE, или LWPOLYLINE, или XLINE. Не для всех из них можно изменить ширину, для XLINE нельзя изменить длину (она бесконечная). А вообще посмотри методы доступные для той линии, которую ты имеешь в виду. Что-нибудь полезное там для себя почерпнешь.

Re: Как программно расширить линию?

Я имел ввиду програмно увеличить длину LINE, так как это делается с помощью команды расширить (extend)на панели инструментов модификация (--/)

Re: Как программно расширить линию?

> Сергей
Команды расширить нет - есть команда удлинить (extend). Опишу алгоритм, который тебе нужно будет реализовать, чтобы эмулировать эту команду при помощи VBA:
1) Выбираем граничную кромку - для простоты только одну.
2) Выбираем удлиняемый отрезок.
3) Для отрезка находим его начало и конец:

Dim ln_start As Variant
Dim ln_end As Variant
ln_start = ln.StartPoint
ln_end = ln.EndPoint

4) Находим точку пересечения этого отрезка с примитивом граничной кромки при помощи IntersectWith (поищи в Help'е пример Example_IntersectWith):

Dim ent As AcadEntity ' примитив граничной кромки
Dim inter_pts As Variant ' точки пересечения
inter_pts = ln.IntersectWith(ent, acExtendThisEntity)

5) Если точек пересечения нет - сообщаем об этом.
6) Анализируем точки пересечения и меняем для отрезка или StartPoint или EndPoint
Вот и все.