注册 登录
明经CAD社区 返回首页

sunchengbo2007的个人空间 http://www.mjtd.com/?396505 [收藏] [复制] [分享] [RSS]

日志

Access the AutoCAD Command Line 访问AutoCAD命令行

已有 2528 次阅读2011-7-13 16:54 |个人分类:AutoCAD .NET DevelopGuide翻译|系统分类:开发

Access the AutoCAD Command Line访问AutoCAD命令行

You can send commands directly to the AutoCAD command line by using the SendStringToExecute method. The SendStringToExecute method sends a single string to the command line. The string must contain the arguments to the command listed in the order expected by the prompt sequence of the executed command.

我们可以使用SendStringToExecute方法直接向AutoCAD命令行发送命令。SendStringToExecute方法将单个字符串发送给命令行。该字符串必须包含按所执行命令的提示序列所期望的顺序排列的命令参数。

A blank space or the ASCII equivalent of a carriage return in the string is equivalent to pressing Enter on the keyboard. Unlike the AutoLISP environment, invoking the SendStringToExecute method with no argument is invalid.

字符串中的空格或代表回车符的ASCII码等同于按下了键盘上的Enter键。和AutoLISP环境不同,调用不带参数的SendStringToExecute方法是非法的。

Commands executed with SendStringToExecute are asynchronous and are not invoked until the .NET command has ended. If you need to execute a command immediately (synchronously), you should:

使用SendStringToExecute方法执行命令是异步的,知道.NET命令结束,所调用的AutoCAD命令才被执行。如果需要立即执行命令(同步),我们应该:

·         Use the SendCommand method which is part of the COM Automation library which can be access using .NET COM Interop; 使用.NET COM互操作程序集能访问的COM Automation库的SendCommand方法;

·         P/Invoke the unmanaged acedCommand or acedCmd method for native AutoCAD commands and commands defined with the ObjectARX or .NET API; 对于AutoCAD本地命令及由ObjectARX.NET API定义的命令,使用非托管的acedCommand方法或acedCmd方法

·         P/Invoke the unmanaged acedInvoke method for commands defined through AutoLISP; 对于用AutoLISP定义的命令,使用非托管的acedInvoke方法;

Send a command to the AutoCAD command line 发送名利到AutoCAD命令行

The following example creates a circle with a center of (2, 2, 0) and a radius of 4. The drawing is then zoomed to all the geometry in the drawing. Notice that there is a space at the end of the string which represents the final Enter to begin execution of the command.

下面的例子用圆心(220)和半径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 Code Reference

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

 

 已同步至 sunchengbo2007的微博

路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

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

GMT+8, 2024-4-24 20:24 , Processed in 1.907069 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部