Как разделить линию в Автокаде. Видеоурок
Команды Поделить и Разметить не пользуются особой популярностью в Автокаде, тем не менее они не заменимы при необходимости разделить линию на равные интервалы или участки определенной длины (разбить пикетаж по трассе, выполнить разбивку закруглений и т.п.).
Данных команд нет на стандартных панелях инструментов, если затрудняетесь с тем, как добавить их, читайте здесь.
Поделить линию на сегменты
Команда ПОДЕЛИТЬ (_DIVIDE) выполняет деление линии на заданное количество равных сегментов в следующем порядке:
1. Запустите команду из верхнего меню Рисование → Точка → Поделить или введя в командную сроку ПОДЕЛИТЬ (_DIVIDE).

2. Укажите линию (отрезок, полилиния, сплайн, окружность, дуга и т.п.) для деления на сегменты.
3. На запрос «Число сегментов или [Блок]:» пока укажите количество требуемых интервалов, опцию [Блок] рассмотрим позже.
Важно. Скорее всего, вы не увидите результата и решите, что команда не работает, но это не так. Дело в том, в качестве разделителей используются точки, внешний вид которых необходимо настроить для отображения на экране.
Вид точки в Автокаде
Настройка отображения вида точки выполняется так:
1. Вызовите окно «Отображение точек» выбрав в верхнем меню Формат → Отображение точек…

Или введя в командную сроку ДИАЛТТОЧ (_DDPTYPE).
2. Настройте отображение внешнего вида точки и размера к примеру как указано ниже.

Разметить линию на отрезки заданной длины
Деление линии на отрезки определенной длины происходит так:
1. Запустите команду из верхнего меню Рисование → Точка → Разметить .

Или введите в командную сроку РАЗМЕТИТЬ (_MEASURE).
2. Укажите объект для деления на отрезки сегменты определенной длины (трасса к примеру).
3. На запрос «Длина сегмента или [Блок]:» на этот раз выберите опцию блок (к примеру условное обозначение пикета).
Примечание. У вас должен быть заранее быть подготовлен блок, который будет выступать в качестве разделителя (его роль в предыдущем примере выполняла точка).
4. Заранее выпишите или скопируйте имя блока, которое необходимо будет ввести на запрос «Имя блока для вставки:».
5. Далее необходимо указать будет ли блок вращаться относительно линии на запрос «Согласовать ориентацию блока с ориентацией объекта? [Да/Нет] :»
6. Осталось только указать длину сегмента (скажем 100 м) и усе.
Полезно. Как посчитать сумму длин несколько линий читайте здесь.
Разделить линию на участки. Видеоурок
Подготовка видео по делению линии на участки в процессе…
Как разбить полилинию на участки различной длины? (Страница 1 из 3)
Форумы CADUser → Autodesk → AutoCAD → Как разбить полилинию на участки различной длины?
Страницы 1 2 3 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщения с 1 по 25 из 53
#1 Тема от Олег 15 сентября 2005г. 10:51:32
Тема: Как разбить полилинию на участки различной длины?
есть ли способ разметить полилинию на участки с различной длиной?
#2 Ответ от kpblc 15 сентября 2005г. 11:00:20
Re: Как разбить полилинию на участки различной длины?
_divide, только перед этим через ddptype поставь вид точек (если разбивать точками будешь)
#3 Ответ от Олег 15 сентября 2005г. 11:07:59
Re: Как разбить полилинию на участки различной длины?
> kpblc
насколько я понял _divide разбивает на заданное количество отрезков одинаковой длины, мне же необходимо разбить на отрезки различной длины. Например чтобы полилинию длиной 100 разбило на участки длиной 10, 20, 45, 15, 10.
#4 Ответ от kpblc 15 сентября 2005г. 11:28:05
Re: Как разбить полилинию на участки различной длины?
Кроме как руками (для прмых кусков) тут тяжело предложить что-то имхо. И непонятно, что делать, если в новой части полилинии участвует вершина. А что делать с дуговыми сегментами?
#5 Ответ от Alena 15 сентября 2005г. 11:31:10
Re: Как разбить полилинию на участки различной длины?
проще вычертить..
берешь полилинию и последовательно, допустим по горизонтали, откладываешь 10, 20, 45, 15, 10.
в местах стыковки будет срабатывать привязка Endpoint
#6 Ответ от Alena 15 сентября 2005г. 11:36:22
Re: Как разбить полилинию на участки различной длины?
> kpblc
с дугами сложнее, там еще радиус присутствует.
как сделать дугу, определенного радиуса и определенного размера, и последовательность дуг 10, 20, 45, 15, 10.
#7 Ответ от Владимир Громов 15 сентября 2005г. 11:38:46
Re: Как разбить полилинию на участки различной длины?
В принципе для ортогональных полилиний можно воспользоваться программой, которая описана здесь:
https://www.caduser.ru/forum/topic19844.html
Т.е. можно в начале полилинии нарисовать точку, настроенную на крест, а потом копировать ее с нужным шагом.
#8 Ответ от kpblc 15 сентября 2005г. 12:08:44
Re: Как разбить полилинию на участки различной длины?
> Alena
Не совсем про то, но тем не менее: в случае полилинии с дуговыми сегментами как мерять расстояние? Если по прямой, то все очень просто делается руками. Если по дуге — то надо дополнительные вычисления производить.
И по поводу «прямых» кусков: допустим, длина первого сегмента 100, второго — 150, третьего — 125. Сегменты располагаются под произвольными углами друг к другу в общем случае, но для примера возьмем через 22,5 градуса; первый сегмент — под углом 30 градусов к горизонтали; начало полилинии — в (0,0,0) — чтобы не было совсем все просто. Надо разбить по длинам (начиная с первого): 35, 22, 100, 120, сколько осталось (оставим в стороне пока вопрос о случае, если длины полилинии не хватает на все отрезки).
И в результате: на первом сегменте располагаются 2 точки с координатами соответственно (30.31,17.5) и (49.36,28.5), а вот дальше начинается чехарда. До следующей точки меряем по прямой? Если да, то ее координаты будут (122.46,96.74), а если по полилинии (т.е. дошли до вершины, померяли расстояние, и от нее — дальше), то получается уже что-то около (121.30,95.22). Дальше — больше.
Казалось бы, разница копеечная, но при больших длинах набежит нехилая погрешность, если с этим делом не определиться.
Можете проверить — прав ли я, а то мне уже и самому интересно становится
—
И все это не совсем ИМХО.
Форумы GIS-Lab.info
Здравствуйте! Подскажите, пожалуйста, утилиту или способ для решения следующей задачи в MapInfo: необходимо в автоматическом режиме разбить полилинию на равные отрезки. Заранее спасибо!
Клим Интересующийся
Сообщения: 24 Зарегистрирован: 29 авг 2011, 16:51
Репутация: 1
Re: Как разбить полилинию на равные отрезки?
Сообщение Клим » 03 окт 2011, 06:30
Если полилиния прямая то никаких проблем просто с помощью mapcad строишь перпендикуляр и смещаешь его параллельно на заданное расстояние, в точках пересечения разрезаешь полилинию.
Если же нет то без программирования не обойтись, надо покапать в сторону функций objectinfo, ObjectLen. Если интересно могу расписать поподробнее.
Qwercus Новоприбывший
Сообщения: 14 Зарегистрирован: 17 сен 2011, 23:18
Репутация: 0
Re: Как разбить полилинию на равные отрезки?
Сообщение Qwercus » 03 окт 2011, 13:11
Спасибо за ответ!
Увы, полилиня кривая, изображает реку.
Поскольку в программировании не силён, прошу Вас, если это не затруднит, расписать подробнее.
Сообщения: 4205 Зарегистрирован: 10 апр 2006, 22:34 Статьи: 3 Проекты: 1
Репутация: 433 Откуда: Париж
Re: Как разбить полилинию на равные отрезки?
Сообщение Boris » 03 окт 2011, 13:15
описание задачи недостаточно для ее решения, т.к. имеет две неоднозначности:
а) направление полилиний — от начала к концу и от конца к началу — это будут совершенно разные точки
б) что происходит при достижении границы отрезка составляющего отдельный сегмент линии — счет прекращается или переноситься на следующий отрезок
Кроме того, при достаточно больших границах карты, отрезки не смогут точно передать линию, т.к. их концы будут сильно отстоять от самой линии. Эта тема уже несколько раз обсуждалась на форуме.
Сообщения: 4205 Зарегистрирован: 10 апр 2006, 22:34 Статьи: 3 Проекты: 1
Репутация: 433 Откуда: Париж
Re: Как разбить полилинию на равные отрезки?
Сообщение Boris » 03 окт 2011, 13:50
Кроме того, полилиния в мапинфо может состоять из нескольких сегментов — как ветви у дерева. Тут решение просто не возможно предсказать.
Qwercus Новоприбывший
Сообщения: 14 Зарегистрирован: 17 сен 2011, 23:18
Репутация: 0
Re: Как разбить полилинию на равные отрезки?
Сообщение Qwercus » 03 окт 2011, 14:14
Boris, спасибо за замечания!
а) В данной задаче не имеет значения направление, лучше, если это будет от начала к концу.
б) данный пункт не совсем понял, возможно, нижеприведённые объяснения снимут данный вопрос.
Как Вы справедливо заметили, я не совсем верно обрисовал задачу.
Дано: полилиния (река);
Необходимо (устроит два варианта решения):
1) полилинию от точки начала до точки конца или наоборот разбить на n полилиний равных по длине (1 км).
2) автоматически на исходной полилинии через каждый километр поставить точку.
Boris писал(а): Эта тема уже несколько раз обсуждалась на форуме
Прошу прощения, знаю. не приветствуется. Перед созданием данной темы я постарался ознакомиться с уже существующими, однако приемлемого способа решения не нашёл. Я надеялся, Boris, что Вы мне поможете, поскольку в одной из тем (viewtopic.php?f=2&t=6844&p=37643&hilit= . %B2#p37643), Вами было указано:
Boris писал(а): Программа для разбивки полилинии приводилась мной на форуме MapInfo
К сожалению, мне не удалось найти этого сообщения, но к счастью, Вы написали раньше, чем я успел к вам обратиться.
p.s. полилиния без ответвлений (просто кривая линия)
Сообщения: 4205 Зарегистрирован: 10 апр 2006, 22:34 Статьи: 3 Проекты: 1
Репутация: 433 Откуда: Париж
Re: Как разбить полилинию на равные отрезки?
Сообщение Boris » 03 окт 2011, 17:57
Вот программа на VisualBasic’е.
Pack2.rar (2.85 МБ) 776 скачиваний
Были жалобы, что она не заработала на каких-то машинах
Запускать ее надо для каждой выделенной линии при работающей MapInfo. Она реализована для произвольного размещения точек. Для регулярного — необходимо этот регулярный список создать.
—
Теперь относительно б)
Простая ломаная линии состоит из отдельных отрезков. Как обрабатывается случай, когда остаток длины отрезка меньше шага расстановки вдоль линии? Возможны два варианта — точка ставится в конце отрезка, или от начала следующего отрезка откладывается остаток, который не удалось отложить на предыдущем отрезке. Во втором случае новая полилиния будет «срезать» углы между двумя отрезками исходной линии, а то и игнорировать некоторые из отрезков.
Qwercus Новоприбывший
Сообщения: 14 Зарегистрирован: 17 сен 2011, 23:18
Репутация: 0
Re: Как разбить полилинию на равные отрезки?
Сообщение Qwercus » 03 окт 2011, 19:05
Boris, спасибо Вам!
К сожалению, программа не «увидела» мою MI. Однако я еще попробую на другой машине. Спасибо, утилита приятная!
Поскольку на данный момент задача всё ещё не решена, могу ли я спросить о других способах?
Что касается б) — в данном случае не критично. Подойдут оба варианта решения. Необходимости в очень точных результатах нет, погрешности длин в 5% приемлемы.
Сообщения: 4205 Зарегистрирован: 10 апр 2006, 22:34 Статьи: 3 Проекты: 1
Репутация: 433 Откуда: Париж
Re: Как разбить полилинию на равные отрезки?
Сообщение Boris » 04 окт 2011, 10:39
Задача проста для решения, но требует элементарного программирования. Самое очевидное решение — экспорт в текстовый формат MIF с последующим обходом.
Как расчленить объекты в Автокад
В этом уроке мы ответим на вопрос: «Как расчленить в Автокад сложные объекты на объекты примитивы?«.
Довольно часто как в 2D проектировании Автокад, так и в 3D моделировании требуется расчленить (разбить) сложные объекты на составляющие объекты примитивы. Расчлинение, разбитие объектов в Автокад требуется для дальнейшего их редактирования, когда функционала расширенных команд редактирования не достаточно.
К сложным/составным объектам в Автокад можно отнести: полилинию, мультилинию, многострочные тексты, мультивыноски и т.д. Можно расчленять любые составные объекты в Автокад включая блоки, штриховки, 3D тела, сети и т.д.
Команда Расчленить в Автокад
Способы вызова команды Расчленить:
Вызвать команду «Расчленить» в Автокад можно одним из следующих способов:
- строка меню пункт «Редактировать» — строка «Расчленить» в Автокад:
- вкладка «Главная» ленты инструментов — в группе инструментов «Редактирование» — кнопка в Автокад (инструмент) «Расчленить»;
- панель инструментов Редактирование — кнопка (инструмент) Расчленить;
- либо прописать наименование команды в командной строке Автокад «Расчленить».



Команда «Расчленить» в Автокад не циклическая команда, поэтому автоматически завершает свое выполение после расчлиленения составного объекта, а также работает как с предварительным выбором объектов, так и после вызова самой команды.
Рассмотрим результаты применения команды Расчленить в Автокад для каждого из следующих типов объектов:
Как расчленить блок в Автокаде
Блок — это сложный составной объект, поэтому его можно расчленить в Автокад на составляющие объекты примитивы. Разделение блока в Автокад на составные части, а именно на исходные объекты из которых он формировался, необходимо для быстрого редактирования блока базовыми и расширенными командами редактирования (без использования редактора блоков). «Как расчленить блок в Автокад/взорвать блок в Автокад?» — воспользоваться командой «Расчленить».
Чтобы разбить блок в Автокад включайющий в себя сложные объекты и другие блоки, потребуется применить к нему несколько раз (повторно) команду «Расчленить» (применение нескольких уровней вложенности блока). Принцип вложенности уровней применим и к массивам в Автокад.
Следует учитывать, что при расчленении блока в Автокад содержащего атрибуты блока, значения атрибутов удалаются (остаются только их описания). Круги, дуги в неоднородно масштабируемых блоках при расчлилении в Автокад преобразуются в эллиптические дуги, эллипсы.