乐筑天下

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

[编程交流] 内存中的最后一个实体问题

[复制链接]

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 08:23:46 | 显示全部楼层
变量的作用域取决于它们是否被指定为参数,或是否被指定为Defun语句中的[局部]变量。已定义且未指定为[局部]变量的变量被视为“全局”变量。
 
例子:
  1. 5

 
使用特殊字符(如“*”等)来区分“全局”变量与指定为“局部”的变量是很常见的。添加这些字符不会改变存储数据的能力。
 
HTH公司
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 08:31:55 | 显示全部楼层
我将其定义为全局,因为这是一个命令。注意末尾的(princ)和c:前缀。如果希望它将列表返回给其他defun,则必须将其设计为可调用函数,在这种情况下,列表可以是局部变量(可能应该是)。只要它是在defun中运行的最后一个表达式,它的值就会作为结果返回。但鉴于我使用了您的sample命令作为基础,我们的想法是将列表获取到一个全局变量中。然后,您可以从任何其他函数/命令中将其用作输入数据。 
RM对范围界定的看法是正确的。这个*并不意味着它是全球性的,它只是一个惯例,意味着它是全球性的。有助于避免搞砸其他事情,因为全局变量可能是危险的事情。
 
更好的方法(IMO)是定义一个辅助函数,从多段线的dxf数据中提取矢量点(或者您可以从ActiveX数据中提取):
注意,我没有使用任何额外的变量(全局或其他)。虽然我在VLA案例中使用了一个helper函数-从这个线程:http://www.theswamp.org/index.php?topic=41419.15
 
这样,您可以在任何其他defun(甚至命令)中使用它来仅从多段线中提取矢量点(如果需要的话)。
 
还要注意,我正在使用其他方法创建点列表:
 
它首先从DXF数据中删除每个DXF项,其代码(vl remove if not+lambda+car)不等于10。然后,它将汽车与剩下的汽车分离(地图车+cdr)。
根据vla对象的坐标属性,我将数字列表按2分组(因为该数组是一维的,并且使用2D点)。
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-6 08:35:37 | 显示全部楼层
 
你能帮我编辑一下你的第一篇使用代码标签的帖子吗?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 04:45 , Processed in 0.389995 second(s), 56 queries .

© 2020-2025 乐筑天下

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