Как сделать преобразование отрезков в полилинию с указанием начального и конечного сегментов?
Форумы CADUser → Autodesk → AutoCAD → Как сделать преобразование отрезков в полилинию с указанием начального и конечного сегментов?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщения 21
#1 Тема от Valpur 18 июля 2006г. 13:53:23
Тема: Как сделать преобразование отрезков в полилинию с указанием начального и конечного сегментов?
Т.е. чтобы выполнялась команда _Pedit, но с указанием начального отрезка и конечного. Чтобы не приходилось выбирать все отрезки будущей полилинии.
#2 Ответ от kpblc 18 июля 2006г. 13:56:45
Re: Как сделать преобразование отрезков в полилинию с указанием начального и конечного сегментов?
#3 Ответ от Valpur 18 июля 2006г. 14:05:17
Re: Как сделать преобразование отрезков в полилинию с указанием начального и конечного сегментов?
Так не удобно приходится указывать все отрезки. А если их порядка ста? Задача сделать выбор первого и последнего. Вот бьюсь над ее реализацией.
#4 Ответ от kpblc 18 июля 2006г. 14:36:03
Re: Как сделать преобразование отрезков в полилинию с указанием начального и конечного сегментов?
Встречные вопросы:
1. Что делать, если первый отрезок примитив «ОТРЕЗОК» (LINE), а второй — полилиния (LWPOLYLINE)?
2. Как учитывать дуговые сегменты?
3. Как учитывать возможные полилинии с различными ширинами сегментов?
4. Как учитывать возможное несовпадение вершин?
5. Как учитывать возможную разнонаправленность отрезков (один нарисован от точки 0,0 до 5,5; второй — от 10,10, до 5,5)?
Я понимаю, что ответ будет «Соединять». Но! Ты просто примерно прикинь количество вариантов, котрые надо предусматривать для корректной работы. Я — пас.
#5 Ответ от Владимир Громов 18 июля 2006г. 14:42:31
Re: Как сделать преобразование отрезков в полилинию с указанием начального и конечного сегментов?
Например, для непрерывной последовательности отрезков, без всякого анализа:
^C^C_PEDIT;_m;_all;;_y;_j;;;
^C^C_PEDIT;_m;_w;\\;_y;_j;;;
#6 Ответ от kpblc 18 июля 2006г. 14:58:05
Re: Как сделать преобразование отрезков в полилинию с указанием начального и конечного сегментов?
> Владимир Громов
Я тож так хотел написать, правда, чуть-чуть по другому (то есть с анализом насчет дуг, отрезков и полилиний).
(defun c:plcreate (/ selset) (vl-load-com) (vla-startundomark (vla-get-activedocument (vlax-get-acad-object))) (if (setq selset (ssget "_:L" '((0 . "LINE,ARC,LWPOLYLINE")))) (if (vl-remove-if-not '(lambda (x) (member (cdr (assoc 0 (entget x))) '("ARC" "LINE"))) (vl-remove-if 'listp (mapcar 'cadr (ssnamex selset))) ) ;_ end of vl-remove-if-not (command "_.pedit" "_m" selset "" "_y" "_j" 0 "") (command "_.pedit" "_m" selset "" "_j" 0 "") ) ;_ end of if ) ;_ end of if (vla-endundomark (vla-get-activedocument (vlax-get-acad-object))) ) ;_ end of defun
Но тут проблема не в том. Проблема именно в формировании набора примитивов, как я понимаю. Мои вопросы > kpblc (2006-07-18 14:36:03) задавались на полностью программное создание новой полилинии; применение _pedit частично вроде бы решает проблему.
Но! Что делать, если в 1 точку подходит 3 или более примитивов? 😀
Как в nanoCAD объединить линии
Визуально на чертежи оба отрезка выглядят как один объект, но если с помощью мышки выделить часть объекта —
то увидите, что выделился только один отрезок, второй остался незадействованным.
Но нам необходимо сделать так, чтобы оба отрезка выделялись при наведении курсора мыши на один из них. Для этого следует объединить эти отрезки, преобразовав их в единую полилинию nanoCAD.
- вызываем функцию Редактирование полилинии. Вызвать ее можно следующими способами:
- переходим на Строка меню — Редактировать – Объект – Полилиния;
- на панели Редактирование 2 кликнуть по иконке Редактирование полилинии ;
- ввести в командную строку одну из команд PE,PEDIT,ПОЛРЕД,ПРД.
- после активации команды Редактирование полилинии, выбранным из выше изложенных способов, укажите на одну из линий;
В командной строке Вы увидите следующее сообщение:
В нашем случаи это не полилиния, а обычный отрезок, но мы его сейчас таким и сделаем.
- после выбора линии, в командной строке появится сообщение о том, преобразовать выбранный объект в полилинию или нет;
Для подтверждения жмем клавишу Enter (или кликаем в командной строке на Да; или вводим в командную строку Y; или вызываем правой кнопкой мыши меню и выбираем Да).
- теперь в командной строке кликаем на Добавить ( или кликаем в командной строке на Добавить; или вводим в командную строку Добавить; или вызываем правой кнопкой мыши меню и выбираем Добавить).
- указываем на вторую линию;
- жмем два раза клавишу Enter (или кликаем в командной строке на Завершить и жмем клавишу Enter; или вводим в командную строку Завершить; или вызываем правой кнопкой мыши меню и выбираем Ввод (вызываем окно 2 раза)).
- теперь объединение линий в nanoCAD завершено. При наведении курсора мыши или выделении одного из отрезков, второй также будет выделен.
Это означает, что оба отрезка были объедены и преобразованы в полилинию.
Таким же способом Вы можете объединить более 2-х отрезков.
Как объединить несколько полилиний?
Всем доброго дня!
Дали одному человеку новый компьютер с новым автокадом 2013.
И он мне задаёт заковыристый вопрос. Делает следующее:
— создаёт три точки с разной координатой Z;
— соединяет эти точки отрезками;
— командой ПОЛРЕД преобразует отрезки в полилинии;
— этой же командой объединяет несколько полилиний в одну.
Автокад отвечает, что объединение линий невозможно, т.к. у них разные ПСК.
Человек утверждает, что раньше, на старом компе со старым автокадом, всё нормально объединялось.
Попробовал вышеперечисленную последовательность сделать на своём старом компе и старом автокаде, результат тот же (не объединяет).
Так как с трёхмером работаю редко, то обращаюсь за советом: как объединить несколько полилиний, не находящихся в одной плоскости, в одну?
Заранее всем Спасибо!
Объединение отрезков, дуг, линий в полилинию. Как объединить?
P.S. В процессе оказалась, что моя проблема в преобразовании сплайнов в полилинию—вот что с этим делать?
Нужен простой, тупой (я инженер-механик!) способ перевода набора кривых и отрезков, отображающих эвольвентный профиль, в одну полилинию—для загрузки его на станок ЧПУ.
Не могу догнать. Подскажите, чтобы можно было разобраться—чего делать.
Последний раз редактировалось noorgoosh, 08.07.2010 в 09:20 .
Просмотров: 78331
Регистрация: 29.10.2004
Сообщений: 16,333
команда _pedit
согласиться, если будет необходимость, с конвертацией элемента в полилинию, выбрать опцию _Join (Объединить) и указать объекты, которые должны быть объединены в полилинию.
Есть одно «но». Вершины должны совпадать
Регистрация: 23.10.2006
Сообщений: 22,994
http://forum.dwg.ru/showthread.php?t=25515 и еще 100 тем в поиске
__________________
Правила форума Часто задаваемые Вопросы
Справка по форуму Поиск
Солидворкер |
Посмотреть профиль |
Найти ещё сообщения от Солидворкер |
Регистрация: 28.04.2010
Сообщений: 268
редактирование полилинии
Последний раз редактировалось PSG, 07.07.2010 в 12:45 .
Регистрация: 19.02.2010
Сообщений: 29
Сообщение от Хмурый
команда _pedit
согласиться, если будет необходимость, с конвертацией элемента в полилинию
так и делал.
на этом этапе выпадает меню, в котором не идёт никаких предложений по
Сообщение от Хмурый
выбрать опцию _Join (Объединить) и указать объекты, которые должны быть объединены в полилинию
Точнее, предлагается выбрать «несколько», я выбираю, затем выпадает это меню, в котором среди опций к выбору: «замкнуть, добавить, ширина, вершина и т.д.» никаких join (типа объединить) там нет. мне же не надо ничего замыкать, нужен лишь зубчатый сектор.
Сообщение от Хмурый
Есть одно «но». Вершины должны совпадать
вершины совпадают 100%, так как профиль мне другая программа состряпала, которую я уже переустановить успел, обновить, перенастроить.
Регистрация: 28.04.2010
Сообщений: 268
Русский AutoCAD? Тогда сначала выбрать Добавить, а потом Обратить
Регистрация: 29.10.2004
Сообщений: 16,333
Добавить=Объединить
Регистрация: 19.02.2010
Сообщений: 29
Сообщение от PSG
Русский AutoCAD?
Сообщение от PSG
Тогда сначала выбрать Добавить, а потом Обратить
Как в анекдоте: «там на «Ф» только фуфайка и флаг!»
Предлагаемые опции: «замкнуть, добавить, ширина, вершина СГладить, СПлайн,убрать сглаживание, тип лин, отменить».
Обратить не замечено.
Регистрация: 29.10.2004
Сообщений: 16,333
обращать ничего не надо, надо добавлять.
Регистрация: 19.02.2010
Сообщений: 29
я и добавляю. надобавлял отрезков и дуг, а потом же надо все выбранные объединить как-то. из всего того списка программа откликается только на «замкнуть»—при этом строится окружность по диаметру вершин зубьев. и никаких новых полилиний не появляется.
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,989
(defun c:l2pl (/)
(setvar «cmdecho» 0)
(princ «\n***Выберите группу линий (полилиний, дуг): «)
(setq cables (ssget ‘((0 . «*line,polyline,arc»))))
(vl-cmdf «_.pedit» «_m» cables «» «_j» «0.0001» «»)
(sssetfirst nil (ssadd (entlast)))
(princ)
) ;_ end of defun
Регистрация: 19.02.2010
Сообщений: 29
Сообщение от Nike
(defun c:l2pl (/)
(setvar «cmdecho» 0)
(princ «\n***Выберите группу линий (полилиний, дуг): «)
(setq cables (ssget ‘((0 . «*line,polyline,arc»))))
(vl-cmdf «_.pedit» «_m» cables «» «_j» «0.0001» «»)
(sssetfirst nil (ssadd (entlast)))
(princ)
) ;_ end of defun
Товарищ, это Вы мне?
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,989
ну да.
Это — программа объединения отрезков, дуг, линий в полилинию на основе _pedit с опцией _join
Регистрация: 29.10.2004
Сообщений: 16,333
noorgoosh, попробуйте не входить в режим «несколько»
Регистрация: 19.02.2010
Сообщений: 29
Сообщение от Nike
ну да.
Это — программа объединения отрезков, дуг, линий в полилинию на основе _pedit с опцией _join
Спасибо, конечно. Только у меня вопрос совершенно прикладной. Тупо загнать эту хрень на станок. Я даже не спрашиваю, что с этой программой делать, потому что в основном кнопочками пользуюсь. В программном интерфейсе тоже. Неужели нужно какими-то особыми знаниями обладать, чтобы ОБЪЕДИНИТЬ 2. 3 ОТРЕЗКА?
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,989
так вам надо «хрень на станок загнать» или 2-3 отрезка объединить и в одну полилинию преобразовать?
Регистрация: 19.02.2010
Сообщений: 29
Сообщение от Хмурый
noorgoosh, попробуйте не входить в режим «несколько»
Ничего не меняет. Загвоздка, кажется, в том, что мне после выбора серии этих кусков делать.
Регистрация: 29.10.2004
Сообщений: 16,333
нажимать ввод.
будет сообщено, сколько сегментов полилинии добавилось
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,989
Регистрация: 19.02.2010
Сообщений: 29
Я, кажется, проблему неправильно определял. Сейчас набросал рядом несколько отдельных полилиний—раз уж говорите, что этот способ должен работать. Объединяются этим способом.
Может, что-то с типом линий, которые нужно объединять? Про дуги внешн. и внутр.диаметр я понял—их надо в куски полилиний переводить, а вот каким типом линий построена собственно эвольвента и как тут быть, буду думать.
P.S. Поискал топики по этому вопросу в форуме. Что-то и в справке к Автокаду объединение дуг со сплайнами (тип этой кривой у зубьев) не отражается. Это делается, не знаете?
Последний раз редактировалось noorgoosh, 07.07.2010 в 14:21 .