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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Рисование полилинии по другому объекту с привязкой

Рисование полилинии по другому объекту с привязкой

Ответ
Поиск в этой теме
Непрочитано 26.03.2010, 09:48 #1
Рисование полилинии по другому объекту с привязкой
jagr
 
Регистрация: 26.03.2010
Сообщений: 8

Здравствуйте!

Давно мучает вопрос: существует ли в AutoCAD 2008 (либо в другой версии) возможность рисования части полилинии по существующему объекту (например, по другой полилинии) с точным повторением контура существующего объекта (с привязкой к каждой точке), без указания каждой точки существующего объекта.

Работал с Панораммой и MapInfo, там эта функция реализована, в AutoCAD так найти и не смог. Для иллюстрации приведу пример того, как это реализовано в MapInfo: рисую линию 1, дохожу до точки на линии 2, привязываюсь к точке 2.1 на линии 2, зажимаю шифт и указываю точку 2.2 на линии 2 (между точками 2.1 и 2.2 может быть множество вершин линии 2), программа рисует мне линию 1 по линии 2 точно повторяя ее контур (все это время функция рисовки линии не прерывается). В Панорамме реализовано иначе, но надеюсь смысл вопроса уже понятен.

С уважением.

Последний раз редактировалось jagr, 26.03.2010 в 10:56.
Просмотров: 15304
 
Непрочитано 26.03.2010, 09:59
#2
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Если полилинию обводить, то проще скопировать полилинию саму на себя. Для других объектов можно дополнительно к другим привязкам использовать привяку "_nea" ("бли"). Но точки придется указывать.
Profan вне форума  
 
Непрочитано 26.03.2010, 10:09
#3
zenon

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


_pline
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 26.03.2010, 10:10
#4
BM60


 
Регистрация: 08.02.2008
Где-то
Сообщений: 8,460


jagr, когда-то мне такая идея приходила в голову, но цель была другая, и решилась она копированием на другой слой.
Но сейчас мне просто интересно, какая у тебя цель так точно повторять? И не понимаю относительно "привязки без указания другой точки привязки".
Пояснишь?
__________________
Я дарю не рыбу, а удочку и море.
www.zodchii.ws,
Библиотеки электронных книг
Download
BM60 вне форума  
 
Непрочитано 26.03.2010, 10:28
#5
KennyMckormik


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


Есть такой шедевр производства VVA & co
входит в набор PL-XX
называется PL_CLONE
__________________
Timeo Danaos et dona ferentes :eek:
KennyMckormik вне форума  
 
Автор темы   Непрочитано 26.03.2010, 10:31
#6
jagr


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


Profan, копирование действительно самый очевидный вариант из тех, что мне пришли в голову, но этот метод достаточно трудоемок, если такие операции используются часто.

BM60, нужна отрисовка отдельных замкнутых (ну или не замкнутых) полилиний (условно назову их полигонами) с точным повторением контуров на местах их стыковки. Такой метод цифрования используется, например, в современной цифровой картографии. По поводу привязки, имеется в виду привязка без указания каждой точки полилинии на отрезке к которому необходимо привязаться (то есть я указываю не 100000000000 точек из которых состоит отрезок полилинии, а лишь 2-3, определяющих направление привязки).

KennyMckormik, PL-XX что это? Что из себя представляет PL_CLONE?
jagr вне форума  
 
Непрочитано 26.03.2010, 10:41
#7
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Интересно узнать, а что обводить приходится? Если отрезки и полилинии, то совсем не надо указывать 10000000000000000000 точек, достаточно указать начальную и конечную точки для отрезков и вершины и вторые точки дуговых сегментов (если они есть) для полилиний. Если обводятся сплайны, то тут уже надо указать как можно больше точек для лучшей аппроксимации.
Profan вне форума  
 
Автор темы   Непрочитано 26.03.2010, 10:47
#8
jagr


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


Profan, обводить надо полилинии, но из Вашего объяснения я, к сожалению, не понял как это сделать средствами AutoCAD не указывая каждую вершину (которых на линии може быть 1000000000000)

Приношу извинения, если запутал использовав термин "точка" для "вершины полилинии".
jagr вне форума  
 
Непрочитано 26.03.2010, 10:51
#9
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Вершины полилиний придется указывать. А сами исходные полилинии состыкованы?
Profan вне форума  
 
Непрочитано 26.03.2010, 10:57
#10
sbi


 
Регистрация: 27.04.2008
SPB
Сообщений: 3,285
Отправить сообщение для sbi с помощью Skype™


Цитата:
Сообщение от jagr Посмотреть сообщение
Давно мучает вопрос: существует ли в AutoCAD 2008 (либо в другой версии) возможность рисования части полилинии по существующему объекту (например, по другой полилинии) с точным повторением контура существующего объекта (с привязкой к каждой точке), без указания каждой точки существующего объекта.
Переведи на русский!
__________________
С уважением sbi
sbi вне форума  
 
Автор темы   Непрочитано 26.03.2010, 10:58
#11
jagr


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


Исправил пример в первом сообщении:

Рисую линию 1, дохожу до точки 2.1 на линии 2, привязываюсь к точке 2.1 на линии 2, зажимаю шифт и указываю точку 2.2 на линии 2 (между точками 2.1 и 2.2 может быть множество вершин линии 2), программа рисует мне линию 1 по линии 2 точно повторяя ее контур (все это время функция рисовки линии не прерывается).

Profan, какие исходные полилинии имеются ввиду?

sbi, возможно исправленый конкретный пример поможет понять то, что нуждается для Вас в переводе с русского на русский.
jagr вне форума  
 
Непрочитано 26.03.2010, 11:00
#12
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Да которые обводить надо. А твое уточнение все равно непонятно. В AutoCAD'е такого приема нет.
Profan вне форума  
 
Автор темы   Непрочитано 26.03.2010, 11:04
#13
jagr


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


Profan вот как раз вопрос первого поста в том и состоит есть такой прием или нет, как это реализовать другими средствами я знаю.
jagr вне форума  
 
Непрочитано 26.03.2010, 11:11
#14
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Если исходные полилинии состыкованы, то можно выделить их все, выполнить копирование на себя и получившийся новый набор отдельных полилиний объединить в одну полилинию.
Profan вне форума  
 
Автор темы   Непрочитано 26.03.2010, 11:23
#15
jagr


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


Profan, это совсем другой прием
jagr вне форума  
 
Непрочитано 26.03.2010, 11:24
#16
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Другой. Но и программа другая.
Profan вне форума  
 
Непрочитано 26.03.2010, 14:07
#17
АлексЮстасу

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


Цитата:
Сообщение от jagr Посмотреть сообщение
нужна отрисовка отдельных замкнутых (ну или не замкнутых) полилиний (условно назову их полигонами) с точным повторением контуров на местах их стыковки. Такой метод цифрования используется, например, в современной цифровой картографии.
Да, для пользователей Автокада-картографов это проблема.
1. Шикарно было бы пользоваться командой создания замкнутых контуров в виде полилинии после указания внутренней точки области - BOUNDARY (КОНТУР). Только эта команда кривая (см. раздел "Баги").
2. Вполне можно "бить через дымоход" - создавать Hatch (штриховку), указывая все элементы, составляющие границу нужной области, потом с помощью команды (по правой кнопке) Generate Boundary создаем границу этой штриховки в виде AEC Polygon, а потом (по правой кнопке) конвертируем его в единую полилинию - Convert To->Polyline. Удобно тем, что нужно указывать не начало-конец полилиний, а прямо сами полилинии. И тем, что в местах пересечений полилиний не обязательно не обязательно должны быть узлы. И тем, что штриховки позволят контролировать правильность полученной площади. Потом штриховку удаляем, остается искомая замкнутая полилиния.
3. С помощью Autocad Map 3D можно создавать топологические площадные модели, указывая или набор полилиний (можно сразу для многих областей, а можно только для одной области), или только слои, в которых лежат нужные полилинии. Потом конвертируем эти "топологии" в замкнутые полилинии (Create closed polylines). Правда, исходные полилинии необходимо сначала основательно подготовить: разбить на пересечениях, удалить дубликаты, замкнуть и т.п. Хотя, функция создания площадных топологий все "плохие" места пометит.

Можно узнать, где еще картографы не разочаровались в Автокаде? Можно в личку.

Последний раз редактировалось АлексЮстасу, 26.03.2010 в 14:34.
АлексЮстасу вне форума  
 
Непрочитано 26.03.2010, 14:54
#18
Olga_@@@


 
Регистрация: 14.03.2008
Екатеринбург
Сообщений: 678
<phrase 1= Отправить сообщение для Olga_@@@ с помощью Skype™


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
3. С помощью Autocad Map 3D можно создавать топологические площадные модели, указывая или набор полилиний (можно сразу для многих областей, а можно только для одной области), или только слои, в которых лежат нужные полилинии. Потом конвертируем эти "топологии" в замкнутые полилинии (Create closed polylines). Правда, исходные полилинии необходимо сначала основательно подготовить: разбить на пересечениях, удалить дубликаты, замкнуть и т.п. Хотя, функция создания площадных топологий все "плохие" места пометит.
Да, это наилучший, из имеющихся, вариант решения проблемы.
Тем более, что предварительная чистка карты в значительной степени автоматизированна.
Olga_@@@ вне форума  
 
Непрочитано 26.03.2010, 14:57
#19
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Сочинил вот такой вариант
[IMG]http://s006.***********/i215/1003/f7/e3e080d1bce1.gif[/IMG]

Код:
[Выделить все]
(defun c:test (/ first second F_v a b)
  (setq	first  (entget (geo_vibor "\nПолучатель: " "LWPOLYLINE" nil))
	second (entget (geo_vibor "\nДователь: " "LWPOLYLINE" nil))
	F_v    (vl-remove-if-not '(lambda (x) (= (car x) 10)) first)
  )
  (repeat (length F_v)
    (if	(and (setq a (vl-position (car f_v) second))
	     (setq b (vl-position (cadr f_v) second))
	)
      (setq first
	     (append
	       (trim_list first 0 (vl-position (car f_v) first))
	       (if (< a b)
		 (trim_list second a b)
		 (reverse (trim_list second a b))
	       )
	       (trim_list first
			  (vl-position (cadr f_v) first)
			  (length first)
	       )
	     )
      )
    )
    (setq f_v (cdr f_v))
  )
  (entmod
    (subst (cons 90
		 (length
		   (vl-remove-if-not '(lambda (x) (= (car x) 10)) first)
		 )
	   )
	   (assoc 90 first)
	   first
    )
  )
)

(defun trim_list (spis a b / c x)
  (setq c (- (min a b) 1))
  (reverse (repeat (- (max a b) c 1)
	     (setq x (cons (nth (setq c (1+ c)) spis) x))
	   )
  )
)


(defun geo_vibor (zap ;_Запрос 
		  tip ;_Тип запрашиваемых примитивов 
		  enter ;_Выход при пустом вводе 
		  / flag name)
  (setq Flag2 t)
  (setvar "ERRNO" 0)
  (while Flag2
    (cond
      ((and
	 (setq name
		(car (entsel zap))
	 )
	 (wcmatch (cdr (assoc 0 (entget name))) tip)
       )
       (setq Flag2 nil
	     name name
       )
      )
      ((and (= (getvar "ERRNO") 52) enter)
       (setq Flag2 nil)
      )
      (name (princ (strcat "\nВыбранный объект не " tip)))
      (t (princ "\nМимо"))
    )
  )
)
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 26.03.2010, 15:15
#20
АлексЮстасу

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


Цитата:
Сообщение от Olga_@@@ Посмотреть сообщение
Да, это наилучший, из имеющихся, вариант решения проблемы.
Тем более, что предварительная чистка карты в значительной степени автоматизированна.
Да автоматически, но это если есть Autocad Map 3D.

Disney - "Получатель"-"Даватель" - это что?
АлексЮстасу вне форума  
 
Непрочитано 26.03.2010, 15:28
#21
Olga_@@@


 
Регистрация: 14.03.2008
Екатеринбург
Сообщений: 678
<phrase 1= Отправить сообщение для Olga_@@@ с помощью Skype™


АлексЮстасу, да, есть.
Disney, идея отличная, полезный был бы инструмент. Тоже попробовала, но у меня этот код не всегда срабатывает, и на замкнутых контурах выдает непредсказуемые результаты.
Olga_@@@ вне форума  
 
Непрочитано 26.03.2010, 16:07
#22
АлексЮстасу

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


Цитата:
Сообщение от Olga_@@@ Посмотреть сообщение
АлексЮстасу, да, есть.
Disney, идея отличная, полезный был бы инструмент. Тоже попробовала, но у меня этот код не всегда срабатывает, и на замкнутых контурах выдает непредсказуемые результаты.
Уж давно догадался, что у Вас Autocad Map 3D еще как есть
Имел в виду других участников.

У меня программка Disney просто пока никак не срабатывает. Да и хотелось узнать, что она, собственно, делает, и кто такие "Получатель"-"Даватель"?
АлексЮстасу вне форума  
 
Непрочитано 26.03.2010, 16:27
#23
zenon

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


Disney, Вот скажи мне в чем разница сего творения и работы стандартной команды _pline????
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 26.03.2010, 16:56
#24
АлексЮстасу

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


Цитата:
Сообщение от Olga_@@@ Посмотреть сообщение
Тем более, что предварительная чистка карты в значительной степени автоматизированна.
Все-таки решил добавить в "Баги и предложения" тему про Drawing Cleanup. Чтобы у всех пользователей базового Autocad была возможность пользоваться этим мощным инструментом.

Объясните, как этим лиспом пользоваться - у меня вообще ничего не получается.
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 26.03.2010, 17:20
#25
jagr


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


Disney, решение выглядит очень интересно. К сожелению, пока нет возможности проверить работу лиспа; работает ли он для нескольких полилиний? По какому принципу происходит изменение полилинии, почему часть полилинии изменилась, а часть нет?

АлексЮстасу, я не картограф, просто был опыт работы в некоторых программах.
jagr вне форума  
 
Непрочитано 26.03.2010, 18:00
#26
АлексЮстасу

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


jagr, вариант с использованием штриховки не оптимален? Для замкнутых областей, конечно.
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 26.03.2010, 18:05
#27
jagr


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


АлексЮстасу, достаточно много приходится работать с заливками и для сложных замкнутых областей делать заливки занятие не из приятных, к сожалению =(
jagr вне форума  
 
Непрочитано 26.03.2010, 18:12
#28
АлексЮстасу

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


Цитата:
Сообщение от jagr Посмотреть сообщение
АлексЮстасу, достаточно много приходится работать с заливками и для сложных замкнутых областей делать заливки занятие не из приятных, к сожалению =(
Это я знаю. Но при трассировке линий все равно их нужно обойти все-каждую. А в режиме указания всех линий границы области штриховки работают надежно.
АлексЮстасу вне форума  
 
Непрочитано 26.03.2010, 18:58
1 | #29
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Disney - "Получатель"-"Даватель" - это что?
Акцептор и Донор тебя устроит?

Цитата:
Сообщение от Olga_@@@ Посмотреть сообщение
Disney, идея отличная, полезный был бы инструмент. Тоже попробовала, но у меня этот код не всегда срабатывает, и на замкнутых контурах выдает непредсказуемые результаты.
Немного подправил, теперь должен всегда срабатывать, а с замкнутыми ни как не угадаешь, толи как по не замкнутой пройти, толи через начально-конечную

Цитата:
Сообщение от zenon Посмотреть сообщение
Disney, Вот скажи мне в чем разница сего творения и работы стандартной команды _pline????

[IMG]http://s002.***********/i197/1003/8f/3d1224058e68.gif[/IMG]

Код:
[Выделить все]
(defun c:test (/ first second F_v a b flag)
  (setq	first  (entget
		 (geo_vibor "\nПолилиния акцептор: " "LWPOLYLINE" nil)
	       )
	second (entget (geo_vibor "\nПолилиния донор: " "LWPOLYLINE" nil))
	F_v    (vl-remove-if-not '(lambda (x) (= (car x) 10)) first)
	flag   t
  )
  (if (not (eq (cdar first) (cdar second)))
    (progn
      (repeat (length F_v)
	(if (and (setq a (vl-position (car f_v) second))
		 (setq b (vl-position (cadr f_v) second))
	    )
	  (setq
	    first
	     (if (< a b)
	       (append
		 (trim_list first 0 (vl-position (car f_v) first))
		 (trim_list second a b)
		 (trim_list first
			    (vl-position (cadr f_v) first)
			    (length first)
		 )
	       )
	       (append
		 (trim_list first
			    0
			    (+ (vl-position (car f_v) first) 5)
		 )
		 (mapcar '(lambda (i)
			    (if	(= (car i) 42)
			      (cons 42 (* -1 (cdr i)))
			      i
			    )
			  )
			 (reverse (trim_list second a b))
		 )
		 (trim_list first
			    (+ (vl-position (cadr f_v) first) 5)
			    (length first)
		 )
	       )
	     )
	    flag nil
	  )
	)
	(setq f_v (cdr f_v))
      )
      (entmod
	(subst
	  (cons	90
		(length
		  (vl-remove-if-not '(lambda (x) (= (car x) 10)) first)
		)
	  )
	  (assoc 90 first)
	  first
	)
      )
      (if flag
	(alert
	  "\nНе найдено ни одних, двух \nпоследовательных вершин акцептора \nсовпадающих с вершинами донора"
	)
      )
    )
  )
)

(defun trim_list (spis a b / c x)
  (setq c (- (min a b) 1))
  (reverse (repeat (- (max a b) c 1)
	     (setq x (cons (nth (setq c (1+ c)) spis) x))
	   )
  )
)


(defun geo_vibor (zap ;_Запрос 
		  tip ;_Тип запрашиваемых примитивов 
		  enter ;_Выход при пустом вводе 
		  / flag name)
  (setq Flag2 t)
  (setvar "ERRNO" 0)
  (while Flag2
    (cond
      ((and
	 (setq name
		(car (entsel zap))
	 )
	 (wcmatch (cdr (assoc 0 (entget name))) tip)
       )
       (setq Flag2 nil
	     name name
       )
      )
      ((and (= (getvar "ERRNO") 52) enter)
       (setq Flag2 nil)
      )
      (name (princ (strcat "\nВыбранный объект не " tip)))
      (t (princ "\nМимо"))
    )
  )
)
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 26.03.2010, 19:20
#30
Olga_@@@


 
Регистрация: 14.03.2008
Екатеринбург
Сообщений: 678
<phrase 1= Отправить сообщение для Olga_@@@ с помощью Skype™


Disney, спасибо огромное получилось
Olga_@@@ вне форума  
 
Непрочитано 26.03.2010, 21:28
#31
АлексЮстасу

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


Цитата:
Сообщение от Disney Посмотреть сообщение
Акцептор и Донор тебя устроит?
Для непонятливых и криворуких можно?
Что нужно иметь до начала запуска проги? Какова последовательность действий? Что на выходе?

Правильно понимаю, что необходимо иметь либо область ограниченную несколькими элементами, либо цепочку из соединенных-пересекающихся элементов?
И нужно создать одну замкнутую полининию, совпадающую со всеми вершинами ограничивающих область элементов? Либо одну полилинию, повторяющую все вершины цепочки элементов?
Я думал, что нужно просто указать все эти элементы, и на выходе получить эту самую единую полилинию.
АлексЮстасу вне форума  
 
Непрочитано 27.03.2010, 15:36
#32
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Цитата:
Сообщение от Olga_@@@ Посмотреть сообщение
на замкнутых контурах выдает непредсказуемые результаты.
[IMG]http://i021.***********/1003/d7/4b20dbbe61cc.gif[/IMG]

Цитата:
Сообщение от jagr Посмотреть сообщение
работает ли он для нескольких полилиний?
[IMG]http://i080.***********/1003/cd/c61bca9dab97.gif[/IMG]

Цитата:
Сообщение от jagr Посмотреть сообщение
По какому принципу происходит изменение полилинии,
Как по какому? по тобой описанному, только не в процессе построения полилинии, а уже после.
Цитата:
Сообщение от jagr Посмотреть сообщение
почему часть полилинии изменилась, а часть нет?
Изменяется та часть полилинии, 2(3) последовательные вершины которой совпадают с вершинами донора.
АлексЮстасу, если ещё вопросы остались спрашивай
Вложения
Тип файла: lsp Bypass_Polyline.LSP (3.8 Кб, 147 просмотров)
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 27.03.2010, 17:53
#33
АлексЮстасу

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


Цитата:
Сообщение от Disney Посмотреть сообщение
Изменяется та часть полилинии, 2(3) последовательные вершины которой совпадают с вершинами донора.
АлексЮстасу, если ещё вопросы остались спрашивай
У меня получилось, но пока только с одной полилинией. У меня прогресс

По-моему, в изложенной jagr задаче цель довести полилинию до какой-то абстрактной точки на другом элементе - совсем не главная. Почти всегда это либо конец, либо место пересечения с другим элементом.

Все-таки: задача у jagr заключается в получении новой полилинии, точно повторяющей форму цепочки полилиний, дуг и т.п. (Новую полилинию, которой хотелось бы все обвести, тоже можно рассматривать как существующую). Соответственно, чтобы получить эту общую полининию, достаточно указать последовательно все элементы цепочки, которые хотелось бы обвести (начиная с этой "новой"). Так можно сделать?
Т.е. человек сначала рисует к существующему набору примыкающих/перескающихся элементов нужное число примыкающих линий, потом вызвает Ваш лисп (предлагаю назвать его ближе к сути, например "trasser"), и указывает нужные элементы. На выходе - новая полилиния.

Последний раз редактировалось АлексЮстасу, 27.03.2010 в 18:17.
АлексЮстасу вне форума  
 
Непрочитано 27.03.2010, 18:57
#34
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
точно повторяющей форму цепочки полилиний, дуг и т.п..
Для этого уже есть решения:
  1. [IMG]http://i074.***********/1003/84/013ecfaa1fa9.gif[/IMG]
    из Pltools
  2. Метод интеллектуального преобразования объектов в полилинии.
    из TotalPurge
Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Т.е. человек сначала рисует к существующему набору примыкающих/перескающихся элементов нужное число примыкающих линий, и указывает нужные элементы. На выходе - новая полилиния.
В простом варианте если контур в итоге замкнут, то есть в AutoCADе команда
[IMG]http://i027.***********/1003/dd/687104bf8105.gif[/IMG]

В сложном случаи, уже много желающих... Определение комнаты, определение границ области (AutoCAD & lisp)
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 28.03.2010, 03:39
#35
АлексЮстасу

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


Цитата:
Сообщение от Disney Посмотреть сообщение
Для этого уже есть решения:
  1. команда PL-CSE
  2. В простом варианте если контур в итоге замкнут, то есть в AutoCADе команда "_BOUNDARY (Контур)"
Увы, но без Ваших трудов тут не обойтись:

1. PL-CSE - замечательная. Только она не делает две искомых вещи: не сохраняет старые линии (а задача была - новую добавить), и не обрабатывает фрагменты между пересечениями - а только совпадающие концами элементы. И результат ее работы может быть малопредсказуем, если к полилиниям цепочки примыкают другие элементы.

2. С TotalPurge примерно та же история.

3. _BOUNDARY - очень нужная и очень востребованная команда. Иногда даже работает. Но про плохую дееспособность _BOUNDARY на разных форумах говорится уже лет десять - не меньше. См. и мои свежие пять копеек: http://forum.dwg.ru/showthread.php?t=49256

Может, кстати, подскажете: в архиве Pltools не оказалось pltools.cui -- "меню для подгрузки в AutoCAD с 2006 включительно". А хотелось бы поставить нормально - с меню к моему 2008.

Последний раз редактировалось АлексЮстасу, 28.03.2010 в 05:02.
АлексЮстасу вне форума  
 
Непрочитано 28.03.2010, 20:21
#36
Кулик Алексей aka kpblc
Moderator

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


По-моему, в pltools был включен файл *.mnu. Загружается в любую версию AutoCAD через команду _.menuload
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 28.03.2010, 22:28
#37
АлексЮстасу

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
По-моему, в pltools был включен файл *.mnu. Загружается в любую версию AutoCAD через команду _.menuload
Спасибо, получилось.
Еще с большим удовольствием пробежался по возможностям Pltools - до решения нашей задачи просто рукой подать
АлексЮстасу вне форума  
 
Непрочитано 03.05.2021, 17:23
2 | #38
АлексЮстасу

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


Цитата:
Сообщение от jagr Посмотреть сообщение
Давно мучает вопрос: существует ли в AutoCAD 2008 (либо в другой версии) возможность рисования части полилинии по существующему объекту (например, по другой полилинии) с точным повторением контура существующего объекта (с привязкой к каждой точке), без указания каждой точки существующего объекта.
Через 11 лет и три дня появился такой лисп от француза - fsg.lsp.
Чертим полилинию или 3дполилинию, вводим прозрачную команду 'fsg (с апострофом), указываем первую и вторую точку на существующей полилинии, и чертим свою полилинию дальше. Получается новая полилиния, примыкающая к существующей, и полностью повторяющая часть существующей - от ближайшей вершины к первой указанной точке до ближайшей вершины ко второй указанной точке.
При черчении следующих полилиний команда будет доступна в списке на правой кнопке в Последний ввод (Recent input).
Вложения
Тип файла: lsp fsg.lsp (2.7 Кб, 22 просмотров)
__________________
количество моих сообщений не говорит о знании Автокада

Последний раз редактировалось АлексЮстасу, 06.05.2021 в 18:14.
АлексЮстасу вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Рисование полилинии по другому объекту с привязкой