CAD中的dxf文件解析(三):多段线篇
1.前言
在前面的CAD中的dxf文件解析(二)中讲到了一些CAD的dxf文件解析点、线、圆弧、圆、块等的思路。下面提供链接:
(二): CAD中的dxf文件解析(二):dxflib的使用_不爱学习 未完待续的博客-CSDN博客_dxflib
(一):CAD中的dxf文件解析(一):准备工作_不爱学习 未完待续的博客-CSDN博客_dxf解析
关于官方demo文件的下载,还可以参考:
dxflib-src.rar_dxflib-互联网文档类资源-CSDN下载
Dxf_C帮助文档.zip-互联网文档类资源-CSDN下载
今天主要说一下多段线数据的解析。
2.多段线数据的解析
先看看多段线长什么样子
直观上看,多段线由线和圆弧构成,但是相邻的线、圆弧是连接起来的。但是从多段线在含义上看来,它其实是由一个个角点连接起来的。
如下面图1为一个多段线,图2所示,为dxf文本中对多段线的描述,LWPOLYLINE标记着进入多段线的描述(文件保存版本为2000以上),如果是POLYLINE则表示为比较老的标本。图3为对polyline的组码的说明,其中10,20之后的数据为角点的x,y坐标,42之后的数据为角点的凸度,其中为负说明圆弧的方向为顺时针方向,为正说明圆弧方向为逆时针方向。
图1.多段线 图2.多段线的dxf文本 图3.多段线的组码说明
如上面所说,多段线是由线和圆弧组成,对于线的话,则42后的数据为0或者没有,线的解析直接就是线起点和线终点。
如果42后的数据不为0,则角点和角点之间连接的为圆弧,圆弧的起点和终点也就是相邻角点的坐标,关键是怎么利用凸度的信息。
我们在CAD的help中找到对凸度的解释:凸度是四分之一圆弧段角的切线,如果从起点到端点,圆弧为顺时针,则为负数。凸度为 0 表示一条直线段,角点为连接直线的两个端点。凸度为 1 表示一个半圆。
凸度不为0时为圆弧,那如何来得到圆弧的圆心和半径信息呢?
这里我觉得yishang44这里解释的挺好,放上他计算的链接:
dxf中凸度的计算_yishang44的博客-CSDN博客_dxf凸度
为了防止他博客丢失,我在这里抛转做一些解释和说明吧。前面说到CAD里的说法是:凸度是四分之一圆弧段角的切线,这里用的是yishang44的图。
如果A1,A2为两个角点,那么四分之一圆弧角为图中,为圆周角,的圆心角,很显然。则A1,A2两个角点的凸度为。那现在
已知:角点A1,A2的坐标,
求:圆心、半径
这里用的方法是旋转变换公式来的,以A1,A2的中点A0为旋转中心,(r-H)为半径的点B进行顺时针旋转90°来得到圆心O,x0,y0为A0坐标,x,y为B坐标,其中B坐标可以根据向量公式来得到,其中
旋转公式为:
这里的角度为90°,则公式变为:
算得圆心坐标为:
注意事项:(1)如果用线段和圆弧元素来表示多段线,需要注意排序问题和数量问题;
(2)有的时候会判断多段线是否封闭,要看70后面的数值,如果是0则不封闭,为0是封闭的。
暂时先写这么多。。。。
参考文献:(1)CAD help文件
(2)dxf中凸度的计算_yishang44的博客-CSDN博客_dxf凸度
CAD中的dxf文件解析(三):多段线篇相关推荐
- CAD中的dxf文件解析(二):dxflib的使用
1.前言 上一篇中对dxf文件及文件中常见的需要解析的直线,圆,圆弧,椭圆,多段线的说明,对dxf文件有了初步的了解,并做好了下载dxflib,dxf帮助文档的准备(没有准备的可以回到上一篇). CA ...
- 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文件的终极绝招
经常会有朋友会问到这个问题,今天来解答一下,希望对大家有帮助.老鸟可以绕道,喜欢喷的请口下留情,谢谢! 年后东莞大朗一线切割操作师傅在微信上说,对我们这个机床文件无线传输装置很感兴趣,想了过来了解一下 ...
最新文章
- matlab 信号的原子产生,MATLAB随机产生原子结构代码
- Android中文API (60) —— DatePicker.OnDateChangedListener
- 关于msi格式的程序包的安装
- flask-sqlalchemy 数据基本操作--实例
- 擦地机器人排行榜_擦地机器人品牌排行榜来了,你想了解的都在这里
- Java Web 开发的目录结构
- 如果想成为数据科学家,请学习这3种语言
- hosts 文件目录
- Linux学习之十一、环境变量的功能
- 一年365天,把1.0作为每天的能力值基础,每天原地踏步 则能力值为1.0,如果每天努力一点点则能力值提高1%,每天再努力一点则能力值提高2%,那一年后,这3种行为收获的成果相差多少呢?
- nuScenes 数据集(CVPR 2020)
- 中国最大在线保健品供应商“健康中国”停业
- nuxt 设置路由的meta属性,nuxt 怎么设置路由的meta,nuxt 怎么设置router的meta
- 如何证明函数有界_科技界正在抓住机会来证明不平等
- 【access control】常用访问控制模型比较
- 小学数学测试软件报告,2017年小学数学期末考试质量分析报告
- 计算机网络 课程复习大纲
- VM10安装ubuntu16.04
- Report for 今日の写真.
- Blender建模模块:快速建一棵枯树