CAD中的dxf文件解析(一):准备工作
1.引言
CAD是工程中常见的画图软件,dxf是CAD中经常用到的文件,在工作中有用到对dxf文件进行解析的情况。这篇文章将说明如何用代码将dxf文件中的信息解析出来。
2.dxf文件(可以了解一下)
DXF是一种开放的矢量数据格式,可以分为两类:ASCII格式和二进制格式;ASCII具有可读性好的特点,但占用的空间较大;二进制格式则占用的空间小、读取速度快。
DXF文件是由很多的"代码"和"值"组成的"数据对"构造而成,这里的代码称为"组码"(group code),指定其后的值的类型和用途。每个组码和值必须为单独的一行的。
DXF文件是由很多的"代码"和"值"组成的"数据对"构造而成,这里的代码称为"组码"(group code),指定其后的值的类型和用途。每个组码和值必须为单独的一行的。
DXF 文件的基本组成如下所示:
●HEADER 部分 - 图的总体信息。每个参数都有一个变量名和相应的值。
●CLASSES 部分 - 包括应用程序定义的类的信息,这些实例将显示在 BLOCKS、ENTITIES 以及
●OBJECTS 部分-通常不包括用于充分用于与其它应用程序交互的信息。
●TABLES 部分 - 这部分包括命名条目的定义。
Application ID (APPID) 表
Block Recod (BLOCK_RECORD) 表
Dimension Style (DIMSTYPE) 表
Layer (LAYER) 表
Linetype (LTYPE) 表
Text style (STYLE) 表
User Coordinate System (UCS) 表
View (VIEW)表
Viewport configuration (VPORT) 表
●BLOCKS 部分- 这部分包括 Block Definition 实体用于定义每个 Block 的组成。
●ENTITIES 部分 - 这部分是绘图实体,包括 Block References 在内。
●OBJECTS 部分 -- 包括非图形对象的数据,供 AutoLISP 以及 ObjectARX应用程序所使用。
●THUMBNAILIMAGE 部分 -- 包括 DXF 文件的预览图。
●END OF FILE
3.开始进入解析(先从文件的ASCII码中的组码解析)
需要准备dxf的解析库dxflib,链接如下:
https://download.csdn.net/download/weixin_40196271/12471365
以及在CAD中安装好帮助文件。可以去官网进行下载,需要安装在CAD中
https://knowledge.autodesk.com/zh-hans/support/autocad/learn-explore/caas/downloads/downloads/CHS/content/download-install-autocad-2021-product-help.html
也可以用下面的链接进行下载,直接的帮助文档
https://download.csdn.net/download/weixin_40196271/12471381
一般我们需要解析的部分会有两个,一个是dxf中的层的信息,一个是具体的图中的线,圆,圆弧,多段线等信息。
先来解析层。
(1)层的解析
层信息可以通过TABLES部分来进行解析。以下是帮助文档中对layer做的说明,打开dxf文件,查找到TABLES中layer的部分,可以对照找到相关的层的信息。
dxflib中也是通过组码的信息来解析具体信息的。通常层信息比较有用的是图层名的信息。
(2)线的解析
线的信息可以通过ENTITIES部分来进行解析。以下是帮助文档中对line的说明。
其中10,20,30后面对应的数字为起点的x,y,z左边,11,21,31后面对应的数字为终点的x,y,z坐标。
(3)圆的解析
圆的信息可以通过ENTITIES部分来进行解析。以下是帮助文档中对circle的说明。
其中10,20,30为x,y,z对应的圆心坐标,40为圆的半径。
(4)圆弧的解析
圆弧的信息可以通过ENTITIES部分来进行解析。以下是帮助文档中对arc的说明。
其中,10,20,30为x,y,z的圆心坐标,40为圆的半径,50为圆的起点角度(弧度制),51为圆的终点角度(角度制)
(5)多段线的解析
多段线的信息可以通过ENTITIES部分来进行解析。多段线是由多个角点连接起来的。一般我们解析LWPOLYLINE,POLYLINE属于旧版本了,不过有的时候也会出现。以下是帮助文档中对lwpolyline的说明:
其中,90为多段线中角点的个数,10,20为多段线中的角点的x,y坐标,42为角点的凸度,为角点对应的圆弧的圆心角的四分之一的正切(这么说有点复杂,后面会具体讲到)。一般我们会把角点信息进一步解析出来,变成线和圆的信息。
(6)椭圆的解析
椭圆的信息可以通过ENTITIES部分来进行解析。以下是帮助文档中对ellipse的说明。
其中,10,20,30为椭圆圆心的x,y,z坐标。11,21,31为相对于中心的长轴端点的x,y,z坐标,40为短轴与长轴的比例,可以用来计算长短轴半径。41,42为起始和终止角度(弧度制)。
4.未完待续
由于内容较多,具体的用dxflib中的解析见下一篇
CAD中的dxf文件解析(一):准备工作相关推荐
- CAD中的dxf文件解析(二):dxflib的使用
1.前言 上一篇中对dxf文件及文件中常见的需要解析的直线,圆,圆弧,椭圆,多段线的说明,对dxf文件有了初步的了解,并做好了下载dxflib,dxf帮助文档的准备(没有准备的可以回到上一篇). CA ...
- CAD中的dxf文件解析(三):多段线篇
1.前言 在前面的CAD中的dxf文件解析(二)中讲到了一些CAD的dxf文件解析点.线.圆弧.圆.块等的思路.下面提供链接: (二): CAD中的dxf文件解析(二):dxflib的使用_不爱学习 ...
- vb如何实现在cad中打开dxf文件_CDR转CAD方法
在CDR文档中又是如何将文档转换为CAD格式的呢?其实只要简单几步就能搞定,下面系统天地小编就来给大家分享cdr(CorelDRAW)文档转换为CAD格式的方法,供大家参考. cdr文档转换为CAD格 ...
- python读取dxf文件_GitHub - XUIgit/dxfReader: dxf文件解析 用来提取CAD中的dxf文件格式所保存的图像信息...
dxfReader 介绍 用来解析,提取CAD中的dxf文件格式所保存的图像信息 环境 python36(在python35中会失效, 其他环境未测试) 软件架构 主要采用简单工厂模式: Sectio ...
- asp.net中各种类型文件解析 收藏
asp.net中各种类型文件解析 收藏 ASP.NET的页面文件是*.aspx,每个页面对应一个*.resx资源文件和一个*.aspx.cs的代码文件. *.resx是资源文件.每个页面都有一个资源文 ...
- dxf文件解析,g代码解析,图片解析C#工程文件
dxf文件解析,g代码解析,图片解析C#工程文件 1.解析完成的图形坐标自动保存,通过通信接口直接下发即可 2.可用于激光切割机,打印机,打码机,巡边机,点胶机等运动控制系统 ID:693000659 ...
- dxf文件解析,g代码解析,图片解析C#工程文件 可用于激光切割机,打印机,打码机,巡边机,点胶机等运动控制系统
dxf文件解析,g代码解析,图片解析C#工程文件 1.解析完成的图形坐标自动保存,通过通信接口直接下发即可 2.可用于激光切割机,打印机,打码机,巡边机,点胶机等运动控制系统 ID:483000659 ...
- 关于PADS 9.5导入CAD图(dxf文件)的说明
关于PADS 9.5导入dxf文件的说明 一.前言 在使用PADS layout画PCB时,需要将公司LOGO图案放到PCB面板上,但是PADS不支持直接将图片格式(jpg,png,bmp等)的文件导 ...
- 汽车车牌识别系统(六)-- 项目中的各个文件解析
汽车车牌识别系统上传至CSDN之后,好多小伙伴都对项目中的各个文件存在疑问,该篇文章主要是为了解析项目中的各个文件.如果对项目中的各个文件已经很熟悉的小伙伴,请自觉略过. - LPR:项目名称- ch ...
- .dat数据文件怎么打开_CAXA线切割版,打开CAD的DWG, DXF文件的终极绝招
经常会有朋友会问到这个问题,今天来解答一下,希望对大家有帮助.老鸟可以绕道,喜欢喷的请口下留情,谢谢! 年后东莞大朗一线切割操作师傅在微信上说,对我们这个机床文件无线传输装置很感兴趣,想了过来了解一下 ...
最新文章
- pytorch使用gpu就是这么简单
- Spring开发环境搭建和第一个示例程序
- linux下tmpfs文件系统简介
- Promise源码实现
- dns提供商主机名_DNS域名解析的过程
- EOJ 262 润清的烦恼
- 位移密码 nyist768
- 地图导航定位二维码如何制作呢?
- 脸上为什么长痘及处理方式
- LaTeX 插入章节和目录
- 总结整理Echarts双y轴曲线图(全)
- java 地图模式_MapL 实现了百度地图定位以及感应方向和各种模式切换的 Demo Java Develop 238万源代码下载- www.pudn.com...
- 解决nrm ls命令没有*(星号)的问题
- 从基础到进阶,一文详解RocketMQ事务消息,看完不会跪键盘
- 武汉地图json文件_echarts各省市地图js和json文件
- 一种人吃蜂蜜火上浇油
- 有趣且重要的css知识合集(1)纯css实现div左右拖拽效果
- 【软件工程师学硬件】之 开发板
- K12市场乱象丛生,焦虑背后资本如何起死回生?
- “遗憾中国”7大IT名人