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

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

Преобразование вершин горизонталей в точки

Ответ
Поиск в этой теме
Непрочитано 04.03.2009, 11:55 #1
Преобразование вершин горизонталей в точки
WeMaN
 
Регистрация: 19.08.2008
Сообщений: 52

Добрый день, не подскажите, есть ли лисп, который бы позволял преобразовать все вершины обычной полилинии имеющей определённый уровень в точки с координатой z, и как вытекающее от сюда, есть ли возможность приобразовывать вершины 3д полилинии в точки с координатами z?
Заранее спасибо за участие в дискуссии
Просмотров: 2915
 
Непрочитано 04.03.2009, 12:20
#2
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Что есть "уровень полилинии" и что такое преобразование вершины в точку???
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 04.03.2009, 12:37
#3
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


На:
Код:
[Выделить все]
(defun C:sl_create_point_on_vertex_ (/ ss lstLen sl_n sl_3dface_coords_ sl_3dface_coords_dop_)

(setvar "osmode" 1024)

(setq ss (ssget '((0 . "LWPOLYLINE"))));(8 . 1))))
  
  (setq lstLen (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
    
  (foreach sl_ent lstLen

    (vl-catch-all-error-p
      (mapcar
	'(lambda (z) (entmake (append (list (cons 0 "POINT")) (list z))))
    
	   (mapcar
	     '(lambda (y)
		(append y (list (vla-get-elevation (vlax-ename->vla-object sl_ent))))
		)
(setq sl_pline_coords_ (vl-remove-if-not '(lambda (x)
			    
		(eq (car x) 10)
	   		)

(entget sl_ent)
))
	     )

	))
)

  (princ)
  
)

(princ "sl_create_point_on_vertex_ - команда для создания точек на спец слое во всех вершинах полилиний")
Sleekka вне форума  
 
Непрочитано 04.03.2009, 18:38
#4
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Я думаю так сподручней будет
(для всех типов полилиний)

Код:
[Выделить все]
;; local defuns

;; get coordinates
;; based on function borrowed from Gille Chanteau (gile)
(defun get_coordinates	(en / pa pl pt lst)

  (setq pl (vlax-ename->vla-object en))
  (setq	pa (if (vlax-curve-isclosed pl)
	     (vlax-curve-getendparam pl)
	     (+ (vlax-curve-getendparam pl) 1)
	     )
	)
  (while (setq pt (vlax-curve-getpointatparam pl (setq pa (- pa 1))))
    (setq lst (cons pt lst))
    )
  )

(defun dxflist	(key alist)
  (assoc key alist)
  )

(defun dxfvalue	 (key alist)
  (cdr (dxflist key alist))
  )
;; end of local defuns

;;; =====================   main part   =======================;;

(defun C:OV  (/ col coords el elev elist en la ss)
  
  (setq	ss (ssget (list (cons 0 "*POLYLINE")))
	)
  (while (setq en (ssname ss 0)
	       )
    (setq col	 nil
	  elist	 (entget en)
	  typ	 (dxfvalue 0 elist)
	  el	 (if (setq elev (dxflist 38 elist))
		   (cdr elev)
		   0.0)
	  la	 (dxfvalue 8 elist)
	  col	 (dxflist 62 elist)
	  coords (get_coordinates en)
	  )
    (foreach p	coords
      (entmake (list (cons 0 "POINT")
		     (cons 8 la)
		     (if (not col)
		       (cons 62 256)
		       col
		       )
		     (cons 10
			   (if (zerop el)
			     p
			     (list (car p) (cadr p) el))))
	       )
      )
    (ssdel en ss)
    )

  (princ)
  );end of C:OV

(princ "\n\t\t\t >>> Start command with: OV  <<<")
(prin1)

(vl-load-com)
~'J'~
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 05.03.2009, 10:17
#5
WeMaN


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


Sleekka, Олег (jr.) - спасибо большое за программы, это как раз именно то, что я искал!!
WeMaN вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Преобразование вершин горизонталей в точки

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Круги в точки Димас AutoCAD 11 26.06.2014 09:37
Определение высот рельефа по близлежащим точкам dextron3 Программирование 21 10.11.2011 13:14
ЛИСП слои цвета преобразование Gotch LISP 97 08.11.2011 10:22
DwgRuLispLib: Геометрия. Принадлежность точки дуге VVA Библиотека функций 3 10.12.2007 12:41
как в CIVIL 3D точки нанесенные в 3-ке - перенести в точки п maksimys AutoCAD 3 23.08.2007 14:13