乐筑天下

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

在AutoCad 2013中异步发送Lisp命令

[复制链接]

1

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2015-9-28 20:15:39 | 显示全部楼层 |阅读模式
我需要在我的插件中使用内置的AutoCad电气功能(我使用的是AutoCad电气2013 BTW),我需要同步执行命令,因为我正在记录命令创建的组件的对象ID,以便在以后的命令中使用。我已经尝试了几种不同的同步方法,包括acedCmd、AcadEvapLisp和Application.Invoke(我最喜欢的),以连接字符串和结果缓冲区等形式发送命令,这在大多数时候都有效。但是有几个命令(例如c:wd_insym2)给我错误:AutoCAD命令被拒绝:“_,UNDO”。Maxence on StackOverflow告诉我,这可能是因为一些可重入性问题,因为我有我的命令调用和ACad电气命令,它反过来调用UNDO命令。这是正确的吗?Maxence建议的另一件事是使用异步方法,并在继续之前使用Aetc运算符等待命令执行。等待ed.CommandAsync("(c:wd_insym2"C:/block/HT00_001.dwg"'(150 230)nil nil)");。
ed.WriteMessage("最后一个实体句柄:{0}",Utils.EntLast(),句柄);但是,该示例使用ed.CommandAsync(),这在AutoCad 2015中是新的,我似乎找不到任何可以以这种方式调用的AutoCad 2013 API方法(例如Aetcdoc.SendStringToExecute()出现错误,说“表达式不产生值”,关于如何使用2015年前的方法同步发送ALL命令或异步发送它们并使用Aetc的任何想法/建议?非常感谢。

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-4 23:45 , Processed in 0.147916 second(s), 54 queries .

© 2020-2025 乐筑天下

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