乐筑天下

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

[编程交流] 在列表中使用变量

[复制链接]

180

主题

639

帖子

463

银币

中流砥柱

Rank: 25

铜币
897
发表于 2022-7-5 19:58:17 | 显示全部楼层 |阅读模式
我一定错过了教程中的这一部分,到目前为止,搜索没有找到适合这一部分的内容。我有这样一个列表:
  1. '(13.5 16.75)

我想让其中一个值成为变量,但当我尝试这样做时:
  1. '(pos1 16.75)

我收到DXF错误?
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-5 20:08:45 | 显示全部楼层
对列表使用引号将阻止AutoLISP评估内容;对于第二种情况,考虑列表函数。
  1. ([color=red]list[/color] pos1 16.75)
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-5 20:14:44 | 显示全部楼层
尝试搜索引号符号;我记得李在这方面有一个很好的教程。
 
简言之,通过使用“(又名引号符号),您已经告诉LISP不要计算表达式,而是从表面上看。
 
 
 
如果所需输出是一个列表:
 
  1. (list pos1 16.75)

 
 
 
... 对于分组对:
 
  1. (cons pos1 16.75)
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 20:19:20 | 显示全部楼层
 
谢谢BlackBox
 
Bill,这应该有助于解释:撇号和引号函数
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-5 20:29:32 | 显示全部楼层
 
任何时候,李;就是那个!
回复

使用道具 举报

180

主题

639

帖子

463

银币

中流砥柱

Rank: 25

铜币
897
发表于 2022-7-5 20:33:19 | 显示全部楼层
谢谢大家。我一直在做新项目,在Visual Studio和它的intellisense编辑器上被宠坏了。但还是要跟上AutoCAD的一面。这是一个很好的建议。
回复

使用道具 举报

180

主题

639

帖子

463

银币

中流砥柱

Rank: 25

铜币
897
发表于 2022-7-5 20:40:43 | 显示全部楼层
今天我不得不重读这篇文章。我试过上面的建议,但似乎还是没用。代码如下:
  1. (setq bbn (* (+ 119.5 (/ dim_b 2.)) -1))
  2. (setq bbx (+ 116.5 (/ dim_a 2.)))
  3. ;;;(hgrt '(-148.0 143.0))
  4. (hgrt (list bbn bbx))

注释行显示了函数是如何成功调用的,所以现在我想传递变量,这些变量是上面等式的结果。但我一直在犯这样的错误:
 
我也试过了
  1. (hgrt (cons bbn bbx))
  2. and
  3. (hgrt '(bbn bbx))
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 20:48:48 | 显示全部楼层
  1. (hgrt (list bbn bbx))

这段代码应该可以很好地工作。我发现将某些代码行直接放入autocad以查看其返回的内容很有帮助。一、 E.如果在autocad中键入(列表1-2),它将返回(1-2)。此外,如果要查看变量中存储了哪些数据,请使用和惊叹号,并将变量名键入autocad命令行。IE!bbn公司
 
稍微玩玩一下,看看你的变量是否有问题。
回复

使用道具 举报

180

主题

639

帖子

463

银币

中流砥柱

Rank: 25

铜币
897
发表于 2022-7-5 20:55:59 | 显示全部楼层
谢谢我一定有幻觉,但我确信我至少试过一次。可能忘记了在我更改代码后加载代码之类的事情。无论如何,您确认的代码现在正在工作。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-5 21:02:16 | 显示全部楼层
此外,FWIW-Bill,您可以简单地修改子函数以接受两个参数,而不是一个单元素、两元素列表作为参数。您当前必须构建列表以作为单个、唯一的参数传递,然后可能必须在子函数中提取相应的列表元素。。。更多的工作,同样的结果。
 
干杯
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 00:55 , Processed in 1.407679 second(s), 72 queries .

© 2020-2025 乐筑天下

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