使用反应器! - (defun c:test (/ *Acad* *AcDocument* *Model-Space* en obj obj1 obj2 hand1 hand2 Height area Len pt pt1)
- (defun obj-Change (Object Reactor-Object Parameter-list / area Len data obj1 obj2)
- (setq area (strcat "面积:" (rtos (vla-get-area Object) 2))
- Len (strcat "长度:" (rtos (vla-get-Length Object) 2))
- )
- (setq data (vlr-data Reactor-Object))
- (setq obj1 (vlax-ename->vla-object(handent (car data)))
- obj2 (vlax-ename->vla-object(handent (cadr data)))
- )
- (vla-put-TextString obj1 area)
- (vla-put-TextString obj2 Len)
- )
- (setq *Acad* (vlax-get-acad-object)
- *AcDocument* (vla-get-activedocument *Acad*)
- *Model-Space* (vla-get-modelspace *AcDocument*)
- )
- (princ "\n选择多段线:")
- (setq en (car (entsel)))
- (setq obj (vlax-ename->vla-object en))
- (setq area (rtos (vla-get-area obj) 2)
- Len (rtos (vla-get-Length obj) 2)
- )
- (initget 7)
- (setq pt (getpoint "\n选择注记位置:"))
- (initget 7)
- (setq Height (getreal "\n注记字高:"))
- (setq pt1 (polar pt (/ pi 2) (* Height -1.2)))
- (setq obj1 (vla-addtext *Model-Space* (strcat "面积:" area) (vlax-3d-point pt) Height))
- (setq Hand1 (vla-get-Handle obj1))
- (setq obj2 (vla-addtext *Model-Space* (strcat "长度:" Len) (vlax-3d-point pt1) Height))
- (setq Hand2 (vla-get-Handle obj2))
- (vlr-pers (VLR-Object-Reactor (list obj) (list Hand1 Hand2) '((:VLR-modified . obj-Change))))
- (princ)
- )
|