明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1528|回复: 11

[命令] 关于C#使用command会导致选择集无法释放的bug

[复制链接]
发表于 2025-8-20 11:41:31 | 显示全部楼层 |阅读模式
本帖最后由 d1742647821 于 2025-8-20 14:18 编辑

虽然不建议使用command,但是某些情况,比如你的用户要使用某 T正 软件时,不得不使用command来进行一些操作。


现象
首先这是一段为了测试而写的代码,它的内容是随便画一个对象,然后调用cad的command将它删除


可以尝试一下,这段代码跑到中间的时候,会弹出“调用的目标发生了异常”的错误,然后cad的选择集就无法使用了。
原因是cad的选择集不能超过128个,但是可以看到我的代码里加了dispose也释放了变量,但是仍然不行,c#也没有提供释放选择集的api。
我尝试使用com接口获取文档中的选择集,发现数量居然是0。
此问题只会在使用 SelectionSet.FromObjectIds 函数时才会出现,使用editor.GetSelection拿到的选择集不会出现此问题。
并且只有使用editor.Command后才会出现,单纯的创建选择集无论创建多少个也不会出现错误,可能是非拖管对象发送到c++端使用后没有释放,这很可能是cad的一个bug。

解决方法
暂无解决办法,只能不用选择集,采用替代写法。
ed.Command的时候不传选择集,将id一个一个传进去也是一样的
这样要先构建一个commandList,添加完参数之后ToArray转为数组再传到editor.Command的参数里
麻烦了那么一点点,效果是一样的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

 楼主| 发表于 2025-8-20 14:15:32 | 显示全部楼层
gzxl 发表于 2025-8-20 12:52
那就用四叉树选择(2J 不是有嘛),见到 command 就头疼。
遍历数据库很快的,再加过滤需要图 ...

看都不看是吧,拿起嘴就评论,这跟选择有半毛钱关系吗
回复 支持 反对

使用道具 举报

发表于 2025-8-20 18:37:52 | 显示全部楼层
d1742647821 发表于 2025-8-20 14:15
看都不看是吧,拿起嘴就评论,这跟选择有半毛钱关系吗

您六次提到“选择集”,所以才有所误会。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-8-20 17:08:50 | 显示全部楼层
edata 发表于 2025-8-20 16:56
id构建选择集,可以通过GetSelection配合设置预选构建

从稳定性上感觉还不如一个一个传进去
回复 支持 反对

使用道具 举报

发表于 2025-8-20 12:52:12 | 显示全部楼层
本帖最后由 gzxl 于 2025-8-20 12:56 编辑

那就用四叉树选择(2J 不是有嘛),见到 command 就头疼。
遍历数据库很快的,再加过滤需要图元、再加盒子四个角点
回复 支持 反对

使用道具 举报

发表于 2025-8-20 14:57:44 | 显示全部楼层
其实也不一定一个一个传,可以用GetSelection构建选择集.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-8-20 16:22:59 | 显示全部楼层
edata 发表于 2025-8-20 14:57
其实也不一定一个一个传,可以用GetSelection构建选择集.

问题是实际上不需要选择
回复 支持 反对

使用道具 举报

发表于 2025-8-20 16:33:20 | 显示全部楼层
面对这种问题估计要学windbg才能分析到底是哪里的问题.
回复 支持 反对

使用道具 举报

发表于 2025-8-20 16:56:58 | 显示全部楼层
d1742647821 发表于 2025-8-20 16:22
问题是实际上不需要选择

id构建选择集,可以通过GetSelection配合设置预选构建
回复 支持 反对

使用道具 举报

发表于 2025-8-21 13:12:27 | 显示全部楼层
我撤回之前信息,你这吊毛就不配是版主
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-11-10 04:05 , Processed in 0.223857 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表