Тема: Список площадей выделенных полилиний в тектовое окно (файл)
Довольно давно добрый человек сбацал вещь, которая пытается расставлять площади по всем полилиниям слоя. Однако выяснилось что это нереально:
(defun C:breda()
(setq LN (getstring "nИмя слоя введи >"))
(setq NLST (tblnext "LAYER" T))
(setq LLST (list NLST))
(setq NLST (tblnext "LAYER"))
(while (not(= NLST nul))
(setq LLST (cons NLST LLST))
(setq NLST (tblnext "LAYER")))
(setq LLAY (list "0"))
(foreach NLST LLST(setq LLAY (cons (cdr(assoc 2 NLST)) LLAY)))
(while (= (member LN LLAY) nil)(subpr))
(setq A(ssget "_X" '((0 . "LWPOLYLINE") (70 . 1))))
(setq K (sslength A))
(setq NL 0
LP nil
)
(repeat K
(setq LP (cons (ssname A NL) LP))
(setq NL (+ 1 NL))
)
(foreach E LP
(setq SS (entget E))
(if (=(cdr(assoc 8 SS)) LN)
(progn(setq TI (cdr(assoc 10 SS)))
(setq X (+ 2 (car TI)))
(setq Y (+ 2 (car (reverse TI))))
(setq TI (list X Y))
(command "area" "o" E)
(setq T(getvar "area"))
(setq TC (itoa(fix T)))
(setq LON (+ 1(strlen TC)))
(setq TD (substr(itoa(fix(* T 10)))LON 1))
(setq T (strcat TC "." TD))
(command "text" TI "0" T)))
)
)
(defun subpr()
(setq LN (getstring "nНету слоя с таким именем. Правильно >"))
)
Пожалуста подравьте так, чтобы он это добро проставлял столбцом просто в тектовое окно или файл, для переноса в Excel.
Конечно хорошо бы чтобы объекты можно было выбрать контуром...
Или даже произвести операцию по нескольким слоям, указывая в тексте перед площадью линии имя слоя...
А бывает у полилинии атрибут, куда ей можно проставить ТЕКСТОВЫЙ идентификатор?
К сожалению сам в LISPе = 0, а реестры делать задолбался!
Заранее благодарен...