分享:

在数据库格式中保留CAD的符号和文本的技巧

发布时间:2019-06-05 阅读160次 标签: CAD符号  

本文主要研究一种简单高效的方法来存储复杂的CAD符号到数据库格式中。这在需要从CAD转为GIS再转换回CAD、并且要求保留之前的符号和文本(或注记)时会有帮助。以下为具体操作步骤。

最常见的两种CAD格式,Microstation?DGN??AutoCAD?DWG都有着各自的符号,这些符号通过很多属性来定义。在数据库中要创建表格字段来存储这所有的属性会很耗时,但是绝大部分属性都需要保留下来,用于写回CAD的时候需要。此外,为了表现CAD特征,FME会另外增加格式属性,所以数据库中的表很可能还需要更新。

还有一种选择就是将每个需要存储的格式属性打包放进一个blob字段中,在写回为CAD时可以解压出来。

FME函数@SupplyAttributes(可通过转换器FunctionCaller调用)具有一种功能,可以将要素的所有属性放在一个单独的属性中,该属性的名称结构为name:value:name:value:name:value:以此类推。@SupplyAttributes也可以将这些挑选的属性不返回到原始属性中,然而一旦选择,@SupplyAttributes会选择所有的属性,包括那些不需要的属性字段。

自定义转换器PackAttributes(通过FME?Store获取)使用了一个PythonCaller来选择要素属性到@SupplyAttributes函数中,同时允许你通过设置过滤器,对要选择的属性设置前缀。这样一来,如果想要只存储DGN文件中所有的格式属性、同时舍弃所有的用户属性和FME属性,可以将在过滤器中将前缀设置为"igds_".同理,对于DWG文件来说,前缀设置为"acad_"

工作空间DGNToSqliteSqliteToDGN演示了如何实现这一过程:

DGNToSqlite中读取Microstation?DGN文件MajorRoads.dgn,使用PackAttributes选择格式属性到一个新的属性"igds_packed"中,然后将几何对象和选择的属性写出到Sqlite?Spatial

SqliteToDGN读取Sqlite表,使用转换器FunctionCaller中的函数@SupplyAttributes来重新存储返回到要素上的属性,然后写出到一个新的DGN文件中。

所有的这些符号都是来自MajorRoads.DGN,包括多线和自定义线型,都重新存储到新的文件中。

这种存储CAD属性的方法是可持续的。未来的FME版本中添加的任何额外格式属性都可以自动包含进来,因为添加了格式前缀,而且不需要对任何一张表做修改。

如果你想处理本机上的CAD数据,存储在数据库中,那么就需要将本地的属性提取出来分别存储到字段中。最简单的方法就是重新命名这些属性。

通过以上的操作,就能快速实现在数据库格式中保留CAD的符号和文本,简单高效,大大节约了设计师的工作效率。安装浩辰CAD软件试试吧。更多CAD教程技巧,可关注浩辰CAD官网进行查看。

  • 浩辰云建筑
    2019-08-09   55521次
    下载
    浩辰CAD机械 2019 标准版
    2019-01-25   9264次
    下载
    浩辰CAD 2019
    2019-07-14   206655次
    下载
    浩辰CAD建筑 2019
    2018-12-26   23295次
    下载