3.3. Редактирование полилиний Специальное редактирование двумерных полилиний выполняется с помощью команды PEDIT (ПОЛРЕД), которой соответствуют кнопка , входящая в панель инструментов Modify II (Редактирование-2) (рис. 3.43), и пункт падающего меню Modify | Object | Polyline (Редакт Объекты | Полилиния). Мы уже рассматривали эту команду в разд. 2.10 для выполнения операции объединения в полилинию отрезков и дуг. Рис. 3.43. Панель инструментов Modify II Рассмотрим другие возможности команды PEDIT (ПОЛРЕД). После выбора полилинии в ответ на запрос Select polyline or [Multiple]: (Укажите полилинию или [Несколько]:) система AutoCAD выдает следующий перечень опций: Enter an option [Close/Join/Width/Edit vertex/Fit/Spline/Decurve/Ltype gen/Undo]: (Задайте опцию [Замкнуть/Добавить/Ширина/ Вершина/СГладить/СПлайн/ Убрать сглаживание/Типлин/Отменить]:) Перечислим опции команды с кратким их описанием: Close (Замкнуть) — замыкает разомкнутую (открытую) полилинию; если же была отмечена замкнутая полилиния, то опция изменится на Open (Разомкнуть); Join (Добавить) — добавляет новые сегменты к полилинии; Width (Ширина) — изменяет ширину всех сегментов полилинии на новое постоянное значение; Edit vertex (Вершина) — переходит в режим редактирования вершин полилинии (перемещение вершин, удаление вершин, добавление вершин, изменение ширины отдельных сегментов и т. д.); Fit (СГладить) — сглаживает полилинию с помощью дуговых сегментов; Spline (СПлайн) — проводит сплайн по специальному уравнению, проходящий через начальную и конечную точки полилинии; Decurve (Убрать сглаживание) — убирает сглаживание, выполненное опциями Fit (СГладить) и Spline (СПлайн); Ltype gen (Типлин) — управляет построением типа линии (для сегментов по отдельности или для всей полилинии в целом); Undo (Отменить) — отменяет последнюю операцию, выполненную в данной команде PEDIT (ПОЛРЕД). Кроме того, нажатие клавиши <Enter> (вместо выбора опции) завершает команду PEDIT (ПОЛРЕД). Опция Close (Замкнуть) замыкает разомкнутую полилинию, добавляя сегмент, идущий из конечной точки в начальную. Если последний сегмент полилинии был прямолинейным, то замыкание выполняется добавлением прямолинейного участка. Если последний сегмент был дуговым, то для замыкания строится дуговой сегмент, касающийся последнего сегмента. На рис. 3.44 приведены примеры замыкания двух полилиний, отличие которых только в типе последнего сегмента: у первой полилинии он прямолинейный, у второй — дуговой. Точками 1 и 2 отмечены участки, добавляемые системой с помощью опции Close (Замкнуть). Для наглядности эти участки выделены штриховой линией. Рис. 3.44. Варианты замыкания полилинии Опция Open (Разомкнуть) действует очевидным образом: удаляет последний участок полилинии. Опция Join (Добавить) преобразует отрезок или дугу в односегментную полилинию или добавляет к полилинии новые смежные сегменты, которыми могут быть отрезки, дуги и другие двумерные полилинии. Разумеется, при этом не должен нарушаться основной принцип полилинии: начальная точка каждого последующего сегмента должна совпадать с конечной точкой предыдущего. Опция Width (Ширина) изменяет ширину всех сегментов полилинии на новое постоянное значение, которое запрашивается системой. Значения ширины всех сегментов до операции, даже если они были разными, утрачиваются. Опция Fit (СГладить) сглаживает полилинию с помощью дуговых сегментов, которые касаются друг друга. На рис. 3.45 приведен пример полилинии до сглаживания (состоит из прямолинейных сегментов) и после сглаживания (состоит из дуговых сегментов). Исходные вершины полилинии остаются на старых местах, но к ним могут быть добавлены промежуточные, которые исчезают после ликвидации сглаживания (см. описание опции Decurve (Убрать сглаживание)). Рис. 3.45. Сглаживание полилинии с помощью опции Fit На рис. 3.46 приведена та же полилиния, но сглаженная с помощью опции Spline (СПлайн). Видно, что промежуточные вершины новой полилинии не совпадают с вершинами старой полилинии. Опция Decurve (Убрать сглаживание) убирает сглаживание, выполненное опциями Fit (СГладить) или Spline (СПлайн). Результирующая полилиния состоит только из прямолинейных сегментов. Для несглаженных полилиний данная опция заменяет дуговые сегменты на прямолинейные, сохраняя вершины на старых местах. Как было уже сказано в разд. 3.1, полилиния может быть представлена в информационном окне команды LIST (СПИСОК) с двумя наименованиями: LWPOLYLINE — компактная полилиния, и POLYLINE — подробная полилиния. Легкая полилиния превратится в подробную, если к ней применить операцию сглаживания с помощью опций Fit (СГладить) и Spline (СПлайн). Подробная полилиния может иметь дополнительные вершины, вычисленные системой AutoCAD, а компактная — не может. При отключении сглаживания подробные полилинии преобразуются в компактные полилинии. Рис. 3.46. Сглаживание полилинии с помощью опции Spline Опция Ltype gen (Типлин) управляет отрисовкой полилинии в случае, когда тип линии выбран отличным от сплошной (в AutoCAD этот тип линии называется CONTINUOUS). Опция выдает следующий запрос: Enter polyline linetype generation option [ON/OFF] <OFF>: (Генерация типа линии по всей полилинии [Вкл/Откл] <Откл>:) В этот момент можно включить режим генерации типа линии по всей полилинии (по умолчанию он выключен, что ускоряет расчет). На рис. 3.47 приведен пример полилинии с типом линии DASHED (штриховая) при Ltype gen=OFF (Типлин=Откл), а на рис. 3.48 — при Ltype gen=ON (Типлин=Вкл). На рис. 3.48 Ltype gen=OFF (Типлин=Откл) и тип линии, состоящий из штрихов и пропусков заданных размеров, применен к каждому сегменту отдельно. Поэтому при недостаточной длине (не хватает длины, чтобы начать второй штрих после пропуска) на сегменте вообще не образуются штрихи, как произошло со вторым, третьим и восьмым сегментами. При Ltype gen=ON (Типлин=Вкл), как на рис. 3.48, длины штрихов откладываются, начиная с самой первой вершины полилинии, по всей полилинии в целом, поэтому штрихи присутствуют на всех сегментах. Недостатком второго режима является то, что пропуск между штрихами может попасть на вершину. Рис. 3.47. Полилиния при Ltype gen=OFF Самая сложная опция — Edit vertex (Вершина), которая вызывает режим работы с вершинами полилинии, что дает возможность изменять положение вершин, удалять их, добавлять, а также менять ширину конкретного сегмента и разрывать полилинию на части. После выбора данной опции система AutoCAD выдает запрос: Enter a vertex editing option [Next/Previous/Break/ lnsert/Move/Regen/Straighten/Tangent/Width/eXit] <N>: Задайте опцию редактирования вершины След/Пред/РАзорвать/ВСтавитъ/ПЕренести/ РЕген/ВЫпрямитъ/Касателъная/ Шкрина/выХод] <С>:) При этом в первой вершине полилинии появляется знак х (рис. 3.49), что означает отметку текущей вершины, к которой будут относиться последующие операции редактирования. Порядок следования вершин идентичен той последовательности, с которой эти вершины создавались при построении полилинии. Рис. 3.48. Полилиния при Ltype gen=ON Рис. 3.49. Режим редактирования вершин полилинии В данном режиме доступны такие опции: Next (След) — перейти на следующую вершину; Previous (Пред) — перейти на предыдущую вершину; Break (РАзорвать) — разорвать полилинию, начиная с текущей вершины; Insert (ВСтавить) — вставить новую вершину после текущей; Move (ПЕренести) — перенести текущую вершину на новое место; Regen (РЕген) — регенерировать (перерисовать) полилинию с текущими установками; Straighten (ВЫпрямить) — выпрямить полилинию на участке, начиная с текущей вершины (удаление соседних вершин); Tangent (Касательная) — задать направление касательной к текущей вершине для будущей операции Fit (СГладить); Width (Ширина) — задать ширину полилинии на участке, начинающемся в текущей вершине; eXit (выХод) — выход из режима редактирования вершин и возврат к запросу: Enter an option [Close/Join/Width/Edil vertex/Fit/Spline/Decurve/Ltype gen/Undo]: (Задайте опцию [Замкнуть/Добавить/Ширина/Вершина/СГладить/СПлайн/ Убрать сглаживание/Типлин/Отменить]:). Опции Next (След) и Previous (Пред) дают возможность перемещаться между вершинами полилинии, чтобы добраться до той вершины, которую надо редактировать. Опция Break (РАзорвать) предназначена для разрыва полилинии. Начало разрыва — в текущей вершине, а окончание разрыва нужно указать в ответ на запрос: Enter an option [Next/Previous/Go/eXit] <N>: (Задайте опцию [След/Пред/Выполнить/выХод] <С>:) Если разрыв нужно выполнить в текущей вершине (после этого полилиния разделится на две полилинии, имеющие общую точку в месте разрыва), то следует воспользоваться опцией Go (Выполнить). При этом все сегменты исходной полилинии сохраняются, оказываясь в составе одной из двух новых полилиний. Если разрыв нужно начать в текущей вершине, а закончить в другой, расположенной дальше или ближе текущей (и тем самым в результате разрыва удалить участки между текущей и другой вершиной), то необходимо в режиме Break (Разорвать) сначала с помощью опций Next (След) и Previous (Пред) перейти на ту вершину, в которой разрыв будет закончен, и затем только воспользоваться опцией Go (Выполнить). Если режим редактирования вершин больше не нужен, то выйти из него с помощью опции eXit (выХод). На рис. 3.50 в левой части изображена полилиния до разрыва, а в правой части — после разрыва, с удалением одного сегмента. Рис. 3.50. Разрыв полилинии Для добавления в полилинию новой вершины нужно воспользоваться опцией Insert (ВСтавить). Перед тем как перейти к этой опции, нужно переместиться к вершине, после которой добавляется новая вершина. Затем с помощью клавиатуры ввести опцию Insert (ВСтавить). Система AutoCAD запрашивает: Specify location for new vertex: (Положение новой вершины:) Вы указываете положение новой вершины, вставляемой после текущей. На рис. 3.51 слева показан момент указания положения новой вершины, вставляемой между четвертой и пятой вершинами, а справа — результат операции вставки. Нельзя с помощью этой опции вставить вершину перед первой вершиной полилинии. Опция Move (ПЕренести) используется, когда текущую вершину нужно перенести на новое место. При использовании опции выдается запрос: Specify new location for marked vertex: (Новое положение помеченной вершины:) Вы указываете новое положение текущей вершины (рис. 3.52). Справа на рисунке показан результат переноса вершины на новое место. Рис. 3.51. Добавление новой вершины в полилинию Рис. 3.52. Перенос вершины полилинии Опция Regen (РЕген) позволяет, не выходя из команды PEDIT (ПОЛРЕД), перечертить (регенерировать) полилинию с текущими изменениями. Если надо удалить какие-то вершины из полилинии, то следует воспользоваться опцией Straighten (ВЫпрямить). Запрос, выдаваемый этой опцией, аналогичен запросу опции Break (РАзорвать): Enter an option [Next/Previous/Go/eXit] <N>: (Задайте опцию [След/Пред/Выполнить/выХод] <С>:). Опция выпрямляет полилинию на участке, начиная с текущей вершины и заканчивая вершиной, в которую можно перейти, перемещаясь по полилинии с помощью опции Next (След) и Previous (Пред). Опция Go (Выполнить) завершает операцию выпрямления. На рис. 3.53 в левой части изображена полилиния до выпрямления, а в правой части — после выпрямления, с удалением четырех вершин. Рис. 3.53. Выпрямление полилинии Опция Tangent (Касательная) дает возможность задать направление касательной на вершинах полилинии для будущей операции Fit (СГладить), что позволяет воздействовать на форму линии, получаемой после сглаживания. После выбора опции Tangent (Касательная) следует запрос: Specify direction of vertex tangent: (Направление касательной в вершине:) Направление задается углом в градусах или точкой. После задания на текущей вершине появляется стрелка с указанным направлением (см. вершину полилинии в левой части рис. 3.54). Направление будет использовано только тогда, когда вы в дальнейшем выполните операцию сглаживания полилинии с помощью опции Fit (СГладить). В правой нижней части рис. 3.54 показан результат сглаживания, выполненного с учетом направления касательной в указанной ранее вершине. Для сравнения в правой верхней части рисунка приведена аналогичная полилиния, которая была сглажена без задания направления касательной. Рис. 3.54. Направление касательной в вершине полилинии Опция Width (Ширина) управляет шириной полилинии на участке, начинающемся в текущей вершине. Первый запрос: Specify starting width for next segment: (Начальная ширина следующего сегмента:) Нужно задать начальную ширину (обычно вводом с клавиатуры). Если вы в этот момент мышью укажете точку, то AutoCAD запросит вторую точку, а расстояние между точками возьмет в качестве значения ширины (если указание мышью произошло по недоразумению, то это может привести к непредсказуемому изменению ширины полилинии). Далее: Specify ending width for next segment <0.0000>: (Конечная ширина следующего сегмента <0.0000>:) В угловых скобках по умолчанию предлагается значение, выбранное в качестве начальной ширины сегмента (в нашем примере — 0.0000). После ввода второй ширины регенерируется текущий сегмент полилинии с новой шириной. Опция eXit (выХод) завершает режим редактирования вершин и возвращает запрос Enter an option [Next/'Previous/'Go/'eXitJ <N>: (Задайте опцию [СледУ Пред/'Выполнить/'выХод] <С>:). Опция Multiple (Несколько), которая появилась еще в системе AutoCAD 20001, доступна пользователю в самом первом запросе о выборе редактируемой полилинии и дает возможность выбрать сразу несколько полилиний для того, чтобы над ними выполнить однотипные операции (например, замкнуть или изменить глобальную ширину). Следует иметь в виду, что при таком выборе полилиний недоступна опция Edit vertex (Вершина).