Тема: Как программно расширить линию?
как програмно расширить линию?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Как программно расширить линию?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
> Сергей
Что такое расширить - это изменить ее ширину или длину? И что такое линия - в AutoCAD такого понятия нет - это или LINE, или POLYLINE, или LWPOLYLINE, или XLINE. Не для всех из них можно изменить ширину, для XLINE нельзя изменить длину (она бесконечная). А вообще посмотри методы доступные для той линии, которую ты имеешь в виду. Что-нибудь полезное там для себя почерпнешь.
Я имел ввиду програмно увеличить длину LINE, так как это делается с помощью команды расширить (extend)на панели инструментов модификация (--/)
> Сергей
Команды расширить нет - есть команда удлинить (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
Вот и все.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Как программно расширить линию?
Форум работает на PunBB, при поддержке Informer Technologies, Inc