批命令缩小含有自定义线型的DGN文件


用户有一批文件需要缩小一千倍,但这些文件中含有比较奇怪的元素,直接用Scale命令缩小这些元素时会造成异常。但发现通过以0.001倍数参考该文件,然后合并到当前文件中是正常的。为此写了如下一个较为复杂的命令文件,再配合MicroStation的Batch Process较完美地实现了用户需求。命令文件内容如下:

Place Fence AllFiles;XY=0,0
SF=d:\temp_temp_temp.dgn;XY=0,0
RF=d:\temp_temp_temp.dgn,,,,,0.001
Reference Merge All
Fit View Extended
FileDesign
VBA EXECUTE Kill "d:\temp_temp_temp.dgn"

Place Fence AllFiles实现放置一个围住所有元素的Fence(围栅),分号是两个命令的分隔符。XY=0,0表示接受放置围栅的命令。

SF=d:\temp_temp_temp.dgn;XY=0,0表示将围栅中的内容写到外部的一个临时文件中同时删除当前文件围栅中的内容。SF=是Separate Fence命令的简写形式。

RF=d:\temp_temp_temp.dgn,,,,,0.001表示参考一个文件,参考比例为0.001。多个逗号表示默认一些选项,直到需要比例时给出具体的值。RF=是Reference File命令的简写形式。

Reference Merge All将参考文件合并到当前文件中。第一次使用该命令时会弹出一个对话框,点击那个不再弹出框的对勾以后就不会再弹框了。这一点很重要!!!

Fit View Extended将内容充满当前视图

FileDesign保存设置。是的充满视图动作能保存起来,下次打开文件时也是充满视图的。

VBA EXECUTE Kill "d:\temp_temp_temp.dgn" 删除这个临时文件。该行通过命令VBA EXECUTE调用VBA中的删除文件的语句Kill将临时文件删除掉,否则处理下一个文件时SF=命令将会导出弹出一个文件是否覆盖的对话框。

将以上命令内容保存到一个文本文件中,比如D:\scale-Fence.txt,然后配合MicroStation的Batch Process如下图所示设置后执行即可。