前言:

近期在做系统柜和衣柜导出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优化参考方案的更多相关文章

  1. jvm出现OutOfMemoryError时处理方法/jvm原理和优化参考

    The heap stores all of the objects created by your java program.The heap's contents is monitored by ...

  2. 比较全面的MySQL优化参考(上下篇)

    转自:http://imysql.com/2015/05/24/mysql-optimization-reference-1.shtml 本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨 ...

  3. 比较全面的MySQL优化参考

      本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要 ...

  4. Nginx配置优化参考

    Nginx配置优化参考                                                                                          ...

  5. Nginx性能优化参考

    nginx性能优化参考 1)调整配置文件中的配置项的值(配置文件:nginx.conf) worker_processes auto;开启的进程数,一般配置为跟逻辑CPU核数一样worker_rlim ...

  6. IIS 程序池优化配置方案

    内容目录 IIS 程序池优化配置方案IIS高并发配置一.IIS站点绑定程序池设置二.支持万级并发请求 IIS 程序池优化配置方案 最近由于系统的客户越来越多,有客户反映访问速度变慢,尤其是api的请求 ...

  7. 3D max导出的设置选项

    一3D max导出的设置选项

  8. tp5.1 phpspreadsheet- 工具类 导入导出(整合优化,非原创,抄一抄,加了一些自己的东西,)

    phpspreadsheet-工具类 导入导出(整合优化,非原创,抄一抄,加了一些自己的东西)1. composer require phpoffice/phpspreadsheet2. 看最下面的两 ...

  9. NX二次开发-NXOPEN工程图导出CAD图纸DxfdwgCreator *dxfdwgCreator1;

    没有什么可以看的,NXOPEN直接录制一下导出CAD就可以了.录制出来自己挑需要的代码拿过来改一下. NX9+VS2012 #include <NXOpen/Part.hxx> #incl ...

随机推荐

  1. js正则表达式验证(化繁为简)

    以前用js写正则表达式验证,每一个文本框后面都要添加一个onblur函数,验证的信息少,也没体会到有多繁琐,这次项目中的页面比较多,页面中的信息也比较多,如果每个文本框都加一个验证函数的话,js验证代 ...

  2. SolrCloud 5.5.5 + Zookeeper + HDFS使用

    安装sol r 三个节点192.168.1.231,192.168.1.234,192.168.1.235 下载安装包solr.tar.gz 解压 tar -zxvf solr.tar.gz 配置ZK ...

  3. Flume-NG启动过程源码分析(一)(原创)

    从bin/flume 这个shell脚本可以看到Flume的起始于org.apache.flume.node.Application类,这是flume的main函数所在. main方法首先会先解析sh ...

  4. 虚拟机CentOS6.5网络配置

    不得不说  6.5比7.0麻烦了许多.. 编辑ifcfg配置文件 vi /etc/sysconfig/network-script/ifcfg-eth0 内容如下 DEVICE=eth0 HWADDR ...

  5. 代码题 — 剑指offer题目、新增题目

     1.剪绳子 给你一根长度为n的绳子,请把绳子剪成m段 (m和n都是整数,n>1并且m>1)每段绳子的长度记为k[0],k[1],...,k[m].请问k[0]*k[1]*...*k[m] ...

  6. C++(十一)— map的插入、查找、删除

    标准库map类型是一种以键-值(key-value)存储的数据类型. map是STL的一个关联容器.它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值 ...

  7. hzau 1208 Color Circle(dfs)

    1208: Color Circle Time Limit: 1 Sec  Memory Limit: 1280 MBSubmit: 289  Solved: 85[Submit][Status][W ...

  8. Android自定义组件之ListView

    1-ListView简介 在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示.一个ListView通常有两个职责. (1)将数据填充到 ...

  9. splunk的统计分析功能——特定字段的统计功能包括取值分布(+topK,min/max/平均值)

    特定字段的统计功能——取值分布,topK,min/max/平均值 例如: date_second 60 值, 100% 的事件 时段平均值 时段最大值 时段最小值 上限值 时段上限值 罕见值 具有此字 ...

  10. uva489(需要考虑周全)

    这个题是简单题,但是我的思路本身不周全,忽略了一种比较“无理”的情况,而导致WA多次.我是把猜的串全扫一遍以后判断出结果,但是实际上可能是前面已经全猜对了,但是这个选手是个逗比,已经猜对了还要猜,而且 ...