【问题标题】:Creating layout & logic AutoCAD plugin dialog创建布局和逻辑 AutoCAD 插件对话框
【发布时间】:2018-05-22 22:04:52
【问题描述】:

AutoCAD 插件开发的全新功能。我正在尝试创建一个插件,在 AutoCAD 中作为整个主菜单选项加载(让我们将此菜单称为“Fizzbuzz”菜单,当用户选择其中一个菜单项(例如,Fizzbuzz >> Foobar)时,我想要一个简单的对话框/窗口显示在 AutoCAD 左上角的屏幕上。

我正试图弄清楚这个对话框/弹出窗口的演示/布局逻辑需要去哪里(它存在于什么文件中,我如何创建/编辑它?),同样重要的是:事件驱动的 GUI 逻辑需要去(再次:我要编辑什么文件以及用什么语言?)。 “GUI 逻辑”是指:假设我的对话框中有一个复选框或按钮...当用户单击/与这些 UI 组件交互时,我需要执行自定义逻辑。

知道哪些文件包含此类新 AutoCAD 插件的演示/GUI 逻辑以及我如何创建/编辑它们?提前致谢!

【问题讨论】:

  • 查看 WPF MVVM。 AutoCAD 调色板是获得无模式 UI 的一种简单方法,功能区也是如此——如果您不讨厌它的话。阅读topic wiki 获取更多资源。

标签: c# .net dll autocad objectarx


【解决方案1】:

我以这种方式添加了一个托管 winform 控件的调色板:

using System.Windows.Forms;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Windows;

namespace AMU.AutoCAD.BlockTool
{
  public class MyPalette : IExtensionApplication
  {

  private PaletteSet palette;
  private Control paletteControl;

  public void Initialize()
  {
    //This is called when AutoCAD loads your assembly
    this.palette = new PaletteSet("Name")
    {
      TitleBarLocation = PaletteSetTitleBarLocation.Left,
      Style = PaletteSetStyles.Snappable //Your Styles
    };
    this.paletteControl = new Control(); //Instance of your Control that will be visible in AutoCAD
    this.palette.Add("HEADER", this.paletteControl);
    this.palette.Visible = true;

  }

  public void Terminate()
  {
    //cleanup
    this.palette.Dispose();
    this.paletteControl.Dispose();
  }
}
}

通过提供实现 IExtensionApplication 的类,您可以在加载 dll 时执行自定义代码,而无需显式调用方法。您现在可以创建一个所谓的 PaletteSet 并向其添加 Winform 或 WPF 控件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多