乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 65|回复: 5

[编程交流] 两种入门方式

[复制链接]

26

主题

149

帖子

127

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2022-7-6 10:27:35 | 显示全部楼层 |阅读模式
你好
 
这两个获得的实体起点之间有什么区别吗?
 
  1. (setq e (car (entsel "\nSelect Line:")))

 
这个。。
 
  1. (setq pt (cdr (assoc 10 (entget e))))

 
还有这个。。
 
  1. (setq pt1 (cons (cdr (assoc 10 (entget e))) pt1))

 
尽管两个返回值相同。
 
非常感谢。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:46:39 | 显示全部楼层
如果没有在某种循环中使用,则第二个循环具有冗余代码。
 
对于单个评估,两种方法都是相同的-第二种方法只有不相关的代码,这使得它效率更低。
 
我建议您研究“cons”函数-请在ACAD开发帮助文件中阅读它。
 
“cons”的使用示例:
 
在两个原子上使用“cons”创建点对:
  1. (cons a b)  ==>  (a . b)

 
请注意,点对只能由两个原子创建:
  1. (cons '(a b) '(c d))  ==>  ((a b) c d)

 
将项目添加到列表:
回复

使用道具 举报

26

主题

149

帖子

127

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2022-7-6 11:03:28 | 显示全部楼层
好啊很不错的。
 
我想最好处理或使用示例中的第一个代码来获取坐标点。
 
但对于与“cons”函数相关的第二个获得点,它必须用于重新组合坐标或点对
作为一种更好更快的施工方式,这在某种程度上与你有关。
 
非常感谢李的好意。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:14:02 | 显示全部楼层
“cons”通常用于在循环中快速建立列表;缺点是列表将被反转,但比使用“append”更快。
 
例如
 
  1. (foreach x '(1 2 3 4 5)
  2. (setq lst (cons x lst))
  3. )
  4. ==>  lst : (5 4 3 2 1)

 
备选方案:
 
  1. (foreach x '(1 2 3 4 5)
  2. (setq lst (append lst (list x)))
  3. )
  4. ==>  lst : (1 2 3 4 5)
回复

使用道具 举报

26

主题

149

帖子

127

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2022-7-6 11:16:42 | 显示全部楼层
关于第一个例子,我在defun“massoc”中看到过,但我记不太清楚,它与“reverse”函数一起使用
再次按顺序重建列表。
 
所以对于你们例子中的第二个例子,它会缩短我们使用“反向”函数的时间。
 
一个非常有力的例子。
 
非常感谢你。
回复

使用道具 举报

0

主题

127

帖子

130

银币

限制会员

铜币
-2
发表于 2022-7-6 11:30:28 | 显示全部楼层
您可能会发现使用cons-then-reverse比使用append更快。
.. 至少这是我的回忆。
 
但时差不会影响大多数随意的代码应用程序。
 
  1. 8

 
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-6 20:57 , Processed in 0.871600 second(s), 75 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表