- UID
- 3155
- 积分
- 370
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-3-19
- 最后登录
- 1970-1-1
|
发表于 2002-6-18 13:46:14
|
显示全部楼层
响应一下: 从V8开始支持VBA开发了!
下面另附一篇相关内容的文章:(不过文中没有提及JMDL和VBA)
MicroStation是一套功能很好的CAD软件,但毕竟它只是一套提供很多良好的基本功能的系统, 对于各行各业的专业应用,它绝对无法全部满足,也因此它提供了几种开发工具,让 使用者能跟据自己需求, 发展出各行各业的专业应用程序,如现在于MicroStation上执行的 数百个应用程序,都是以其提供的开发工具完成的, 由于其基本功能很完善,要在其上开 发应用程序就变的很简单,例如我们要以一任意多边形切取其内的图形, 此功能由于 MicroStation原来就有,只要叫用即可,因此程序很简单,但此功能在某些CAD系统无法作到, 如要作此功能则已经可以是一个商业产品,可见其开发的难易差别。
MicroStation提供的开发工具至目前为止共有下列四项,分别为UCM,CSL,MDL以及BASIC,各工具介绍于下:
MDL与MicroCSL最大不同在于MicroCSL是传统的Sequencial call的方式执行,即自程序开始到结束,它是循序执行,而MDL是一个EVENT DRIVEN方式的程序,它有许多进入点,视使用者的操作决定进入点,使用者也可透过对话盒与程序沟通,对写过windows程序者应该没什么困难。MDL共提供四千多个功能,所有MicroStation可作的事都可以直接以MDL的functionCALL来达成,因此目前有数百种各行各业的专业应用程序于MicroStation上,已经大多改成MDL或直接以MDL撰写的,目前已少有使用MicroCSL者。
UCM为最早期的开发工具,由于MicroStation最早期是为解决Intergraph系统硬件太贵, 而于较便宜硬件上以仿真Intergraph的IGDS系统而开发的,因承袭以前Intergraph的IGDS, 为了与IGDS能兼容,因此一开始就使用IGDS的发展工具UCM及CSL,UCM语法简单,学习很快, 但不易发展较大的应用程序,作些辅助的小工具倒很容易,因此较适合将某些自己特有的程序, 或重复性高且直接以MicroStation可完成但需很多操作步骤的工作,直接以UCM将这些步骤组合成一个程序, 然后以简单的指令即可完成平常要花很多步骤操作的工作。
其语法如下
[标签:]
[动作]
[操作数]
P1
K1
EXITUC
SET
KEY
CMD
GET
SET
SET
MSG
A0=A1+A2
*PLACE LINE*
PSHAPE
P,P1,K,K1,R,EXITUC
I0=XUR
C1=KEY
*PRPROGRAM END
可以发觉其语法简单,一行只作一件事,因此即使没程序经验者,只要逻辑观念好,也可学习,缺点就是开发大型程序时变得很麻烦,因此常以它来开发些小工具。但自MicroStation95后,Bentley另提供了BASIC的开发工具,希望将来能取代UCM这种工具,但它永远还是接受UCM的,以便和以前兼容。
CSL为原先IGDS另一开发工具,在MicroStation称为MicroCSL,它是提供一个链接库,内有许多子程序,可作各种MicroStation指令所对应的动作,而因其提供链接库,使用者可以C或FORTRAN语言来撰写自己的应用程序,需要将数据写入、读出或执行MicroStation的动作时,则直接叫用其提供的各功能子程序,因此开发应用程序时也很简单,如使用者先前已有以C或FORTRAN撰写的应用程序,只要将有关作图方面改叫用其子程序即可,但使用者需自备编译器及连接器(Compiler and Link),为与其链接库兼容,在PC上其指定编译器需使用High C,Microsoft C,Microsoft FORTRAN。在UNIX机器则为CC。
在MicroStation V4.0以前,大部分的应用程序都以MicroCSL开发,但从V4.0开始,MicroStation全面使用标准GUI接口后,MicroCSL在GUI接口下直接与MicroStation沟通有很多困难,因此它于4.0推出时,也同时推
出了新的开发工具MDL,它是一个C(部份C++)语法的开发工具,使用者不必另外购买其它编译器及连接器,而是MicroStation的标准内含程式。使用者如在以往以MicroCSL的C语言撰写的程序,加以修改即可成为MDL程序,然后以其提供的编译器及连接器,就可产生.ma的档案。以MDL写的程序,在其它工作平台(plateform - 目前MicroStation有10种以上的plateform版本)上只要在写程序时稍加注意,如PC和UNIX使用的目录符号不同,以及很少数的不同点外,皆可通用,但需于那个工作平台上重新编译和连接,写程序时可以用如下语法,
#if defined (msdos) || defined (winNT)
# define Separator '\'
#elif defined (unix)
# define Separator '/'
#elif defined (macintosh)
# define Separator ':' |
|