AutoCAD DXF

参考

类别

导入 - 导出

菜单

文件 ‣ 导入/导出 ‣ AutoCAD DXF

导入

DXF层被反映为Blender组。这个导入器使用一个通用的DXF库,叫做 "dxfgrabber"。

DXF类型映射

为了尽可能做到无损,导入器旨在将尽可能多的DXF类型映射到Blender的曲线上。

DXF 到曲线

  • LINE 作为 POLYLINE 曲线(可选择合并连接线)。

  • (LW)POLYLINE, (LW)POLYGON as POLYLINE curve if they have no bulges else as BEZIER curve.

  • ARCs, CIRCLEs 和 ELLIPSEs 作为 BEZIER 曲线。

  • HELIXes (3D) 为 BEZIER 曲线。

DXF到网格

  • MESH 被映射到一个带有细分曲面修改器的网格对象,包括边缘折痕。

  • POLYFACEs 和 POLYMESHes 被导入到网格对象。

  • 3DFACE s, SOLID s, POINT s被导入到每个层的一个组合网格对象中,称为`layername_3Dfaces'。

丢失 DXF 类型

  • 孵化器

  • 引线

属性

合并选项

块作为

DXF块可以作为链接对象或组实例被导入。链接对象对DXF子块(块中的块)使用亲子关系。

父块到边界框

在区块周围画一个边界框。

合并对象

由于Blender(v2.71)在添加对象方面相当缓慢,用户可能想把类似的DXF几何图形合并到一个对象上。

按层

每层产生一个对象;如果一层上有网格、曲线、灯管、文本数据,则每层和每个Blender对象产生一个对象。

按图层和DXF类型

第二个不仅区分Blender的数据类型,也区分DXF类型,如 LWPOLYLINEPOLYLINE

按图层和封闭的无漏洞多边形计算

没有凸起的封闭多线,也就是没有弯曲的边缘,可以合并为一个单一的网格。当DXF折线有一个挤压和/或仰角属性时,这是有意义的,这基本上描述了一个位置/旋转/比例转换。如果选择这个合并选项,线的厚度设置将被忽略/禁用。

按图层和DXF-类型和区块分类

对于DXF文件中的一个块被多次引用,这个选项允许用一个实例面的对象多次插入同一个块,而不是在每次需要插入块的时候用一个对象。不幸的是,这只适用于统一比例的图块插入。非统一比例的块插入是按照 Blocks As 中的定义导入的。

线 的实体合并为多边形

DXF中的分离线可能会被合并到一个连续的Blender多边形曲线。类似于 移除双线 ,但用于曲线。

线条厚度和宽度

代表线的 厚度/宽度

DXF线条属性 厚度宽度 分别对Z和X/Y方向的线条有影响。例如,一条直线可以通过其属性变成一个立方体。因此,在Blender中,这些属性用曲线挤压、斜面和锥度对象来表示。

按属性合并

如果同时激活了 合并对象代表线条厚度/宽度 ,则需要扩展对象合并,以分离所有不同厚度和宽度的线条。通过 按属性合并 ,这种分离选项也是可用的,而不需要实际表示线的厚度和宽度。

可选对象

导入 文本

(TEXT, MTEXT)

导入 灯光

包括对AutoCAD颜色的支持。

出口 ACIS 实体

导出NURBS三维几何( BODY , REGION , PLANESURFACE , SURFACE , 3DSOLID )到ACIS-Sat文件,因为这是AutoCAD存储NURBS到DXF的格式。你将会收到关于存储的 .sat ``/ .sab`` 文件数量的通知。

查看选项

Display Groups in Outliner(s)

将大纲显示模式切换到 GROUPS (DXF图层被映射到组)。

将DXF文件导入新场景

待补充。

将几何图形放到场景中央

将导入的几何体集中到场景的中心;偏移信息作为一个自定义属性存储到场景中。

地理参考

重要的是。DXF文件不存储任何关于其坐标系统/球面投影的信息。最好的做法是知道你的特定DXF文件的坐标系,并在DXF导入器界面中输入这些信息,如下所示。

Pyproj

Installation: Download (Windows, macOS) Pyproj and copy it to your

AppData/ApplicationSupport Folder/Blender/2.93/scripts/modules/.

In case you need to compile your own binary refer to this post on Blender Artists.

Pyproj is a Python wrapper to the PROJ library, a well known C library used to convert coordinates between different coordinate systems. Open source GIS libraries such as PROJ are used directly or indirectly by many authorities and therefore can be considered well maintained.

如果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 就很可能是你的坐标。你也许可以从坐标的格式和/或范围中看出它应该是哪个坐标系。

导出

支持数据

  • 网格面: POLYFACE3DFACE

  • 风格边: 线

  • 修改器(设选)

不支持的数据

  • 网格点: POINT

  • 曲线: LINEs or POLYLINE

  • 曲线 NURBS: curved-POLYLINE

  • 文本: TEXT 或 (wip: MTEXT)

  • Camera: POINT or VIEW or VPORT or (wip: INSERT(ATTRIB+XDATA))

  • Light: POINT or (wip: INSERT(ATTRIB+XDATA))

  • 空物体: POINT 或 (wip: INSERT)

  • 对象矩阵:挤压( 210-组 )、旋转、仰角

  • 三维视口: (wip: VIEW`, VPORT`)

  • 实例化点:auto-instanced or (wip: INSERT)

  • 实例化框架:auto-instanced or (wip: INSERT)

  • 实例化组:auto-instanced or (wip: INSERT)

  • 材质: LAYER, COLORSTYLE 属性

  • 组:BLOCKINSERT

  • 养育孩子。 BLOCKINSERT

  • 可见性 status: LAYER_on

  • 冻结状态: LAYER_frozen

  • 锁定的状态。 LAYER_locked

  • 曲面

  • 融球

  • 骨架

  • 晶格

  • IPO / 动画