标签:bulge 凸度 条目 LWPOLYLINE 顶点 DXF 默认值
最近解析CAD的DXF文件时需要对合并后的多线段LWPOLYLINE组码进行解析,网上搜集了些相关资料,借鉴并摘录,同时记录下链接,以防重新搜索。
1.“已知圆弧的起点、端点和凸度,计算圆心”--
起点(x1,y1),端点(x2,y2);
b= 0.5*(1/bulge-bulge); --bulge为凸度
圆心x = 0.5*((x1+x2)-(y2-y1)*b);
圆心y = 0.5*((y1+y2)+(x2-x1)*b);
(由起点或端点,和圆心可计算出圆半径)
结论:http://blog.sina.com.cn/s/blog_66349acf0102vivw.html
推导过程:https://blog.csdn.net/jiangyb999/article/details/89366912
解析CAD,通过凸度值绘制弧线:https://zhuanlan.zhihu.com/p/348798153
凸度--CAD多段线中的弧定义:https://blog.csdn.net/codedecipher/article/details/103014471
AutoCAD 凸度(bulge)的概念及使用WPF函数画图https://www.cnblogs.com/yuanchenhui/p/autocad_bulge.html
2.凸度定义:
①凸度是圆弧圆心角的四分之一的正切
bulge=h/s=tan(2α/4) --(h为弧的弓高,s为弦长的一半,2α表示圆心角)
②凸度等于圆弧的弓高和圆弧的前进距离的比,即凸度=2H/L,H为弓高,L为前进的长度,也即弦长。bulge=2H/L=tan(β)=tan(α/2)
③凸度为0或无,表示直线;
④凸度的正负表示圆弧的方向,
bulge > 0 时:代表起始点沿逆时针转到终止点,角度是逐渐变大的;
bulge < 0 时:代表起始点沿顺时针转到终止点,角度是逐渐变小的。
3.DXF中对LWPOLYLINE的解析参考:
优化多段线组码 | |
---|---|
组码 | 说明 |
100 | 子类标记 (AcDbPolyline) |
90 | 顶点数 |
70 | 多段线标志(按位编码);默认值为 0: |
43 | 固定宽度(可选;默认值 = 0)。如果设置为可变宽度(代码 40 和/或 41),则不使用 |
38 | 标高(可选;默认值 = 0) |
39 | 厚度(可选;默认值 = 0) |
10 | 顶点坐标(在 OCS 中),多个条目;每个顶点一个条目 |
20 | DXF:顶点坐标的 Y 值(在 OCS 中),多个条目;每个顶点一个条目 |
40 | 起点宽度(多个条目;每个顶点一个条目)(可选;默认值 = 0;多个条目)。如果设置为固定宽度(代码 43),则不使用 |
41 | 端点宽度(多个条目;每个顶点一个条目)(可选;默认值 = 0;多个条目)。如果设置为固定宽度(代码 43),则不使用 |
42 | 凸度(多个条目;每个顶点一个条目)(可选;默认值 = 0) |
210 | 拉伸方向(可选;默认值 = 0, 0, 1) |
220, 230 | DXF:拉伸方向的 Y 值和 Z 值(可选) |
4.附一段弧和直线合并形成的多段线组码实例:
LWPOLYLINE
5
2E0B0
330
1F
100
AcDbEntity
8
0
100
AcDbPolyline
90
4
70
1
43
0.0
10
411.0409991769569
20
533.2047196659034
42
-0.1846606338755925
10
911.0409991769484
20
533.2047196659033
10
911.0409991769484
20
233.2047196659017
10
411.0409991769522
20
233.2047196659019
42
-0.2679491924311228
0
VIEWPORT
感谢万能的百度和无私贡献的大佬们!
标签:bulge,凸度,条目,LWPOLYLINE,顶点,DXF,默认值 来源: https://blog.csdn.net/oneingdust/article/details/118811349
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。