MicroStation读取svg文件插件编写

在实际的科研过程中,需要将已处理好的svg图片导入到MicroStation*用户对曲线进行细微调整,故设计了此款插件。

编写过程:

第一步:选择编写语言

当了解了背景之后首先要了解MicroStation如何操作,可以供其使用的扩展的方式有哪几种,在其中我选择了MDL的模式,使用VB进行编写。

第二步:了解SVG基本知识

SVG图片是由一条条的path绘制而成的,所以想完整的展示SVG,只需要对一条path的信息进行理解、编写、绘制即可。其中主要应用到了M、m、c、l几个特殊命令。使用VB语言对其进行解析即可。

M:代表了起点坐标,是绘制一段路径的必需点,十分重要。需要注意的一点就是绘制一小段路径结束后,起点坐标需要更换为次段路径的结束坐标,以绘制下一段路径,且大写字母代表绝对坐标。

m:代表起点坐标,使用了相对坐标系。和M性质相同。

c:代表了贝塞尔曲线,通常意味着三次贝塞尔曲线,通常结构为c控制点1坐标(2个),控制点2坐标(2个),结束点坐标(2个)。可使用贝赛尔曲线算法进行绘制,网络上相关代码很多,不多做介绍。

l:直线,命令后有若干个点坐标,用直线将其连接。

第三步:读取SVG文件

SVG文件使用了XML的结构,故可以按照读取XML的格式读取SVG,此处需要添加引用Microsoft XML。读取path中的字符串,很可能需要对字符串进行处理,本人使用到了正则表达式,故添加了Microsoft VBScript Regular Expression库。

第四步:SVG文件选取可视化窗口

由于编写过程中只以将SVG文件绘制为目的,SVG文件的路径还不可以供用户*选择,所以使用了MicroStation中的可视化窗口,并使用了mdlDialog_fileOpen函数进行设计,可以使用户*选择任何路径下的SVG文件,并加以绘制。

成果展示:

MicroStation读取svg文件插件编写

MicroStation读取svg文件插件编写

MicroStation读取svg文件插件编写