[求助]如果通过dimstyle的符号表批量更改已标注文字的颜色
<p><font face="Verdana">如果通过dimstyle的符号表批量更改已标注文字的颜色</font></p><p>要用lisp实现,不要用vlisp</p>
<p>而且要求只更改已标注尺寸的文字颜色而不改变已标注尺寸的其它标注格式变量。</p>
<p>比如直径标注,原来的文字水平放置,改后还要水平放置</p> <p>不明白?直径标注也是尺寸标注呀?你的已标注尺寸到底是什么样的尺寸?你标注的直径标注是单独的标注样式吗?</p> 不就改标注文字颜色嘛!用下面代码,纯lisp的:
(defun c:tt()
(setq ss (ssget '((0 . "DIMENSION"))))
(if ss
(progn
(initget 5)
(setq color (getint "输入颜色号:"))
(setq lst (list (list -3 (list "ACAD" '(1000 . "DSTYLE") '(1002 . "{") '(1070 . 178) (cons 1070 color) '(1002 . "}")))))
(setq n 0)
(repeat (sslength ss)
(setq en (ssname ss n))
(setq enl (entget en))
(setq enl (append enl lst))
(entmod enl)
(setq n (1+ n))
)
)
)
(princ)
)
樓上會改变已标注尺寸的 龙龙仔发表于2010-10-14 12:19:00static/image/common/back.gif樓上會改变已标注尺寸的
<p>是的,还是应vlisp简单!一句代码搞定!</p>
<p><font face="Verdana">(vla-put-textcolor (vlax-ename->vla-object (car (entsel))) (getint "输入颜色:"))</font></p>
;;這是我某個程序中的副程式,應對你有幫助
;;(tol (car(entsel)) (acad_colordlg 256))
(defun TOL (A COL / AAA TMP N)
(setq AAA (cdadr (assoc -3 (entget A '("ACAD")))))
(setq N 2)
(setq TMP '((1000 . "DSTYLE")
(1002 . "{")
)
)
(repeat (/ (- (length AAA) 3) 2)
(if (not (or (equal '((1070 . 176)) (list (nth N AAA)))
(equal '((1070 . 177)) (list (nth N AAA)))
(equal '((1070 . 178)) (list (nth N AAA)))
)
)
(setq TMP (append (list (nth N AAA) (nth (+ N 1) AAA)))
TMP
)
)
(setq N (+ N 2))
)
(setq
A (append (entget A)
(list (cons -3
(list (cons "ACAD"
(append TMP
'((1070 . 176))
(list (cons 1070 COL))
'((1070 . 177))
(list (cons 1070 COL))
'((1070 . 178))
(list (cons 1070 COL))
'((1002 . "}"))
)
)
)
)
)
)
)
(entmod A)
(princ)
)
还没试呢,谢谢各位了,不胜感激。 <p>直径标注前面是带直径符号的,不能改完颜色把直径符号给丢了。(顺便问一下要是丢了怎么能加一个和直径标注一模一样的直径符号,不能通过前后缀,或在文字替换中加%%c来实现,这样的实现方法与直径标注自动加的直径符号不是一回事。)</p>
<p> </p>
<p>龙仔仔,不行啊,你的程序会把标注识文字还原的,我不希望还原。我的意思是只改文字颜色(通过DIMCLRT或通过dimstyle的符号表哪种方式都行,就是不要影响已标注尺寸的其它尺寸变量),而不是Vlisp,Vlisp很简单就能实现我也知道,不改内容,前后缀,文字是否水平等等其它的一切标注格式变量。</p>
<p> </p>
<p> </p>
<p>就是实现和通过特性改已标注文字的颜色一样的功能,要批量的。</p> Gu_xl 发表于 2010-10-14 13:37 static/image/common/back.gif
是的,还是应vlisp简单!一句代码搞定!
(vla-put-textcolor (vlax-ename->vla-object (car (entsel ...
G版您好,我想把 (vla-put-textcolor (vlax-ename->vla-object (car (entsel)))1)加到其他程序里,怎样改才能够让它改变已选的标注呢?
页:
[1]