lead009 发表于 2011-5-29 18:13:56

如何在標註尺寸中快速加入∅符號

如图,这种情况如何用lisp程序来修改我原本的想法是想利用entsel
但是只读到图元之类的东西,无法修改
请各位帮忙一下


另外标注的精确度也可以修改吗
就是原本是小数一位的精度
然后直接用lisp改为小数两位。

虽然精确度用滑鼠右键就可以修改了
但是想把他写成lisp直接打快捷键,这样方便多

if 发表于 2011-5-29 18:28:16

%%c,但可能受到字体限制

啵浪鼓 发表于 2011-5-29 18:47:37

;加直径改小数位
(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)
)

AMTONNY 发表于 2011-5-29 19:18:25

(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)
)

lenlenq 发表于 2011-5-29 19:50:04

(defun c:tt ()
(vl-load-com)
(if
    (setq en (car (entsel)))
   (vla-put-textprefix
       (vlax-ename->vla-object en)
       "%%C"
   )
)
)

sfjlx 发表于 2011-5-29 19:50:12

如果有字体,比如探索者的字体,%%130 %%131 %%132

lead009 发表于 2011-5-29 22:22:40

本帖最后由 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)
)




lead009 发表于 2011-5-29 22:24:02

回复 lenlenq 的帖子

感謝你的程序,跟我想像中的一樣
但是你的寫法我還沒學過,有機會再向你討教了

chpmould 发表于 2011-5-29 23:46:04

本帖最后由 chpmould 于 2011-5-29 23:48 编辑

lead009 发表于 2011-5-29 22:22 http://bbs.mjtd.com/static/image/common/back.gif
回复 啵浪鼓 的帖子

你的程序我試了一下,功能是我要的,但是有些差異


我目前用的,支持框选...应符合你要求...内包含 (尺寸增加直径)(尺寸取消直径)(尺寸文字放大)(尺寸修改精度)

啵浪鼓 发表于 2011-5-30 00:40:01

回复 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
查看完整版本: 如何在標註尺寸中快速加入∅符號