C# AutoCAD 利用Editor.CommandAsync 同步监测自带命令的执行情况

#1官方文档并无相关解释:AutoCAD 2023 Developer and ObjectARX Help | Editor.CommandAsync Method | Autodesk

#2 上例子,我用自带的命令画一个圆,画完后我要修改它的颜色,此时该如何操作呢,下面是可用的代码

[CommandMethod(nameof(tt_CommandAsync))]
public void tt_CommandAsync()
{
try
{
var ed = Application.DocumentManager.MdiActiveDocument.Editor;
var db = Application.DocumentManager.MdiActiveDocument.Database;
Application.SetSystemVariable("filedia", 0);
var cr = ed.CommandAsync("circle", "0,0,0", 500);
cr.OnCompleted(() =>
{
var psr = ed.SelectLast();
ed.WriteMessage($"" + Environment.NewLine);
Application.SetSystemVariable("filedia", 1);
if (psr.Status == PromptStatus.OK)
{
using (var tr = db.TransactionManager.StartTransaction())
{
var ent = tr.GetObject(psr.Value[0].ObjectId, OpenMode.ForWrite) as Entity;
if (ent != null)
{
ent.Color = Color.FromColorIndex(ColorMethod.ByAci, 150);
tr.Commit();
}
else tr.Abort();
}
}
}
);
}
catch (System.Exception ex)
{
Application.ShowAlertDialog(ex.StackTrace);
}
}

测试命令是可以执行的,达到了我们要求。

 

 

posted @   南胜NanSheng  阅读(636)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示