将参数传递给.NET定义的命令

3
我需要在Autocad 2000i的命令行中写入一个命令,并且我想让Autocad提示输入一个参数。然后,我的vb.net程序将根据接收到的参数执行操作。
基本上,我猜我的解决方案都在这里:http://through-the-interface.typepad.com/through_the_interface/2006/09/passing_argumen.html
问题是,我找不到在其中使用Autodesk.AutoCAD.EditorInput命名空间的参考文献。
我在这里错过了什么?EditorInput在Autocad 2000i中不存在吗?
谢谢您的回答。
我有一个vb.net项目,可以向Autocad添加工具栏。 我想通过编写命令和参数来让用户更改工具栏中所选值。 我怎么才能在我的项目中使用你的方法? 我把dvb文件放在我的项目中吗? vba文件能集成到我的vb.net项目中吗?
非常感谢。

你已经安装了ObjectARX SDK吗? - Kratz
2
在2000年,.NET还不存在。 - Hans Passant
是的,它本来不存在,但我的程序是用vb.net编写的,使用了autocad api,并且有一个autocad工具栏。因此,我在我的vb.net程序和autocad 2000i之间进行了来回操作。 - Tomer S
2个回答

2

在2000年之前,AutoCAD并没有为.Net API提供支持。工作是通过使用LISP或VBA或两者的组合来完成的。以下是一些基本操作的简要说明。

VBA-Only方法:

打开“工具”>“宏”>“Visual Basic Editor”(alt+F11)

输入您的代码:

Sub Test()

Dim str As String
str = InputBox("Enter radius:")

MsgBox str

End Sub

在命令提示符中输入"-vbarun"(不含引号)

输入"Thisdrawing.Test" (模块名.函数名)

VBA + Lisp 方法 -(我偏爱的方法)

按照上面提到的方式在编辑器中编写代码。 将你的VBA文件保存为.dvb格式,例如保存在文件夹D:\Macros中,文件名为MyDvb.dvb.

创建一个新的Lisp文件(打开记事本并输入下面的代码,保存为.lsp扩展名)此Lisp文件将用于调用所有VBA宏。

(defun c:testcommand()
  (command "vbarun" "D:/Macros/MyDvb.DVB!ThisDrawing.Test")
)

现在,在命令提示符处键入"ap",加载此Lisp程序一次。这有助于我们使命令在会话中可用。

键入"testcommand",您将看到代码被执行。


1

以下是使用.NET C#的方法:

// 要求用户选择一个文件夹

        PromptResult res = ed.GetString("\nEnter the path of the folder: ");

        if (res.Status == PromptStatus.OK)
        {
            string[] filepaths = Directory.GetFiles(res.StringResult, "*.dwg", SearchOption.AllDirectories);
        }

如果您有任何问题,请告诉我。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接