C# CAD交互界面-自定义工具栏(二)

运行环境 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文件放一起

//感谢大家的点赞,收藏,转发,关注 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/375144.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

23.HarmonyOS App(JAVA)堆叠布局StackLayout使用方法

不常用 StackLayout直接在屏幕上开辟出一块空白的区域,添加到这个布局中的视图都是以层叠的方式显示,而它会把这些视图默认放到这块区域的左上角,第一个添加到布局中的视图显示在最底层,最后一个被放在最顶层。上一层的视图会覆盖…

【蓝桥杯冲冲冲】 [SCOI2005] 骑士精神

蓝桥杯备赛 | 洛谷做题打卡day28 文章目录 蓝桥杯备赛 | 洛谷做题打卡day28[SCOI2005] 骑士精神题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示题解代码我的一些话[SCOI2005] 骑士精神 题目描述 输入格式 第一行有一个正整数 T T T( T ≤ 10

SDWAN组网一般会需要哪些设备

随着企业网络需求的不断增长和变化, SD-WAN作为一种先进的网络架构技术,需要一系列设备来构建有效的组网。以下是SD-WAN组网所需的一些关键设备清单: (1)SD-WAN路youqi: SD-WAN路youqi是SD-WAN网络的核心设…

Python Matplotlib安装过程详解

Matplotlib 是一个非常优秀的 Python 2D 绘图库,只要给出符合格式的数据,通过 Matplotlib 就可以方便地制作折线图、柱状图、散点图等各种高质量的数据图。 安装 Matplotlib 包与安装其他 Python 包没有区别,同样可以使用 pip 来安装。 启动…

专业知识库:中小型企业必备的高效工具

在如今这个信息爆炸的时代,知识管理已经成为了企业运营的重要环节。特别是对于中小型企业来说,如何有效地管理公司内部的知识,提高工作效率,已经成为了一个亟待解决的问题。在这篇文章中,我将向大家介绍一种能够帮助企…

计算机服务器中了halo勒索病毒如何处理,halo勒索病毒解密数据恢复

网络技术的不断发展与应用,为企业的生产生活提供了极大便利,但网络数据安全威胁无处不在,近日,云天数据恢复中心接到某连锁超市求助,企业计算机服务器被halo勒索病毒攻击,导致计算机系统瘫痪,无…

2024初始Spring(并使用idea创建springweb项目)

前言 spring呢,以前一直是简单的了解,并没有利用空闲时间去进行对应的深入的学习,今天呢原本是打算好好学的,然后后来呢感觉还是太早了接触,打算把前面知识在过一编之后再开始 Spring介绍 Spring | Home 大家想要访…

探索Web API SpeechSynthesis:给你的网页增添声音

Web API SpeechSynthesis是一项强大的浏览器功能,它允许开发者将文本转换为语音,并通过浏览器播放出来。本文将深入探讨SpeechSynthesis的控制接口,包括其功能、用法和一个完整的JavaScript示例。 参考资料:SpeechSynthesis - Web…

鸿蒙实战开发-全局UI方法的功能

主要开发内容 时间调节 使用全局UI的方法定义日期滑动选择器弹窗并弹出。 操作说明:首先创建一个包含按钮的用户界面,当用户点击“时间设置”按钮时,会弹出调用TimePickerDialog组件的show方法,显示一个时间选择对话框&#xff…

C++二维数组

个人主页:PingdiGuo_guo 收录专栏:C干货专栏 大家好,我是PingdiGuo_guo,今天我们来学习二维数组。 文章目录 1.二维数组的概念与思想 2.二维数组和一维数组的区别 3.二维数组的特点 4.二维数组的操作 1.定义 2.初始化 1.直…

Java Character源码剖析

Character类除了封装了一个char外,还封装了Unicode字符级别的各种操作,是Java文本处理的基础。下面结合源码分析Character的贡献。 Unicode 也许你没听过Unicode,但应该见过UTF-8。UTF-8(8-bit Unicode Transformation Format&a…

记一次VulnStack渗透

信息收集 netdiscover的主机发现部分不再详解,通过访问端口得知20001-2003端口都为web端口,所以优先考虑从此方向下手 外网渗透 GetShell Struct漏洞 访问2001端口后,插件Wappalyzer爬取得知这是一个基于Struct的web站点,直接…

微软Windows生态是怎么打造成功的?

(1)2015年Windows10:兼容性 我不得不再次佩服一下微软,Windows10是2015年出品的,但是仍然能正常运行绝大多数的Windows95软件,不用做任何的适配修改,连重新编译都不用,运行照样正常。…

游戏服务器租用多少钱一年(游戏服务器租用多少钱合适)

2024年更新腾讯云游戏联机服务器配置价格表,可用于搭建幻兽帕鲁、雾锁王国等游戏服务器,游戏服务器配置可选4核16G12M、8核32G22M、4核32G10M、16核64G35M、4核16G14M等配置,可以选择轻量应用服务器和云服务器CVM内存型MA3或标准型SA2实例&am…

TDengine用户权限管理

Background 官方文档关于用户管理没有很详细的介绍,只有零碎的几条,这里记录下方便后面使用。官方文档:https://docs.taosdata.com/taos-sql/show/#show-users 1、查看用户 show users;super 1,表示超级用户权限 0,表…

学会这一招,轻松玩转小程序自动化

♥ 前 言 app中混合应用自动化测试 会这一招,轻松玩转 app 中混合应用自动化测试 上次给同学们介绍了 app 中混合应用自动化怎么做,今天我们再来学习下,app 自动化之——小程序自动化。 一、环境要求 微信版本 weixin7.0.10.apk 版本&…

K8S部署Harbor镜像仓库(含离线安装包harbor-offline-installer国内下载链接)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

2024/2/6学习记录

ts 因为已经学习过了 js ,下面的都是挑了一些 ts 与 js 不同的地方来记录。 安装 npm install -g typescript 安装好之后,可以看看自己的版本 ts基础语法 模块 函数 变量 语法和表达式 注释 编译 ts 文件需要用 tsc xxx.ts ,js 文件…

一句话总结Docker与K8S的关系

一句话总结:Docker只是容器的一种,它面向的是单体,K8S可以管理多种容器,它面向的是集群,Docker可以作为一种容器方案被K8S管理。下文继续具体介绍。 1、容器的核心概念 介绍这几个核心概念:OCI、CR、Runc、…

打包 iOS 的 IPA 文件

目录 摘要 引言 准备 选择证书类型 创建应用程序 设置应用程序标识和证书 配置构建设置 构建应用程序 导出IPA 签名和导出 代码案例演示 完成 总结 参考资料 摘要 本篇博客将为您介绍如何打包iOS的IPA文件。从APP提交、创建应用程序、设置应用程序标识和证书、配…