当前位置: 首页 > 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文库

http://www.lryc.cn/news/415342.html

相关文章:

  • 图表全能王(ChartStudio) 上架VisionPro!
  • 【云原生】Job一次性任务详解
  • 化工厂人员定位采用多种定位技术的融合定位系统的好处
  • 使用AI绘图工具生成风景图像的教程
  • 迷你主机:华硕PN65和nuc13pro如何选择?
  • 分享一个好用的印花重绘工具
  • 力扣题解(递增的三元子序列)
  • 做不好PPT的原因
  • 嵌入式人工智能(45-基于树莓派4B的扩展板-舵机驱动板PCA9685)
  • 【数据结构与算法】建立多个栈的三种方案的优缺点分析
  • DjangoRF-14-创建request子应用
  • SOMEIP_ETS_005:检查字节序
  • 为什么要对医疗器械进行网络安全评估?
  • 沃尔玛1P账号的强悍作用重要反映在那些方面?——WAYLI威利跨境助力商家
  • 学习python你不能不知道的几个接单平台!实现如月上万不是梦
  • Golang面试题三(map)
  • [windows10]win10永久禁用系统自动更新操作方法
  • 《西行取经:大学生编程之路的禅悟与陷阱规避2》
  • JVM从入门到放弃
  • 中国地面太阳总辐射逐日资料
  • 微商来客小程序系统源码分享
  • Java面试题--JVM大厂篇之Parallel GC与其他垃圾回收器的对比与选择
  • 十分钟带你速通 Vue 组件
  • 基于RK3588+AI支持能源在线监测系统应用的AIOT产品方案
  • 山东大学考研机试题——整数序列
  • 一口酒一口水,不宜喝醉
  • AI6-PPOCRLabel带GPU训练
  • Unity四元数线性插值Lerp
  • Makefile 语法
  • 【运维项目经历|039】Ceph高性能云存储集群部署与优化