- 积分
- 593
- 明经币
- 个
- 注册时间
- 2012-10-1
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
;;;*****导出多段线顶点坐标 程序开始*****
(defun c:t1 (/ entnam dwg)
(setvar "cmdecho" 0)
(setq ffn (getfiled "文件保存为" "" "dat" 1))
(setq ff (open ffn "w"))
(close ff)
(princ "\n选取要导出标高的多段线:")
(setq ss (ssget '((0 . "POLYLINE,LWPOLYLINE"))))
(princ "\n选取要导出标高的多段线顶点处的块参照:")
(setq ss_block (ssget '((0 . "INSERT") (2 . "GC200"))))
(setq m 0
i 0
list_block
nil
)
(setvar "pdmode" 35)
(vl-load-com)
(repeat (sslength ss_block)
(setq ent_block (ssname ss_block m)
data_block (entget ent_block)
pt_block (cdr (assoc 10 data_block))
list_block (cons pt_block list_block)
)
(setq m (1+ m))
)
(setq ff (open ffn "a"))
(close ff)
(repeat (sslength ss)
(setq entnam (ssname ss i)
obj (vlax-ename->vla-object entnam)
pt_list nil
list_ok nil
)
(setq j -1)
(while (setq pp (vlax-curve-getpointatparam obj (setq j (1+ j))))
(setq pt_list (cons (list (+ j 1) pp) pt_list))
)
(if
(=
nil
(vl-position
"nil"
(mapcar '(lambda (a b) (equal a b 0.01))
(mapcar '(lambda (x) (cdr (reverse (cadr x)))) pt_list)
(mapcar '(lambda (x) (cdr (reverse x))) list_block)
)
)
)
(setq list_ok
(reverse
(mapcar
'(lambda (x) (reverse x))
(mapcar
'cons
(mapcar '(lambda (x) (car (reverse x))) list_block)
(mapcar
'(lambda (x) (cdr (reverse (cons (car x) (cadr x)))))
pt_list
)
)
)
)
)
)
(setq ff (open ffn "a"))
(mapcar '(lambda (x)
(princ (strcat (itoa (car x))
",+,"
(rtos (cadr x) 2 3)
","
(rtos (caddr x) 2 3)
","
(rtos (last x) 2 3)
"\n"
)
ff
)
)
list_ok
)
(setq i (1+ i))
(princ "\n" ff)
(close ff)
)
(princ (strcat "\n文件已保存至:" ffn))
(princ)
)
;;;*****导出多段线顶点坐标 程序结束*****
|
|