沿着线上的点切割线性元素


【问题提出】:有用户提供如下DGN文件。该DGN文件中存在一些线串(Linestring)元素,该线串元素上有一些共享单元(Sharedcell)COGOPnt,想以这些单元原点作为分割点将该线串元素分割成多段。

communities.bentley.com/.../test_5F00_joints_5F00_in_2D00_ms.dgn

【解决方案】:MS或其他Bentley软件中没有能找到现成的工具,因此编写了如下一个MVBA程序来解决此问题。程序的使用步骤如下:

1、请将如下文件下载后复制到文件夹C:\ProgramData\Bentley\MicroStation CONNECT Edition\Configuration\Organization\Macros下。如果不是MicroStation软件,该文件夹位置要做相应改变。注意,该步骤仅需要做一次即可。

communities.bentley.com/.../LinearBreak.mvba

2、启动MS,打开您的DGN文件。为确保安全起见,请先备份要处理的DGN文件。由本程序造成的文件破坏请自行承担责任。

3、用选择集工具选中想要处理的所有线串元素。可以框选非线串元素,本程序能自动过滤,仅处理线串元素。

4、在键入命令对话框中输入VBA RUN [LinearBreak]Main 并回车。则所有线串被处理完毕。

【注意】:处理的结果是创建了一系列被分割的线串,原来的线串仍然保留。这是因为用户初始DGN来自ORD,在MS中无法删除ORD中的线串。