3DCAD图纸转2D(DXF解析)图纸通用解决方案文稿

本文地址:https://gitee.com/dvaloveu/lovedva/issues/I6B5YC
视频演示(1.25倍速&原速):Acfun Bilibili
脚本地址:https://gitee.com/dvaloveu/ug-automation/blob/master/ug2caxa/hellowolrd.py

目录预留

操作方法简介

1.3DCAD软件转成DXF格式(R2007以上版本)
2.通过DXF公开接口操作数据进行修改调整(查找替换)

Caxa等软件,按规则匹配筛选图元,替换成图层颜色等属性。

3.使用2DCAD软件进行最终版本和格式统一化

DXF AutoDesk接口和公开协议

接口文档说明(有中文):

https://help.autodesk.com/view/OARX/2018/CHS/?guid=GUID-F0004556-493C-48D5-8619-61D6ADF05C04

DXF文件以文本方式储存图形数据,格式为:组码代号(整数) 换行 内容值

公开协议

采用 CC-署名-非商业用途-相同方式共享(Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License),CC协议简单介绍点这里

DXF修改原理简介

DXF以文本储存图元数据,根据AutoDesk官方文档,修改对应的文本即可修改图形。
使用记事本等各种文本编辑器打开DXF即可。

  • 尺寸修改

    修改对应组码的值即可。

  • 获取图幅大小

DXF操作库(Python/C++)

ezdxf库(Python)

https://ezdxf.readthedocs.io/en/stable/dxfinternals/index.html
协议:

用法简介

import ezdxf 
doc = ezdxf.readfile(fPath,"utf-8") 
psp = doc.layout("model") 
pSize3D=psp.dxf.limmax-psp.dxf.limmin 
dimensions = msp.query('DIMENSION[color==3 & lineweight==13]') 
e.set_dxf_attrib("layer","尺寸线层")  
...
doc.saveas('./output/'+fnout,"utf-8") 

dxflib库(C++)

https://www.ribbonsoft.com/en/90-dxflib
用法相同,运行效率更高,开发效率较慢,适合开发投入市场的产品。

ObjectCRX库(Caxa/C++)

相同,泛用性低,适用于针对性强(仅Caxa)的场合,对于特定场合更加方便使用。

UG制图

1.调整图纸中元素的颜色以区别不同元素

轮廓线,尺寸线,中心线,螺纹线,文字等不同的元素用不同的颜色(粗细)区分开,不用非要与最终格式相同,只要能区别元素即可。例如螺纹线设置成35号颜色,推荐用色号不同的颜色用作区分条件,色号可以在各种CAD软件的选色器中查看。配置好后可以导出配置文件备份或者是给其他电脑使用。

2.导出DXF注意事项

  • 导出格式为DXF,不要选非公开的DWG

  • DXF版本和比例缩放
    DXF版本选择R2007以上,支持utf-8等多语言的文字编码。
    比例缩放选择图纸比例的对应倍率,例如图纸比例为1:5,输出DXF时选择放大5倍。一般选择“基本视图比例”会自动根据图纸整体比例缩放,注意主视图设置跟图纸比例不同的情况需要手动修改输出DXF时的缩放比例。

  • 字体全部设置为宋体
    所有电脑都有宋体,作为文字匹配的条件。

  • 剖面线设置为 ANSI31

  • 配置好之后导出配置文件保存
    可以在其他电脑上导入,以使用相同配置。

SolidWorks和其他

相同,保持各图元以颜色区分即可。

注意事项

  • 超出DXF格式以外的各软件独有的内容会丢失或者失效,需要手动修改整理,比如特殊符号,螺栓圆中心线等。
  • 后续修改(少量)
    用筛选器删除尺寸标注,中心线以外的轮廓图形,再把修改之后的轮廓复制进原位,增删标注即可。
  • 后续大量修改
    由于UG本身的限制,截面图,放大图复杂或者较多的情况下,大量修改会导致截面丢失,进而2D图纸需要重新绘制,效率上不一定比直接修改CAD快。
  • UG制图容易失效需要重新制图
    UG模型大量修改之后容易导致放大图,截面图失效或者丢失,以及对应的尺寸丢失,需要重新制作。
    SolidWorks更加智能,修改不会导致截面丢失(只要截面还在),缺点是SolidWorks比UG卡。
    UG的Bug更多。
  • 需要严格按照3DCAD软件的规则建模
  • 尽量使用软件原格式进行制图
    DXF作为通用格式,更多作为数据互通平台作用,其他格式转成DXF会丢失额外数据(属于软件独有的数据,例如各种特殊符号,图框模板等),所以生产环境尽量使用原生格式进行工作,需要通过第三方软件操作的时候,再转成DXF格式,这个过程可能会导致部分数据丢失。

参考引用

处理.Dwg文件用哪种技术方案?ObjectARX,RealDWG还是Teigha? https://zhuanlan.zhihu.com/p/509542720

posted @ 2023-12-08 10:17  韩大狗  阅读(93)  评论(0编辑  收藏  举报