应用Java语言进行AutoCAD2000二次开发
实用第一 智慧密集
刘良华袁英战朱东海
摘 要
介绍了应用Java语言进行AutoCAD二次开发的方法和思路。
关键字 二次开发,AutoCAD定制,COM,Java编程
Mic Mod- AcadApp¨.
ro=Boft的组件对象模型(COM:conlponem0bject IAcadAppIicationlApp=
cation():
e1)允许基于Window8平台的应用程序之间可以建立联系并进
行数据交换。采用组件对象模型有一个很大的好处就是,开
发者并不需要了解服务程序(鸵rver印plication)的内部机制,
只要利用其提供的接口(inte如e)就可以实现对服务程序内
能直接使用生成的类实例,而必须通过其COM接口来实现。
部的访问和操作。同样,AutoCAD2000提供了它自己的COM
因此,下述代码尽管是合法的,但在运行过程中将导致严重
接口,因此客户程序(client印plication)可以通过该接口来对
错误。
AmocAD2000进行操作,如打开DwG图形、添加图形对象
等。 AcadAppIicationApp=new
目前,支持c0M接口的开发语言越来越多,如c/二、建立工程
c++、Java等。原则上,不管采用何种开发语言,其实现原
首先,从“开始I程序”菜单中启动Vi鲫alJ++6.O,进
理都是相同的。实际上,采用Java语言来进行AutoCAD的二
入开发环境(缺省),如图1所示。
次开发是非常有意义的,因为这样可以将AutoCAD的二次开
发应用于Java小应用程序(印plet)上。为简单计,本文仍以
普通win32应用程序为例,该例程使用VisualJ++6.O开发
工具,详细展示了Java语言在AutoCAD2000二次开发中的应
用方法和技巧。
一、AutoCAD2000的类型库
类型库(typelibmry)是一种0LE复合文档,通常以.Ⅱb
为后缀(也有其它形式的后缀,如.odl、.ocx等)。类型库
文件包含了OLE服务程序提供的接口类型及cOM对象的有关
信息。具体来说,包含的内容如下:
1.数据类型的信息,如别名(alias)、枚举、结构
Vi8ual
圈1 J++6.0主程序窗口
(stnlct)或联合(union)等;
Visual
J++6.O主程序窗口除包含有菜单栏、工具栏等标
2.模块、接口、IDispatch接口或组件对象类的描述信
准窗口元素外,还有工程资源管理器(Pmject
息,每个描述信息称为一个类型信息记录。
实际上,类型库文件提供了访问被提供的c0M组件的细
节。只有了解这些细节,应用程序才能访问其提供的cOM组
件。AmoCAD2000提供了cOM组件及其相应的类型库文件,
则是为编辑窗体(F叫n)等控件资源而提供的。
文件名为acad.tlb,存放于安装根目录下(如D:\A-