【WPF】CAD工程图纸转WPF可直接使用的xaml代码技巧
前言:随着工业化的进一步发展,制造业、工业自动化等多领域,都可能用到上位监控系统。而WPF在上位监控系统方面,应该算是当下最流行的前端框架之一了。而随着监控体系的不断完善与更新迭代,监控画面会变得越来越复杂、多样化和全面化。
随着监控画面的不断复杂和庞大,如果靠开发者人为进行绘制图案、模型等,无疑会是一个很庞大的工作量。而大多数监控系统的开发,可能还需要结合CAD图纸的布局图进行“自定义创作”,也是一个较为繁琐的工程。如果可以通过CAD图纸直接转换为WPF的画布图纸,那么开发者的工作将会变得更加轻松愉快,只需要做一些简单的调整就可以变成自己的一套监控系统。那么下面的文章,我将会以几个很简单的步骤,来演示一下通过CAD图纸转换为XAML代码文件的方法,供大佬们参考。
零:为了防止被爬虫到各种不友好的网站(会自动同步到CSDN同账号,除 博客园 与 CSDN 外,都可能是爬虫爬过去的,谨防被忽悠),以及防止影响大家阅读体验,建议可以点击该博客的在博客园的原文链接进行阅读:
https://www.cnblogs.com/weskynet/p/16412223.html
一、为了演示一个简单的操作,我此处先打开一个空白的CAD,等下用来进行绘制点内容使用。

二、自定义随便绘制点东西,此处包括了三个矩形,三个圆,一个椭圆,以及一个螺旋图案,还有一行文字,当作测试使用。

三、绘制完成以后(正常使用,可能是打开cad图纸以后,直接进行这一步),选择 文件 -> 另存为,将图纸另存为.dxf格式的文件,供后续的AI工具进行打开。

四、使用AI工具进行打开.dxf文件
【备注】此处打开时候由于设置了边界全部显示为1px,所以三个圆变细了,请无视这个细节。

五、AI工具打开以后,选择 文件- 导出为.xaml格式。正常情况下可以导出为silverlight和wpf两种,此处咱们选择导出为wpf支持的xaml格式。
【备注】AI导出的路径不能有中文,否则可能导出会不成功。

六、导出成功以后,在导出目录下,可以看到生成了一个.xaml格式的代码文件。

七、用文本文件打开瞅一眼,可以看到熟悉的xaml标签代码,它由<viewbox/>控件包含,所以也可以直接用它来制作用户控件使用等等,大佬们可以自行发挥。

八、新建一个WPF项目,目前主窗体没有任何元素,用于后续测试生成的xaml代码是不是可以使用。

九、将导出的xaml代码文件的代码,全部复制到主窗体下,可以看到主窗体设计器自动展示了元素的效果。与CAD图纸上的基本一致。

十、咱们运行一下程序,看看启动以后的效果,如下图所示,说明导出的代码是可以直接使用的,并且符合预期。

十一、对于AI工具没有导出WPF选项的,需要添加一个插件。插件下载地址:http://mikeswanson.com/xamlexport/
下载地址打开以后的页面,如下图所示,已经提示了很详细的使用方法了,参照提示信息进行放置插件即可。

十二、下载的插件,解压以后会有两个aip文件,一个是MAC系统支持的,另一个是Windows系统支持的,如下图所示,存放到AI工具的安装目录下的plug-ins文件夹下即可。
【备注】AI安装的如果是破解版、或者不是默认安装路径,有可能会识别插件不成功,比如说在打开AI程序的时候,可能提示 "ai载入增效工具时失败"之类的。

以上就是该文章的全部内容,感谢各位大佬捧场。
如果大佬们对.NET方向技术感兴趣,可以找到该文章的博客园的原文链接:https://www.cnblogs.com/weskynet/p/16412223.html
在最下面有一个加入QQ群的信息,可以直接加入。
或者也可以扫以下的二维码,加我个人微信,然后一起讨论技术,或者申请进微信群,我也拉你进微信同群,也是OK的。

最后祝大佬们撸码愉快~~
如果有帮助,欢迎点赞、收藏或评论转发呀~~不用客气~~
【WPF】CAD工程图纸转WPF可直接使用的xaml代码技巧的更多相关文章
- C# WPF过渡效果实现(C# WPF Material Design UI: Transitions)
时间如流水,只能流去不流回! 点赞再看,养成习惯,这是您给我创作的动力! 本文 Dotnet9 https://dotnet9.com 已收录,站长乐于分享dotnet相关技术,比如Winform.W ...
- WPF教程九:理解WPF中的对象资源
在WPF中,所有继承自FrameworkElement的元素都包含一个Resources属性,这个属性就是我们这篇要讲的资源. 这一篇讲解的资源是不是上一篇的程序集资源(那个是在编译过程中打包到程序集 ...
- WPF快速入门系列(6)——WPF资源和样式
一.引言 WPF资源系统可以用来保存一些公有对象和样式,从而实现重用这些对象和样式的作用.而WPF样式是重用元素的格式的重要手段,可以理解样式就如CSS一样,尽管我们可以在每个控件中定义格式,但是如果 ...
- WPF快速入门系列(1)——WPF布局概览
一.引言 关于WPF早在一年前就已经看过<深入浅出WPF>这本书,当时看完之后由于没有做笔记,以至于我现在又重新捡起来并记录下学习的过程,本系列将是一个WPF快速入门系列,主要介绍WPF中 ...
- WPF 3D 小小小小引擎 - ·WPF 3D变换应用
原文:WPF 3D 小小小小引擎 - ·WPF 3D变换应用 WPF可以提供的3D模型使我们可以轻松地创建3D实体,虽然目前来看还很有一些性能上的问题,不过对于一些简单的3D应用应该是可取的,毕竟其开 ...
- WPF换肤之三:WPF中的WndProc
原文:WPF换肤之三:WPF中的WndProc 在上篇文章中,我有提到过WndProc中可以处理所有经过窗体的事件,但是没有具体的来说怎么可以处理的. 其实,在WPF中,要想利用WndProc来处理所 ...
- WPF系列(1)WPF和XAML基础
终于下定决心开始更新WPF一个系列的文章,这里主要是出于两个目的,一是自己对所学的知识有一个系统的总结,二十希望能对其他人有些帮助,如果您觉得我写的不好,欢迎提意见. 那么既然我要开始写WPF,那我们 ...
- WPF加载HTML、WPF与JavaScript交互
目录 一.WebBrowser加载远程网页 二.WebBrowser加载本地网页,注:不可以加载本地样式CSS和脚本JS文件 三.WebBrowser隐藏网页的JavaScript错误 四.网页屏蔽鼠 ...
- WPF 学习笔记-在WPF下创建托盘图标
原文:WPF 学习笔记-在WPF下创建托盘图标 首先需要在项目中引用System.Windows.Forms,System.Drawing; using System; using System.Co ...
随机推荐
- 学生管理系统(python实现)
# 定一个列表,用来存储所有的学生信息(每个学生是一个字典) info_list = [] def print_menu(): print("------------------" ...
- FastDFS分布式的文件系统从小白入门到企业实践打怪之路系列笔记 【运维实践】
描述: FastDFS 是阿里的余庆大佬用 C 语言编写的一款开源的分布式文件系统(个人项目),它对文件进行管理.功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,适合中小文件(4KB ...
- 将个人项目发布到mavan中央仓库
第一步,准备自己的git代码 比如在gitee或者github上的代码,我的是gitee码云上的,开源了一个处理业务日志采集的组件,支持注解方式,支持SpEL表达式,支持变量自定义. 话不多说,直接上 ...
- 【原创】记一次DouPHP站点的RCE实战之旅
声明 本次实践是在合法授权情况下进行,数据已经全部脱敏,主要是提供思路交流学习,请勿用于任何非法活动,否则后果自负. 实战记录 信息收集 1,踩点站点 通过fofa 查到目标DouPHP框架该站点(也 ...
- 2021.08.09 P5658 括号树(树形结构)
2021.08.09 P5658 括号树(树形结构) [P5658 CSP-S2019] 括号树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 太长,在链接中. 分析及代码 ...
- Android第十一、十二周作业
图片一 用内部存储实现文件写入和读取功能 <?xml version="1.0" encoding="utf-8"?> <LinearLayo ...
- RecyclerView + SQLite 简易备忘录-----下
最后就是添加备忘录的界面了.同时也是显示备忘录内容的界面. 1.activity_add_info.xml 也是比较简陋的一个页面设计. 顶部是一个自定义的Toolbar,剩下的部分都是ScrollV ...
- win10屏幕亮度无法调节,已解决
一.问题背景 最近遇到了屏幕亮度无法调节的问题,屏幕特别亮,亮瞎眼的那种,安装各种驱动和修改注册表都不起作用,右键显示器设置根本找不到亮度调节,有时候可以找到但是调节不起作用. 二.发现原因 经过各种 ...
- VUE 日期组件(包括年选择)
封装vant 日期组件实现可以选择年份 <template> <div class="yearMonMain"> <div class="l ...
- MySQL left join 引发的惨案
当我用这个进行更改值时,type未控制order表 其他数据被更改 还好备份数据表了(这里就体现了备份的重要性) UPDATE expense_order as a left join ( SELEC ...