CAD二次开发入门:WPF类库

news/2024/9/18 2:03:05/文章来源:https://www.cnblogs.com/lhlong/p/18358233

 

参考学习视频:https://www.bilibili.com/video/BV16Y411v7kr/?spm_id_from=333.337.search-card.all.click&vd_source=fbb64ea20b269b753497bf6c2499fc29

 第一步:创建WPF类库,并写CAD调用方法

 

 

 

 

main页面添加以下内容:

    <Grid><Button Height="50" Click="Button_Click" Margin="285,184,157,185" Content="打开程序" Tag=""/><TextBox x:Name="txtPath" HorizontalAlignment="Left" Height="23" Margin="245,110,0,0" TextWrapping="Wrap" Text="D:\Program Files (x86)\Tencent\WeChat\WeChat.exe" VerticalAlignment="Top" Width="450"/></Grid>

main后台添加以下内容:

        private void Button_Click(object sender, RoutedEventArgs e){string Path = "";try{Path = @"D:\Program Files (x86)\Tencent\WeChat\WeChat.exe";if (!string.IsNullOrEmpty(txtPath.Text)){Path = txtPath.Text;}System.Diagnostics.Process.Start(Path);Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.CurrentDocument.Editor.WriteMessage("启动成功:" + Path);}catch (Exception ex){Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.CurrentDocument.Editor.WriteMessage("路径:" + Path + ",启动异常," + ex.Message);}}

新增一个类,写CAD执行方法:

using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace wpfdemo
{public class Class1{[CommandMethod("OpenExe")] public void OpenExe(){MainWindow main = new MainWindow();Application.ShowModelessWindow(main);}}
}

 

程序开发完成,生成动态库 dll:

  第二步:打开CAD,引用生成的动态库,并调用方法打开画面

CAD引用dll: 

 

 CAD调用wpf动态库的方法: 

命令输入方法名:openexe

 执行命令后,CAD自动打开WPF的画面

 

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

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

相关文章

Mac下go安装

https://go.dev/dl/ 查看是arm64,还是x86-64命令: -uname -a 我的是 Darwin okerdeMacBook-Pro.local 23.5.0 Darwin Kernel Version 23.5.0: Wed May 1 20:13:18 PDT 2024; root:xnu-10063.121.3~5/RELEASE_ARM64_T6030 arm64安装后,重新打开终端

GreatSQL 并行Load Data加快数据导入

GreatSQL 并行Load Data加快数据导入 数据库信息 数据库版本:GreatSQL 8.0.32-25 Clickhouse表需要导入到 GreatSQL 中,表数据量庞大所以选用导出CSV的方式。 测试数据复现操作 load data MySQL load data 语句能快速将一个文本文件的内容导入到对应的数据库表中(一般文本的一…

DeiT-LT:印度科学院提出针对长尾数据的`DeiT`升级模型 | CVPR 2024

DeiT-LT为ViT在长尾数据集上的应用,通过蒸馏DIST标记引入CNN知识,以及使用分布外图像并重新加权蒸馏损失来增强对尾类的关注。此外,为了减轻过拟合,论文建议用经过SAM训练的CNN教师进行蒸馏,促使所有ViT块中DIST标记学习低秩泛化特征。经过DeiT-LT的训练方案,DIST标记成为…

博客建站4 - ssh远程连接服务器

1. 什么是SSH? 2. 下载shh客户端 3. 配置ssh密钥 4. 连接服务器 5. 常见问题5.1. IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!1. 什么是SSH? SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络中安全地远程登录到其他计算机系统。它提供了对远程服务…

H7-TOOL混合脱机烧录以及1拖4不同的通道烧录不同的程序操作说明(2024-08-07)

【应用场景】 原本TOOL的1拖4是用于同时烧录相同程序给目标板,但有时候一个板子上有多个不同的MCU,客户希望仅通过一个TOOL就可以完成对板子上多个MCU的烧录,也就是1拖4不同的通道烧录不同的程序,此贴为此制作。【实验目标】由于这个属于定制需求,需要简单修下目标文件,后…

英智大模型推理API:免费让Llama 3.1成为您创新项目的强力后盾

“免费版(Llama3.1 扩展包)”是英智大模型推理 API 服务平台面向开发者推出的 Llama3.1 免费套餐,供广大开发者无门槛、不限制 Tokens、永久使用,每位用户限购 1 次。 包含服务: “英智 Llama3.1 服务”:QPS(每秒查询数)限制为 1 次,统计 Tokens。 立即免费使用Llama3…

StarNet:关于 Element-wise Multiplication 的高性能解释研究 | CVPR 2024

论文揭示了star operation(元素乘法)在无需加宽网络下,将输入映射到高维非线性特征空间的能力。基于此提出了StarNet,在紧凑的网络结构和较低的能耗下展示了令人印象深刻的性能和低延迟 来源:晓飞的算法工程笔记 公众号论文: Rewrite the Stars论文地址:https://arxiv.or…

8.13 admin server 代码理解

除了一些常规校验,还要考虑到更新的id是不是该店铺的 采用集合的方式快速计算budget表如何和biz业务表交互用于求最高值的加上判断数组是否越界的条件getSumInt64 如果数组为空时发送什么 budget表是以Store为底层维度的,以biz连接,因此要体现出店铺的效果,可以少一个店铺…

提升企业竞争力:最大化APS智能排产效果的策略

APS构建排程模型的基础数据准确性 数据收集与清洗 根据APS排程建模的需求建立全面的数据收集机制,确保所有与生产相关的数据,如物料库存、设备状态、人力资源、生产订单信息、销售订单、采购订单等,都能被准确、及时地录入系统;并依据需求建立同步的时间和数据更新、增加、…

AI解题助手ChatMoney:提高你的学习效率

本文由 ChatMoney团队出品在当今这个信息爆炸的时代,学习不再局限于传统的书籍与课堂。AI解题助手作为新时代的智慧工具,正以其独特的亮点和显著优势,引领学习方式的革新。ChatMoneyAI解题助手,以其即时响应、精准解答的能力,让难题迎刃而解。无论面对的是复杂的数学公式,…

将爬虫与大语言模型结合

论文标题:《AUTOCRAWLER : A Progressive Understanding Web Agent for Web Crawler Generation》 论文地址:https://arxiv.org/abs/2404.12753 摘要 Web自动化是一种重要技术,通过自动化常见的Web操作来完成复杂的Web任务,可以提高运营效率并减少手动操作的需要。 传统的实…

完美解决RTX5源码工程+最新emWin6.40的编译兼容问题,使能C编译器使用C11可解决

最新的emWin6.40仅提供了.a格式库,这个库兼容MDK,IAR和GCC,但是在MDK AC6下使用需要做如下操作 -fno-short-wchar -fshort-enums他这个操作,正好跟RTX5源码工程添加的一个设置冲突了,通过搜索资料,发现使能MDK使用C11版本编译可以完美解决这个问题:最终配置如下,确实解…