如何在標註尺寸中快速加入∅符號
如图,这种情况如何用lisp程序来修改我原本的想法是想利用entsel但是只读到图元之类的东西,无法修改
请各位帮忙一下
另外标注的精确度也可以修改吗
就是原本是小数一位的精度
然后直接用lisp改为小数两位。
虽然精确度用滑鼠右键就可以修改了
但是想把他写成lisp直接打快捷键,这样方便多
%%c,但可能受到字体限制 ;加直径改小数位
(defun c:tt()
(setvar "cmdecho" 0)
(setq s (car(entsel)))
(command "_.dimoverride" "dimdec" "4" "" s "")
(setq ss (entget s))
(setq ss (subst (cons 1 "%%c<>") (assoc 1 ss) ss))
(entmod ss)
(entupd ss)
(PRINC)
) (defun C:fD()
(setq cmd(getvar "cmdecho"))
(setvar "cmdecho" 0)
(setvar "DIMZIN" 2)
(setvar "dimdec" 2)
(COMMAND "_DIMLINEAR" PAUSE PAUSE "T" "%%c<>" )
(setvar "cmdecho" cmd)
(princ)
)
(defun c:tt ()
(vl-load-com)
(if
(setq en (car (entsel)))
(vla-put-textprefix
(vlax-ename->vla-object en)
"%%C"
)
)
) 如果有字体,比如探索者的字体,%%130 %%131 %%132 本帖最后由 lead009 于 2011-5-29 22:30 编辑
回复 啵浪鼓 的帖子
你的程序我試了一下,功能是我要的,但是有些差異
我想的是
1.增加符號∅
2.改變精確度
這兩個程序是分開的
因為精確度的修改,在地方會用到,常常一張圖裡面有些要改成小數第3位 有的要改成第2位 1位整數的
所以
如能夠使用者輸入"位數"太棒了。
我後來又把你的程序修改了一下,
希望說是可以用框選的方式。但是不知為何REAPEAT回圈只跑了一圈就壞了,能否幫我看一下
(defun C:dc1()
(setvar "cmdecho" 0)
(setq n 0)
(setq ss(ssget));;
(repeat (sslength ss)
(print "000")
(setq en(ssname ss n));;取出來即為x物件
(setq data (entget en))
(setq data(subst (cons 1 "%%C<>") (assoc 1 data) data))
(entmod data)
(entupd data)
(setq n(+ n 1))
);re
(prin1)
)
回复 lenlenq 的帖子
感謝你的程序,跟我想像中的一樣
但是你的寫法我還沒學過,有機會再向你討教了 本帖最后由 chpmould 于 2011-5-29 23:48 编辑
lead009 发表于 2011-5-29 22:22 http://bbs.mjtd.com/static/image/common/back.gif
回复 啵浪鼓 的帖子
你的程序我試了一下,功能是我要的,但是有些差異
我目前用的,支持框选...应符合你要求...内包含 (尺寸增加直径)(尺寸取消直径)(尺寸文字放大)(尺寸修改精度) 回复 lead009 的帖子
怎么贴上色代码,没搞过,不懂'
;;;加直径改小数位
(defun C:dc1 (/ sum n ss en data)
(setvar "cmdecho" 0)
(setq sum (getint "\n 输入尺寸精度 <默认2位> :"))
(setq n 0)
(setq ss(ssget))
(if ss
(progn
(if sum
(command "_.dimoverride" "dimdec" sum "" ss "")
(command "_.dimoverride" "dimdec" 2 "" ss "")
)
(repeat (sslength ss)
(setq en(ssname ss n));;取出來即為x物件
(setq data (entget en))
(setq data(subst (cons 1 "%%C<>") (assoc 1 data) data))
(entmod data)
(entupd en)
(setq n(+ n 1))
);end repeat
) ;end progn
) ;end if
(command "REDRAW")
(prin1)
)
页:
[1]
2