求助大佬帮解决下选择集的问题
小弟刚刚接触AutoCAD二次开发(C#),在开发中碰到了个问题,设计团队现在对于天正依赖太大,希望我通过二次开发绘制出的图纸中保留天正的图元,而不是炸开,或者是采用line等来实现。
因为他们还需要使用天正进行二次编辑。
例如:通过绘制 轴网后 利用天正的 tswall 轴网生成墙的功能,
但是 现在碰到一个 麻烦的问题,
通过SendStringToExecute调用tswall 之后,tswall 命令会调用Editor.GetSelection获取一个与用户交互的选择器,等待用户选择需要生成墙的轴网
我可以通过SelectionFilter筛选出需要的轴网线,但是该怎么把这些轴网线传给tswall 调用的选择器呢?
我尝试过 "tswall 轴网坐标"这样的方式,虽然可以成功,但是 在某些特定情况下 还是存在问题,比如编辑器缩放很小的时候会出现 选不到实体的情况
Editor.SetImpliedSelection单独设置筛选的轴网对象可以有效果,但是和tswall 配合起来就没效果了。。
新建一个c#可识别的选择集,然后用lisp语句把所有选择集内所有图元的句柄列表遍历一次,循环用tswall命令来处理执行。 依赖天正不代表要command调用,不建议这样使用,可以考虑插图元改位置,自己写算法,你这样只能叫脚本不叫编程 d1742647821 发表于 2022-7-21 12:15
依赖天正不代表要command调用,不建议这样使用,可以考虑插图元改位置,自己写算法,你这样只能叫脚本不叫 ...
确实 是这样的,命令调用就算是实现了功能 也会存在很多不可控因素,刚接触几周,之前完全没接触过CAD,一直没找到合适的教程或源码作为参考,帅哥如有相关的示例给分享下呗,小弟感激不尽
635856787@qq.com 635856787 发表于 2022-7-21 16:24
确实 是这样的,命令调用就算是实现了功能 也会存在很多不可控因素,刚接触几周,之前完全没接触过CAD, ...
SendStringToExecute 是异步发送的,很不靠谱,除非你一个commandmethod里只SendStringToExecute,不搞其他的,否则很容易出错,含有窗体的天正命令更容易出错。举个例子,比如你要画天正的墙,你可以把一根墙保存到本地,然后要画墙的时候,把它插到图纸,然后再用代码修改它的端点坐标以及宽度图层等其他参数,以达到绘制天正图元的目的
页:
[1]