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文件解析(三):多段线篇相关推荐

  1. CAD中的dxf文件解析(二):dxflib的使用

    1.前言 上一篇中对dxf文件及文件中常见的需要解析的直线,圆,圆弧,椭圆,多段线的说明,对dxf文件有了初步的了解,并做好了下载dxflib,dxf帮助文档的准备(没有准备的可以回到上一篇). CA ...

  2. vb如何实现在cad中打开dxf文件_CDR转CAD方法

    在CDR文档中又是如何将文档转换为CAD格式的呢?其实只要简单几步就能搞定,下面系统天地小编就来给大家分享cdr(CorelDRAW)文档转换为CAD格式的方法,供大家参考. cdr文档转换为CAD格 ...

  3. python读取dxf文件_GitHub - XUIgit/dxfReader: dxf文件解析 用来提取CAD中的dxf文件格式所保存的图像信息...

    dxfReader 介绍 用来解析,提取CAD中的dxf文件格式所保存的图像信息 环境 python36(在python35中会失效, 其他环境未测试) 软件架构 主要采用简单工厂模式: Sectio ...

  4. asp.net中各种类型文件解析 收藏

    asp.net中各种类型文件解析 收藏 ASP.NET的页面文件是*.aspx,每个页面对应一个*.resx资源文件和一个*.aspx.cs的代码文件. *.resx是资源文件.每个页面都有一个资源文 ...

  5. dxf文件解析,g代码解析,图片解析C#工程文件

    dxf文件解析,g代码解析,图片解析C#工程文件 1.解析完成的图形坐标自动保存,通过通信接口直接下发即可 2.可用于激光切割机,打印机,打码机,巡边机,点胶机等运动控制系统 ID:693000659 ...

  6. dxf文件解析,g代码解析,图片解析C#工程文件 可用于激光切割机,打印机,打码机,巡边机,点胶机等运动控制系统

    dxf文件解析,g代码解析,图片解析C#工程文件 1.解析完成的图形坐标自动保存,通过通信接口直接下发即可 2.可用于激光切割机,打印机,打码机,巡边机,点胶机等运动控制系统 ID:483000659 ...

  7. 关于PADS 9.5导入CAD图(dxf文件)的说明

    关于PADS 9.5导入dxf文件的说明 一.前言 在使用PADS layout画PCB时,需要将公司LOGO图案放到PCB面板上,但是PADS不支持直接将图片格式(jpg,png,bmp等)的文件导 ...

  8. 汽车车牌识别系统(六)-- 项目中的各个文件解析

    汽车车牌识别系统上传至CSDN之后,好多小伙伴都对项目中的各个文件存在疑问,该篇文章主要是为了解析项目中的各个文件.如果对项目中的各个文件已经很熟悉的小伙伴,请自觉略过. - LPR:项目名称- ch ...

  9. .dat数据文件怎么打开_CAXA线切割版,打开CAD的DWG, DXF文件的终极绝招

    经常会有朋友会问到这个问题,今天来解答一下,希望对大家有帮助.老鸟可以绕道,喜欢喷的请口下留情,谢谢! 年后东莞大朗一线切割操作师傅在微信上说,对我们这个机床文件无线传输装置很感兴趣,想了过来了解一下 ...

最新文章

  1. matlab 信号的原子产生,MATLAB随机产生原子结构代码
  2. Android中文API (60) —— DatePicker.OnDateChangedListener
  3. 关于msi格式的程序包的安装
  4. flask-sqlalchemy 数据基本操作--实例
  5. 擦地机器人排行榜_擦地机器人品牌排行榜来了,你想了解的都在这里
  6. Java Web 开发的目录结构
  7. 如果想成为数据科学家,请学习这3种语言
  8. hosts 文件目录
  9. Linux学习之十一、环境变量的功能
  10. 一年365天,把1.0作为每天的能力值基础,每天原地踏步 则能力值为1.0,如果每天努力一点点则能力值提高1%,每天再努力一点则能力值提高2%,那一年后,这3种行为收获的成果相差多少呢?
  11. nuScenes 数据集(CVPR 2020)
  12. 中国最大在线保健品供应商“健康中国”停业
  13. nuxt 设置路由的meta属性,nuxt 怎么设置路由的meta,nuxt 怎么设置router的meta
  14. 如何证明函数有界_科技界正在抓住机会来证明不平等
  15. 【access control】常用访问控制模型比较
  16. 小学数学测试软件报告,2017年小学数学期末考试质量分析报告
  17. 计算机网络 课程复习大纲
  18. VM10安装ubuntu16.04
  19. Report for 今日の写真.
  20. Blender建模模块:快速建一棵枯树

热门文章

  1. 用计算机处理信息 说课,高中信息技术说课稿:《数据处理》优秀说课稿范例...
  2. Android Studio实现一个垃圾分类系统(Kotlin版本)
  3. Accept、Content-Type、User-Agent、Cookie、Set-Cookie的含义
  4. 内网穿透的实现和原理解析
  5. python3 zipfile_Python之zipfile模块的使用
  6. Netty基础,Netty实现群聊系统
  7. 论企业销售管理的重要性
  8. ios混合音频、设置渐变音量、画外音音量
  9. Semantic UI 之 网格 grid
  10. 钻石继承和虚钻石继承的对象模型