我需要在 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 添加了一个工具栏。 我想让用户通过编写命令和参数来更改工具栏中组合的选定值。
如何在我的项目中使用您的方法? 我是否将 dvb 文件放入我的项目中? vba 文件可以集成到我的 vb.net 项目中吗?
非常感谢。
最佳答案
早在 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”
(模块名.函数名)
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 一次。这有助于我们使命令在 session 中可用。
键入“testcommand”
,您将看到您的代码已执行
关于.net - 将参数传递给 .NET 定义的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13726660/