香田里浪人 发表于 2015-6-6 12:04:52

ymcui 发表于 2015-6-3 13:49 static/image/common/back.gif


推广应用: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)
)
)

ymcui 发表于 2015-6-6 13:56:51

香田里浪人 发表于 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)
)
)

香田里浪人 发表于 2015-6-6 17:49:43

ymcui 发表于 2015-6-6 13:56 static/image/common/back.gif
这样是不是要好点

很好,谢谢。

香田里浪人 发表于 2015-6-6 18:20:39

ymcui 发表于 2015-6-6 13:56 static/image/common/back.gif
这样是不是要好点

第13行应为:(setq qz (getstring "\n请输入需要的文字<温室>: "))
(if (= qz nil) (setq qz "温室"))
页: 1 [2]
查看完整版本: 各位老师看看。