【问题标题】:Passing arguments to .NET-defined commands将参数传递给 .NET 定义的命令
【发布时间】:2012-11-23 11:32:54
【问题描述】:

我需要在 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 项目中吗?

非常感谢。

【问题讨论】:

  • 你安装了ObjectARX SDK了吗?
  • .NET 在 2000 年还不存在。
  • 是的,它不存在,但是我用 vb.net 编写的程序使用了 autocad api,并且有一个用于 autocad 的工具栏。所以我确实在我的 vb.net 程序和 autocad 2000i 之间来回切换。

标签: .net vb.net command autocad


【解决方案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);
        }

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

【讨论】:

    【解决方案2】:

    .Net API 早在 2000 年就不存在用于 AutoCAD。事情是通过 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 扩展名) 此 lisp 文件将用于调用所有 VBA 宏。

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

    现在通过在命令提示符下键入"ap" 来加载此 lisp 一次。这有助于我们保持会话可用的命令。

    输入"testcommand",你会看到你的代码被执行了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-23
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      • 1970-01-01
      • 2015-06-09
      • 2017-10-22
      • 2021-10-20
      相关资源
      最近更新 更多