 - (DEFUN C:da (/ bs aa per ptu ptd txth)
- (setvar "cmdecho" 0)
- (princ
- "\n说明:在使用本程序前请先生成房间的多义线!本程序默认原绘图单位为MM!"
- )
- ;; (princ "\n点取房间多义线:")
- ;; (setq bs (ssget))
- (if (setq bs (entsel "\n点取房间多义线:"))
- (progn
- (command "_area" "o" bs)
- (setq aa (getvar "area"))
- (setq aa (/ aa 1000000.0))
-
- (setq aa (rtos aa 2 2))
- ;;(setq aa (strcat "A=" aa))
- ;;(setq aa (strcat aa "M2"))
- (setq aa (strcat "A=" aa "M2"))
- (setq per (getvar "perimeter"))
- (setq per (/ per 1000.0))
-
- (setq per (rtos per 2 2))
- ;;(setq per (strcat "P=" per))
- ;;(setq per (strcat per "M"))
- (setq per (strcat "P=" per "m"))
- (setq txth (* (getvar "hpscale") 500))
- (if (setq pt (getpoint "\n点取标注点:"))
- (progn
- ;;(setq ptu (list (car pt) (+ (cadr pt) (* txth 0.6)) 0.0))
- ;;(setq ptd (list (car pt) (- (cadr pt) (* txth 0.6)) 0.0))
- (setq ptu (polar pt (* 0.5 pi) (* txth 0.6))
- ptd (polar pt (* 1.5 pi) (* txth 0.6))
- )
- (command "text" "j" "mc" ptu txth "0" aa)
- (command "text" "j" "mc" ptd txth "0" per)
- (command "erase" bs "")
- )
- )
- )
- )
- (setvar "cmdecho" 1)
- (princ)
- )
这是一个选择闭合多义线标注面积和周长的程序,请高手再完善一下,增加一个统计求和的功能,就是把标注的多个面积和周长计算一个总和标注在图纸中
|