FME与CAD博文集锦(一).pdf_第1页
FME与CAD博文集锦(一).pdf_第2页
FME与CAD博文集锦(一).pdf_第3页
FME与CAD博文集锦(一).pdf_第4页
FME与CAD博文集锦(一).pdf_第5页
已阅读5页,还剩116页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

FME 与与 CAD 博文集锦博文集锦 一 一 北京世纪安图数码科技发展有限责任公司北京世纪安图数码科技发展有限责任公司 20142014 年年 3 3 月月 编编 者者 语语 做这个的初衷有几方面的原因 一方面是考虑现有博客中缺少搜索功能 有时候搜索不太方便 第二个考虑是想把截止到目前为止的一些资料整理成成果 第三个考虑是为了让大家线下有更多的学习资料参考 博客所有的文章汇集了安图 FME 小组 全国各地 FME 爱好者的经验 感谢各位的付出 希望以后大家能够分享更多的经验 让更多的人爱上 FME 北京世纪安图数码科技发展有限责任公司 FME 全体小组成员 2014 年 3 月 目录目录 DWG 中注记平移问题 1 认识 DWG 文件中的隐藏要素以及在 FME 中的过滤处理 3 CAD 中布局空间数据的读写 5 在 FME 中读取 Dwg 格式数据的探究 12 如何读取 DWG 布局空间中的信息 20 FME 对 CAD 中组的处理 22 如何运用 Autocad Map 3D Object Data 读模块读取数据 26 关于 CAD 中多行文本内容的修改 42 Bentley MicroStation Design V8 格式的参数设置问题 46 如何使用 AutoCAD Map 3D Object Data 读模块 52 CAD 转 CAD 注意事项 67 把数据写入 DGN 的几个注意问题 69 FME 中文本的注记对齐方式问题 76 DNG V8 查错的一个示例 以文本为例 81 关于 Bentley MicroStation Design V8 格式中的 tag 的处理 85 FME 格式转换学习笔记 扩展管理让 CAD 支持更多格式 91 FME 对 CAD 扩展属性的读写 97 FME 格式转换学习笔记之一 CAD 的数据分析及 FME 对 CAD 数据的转换 100 南方 CASS 格式 DWG 的读取 111 FME 转换 V8 数据相关要点 116 1 DWG 中注记平移问题 2014 03 20 08 45 47 分类 CAD 专题 举报 字号 订阅 作者 一辉 DWG 中注记的平移问题 以前也曾经有用户提到过 最近在处理数据的过程再 次遇到 于是整理出来与大家分享 数据是一个 CAD 文件包含两个 polygon 要素和两个注记要素如图示 由于注记和 polygon 要素有压盖 所以我想将注记向右平移 4 个单位的距离 我首先想到了 offseter 这个用来做平移的转换器 并做了测试模板 只对注记进行 4 个单位的平移但发现结果并未发生任何改变 通过查找 CAD 的帮助文件得知控制 CAD 注记位置的是一组叫做 autocad alignment x autocad alignment y autocad alignment z 的属性 要改变他们的注记就需要改变这个属性值 于是解决方法就出来了 只需要两个 2 转换器 AttributeExposer 和 AttributeCreator 前面暴漏 autocad alignment x 属性值 后面将该属性值加 4 即可 详见模板 注意模板是 2013sp4 版本 另外还有一种方式来解决这个问题 使用 RealDWG 的写模块 写入 CAD 数据 这种方式可以直接使用 offsetter 来直接进行平移 但具体和 DWG 的写模块有 任何区别 会不会在以后的使用过程中遇到兼容性问题 还有待测试 3 认识DWG文件中的隐藏要素以及在FME中的过 滤处理 2013 12 30 09 39 14 分类 CAD 专题 举报 字号 订阅 作者 小新 最近在处理 DWG 文件时 发现在 AutoCAD 中打开文件 图面很整洁 但是用 FME 打开时 出现很多 CAD 中环境中看不到的要素 刚开始的时候一度认为是 由于数据底层存储方式导致的幽灵元素 通过与数据生产单位交流后 发现在数据生产时 将某些要素设置了隐藏 这样 再 AutoCAD 中打开时默认不会显示隐藏的要素 下面通过同一幅图在 CAD 中打开和 FME 中打开时的差异来认识隐藏要素 1 CAD 中看到的情况中看到的情况 2 FME 中看到的情况中看到的情况 4 3 隐藏要素的过滤隐藏要素的过滤 FME 在读取 DWG 文件时 默认是把隐藏和未隐藏后的要素全部读取的 而我 们在数据处理过程中 如入库操作 通常是不需要隐藏要素的 因此 需要对这 些要素进行过滤处理 通过在 help 文档 找到与 CAD 有关的格式属性 发现可以通过 autocad entity visibility 这个格式属性判断要素是否为隐藏 在数据处理过程中 则通过暴露该属性 设置满足 autocad entity visibility visible 的要素进行下一步处理 则可过滤掉隐藏要 素 5 CAD 中布局空间数据的读写 2013 09 26 09 21 58 分类 CAD 专题 举报 字号 订阅 作者 知音琴 最近 各种数据入库的事还比较多 最多的呢也就是就是 CAD 数据的入库 工作 大家都知道 CAD 是在建筑 机械 规划方面应用得相当多 他们在出图 的时候都要设计布局空间来输出 于是在转换的过程中 要是布局能跟着转换那 就好了 出图的时候就不用重新再布局了 那这次的目的就是探讨能否完整读取布局空间中的信息 如果把数据入库到 GDB 格式之后 出库的时候能否把属于布局空间中的信息写入到布局空间中 如何用 FME 读取布局空间的信息 一 首先 用 FME Universal Viewer 查看原数据查看布局空间的数据特 性 如果布局空间中有块或组在参数中设置选中 Expand Blocks into Entities Read Group Read Paper Space 6 这样设置之后 点击确定 7 二 下面是以一个布局空间数据为例 读取到布局空间的信息如上图所示 那这样也就表明布局空间的数据是可以读取的 而且就用这种简单设置参数 的方式 于是我们到 FME Workbench 中进行转换 打开 FMEWorkbench 新建工作空间 添加读模块如下 设置同上的模 块参数 读模块的等多参数也可以在这里设置 8 这样 我们就把模型空间和布局空间里的数据合并在同一空间下了 三 然后 添加 GeometryFilter 转换器过滤点线面注记等要素 分别输出到 GDB 格式下的 Point poliyline polygon annotation 几何类型 添加一个写模块 9 四 再添加四个要素类即可 如下图所示 如何写出布局信息 研究布局空间信息与模型空间数据有什么区别 我从从他们的属性开始着手 可是当我发现区别他们的属性是 autocad space 然后我就打开帮助文档搜索 space 结果如下 10 红色矩形框内是是对 autocad space 属性的描述 从描述中我们可以看到 这个属性只能读去两种空间的数据 不能写成两种空间的数据 于是我知道 我想给 autocad space 赋这两个值的时候 发现输出结果的属性还是只有一个 就是 model space 所以 因为暂时的缺陷 FME 只能将布局空间的数据读取 为 然后转换为模式空间的数据进行写出 同样 首先添加读模块 读取 GDB 数据集 再添加写模块直接连接转换就是了 11 不过出库的数据全是模型空间里面的数据格式 不能写到布局空间里面 12 在 FME 中读取 Dwg 格式数据的探究 2013 09 16 09 17 37 分类 CAD 专题 举报 字号 订阅 作者 琴知音 作为初来乍到的我 对 FME 的了解还不是很深入 于是我仅把 FME 各个模 块的功能及应用做一些简单介绍 以及对读模块参数的理解做一个总结吧 FME 是可以对空间和非空间数据进行相互转换的 支持海量数据的 可批 量处理的 集合 ArcGIS 数据分析功能的 是一款强大的数据转换软件 解决各 个行业之间的数据衔接问题 应用领域非常广泛 常应用于国土 资源 建筑 规划 机械 信息等行业部门 对于 FME 来说 读模块的使用是最频繁也是最多的 因为我们首先要将数 据进行读取和查看才能够知道数据的结构 格式特点和图形内容 然后才会选择 应用 FME 的 400 多个转换器进行数据结构和内容的转换 然而 Autodesk AutoCAD DWG DXF 格式数据时公认广泛应用的数据 所以对数据参数的理解 是很有必要的 通过在 FME Universal Viewer 中打开 dwg 数据 然后点击 Parameters 设置各个参数来理解 13 在读模块的参数设置里对 dwg 格式数据的读取方式进行控制 以上设置表示 我仅通过数据的几何类型读取个数据图层 将块类型数据打散 并融合数据颜色 这是比较常用的几个选项 下面是对每个参数的理解概要 1 Group entity by 框 Layer name 表示对 dwg 文件的图层进行分组读取 Geometry 表示通过几何类型进行读取 14 Attribute Schema 表示按源数据集定义的图层模式生成 图层将用于创建 以图层名称分组的FME要素类 但是 所有实体的属性将属于一个图层将 被累计和添加到该层 FME 要素类中 2 Expand Block into Entities 框表示打散实体 并返回一些块的组成部 分 将输出每个组成 AutoCAD 块实体定义的组成部分 原始插入不会输 出 块参照的全图形通过 FME 的表现结果 会遗失块的精确插入点 每个 块要素都会给定一个属性 autocad block number 其设置相同的值保证 每个块要素的组成部分 允许任意块的相互嵌套 但 是 autocad block number 属性只会更新每个块的最外层部分 默认情 况下所有块成员都会与原始块在同一图层 Use block feature type for component 表示当读模块解析块时 它会为每 个定义块的 AutoCAD 实体输出一个要素 当选择时 该参数表明所有的块记 忆将在原始块中的相同层的要素类上如果没有选择 块记忆将出现在它们各 自的要素类层上 Use block layer information for component 表示当读模块解析块时 它会为每个定义块 的 AutoCAD 实体输出一个要素 当选择时 该指令表明所有的块记忆将在原始块中的相同 层的要素类上 如果不选择 块记忆将带有与之相关的层信息 Store insert Location on component 表示当解析 或打散 插入实体时 读模块会将插 入点位置增加到块组件实体的属性中 3 Entity options 框下 Resolve Entity Color 是将融合实体的颜色为一种 或者直接融合为图层的颜色 Read Visible Attributes as Text Entity 表示将所有可见的属性转化为文本型的要素 Explode MText Entities 指会将 MText 实体爆炸为单个的 Text 实体 Read Polylines as 2 5D 指将等高线的高程值作为 Z 坐标 进行 2 5 维度的显示 Preserve Complex Hatches and MPolygones 是指保护这两个复杂的属性 选择后将 会把这些实体绑定在一起 作为套装的环 Read Groups 是指将读取 AutoCAD 的组数据 Evaluation Multi Line Entity Geometry决定是否评估Multi Line 实体几何类型的数据 15 4 Paper Space 框下的 Read Paper Space 表示 FME 将在 PaperSpace 下读取 实体 默认的还是在 Modle Space 下读取实体 5 User Coordinator System 框下的 Ignore UCS 表示读数据文件时不考虑他们 的坐标系统 6 Apply World File 是针对 ESRI World file wld 要在数据集指定文件下决 定要素的坐标系统 7 Schema Attributes 框下的 Additional Attribute to Expose 是指将数据的格式 属性作为动态的属性显示在工作空间当中 8 Use Search Envelope 表示你定义一个范围来限定读取实体 符合的才读取 不符合的就舍去 9 Clip to Search Envelope 表示将指定范围的部分切割掉 10 Store Layer Properties On Feature 就是指将层属性赋给要素 如 autocad layer linetype autocad layer color and autocad layer lineweight 等格式 属性 General Parameters 是描述要素类的名称 允许的几何类型 数据集 和数 据用户名 也可以通过属性值进行要素合并操作 User Attribute 是要素类的主要属性 即在原格式下用户对要素实体自定义 的属性值 Format Attributes 包括源数据格式属性 fme 格式属性 通过以上属性和参数我们可以了解数据在转换过程中的变化以便我们更好 的控制和管理各种转换过程和结果 16 这里我门将看到 dwg 数据包含的所有几何类型 在不知道数据到底是由哪些 几何类型决定的情况下 我们先全选中 然后再工作空间里面去检查数据 但是 最好还是先在 FME Universal Viewer 直接打开数据集查看它的几何类型到底有 哪些 然后再在 FME WorkBench 中打开进行转换 17 运行第一个几何类型的数据模块之后我们可以看到结果是没有一个要素 再 检查下一个 表示输出了 5410 个弧段到 shape 文件里 然后我们看一下原始图层数据 18 我尝试了一下将 cad 数据转换成 shape 格式 使用通用模板创建工作空间 可 以发现一个 cad 文件下有多个图层 属于文件型数据 且一个图层可包含多种 几何类型 如点 线 面 块 文本 立方体 椭圆等 所以需要用 geometryfilter 转换器将各图层根据各种要素类型分在 shape 格式下的不同类型要素类里面 点 线 面及空间属性表 即可完成转换 19 20 如何读取 DWG 布局空间中的信息 2013 08 14 09 10 48 分类 CAD 专题 举报 字号 订阅 作者 小新 在 AutoCAD 中制图 通常在模型空间中按照 1 1 比例绘制图形 在布局空间中 完成出图时的设置 关于布局空间的知识 相信各位做过生产的童鞋比我更熟悉 不清楚的话 在网上也可以搜到大量的信息 如百度文库里关于布局空间的资料 就很多 lm 0 od 0 fr top home 所以这里我也不多说了 本文只是说明在 FME 中如何读取布局空间中的信息 有时候做 DWG 数据的转 换 可能需要同时转换布局空间中的信息 就会显得非常有用 1 读取 读取 在 FME AutoCAD DWG 读模块中 有一个参数叫做 Read Paper Space 这个参数就是控制是否读取布局空间信息的 默认没有勾选 如果需要读取 则 打开读模块的参数设置框进行设置 如下图所示 21 这样 FME 的读模块就会把布局空间中的信息一并读取到工作空间中 2 区分 区分 如何区分模型空间和布局空间中的信息呢 由格式参数 autocad space 控制 该参数只有两个取值 model space 和 paper space 模型空间的要素 该值为 model space 布局空间的要素 该值 为 paper space 根据该参数则可以在工作空间中对要素进行区分 22 FME 对 CAD 中组的处理 2013 07 03 08 47 33 分类 CAD 专题 举报 字号 订阅 作者 小新 CAD 中除了常见的点 线 面 还有一些特殊的几何类型 如 CAD 中的块 组等 CAD 的块比较常见 最近在处理 CAD 数据的时候 遇到 CAD 中的组 那 么来看看 FME 对 CAD 组的处理能力吧 首先 通过帮助了解到如下信息 1 FME 中读取 CAD 数据时 可以通过格式属性 autocad entity 了解要 素的实体类型 对于组来说 autocad entity 值为 autocad group 2 在 FME 中 只支持对组类型的读取 不支持写出 3 组要素是一组没有几何实体的要素 前面两点还比较好理解 最后一点但看字面意思理解起来有点费解 下面通 过实际数据进行说明 1 首先在 Autocad 中打开原数据 在 CAD 中 选中一个组的数据 可以看出会选中组成该组的所有要素 且 在特性中该要素显示为组 23 2 在 FME 中加载该数据 通过 Autodesk AutoCAD DWG DXF 读模块打开一个还有组的 dwg 数据 在读模块参数中有个 Read Groups 的参数 选取该参数 选择合并输出 3 在工作空间中暴露 autocad entity 属性 并过滤出 autocad entity 为 autocad group 的要素 输出到 viewer 中查看 在 viewer 中 看不到几何图形 只能通过 选择非几何对象 进行选择查看 这里就可以理解上面的第 3 点 组要素是一组没有几何实体的要素 24 在 fme 中读到的组 并不是像再 CAD 中看到的一组实体要素 而是一个非 几何对象 那如何知道该每个组中有哪些要素呢 则需要通过 autocad entity handle 这个列表去获取 如下图所示 如在 4FEBB 这个组中 是由 4FEB6 4FEB7 4FEB8 4FEB9 4FEBA 这 5 个要素组成 通过该列表可以知道通过 FME 读取该文件时 把属于同一个 组的要素进行关联 有了上面的陈述 现在我要对这个包含组的 dwg 数据进行处理 由于 FME 不支持组的写出 处理要求则转换为对于同一个组的要素转为块后输出到目标 dwg 中 处理时的重点是找到属于同一个组的要素进行聚合并输出为块 模板如下 25 输出结果 26 如何运用 Autocad Map 3D Object Data 读 模块读取数据 2012 11 12 09 57 24 分类 CAD 专题 举报 字号 订阅 原文地址 e AutoCAD Map 3D Object Data Reader 整理 一珂 本文旨在说明 Autocad Map 3D Object Data Autocad 三维地图数据对象 读模块的操作方法 介绍介绍 目前如何读取 Autocad Map 3D Object Data 尚没有一个标准的处理办法 仍旧依赖于源数据的模型以及目标数据所要求的数据结构 通常来说如果源数据的模型与目标数据的数据结构真实有效的话 那么 AutoCAD 三维地图的数据对象也将更加逼真 数据对象把属性存储在数据表中 但对于数据结构的方法却特别自由 一些特定的空间要素 或实体 内的数据集 可以在任何数量的数据表 或根本没有 拥有任意数量的属性记录 因此 我们的方法是利用 FME 提供的大量读模块 让用户在 FME WorkBench 工作空间 中有更多的选择来设计工作空间 通过这些工作空间 来查看所需的数据模型 样本数据样本数据 接下来有一些示例的工作空间 这些工作空间的样本数据来自美国德克萨斯 州的地图 这幅地图包含州界 县界以及一些道路网 27 上图是样本数据 其中州界为黑色 县界为红色 道路为蓝色 参考坐标系 为 LL83 边界要素都存储在 Boundaries 边界 图层中 并与数据表 County 和 State 县和州 相关联 道路要素存储在 Roads 道路 图层中 道路网只有空间数据 没有属性 或数据对象表 源数据最重要的是所有的要素必须是线型要素 且两个县之间的边界 或县 与州之间的边界 是含有两条数据记录的单一要素 每一个县都有一条记录 或者州边界一条记录 县边界一条记录 28 如上图所示 是一个特写 箭头所指的曲线是一条有着两条记录的单一线形 在 country 数据表中有两条记录 一条记录属于 San Saba 县 另一条属于 Lampasas 县 操作模式操作模式 这三种不同的读取模式为 按实体分组 原关系 和 用数据对象分组 当源数据集添加到 Workspace 或 Viewer 时 在设置对话框中可以选择 操作模式 29 如上图所示 创建一个新的工作空间 点击设置按钮 弹出数据对象设置对 话框 上图所示 数据对象对话框 注意对话框上方三个不同模式的选型 显然 这些设置会直接影响新建工作空间的布局 所以一旦工作空间创建以 后 将不能对读取模式进行更改 或者是读取模式被添加进一个已存在的工作空 间后 就不能进行更改 按实体分组按实体分组 模式模式 按实体分组模式是在创建工作空间时 为数据集中的每一个数据图层进行分 类 每类要素的相关属性都以数据表的方式附加给这个要素 这是一种将数据写 入 Mif Mid 或者 Shape 等 GIS 数据格式的好方法 但这不利于保存原有数据的 结构 因此这种方法不能将数据重新写回到原有格式中 然而 由于对象数据格式有着巨大的灵活性 需要考虑如下情况 30 考虑 1 当每一个实体 要素 拥有一条以上的记录 特别是在一张表 中拥有一条以上的记录 需要创建一个列表 例如 以下是单个要素的同一张表中包含两条记录的情况 要素 数据表 字段 0 表 A 字段 A1 字段 A2 字段 A3 1 表 A 字段 A1 字段 A2 字段 A3 输出要素的模型中将包含一个列表属性 TableAData 0 FieldA1 TableAData 0 FieldA2 TableAData 0 FieldA3 TableAData 1 FieldA1 TableAData 1 FieldA2 TableAData 1 FieldA3 考虑 2 因为不同要素可能在不同的数据表中都有记录 源要素类型的 属性列表将包含所有可能的属性 因而变得冗余 如下所示 图层 要素 数据表 字段 图层 A 1 表 A 字段 A1 字段 A2 字 段 A3 图层 B 2 表 B 字段 B1 字段 B2 字 段 B3 源数据图层 A 的要素类型将包含如下属性 FieldA1 FieldA2 FieldA3 31 FieldB1 FieldB2 FieldB3 即 要素类型中的所有要素都将附加上所有可能的属性 不管其是否为空值 考虑 3 由于不同的数据表可能具有相同的字段名称 这里有一个选项 为所有的属性前置表名称来加以区分 如下所示 图层 要素 数据表 字段 图层 A 1 表 A 字段 1 字段 2 字段 3 图层 A 2 表 B 字段 1 字段 2 字段 3 前置选项将会确保无命名冲突字段 TableA Field1 TableA Field2 TableA Field3 TableB Field1 TableB Field2 TableB Field3 32 如上所示 设置对话框中的前置选项 在示范数据中 没有冲突的表名 但是该模式会同时具有州和县字段 虽然 并不是所有的要素都有州记录 且两县之间的边界线要素将会有一个存储两县 名称的属性表 正如所期望的一样 道路要素是一个要素类 但由于没有属性数据因此也没 有相关联的数据表 上图所示 工作空间的源模式 33 上图所示 在 FME Viewer 展示要素数据的结构和内容 上图所示 由于 shape 数据不接受列表结构的数据 最后工作空间还需要 利用 ListConcatenator 转换器将 FME 列表调整成以逗号隔开的单个属性 如果 州 县的边界不包含列表可绕过此步骤 在输出的 shape 数据集中 州 县的边界要素如上图所示 34 县与县之间的边界如图所示 注意此处州属性为空值 原关系原关系 模式模式 按原关系模式主要是将空间实体与数据库中的记录作为独立的要素 两者通 过一个属性标记相关联 这种模式为每个数据层提供一个要素类 为每一个对象 数据表又提供不同的要素类 实际上这是用户可以处理原始数据最理想的方式 尤其适用于将空间和属性 数据存放在单独表中的数据写入数据库中 这种模式类似于关系数据库 是一种 以主键进行关联的表格 因此称之为 原关系 模式 此模式也适用于将传统空 间要素与属性要素分开存储的数据写入到 CAD 格式中 这种模式不需要担心 按实体分组 模式中遇到的那些问题 因为一个要素的 多条记录会简单地处理成要素类数据库表中的多条记录 同样 每一张表生成一 个独立的要素类 因此不会存在模式冗长 字段冲突以及不同的表中存在同名字 段等情况 然而如果用户在工作空间中频繁将属性记录合并的要素中 这些问题 还是会重新出现 35 上图所示 将示范数据写入 oracle 数据库中 上图所示 使用 原关系 模式工作空间的初始状态 注意每一个图层 边界 道路 每一张表 CountyData StateData 都对应一个要素类 同时注意格 式的属性 autocad od entity key 它是空间数据和属性表之间的查询关键字 NB Layer0 是当前所有 AutoCAD 数据库的默认图层 36 上图所示 如果没有连接到 oracle 数据库 这就仅是数据的可视化展示平 台 展示的数据没有用户属性 但是会有一组记录实体的列表 autocad map odtable 以及能够对两者进行匹配的实体键 上图所示 表中的记录可以看做是 FME 的非几何要素 表中有一个 StateData 记录 用于关联到上面的空间要素中 这是我们读取对象数据 以及 将它们重新写入相同格式数据集的方法 表记录 非几何记录 会重新写入表中 而实体要素 几何要素 会写入图层中 由于格式的属性 autocad od entity key 与对象数据写模块相同 所以此链接会自动生成 例如对坐标系重投影而不改变 数据格式 或链接 拆分数据表 37 用对象数据分组用对象数据分组 模式模式 用对象数据分组 模式与 按实体分组 模式刚好相反 不同于按实体分组模 式每一个图层创建一个要素类型 用对象数据分组模式为每个数据表创建一个要 素类型 表中的每条记录都属于这个要素类型并导入到工作空间中 因此 每个关联多条记录的 AutoCAD 实体会在数据中反复出现多次 如下所示 每个要素关联两条记录 要素 数据表 字段 1 表 A 字段 A1 字段 A2 字段 A3 1 表 B 字段 B1 字段 B2 字段 B3 读模块会输出两个要素 Feature1 Attributes FieldA1 FieldA2 FieldA3 Feature1 Attributes FieldB1 FieldB2 FieldB3 如你所见这样的方式在 FME 中是很低效的 因为元数据中含有大量的实际 实体 而这种方式需要处理很多次 从另一方面 如果数据集相对简单 单一实 体存在多种地理要素 比如在本案例中的州边界 县边界 这又是一种很适用 的模式 然而 数据表要素类型只是问题的一部分 没有关联记录 即没有数据 的 实体同样需要输出 所以无对象数据的实体在新工作空间中也会生成要素类型 此外 因为对用户而言判断一个图层中一部分没有对象数据的需要被读入 而另 一部分有对象数据又需要被省略 是件很困扰的工作 因此需要将图层中所有的 要素进行输出 不论它们是否已通过对象数据要素类型输出 它显然会产生更多重复的要素 使得效率更加低下 但是开发人员告诉我们 的是 这样的选择也是有用的 它能够确保当前 AUTODESK MAP 对象数据读 取器与未来版本间的兼容性 会出现重复对象并做无用功 但是如同我们的开发人员所讲 这并不是无效 的 它能够在处理目前的AUTODESK MAP对象数据读模块时 确保向后兼容 38 上图所示 用对象数据分组 模式向工作空间中添加数据 注意每张包含属 性的表 CountryData StateData 的要素类型 以及每个图层 Road Boundaries 的要素类型 它们都不包含属性 即使其中有些实体可能关联了对象数据 为 了加以区分而附加了对象数据表要素 上图所示 在示例中 如果不希望边界数据重复输出两次 可以简单得将要 素类型设置为无效 39 上图所示 在这里输出结果不出所料地具有两个要素 州边界和县边界 但 这是正常的 因为在工作空间中这两者是分开的 而且被写入了两种不同的要素 类型中 图上所示 事实还可以将建筑物面添加进工作空间 40 图上所示 这样做可以将每个要素类型的面要素进行拆分 如果没有重复要 素就实现不了这个结果 这种读取模式适用于如果用户想读取对象数据且将数据集回写到相同的格 式中 如执行坐标系重投影 重复要素并不是问题 因为写入对象数据时 实 体关键字重复的空间要素会被删除 输出结果中可能是一个实体 但具有多条记 录 满足每行只有一个实体的规则 但在这种情况下我们仍然推荐使用 原关 系 模式 常见问题常见问题 问 在 FME 哪个版本里可以找到这个功能 答 FME 2008 及以上 问 这是为什么现在安装程序时会询问 Autodesk RealDWG 许可协议的原 因吗 答 是的 这是因为我们使用了 Autodesk 获得 RealDWG2008 SDK 下面 的 AUTOCAD OD 的读模块 用户必须接受此协议才可以使用 AUTOCAD OD 格式 问 是否可以使用该格式读取非对象的 DWG DXF 数据集 41 答 可以 但是除非有特殊原因 否则还是建议使用 AutoCAD DWG DXF 又 名 ACAD 读模块 写模块 问 什么级别的 FME 许可证可以使用 AUTOCAD OD 答 和 AutoCAD DWG DXF 一样 FME 基础版就可以使用这个新格式 问 这个对象数据读模块在 UNIX 上是否可用 答 不可用 目前仅适用于微软 Windows 平台 可能是 SDK 的问题 问 打散块要素的时候 含属性数据的块要素会发生哪些变化 答 这个问题有点复杂 块要素可以只有一条记录 或者块要素中每个实体 每个组成部分 都含有一条记录 再或者两者情况都有 如果块要素中某部分 关联了对象数据 该块要素打散后 这部分关联扥对象数据会被附加给所有打散 后的要素 造成实体与记录键的冲突 因此通常用户在处理对象数据转换的时候 并不希望这样操作 42 关于 CAD 中多行文本内容的修改 2012 09 26 08 58 23 分类 CAD 专题 举报 字号 订阅 作者 小新 最近在处理 CAD 数据的时候 需要数据中的文本注记进行处理 改变注记 的显示内容 通常我们使用 FME 处理该问题的时候 需要先暴露 autocad text string 属 性 然后使用 Attributesettor 或者 Attributecreator 修改这个属性的内容 最后输 出到写模块进行保存 但是最近处理的时候 发现如果对多行文本类型只是修改 autocad text string 的值 通过转换器后 输出的结果中 注记的显示内容并没 有更改过来 原始数据 转换过程 43 输出到 dwg 后 显示的内容仍然为 经过分析 在 帮助 中找到原因 对于多行文本 写模块将使用 autocad mtext string 这个字段的值对输出的数据赋值 因此 在 AttributeExposer 和 AttributeCreator 中 改为对 autocad mtext string 进行操作则可以实现多行文本注记显示内容的修改 44 测试结果如下 注意 在注意 在 FME 中读取中读取 dwg 时 在读模块中有个时 在读模块中有个 Explode MText Entities 的参数 该参数的表示是否打散多行文本块 上述过程适用于多行文本不打散的参数 该参数的表示是否打散多行文本块 上述过程适用于多行文本不打散 的情况 的情况 如果在读模块时 选择打散多行文本 如果在读模块时 选择打散多行文本 则通过修改 autocad text string 就 可以了 但是这样存在的问题是 打散后的文本不再是一个实体 而变成了多个 45 实体 修改 autocad text string 会对每个打散后的实体都进行操作 上述的实 验数据会产生如下的结果 一个多行文本打散后产生了两个数据实体 因此 为了保持数据结构的一致性 尤其是在 DWG DWG 的转换过程中 建议不要打散多行文本 而通过修改 autocad mtext string 对注记内容进行修改 46 Bentley MicroStation Design V8 格式的 参数设置问题 2012 05 14 09 12 50 分类 CAD 专题 举报 字号 订阅 作者 毛毛虫 加载 DGN 文件 V8 格式时 根据设置的不同 读取 dgn 文件的方式也不同 可以根据需要选择不同的设置 方便后面的数据 下面主要是对 V8 格式的 DGN 参数的设置 参数如下 47 1 元素分组 在第一栏中的要素分组有五种方式 48 层数 Level Numbers 层名 Level Names 几何类型 Geometry 和模式 层数 Schema Level Numbers 模式 层名 Schema Level Names 其中前三种分别根据层数 层名或几何类型来加载源数据 后两种与前三种 比较 如帮助中所解释的 模式类型的还会将属于该 FME 要素类的要素的所有 的属性累加到 FME 要素类型上 当需要显示tag属性时 需要选择模式 层数 Schema Level Numbers 模式 层名 Schema Level Names 则 tag 属性会显示在对应要素类下方 49 还需要注意的一点是 如果 tag 是中文的 需使用 FME 2012 及以上版本 否则会是乱码 2 元素的打散 这一栏中 Expand Named Cells 决定把单元打散为各个组成要素还是作为 一个点 这里重点强调的是 Expand Unnamed Group Hole Cells 选项 在 DGN 中 不支持文本单元头 如含有文本单元头 会自动打散 如果选择了这个设置 会把岛洞打散 虽然对于单元头 无论是否选择该选项都会被打散 不过选择该 选项后 会在 igds cell sequence number 属性中做一标识 被打散前的同一 单元头打散后有同一序列号 如图 50 在 fme viewer 中的显示 3 分割多行文本 不选中则不分割多行文本 在多行文本的定为点位置生成一个数字 且将文 本内容存储在 igds text elements igds text string 列表中 51 选择分割的话 会把多行文本分成一个文本节点和由组成多行文本的每行要 素组成的要素 再以下的几个参数 因很少会用到 所以选择默认值 本文不再赘述 52 如何使用AutoCAD Map 3D Object Data读 模块 2012 05 04 11 31 25 分类 CAD 专题 举报 字号 订阅 翻译 jason Autocad Map 3D Object Data 读模块操作模式说明 内容介绍内容介绍 如何设置转换方式没有固定标准 它取决于源数据模式和目标数据的结构 一般情况下 AutoCAD Map 3D Object Data 毫无疑问是 Auto CAD 的三维 地图对象数据 对象数据允许属性存放在数据表中 但数据结构却非常自由 在 数据集中 任何特定的空间要素 或实体 都可以在不限数量的数据表 或空表 中无限制地存放属性记录 因此 FME 提供了很多不同的读取模式 这样用户就有更多的选择来布局 工作空间的 然后在 Workbench 中查看数据模式 示例数据示例数据 以下是一些示例 这些工作空间的示例数据是一张德克萨斯州的地图 其包 含州 县边界线以及许多的道路网络 53 上图为示例数据 该州的边界线为黑色 县边界线为红色 道路为蓝色 参考的 坐标系统为 LL83 边界要素存放在 Boundaries 图层 并与 County 和 State 数据表连接 数据源最重要的是所有要素为线要素 县与县之间的边界线 或县和州的外边界 线 为含有两条记录的单一要素 记录为县边界 或一条记录为县边界 另一 条记录为州边界 54 如上图所示 特写位置 箭头所指的弯曲部分是 county 数据表中一条包含 两条记录的单线 一条记录为 San Saba 县 一条记录为Lampasas县 运行模式运行模式 这三种不同的读模式为 按实体分组 原关系 和 用对象数据分组 当将 数据集增加到工作空间 或 Inspector 时 在参数设置对话框中选择模式 如上所示 生成一个新的工作空间 点击 参数设置 按钮 弹出数据对象设置对 话框 55 如上所示 对象数据设置对话框 在对话框顶部选择三种不同的模式 显然 这些设置会直接影响新生成空间的版面 因此在工作空间生成以后就 不能再更改读模式 或一旦读模块被添加到工作空间 就不能再更改 按按实体分组实体分组 模式模式 在创建工作空间时 对于数据集中的每一个数据图层 按实体分组 模式会 将其分为不同的类型 数据表属性与相关的每个特性依附于要素 这种方式是一种很好的模式 用 于向 GIS 相关的数据格式写入数据 如 Mif Mid 或 Shape 但对于保留数据源 模式结构 这种方式效果不好 因此如果想回写相同的数据格式 就不能使用这 种方式 56 然而 由于对象数据格式的巨大灵活性 需要考虑一些问题 考虑 1 是否每个实体 要素 包含的记录大于 1 特别是在同一张表中多 于 1 条记录 那么就可以生成表结构 例如 以下是单个要素的同一张表中包 含两条记录的情况 要素 数据表 字段 1 TableA FieldA1 FieldA2 FieldA3 1 TableA FieldA1 FieldA2 FieldA3 输出要素的模式中会包含列表属性 TableAData 0 FieldA1 TableAData 0 FieldA2 TableAData 0 FieldA3 TableAData 1 FieldA1 TableAData 1 FieldA2 TableAData 1 FieldA3 考虑 2 因为有可能不同要素的记录在不同的数据表中 源数据类属性列表将 会变得繁杂 包含所有可能的属性 例如 以下的情况 图层 要素 数据表 字段 LayerA 1 TableA FieldA1 FieldA2 FieldA3 LayerA 2 TableB FieldB1 FieldB2 FieldB3 数据源要素类 A 图层包含的属性 FieldA1 FieldA2 FieldA3 FieldB1 FieldB2 FieldB3 要素类中存在的所有要素将拥有所有可能附加的属性 不管其是否为空值 考虑 3 因为不同的数据表包含相同字段名是可能的 因此用一个 前置表名称 的选项来区分它们 57 例如 考虑一下方案 图层 要素 数据表 字段 LayerA 1 TableA Field1 Field2 Field3 LayerA 2 TableB Field1 Field2 Field3 前置表选项将会确保无命名冲突字段 TableA Field1 TableA Field2 TableA Field3 TableB Field1 TableB Field2 TableB Field3 如上所示 参数设置对话框的前置表选项 在我们的示例数据中 不存在表名冲突 然而模式将会有州和县字段 尽管有些 要素不具有州字段 加上要素是两个县之间的边界线 因此其会有列表属性来 存放这两个县的名称 如同边界要素 道路要素也有要素类 但是没有数据 因为其没有关联的数据表 58 如上所示 Workbench 中的源模式 如上所示 在 FME Viewer 中的数据显示了指定的列表的结构和内容 如上所示 由于 Shape 数据不能接收列表结构的数据 调整工作空间 将 列表属性变成用逗号分割的单个属性 可以用转换器 ListConcatenator 变为列表 属性 59 如上所示 在输出 Shape 数据集中 州 县边界如图所示 如上所示 县之间的边界如图所示 注意此处州属性为空值 原关系原关系 模式模式 原关系 模式将基于相同空间实体和数据库记录的对象作为单独的要素 用 一个属性来标记它们作为相关的要素 每个要素类会分到各个数据层 事实上 使用原关系数据模式对于用户来讲是最适合的 由于其空间数据 和属性数据是存放在独立的表中 因此写入数据库很有用 也称此种模式为 关 系 模式 此模式也适合将数据写入到特定的 CAD 格式 比如当属性数据和空间 数据是单独存放在 CAD 数据中时 在此模式中 我们没有必要担心任何 按实体分类 模式的考虑 因为分配 多条记录到单一要素 仅仅会存放到数据库表要素类 类似于每个表存放一个单 独的要素类 所以处理复杂的模式不会出现问题 尽管不同的表中存在同名字段 这也不会出现冲突字段 然而 在工作空间中当用户频繁地合并属性记录返回到 要素中时 可能会出现 60 如上所示 在示例工作空间中 将数据写入到 Oracle 数据库中 如上 在 原关系 模式的初始工作空间就像这样 注意每一个图层为一个要 素类 每一个图层对应一张表 CountyData StateData 也要注意格式属性 autocad od entity key 它是标记属性数据和空间数据的标志 Layer0 是所有 AutoCAD 数据的默认图层 61 如上所示 如果没有连接 Oracle 数据库 就只能放到 VisualLizer 中查看数据 它将会显示没有用户属性的要素 但会有一个列表 autocad map odtable 加上 entity key 如上所示 该表的记录很明显是作为 FME 非几何要素的读取 它是与以上 空间要素相关的 StateData 表的记录 这是较为合适的模式 用于读取对象数据和将对象数据写入相同的格式 非几何 要素的表记录可以作为一张表来写入 实体要素可以作为一个图层来写入 由于 格式属性 autocad od entity key 对于对象数据写模块是一样的 因此会自 动连接 举个例来说 执行重投影而不希望改变格式 或执行表的连接或分割 62 用对象数据分组用对象数据分组 模式模式 用对象数据分组 模式几乎与 按实体分组 刚好相反 不需要获取每个图层 的要素类 而是得到每张表的要素类 进入工作空间的数据是每张表的要素类的 每条记录 正是由于此原因 每个对应很多条记录的 AutoCAD 实体会在数据中 重复出现很多次 例如 下面的情况 一个要素连接两条记录 要素 数据表 字段 1 TableA FieldA1 FieldA2 FieldA3 1 TableB FieldB1 FieldB2 FieldB3 读模块就会输出两个要素 要素 1 Attributes FieldA1 Fie

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论