快速标公差
我是菜鸟级的新手,看到别人的源码,修改了一下有些不好的地方,忘指正
(defun c:at()
(setq gett (getstring "\n请选择标公差类型 [对称公差(D)/默认(极限公差)]:"))
(setq gett (strcase gett));字符串转换大小写
(if (= gett "D") (progn
(defun vla-ssname (ss index)
(vlax-ename->vla-object (ssname ss index))
)
(setq %%g1 (getdist "\n输入[对称公差]±:"))
(if (null %%g1) (setq %%g1 %%kc)
);if
(princ "\n选择尺寸:")
(while (setq ss (ssget ":S" '((0 . "DIMENSION"))))
(repeat (setq i (sslength ss))
(setq vobj (vla-ssname ss (setq i (1- i))))
(vla-put-ToleranceDisplay vobj acTolDeviation)
(vla-put-ToleranceUpperLimit vobj %%g1)
(vla-put-ToleranceLowerLimit vobj %%g1)
)
);while
(setq %%kc %%g1);用这种方法,获的上次输入值,应该还有更好的方法
(princ)
(princ "\n标公差已完成")
(princ)
);progn
);if
(if (= gett "") (progn
(defun vla-ssname (ss index)
(vlax-ename->vla-object (ssname ss index))
)
(setq %sk1 (getdist "\n输入[正公差]+:"))
(if (null %sk1) (setq %sk1 %am1)
);if
(setq %sk2 (getdist "\n输入[负公差]-:"))
(if (null %sk2) (setq %sk2 %wk2)
);if
(princ "\n选择尺寸:")
(while (setq ss (ssget ":S" '((0 . "DIMENSION"))))
(repeat (setq i (sslength ss))
(setq vobj (vla-ssname ss (setq i (1- i))))
(vla-put-ToleranceDisplay vobj acTolDeviation)
(vla-put-ToleranceUpperLimit vobj %sk1)
(vla-put-ToleranceLowerLimit vobj %sk2)
)
);while
(setq %am1 %sk1
%wk2 %sk2);用这种方法,获的上次输入值,应该还有更好的方法
(princ)
(princ "\n标公差已完成")
(princ)
);progn
);if
);defun
我来学习一下. 恐龙大师,你还要来学习啊,给我指正错误吧 支持源码。谢谢分享。 感谢 琴剑江山_10184 分享程序! 改成一个函数不更好一点 maiko 发表于 2014-9-1 22:12 static/image/common/back.gif
改成一个函数不更好一点
改成什么函数,指定下。谢谢 本帖最后由 maiko 于 2014-9-2 11:48 编辑
我来学习一下. 太感谢啦,
页:
[1]