【发布时间】:2019-01-16 03:13:51
【问题描述】:
我需要一个尽可能干净的示例 DXF 代码来填充坐标以绘制 3D 多段线。我已经能够用简单的线条做到这一点,但我正在努力用 3D 折线做到这一点。我已经尝试了几次,但没有奏效。我不在这个领域工作,我需要这个来完成一项科学研究。这个想法是从 GPS 坐标生成图形。有人可以帮我吗?
【问题讨论】:
我需要一个尽可能干净的示例 DXF 代码来填充坐标以绘制 3D 多段线。我已经能够用简单的线条做到这一点,但我正在努力用 3D 折线做到这一点。我已经尝试了几次,但没有奏效。我不在这个领域工作,我需要这个来完成一项科学研究。这个想法是从 GPS 坐标生成图形。有人可以帮我吗?
【问题讨论】:
为了简单起见,创建一个最小的 DXF R12 文件,DXF R12 的优点是简约的整体结构和 你不需要把手。只有实体部分是必需的:
重要提示:像 ""
0
SECTION
2
ENTITIES
0 <<< 1. POLYLINE entity starts here
POLYLINE
...
0
VERTEX
...
0
VERTEX
...
0
SEQEND
0 <<< 2. POLYLINE entity starts here
POLYLINE
...
0
VERTEX
...
0
VERTEX
...
0
SEQEND
0 <<< end of section marker
ENDSEC
0 <<< end of file marker
EOF
POLYLINE 实体是需要多个实体的两个实体之一,INSERT 实体是另一个。
0 <<< POLYLINE entity
POLYLINE
8 <<< layer group code required
0 <<< layer '0'
62 <<< color group code not required
1 <<< Color number
66 <<< entities follow flag
1 <<< always 1, POLYLINE without vertices is pointless
70 <<< flags, see reference
8 <<< this is a 3D polyline
0 <<< 1. VERTEX entity
VERTEX
8 <<< layer group code required
0 <<< ALWAYS the same as POLYLINE layer!
70 <<< flags
32 <<< 3D polyline vertex
10 <<< x-coord group code
4.0 <<< x-coord value
20 <<< y-coord group code
3.0 <<< y-coord value
30 <<< z-coord group code
2.0 <<< z-coord value
0 <<< 2. VERTEX entity
VERTEX
8
0
70
32
10
8.0
20
5.0
30
0.0
0 <<< 3. VERTEX entity
VERTEX
8
0
70
32
10
2.0
20
4.0
30
9.0
0 <<< required SEQEND entity
SEQEND
折线的 DXF 参考:http://help.autodesk.com/view/OARX/2018/ENU/?guid=GUID-ABF6B778-BE20-4B49-9B58-A94E64CEFFF3
VERTEX 的 DXF 参考:http://help.autodesk.com/view/OARX/2018/ENU/?guid=GUID-0741E831-599E-4CBF-91E1-8ADBCFD6556D
如果你会用 Python,看看我的 ezdxf 包:https://ezdxf.mozman.at/
使用 r12writer 上下文管理器创建一个最小的 DXF R12 文件:
from ezdxf.r12writer import r12writer
with r12writer("YourFile.dxf") as dxf:
dxf.add_polyline([(4, 3, 2), (8, 5, 0), (2, 4, 9)])
【讨论】: