如何自定义制定尺寸的上下限公差
假如有很多尺寸,我想要指定其中几个尺寸带有公差,该如何制作lsp?高手帮我写一下好不,按照下面的思路感激不敬!输入命令 →输入公差上限→输入公差下限 → 框选需要增加公差的尺寸。回车OK 效果如下图
本帖最后由 ZZXXQQ 于 2014-8-10 21:08 编辑
(defun c:tt ()
(if (and (setq t1 (getstring "\n上偏差: "))
(setq t2 (getstring "\n下偏差: "))
(princ "\n选择尺寸: ")
(setq ss (ssget '((0 . "DIMENSION"))))) (progn
(setq txt (strcat "<>{\\H0.7x;\\S" t1 "^" t2 ";}"))
(repeat (setq i (sslength ss))
(setq ent (entget(ssname ss (setq i (1- i)))))
(entmod (subst (cons 1 txt) (assoc 1 ent) ent))
)
))
(princ)
)
ZZXXQQ 发表于 2014-8-8 20:31 static/image/common/back.gif
很感谢楼上的解答,虽然不是很理想。
其实我想的是下图这种效果,不是单纯的在标注上面加上后缀。
好冷清额,谁能帮我看下 本帖最后由 xhq1954425 于 2014-8-10 17:13 编辑
你根据版主给的程序改动一下就能实现你所要的东西
本帖最后由 xhq1954425 于 2014-8-10 17:13 编辑
版主为你提供的是一种方法,你要通过研究明白,再为你所用,生搬硬套可能不好用
(defun c:tt ()
(defun vla-ssname (ss index)
(vlax-ename->vla-object (ssname ss index))
)
(if (and
(setq t1 (getstring "\n上偏差: "))
(setq t2 (getstring "\n下偏差: "))
(princ "\n选择尺寸: ")
(setq ss (ssget '((0 . "DIMENSION"))))
)
(progn
(repeat (setq i (sslength ss))
(setq vobj (vla-ssname ss (setq i (1- i))))
(vla-put-ToleranceDisplay vobj acTolDeviation)
(vla-put-ToleranceUpperLimit vobj t1)
(vla-put-ToleranceLowerLimit vobj t2)
)
)
)
(princ)
)
这样应该就可以了. 能把上次的输入数据记忆下来就完美了 xhq1954425 发表于 2014-8-10 13:54 static/image/common/back.gif
你根据版主给的程序改动一下就能实现你所要的东西……例如:
(defun c:tt ()
版主的是在尺寸里面加后缀的,而我需要的是尺寸附有公差,可以从特性工具里面看得出来。另外版主那个函数 (setq txt (strcat "<>\H0.7x;\S" t1 "^" t2 ";"))txt的变量值丢失了字符 "\"标出来的效果如下图
SunSpring 发表于 2014-8-10 14:54 static/image/common/back.gif
这样应该就可以了.
太感谢你了!这正是我所想要的效果。你的代码我还看不懂,不过没关系
页:
[1]
2