标注文字高度如何用lisp提取?
本帖最后由 zctao1966 于 2012-1-6 13:15 编辑标注文字高度如何用lisp提取?
有变量控制吗?求高人解答
变量不是:dimtxt
因为此图中的dimtxt的值是不变的,只是两个标注的字高改变了
如图:
以下是附件:
http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 zctao1966的微博
另外还有一个办法,
(vl-cmdf "-dimstyle" "r" (cdr(assoc 3 (entget(ssname (ssget) 0))))) ;;将被选标注,置为当前标注样式
(getvar "dimtxt");;获取当前标注样式文字高度 好东西,谢谢各位分享!
(defun dimtextsize(ename / ell xl size dimstyle)
(setq ell (entget ename '("ACAD")))
(if (and (setq xl (assoc -3 ell)) (setq xl (member '(1070 . 140) (cdadr xl))))
(setq size (cdr (assoc 1040 xl)));setq
(setq dimstyle (cdr (assoc 3 ell))
ell(entget (tblobjname "DIMSTYLE" dimstyle))
size (cdr (assoc 140 ell))
);setq
);if
)
;;;应用
(dimtextsize (car(entsel)))
vormittag 发表于 2012-1-5 13:52 static/image/common/back.gif
为什么这个字高不能用dimtxt控制呢?
(vla-get-TextHeight DimObj) (vla-get-textheight(vlax-ename->vla-object(car(entsel"请选择标注:")))) 修改一下,应该可以符合要求了。但是代码可能不健壮。(defun dimtextsize(ename / ell xl size dimstyle text factor)
(setq ell (entget ename '("ACAD"))
text (cdr (assoc 1 ell))
);setq
(if (wcmatch text "*`\\H*x;*")
(setq factor (read (substr text (+ (vl-string-search "\\H" text) 3) (- (vl-string-search "x;" text) (vl-string-search "\\H" text) 2))))
(setq factor 1.0)
);if
(if (and (setq xl (assoc -3 ell)) (setq xl (member '(1070 . 140) (cdadr xl))))
(setq size (cdr (assoc 1040 xl)));setq
(setq dimstyle (cdr (assoc 3 ell))
ell(entget (tblobjname "DIMSTYLE" dimstyle))
size (cdr (assoc 140 ell))
);setq
);if
(setq size (* factor size));setq
);defun 5楼的代码简练,好使! (defun changetextheight (en height);;;en--标注的图原名 height--文字高度
(vl-load-com)
(vla-put-textheight (vlax-ename->vla-object en) height)
) 论坛里高人还是比较多啊。 好东西
页:
[1]
2