2012-12-05 39 views
3

我需要在Autocad 2000i的命令行上編寫一個命令,並且我希望autocad提示輸入參數。然後我的vb.net程序將根據收到的參數進行操作。將參數傳遞給.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項目中嗎?

非常感謝。

+0

您是否已經安裝了ObjectARX SDK? – Kratz

+2

.NET在2000年還不存在。 –

+0

是的,它不存在,但我的程序寫在vb.net使用autocad API,並有一個autocad的工具欄。所以我確實在我的vb.net程序和autocad 2000i之間來回切換。 –

回答

2

。2000年,AutoCAD不存在AutoCAD的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的方式 - (我的首選方法)

在編輯器中輸入您的代碼如上所述。 保存您的VBA文件(.dvb格式)..假設它是在D:\Macros文件夾名稱MyDvb.dvb.

創建一個新的Lisp文件(打開一個記事本,然後鍵入下面的代碼,並保存爲.lsp擴展名) 這口齒不清文件將被用來調用所有的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); 
     } 

讓我知道如果您有任何問題。

相關問題