
- (defun c:kk()
- (setq num 0);统计一条多断线端点数
- (setq m 0);统计多段线条数
- (setq file (open "d:\\pline.txt" "w"))
- (princ "\n" file)
- (setq area 0)
- (vl-load-com)
- (setq myacad(vlax-get-acad-object))
- (setq mydoc(vla-get-ActiveDocument myacad))
- (setq myms(vla-get-ModelSpace mydoc))
- (setq ii 0)
- (setq idid 0)
- ;;;用vlax-for循环
- (vlax-for my myms
- (setq e (vlax-vla-object->ename my)
- e1 (entget e))
- (if(= "LWPOLYLINE" (cdr(assoc 0 e1)))
- (progn
-
- (setq m (+ 1 m))
- (setq num 0)
- (setq area(vlax-get-property my 'Area));获取面积
- ;(setq len (vlax-get-property my 'Length));获取周长
- (setq lay (vlax-get-property my 'Layer));获取图层
-
- (if(> area 1.0);;面积大小要求
- (progn
- (setq idid (+ 1 idid));;图版个数统计,可用于图版的编号
- (while (nth i e1);按顺序每次取出图元表中的一个点对
-
- (setq n (car(nth i e1)))
- (if(= n 10) ;判断点对表是否记录的是坐标
- (progn
- (setq num (+ 1 num))
-
- (setq x(cadr(nth i e1)))
- (setq y(caddr(nth i e1)))
- (setq xx (rtos x 2 3));2表示输出为十进制 3表示精度为3位
- (setq yy (rtos y 2 3))
- (setq num1 (rtos num 2 0))
- (setq m1 (rtos m 2 0))
- (setq area1 (rtos area 2 3))
- (setq idid1 (rtos idid 2 0))
- ;;(princ ( strcat m1 " "num1 " "xx " " yy " " area1" " lay "\n") file);文件输出
- (princ ( strcat idid1 " "num1 " "yy " " xx " " area1" " lay "\n") file);文件输出
-
- )
- )
- (setq i (+ 1 i))
- )
- )
- )
-
-
-
- )
- )
- (setq e (entnext e))
- )
-
- (close file)
- )
|