当前位置: 首页 > news >正文

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,填入以下代码
<?xml version="1.0" encoding="utf-8" ?>
<ApplicationPackage SchemaVersion="1.0" AppVersion="1.0"
    ProductCode="{xxx}" 
    Name="ribbon测试插件"
>
  <CompanyDetails
    Name="****"
    Email="****"
  />
  <RuntimeRequirements OS="Win32|Win64" Platform="AutoCAD*" />
  <Components>
 <ComponentEntry ModuleName="./debug/XXXX.dll">
      <Commands>
        <Command Local="RibbonDemo" Global="RibbonDemo" StartupCommand="True"/>
      </Commands>
    </ComponentEntry>
  </Components>
 
</ApplicationPackage>
                        
参考链接:https://blog.csdn.net/wang2543311/article/details/124477198

相关文章:

  • [原理分析]安卓15系统大升级:Doze打盹模式提速50%,续航大幅增强,省电提升率5%
  • 单片机可以用来做机器人吗?
  • 算法之分而治之
  • Unity 场景管理核心教程:从 LoadScene 到 Loading Screen 实战 (Day 35)
  • 配置 VS Code 使用 ESLint 格式化
  • 多模态大语言模型arxiv论文略读(三十二)
  • Linux深度探索:进程管理与系统架构
  • uniapp云打包针对谷歌视频图片权限的解决方案
  • [架构之美]一键服务管理大师:Ubuntu智能服务停止与清理脚本深度解析
  • 《AI大模型应知应会100篇》第30篇:大模型进行数据分析的方法与局限:从实战到边界探索
  • 自定义错误码的必要性
  • Macbook IntelliJ IDEA终端无法运行mvn命令
  • XAML 标记扩展
  • Android端使用无障碍服务实现远程、自动刷短视频
  • 【TeamFlow】4.2 Yew库详细介绍
  • 03-HTML常见元素
  • 衡石科技ChatBI--飞书数据问答机器人配置详解(附具体操作路径和截图)
  • 24、ASP.NET⻚⾯之间传递值的⼏种⽅式
  • 【C++】基于红黑树的map和set封装实现
  • Django 入门指南:构建强大的 Web 应用程序
  • 林毅夫:中美经济确有脱钩风险,但“完全脱钩”可能性不大
  • 现货黄金价格站上3400美元,今年迄今累涨逾29%
  • 海南医科大学继续开展部门正职竞聘上岗,致力营造“谁有本事谁来”
  • 深化应用型人才培养,这所高校聘任行业企业专家深度参与专业设置
  • 俄罗斯与乌克兰互换246名在押人员
  • 别把癌症当鼻炎,爱吃这类食物的人,尤其要警惕