WPF程序通过CadLib4加载CAD .dwg格式文件
1、下载CadLib相关dll文件,主要用到的:WW.dll、WW.Cad.dll、WW.GL.dll
2、程序中引用dll库。
3、创建WPF程序,使用Canvas来加载dwg文件,支持拖动和放大缩小。
4、部分代码:
public void Init(string filename)
{try{string extension = System.IO.Path.GetExtension(filename);if (string.Compare(extension, ".dwg", true) == 0){model = DwgReader.Read(filename);}else{model = DxfReader.Read(filename);}#region calculate the model's bounds to determine a proper dots per inch// The dots per inch value is important because it determines the eventual pen thickness.graphicsConfig = (GraphicsConfig)GraphicsConfig.WhiteBackgroundCorrectForBackColor.Clone();BoundsCalculator boundsCalculator = new BoundsCalculator();if (model.ActiveLayout == null || model.Header.ShowModelSpace){boundsCalculator.GetBounds(model);}else{boundsCalculator.GetBounds(model, model.ActiveLayout);}bounds = boundsCalculator.Bounds;WW.Math.Vector3D delta = bounds.Delta;Size estimatedCanvasSize = new Size(500d, 500d);double estimatedScale = Math.Min(estimatedCanvasSize.Width / delta.X, estimatedCanvasSize.Height / delta.Y);graphicsConfig.DotsPerInch = 100d / estimatedScale;#endregiongraphicsCache = new WireframeGraphics2Cache(false, false);graphicsCache.Config = graphicsConfig;if (model.ActiveLayout == null || model.Header.ShowModelSpace){graphicsCache.CreateDrawables(model, Matrix4D.Identity);}else{graphicsCache.CreateDrawables(model, model.ActiveLayout);}wpfGraphics = new WpfWireframeGraphics3DUsingDrawingVisual();wpfGraphics.Config = graphicsConfig;this.Dispatcher.Invoke(() => {canvas.Children.Add(wpfGraphics.Canvas);canvas.SizeChanged += canvas_SizeChanged;});UpdateWpfGraphics();}catch (Exception ex){this.Dispatcher.Invoke(() => {msg.Text = $"文件加载出现异常,详细:{ex.Message}";});}
}
如果想设置文字颜色,在Read后增加代码:
foreach (DxfEntity entity in model.Entities){// 检查实体是否为DxfText或DxfMTextif (entity is DxfText textEntity){// 设置DxfText的颜色textEntity.Color = EntityColors.Red; // 替换为你想要的颜色}else if (entity is DxfMText mTextEntity){// 设置DxfMText的颜色mTextEntity.Color = EntityColors.Red; // 替换为你想要的颜色}}
5、Demo地址
WPF程序通过CadLib4加载CAD.dwg格式文件资源-CSDN文库
相关文章:
WPF程序通过CadLib4加载CAD .dwg格式文件
1、下载CadLib相关dll文件,主要用到的:WW.dll、WW.Cad.dll、WW.GL.dll 2、程序中引用dll库。 3、创建WPF程序,使用Canvas来加载dwg文件,支持拖动和放大缩小。 4、部分代码: public void Init(string filename) {tr…...
图表全能王(ChartStudio) 上架VisionPro!
图表全能王(ChartStudio) - 终极图表制作工具!支持条形图、折线图、面积图、柱形图、条形图、饼图、玫瑰图、雷达图、牛肉图、风琴图、旭日图、桑基图等图表。 https://apps.apple.com/app/chartstudio-data-analysis/id6474099675 https://apps.apple.com/cn/app/…...
【云原生】Job一次性任务详解
Job一次性任务 文章目录 Job一次性任务一、Job介绍二、运行示例Job 一、Job介绍 Job会创建一个或者多个Pod,并将继续重试Pod的执行,直到指定数量的Pod成功终止。随着Pod成功借宿,Job跟踪记录成功完成的Pod个数。当数量达到指定的成功个数阈值…...
化工厂人员定位采用多种定位技术的融合定位系统的好处
由于化工厂内环境的复杂性和危险性,通常单一的定位技术很难满足全厂区的人员定位需求,如果能将不同定位技术融合在一起,发挥出它们各自的优势,那么就能解决以上问题。 融合定位技术诞生背景 随着科技的不断发展,多种定…...
使用AI绘图工具生成风景图像的教程
随着人工智能技术的飞速发展,AI绘图工具在图像生成和艺术创作方面变得越来越强大,无论你是一个设计师、艺术家,还是仅仅对生成艺术感兴趣的爱好者,AI绘图工具都可以帮助你轻松地创作出惊艳的风景图像。 在这篇教程中,…...
迷你主机:华硕PN65和nuc13pro如何选择?
华硕PN65与NUC 13 Pro:如何做出选择? 在追求高效能与便携性的今天,迷你主机成为了越来越多用户的选择。华硕PN65与英特尔NUC 13 Pro作为市场上两款备受瞩目的产品,各自拥有独特的优势和特点。本文将从处理器性能、扩展性、接口丰…...
分享一个好用的印花重绘工具
本文向大家介绍一款革命性的 AI 工具,它能够将模糊不清的图片转化为具有照片级别的高清图像。这项前沿项目依托于大规模人工智能技术,革新了图像恢复领域。通过文本驱动和智能修复功能,它巧妙地结合了先进的 AI 技术与创新理念,为…...
力扣题解(递增的三元子序列)
334. 递增的三元子序列 给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。 如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true ;否则&#…...
做不好PPT的原因
新手制作PPT长犯的10个错误 1.Word搬家 为了节约时间,直接把Word素材复制粘贴到PPT上,没有提炼 2.堆积图表 每个页面上堆积了大量的图表,却没有说明数据反映了什么趋势 3.图表业余 想用图表达自己的逻辑,但没有专业的模板&a…...
嵌入式人工智能(45-基于树莓派4B的扩展板-舵机驱动板PCA9685)
1、简介 智能小车、机械臂、摄像头云台会有多个舵机,而微控制器芯片的PWM输出引脚不够的情况下,就可以用PCA9685(16路舵机)来解决这一问题。 PCA9685是一款I2C总线控制的16通道LED控制器,专为红/绿/蓝/琥珀ÿ…...
【数据结构与算法】建立多个栈的三种方案的优缺点分析
在一个算法中需要建立多个栈时可以选用以下三种方案之一,试问这三方案相比各有什么优缺点? (1)分别用多个顺序存储空间建立多个独立的顺序栈。 (2)多个栈共享一个顺序存储空间。 (3)…...
DjangoRF-14-创建request子应用
注意,本应该是requests模块,为了区分,避免错误,用request 1、进入apps,创建request django-admin startapp request 2、因为只发送请求,没有数据库相关,不需要model。 3、进行序列化 from rest_framework …...
SOMEIP_ETS_005:检查字节序
测试目的: 验证DUT在发送和接收参数时对字节序的处理能力。 描述 本测试用例旨在检验DUT在处理具有不同字节序的参数时,是否能够正确地发送和接收数据,并确保返回的UINT32值是传入的两个参数(UINT8和UINT16)的和。 …...
为什么要对医疗器械进行网络安全评估?
对医疗器械进行网络安全评估的原因主要有以下几点: 一、保障患者安全 直接关联患者健康:医疗器械与患者的生命健康直接相关,任何网络安全漏洞都可能导致设备被非法控制或数据泄露,进而威胁患者的生命安全。例如,黑客可…...
沃尔玛1P账号的强悍作用重要反映在那些方面?——WAYLI威利跨境助力商家
沃尔玛作为全球最大的零售商之一,其品牌影响力非常强大。商家通过入驻沃尔玛商超并开设1P账号,能够借助沃尔玛的品牌影响力来提升自身的品牌知名度和美誉度。这种品牌背书的效应,有助于商家吸引更多的消费者关注和购买自己的产品。 一、沃尔玛…...
学习python你不能不知道的几个接单平台!实现如月上万不是梦
学Python后,寻找兼职平台是一个很好的实践和提升技能的方式。以下是一些比较推荐的Python兼职平台: 国内平台 程序员客栈 网址:https://www.proginn.com介绍:程序员客栈是中国非常领先的自由工作平台,为中高端程序员、…...
Golang面试题三(map)
1.map底层实现 由图看出,其实map的底层结构体是hmap,同时hmap里面维护着若干个bucket数组(即桶数组)。bucket数组中每个元素都是bmap结构的,bmap中存储着8个key-value的键值对,如果是满了的话,当…...
[windows10]win10永久禁用系统自动更新操作方法
WinR打开运行 输入regedit打开注册表 点击确定打开注册表 按照如下路径找到UX 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings 在空白处点击鼠标右键,新建选择DWORD,然后重命名为FlightSettingsMaxPauseDays 双击FlightSet…...
《西行取经:大学生编程之路的禅悟与陷阱规避2》
《西行取经:大学生编程之路的禅悟与陷阱规避2》 阿弥陀佛,贫僧唐僧,虽身处古代,心却向往智慧之光。观今世大学生于编程之途,犹如我等西天取经,路途遥远且布满荆棘。今欲以吾之“取经”心得,为尔…...
JVM从入门到放弃
前言:关于JVM,其实有很多大厂开发了不同版本的JVM,比较知名的有:Sun HotSpot VM、BEA JRockit VM、IBM J9 VM、 Azul VM、 Apache Harmony、 Google Dalvik VM、 Microsoft JVM等等。现在使用的比较多的JDK8版本就是Sun HotSpot V…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
