[1] [2] [3] [4] [5] [6] [7] [8]
本系列博客将由浅入深地帮助您学习MicroStation CONNECT版的MDL开发。按照本博客的步骤,相信您能很快地掌握这一开发MicroStation应用程序的最主要方法。
第零章、介绍与必备条件
从MicroStation 4.0版开始就有MDL这一功能强大的开发手段了,那还要追溯到上世纪90年代初。那时的MDL是MicroStation Development Language(MicroStation开发语言)的简称,它是Bentley公司基于C语言的一种扩展语言,编译器和链接器均由Bentley公司提供。最终生成的程序扩展名为.MA,是MicroStation Application的缩写。我们把这样的开发方法叫做PureMDL,开发PureMDL您仅需要一个源代码编辑器,其它的工具(编译器、链接器以及调试器)都由Bentley提供了。
随着时间的推移,MDL也在与时俱进。今天的MDL已经完全可以基于C++来开发,因而我们可以采用微软的Visual Studio作为开发工具来生成本机代码的DLL,同时,为了保留MDL的一些特性(如命令表、MDL特有的资源等),仍然需要生成一个.MA文件。我们称这种新的MDL为NativeCode MDL,这里的MDL不再是MicroStation Development Language而是MicroStation Development Library(MicroStation开发库)。NativeCode MDL能使您采用面向对象的编程方式来写代码,还能使您直接调用任何VC++中可以调用的功能。
Bentley公司2015年8月发布了全新的MicroStation CONNECT版(简称Mstn CE)软件,它具有如下多方面的更新:
- 64位应用程序,充分利用内存空间
- 全新的Ribbon界面
- 增强的动态视图 – Drawing Boundary和Named Boundary
- 增强的Explorer – 新增Item、Resource和Sheet Index页面
- 参数化建模 – Parametric Modeling (取代了原有的Feature Modeling和DDD)
- 用户自定义属性 – Item Types (取代了原有的Tag和TagSet)
- 可直接发布和打开.imodel
- 新增功能 – Labels、Reports和Tables
- 可加载ContextCapture (原名Acute3D)从图片建立的三维模型 *.3MX/*.3SM
- 最新技术Scalable Mesh:3SM文件格式(3SM-Demo.dgn)
- 其他:WorkSet, Help, Search Ribbon
从开发的角度来看,Mstn CE SDK的变化就更大了,几乎所有的功能都用C++类重新做了封装,我们几乎可以不再调用老的一个个的C函数来编程了。这也是我们一直盼望而终于得以实现的目标。但同时由于是全新的C++封装,也为我们开发带来了大量的学习负担,本系列文章就是想带领大家一同来学习这种全新的MDL C++编程。虽然原来的大多数C函数仍然被支持,但新应用的开发强烈推荐采用全新的C++类来编写。在写本系列文章时使用的是Mstn CE Update 10版本,所以今后的代码都是以这个版本为主来写的。当您读到这个系列的文章时可能已经有更新的版本发布,请按照最新版本中的说明做出适当的调整。要开发Mstn CE Update 10下的MDL应用程序,请按下面步骤安装开发环境:
1、安装Visual Studio 2015:
在安装的过程中一定要选择安装VC++(默认安装没有该选项),同时还要选择安装Windows 10 SDK组件。详细的界面可参考如下文章:
2、安装MicroStation CONNECT版Update10;
3、安装MicroStation CONNECT版SDK Update10。
如果您还没有VS2015,请与微软公司联系。
如果您还没有MicroStation软件及其开发包(SDK),您需要加入Bentley开发商网络(BDN)以获取它们。关于加入BDN的详细情况请与Bentley的BDN经理翟云龙(rick.zhai@bentley.com)联系。
如果您已经是Bentley的BDN会员但还不会下载MicroStation软件及其开发包,请看如下文章:
由于Mstn CE为64位程序,所以它必须安装在64位的Windows上。MicroStation及其开发包的默认安装位置如下:
- MicroStation程序文件:C:\Program Files\Bentley\MicroStation CONNECT Edition\MicroStation
- 配置文件(包括工作空间等):C:\ProgramData\Bentley\MicroStation CONNECT Edition\Configuration
- SDK程序文件:C:\Program Files\Bentley\MicroStationCONNECTSDK
下面对SDK的组成逐一做个介绍:
- bin文件夹:该文件夹下含有生成最终应用程序所需的执行程序以及启动开发环境的批处理文件。这下面的执行程序主要是负责生成最终应用程序的资源部分的(关于资源的详细介绍请看后续文章),C++代码的编译和链接其实是调用VS2015中的cl.exe和link.exe的;
- Documentation文件夹:该文件夹下会有五个开发帮助文档,其中的MicroStationApi.chm就是我们要用到的MDL C++帮助文档。其它四个是有关用C#开发Mstn应用程序的帮助文档;
- Readme文件夹:网页格式的SDK Readme。双击其下的index.html文件在浏览器中打开。其中含有各个SDK版本的变化、如何安装SDK以及开发者注意事项等;
- Migration文件夹:将V8i升级到CE的一些升级指南。
- examples文件夹:大量的MDL C++或C#样例代码。其中有一些是老旧的,一些是新写的(比如,在用到写命令工具时,如果是调用的mdlState_xxx类函数的,一定是老旧的例子,用派生于DgnTool类的应该就是比较新的)。最好读新的例子。
- include文件夹:C++头文件;
- library文件夹:C++库文件;
- MigrationTools文件夹:帮助您从V8i代码迁移到CE代码的一些工具。主要是通过Python程序对一些关键字做映射。您可以手工修改文件0811to1000Published.remap中的内容来扩展这个映射库;
- mki文件夹:制作文件的头文件(make include)。为mke文件服务的一些系统文件。
- eula.pdf文件:Bentley软件最终用户许可协议(End User License Agreement)。大量的法律条文说明哪些行为是被法律禁止的。
- MicroStationDeveloperShell.bat文件:启动开发环境的批处理文件。