Как в нанокаде объединить отрезки в полилинию
Перейти к содержимому

Как в нанокаде объединить отрезки в полилинию

  • автор:

Как сделать преобразование отрезков в полилинию с указанием начального и конечного сегментов?

Форумы 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 объединить линии

Kak v nanoCAD ob#edinit

Kak v nanoCAD ob#edinit

Визуально на чертежи оба отрезка выглядят как один объект, но если с помощью мышки выделить часть объекта —

Kak v nanoCAD ob#edinit

то увидите, что выделился только один отрезок, второй остался незадействованным.

Kak v nanoCAD ob#edinit

Но нам необходимо сделать так, чтобы оба отрезка выделялись при наведении курсора мыши на один из них. Для этого следует объединить эти отрезки, преобразовав их в единую полилинию nanoCAD.

  • вызываем функцию Редактирование полилинии. Вызвать ее можно следующими способами:
  1. переходим на Строка меню — Редактировать – Объект – Полилиния; Kak v nanoCAD ob#edinit
  2. на панели Редактирование 2 кликнуть по иконке Редактирование полилинии ; Kak v nanoCAD ob#edinit
  3. ввести в командную строку одну из команд PE,PEDIT,ПОЛРЕД,ПРД.
  • после активации команды Редактирование полилинии, выбранным из выше изложенных способов, укажите на одну из линий;

Kak v nanoCAD ob#edinit

В командной строке Вы увидите следующее сообщение:

Kak v nanoCAD ob#edinit

В нашем случаи это не полилиния, а обычный отрезок, но мы его сейчас таким и сделаем.

  • после выбора линии, в командной строке появится сообщение о том, преобразовать выбранный объект в полилинию или нет;

Kak v nanoCAD ob#edinit

Для подтверждения жмем клавишу Enter (или кликаем в командной строке на Да; или вводим в командную строку Y; или вызываем правой кнопкой мыши меню и выбираем Да).

Kak v nanoCAD ob#edinit

  • теперь в командной строке кликаем на Добавить ( или кликаем в командной строке на Добавить; или вводим в командную строку Добавить; или вызываем правой кнопкой мыши меню и выбираем Добавить).
  • указываем на вторую линию;

Kak v nanoCAD ob#edinit

  • жмем два раза клавишу Enter (или кликаем в командной строке на Завершить и жмем клавишу Enter; или вводим в командную строку Завершить; или вызываем правой кнопкой мыши меню и выбираем Ввод (вызываем окно 2 раза)).

Kak v nanoCAD ob#edinit

  • теперь объединение линий в nanoCAD завершено. При наведении курсора мыши или выделении одного из отрезков, второй также будет выделен.

Kak v nanoCAD ob#edinit

Это означает, что оба отрезка были объедены и преобразованы в полилинию.

Таким же способом Вы можете объединить более 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 .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *