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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Распределение точек по полилинии с определенным расстоянием между ними ПО ПРЯМОЙ

Распределение точек по полилинии с определенным расстоянием между ними ПО ПРЯМОЙ

Ответ
Поиск в этой теме
Непрочитано 13.10.2010, 17:21 #1
Распределение точек по полилинии с определенным расстоянием между ними ПО ПРЯМОЙ
Prestan
 
Регистрация: 27.12.2009
Сообщений: 5

Здравствуйте. Как сделать распределение точек по полилинии с определенным расстоянием между ними ПО ПРЯМОЙ.

Можно слетать это вручную. Надо вокруг первой точки провести окружность и в месте пересечения ее с полилинией и будет нужная следующая точка. Хотелось бы этот процесс автоматизировать.Спасибо.
Просмотров: 4310
 
Непрочитано 13.10.2010, 17:32
#2
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


Команды
_divide
_measure
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 13.10.2010, 21:53
#3
Кулик Алексей aka kpblc
Moderator

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


Вручную - только так, как описано: окружность - точка пересечения, переместить окружность.
Или тема не в том разделе, и ее надо в программирование переместить?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 14.10.2010, 15:05
#4
Prestan


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Вручную - только так, как описано: окружность - точка пересечения, переместить окружность.
Или тема не в том разделе, и ее надо в программирование переместить?
Я не занимался не разу программирование. Я надеюсь что для моей задачи есть специальная команда.

Команд _divide и _measure , мне не подходят. Т.к. одна размечает полилинию на равные участки заданной длинны, а другая размечает на заданное колличество участков равной длинны.

А мне надо, чтобы каждая следующая точка на полилинии ставилась так, чтобы расстояние по ПрямоЙ(не по полилинии) до предыдущий точки равнялась заданному значению.

Мне надо распределить габионы (прямоугольники) по откосу так, чтобы габионы по верхней стороне были вплотную.
Prestan вне форума  
 
Непрочитано 14.10.2010, 15:13
#5
Victor


 
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295


Нарисуй полилинию по "Прямой".
Victor вне форума  
 
Непрочитано 14.10.2010, 15:21
#6
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,010


---

Последний раз редактировалось Nike, 14.10.2010 в 15:41.
Nike вне форума  
 
Автор темы   Непрочитано 14.10.2010, 15:23
#7
Prestan


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


Вот пример. Делал вручную как описал в вопросе.
Вложения
Тип файла: dwg
DWG 2004
Пример Prestan.dwg (985.2 Кб, 842 просмотров)

Последний раз редактировалось Prestan, 14.10.2010 в 15:44.
Prestan вне форума  
 
Непрочитано 14.10.2010, 21:06
#8
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


Кулик Алексей aka kpblc, пользователю лисп нужен.
Хмурый вне форума  
 
Непрочитано 14.10.2010, 21:55
#9
Victor


 
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295


Попробуй. Должен нарисовать полилинию с заданным расстоянием по "прямой". А по этой полилинии разноси блоки. Программ полно.
Код:
[Выделить все]
(vl-load-com) 
(defun c:d2p ( / snp dis pln dis_pl krd_0 dis_run krd_run dlt_dis sp_pl ln j)
(setq snp (getvar "Osmode"))
(setvar "Osmode" 0) 
(setq dis (getreal "Distance?  "))
(setq pln (car (entsel)))
(setq dis_pl (vlax-curve-getDistAtParam pln (vlax-curve-getEndParam pln)))
(setq krd_0 (vlax-curve-getPointAtDist pln 0.0))
(setq dis_run dis sp_pl nil)
(while(< dis_run dis_pl) 
 (setq krd_run (vlax-curve-getPointAtDist pln dis_run))
 (repeat 2
 (setq dis_run (vlax-curve-getDistAtPoint pln krd_run))
 (setq dlt_dis (abs(- dis (distance krd_run krd_0))))
 (setq dis_pln (+ dis_run dlt_dis))
 (setq krd_run (vlax-curve-getPointAtDist pln dis_pln))
 )
 (setq sp_pl (append sp_pl (list krd_run))) 
 (setq dis_run (vlax-curve-getDistAtPoint pln krd_run))

 (setq krd_0 krd_run)
 (setq dis_run (+ dis_run dis))
)
(if (/= nil sp_pl)
 (progn
 (setq ln (-(length sp_pl)1) j 0)
 (vl-cmdf "_.pline" (nth 0 sp_pl))
 (repeat ln
   (setq j (+ j 1))
   (vl-cmdf (nth j sp_pl))
 )
 (vl-cmdf "")
 ) ;progn
) ;if
(setvar "Osmode" snp)
)
Victor вне форума  
 
Непрочитано 14.10.2010, 22:16
#10
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Хмурый Посмотреть сообщение
Кулик Алексей aka kpblc, пользователю лисп нужен.
Так вроде как есть уже: PL-NoArc -Аппроксимация дуговых сегментов полилинии
Цитата:
Команда: PL-NoArc

Выберите режим апроксимации дуговых сегментов
[количество сегментов N/длина сегмента L/предельное отклонение хорды S/длина хорды C/помощь H]:
Если я правильно понял проблему
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 14.10.2010, 22:54
#11
Victor


 
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295


Жаль что только на русском
Victor вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Распределение точек по полилинии с определенным расстоянием между ними ПО ПРЯМОЙ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интерполяция отметок вершин полилинии между двумя заданными точками Кочетков Андрей Программирование 7 22.07.2019 20:14