C#+Visual Studio 2022为AutoCAD 2022开发插件并显示在Ribbon选项卡

1.插件功能开发

(1)建立C#类库项目,添加必要引用,都是autocad二次开发相关的,要注意对引用的库修改其“复制文件”属性为false

(2)项目调试使用“属性”打开“启用外部程序”,指定为机器上autocad2022的acad.exe所在路径。

(3)建立一个新类,开发功能。

[CommandMethod("CheckArea",CommandFlags.UsePickSet)] //指令名称
public void CheckArea()
{
    // 获取当前文档和数据库
    Document doc =Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
    Database db = HostApplicationServices.WorkingDatabase;
    Editor ed = doc.Editor;
    //插件功能代码
   

   
}

2.Ribbon选显卡功能开发

在类里面添加一个方法:

[CommandMethod("RibbonDemo")]
public void RibbonDemo()
{
    // 获取程序集的加载路径
    string currentDLLLocation = Path.GetDirectoryName(this.GetType().Assembly.Location) + "\\";

    // 获取cad的Ribbon界面
    RibbonControl ribbonCtrl = ComponentManager.Ribbon;

    // 添加选项卡
    RibbonTab tab = new RibbonTab();
    tab.Title = "老旧小区插建房屋日照测算";
    tab.Id = "Acad.RibbonId1";
    tab.IsActive = true;
    ribbonCtrl.Tabs.Add(tab);

    // 给选项卡添加面板
    RibbonPanelSource panelSource = new RibbonPanelSource();
    panelSource.Title = "日照测算";
    RibbonPanel ribbonPanel = new RibbonPanel();
    ribbonPanel.Source = panelSource;
    tab.Panels.Add(ribbonPanel);

    // 命令按钮

    RibbonButton pLineBtn = new RibbonButton();

    string imgFileNameLineBtn = string.Format("{0}\\{1}\\{2}.png", currentDLLLocation, "Images", "big");

    Uri uriLineBtn = new Uri(imgFileNameLineBtn);
    BitmapImage bitmapImgeLineBtn = new BitmapImage(uriLineBtn);
    // 按钮图片 16 * 16
    pLineBtn.Image = bitmapImgeLineBtn;
    // 按钮图片 32 * 32
    pLineBtn.LargeImage = bitmapImgeLineBtn;
    pLineBtn.ShowImage = true;
    pLineBtn.Size = RibbonItemSize.Large;
    pLineBtn.Orientation = System.Windows.Controls.Orientation.Vertical;
    pLineBtn.Text = "面积测算";
    pLineBtn.ShowText = true;

    //添加提示对象
    RibbonToolTip toolTipLine = new RibbonToolTip();
    toolTipLine.Title = "日照测算";
    toolTipLine.Content = "根据选定的区域测算插建日照房数量和面积是否达标";
    toolTipLine.Command = "CHECKAREA";
    toolTipLine.ExpandedContent = "CheckArea命令是一个自定义插件,其根据选定的区域测算插建日照房数量和面积是否达标。";
    string imgToolTipFileNameLineBtn = string.Format("{0}\\{1}\\{2}.png", currentDLLLocation, "Images", "big");
    Uri toolTipUriLineBtn = new Uri(imgToolTipFileNameLineBtn);
    BitmapImage toolTipBitmapImgeLineBtn = new BitmapImage(toolTipUriLineBtn);
    toolTipLine.ExpandedImage = toolTipBitmapImgeLineBtn;
    pLineBtn.ToolTip = toolTipLine;

    // 给按钮关联命令
    pLineBtn.CommandHandler = new RibbonCommandHandler();
    pLineBtn.CommandParameter = "CheckArea" + " ";

    // 添加直线命令按钮
    panelSource.Items.Add(pLineBtn);

   

}

3.配置插件自启动

在“C:\Program Files\Autodesk\ApplicationPlugins”目录下创建文件夹 “ RibbonUI.bundle ”,将生成的 debug 文件夹(包含Image)拷贝入 “ RibbonUI.bundle ” ,在此文件夹中,新建PackageContents.xml,填入以下代码

    ProductCode="{xxx}" 
    Name="ribbon测试插件"
>
      Name="****"
    Email="****"
  />
 
 
 
      
       
     

    

 

 

                        
参考链接:https://blog.csdn.net/wang2543311/article/details/124477198

你可能感兴趣的:(c#,visual,studio,ribbon)