写这个更好的方法?
为什么这看起来有点迟缓?(defun c:mod (/ ent id ss i)
(if (setq ss (ssget '((0 . "insert"))))
(repeat (setq id (sslength ss))
(if (eq (vlax-get-property (setq ent (vlax-ename->vla-object (ssname ss (setq id (1- id)))))
"effectivename") "panel")
(repeat (setq i (length (setq ent (vlax-invoke ent "getdynamicblockproperties"))))
(if (eq (vla-get-propertyname (nth (setq i (1- i)) ent)) "Panel Length")
(vla-put-value (nth i ent) "2")
)
)
)
)
(prompt "No objects selected!")
)
(princ)
) 使用foreach逐步了解动态块特性。 将其视为一项挑战,这是我所能得到的最大优化:
当然,未经测试。 vla put Value返回put Value还是nil?vl-some不需要非nil值来停止遍历列表吗? 很好的一点-没有考虑到这一点-没有错误,只是效率比可能的低
已更新。 刚刚打破了vl-some的目的,让它像使用mapcar+lambda一样。
没错-当然不是故意的 我知道。只是帮助你优化。 我猜这只是我的电脑,因为它似乎与艾伦的foreach建议和李的日常生活迟缓。
谢谢大家! 你选择了多少个街区?
页:
[1]
2