运行环境 vs2022 c# cad2016 调试成功
一、引用
- acdbmgd.dll
- acmgd.dll
- accoremgd.dll
Autodesk.AutoCAD.Interop.Common.dll
Autodesk.AutoCAD.Interop.dll
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Interop;
using System.IO;
复制本地 False
二、代码步骤
C#代码定义了一个类Class1
,该类实现了Autodesk.AutoCAD.Runtime.IExtensionApplication
接口,这意味着它是一个AutoCAD扩展应用,会在AutoCAD启动时自动加载并执行初始化操作。
-
Initialize()
方法:当AutoCAD启动时调用。在这个方法中,调用了AddToolBar()
方法,用于在AutoCAD界面中添加一个新的自定义工具栏。 -
Terminate()
方法:当AutoCAD退出时调用。这里没有实现任何功能。 -
AddToolBar()
方法:- 首先,获取当前运行的AutoCAD应用程序实例。
- 创建一个名为"001"的新工具栏,并将其添加到AutoCAD主菜单组“ACAD”下。
- 设置位图路径,假设按钮图标文件(button_sum.bmp和button_batch.bmp)与执行程序位于同一目录。
- 分别为新工具栏添加两个按钮:"数字文本求和"和"批量转换",每个按钮都有标签、提示信息以及关联的AutoCAD命令("Sum "和"dwgToPdf "),同时设置其位图图标。
- 将工具栏停靠到右侧。
- 最后,将工具栏设为可见。
总之,这段代码是为AutoCAD设计的一个扩展应用,其主要功能是在AutoCAD启动时自动创建并显示一个带有两个按钮的自定义工具栏,这两个按钮分别关联了"Sum "和"dwgToPdf "命令,并使用指定的位图作为图标。
三、完整代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Interop;
using System.IO;
namespace cad工具栏01
{
public class Class1 : IExtensionApplication
{
public void Initialize()
{
AddToolBar();//启时自动加载工具栏
}
public void Terminate()
{
}
public void AddToolBar()
{
// 获取当前运行AutoCAD应用程序的引用
Autodesk.AutoCAD.Interop.AcadApplication acadApp = (AcadApplication)Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication;
// 创建一个新的工具栏对象
Autodesk.AutoCAD.Interop.AcadToolbar atb = null;
atb = acadApp.MenuGroups.Item("ACAD").Toolbars.Add("001");
// 设置位图路径(假设位图文件与执行程序在同一目录)
string bitmapPath = Path.Combine(Directory.GetCurrentDirectory(), "button_sum.bmp");
// 添加第一个按钮:“0101”
Autodesk.AutoCAD.Interop.AcadToolbarItem atbiSum = atb.AddToolbarButton(0, "数字文本求和", "数字文本求和", "Sum ", false);
atbiSum.SetBitmaps(bitmapPath, bitmapPath);
// 设置第二个位图路径
bitmapPath = Path.Combine(Directory.GetCurrentDirectory(), "button_batch.bmp");
// 添加第二个按钮:“批量转换”
Autodesk.AutoCAD.Interop.AcadToolbarItem atbiBatch = atb.AddToolbarButton(1, "批量转换", "批量转换", "dwgToPdf ", false);
atbiBatch.SetBitmaps(bitmapPath, bitmapPath);
// 将工具栏停靠到右侧
atb.Dock(Autodesk.AutoCAD.Interop.Common.AcToolbarDockStatus.acToolbarDockRight);
// 显示工具栏
atb.Visible = true;
}
}
}
bmp图片跟dll文件放一起
//感谢大家的点赞,收藏,转发,关注