香田里浪人 发表于 2015-6-6 12:04 
推广应用:1.把“温室”改为输入需要的文字,2.字高固定改为可选择。冒昧修改,敬请ymcui君见谅。
(defu ...
这样是不是要好点 - (defun c:tt ()
- (command "layer" "M" "标注" "C" "6" "" "LT" "CONTINUOUS" "" "");设置一个标注图层
- (setvar "cmdecho" 0)
- (defun ebox (e / pa pb)
- (Vlax-Invoke-Method (Vlax-Ename->Vla-Object e ) 'GetBoundingBox 'pa 'pb )
- (setq pa (trans (vlax-safearray->list pa) 0 1)
- pb (trans (vlax-safearray->list pb) 0 1)
- )
- (list pa pb)
- )
- ;(setq TextHeight (getdist "\n请输入文字高度:(默认0.8)"))
- ; (if (= TextHeight nil) (setq TextHeight 0.8))
- (setq qz (getdist "\n请输入需要的文字:<温室> "))
- (if (= qz nil) (setq qz "温室"))
- (while
- (setq ss (ssget":s" '((0 . "LWPOLYLINE"))))
- (repeat (setq i (sslength ss))
- (setq e (ssname ss (setq i (1- i)))
- box (ebox e)
- p1 (car box)
- p2 (cadr box)
- p3 (list (car p2) (cadr p1))
- P4 (mapcar '* '(0.5 0.5 0.5)(mapcar '+ p1 p2))
- TextHeight (* 0.5 (min (distance p1 p3) (distance p2 p3)))
- )
- (vl-cmdf "-text" "j" "M" p4 TextHeight 0 qz)
- )
- (setvar "cmdecho" 1)
- (PRINC)
- )
- )
|