谢谢
我稍微修改了你的代码:
WS=底部框架-地板标高
再次感谢
- (defun c:Test ( / doc enm obj ptFloor ptBot ptTop)
- (command "UCS" "world")
- (setq doc (vla-get-activedocument (vlax-get-acad-object)))
- (vla-endundomark doc)
- (vla-startundomark doc)
- (while
- (and
- (setq enm (car (entsel "\nSelect mtext or Enter to quit: ")))
- (or
- (= "AcDbMText" (vla-get-objectname (setq obj (vlax-ename->vla-object enm))))
- (prompt "\nError: not an mtext ")
- )
- (setq ptFloor (getpoint "\nFloor level: "))
- (setq ptBot (getpoint "\nBottom of frame: "))
- (setq ptTop (getpoint ptBot "\nTop of frame: "))
- (setq ptFloor (trans ptFloor 1 0))
- (setq ptBot (trans ptBot 1 0))
- (setq ptTop (trans ptTop 1 0))
- )
- (vla-put-textstring
- obj
- (strcat ; "WS=11.11\\PWH=22.22"
- "WS=" (rtos (/ (- (caddr ptBot) (caddr ptFloor)) 1000.) 2 2)
- "\\P"
- "WH=" (rtos (/ (- (caddr ptTop) (caddr ptBot)) 1000.) 2 2)
- )
- )
- )
- (vla-endundomark doc)
- (princ)
-
- (command "UCS" "_p")
- )
|