乐筑天下

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

[编程交流] 选择刚断开的对象

[复制链接]

95

主题

477

帖子

383

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
475
发表于 2022-7-5 17:46:14 | 显示全部楼层 |阅读模式
我知道我犯了一个愚蠢的错误,但我想知道为什么我在break命令后选择刚创建的对象的代码不起作用。我曾尝试将entget与entlast结合使用,但似乎不起作用。我的代码是:
  1. (setq ent1 (entget (entlast)));;;I have also tried (car (entget (entlast))) and (entget (car (entlast))) but it doesn't work either.
  2.       (vl-cmdf "._join" ent ent1 "")
其中ent是我运行break命令时选择的对象。这是一个更大的惯例的一部分,这就是为什么我试图打破,然后重新加入普林。
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 17:50:55 | 显示全部楼层
在我看来,除了这个问题:
“ent”表达式的引号是什么它有入口吗?
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:57:12 | 显示全部楼层
您需要在第一次选择时保存对象ID,然后do break entlast将成为新对象。
回复

使用道具 举报

95

主题

477

帖子

383

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
475
发表于 2022-7-5 18:02:00 | 显示全部楼层
所以ent被分配给
这也不正确吗?
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 18:08:55 | 显示全部楼层
我不确定,但你可以试试:
  1. (vl-cmdf "._join" (entget ent ) ent1 "")

哪里:
  1. (setq ent1 (entget (car (entlast))))
回复

使用道具 举报

95

主题

477

帖子

383

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
475
发表于 2022-7-5 18:10:08 | 显示全部楼层
所以我试过了,但仍然不起作用。我想知道是否可能更改了对象id,使原始对象不再存在,而是有两个新id。
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 18:17:00 | 显示全部楼层
我认为join命令可能适用于选择集,所以可能构建一个空的ss,在其中两者都被添加到其中。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 18:22:19 | 显示全部楼层
如果可以的话。为什么不使用命令Pedit呢?
 
正如您在第一篇文章中所述,您选择了一条多段线并运行命令break,然后使用entlast函数分割多段线,这还不足以获得新创建的曲线对象。
 
当您第一次选择要打断的多段线时,在运行命令break并完成后,只需使用while函数和entnext编写代码即可检索新创建的对象。
 
祝你好运
回复

使用道具 举报

95

主题

477

帖子

383

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
475
发表于 2022-7-5 18:24:04 | 显示全部楼层
我没有使用PEDIT,因为这是涉及要素线的更大例程的一部分,这些要素线将被打断,然后使用相同的技术重新连接,而不是使用命令插入PI,因为它可能会弄乱要素线的坡度。我没有想过使用entnext函数来实现这一点。我会处理好它,看看我能做些什么。谢谢你的帮助和建议!
回复

使用道具 举报

95

主题

477

帖子

383

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
475
发表于 2022-7-5 18:32:07 | 显示全部楼层
Tharwat,所以我试着使用你的方法,但它说我有一个空的选择集,这看起来很奇怪,因为至少应该有一个新的实体。我的代码是:
  1. (setq lastent (entlast))
  2.       (command "._AeccBreakFeatures" ent "_f")
  3.       (princ "\nPick break point: ")
  4.       (command pause "@")
  5.       (while (setq lastEnt (entnext lastEnt))
  6.         (ssadd lastEnt ss)
  7.       )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 23:46 , Processed in 0.480162 second(s), 72 queries .

© 2020-2025 乐筑天下

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