AutoCAD DXF#
参考
- 类别:
导入 - 导出
- 菜单:
导入#
DXF层被反映为Blender组。这个导入器使用一个通用的DXF库,叫做 "dxfgrabber"。
DXF类型映射#
为了尽可能做到无损,导入器旨在将尽可能多的DXF类型映射到Blender的曲线上。
DXF 到曲线#
LINE
作为POLYLINE
曲线(可选择合并连接线)。(LW)POLYLINE
,(LW)POLYGON
asPOLYLINE
curve if they have no bulges else asBEZIER
curve.ARC
、CIRCLE
和ELLIPSE
作为BEZIER
曲线。HELIX
(3D) 作为BEZIER
曲线。
DXF到网格#
MESH
被映射到一个带有细分曲面修改器的网格对象,包括边缘折痕。POLYFACE
和POLYMESH
被导入到网格对象。3DFACE
、SOLID
、POINT
被导入到每个层的一个组合网格对象中,称为layername_3Dfaces
。
丢失 DXF 类型#
填充(Hatches)
引线
属性#
合并选项#
- 块作为 (Blocks As)
DXF块可以作为链接对象或组实例被导入。链接对象对DXF子块(块中的块)使用父子关系。
- 父块到边界框 (Parent Blocks to Bounding Boxes)
在区块周围画一个边界框。
- 合并对象 (Merged Objects)
由于Blender(v2.71)在添加对象方面相当缓慢,用户可能想把类似的DXF几何图形合并到一个对象上。
- 按层
Produces one object per DXF layer. If a layer contains multiple data types that cannot be merged will still be individual objects.
- 按层和DXF类型 (By Layer and DXF Type)
第二个不仅区分Blender的数据类型,也区分DXF类型,如
LWPOLYLINE
和POLYLINE
。- 按层和封闭无洞多边形 (By Layer and Closed No-bulge Polygons)
没有凸起的封闭多线,也就是没有弯曲的边缘,可以合并为一个单一的网格。当DXF折线有一个挤压和/或仰角属性时,这是有意义的,这基本上描述了一个位置/旋转/比例转换。如果选择这个合并选项,线的厚度设置将被忽略/禁用。
- 按层和DXF类型以及块 (By Layer and DXF-Type and Blocks)
对于DXF文件中的一个块被多次引用,这个选项允许用一个实例面的对象多次插入同一个块,而不是在每次需要插入块的时候用一个对象。不幸的是,这只适用于统一比例的图块插入。非统一比例的块插入是按照 Blocks As 中的定义导入的。
- 将
线
实体合并为多边形 (CombineLINE
Entities to Polygons) DXF中的分离线可能会被合并到一个连续的Blender多边形曲线。类似于 移除双线 ,但用于曲线。
线的厚度和宽度 (Line Thickness and Width)#
- 代表线的厚度/宽度 (Represent Line Thickness/Width)
DXF线条属性 厚度 和 宽度 分别对Z和X/Y方向的线条有影响。例如,一条直线可以通过其属性变成一个立方体。因此,在Blender中,这些属性用曲线挤压、斜面和锥度对象来表示。
- 按属性合并 (Merge by Attributes)
如果同时激活了 合并对象 和 代表线条厚度/宽度 ,则需要扩展对象合并,以分离所有不同厚度和宽度的线条。通过 按属性合并 ,这种分离选项也是可用的,而不需要实际表示线的厚度和宽度。
可选对象 (Optional Objects)#
- 导入
文本
(Impot Text) (
TEXT
,MTEXT
)- 导入
灯光
(Import Lights) 包括对AutoCAD颜色的支持。
- 导出
ACIS
实体 (Export ACIS Entities) 导出NURBS三维几何(
BODY
,REGION
,PLANESURFACE
,SURFACE
,3DSOLID
)到ACIS-Sat文件,因为这是AutoCAD存储NURBS到DXF的格式。你将会收到关于存储的.sat ``/
.sab`` 文件数量的通知。
查看选项 (View Options)#
- 在大纲中显示组 (Display Groups in Outliner(s))
将大纲显示模式切换到
GROUPS
(DXF图层被映射到组)。- 将DXF文件导入新场景 (Import DXF File to a New Scene)
待补充。
- 将几何置于场景中心 (Center Geometry to Scene)
将导入的几何体集中到场景的中心;偏移信息作为一个自定义属性存储到场景中。
地理参考 (Georeferencing)#
重要的是。DXF文件不存储任何关于其坐标系统/球面投影的信息。最好的做法是知道你的特定DXF文件的坐标系,并在DXF导入器界面中输入这些信息,如下所示:
- Pyproj
安装:下载 (Windows, macOS) Pyproj并将其复制到你的
AppData/ApplicationSupport Folder/Blender/4.1/scripts/modules/.
如果你需要编译自己的二进制文件,请参考Blender Artists上的 这个帖子 。
Pyproj是对PROJ库的一个Python封装,PROJ库是一个著名的C库,用于不同坐标系之间的坐标转换。像PROJ这样的开源GIS库被许多机构直接或间接使用,因此可以认为是维护良好的。
如果Pyproj可用,DXF导入器会显示一个局部坐标系的选择,但让用户也可以输入一个自定义的EPSG/SRID代码。它还将SRID作为一个自定义属性存储到Blender场景中。如果一个场景已经有了这样的SRID属性,那么坐标将从你的DXF文件转换到目标坐标系,因此你 必须 为DXF文件指定一个SRID。如果没有SRID自定义属性,场景的SRID默认与DXF的SRID相同。
- 没有Pyproj
在Pyproj不可用的情况下,DXF导入器将只使用其内置的纬度/伦度到X/Y转换器。对于转换, "横向墨卡托" 投影被应用,输入一个纬/伦坐标作为投影的中心。纬/伦坐标被作为一个自定义属性添加到你的场景中。随后的导入将把任何纬度/伦度坐标转换为相同的地理参考。
重要提示:到目前为止,只支持 纬度/长度 到 X/Y 的转换。如果你有一个DXF文件,其欧几里得坐标指向另一个纬度/伦中心,则不支持转换。
- 选择SRID的经验法则
如果你的数据来自OpenStreetMap或一些类似的GIS服务网站,并通过QGIS或ArcGIS导出,那么坐标很可能是纬度/伦度,然后使用WGS84作为Pyproj的SRID,如果Pyproj不可用,则使用 "球面" 。对于其他DXF矢量地图,它们很可能使用 当地/局部 坐标系统。
用文本编辑器打开DXF(它有好几千行),看着一些坐标做一个有根据的猜测。DXF是用 "组代码" 工作的,这是Autodesk公司为 "键" 发明的一个名称,就像 键/值 对一样。X有组代码10,Y有20,Z有30。如果你发现一个模式,比如:
10, newline, whitespace, whitespace, NUMBER, newline, 20, newline, whitespace, whitespace, NUMBER, newline, 30, newline, whitespace, whitespace, NUMBER
那么
NUMBER
就很可能是你的坐标。你也许可以从坐标的格式和/或范围中看出它应该是哪个坐标系。
导出#
支持数据#
网格面:
POLYFACE
或3DFACE
网格边:
LINE
修改器(可选)
不支持的数据#
网格顶点:
POINT
曲线:
LINE
或POLYLINE
曲线 NURBS:
curved-POLYLINE
文本:
TEXT
或 (开发中:MTEXT
)相机:
POINT
、VIEW
、VPORT
或 (开发中:INSERT(ATTRIB+XDATA)
)灯光:
POINT
或 (开发中:INSERT(ATTRIB+XDATA)
)空物体:
POINT
或 (开发中:INSERT
)对象矩阵:挤压(
210-group
)、旋转、仰角三维视口:(开发中: VIEW`、
VPORT
)实例化点:auto-instanced or (wip:
INSERT
)材质:
LAYER
、COLOR
和STYLE
属性组:
BLOCK
和INSERT
父子关系:
BLOCK
和INSERT
可见性状态:
LAYER_on
冻结状态:
LAYER_frozen
锁定的状态:
LAYER_locked
曲面
融球
骨架
晶格
IPO / 动画