原文发布时间:2014-11-12
作者:lkfree
相关链接:CAD数据相互转换注意事项(一)
在上一节我们介绍了CAD数据相互转换时读模块的相关参数,这一节继续介绍转换时的一些注意事项。
1.ucs相关
在进行cad数据相互转换时,有时转换出来的数据x,y坐标会发生偏移,这与cad的用户坐标系有关。
首先先普及一下cad中ucs相关知识:
用户坐标系(UCS):
AutoCAD的坐标系有世界坐标系(WCS)和用户坐标系(UCS)两种。AutoCAD默认的坐标系是世界坐标系,而某些情况下AutoCAD允许建立自己的坐标系(即用户坐标系)。用户坐标系的原点可以放在任意位置上,坐标系也可以倾斜任意角度。由于绝大多数二维绘图命令只在XY或与XY平行的面内有效,在绘制三维图形时,经常要建立和改变用户坐标系来绘制不同基本面上的平面图形。
图1.1原dwg图,默认为WCS世界标系
原图的一个文字的坐标为
图1.2原dwg图,自定义用户坐标系
通过cad的ucs命令,我们定义了一个用户坐标系,原此时文字的坐标变为:
图1.3转换后dwg图,带有用户坐标系
转换后图形发生了偏移,文字坐标也发生了变化,
可以发现由于dwg采用了用户坐标系,转换时我们需要在fme中设置一些参数,来保证转换后的dwg坐标的一致性。
在转换添加dwg读模块时有一个参数“ignore ucs”忽略用户坐标系
或添加后在这里设置,此外UCS也会定义在dwg写模块的模板文件中,例如我们已带UCS的dwg文件为写模块模板文件,那么输出的dwg文件会带有用户坐标系。
图1.4不设置模板文件,不忽略UCS
在上图情况下,输出的文件为WCS世界坐标系,但文字坐标与原图带UCS时一致:
,那么图形偏移较大。
图1.5不设置模板文件,忽略UCS
在上图情况下,输出的文件为WCS世界坐标系,文字坐标与原图带WCS时一致:
在上图情况下,输出的文件为UCS用户坐标系,文字坐标与原图带UCS时一致:
由这4中情况我们可以确定,在cad数据相互转换时为了保证在WCS情况下坐标一致,必须勾选“ignore ucs”或设置“ignore ucs”参数为yes。若使用带有UCS的dwg数据为模板文件,那么输出的数据也会带有UCS。
2.fme不支持cad中代理类型autocad_proxy_entity
有时候我们转换 CAD 图,可能会发生要素丢失,例如 :
图2.1原cad图
图2.2转换后cad图
实际上是一个叫autocad_proxy_entity的图元搞的鬼,在图形空白处点右键,选择“快速选择”,在快速选择对话框中选择如下图中的选项。
autocad_proxy_entity图元:这种代理图元是由二次开发的cad软件或插件生成的一种图元,在AUTOCAD中可以正常显示、打印,但在fme部分代理图元中无法识别,如下图:
我们可以看到,fme中无法识别图形,只能识别其属性。