Команда pedit в автокаде
У меня такая проблемка возникла при написании ЛИСПа.
В общем смысл таков:
При выборе отрезка , мне необходим чтоб этот отрезок был полилинием
Пишу
(command "_Pedit" )
Но почему то Лисп не хочет выполнять команду?
В чём моя ошибка?
Где ошибка не знаю - должно работать.
Попробуй так:
(defun c:e2pl()
(setq ent (entsel))
(if (not ent)(exit))
(setq ent_type (cdr (assoc 0 (entget (car ent)))))
(if (or (= ent_type "LINE") (= ent_type "ARC"))(progn
(command "PEDIT" ent "Y" "")
))
(princ)
)
Спасибо Аркадий
Что то ни как не могу послать ВАМ лично.
Я получил твоё письмо! Но в место текста . такие значки.
Почему?
Аркадий по программе!
Данная программа работает, тут необходимо выбрать ТОЛЬКО один примитив!
А мне бы хотелось 1 или несколько (т.е. секущей рамкой)
Как быть?
(defun c:e2pl()
(setq ssl (ssget))
(if (not ssl)(exit))
(setq no 0)
(setq ll (sslength ssl))
(repeat ll
(setq ent (ssname ssl no))
(setq no (1+ no))
(setq ent_type (cdr (assoc 0 (entget ent))))
(if (or (= ent_type "LINE") (= ent_type "ARC"))(progn
(command "PEDIT" ent "Y" "")
))
);;End of repeat
(princ)
)
Спасибо Аркадий! Но програмка не работает и вообще ошибся на одну букву! :о) Вставка команды _mpedit
Работает - только что проверил,ничего не менял.
mpedit - это программа из EXPRESS TOOLS.
А у меня не как :о\
Каюсь Аркадий , Работает!
Я немного переделал :
Но здесь кое что не нравится, а именно.
Когда выделяешь несколько примитивов, то необходимо вводить толщину для каждого примитива. Что не удобно.
А нельзя сделать так, чтобы при выделении несколько примитивов сразу изменялась толщина для всех примитивов одновременно.
Спасибо , Аркадий! Всё работает , но опять , я иду на эксперементы!
defun c:еп()
(setq ssl (ssget))
(if (not ssl)(exit))
(initget 1)
(setq wi (getreal "\nNew Widht for all elements < 0.5>:"))
Хотел сделать , чтоб по умолчанию толщина было 0,5.
За ранее спасибо!
Jekki доброй ночи.
Убери (getinit 1) - он не разрешает пустой ввод
(if (not wi) (setq wi 0.5)) - при первом запуске даем значение по умолчанию.
(setq temp (getreal (strcat "\nNew Widht for all elements <" (rtos wi 2 2) ">:")))
(if temp (setq wi temp))
запрашиваем значение с указанием старого значения (для Enter по умолчанию)
Если было введено число то присваиваем wi его значение ,если нет - пользуемся старым.
Успехов
Редактирование полилинии включает в себя операции, приводящие к изменению ее ширины, добавлению или удалению ее сегментов или вершин, а также операции по преобразованию (аппроксимированию) полилинии в сплайн.
Редактирование полилиний выполняется с помощью команды Pedit, которой соответствуют кнопка Edit Polyline (Редактировать полилинию) в инструментальной группе Modify (Редактирование) вкладки Ноте (Главная).
После вызова Pedit в командной строке будет выведен первый запрос Select polyline or [Multiple], в ответ на который необходимо выделить полилинию и нажать Enter. Затем, если выделенный объект является полилинией, система выведет набор параметров, посредством которых выполняется ее редактирование:
Enter an option [Close/Open/Join/Width/Editvertex/Fit/Spline/ Decurve/Ltype gen/Undo]: <Выбор уточняющего параметра>
Параметры команды следующие:
- Close – замыкает разомкнутую полилинию путем добавления нового сегмента (если последний сегмент полилинии был прямолинейным, то замыкание осуществляется добавлением прямолинейного участка, а если дуговым – для замыкания строится дуговой сегмент);
- Open – размыкает замкнутую полилинию (если выделена разомкнутая полилиния, то опция меняется на Close);
- Join – преобразует отрезок или дугу в односегментную полилинию или добавляет к полилинии новые смежные сегменты, которыми могут быть отрезки, дуги и другие двухмерные полилинии (параметр применяется только для разомкнутых полилиний);
- Width – изменяет ширину всех сегментов полилинии на новое постоянное значение (новое значение толщины вводится с клавиатуры или путем указания двух точек на экране);
- Edit vertex – переводит полилинию в режим редактирования ее вершин (перемещение, удаление ненужных, добавление новых и т.д.);
- Fit – преобразует полилинию с помощью дуговых сегментов в кривую, проходящую через вершины полилинии;
- Spline – аппроксимирует (сглаживает) полилинию в сплайн, который будет проходить только через начальную и конечную точки полилинии;
- Decurve – отменяет результат, полученный с использованием параметров Fit и Spline;
- Ltype gen – управляет построением типа линии (используется для сегментов по отдельности или для всей полилинии в целом);
- Undo – отменяет последнюю операцию, выполненную командой Pedit.
Если вместо ввода имени параметра будет нажата клавиша Enter, команда завершит свою работу. Выбор одной из представленных опций позволяет выполнить одну из возможных операций редактирования. Заслуживающие внимания параметры будут подробно рассмотрены далее.
Редактирование вершин полилинии
Опция Edit vertex позволяет редактировать вершины полилинии, а также соседние с ними сегменты. После выбора данной опции AutoCAD выделяет первую вершину полилинии, причем эта вершина обозначится маркером X (рис. 8.31). Порядок следования вершин идентичен той последовательности, в которой эти вершины создавались при построении полилинии. При этом в строке подсказки появляется новый набор параметров:
Enter a vertex editing option [Next/Previous/Break/ Insert/Move/Regen/ Straighten/Tangent/Width/eXit] <N>: <Выбор уточняющего параметра>
Параметры команды следующие:
- Next и Previous – перемещают маркер редактирования соответственно к последующей или к предыдущей вершине полилинии;
- Break – разбивает полилинию на две части или отсекает одну ее часть путем задания одной или двух точек;
- Insert – вставляет новую вершину после текущей;
- Move – переносит текущую вершину на новое место;
- Regen – перерисовывает (регенерирует) экран;
- Straighten – выпрямляет сегмент полилинии, расположенный между двумя указанными вершинами (дуговые сегменты и отрезки, находящиеся между указанными точками, удаляются и заменяются одним прямолинейным сегментом);
- Tangent – задает направление касательной к текущей вершине для выполнения операции Fit;
- Width – задает ширину полилинии на участке, начинающемся в текущей вершине;
- eXit – выход из режима редактирования вершин.
Для разбиения полилинии параметром Break указываются одна или две ее вершины. В последнем случае удаляются все сегменты, расположенные между указанными точками. При этом первая вершина задается до ввода параметра Break, а вторая – после. Для выбора второй точки в ответ на вопрос Enter an option [Next/Previous/Go/eXit] <N> необходимо указать параметр Next или Previous такое количество раз, чтобы достичь необходимой вершины. После того как обе точки будут выбраны, в последней строке подсказки вводится параметр Go. Если полилинию необходимо разбить в одной вершине, эту опцию нужно задать сразу после ввода параметра Break. Если же ввести параметр eXit, то выполнение команды прервется.
Для добавления новой вершины используется параметр Insert. Перед тем как перейти к этой опции, нужно переместиться к точке, после которой добавляется новая вершина, и только затем указать Insert. Положение новой вершины задается при помощи мыши или непосредственным вводом координат на вопрос системы Specify location for new vertex.
Если требуется удалить какие-то вершины полилинии, воспользуйтесь параметром Straighten. Запрос, отображаемый после ввода этой опции, аналогичен запросу, следуемому за выбором параметра Break: (Enter an option [Next/Previous/ Go/eXit] <N>). Опция Straighten выпрямляет полилинию на участке, начиная с текущей вершины и заканчивая той вершиной, в которую можно перейти, перемещаясь по полилинии с помощью параметров Next и Previous. В свою очередь, параметр Go завершает операцию выпрямления.
С помощью параметра Tangent можно определить касательное направление в помеченной маркером редактирования вершине. Указанное направление в дальнейшем будет использоваться при сглаживании кривых. После выбора опции Tangent следует запрос Specify direction of vertex tangent, на который необходимо ввести значение угла или координаты точки, определяющие направление касательной. После того как направление определено, в текущей вершине появляется стрелка (рис. 8.32). Направление будет использовано только в случае последующего вызова операции сглаживания полилинии с помощью параметра Fit.
Параметр Width позволяет ввести начальную и конечную толщину сегмента полилинии, следующего за выделенной маркером редактирования вершиной. По умолчанию конечная толщина сегмента равна начальной. Для построения сегмента неравномерной толщины следует на вопрос Specify starting (ending) width for next segment <0.00> ввести ее начальное и конечное значения (рис. 8.33).
Для автоматического построения типа линий используется параметр Ltype gen, позволяющий вычерчивать непрерывную (опция включена) или прерывистую (штрихпунктирную) линию.
Работает эта опция как переключатель системной переменной PLINEGEN (рис. 8.33). Если сегмент полилинии имеет переменную толщину (рис. 8.34), то параметр применить нельзя.
Сглаживание полилиний кривой
Для сглаживания полилиний предназначены два параметра – Fit и Spline. Параметр Fit строит кривую, которая состоит из дуг окружностей и проходит через все вершины полилинии (рис. 8.35). В свою очередь, параметр Spline также позволяет сгладить прямолинейные сегменты полилинии, но кривая будет при этом проходить только через первую и последнюю ее вершины.
Отметим, что иногда использование параметра Fit не дает желаемого результата. В таком случае можно попробовать ввести дополнительные точки или указать касательное направление в некоторых вершинах посредством параметра Tangent. После обработки полилинии параметром Tangent на ней появляются дополнительные вершины, которые также можно будет использовать для достижения нужного результата.
При сглаживании параметром Spline кривая лишь вытягивается в направлении вершин полилинии, но не проходит через них (рис. 8.36).
Следует отметить, что для сглаживания можно использовать два вида сплайна: квадратичный или кубический (рис. 8.37), причем кубический сплайн дает наилучшие результаты.
При сглаживании тип сплайна определяется значениями системных переменных SPLYNETYPE и SURFTYPE. В том случае если SPLYNETYPE=5, тогда формируется квадратичный сплайн; значение SPLYNETYPE=6 использует при сглаживании кубический сплайн. Вместе с тем переменная SURFTYPE определяет поверхность сглаживания. Для построения поверхности Безье этой переменной следует присвоить значение 8. Значение SURFTYPE=5 определяет тип поверхности сглаживания в виде квадратичного сплайна, a SURFTYPE=6 – кубического сплайна.
Спрямление полилинии
Для спрямления полилинии, предварительно сглаженной параметрами Fit и Spline, используется опция Decurve (рис. 8.38). При этом добавляемые при сглаживании новые вершины удаляются, однако касательные направления, созданные параметром Tangent, сохраняются с целью их повторного использования. Более того, параметр Decurve можно применять для спрямления любой кривой, построенной при помощи параметра Arc команды Pline. Параметр нельзя применить только в том случае, если кривая предварительно была разбита параметром Break.
Командой в AutoCAD обозначается какое-либо действие пользователя, которое приводит к определенной реакции приложения. Большинство команд можно вызвать несколькими способами. Некоторые из этих способов являются традиционными для многих графических приложений и основаны, например, на использовании панели меню, контекстных, диалоговых меню или панелей инструментов. В последних версиях AutoCAD эти традиционные способы «прижились» довольно удачно. Однако существуют такие команды, которые невозможно найти ни в одном из этих элементов интерфейса. Кроме того, некоторые команды, которые все-таки дублируются в них, легче выполнять средствами, традиционными именно для AutoCAD (т.е. из командной строки). Это подкрепляется наличием у большинства команд собственных параметров, указывающих на особенности их выполнения.
КОМАНДНАЯ СТРОКА
Возможно комбинированное использование средств ввода данных в ответ на запросы системы AutoCAD – некоторая часть данных вводится непосредственно в командах (например сама команда с уточняющими параметрами), а другая (например координаты) – указывается с использованием мыши, панелей инструментов или диалоговых окон. Так, например, при активном режиме DYN (Динамично) параметры команд можно задавать в специальных полях, перемещающихся вместе с перекрестием курсора. При этом любое действие пользователя или программы оставляет в командной строке запись.
Следует отметить, что при работе с локализованными версиями AutoCAD появляется одна особенность, связанная с синтаксисом команд. Например, в русскоязычной версии названия команд переведены на русский язык. Если вы знаете английские наименования команд, их можно вводить и на языке оригинала (английском). Например, команда Line, предназначенная для рисования отрезков, может быть введена с клавиатуры, в зависимости от версии программы, любым из следующих способов:
- ОТРЕЗОК – на русском языке в верхнем регистре (для локализованной версий программы);
- отрезок – на русском языке в нижнем регистре (для локализованной версий программы);
- _LINE – на английском языке в верхнем регистре (для локализованной и оригинальной версий программы);
- LINE – на английском языке в верхнем регистре (для оригинальной версии программы);
- line – на английском языке в нижнем регистре (для локализованной и оригинальной версий программы);
- line – на английском языке в нижнем регистре (для оригинальной версии программы).
Кроме того, для оригинальной версии программы AutoCAD не делает различий между командами, введенными со знаком или без знака «_» перед именем команды. В данной книге все команды приводятся с синтаксисом оригинальной версии программы (т.е. на английском языке без знака «_»), в верхнем регистре.
Примечание. Если в ответ на запрос Command в командной строке нажать Enter или Пробел, то AutoCAD повторит вызов предыдущей команды. Прервать любую команду, уже начавшую работу, можно клавишей Esc.
После набора команды на клавиатуре следует не забывать нажимать клавишу Enter, поскольку она является для системы сигналом к началу обработки команды. Пока клавиша Enter не нажата, набранный в командной строке текст можно отредактировать, используя комбинации клавиш, стандартные для любого текстового редактора.
Кроме непосредственного ввода названий команд, AutoCAD имеет еще один способ их ввода в командную строку, связанный с использованием сокращенных имен команд. Полный список этих псевдоимен записывается в файле acad.pgp, который можно найти в папке: C:\Program Files\AutoCAD 2010\Support. В этом файле с любой командой AutoCAD можно связать ее сокращенный вариант, и после этого им можно будет пользоваться наравне с оригиналом. Редактировать этот файл можно в любом текстовом редакторе (например в Блокноте).
ТЕКСТОВОЕ ОКНО КОМАНД
Записи командной строки автоматически сохраняются в протоколе работы с программой; их можно просмотреть из специального текстового окна (рис. 1.13), которое вызывается клавишей F2.
Перемещение по текстовому окну осуществляется теми же клавишами, что и по командной строке.
ПАРАМЕТРЫ КОМАНД
Большинство команд имеют дополнительные параметры, позволяющие варьировать выполнение одной и той же команды путем ее дополнения уточняющей информацией.
Например, окружность в AutoCAD может строиться по различным характеристикам: по центру и радиусу, по центру и диаметру, по трем точкам, по касательным и др. Используя соответствующие параметры, вы можете направлять диалог с AutoCAD таким образом, чтобы выполнить построение объекта нужным способом.
Возможные параметры команд высвечиваются в командной строке следом за названием и сразу после ввода команды. При этом AutoCAD помещает их в квадратные скобки, а если параметров несколько – разделяет косой чертой.
Рассмотрим в качестве примера синтаксис команды Circle, которая имеет три параметра:
Command: Circle
Specify center point for circle or [3P/2P/Ttr (tan tan radius)]:
<Ввод координат центра окружности или указание одного из уточняющих параметров команды>
где ЗР, 2Р, Ttr (tan tan radius) – возможные параметры команды Circle.
Для того чтобы продолжить работать с командой Circle, необходимо ввести название одного из возможных параметров. После этого последует запрос координат точек или другого параметра.
Примечание. Для выбора одного из параметров активной команды нет необходимости набирать название параметра целиком – достаточно ввести часть его названия, которая в командной строке выделена прописными буквами. Например, для ввода параметра Diameter достаточно ввести букву D, а для параметра BEgin – BE.
В данной книге, приводя примеры листингов, авторы будут помещать в угловые скобки <…> пояснение к действию, которое вы должны выполнить в ответ на запрос активной команды. Разумеется, в командной строке AutoCAD данной информации не будет.
Построение окружности с использованием координат центра и диаметра
В задании необходимо построить окружность, задав координаты ее центра (100, 200) и значение диаметра (40), применив при этом параметр D (Diameter) команды Circle.
Рассмотрим порядок выполнения задания (листинг 1.1).
Построение окружности по координатам центра и диаметру
Command: Circle
Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: 100,200
Specify radius of circle or [Diameter]: D
Specify diameter of circle: 40
Следует отметить, что вводить параметры команд можно и с помощью контекстных меню командного режима (см. выше). При этом контекстное меню можно вызвать только в том случае, если в строке команд после названия команды в квадратных скобках представлен набор доступных параметров. Другими словами, контекстное меню вызывается в случае активности какой– либо команды, и только при наличии у нее уточняющих параметров.
Построение окружности по двум точкам при помощи контекстного меню
В задании необходимо построить окружность по двум точкам с координатами (100, 150) и (200, 250), применив при этом параметр 2Р команды Circle при помощи контекстного меню командного режима.
Рассмотрим порядок выполнения задания.
Построенная таким образом окружность с диаметром представлена на рис. 1.14, а протокол диалога AutoCAD и пользователя в этом случае будет иметь следующий вид (листинг 1.2).
Построение окружности по двум точкам при помощи контекстного меню
Command: Circle
Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: 2P
Specify first end point of circle’s diameter: 100,150
Specify second end point of circle’s diameter: 200,250
Command: Line
Specify first point: 100,150
Specify next point or [Undo]: 200,250
Специальное редактирование двумерных полилиний выполняется с помощью команды 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 (Замкнуть). Для наглядности эти участки выделены штриховой линией.
Читайте также: