| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как в Autocad cсоздать мультилинию с закруглениями?

Как в Autocad cсоздать мультилинию с закруглениями?

Ответ
Поиск в этой теме
Непрочитано 27.01.2015, 17:51 #1
Как в Autocad cсоздать мультилинию с закруглениями?
Leonid_Iv
 
инженер-проектировщик
 
г. Витебск
Регистрация: 04.07.2014
Сообщений: 36

Подскажите, как в Autocad создать линию (мильтилинию, полилинию), которая сам бы учитывала закругления? Тем самым имитировала арматуру

Миниатюры
Нажмите на изображение для увеличения
Название: 2015-01-27 17-47-11 Скриншот экрана.png
Просмотров: 336
Размер:	7.6 Кб
ID:	142633  

Просмотров: 17151
 
Непрочитано 27.01.2015, 21:02
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Два шага
  1. Никак
  2. Смирись
  1. Через flatten разбить до отрезков
  2. Выполнить _fillet
  3. Объединить в полилинию
  1. Изучить ObjectARX
  2. Создать свой тип примитива
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 28.01.2015, 02:41
#3
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


Имею что добавить по варианту 2.
1. В 2011-м мультилиния разбивается штатной командой _EXPLODE.
3. Отрезки, полученные после разбивки мультилинии можно объединить в полилинию командой PL-JOIN из этой темы.
2. В помощь при сопряжении (fillet) сгодится примитивный лиспик (EX-FILLET) отсюда. Отличие его от штатного сопряжения в том, что он может скруглить вершины сразу множества полилиний. Именно полилиний, а не отрезков, поэтому я сознательно поменял местами пункты 2 и 3.

См. #6

Последний раз редактировалось skkkk, 28.01.2015 в 14:48.
skkkk вне форума  
 
Непрочитано 28.01.2015, 06:53
#4
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 433


Если Автокад 2015 то:

1. Начертить полилинию
2. Выполнить ту самую _fillet (Сопряжение)
3. Выбрать вариант выполнения функции "Полилиния"
4. Ткнуть в полилинию
5. Profit!

З.Ы. Одно "НО". В варианте с арматурой радиус закругления внутренний и внешний - различные, соответственно, задание не выполнено... Поэтому всё-таки "вариант 2" крЫса. Единственное, что можно добавить, у команды _fillet есть опция "Несколько", что немного ускорит работу.

Последний раз редактировалось RNB, 28.01.2015 в 07:13.
RNB вне форума  
 
Непрочитано 28.01.2015, 08:43
#5
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391


Цитата:
Сообщение от skkkk Посмотреть сообщение
что он может скруглить вершины сразу множества полилиний.
Эта опция есть и в обычном скруглении. ))
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 28.01.2015, 14:45
#6
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


Цитата:
Сообщение от Bull Посмотреть сообщение
Эта опция есть и в обычном скруглении. ))
Цитата:
Сообщение от RNB Посмотреть сообщение
у команды _fillet есть опция "Несколько", что немного ускорит работу.
Опция "Несколько" бесспорно есть и в обычном скруглении (_FILLET), но там она как работает? Нужно попарно прокликать каждые два сегмента вблизи каждой вершины полилинии. Есть там и опция "Полилиния", которая позволяет выбрать только одну полилинию - и в ней скругляет все сегменты. А EX-FILLET позволит выбрать сколько угодно полилиний и только их, и скруглит сразу все.

Цитата:
Сообщение от RNB Посмотреть сообщение
Одно "НО". В варианте с арматурой радиус закругления внутренний и внешний - различные, соответственно, задание не выполнено...
Нехилое такое "НО"... Перечеркивает все планы.
Тогда новый план действий:
1. Отрисовываем полилинию. Поставив первую ее точку выбираем опцию "Ширина" и вводим два раза (начальная и конечная ширина сегмента) нужную величину. Далее рисуем столько полилиний, сколько нужно. Можно и наоборот: сразу отрисовать все с нулевой шириной, а затем, выбрав их все, в свойствах назначить нужную ширину.
2. Командой EX-FILLET закругляем все углы всех этих полилиний с нужным радиусом. Брать здесь.
3. Командой MPOLYOUTLINE отсюда выполняем (от слова "полый") все предварительно отрисованные, расширенные и скругленные полилинии.
4. PROFIT.
Offtop: Я угадаю эту мелодию с четырех нот!
skkkk вне форума  
 
Непрочитано 28.01.2015, 15:03
#7
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 433


Цитата:
Сообщение от skkkk Посмотреть сообщение
Offtop: Я угадаю эту мелодию с четырех нот

Цитата:
Сообщение от skkkk Посмотреть сообщение
Командой MPOLYOUTLINE
Залейте её сюда кто-нибудь, пожалуйста. Не открывается ссылка... А пригодиться может.
RNB вне форума  
 
Непрочитано 28.01.2015, 15:07
1 | #8
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


Цитата:
Сообщение от RNB Посмотреть сообщение
Залейте её сюда кто-нибудь, пожалуйста. Не открывается ссылка... А пригодиться может.
Заливаю. Thanks a lot for Lee Mac
Миниатюры
Нажмите на изображение для увеличения
Название: PolyOutline.gif
Просмотров: 3659
Размер:	53.6 Кб
ID:	142706  
Вложения
Тип файла: lsp PolyOutlineV1-1.lsp (7.8 Кб, 76 просмотров)
skkkk вне форума  
 
Непрочитано 29.01.2015, 06:12
#9
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 433


Цитата:
Сообщение от skkkk Посмотреть сообщение
Заливаю. Thanks a lot for Lee Mac
Спасибо и тебе и Ли Маку
RNB вне форума  
 
Непрочитано 13.10.2017, 14:57
#10
AlexKniga


 
Регистрация: 26.07.2012
Сообщений: 157


Цитата:
Сообщение от skkkk Посмотреть сообщение
1. Отрисовываем полилинию. Поставив первую ее точку выбираем опцию "Ширина" и вводим два раза (начальная и конечная ширина сегмента) нужную величину. Далее рисуем столько полилиний, сколько нужно. Можно и наоборот: сразу отрисовать все с нулевой шириной, а затем, выбрав их все, в свойствах назначить нужную ширину.
2. Командой EX-FILLET закругляем все углы всех этих полилиний с нужным радиусом. Брать здесь.
3. Командой MPOLYOUTLINE отсюда выполняем (от слова "полый") все предварительно отрисованные, расширенные и скругленные полилинии.
4. PROFIT.
Цитата:
Сообщение от http://www.lee-mac.com/polyoutline.html
The program is currently restricted to LWPolylines without arc segments or self-intersection.
(M)POLYOUTLINE V1-1 НЕ работает со скругленными полилиниями.
Есть работающий вариант?
AlexKniga вне форума  
 
Непрочитано 13.10.2017, 15:32
#11
Setvar


 
Регистрация: 10.02.2007
Москва
Сообщений: 611


Название темы некорректно, поскольку мультилинию не скуруглить никак.
Setvar вне форума  
 
Непрочитано 13.10.2017, 19:17
#12
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


AlexKniga, там же есть еще Advanced Polyline Outline. Но тоже есть свои "бяки". Где-то тут (видимо, в какой-то параллельной вветке) точно это обсуждали. Там если дуговые сегменты построены вручную, и угол (относительно оси ОХ, иными словами, угол касательной) начала дугового сегмента не будет совпадать с углом конца предыдущего сегмента, то полилиния "опустошится" некорректно.
skkkk вне форума  
 
Непрочитано 13.10.2017, 19:22
#13
AlexKniga


 
Регистрация: 26.07.2012
Сообщений: 157


Спасибо, уже нашел:
http://forum.dwg.ru/showthread.php?t=140047
AlexKniga вне форума  
 
Непрочитано 13.10.2017, 21:42
#14
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от Setvar Посмотреть сообщение
Название темы некорректно, поскольку мультилинию не скуруглить никак.
Штатными средствами никак и с помощью лисп никак, а вот на C# или C++ стоит попробовать, может неплохо получиться.

Последний раз редактировалось Boxa, 13.10.2017 в 21:49. Причина: или
Boxa вне форума  
 
Непрочитано 13.10.2017, 22:02
#15
Setvar


 
Регистрация: 10.02.2007
Москва
Сообщений: 611


Цитата:
Сообщение от Boxa Посмотреть сообщение
а вот на C# или C++ стоит попробовать
На C# или C++ можно попробовать и объект "Арматура" создать без всякой мультилинии. Попробовать некому.
Setvar вне форума  
 
Непрочитано 14.10.2017, 09:16
#16
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Offtop:
Цитата:
Сообщение от Setvar Посмотреть сообщение
Попробовать некому.
Почему некому, кто хотел уже давно попробовали.
За себя скажу, что сам пару лет назад в припадке изучения MultiCAD.NET писал для себя такое, это оказалось не сложнее хорошего динамического блока.
Или вот пример : http://www.autorebar.com/ (Это не реклама, это пример которым сам пользуюсь) человек упорно развивает продукт... правда он теперь стал платным (хинт: старые версии , вроде до 1.3, не требовали регистрации и были бесплатны)
Вся штука в том, что пользователи хотят здесь, сейчас и бесплатно, а самаритян не много и они заняты другими делами. =о)


Самое простое решение, оставаясь в области штатных возможностей автокада, это посмотреть на опыт западных коллег, которые свели все многообразие форм арматуры к некоторому конечному списку и создать коллекцию динамических блоков в соответствии с этил списком (гуглить: rebar shape code).

Если слегка применять программирование, то наверное проще написать что-то типа команд _chamfer / _filet для мультилиний, и получить на выходе аппроксимацию

В предыдущем своем сообщении, я ошибся по поводу невозможности использования лисп.

Последний раз редактировалось Boxa, 14.10.2017 в 10:00.
Boxa вне форума  
 
Непрочитано 14.10.2017, 10:32
#17
Setvar


 
Регистрация: 10.02.2007
Москва
Сообщений: 611


Цитата:
Сообщение от Boxa Посмотреть сообщение
Если слегка применять программирование, то наверное проще написать что-то типа команд _chamfer / _filet для мультилиний, и получить на выходе аппроксимацию
Речь в названии темы идет о скруглении мультилинии, а не аппроксимации дуг отрезками.
Boxa, ну, чего ты упираешься. Всякие приложения для конструирования давно написаны.
Setvar вне форума  
 
Непрочитано 14.10.2017, 11:36
#18
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от Setvar Посмотреть сообщение
Речь в названии темы идет о скруглении мультилинии , а не аппроксимации дуг отрезками.
К сожалению Автодеск не развивает этот инструмент (впрочем как например и MPolygon) поэтому "скруглить" углы мультилинии можно только аппроксимацией, которая на листе бумаги будет не видна.

Упираюсь? Скругление мультилинии это попытка упростить работу в рисовании арматуры, о чем автор указал в самом начале, а эту задачу можно решить другими способами. Я озвучил те решения этой задачи, которые не были упомянуты. Как именно поступить и какой способ выбрать, каждый решит сам.
Offtop: Меня в названии темы, больше смущает слово "cсоздать", а не "закругление"
Boxa вне форума  
 
Непрочитано 16.10.2017, 22:11
#19
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,030


Начертить полилинией по оси, и заменить на мультилинию pl2ml.vlx.
Вложения
Тип файла: rar pl2ml.rar (1.3 Кб, 59 просмотров)
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 17.10.2017, 08:41
#20
Setvar


 
Регистрация: 10.02.2007
Москва
Сообщений: 611


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Начертить полилинией по оси, и заменить на мультилинию pl2ml.vlx.
И получается хрень без закруглений.
Setvar вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как в Autocad cсоздать мультилинию с закруглениями?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно подгрузить тяжелый растр? mixey AutoCAD 6 01.08.2014 19:59
Интеграция Autodesk СПДС в AutoCAD 2012 bolotov Прочее. Программное обеспечение 24 07.01.2013 20:22
Превратить AutoCAD Map 3D в обычный AutoCAD (по панелям) gizmo_zx Вертикальные решения на базе AutoCAD 3 24.08.2011 11:25
В русской версии AutoCAD 2010 SP1 32-bit файл Acad.PGP содержит ошибки. hwd Баги и пожелания в Autodesk 21 21.04.2010 20:27
Что нового в AutoCAD 2005 ilka_t AutoCAD 40 19.05.2004 16:48