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

时间:2012-12-05 15:29:39

标签: .net vb.net command autocad

我需要在Autocad 2000i的命令行上编写命令,我希望autocad提示输入参数。然后我的vb.net程序将根据收到的参数进行操作。

基本上我想我的解决方案就在这里:http://through-the-interface.typepad.com/through_the_interface/2006/09/passing_argumen.html

问题是,我找不到对那里使用的Autodesk.AutoCAD.EditorInput命名空间的引用。

我在这里缺少什么? Autocad 2000i中不存在EditorInput吗?


非常感谢您的回答。

我有一个vb.net项目,它为autocad添加了一个工具栏。 我想让用户通过编写commnad和参数来更改工具栏中组合的选定值。

如何在我的项目中使用您的方法? 我把dvb文件放在我的项目中吗? 可以将vba文件集成到我的vb.net项目中吗?

提前多多感谢。

2 个答案:

答案 0 :(得分:2)

回到2000年,AutoCAD不存在.Net API。事情是通过LISP或VBA或两者的组合完成的。以下是对要做的事情的简要说明。

仅限VBA的方式:

打开工具>宏> Visual Basic编辑器(alt + F11)

输入您的代码:

Sub Test()

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

MsgBox str

End Sub

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

键入"Thisdrawing.Test"(modulename.functionname)

VBA + Lisp Way - (我的首选方法)

如上所述在编辑器中键入代码。 保存您的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 :(得分: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);
        }

如果您有任何问题,请与我们联系。