Конвертация сплайнов и прочих кривых в полилинии.
Тем не менее, в ряде задач, преобразование сплайнов (эллипсов и т.п.) в полилинии является необходимым условием для дальнейшего редактирования чертежа. В этом случае реализованная в программе возможность преобразовывать кривые в полилинии с одновременной оптимизацией совместно с другими объектами является весьма полезной и эффективной опцией.
Для активации конвертации сплайнов и прочих кривых в полилинии необходимо в настройках программы (в диалоговом окне «Settings» («Настройки») вкладка «Polylines» («Полилинии») выбрать требуемые для конвертации объекты см. Рис. 1. (по умолчанию активированы лишь так называемые «базовые объекты»: линии, дуги, окружности).
![]() |
| Рис. 1 |
Предварительно убедитесь, что в настройках во вкладке «Polylines» («Полилинии») включена опция «Smart convertion» («Интеллектуальный метод») см. рис 2:
![]() |
| Рис. 2 |
Подробнее о настройках программы см. в разделе «Settings» («Настройки»).
Помните также, что при включенной опции «Optimization of blocks» («Оптимизация блоков») во вкладке «Optimization» («Оптимизация») программа преобразует объекты в полилинии внутри выбранных блоков.
| Характерные особенности работы программы TotalPurge |
Рассмотрим преобразование сплайна показанного на рис. 3 в полилинию:
![]() |
| Рис. 3 |
Простая конвертация сплайна.
При данном способе конвертации, свойственном подавляющему большенству программ-конвертеров, преобразованный сплайн представляет из себя аппроксимирующую полилинию с некоторым количеством вершин (vertex) см. Рис. 4.
![]() |
| Рис. 4 |
Вершины распологаются по контуру сплайна с равномерным шагом. Чем меньше шаг тем больше вершин и тем точнее полилиния повторяет исходный контур сплайна. Однако, полученная полилиния имеет существенный недостаток — большое количество вершин при сравнительно малом шаге. В свою очередь это приводит к увеличению размера чертежа.
Оптимизированная конвертация сплайна.
На рис. 5 показан вариант оптимизированной полилилинии, полученной вследствие преобразования сплайна программой TotalPurge.
![]() |
| Рис. 5 |
Как видно из рисунка оптимизированной полилинии вершины располагаются на ней с неравномерным шагом. В том месте где формы контура исходного сплайна были близки к прямолиненым шаг расположения вершин имеет большие значения. И наооборот, где участки имеют наиболее выраженные изгибы вершины полилилинии располагаются ближе друг к другу (с меньшим шагом).
Такая оптимизированная полилиния вследствие разреженного расположения вершин расположенных на прямолинейных участках занимает меньше места в чертеже.
Значение минимального шага аппроксимации задается в поле «Approximation step» («Шаг аппроксимации») см. Рис. 1.
Два типа аппроксимации.
- Аппроксимация дугами.
- Аппроксимация линиями.
![]() |
| Рис. 6 |
На Рис. 7 показан фрагмент кривой преобразованный двумя указанными способами (аппроксимация дугами и линиями).
![]() |
| Рис. 7 |
Как аппроксимировать дугу в автокаде
Для изменения формы полилиний, кроме общих операций редактирования, предусмотрены также дополнительные операции. Кроме того, можно объединять отдельные полилинии в одну.
Редактирование полилиний заключается в их замыкании и размыкании, а также в перемещении, добавлении и удалении отдельных вершин. Имеется возможность выпрямления полилинии между двумя вершинами, настройки типа линии так, что до и после каждой вершины рисуются штрихи. Можно задать единую ширину для всей полилинии или управлять шириной для каждого сегмента. Полилинии можно также линейно аппроксимировать в сплайновые кривые.
Сегменты объединяемых полилиний
К разомкнутой полилинии можно присоединить отрезок, дугу или другую полилинию, если их конечные точки совпадают. Если конечные точки не совпадают, но расстояние между ними не превышает некоторого критического значения, то объединение выполняется с помощью обрезки, удлинения или создания нового сегмента.
Свойства объединенных полилиний
Полилиния, полученная в результате объединения нескольких объектов с различными свойствами, наследует свойства первого выбранного объекта. Если две линии примыкают к полилинии в форме буквы Y, выбирается одна из линий и она присоединяется к полилинии. Данное объединение также приводит к тому, что программа неявно отменяет сглаживание как исходной полилинии, так и присоединяемой. После присоединения полученную полилинию можно сгладить снова.
Дополнительные опции редактирования полилиний
Для редактирования полилиний, кроме общих операций редактирования, применяемых ко многим объектам, предусмотрены также дополнительные опции редактирования и объединения, реализуемые командой ПОЛРЕД.
- «Замкнуть». Создание замыкающего сегмента полилинии, соединяющего его последний сегмент с первым. Полилиния считается открытой, пока ее не замкнуть с помощью параметра «Замкнуть».
- «Соединить». Добавление линий, дуг или полилиний к концу открытой полилинии и отмена сглаживания для полилиний, сглаженных дугой. Конец добавляемого объекта должен точно совпадать с одной из конечных точек полилинии.
- «Ширина». Задание новой единой ширины для всей полилинии. Можно воспользоваться также подопцией «Ширина» опции «Вершина» для изменения начальной и конечной ширины отдельных сегментов.


- Обрезка и удлинение объектов
- Разрыв и соединение объектов
- Выбранный объект — не полилиния. Сделать его полилинией? Отображается, если выбранный объект не является полилинией. Введите д для преобразования объекта в полилинию или н для отмены выбора.
- Точность. Отображается при выборе сплайна и преобразовании его в полилинию. Данное значение позволяет определить, насколько точно полученная полилиния будет соответствовать исходному сплайну. Введите целое число в диапазоне от 0 до 99.
- Преобразовывать линии, дуги и сплайны в полилинии? Отображается, если какой-либо из выбранных объектов является линией, дугой или сплайном. Введите д для преобразования объектов в полилинию или н для отмены выбора.
- Задайте точность для преобразования сплайна. Отображается при выполнении преобразования объектов в полилинии, если какой-либо из выбранных объектов является сплайном. Данное значение позволяет определить, насколько точно полученная полилиния будет соответствовать исходному сплайну. Введите целое число в диапазоне от 0 до 99. Введенное значение точности относится ко всем сплайнам в наборе объектов.
- Построение дуги по трем точкам;
- Построение дуги по точкам начала, центра и конца;
- Построение дуги по точкам начала, центра и центральному углу;
- Построение дуги по точкам начала, конца и центральному углу;
- Редактирование дуги;
- Построение дуги программным путем.
ПОЛРЕД (команда)
Редактирование полилинии и объектов, которые необходимо присоединить к ней, а также связанных объектов.

найти
Как правило, команда ПОЛРЕД используется для объединения 2D полилиний, преобразования отрезков и дуг в 2D полилинии и для преобразования полилиний в кривые, используемые для аппроксимации В-сплайнов (сглаженных сплайнами полилиний).
В зависимости от типа выбранного для редактирования объекта отображаются различные запросы.
При выборе линии, дуги или сплайна появится запрос на преобразование этого объекта в полилинию. На это преобразование оказывают влияние несколько системных переменных. Системная переменная PLINECONVERTMODE определяет порядок создания полилиний: с помощью линейных сегментов или сегментов дуг. Если значение системной переменной PEDITACCEPT равно 1, то такой запрос не выдается и выбранный объект автоматически преобразуется в полилинию. Системная переменная DELOBJ определяет, будет ли сохранена исходная геометрия.
Отображаются следующие запросы.
Прим.: Высокое значение точности может привести к снижению производительности.
Понятия, связанные с данным
Задачи, связанные с данной
Как нарисовать дугу в Автокаде.
Как нарисовать дугу в Автокаде? Для этого в программе Автокад существует несколько способов.
В этом уроке мы рассмотрим:
Выбор способа построение дугу зависит от конкретных условий чертежа.
Построение дуги по трем точкам.
Если на чертеже имеются характерные три точки, через которые нужно провести дугу. См. Рис. 1

Рис. 1. Три точки.
Выбирают построение дуги по трем точкам. Это основная команда построение дуги, которая стоит по умолчанию. Чтобы ее запустить, на ленте выбираем вкладку « Главная » и щелкаем по кнопке « Дуга 3 точки ».

Рис. 2. Команда «Дуга 3 точки»
Туже самую команду можно запустить, если набрать в командной строке Д (или _arc ) и нажать < Enter >.
Появиться запрос: « Начальная точка дуги или [Центр]: »
Указываем на 1-ю точку и щелкаем левую кнопку мыши.
Затем на запрос: « Вторая точка дуги или [Центр/Конец]: »
Выбираем 2-ю точку
На запрос: « Конечная точка дуги: »
Выбираем 3-ю точку.
AutoCAD построит дугу. См. Рис. 3.

Рис. 3. Дуга построенная по 3 точкам.
Построение дуги по точкам начала, центра и конца дуги.
Нередко бывает, что дугу удобнее строить по точкам начала, центра и конца дуги. См. Рис. 4.

Рис. 4. Характерные точки.
На ленте, на вкладке « Главная » щелкаем по стрелке под надписью «Дуга». И в раскрывшемся списке выбираем строку: « Начало, центр, конец ».

Рис. 5. Команда «Дуга Начало, центр, конец».
На запрос: « Начальная точка дуги или [Центр] :»
Указываем на 1-ю точку и щелкаем левую кнопку мыши.
Затем на запрос: « Вторая точка дуги или [Центр/Конец]: _c Центр дуги :»
Указываем на центр дуги (точку «Ц»)
На запрос: « Конечная точка дуги или [Угол/Длина хорды]: »
Указываем 2-ю точку.
AutoCAD построит дугу. Радиус дуги равен расстоянию между точками 1 и Ц . См. Рис. 6.

Рис. 6. Дуга построенная по точкам начала, центра и конца дуги
Обратите внимание, что в начале, была запущена основная команда _acr .
Затем при запросе второй точки, Автокад сам автоматически выбрал опцию [ Центр ] из квадратных скобок _с
От сюда вытекает, другой способ построение дуги по точкам начала, центра и конца:
Запускаем основную команду _arc (по трем точкам).
На запрос: « Начальная точка дуги или [Центр]: »
Указываем точку 3.
Затем на запрос: « Вторая точка дуги или [Центр/Конец]: »
Щелкаем по опции [ Центр ] или в водим Ц и нажимаем
( вместо Ц можно было использовать _c , которая работает в любой версии AutoCAD. Ц работает только в русскоязычной версии.)
Появится запрос: « Центр дуги: »
Указываем точку «Ц» (центр дуги).
На запрос: « Конечная точка дуги или [Угол/Длина хорды]: »
Указываем точку 4.
AutoCAD построит дугу. Радиус дуги равен расстоянию между точками 3 и Ц . См. Рис. 7.

Рис. 7. Дуга построенная по точкам начала, центра и конца дуги
Обратите внимание, что дуга от начальной к конечной точки строится против часовой стрелки. Изменив последовательность указания этих точек, мы построим дугу с другой стороны от центра.
Построение дуги по точкам начала, центра и центральному углу.
Если Вы знаете угол поворота дуги. Ее можно построить по началу, центру и углу поворота.
На ленте, на вкладке « Главная » щелкаем по стрелке под надписью «Дуга». И в раскрывшемся списке выбираем строку: « Начало, центр, угол ». См. Рис. 8.

Рис. 8. Команда «Дуга Начало, центр, угол»
На запрос: « Начальная точка дуги или [Центр]: »
Указываем на 1-ю точку и щелкаем левую кнопку мыши.
Затем на запрос: « Вторая точка дуги или [Центр/Конец]: _c Центр дуги: »
Указываем на центр дуги (точку «Ц»)
На запрос: « Конечная точка дуги или [Угол/Длина хорды]: _a Центральный угол: »
Вводим 90 и нажимаем < Enter >.
AutoCAD построит дугу. Радиус дуги равен расстоянию между точками 1 и Ц . См. Рис. 9.

Рис. 9. Дуга построенная по точкам начала, центра и центральному углу
Внимательно изучив запросы в командной строке, мы без труда поймем какие опции и когда нам нужно выбирать, чтобы при запуске основной команды _arc проделать те же операции. Также аналогичную дугу мы можем построить по началу, концу и углу поворота дуги.
Построение дуги по точкам начала, конца и центральному углу.
На ленте, на вкладке « Главная » щелкаем по стрелке под надписью «Дуга». И в раскрывшемся списке выбираем строку: « Начало, центр, угол ».

Рис. 10. Команда «Дуга Начало, конец, угол»
На запрос: « Начальная точка дуги или [Центр]: »
Указываем на 1-ю точку и щелкаем левую кнопку мыши.
Затем на запрос: » Вторая точка дуги или [Центр/Конец]: _e Конечная точка дуги: »
Указываем точку 2.
На запрос:» Центр дуги или [Угол/Направление/Радиус]: _a Центральный угол: »
Вводим 90 и нажимаем < Enter >.
AutoCAD построит дугу. См. Рис. 11.

Рис. 11. Дуга построенная по точкам начала, конца и центральному углу
Если нужно, через эти же точки, построить дугу в половину окружности, центральный угол задаем равным 180 . См. Рис. 12.

Рис. 12. Дуга построенная по точкам начала, конца и центральному углу
Остальные способы построения дуги, на мой взгляд, используются реже. Поэтому, оставим их для самостоятельного изучения.
Редактирование дуги.
Иногда, когда дуга построена неверно, бывает легче ее отредактировать, чем удалять и строить новую. Давайте посмотрим, что мы можем сделать с уже существующей дугой:
Перемещение дуги за центральную ручку.
Чтобы переместить дугу на заданное расстояние (например на 200), щелкните по ней, так чтобы появились ручки . См. Рис. 13.

Рис. 13. Ручки дуги.
Затем щелкните по ручке расположенной в центре, так чтобы она стала красной . Отведите курсор мыши (дугу) в сторону желаемого перемещения. Наберите с клавиатуры 200 и нажмите < Enter >. См. Рис. 14.

Рис. 14. Перемещение за центральную ручку.
Дуга переместится в заданном направлении на заданное расстояние.
Перемещение дуги за другую ручку.
Чтобы, переместить дугу за другую ручку (не за центральную), нужно щелкнуть по ней так, чтобы она стала красной . Затем нажмите < Enter >(или пробел), переместите дугу в новое место и снова нажмите < Enter >. Дуга поменяет свое местоположение. См. Рис. 15.

Рис. 15. Перемещение за другую ручку.
Перемещение средней точки дуги.
Чтобы, изменить положение средней точки дуги, при сохранении положения крайних точек, щелкните по ней, так чтобы появились ручки. Затем, щелкните по средней точки так, чтобы она стала красной , измените ее местоположение и нажмите левую кнопку мыши. Например укажите точку 5 . См. рис. 16.

Рис. 16. Перемещение средней точки дуги.
Новая дуга будет проходить, через точки 1, 5, 3 . См. Рис. 17.

Рис. 17. Новая дуга.
Изменение радиуса дуги.
Если Вам нужно изменить радиус дуги и при этом сохранить величину центрального угла, то щелкните по ней, так чтобы появились ручки. Затем подведите указатель мыши к средней точки , и оставляйте его там пока не появятся список, в котором нужно выбрать « Радиус ». См. Рис.18.

Рис. 18. Список опций.
Затем, измените положение ручки, например, укажите точка 5 . AutoCAD построит дугу с новым радиусом. См. Рис. 19.

Рис. 19. Изменение радиуса дуги.
Изменение положение всех трех точек дуги.
Давайте отредактируем дугу, проходящую через точки 1,2,3 так, чтобы она проходила через точки 4,5,6 .
Щелкните по ней, так чтобы появились ручки .
Затем, выберете ручку в точку 1 так, чтобы она стала красной, переместите ее и выберите точку 4 . См. Рис. 20.

Рис. 20. Перемещение крайней ручки.
Далее, выберете ручку в точке 2 и переместите ее в точку 6 . См. Рис. 21.

Рис. 21. Перемещение крайней ручки.
Выберете среднюю ручку и укажите точку 5 . См. Рис. 22.

Рис. 22. Перемещение средней ручки.
Новая дуга проходит через точки 4, 5, 6 . См. Рис. 23.

Рис.23. Новая дуга.
Построение дуги программным путем.
Для тех, кто хочет создавать свои собственные команды в Автокад, мы рассмотрим, как построить дугу при помощи языка программирования LISP.
Построение дуги при помощи функции command.
Запустите редактор Visual LISP . В командной строке наберите VLIDE (илиVLISP) и нажмите < Enter >. См. Рис. 24.

Рис. 24. Команда VLIDE.
Откроется редактор Visual LISP.
В нем создаем новый файл и набираем следующие строки.
Для того, чтобы построить дугу по трем точка:
Запрашиваем координаты первой точки:
(setq p1 (getpoint "\nУкажите первую точку дуги:"))
getpoint – функция, которая просит пользователя задать координаты точки; "\nУкажите первую точку дуги:"– текст запроса, который увидеть пользователь; setq – функция, которая сохраняет заданные координаты точки в переменной р1.
Запрашиваем координаты второй точки относительно первой р1 :
(setq p2 (getpoint p1 "\nУкажите вторую точку дуги:"))
(command "_arc" p1 p2 (getpoint p2))
command – функция которая имитирует командную строку; "_arc" – стандартная команда Автокад (Дуга); р1 – переменная, в которой хранятся координаты первой точки дуги; р2 – переменная, в которой хранятся координаты второй точки дуги; (getpoint p2) – запрос координат третей точки относительно второй.
Для того, чтобы построить дугу точкам начала, центра, и конца дуги:
Запрашиваем координаты первой точки:
(setq p1 (getpoint "\nУкажите первую точку дуги:"))
getpoint – функция, которая просит пользователя задать координаты точки; "\nУкажите первую точку дуги:"– текст запроса, который увидеть пользователь; setq – функция, которая сохраняет заданные координаты точки в переменной р1.
Запрашиваем координаты центра дуги относительно точки р1:
(setq p2 (getpoint p1 "\nУкажите центр дуги:"))
(command "_arc" p1 "_c" p2 (getpoint p2))
command – функция которая имитирует командную строку; "_arc" – стандартная команда Автокад (Дуга); р1 – переменная, в которой хранятся координаты первой точки дуги; "_c" – меняет запрос второй точки на запрос центра дуги; р2 – переменная, в которой хранятся координаты центра дуги; (getpoint p2) – запрос координат конечной точки дуги относительно центра.
Преобразуем программу в команду AutoCAD.
В начале программы добавим функцию defun , придумаем имя новой команды ( m_arс ) и перечисляем все временные переменные:
(defun c:m_arс (/ p1 p2)
) ; end_defun
В конце программы добавим закрывающую скобку.
В результате получаем. См. Рис. 25.

Рис. 25. Программа построения дуги.
Давайте, проверим, как работает программа:
Нажмите на кнопку « Загрузить активное окно редактора ».
Затем на кнопку перехода в AutoCAD .
Для проверки на нарисовал несколько отрезков. См. Рис. 26.

Рис. 26. Характерные точки.
Введите в командной строке: m_arc и нажмите < Enter >.
На запрос: «Укажите первую точку дуги:»
Укажите точку 1.
На запрос: « Укажите вторую точку дуги: »
Укажите точку 2.
На запрос: « Конечная точка дуги: »
Укажите точку 3.
Программа построит дугу , проходящую через точки 1, 2, 3 .
Затем, на запрос « Укажите первую точку дуги: »
Укажите точку 4.
На запрос: « Укажите центр дуги: »
Укажите точку Ц.
На запрос: « Конечная точка дуги или [Угол/Длина хорды]: »
Укажите точку 3.
Программа построит дугу , проходящую через точки 4, 3, с центром в точке Ц . См. Рис. 27.

(defun c:m_arc (/ p1 p2) ;По трем точкам (setq p1 (getpoint "\nУкажите первую точку дуги:")) (setq p2 (getpoint p1 "\nУкажите вторую точку дуги:")) (command "_arc" p1 p2 (getpoint p2))
;По точкам начала, центра, и конца дуги (setq p1 (getpoint "\nУкажите первую точку дуги:")) (setq p2 (getpoint p1 "\nУкажите центр дуги:")) (command "_arc" p1 "_c" p2 (getpoint p2)) ); end_defun
Построение дуги при помощи функций расширения языка LISP.
Дугу, также можно построить при помощи VLA функций, которые являются расширением языка LISP.
Для этого добавляем строку:
(vl-load-com)
Которая загружает функции расширения (Vla-функции).
Затем строки, которые помогут нам получить указатель на имя пространства модели:
Получаем указатель на программу AutoCAD:
(setq acad_application (vlax-get-acad-object))
Затем, указатель на активный документ:
(setq active_document (vla-get-activedocument acad_application))
И наконец, указатель на пространство модели
(setq model_space (vla-get-modelspace active_document))
Vla функция построение дуги выглядит следующим образом:
(vla-addarc )
- место , где будет построена дуга; – координаты центра дуги, представленные в виде Variant; -радиус дуги; - начальный угол наклона к оси Х в радианах; - конечный угол наклона к оси Х в радианах.
Давайте пользователя попросим указать центр дуги:
(setq p1 (getpoint "\nУкажите центр дуги:"))
Попросим задать радиус:
(setq R (getint "\nЗадайте радиус дуги:"))
Построим дугу, произвольным образом, задав начальный и конечный углы:
(vla-addarc model_space (vlax-3d-point p1) R (/ pi -4) (/ pi 2))
model_space - место , где будет построена дуга (пространство модели); p1 – переменная, в которой хранятся координаты центра дуги, представленные в виде Variant; (vlax-3d-point p1) – функция vlax-3d-point преобразует координаты p1 к особому типу Variant; R - переменная, в которой хранятся радиус дуги; (/ pi -4)- начальный угол наклона к оси Х -45 градусов; (/ pi 2)- конечный угол наклона к оси Х 90 градусов.
Углы между различными направлениями и осью Х в градусах и радианах Вы можете на рис. 28.

Рис. 28. Углы наклона прямой.
Построим вторую дугу с радиусом на 150 единиц больше, чем первая:
(vla-addarc model_space (vlax-3d-point p1) (+ R 150) (/ pi -4) (/ pi 2))
Преобразуем программу в команду AutoCAD.
В начале программы добавим функцию defun , придумаем имя новой команды m_arс2 и перечисляем все временные переменные:
(defun c:m_arс2 (/ p1 R) ) ; end_defun
В конце программы добавим закрывающую скобку.
В результате получим. См. Рис. 29.

Рис. 29. Программа с Vla функциями.
Нажмите на кнопку « Загрузить активное окно редактора ».
Затем на кнопку перехода в AutoCAD .
В командной строке наберите команду m_arс2 и нажмите < Enter >.
На запрос: «Укажите центр дуги:»
Укажите любую точку (я указал крайнюю точку отрезка).
На запрос: «Задайте радиус дуги:»
Введите, например, 150 и нажмите < Enter >.
Новая команда построит две дуги. Одну радиусом 150 , другую радиусом 300 . См. Рис. 30.

Рис. 30. Две дуги.
(defun c:m_arc2 (/ p1 R) (vl-load-com) ; загружаем функции расширения (setq acad_object (vlax-get-acad-object)) (setq active_document (vla-get-activedocument acad_object)) (setq model_space (vla-get-modelspace active_document))
(setq p1 (getpoint "\nУкажите центр дуги:")) (setq R (getint "\nЗадайте радиус дуги:"))
(vla-addarc model_space (vlax-3d-point p1) R (/ pi -4) (/ pi 2)) (vla-addarc model_space (vlax-3d-point p1) (+ R 150) (/ pi -4) (/ pi 2)) ); end_defun
Свои, созданные, новые команды можно запускать также, как стандартные команды Автокад.
Для этого нужно сохранить файл программы, добавить его в список автоматической загрузки и создать для новой команды кнопку запуска.
Как это сделать рассмотрено в уроках:
На этом наш урок окончен. В нем рассказывалось Как нарисовать дугу в Автокаде.
Были рассмотрены следующие вопросы:
- Построение дуги по трем точкам;
- Построение дуги по точкам начала, центра и конца;
- Построение дуги по точкам начала, центра и центральному углу;
- Построение дуги по точкам начала, конца и центральному углу;
- Редактирование дуги;
- Построение дуги программным путем.
Если у Вас появились вопросы, задавайте их в комментариях.
Если Вы нашли что-то полезное на моем сайте не забудьте порекомендовать статью в социальных сетях.
Пишите в комментариях или мне на почту Ваши пожелания о том, какие статьи Вы хотели бы увидеть на моем сайте.
Хотите получать информацию о выходе новых статей. Оформляйте подписку.






