 - (defun c:AC(/ acaddoc acadspc objarea objllpoint objrupoint selectionset textbasepoint textheight textindex textobj)
- (vl-load-com)
- (setvar "cmdecho" 0)
- (setq acaddoc (vla-get-activedocument (vlax-get-acad-object)))
- (if (= (getvar "tilemode") 1)
- (setq acadspc (vla-get-modelspace acaddoc))
- (setq acadspc (vla-get-paperspace acaddoc))
- )
- (setq textbh "" ;取消前辍
- textindex 1
- )
- (if (setq ss (ssget '((0 . "circle,lwpolyline,ellipse"))))
- (progn
- (setvar"dimzin"0);;保留小数位数时如果位数不足可以补零
- (setq selectionset (vla-get-activeselectionset acaddoc))
- (setq tarea 0 )
- (vlax-for obj selectionset
- (setq objarea (vla-get-area obj)
- objllpoint nil
- objrupoint nil
- )
- (vla-getboundingbox obj 'objllpoint 'objrupoint)
- ;;;(setq textbasepoint (mapcar '(lambda(x y) (/ (+ x y) 2)) (vlax-safearray->list objllpoint)(vlax-safearray->list objrupoint))
- ;;;;;;;textobj
- ;;;;;; (vla-addtext acadspc
- ;;;;;;(strcat textbh (itoa textindex) "=" (rtos (/ objarea 1e6) 2 2) "平方米");小数点向左移6位
- ;;;;;;(vlax-3d-point textbasepoint)
- ;;;;;;textheight
- ;;;;;;)
- ;;;)
- ;(vla-put-alignment textobj acalignmentcenter)
- ;(vla-put-textalignmentpoint textobj (vlax-3d-point textbasepoint))
- (setq tarea (+ (/ objarea 1e6) tarea));小数点向左移6位
- (setq textindex (1+ textindex))
- )
- (setq l (sslength ss))
- (setq tarea (/ tarea 1))
- (setq bb (strcat textbh "=" textbh "1+" textbh "2+...+" textbh (itoa l) "=" (rtos tarea 2 2) "平方米"))
- (princ bb)
- )
- (vl-exit-with-error (alert "没有选中封闭图形,程序退出!"))
- )
- (princ)
- )
|