乐筑天下

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

[编程交流] 实体交点

[复制链接]

2

主题

6

帖子

4

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 07:26:10 | 显示全部楼层 |阅读模式
你好
 
我正在寻找一种方法来自动(无需用户交互)确定实体是否接触。我已经找到了一种使用“fastsel”命令执行此操作的方法,但这需要用户在图形中选择一个实体。是否已经存在这样的东西,但用户不必选择实体?我在这里找到了一些代码,但这又需要用户做些什么,最好修改fastsel LISP代码吗?
 
干杯
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:15:37 | 显示全部楼层
使用实体的等效VLA对象的IntersectWith方法,例如:
 
  1. (vlax-invoke <VLA-Object 1> 'intersectwith <VLA-Object 2> acextendnone)

 
测试VLA对象的位置/位置。由于您不希望任何用户交互,因此需要使用ssget和模式字符串(例如X模式字符串)检索这些对象。
 
上面将返回一个表示交点的双精度列表,如果对象不相交,则返回零。
回复

使用道具 举报

2

主题

6

帖子

4

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 08:47:59 | 显示全部楼层
谢谢,我试过使用这种方法,但这并不完全是我想要的。应该在我最初的帖子中给出更多细节。实体是3D的,我想确定两个实体是否“接触”,即一个实体是否在左侧、右侧、上方或下方接触另一个实体。
 
附上了一个相当粗糙的例子,第一(1)(其中第一个实体接触右侧的第二个实体)和第二(2)确实相互接触,而最后(3)没有。“intersectwith”方法表示第二个实体接触,但不是第一个。此外,当上面的一个实体接触下面的另一个实体时,它似乎不起作用。
 
正如我所提到的,fastsel确实可以工作,我只需要它,所以没有提示,并且会自动扫描图形,我可以编辑fastsel代码,但我不擅长使用LISP,代码看起来确实很复杂。
 
有什么建议吗?
082613ccmkeiecmd7azwa1.jpg
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 05:25 , Processed in 0.625676 second(s), 60 queries .

© 2020-2025 乐筑天下

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