qinleilei 发表于 2014-8-8 17:15:22

如何自定义制定尺寸的上下限公差

假如有很多尺寸,我想要指定其中几个尺寸带有公差,该如何制作lsp?高手帮我写一下好不,按照下面的思路感激不敬!
输入命令 →输入公差上限→输入公差下限   →   框选需要增加公差的尺寸。回车OK 效果如下图



ZZXXQQ 发表于 2014-8-8 20:31:38

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

qinleilei 发表于 2014-8-9 08:52:42

ZZXXQQ 发表于 2014-8-8 20:31 static/image/common/back.gif


很感谢楼上的解答,虽然不是很理想。
其实我想的是下图这种效果,不是单纯的在标注上面加上后缀。

qinleilei 发表于 2014-8-9 17:27:36

好冷清额,谁能帮我看下

xhq1954425 发表于 2014-8-10 13:54:30

本帖最后由 xhq1954425 于 2014-8-10 17:13 编辑

你根据版主给的程序改动一下就能实现你所要的东西




xhq1954425 发表于 2014-8-10 14:08:26

本帖最后由 xhq1954425 于 2014-8-10 17:13 编辑

版主为你提供的是一种方法,你要通过研究明白,再为你所用,生搬硬套可能不好用

SunSpring 发表于 2014-8-10 14:54:49

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

这样应该就可以了.

dhy 发表于 2014-8-10 15:50:59

能把上次的输入数据记忆下来就完美了

qinleilei 发表于 2014-8-10 16:31:24

xhq1954425 发表于 2014-8-10 13:54 static/image/common/back.gif
你根据版主给的程序改动一下就能实现你所要的东西……例如:

(defun c:tt ()


版主的是在尺寸里面加后缀的,而我需要的是尺寸附有公差,可以从特性工具里面看得出来。另外版主那个函数 (setq txt (strcat "<>\H0.7x;\S" t1 "^" t2 ";"))txt的变量值丢失了字符 "\"标出来的效果如下图

qinleilei 发表于 2014-8-10 16:40:08

SunSpring 发表于 2014-8-10 14:54 static/image/common/back.gif
这样应该就可以了.

太感谢你了!这正是我所想要的效果。你的代码我还看不懂,不过没关系
页: [1] 2
查看完整版本: 如何自定义制定尺寸的上下限公差