乐筑天下

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

[编程交流] 协调

[复制链接]

20

主题

51

帖子

32

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
105
发表于 2022-7-6 17:07:58 | 显示全部楼层 |阅读模式
有没有比我使用的更好的方法来为命令提供坐标?
 
(setq pnt列表(assoc 10 ent))
(setq pnt-x(rtos(第n个0 pnt列表)))
(setq pnt-y(rtos(第n个1 pnt列表)))
(setq pnt-z(rtos(第n个2 pnt列表)))
(命令“_.CIRCLE”
(strcat pnt-x”、“pnt-y”、“pnt-z)
半径
)
回复

使用道具 举报

32

主题

430

帖子

423

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
150
发表于 2022-7-6 17:28:18 | 显示全部楼层
 
 
(setq pnt列表(cdr(assoc 10 ent)))
 
ASSOC返回一个列表,其第一个元素是代码本身[10]
在这种情况下,以下是3点的坐标
 
从此网站
 
http://ronleigh.info/autolisp/acatalog.htm
 
协会。。。。。在关联列表中搜索关键元素,并返回包含该关键元素的子列表。之后(setq carlist(list(list“year”“1940”)(list“make”“buick”)(list“model”“sedan”))
(assoc“make”carlist)返回(“make”“buick”)
 
Cdr,去掉列表中的第一个元素
 
 
cdr。。。。。返回包含除第一个元素外的所有元素的列表。见以下注释。(cdr(列表2 4 6)返回(4 6
(cdr(list(list 1 2)(list 3 4)(list 5 6)(list 7))返回((3 4)(5 6)(7)
(cdr(列表9))返回nil
回复

使用道具 举报

20

主题

51

帖子

32

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
105
发表于 2022-7-6 17:43:04 | 显示全部楼层
谢谢devitg
 
我可以看出,我的第n个应该从1开始,以错过第一个列表成员(我一直在做-打字),但我更高兴的是,我可以使用cdr。
回复

使用道具 举报

0

主题

269

帖子

279

银币

限制会员

铜币
-4
发表于 2022-7-6 18:00:01 | 显示全部楼层
你可以向命令发送一个列表,你不需要输入文本格式。因此,以下较短的代码应该可以工作:
 
(setq pnt列表(assoc 10 ent))
(setq pnt xyz(cdr pnt列表))
(命令“圆形”pnt xyz半径)
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-6 18:19:14 | 显示全部楼层
我认为不需要额外的变量:
 
  1. (command "_.CIRCLE" (cdr(assoc 10 ent))radius)

 
如果您需要在程序的其他位置使用变量:
 
  1. (command "_.CIRCLE" (setq pnt-xyz(cdr(assoc 10 ent)))radius)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 16:10 , Processed in 0.314700 second(s), 62 queries .

© 2020-2025 乐筑天下

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