云飞日月 发表于 2008-5-15 11:43:00

[求助]求一个修改标注的小程序

功能是这样的。运行某个命令后,输入数值,然后选择标注,被选到的标注不管以前的标注值是什么,都可以被刷成我最先用命令输入的数值。

danxingpen 发表于 2008-5-15 16:47:00

(defun c:test( / newdim ent)<br/>  (setq newdim(getreal "\n输入新的标注值:"))<br/>  (while (and (setq dim(entsel "\n选择要修改的标注:"))<br/>          (ssget "p" '((0 . "DIMENSION")))<br/>     )<br/>    (setq ent(entget (car dim) '("*")))<br/>    (setq ent(subst (cons 1 (rtos newdim)) (assoc 1 ent) ent))<br/>    (entmod ent)<br/>  )<br/>)

ljttjl 发表于 2008-5-15 21:05:00

以上问题如未解决的话,联系:ljttjl@ tom.com

狂刀无痕 发表于 2008-5-15 21:56:00

<p>一句话:</p><p>(command ".dim1" "new" (getstring "\n 输入固定数值:") (ssget '((0 . "*DIM*"))) "")</p>

yangw761 发表于 2008-5-15 22:22:00

楼上牛

云飞日月 发表于 2008-5-22 17:11:00

<p>都不行,第一个显示nil</p><p>第二个说不能加载重复的命令什么的</p>

paulpipi 发表于 2020-9-9 07:56:14

zhangcan0515 发表于 2020-9-9 09:40:43

直接编辑不好用吗!直接修改就是假尺寸了

cjjh8301 发表于 2020-9-9 11:03:23

(defun C:fg( )
(princ "\n选择要修改的尺寸线:")
(setq ss (ssget))
(setq sl (sslength ss))
(setq txt "分格尺寸")
(setvar "cmdecho" 0)
(setq index 0)
(repeat sl
    (setq ent (entget (ssname ss index)))
    (setq index (+ 1 index))
    (setq ty (cdr (assoc 0 ent)))
    (if (= "DIMENSION" ty)
      (progn
         (setq oldtxt (assoc 1 ent))
         (setq newtxt (cons (car oldtxt) txt))
         (setq ent1 (subst newtxt oldtxt ent))
         (entmod ent1)
      ) ;progn end
    ) ;repeat end
)   ;while end
(setvar "cmdecho" 1)
)

huxu823 发表于 2021-1-12 10:24:38

danxingpen 发表于 2008-5-15 16:47
(defun c:test( / newdim ent)&nbsp; (setq newdim(getreal "\n输入新的标注值:"))&nbsp; (while (and (set ...

如果要改成先选择要修改的标注,然后输入新的标准值,而且在输入新的标注值这一步如果直接空格,可以默认为上一次输入的值,这个应该怎么改?
页: [1]
查看完整版本: [求助]求一个修改标注的小程序