画保温棉
本帖最后由 gaics 于 2021-8-15 12:53 编辑写了一段画保温棉的代码,有需要的拿去用。
<2021.8.13更新1>增加点选设置保温棉厚度(取点到垂足的距离)。
(if (null (setq pt3 (getpoint pt2 "\n输入保温棉的厚度[默认厚度50mm]:")))
(setq d 50)
(setq d (distance (PerPt pt3 pt1 pt2) pt3))
)
<2021.8.14更新2>替换<更新1>,优化厚度设置方法:
(princ"\n输入保温棉的厚度[默认厚度50mm]:\n")
(setq lastpt(getvar "Lastprompt"))
(if (setq pt3 (getpoint pt2))
(if (equal (getvar "Lastprompt") lastpt)
(setq d (distance (PerPt pt3 pt1 pt2) pt3))
(setq d (atof(getvar "Lastprompt")))
)
(setq d 50)
)
如果是输入厚度值,需要用“回车”键或者“右键”确认。使用“空格”会出错!
此处感谢@llsheng_73,73哥提供的两个思路:
http://bbs.mjtd.com/forum.php?mo ... 3894&fromuid=410342
http://bbs.mjtd.com/forum.php?mo ... 2563&fromuid=410342
<2021.8.15更新3>替换<更新2>,用vla-getpoint方法解决输入厚度值使用“空格”确认会出错的问题:
但是此时不能切换正交,否则又出错,唉!!
(setq util (vla-get-utility
(vla-get-activedocument
(vlax-get-acad-object)
)
)
)
(princ "\n输入保温棉的厚度[默认50mm]:\n")
(setq lastpt(getvar "Lastprompt"))
(if (setq pt3 (vlax-safearray->list(vlax-variant-value(vla-getpoint util (vlax-3D-point pt2)))))
(if (equal (getvar "Lastprompt") lastpt)
(setq d (distance (PerPt pt3 pt1 pt2) pt3))
(setq d (atof(getvar "Lastprompt")))
)
(setq d 50)
)
以前收集的一位老师画岩棉,和楼主的功能相似。使用也不错 大佬给力啊~~~ 大佬,要是能增加弧形弧内外画岩棉就更好了 看看写法有什么特别 输入保温棉终点<--:
输入保温棉的厚度[默认50mm]:
命令: Automation 错误。 用户输入的是关键字 出错为什么? 小毛草 发表于 2021-8-19 16:58
出错为什么?
如何操作的? 你那个好像只能逆时针,顺时针呢 当输入非50厚度时候比如100间距还是10的圆弧,能否动态调整?跟着等比例变化呢,不然当做100厚的棉的时候感觉特别密多
页:
[1]
2