среда, 13 августа 2014 г.

Три типа полилиний в AutoCAD

Добрый день!
Очередной пост, навеянный вопросами пользователей и читателей блога. Предлагаю рассмотреть сегодня тему: Какие типы полилиний существуют в AutoCAD?

Всего в AutoCAD существуют три типа полилиний:
  • 2D-полилиния
  • полилиния
  • 3D-полилиния
Первые два типа всегда плоские, третий тип - может быть и плоским, и трехмерным. Подробнее рассмотрим каждый тип.

2D-полилиния и Полилиния



Исторически сложилось так, что c самых первых версий AutoCAD в нем присутствовал примитив Полилиния (POLYLINE), который создавался с помощью команды Плиния (_PLINE). Несмотря на то, что эта полилиния могла состоять из отрезков и дуг и была единым целым, каждый из сегментов полилинии представлял из себя отдельный элемент, имел свое внутреннее имя и характерные точки. Т.е. полилиния, состоящая из трех линейных объектов, сохранялась в памяти чертежа как пять разных объектов (четыре вершины и заголовок полилинии), при этом пользователь работал с ней как с единым целым объектом.

В AutoCAD Release 12 появился новый тип полилинии - оптимизированная (LWPOLYLINE от Lightweight Polyline), которая, в отличие от обычной полилинии, состояла уже не из набора объектов, а представляла из себя один объект. При этом создается она также командой Плиния (_PLINE). Новая оптимизированная полилиния позволила сократить размеры чертежей, которые включали в себя множество контуров или других сложных объектов, отрисованных с помощью полилиний. Также выросла скорость обработки таких чертежей и повысилась стабильность работы.

С тех пор в AutoCAD существуют два вида плоских полилиний, которые с точки зрения пользователя ничем не отличаются:
  1. 2D-полилиния (POLYLINE, в литературе также встречается название Heavy Polyline) - устаревший тип, наследие старых версий AutoCAD. В свойствах таких полилиний отображается название 2D-полилиния, а в данных, выводимых по команде Список (_LIST) тип объекта отображается ПОЛИЛИНИЯ и состоит она из группы объектов, каждый из которых имеет свою метку (внутреннее имя) и параметры



  2. Полилиния (LWPOLYLINE) - оптимизированный тип, появившийся в AutoCAD, начиная с 14 версии. В свойствах таких полилиний отображается название Полилиния, а в данных, выводимых по команде Список (_LIST) тип объекта отображается LWPOLYLINE и представлена они одним объектом



Повторю еще раз - пользователь при работе не увидит никакой разницы между этими двумя типами полилиний. Однако, обилие 2D-полилиний значительно увеличивает размер файла и затрудняет работу с ним.

В связи с тем, что начиная с AutoCAD R12 и по сей день в системе поддерживаются оба типа полилиний, введена системная переменная PLINETYPE, контролирующая работу с плоскими полилиниями. С одной стороны, она управляет созданием новых полилиний, с другой - преобразованием существующих. Она принимает значения:
  • 0 - При открывании чертежа, содержащего полилинии устаревшего типа, они не преобразуются в новый тип. При этом команда ПЛИНИЯ (_PLINE) создает полилинии в старом формате
  • 1 - При открывании чертежа, содержащего полилинии устаревшего типа, они не преобразуются в новый тип. При этом команда ПЛИНИЯ создает оптимизированные полилинии
  • 2 - При открывании чертежа, содержащего полилинии устаревшего типа, они все преобразуются в новый тип. При этом команда ПЛИНИЯ создает оптимизированные полилинии
Обратите внимание, что значение переменной PLINETYPE влияет не только на команду создания полилинии, но и на КОНТУР (если типом объекта является полилиния), КОЛЬЦО, ПОЛРЕД (при выборе отрезка или дуги), МН-УГОЛ и ЭСКИЗ (если значение переменной SKPOLY равно 1).

Если вы работаете в современных версиях AutoCAD, то нет никакого смысла использовать 2D-полилинии. Однако, если вам необходимо передать чертеж в стороннее приложение, которое не понимает формат оптимизированных полилиний, то необходимо преобразовать полилинии в 2D-полилинии. Сделать это можно с помощью команды ПОЛКОНВЕРТ (_CONVERTPOLY). После запуска команды необходимо выбрать тип полилиний, в который будут преобразованы выбранные полилинии - Подробная (Heavy) / Компактная (Light). Здесь нужно сделать скидку на разницу в терминологии. Под подробной подразумевается 2D-полилиния, под компактной - обычная полилиния


Есть и другой способ, косвенный, преобразования одного типа полилинии в другой - команда редактирования полилиний ПОЛРЕД (_EDITPOLY). Дело в том, что у 2D-полилинии есть параметр сглаживание, а у полилиний - нет. Поэтому, если в команде ПОЛРЕД выбрать опцию Сгладить для указанной полилинии, то она преобразуется в 2D-полилинию, а если выбрать Убрать сглаживание для 2D-полилинии, то она станет полининией.

3D-полилиния



3D-полилиния представляет из себя обычную полилинию, у которой каждая вершина может иметь разную высоту (координату по оси Z). Построение такой полилинии производится командой 3DПЛИНИЯ (_3DPOLY). После построения в окне Свойства становится доступным поле Текущая вершина, в котором можно выбрать конкретную вершину 3D-полилинии (в графической области она обозначится перекрестием) и задать значение её координаты по оси Z 


Кроме того, 3D-полилиния может состоять только из линейных сегментов и у нее невозможно поменять тип линии.

Команды преобразования 3D-полилинии в полилинию нет, само ее существование бессмысленно, поскольку при такой конвертации удалятся все данные о координате Z. Однако, при необходимости такое преобразование возможно несколькими способами. Первый - с помощью команды FLATTEN из состава пакета Express Tools сделать трехмерную 3D-полилинию плоской, расчленить на отдельные отрезки командой Расчленить (_EXPLODE), а затем преобразовать отрезки с помощью команды ПОЛРЕД (_EDITPOLY) в единую полилинию. Второй - разбить 3D-полилинию на отдельные отрезки командой Расчленить (_EXPLODE), с помощью окна Свойства задать координаты вершин по оси Z полученных отрезков равным 0, а затем преобразовать отрезки с помощью команды ПОЛРЕД (_EDITPOLY) в единую полилинию.

С остальными постами на тему AutoCAD можно ознакомиться на странице блога.

С уважением, Андрей.

UPD: Обновил пост, добавил про отличия 3D-полилинии и про состав 2D-полилинии. Спасибо Алексею Кулику ака kpblc и Александру Ривилису за подсказки.

7 комментариев:

  1. Небольшое дополнение: 3D-полилиния (равно как и мультилиния) не может иметь дуговых сегментов. А также на нее "не действует" установка типа линии.

    ОтветитьУдалить
    Ответы
    1. Да, упустил. Обновил. Спасибо за подсказку!

      Удалить
  2. Возможно лис преобразовать полилинию в 3d полилинию ?

    ОтветитьУдалить
    Ответы
    1. В базовом AutoCAD такой возможности нет. В AutoCAD Civil 3D и Map - команда Convert 2D To 3D Polylines.

      Если нужно конвертировать в базовом AutoCAD, то можно использовать программу конвертации, поищите в google по названию 2D3Dpoly

      Удалить
  3. 14 лет использую AutoCAD, а впервые столкнулся с вопросом отличия между 2D-полилинией и обычной полилинией. Спасибо за информацию!

    ОтветитьУдалить