3D柜体导出CAD优化参考方案
前言:
近期在做系统柜和衣柜导出CAD的工作,现阶段的工作是根据不同的厂商定制不同的CAD导出,其中房间平面图、顶脚线截面图、柜体立面图、侧视图、平面图、门板图等模块功能都基本固定,不同的是不同厂商的边框模板不一样,不同厂商需
要的内容是在房间平面图、顶脚线截面图、柜体平面图、侧视图、平面图、门板图之中选择和组合,变化的都是一些细节比如颜色、线段类型等等,但是如果每增加一个厂商就要写一套代码就很难让人接受了,为此编写一套可扩展可配置个性化需求的
导出CAD方案势在必行,为此我构思了如下三个阶段的优化方案供大家参考。
优化方案:
Step 1 – 代码模块化并用文本编辑方式配置参数
这个阶段是整个优化方案最基础最重要的阶段,在这个阶段中需要实现能单独生成各部分图形的模块化并且图形可以平移、比例拉伸等并参数化,然后在xml文件中记录各个图形的细节参数如边框路径、每个图形距离、图形线条样式等,由于导出CAD
功能为dll实现供网站调用,由于功能需要配置文件需放在服务器端,为方便编辑可以做一个页面读取并编辑xml方便在客户端电脑浏览器上编辑,并做一定的校验避免错误信息录入。
Step 2 – 图形化模板编辑参数
这个阶段采用上传dxf模板的形式来代替编辑xml,开发人员根据一定的规则在dxf的CAD文件中设置一些特殊字符表示房间立面图、柜体平侧立图位置及间距,不同的带样式的线段图形等信息代表所需参数线段参数信息,用程序解析该上传dxf的模板
CAD文件并转换成xml供下次使用而不是每次解析dxf以提高效率,有了xml后就能复用Step 1的功能导出CAD。
Step 3 – 图形化样例人工智能提取参数
这个阶段同样采取上传dxf的CAD文件,但文件中不再包含特殊字符作为占位符表示图形的位置,而是实实在在的一张CAD样例,采用C# GDI+技术将dxf图像绘制出对应的图片,根据图片使用IronPython调用C#封装OpenCV的EmguCV进行图像识别,提
取出图形中的边框,图形间距等信息,利用Tesseract OCR C#接口识别文字获取获取坐标等信息达到获取参数的功能,再将这些参数保存为xml供下次使用,之后复用Step 1的功能,现在我正在学习人工智能方面的知识,理论上来说这些功能基本都能实现。
3D柜体导出CAD优化参考方案的更多相关文章
- jvm出现OutOfMemoryError时处理方法/jvm原理和优化参考
The heap stores all of the objects created by your java program.The heap's contents is monitored by ...
- 比较全面的MySQL优化参考(上下篇)
转自:http://imysql.com/2015/05/24/mysql-optimization-reference-1.shtml 本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨 ...
- 比较全面的MySQL优化参考
本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要 ...
- Nginx配置优化参考
Nginx配置优化参考 ...
- Nginx性能优化参考
nginx性能优化参考 1)调整配置文件中的配置项的值(配置文件:nginx.conf) worker_processes auto;开启的进程数,一般配置为跟逻辑CPU核数一样worker_rlim ...
- IIS 程序池优化配置方案
内容目录 IIS 程序池优化配置方案IIS高并发配置一.IIS站点绑定程序池设置二.支持万级并发请求 IIS 程序池优化配置方案 最近由于系统的客户越来越多,有客户反映访问速度变慢,尤其是api的请求 ...
- 3D max导出的设置选项
一3D max导出的设置选项
- tp5.1 phpspreadsheet- 工具类 导入导出(整合优化,非原创,抄一抄,加了一些自己的东西,)
phpspreadsheet-工具类 导入导出(整合优化,非原创,抄一抄,加了一些自己的东西)1. composer require phpoffice/phpspreadsheet2. 看最下面的两 ...
- NX二次开发-NXOPEN工程图导出CAD图纸DxfdwgCreator *dxfdwgCreator1;
没有什么可以看的,NXOPEN直接录制一下导出CAD就可以了.录制出来自己挑需要的代码拿过来改一下. NX9+VS2012 #include <NXOpen/Part.hxx> #incl ...
随机推荐
- cern-cloud-architecture
规模: 总体: 有26个Cell 一个数据中心运行控制节点,另外一个仅仅运行nova cell 统一,灵活 nova-api运行在VM中,当然需要至少一个部署在物理机上来启动VM. 每个cell只有一 ...
- shell基础之书写需要用到的小工具
一.简单介绍 下面介绍几个可能不太常用但是面试题经常会用用到的小工具: 命令:cut 作用:截取某一个字段 '-d' 后面跟分隔字符,把字段分割为若干个区间. '-c' 后面接的是第几个字符,也可以是 ...
- MySQL索引分析
索引的出现解决数据量上升导致查询越来越慢的问题,优化数据的查询,提高查询的速度. 索引 定义: 通过各种数据结构实现的值到行位置的映射.快速定位与访问特定的数据. 作用: 提高访问速度 实现主键.唯一 ...
- webdriver处理鼠标右键菜单栏
selenium中ActionChains类提供了鼠标操作的常用方法,但对于鼠标右键的菜单栏,无论是send_keys(Keys.ARROW_DOWN)还是send_keys("K" ...
- Python列表:元素的修改、添加、删除和排序
本文参考自<Python编程:从入门到实践>,作者:Eric Matthes,译者:袁国忠 操作 语法 举例 结果 修改元素 motocycles = ['honda', 'yamah ...
- 通过Intent 打开系统级应用
众所周知,各个手机厂商由于对Android 原生系统定制的原因,会造成系统级应用packname 和activityname 不同的现象,就拿时钟软件来说,魅族2的activityname 是[com ...
- 简单实用的磁带转MP3方法图解
读完这篇文章,然后在看看文章的最后部分. [图文]磁带转Mp3教程 来源: 作者:netseeker 一.工具 1.音频线一条. 在一般的电器铺都能买到,8-15元不等,两头的接口是一样的,可以混用 ...
- Asp.net 异步调用WebService
//服务代码 [WebMethod] public string Test(int sleepTimes, int val) { Thread.Sleep(sleepTimes); var log = ...
- ebs R12 支持IE11
如果不考虑升级jdk到1.7的话,可以使用oracle推荐的方法. 1.兼容模式 2.Toolkit to Disable Automatic Delivery of Internet Explore ...
- ElasticSearch_学习_01_单实例安装与分布式安装
一.前言 二.下载 1.下载地址 https://www.elastic.co/downloads/past-releases 三.单实例安装 直接解压,window下运行 elasticsearch ...