两种入门方式
你好这两个获得的实体起点之间有什么区别吗?
(setq e (car (entsel "\nSelect Line:")))
这个。。
(setq pt (cdr (assoc 10 (entget e))))
还有这个。。
(setq pt1 (cons (cdr (assoc 10 (entget e))) pt1))
尽管两个返回值相同。
非常感谢。 如果没有在某种循环中使用,则第二个循环具有冗余代码。
对于单个评估,两种方法都是相同的-第二种方法只有不相关的代码,这使得它效率更低。
我建议您研究“cons”函数-请在ACAD开发帮助文件中阅读它。
“cons”的使用示例:
在两个原子上使用“cons”创建点对:
(cons a b)==>(a . b)
请注意,点对只能由两个原子创建:
(cons '(a b) '(c d))==>((a b) c d)
将项目添加到列表:
李 好啊很不错的。
我想最好处理或使用示例中的第一个代码来获取坐标点。
但对于与“cons”函数相关的第二个获得点,它必须用于重新组合坐标或点对
作为一种更好更快的施工方式,这在某种程度上与你有关。
非常感谢李的好意。 “cons”通常用于在循环中快速建立列表;缺点是列表将被反转,但比使用“append”更快。
例如
(foreach x '(1 2 3 4 5)
(setq lst (cons x lst))
)
==>lst : (5 4 3 2 1)
备选方案:
(foreach x '(1 2 3 4 5)
(setq lst (append lst (list x)))
)
==>lst : (1 2 3 4 5)
关于第一个例子,我在defun“massoc”中看到过,但我记不太清楚,它与“reverse”函数一起使用
再次按顺序重建列表。
所以对于你们例子中的第二个例子,它会缩短我们使用“反向”函数的时间。
一个非常有力的例子。
非常感谢你。 您可能会发现使用cons-then-reverse比使用append更快。
.. 至少这是我的回忆。
但时差不会影响大多数随意的代码应用程序。
8
页:
[1]