推广应用:1.把“温室”改为输入需要的文字,2.字高固定改为可选择。冒昧修改,敬请ymcui君见谅。
(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 (getstring "\n请输入需要的文字: "))
(while
(setq ss (ssget":s" '((0 . "LWPOLYLINE"))))
(repeat (setq i (sslength ss))
(setq e (ssname ss (setq i (1- i)))
box (ebox e)
P3 (mapcar '* '(0.5 0.5 0.5)(mapcar '+ (car Box) (cadr Box)))
)
(vl-cmdf "-text" "j" "M" p3 TextHeight 0 qz)
)
(setvar "cmdecho" 1)
(PRINC)
)
) 香田里浪人 发表于 2015-6-6 12:04 static/image/common/back.gif
推广应用: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)
)
) ymcui 发表于 2015-6-6 13:56 static/image/common/back.gif
这样是不是要好点
很好,谢谢。 ymcui 发表于 2015-6-6 13:56 static/image/common/back.gif
这样是不是要好点
第13行应为:(setq qz (getstring "\n请输入需要的文字<温室>: "))
(if (= qz nil) (setq qz "温室"))
页:
1
[2]