在这里插入代码片
(defun c:ss ()
(setq 总面积 0)
(setq 总亩数 0)
(setq 面积 0)
(setq 总周长 0)
(setq 周长 0)
(setq k 0)
(setq a nil)
(setq a (ssget))
(setq Len (sslength a))
(repeat Len
(setq name (ssname a k))
(setq ent1 (entget name))
(setq na (assoc 0 ent1))
(setq na (cdr na))
(if (= na "SPLINE")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
(setq 总周长 (+ 总周长 周长))
)
)
(if (= na "POLYLINE")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
(setq 总周长 (+ 总周长 周长))
)
)
(if (= na "ARC")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
(setq 总周长 (+ 总周长 周长))
)
)
(if (= na "CIRCLE")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
(setq 总周长 (+ 总周长 周长))
)
)
(if (= na "ELLIPSE")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
(setq 总周长 (+ 总周长 周长))
)
)
(if (= na "LINE")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
复制以下内容到记事本:
(setq 总周长 (+ 总周长 周长))
)
)
(if (= na "LWPOLYLINE")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
(setq 总周长 (+ 总周长 周长))
)
)
(if (= na "REGION")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
(setq 总周长 (+ 总周长 周长))
)
)
(setq k (+ k 1))
(setq 总亩数 (/ 总面积 666.667))
)
(setq b (rtos 总面积 2 2)) ;将数据结果由实数转换成字符串,且设置为两个精度,即小数点后两位
(setq a (getpoint "\n屏幕单击插入点")) ;指定插入点
(entmake (list '(0 . "text") ;建立文字图元属性列表,文字,插入点,内容,字高
(cons 10 a)
(cons 11 a)
(cons 1 b)
'(40 . 3)
)
)
(print (list "总周长=" 总周长))
(print (list "总面积=" 总面积 "平方米" 总亩数 "亩"))
(princ)
)
;;2023年03月22日增加了 面域(region)识别
`
一年有四季之-----SS命令
于 2023-03-22 19:03:09 首次发布