AutoCAD DXF
参考
类别:
导入 - 导出
菜单:
文件 ‣ 导入/导出 ‣ AutoCAD DXF (.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 中的定义导入的。
将 线
实体合并为多边形 (Combine LINE
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 / 动画