CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

访问命令行 (.NET)

2023-1-1 15:27| 发布者: admin| 查看: 447| 评论: 0|来自: AutoCAD

可以使用该方法将命令直接发送到命令行。该方法将单个字符串发送到命令行。该字符串必须包含按已执行命令的提示序列所期望的顺序列出的命令的参数。SendStringToExecuteSendStringToExecute

字符串中的空格或相当于回车符的 ASCII 等效于按键盘上的 Enter 键。与 AutoLISP 环境不同,调用不带参数的方法无效。SendStringToExecute

执行的命令是异步的,在 .NET 命令结束之前不会调用。如果需要立即(同步)执行命令,则应:SendStringToExecute

  • 使用该方法,该方法是 COM 自动化库的一部分,可以使用 .NET COM 互操作进行访问SendCommand
  • P/为本机 AutoCAD 命令和使用 ObjectARX 或 .NET API 定义的命令调用非托管方法。acedCommandacedCmd
  • P/为通过 AutoLISP 定义的命令调用非托管方法acedInvoke

向命令行发送命令

下面的示例创建一个中心为 (2, 2, 0)、半径为 4 的圆。然后,绘图将缩放到绘图中的所有几何图形。请注意,字符串末尾有一个空格,表示开始执行命令的最终 Enter。

VB.NET

Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.Runtime
 
<CommandMethod("SendACommandToAutoCAD")> _
Public Sub SendACommandToAutoCAD()
  Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
 
  '' Draws a circle and zooms to the extents or 
  '' limits of the drawing
  acDoc.SendStringToExecute("._circle 2,2,0 4 ", True, False, False)
  acDoc.SendStringToExecute("._zoom _all ", True, False, False)
End Sub

C#

using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.Runtime;
 
[CommandMethod("SendACommandToAutoCAD")]
public static void SendACommandToAutoCAD()
{
  Document acDoc = Application.DocumentManager.MdiActiveDocument;
 
  // Draws a circle and zooms to the extents or 
  // limits of the drawing
  acDoc.SendStringToExecute("._circle 2,2,0 4 ", true, false, false);
  acDoc.SendStringToExecute("._zoom _all ", true, false, false);
}

VBA/ActiveX 代码参考

Sub SendACommandToAutoCAD()
   ' Draws a circle and zooms to the extents or 
   ' limits of the drawing
   ThisDrawing.SendCommand "._Circle 2,2,0 4 "
   ThisDrawing.SendCommand "._zoom a "
End Sub

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 15:25

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部