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

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

Lisp найти радиус полилинии

Ответ
Поиск в этой теме
Непрочитано 09.11.2013, 23:28 #1
Lisp найти радиус полилинии
julia170895
 
Регистрация: 09.11.2013
Сообщений: 1

Необходимо извлечь инф-ю о примитиве-полилиния. все, что нужно было извлечь-извлекла. но вот не понимаю, как найти радиус дугового сегмента.
Не подскажете?
мне подсказывали, что через угол. Угол то я вроде нашла..но вот как через него найти радиус..)

Код:
[Выделить все]
 (defun c:ryudo()
  (setq dcl_id (load_dialog "E:\\ryudo.dcl"))
  (if (not (new_dialog "ryudo" dcl_id) ) (exit))

(action_tile "c1"  "(if (= cc1 1)(setq cc1 0)(setq cc1 1))")
  (if (= cc1 1)
  (set_tile "c1" "1")
  (set_tile "c1" "0")
  )

(setq s2 (ssget "_X" ' ((0 . "*POLYLINE") )))
  (if (null s2)
  (progn(set_tile "b2" "0"))
  (progn
  (setq ss2 (itoa (sslength s2)))
  (set_tile "b2" ss2)
  ))

(action_tile "accept" "(work)(done_dialog)")
  (action_tile "cancel" "(exit)")
  (start_dialog)   
  (unload_dialog dcl_id)
)

(defun work()

(setq ff(open (get_tile "put") "w"))

(if (= cc2 1) (progn
  (setq b 0)
  (setq a(ssget "_X" ' ((0 . "*POLYLINE") ))); ищем полилинии 
  (setq i(sslength a)); узнаем количество полилиний
  (repeat i
	(write-line "\nПолилиния №" ff)
	(princ b ff) ; записать в файл значения
	(setq tname(ssname a b)); узнаем имя b-той полилинии
	(setq spis(entget tname)); формируем список параметров
	
	(setq slname(cdr (assoc 8 spis))); выводим из списка имя слоя
	(write-line "\nСлой:" ff)
	(princ slname ff)
	
	(setq color(cdr (assoc 62 spis))); выводим из списка цвет точки
	(if (= color nil) ;если цвет по дефолту то работаем со слоем
	(progn
	(setq lay (tblobjname "LAYER" slname))
	(setq sspis(entget lay))
	(setq color(cdr (assoc 62 sspis)))
	))
	(write-line "\nЦвет №" ff)
	(princ color ff)
	
	(setq sltype (tblnext "LTYPE" T))
	(setq sltype1(cdr (assoc 2 sltype)))
	(write-line "\nТип Линии:" ff)
	(princ sltype1 ff)
	
	(write-line "\nКоординаты вершин и радиусы" ff)
(foreach n (entget (ssname a b))
	   (progn
	    (if (= 10 (car n))
         (progn		 
	     (print (cdr n) ff) (setq q 0)))
         (if (= 42 (car n))
	       (progn
	         (setq m(* 4 (atan(cdr n))))     ;нахождения угла, 
	         (if (= (cdr n) 0) (setq m 0))
			 (setq q 0)
	       )
	      )
		 (if (/= 10 (car n)) (if (/= 42 (car n)) (setq q 1)))
	     (if (= q 0) (print m ff)	 )
	    ))  

(setq b(+ b 1))
	(write-line "\n-----------------" ff)
  )))

Последний раз редактировалось Кулик Алексей aka kpblc, 09.11.2013 в 23:47.
Просмотров: 1741
 
Непрочитано 10.11.2013, 00:50
#2
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Лучше искать bulge
gomer вне форума  
 
Непрочитано 10.11.2013, 11:34
#3
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


как программно начертить LWPolyline с дуговыми сегментами? ссылки в постах #13 (afralisp там 2 страницы) и #14 ( Елпанов Евгений)
Лисп. Полилиния ( Кманда List выдает на экран координаты центра и радиус для дугового сегмента полилинии. Как получить эти параметры программно? )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp найти радиус полилинии

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Новые команды для работы с полилинией VVA Программирование 647 18.09.2023 11:16
LISP. Простановка площадей внутри полилинии. Klo LISP 26 14.12.2018 17:43
lisp: Длина по полилинии до точки vosh LISP 19 15.07.2013 15:10
Как найти пересечение 3dpoly и плоскости korabel Программирование 1 12.06.2006 07:52