CAD二次开发(8)-探索实现不重启CAD进行热部署代码

最近在研究CAD二次开发过程中,调试代码的过程中,需要频繁地重启CAD,非常浪费我们的开发时间,所以我就一直在想,怎么可以实现在不每次重启代码和CAD的情况下,实现代码的热部署效果。

我找到的方式,就是通过另外一个工具项目,实现对你需要调试的项目的反射,具体操作请看下面。

创建工具项目

在这里插入图片描述
引入CAD相关的包
在这里插入图片描述

反射代码


using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.DatabaseServices;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Reflection;namespace ribbon_test
{public class LoadX{private Action cmd;[CommandMethod("DD")]public void ReloadX(){string dllName = "E:\\cnet_project\\cad-demo\\bin\\Debug\\ribbon_test.dll";//生成的需要调用的文件名string className = "ribbon_test.Less02_创建对象";//空间名.类名string methodName = "CreatedLine";//method名var adapterFileInfo = new FileInfo(Assembly.GetExecutingAssembly().Location);var targetFilePath = Path.Combine(adapterFileInfo.DirectoryName,dllName);var targetAssembly = Assembly.Load(File.ReadAllBytes(targetFilePath));var targetType = targetAssembly.GetType(className);var targetMethod = targetType.GetMethod(methodName);var targetObject = Activator.CreateInstance(targetType);cmd = () => targetMethod.Invoke(targetObject,null);try{cmd?.Invoke();}catch (System.Exception ex){Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(ex.Message);}}}public class CmdInfo{ public string DllName { get; set; }public string ClassName { get; set; }public string MethodName { get; set; }}
}

在里面 我们需要明确如下几个参数:
dllName :这是我们需要调试的项目构建的位置。
className :这是我们调试项目的类名称,注意要加上空间名称。
methodName :这是我们调试项目,要调试的方法名称。

要调试的项目

在这里插入图片描述
在这里插入图片描述

具体操作

  1. 我们首先启动工具项目,让工具项目联动启动CAD。
  2. 然后加载我们的工具项目dll。
  3. 然后输入工具命令,我的是DD。
    就可以看到如下提示:
    在这里插入图片描述
    表示要调试的项目命令加载成功。
  4. 如果我们调试代码有所修改,修改完后重新生成方案即可。
  5. 再一次输入工具命令,重新加载到CAD中。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HDFS的块汇报和块放置策略--从一次HDFS写文件故障开始(WIP)

文章目录 前言事故分析:代码解析BlockReport的调度和时机哪些Block会进行FBR或者IBRIBR所选定的BlockFBR所选定的Block 块放置策略详解之在上层寻找机器为文件添加块的基本流程块放置策略:选择机器为每个副本逐个寻找机器在指定范围内随机寻找简单看一下…

本地运行ChatTTS

TTS 是将文字转为语音的模型,最近很火的开源 TTS 项目,本地可以运行,运行环境 M2 Max,差不多每秒钟 4~~5 个字。本文将介绍如何在本地运行 ChatTTS。 下载源码 首先下载源代码 git clone https://github…

一句话说清HDMI ARC eARC功能和区别

HDMI: 高清多媒体接口,主要用于传输高清音视频信号,High Definition Multimedia Interface。 ARC: 音频回传通道,Audio Return Channel eARC: 增强型音频回传通道,第一个E是增强的意思,Enhanced Audio…

【硬件工程师面试宝典】常见面试题其一

1. 什么是 Setup 和 Hold 时间? Setup 时间是指在时钟沿到达之前,数据需要保持稳定的最小时间。这意味着在时钟沿到达之前,数据线上的信号必须已经稳定下来。 Hold 时间是指在时钟沿到达之后,数据需要继续保持稳定的最小时间。这…

给孩子的端午节礼物:最新初中数学思维导图大合集+衡水高考学霸笔记,可下载打印!

大家好哇!端午节到了,阿星给家里有孩子的伙伴们一份礼物哦!今天给大家带来一个超级实用的学习神器——思维导图法,最新版的初中数学思维导图大合集! 这可不是我吹哦,连哈佛、剑桥大学都在用的高级学习方法…

3D打印随形水路:模具水路的革命性技术

在快速发展的模具制造行业中,3D打印技术以其独特的优势正在引领一场技术革命。其中,3D打印随形水路技术,凭借其灵活性和定制化设计的能力,为模具带来了前所未有的变革。 模具3D打印随形水路技术,是一种利用3D打印技术制…

alembic 维护的postgresql的数据库表结构,models做了删除表的列和增加表的列,应该怎么做更新操作

使用 Alembic 进行数据库迁移时,如果你的数据模型(通常是 SQLAlchemy 的 ORM 模型)有变动,如添加或删除列,你需要创建一个迁移脚本来更新数据库结构。这里是一个基本的步骤说明,如何使用 Alembic 来处理你的…

别人状告你怎么办?你知道还可反告吗?

别人状告你怎么办?你知道还可反告吗? --李秘书讲写作:关于反诉状的写作技巧与策略 反诉状是民事诉讼中的一种重要法律文书,它允许被告在原告提起诉讼后,对原告提起反诉,以抵消原告的诉讼请求。李秘书这节…

分水岭算法分割和霍夫变换识别图像中的硬币

首先解释一下第一种分水岭算法: 一、分水岭算法 分水岭算法是一种基于拓扑学的图像分割技术,广泛应用于图像处理和计算机视觉领域。它将图像视为一个拓扑表面,其中亮度值代表高度。算法的目标是通过模拟雨水从山顶流到山谷的过程&#xff0…

记录使用pytorch训练crnn

工程来源: https://github.com/WenmuZhou/PytorchOCR?tabreadme-ov-file#train 基本数据准备和配置和paddleOCR是一样的;记录一下使用时遇到的问题。 1.环境 我使用的是:172.31.50.201:5000/algorithm/pytorch-1.11.0-cuda11.3-cudnn8-d…

经纬恒润助力红旗转向技术新突破

近日,红旗研发新视界发布《国内首发!红旗大输出力冗余平行轴式电动助力转向器让用户出行经济又安全!》 ,创新突破“输出力20kN以上的冗余平行轴式电动助力转向器(R-EPS)”。该产品支持整车实现L2/L3级自动驾…

路由器重启真的好吗?多久重启一次更好?

前言 小白前段时间发现自己家的OpenWRT软路由上网特别慢,有时候通话还有点卡顿。 然而有个朋友用的普通路由器也有类似的问题,而且有时候根本上不去网。 解决的办法很简单:重启路由器。 重启路由器? 但路由器重启是真的好吗&a…

L45---506.相对名次(java)--排序

1.题目描述 2.知识点 (1)String.join(" ", words) 是 Java 中的一个语法,用于将数组或集合中的元素连接成一个单独的字符串,连接时使用指定的分隔符。这里的 " " 是作为分隔符使用的一个空格字符串。 Strin…

SHELL脚本学习(四)命令行参数和选项

命令行参数和选项 传递参数 1、向脚本中传递命令行参数 脚本路径 参数1 参数2 ...读取参数 1、位置参数 概述 bash shell会将命令行参数指派给称作 位置参数 的特殊变量。位置参数 $0 是脚本名称, $1 是第一个命令行参数,$2 是第二个命令行参数... 例:阶乘计算 …

6月07日,每日信息差

第一、公安部开展 「净风」 专项行动,已破获 17 起重大案件,打掉 48 个制售假 「特供酒」 犯罪团伙,抓获 417 名嫌疑人,涉案金额达 8.9 亿元。这些假酒质量低劣、存在商标侵权等问题,公安部将持续严打此类犯罪&#xf…

Windows mstsc

windows mstsc 局域网远程计算机192.168.0.113为例,远程控制命令mstsc

鸿蒙开发接口数据管理:【@ohos.data.rdb (关系型数据库)】

关系型数据库 关系型数据库(Relational Database,RDB)是一种基于关系模型来管理数据的数据库。关系型数据库基于SQLite组件提供了一套完整的对本地数据库进行管理的机制,对外提供了一系列的增、删、改、查等接口,也可…

数据结构:哈夫曼树及其哈夫曼编码

目录 1.哈夫曼树是什么? 2.哈夫曼编码是什么? 3.哈夫曼编码的应用 4.包含头文件 5.结点设计 6.接口函数定义 7.接口函数实现 8.哈夫曼编码测试案列 哈夫曼树是什么? 哈夫曼树(Huffman Tree)是一种特殊的二叉树&#xf…

Message forwarding mechanism (消息转发机制)

iOS的消息转发机制 iOS的消息转发机制是在消息发送给对象时,找不到对应的实例方法的情况下启动的。消息转发允许对象在运行时处理无法识别的消息,提供了一种动态的、灵活的消息处理方式。 消息转发机制主要分为三个阶段: 动态方法解析快速…

香港高才通计划续签,很可能大部分人都要烂尾

自2022年12月28日推出以来,截至2024年2月29日,高才通计划申请人数超过了7万宗,获批人数将近6万。 这张表格是从2022年到2023年每个月申请人数情况,高峰时间段达到了一个月7166人申请: 香港高才通计划申请人数72508人&…