当前位置: 首页 > news >正文

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 &#xff0c;判断这个数组中是否存在长度为 3 的递增子序列。 如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k &#xff0c;使得 nums[i] < nums[j] < nums[k] &#xff0c;返回 true &#xff1b;否则&#…...

做不好PPT的原因

新手制作PPT长犯的10个错误 1.Word搬家 为了节约时间&#xff0c;直接把Word素材复制粘贴到PPT上&#xff0c;没有提炼 2.堆积图表 每个页面上堆积了大量的图表&#xff0c;却没有说明数据反映了什么趋势 3.图表业余 想用图表达自己的逻辑&#xff0c;但没有专业的模板&a…...

嵌入式人工智能(45-基于树莓派4B的扩展板-舵机驱动板PCA9685)

1、简介 智能小车、机械臂、摄像头云台会有多个舵机&#xff0c;而微控制器芯片的PWM输出引脚不够的情况下&#xff0c;就可以用PCA9685&#xff08;16路舵机&#xff09;来解决这一问题。 PCA9685是一款I2C总线控制的16通道LED控制器&#xff0c;专为红/绿/蓝/琥珀&#xff…...

【数据结构与算法】建立多个栈的三种方案的优缺点分析

在一个算法中需要建立多个栈时可以选用以下三种方案之一&#xff0c;试问这三方案相比各有什么优缺点&#xff1f; &#xff08;1&#xff09;分别用多个顺序存储空间建立多个独立的顺序栈。 &#xff08;2&#xff09;多个栈共享一个顺序存储空间。 &#xff08;3&#xff09;…...

DjangoRF-14-创建request子应用

注意&#xff0c;本应该是requests模块&#xff0c;为了区分&#xff0c;避免错误&#xff0c;用request 1、进入apps,创建request django-admin startapp request 2、因为只发送请求&#xff0c;没有数据库相关&#xff0c;不需要model。 3、进行序列化 from rest_framework …...

SOMEIP_ETS_005:检查字节序

测试目的&#xff1a; 验证DUT在发送和接收参数时对字节序的处理能力。 描述 本测试用例旨在检验DUT在处理具有不同字节序的参数时&#xff0c;是否能够正确地发送和接收数据&#xff0c;并确保返回的UINT32值是传入的两个参数&#xff08;UINT8和UINT16&#xff09;的和。 …...

为什么要对医疗器械进行网络安全评估?

对医疗器械进行网络安全评估的原因主要有以下几点&#xff1a; 一、保障患者安全 直接关联患者健康&#xff1a;医疗器械与患者的生命健康直接相关&#xff0c;任何网络安全漏洞都可能导致设备被非法控制或数据泄露&#xff0c;进而威胁患者的生命安全。例如&#xff0c;黑客可…...

沃尔玛1P账号的强悍作用重要反映在那些方面?——WAYLI威利跨境助力商家

沃尔玛作为全球最大的零售商之一&#xff0c;其品牌影响力非常强大。商家通过入驻沃尔玛商超并开设1P账号&#xff0c;能够借助沃尔玛的品牌影响力来提升自身的品牌知名度和美誉度。这种品牌背书的效应&#xff0c;有助于商家吸引更多的消费者关注和购买自己的产品。 一、沃尔玛…...

学习python你不能不知道的几个接单平台!实现如月上万不是梦

学Python后&#xff0c;寻找兼职平台是一个很好的实践和提升技能的方式。以下是一些比较推荐的Python兼职平台&#xff1a; 国内平台 程序员客栈 网址&#xff1a;https://www.proginn.com介绍&#xff1a;程序员客栈是中国非常领先的自由工作平台&#xff0c;为中高端程序员、…...

Golang面试题三(map)

1.map底层实现 由图看出&#xff0c;其实map的底层结构体是hmap&#xff0c;同时hmap里面维护着若干个bucket数组&#xff08;即桶数组&#xff09;。bucket数组中每个元素都是bmap结构的&#xff0c;bmap中存储着8个key-value的键值对&#xff0c;如果是满了的话&#xff0c;当…...

[windows10]win10永久禁用系统自动更新操作方法

WinR打开运行 输入regedit打开注册表 点击确定打开注册表 按照如下路径找到UX 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings 在空白处点击鼠标右键&#xff0c;新建选择DWORD&#xff0c;然后重命名为FlightSettingsMaxPauseDays 双击FlightSet…...

《西行取经:大学生编程之路的禅悟与陷阱规避2》

《西行取经&#xff1a;大学生编程之路的禅悟与陷阱规避2》 阿弥陀佛&#xff0c;贫僧唐僧&#xff0c;虽身处古代&#xff0c;心却向往智慧之光。观今世大学生于编程之途&#xff0c;犹如我等西天取经&#xff0c;路途遥远且布满荆棘。今欲以吾之“取经”心得&#xff0c;为尔…...

JVM从入门到放弃

前言&#xff1a;关于JVM&#xff0c;其实有很多大厂开发了不同版本的JVM&#xff0c;比较知名的有&#xff1a;Sun HotSpot VM、BEA JRockit VM、IBM J9 VM、 Azul VM、 Apache Harmony、 Google Dalvik VM、 Microsoft JVM等等。现在使用的比较多的JDK8版本就是Sun HotSpot V…...

比话降AI和嘎嘎降AI哪个好知网用户怎么选

比话降AI和嘎嘎降AI是2026年降AI率工具里被讨论最多的两款。两款都有真实用户实测数据&#xff0c;都有退款保障&#xff0c;都不是"交学费型"的工具。 但它们不一样&#xff0c;适合不同的人。 这篇文章专门从知网用户的角度来对比&#xff0c;说清楚什么情况选比…...

快速生成git安装配置脚本,快马平台助你一键搭建版本控制环境

最近在帮团队新成员配置开发环境时&#xff0c;发现git安装这个看似简单的步骤&#xff0c;其实藏着不少坑。不同操作系统下的安装方式差异很大&#xff0c;新手经常要反复查阅各种教程。于是我用InsCode(快马)平台快速搭建了一个git安装配置助手&#xff0c;整个过程比想象中顺…...

高效文件元数据管理:让Windows文件属性编辑变得简单直观

高效文件元数据管理&#xff1a;让Windows文件属性编辑变得简单直观 【免费下载链接】FileMeta Enable Explorer in Vista, Windows 7 and later to see, edit and search on tags and other metadata for any file type 项目地址: https://gitcode.com/gh_mirrors/fi/FileMe…...

关于sms,voip路由以及smpp

SMS 和 VoIP 路由是国际通讯行业核心技术&#xff0c;用于高效传递短信和语音通话。SMPP 协议则是 SMS 传输的关键标准&#xff0c;帮助运营商和企业实现全球消息互联。SMS 基础知识SMS&#xff08;Short Message Service&#xff0c;短消息服务&#xff09;是手机最常见的文本…...

实战演练:基于快马平台开发结合openclaw配置模型的工业分拣模拟系统

最近在做一个工业分拣系统的模拟项目&#xff0c;尝试用openclaw配置模型来实现对不同形状物体的智能抓取。整个过程在InsCode(快马)平台上完成&#xff0c;发现这个工具特别适合快速搭建这类机器人控制原型。记录下具体实现过程&#xff1a; 场景搭建 首先用三维引擎创建了一个…...

手机网站建设:新手指南,一步到位打造完美移动版网站 关键词: 手机网站建设, 移动网站设计, 响应式设计, SEO优化, 用户体验

...

VisualCppRedist AIO:解决Windows运行库管理难题的一站式方案

VisualCppRedist AIO&#xff1a;解决Windows运行库管理难题的一站式方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 一、直面运行库困境&#xff1a;三大场…...

ugrep布尔搜索实战:使用AND/OR/NOT构建复杂查询

ugrep布尔搜索实战&#xff1a;使用AND/OR/NOT构建复杂查询 【免费下载链接】ugrep Ugrep 4.3: an ultra fast, user-friendly, compatible grep. Ugrep combines the best features of other grep, adds new features, and searches fast. Includes a TUI and adds Google-lik…...

3步打造游戏性能优化神器:DLSS Swapper零基础掌握指南

3步打造游戏性能优化神器&#xff1a;DLSS Swapper零基础掌握指南 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款专为PC游戏玩家设计的DLSS版本管理工具&#xff0c;通过自动化版本切换、智能游戏扫…...

Windows 11终极优化指南:用Win11Debloat实现系统加速51%的免费方案

Windows 11终极优化指南&#xff1a;用Win11Debloat实现系统加速51%的免费方案 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to decl…...