江西理工大学2012届专科生毕业设计(论文)
﹙2﹚编译成机器代码后执行速度快;
﹙3﹚编译时可以检查出程序设计语言的逻辑错误; ﹙4﹚程序源代码的可读性好于AutoLISP。 ADS不便之处在于
﹙l﹚C语言比LISP语言难于掌握和熟练应用;
﹙2﹚ADS程序的隐藏错误往往导致AutoCAD,乃至操作系统的崩溃; ﹙3﹚需要编译才能运行,不易见到代码的效果;
﹙4﹚同样功能,ADS程序源代码比AutoLISP代码长很多。
另外对话框控制语言DCL(Dialog Conirol Language) 是一种嵌入在AutoCAD内部的对话框控制程序设计语言,最早出现在AutoCAD R12中。DCL的主要功能是在对话框中将AutoCAD的多样化接口与提供程序执行时所需的数据和选项集于一体,实现交互式的程序设计和人机对话操作。用户可以利用DCL创建应用对话框,通过对话框的操作来执行各种应用程序和几乎所有的AutoCAD命令。
其特点是创建了动态对话窗口,利用窗口操作方式实现程序开发设计。同时,DCL是解释式的结构化程序设计语言,语法简单,功能强大,程序设计灵活,运行速度快,兼容性较好。另外,DCL程序通过AutoLISP相应函数来管理执行,比较适合做终端开发。
2.3.3第三代开发工具
第三代开发工具包括VisualAutoLISP、ObjectARx以及VBA,特性如下: 1.VisualAutoLISP Visua1AutoLISP[5]是AutoLISP的换代产品。它与AutoLISP完全兼容,并提供它所有的功能,是新一代的AutoCADLISP语言。VisualAutoLISP对语言进行了扩展,可以通过Microsoft ActiveX Automation接口与对象交互。同时,通过实现反应器函数,还扩展了AutoLISP响应事件的能力。作为开发工具,VisualAutoLISP提供了一个完整的集成开发环境 (IDE),包括编译器、调试器和其他工具,可以提高二次开发的效率。另外,VisualAutoLISP还提供了用于发布独立的应用程序的工具。
2.VBA VBA(Visual Basic for Application)作为一种面向对象的高级程序设计语言,语法简单,功能强大,使用方便,其语法结构与Visual Basic很类似,经过编译链接的VBA程序能直接在AutoCAD内部运行,也可以将VBA程序作为外部程序来执行,直接对AutoCAD对象进行操作。VBA主要通过AutoCAD ActiveX Automation接口传递消息,实现其控制编程机制,具备强大的编程开发能力和灵活性。用户可以利用ActiveX Automation重新定义AutoCAD,与其他
[6]
9
江西理工大学2012届专科生毕业设计(论文)
应用程序共享AutoCAD图形数据,能在其它的Windows编程环境下直接访问。
AutoCAD图形,可以利用DAO或ADO技术连接数据库,能实现产品数据的自动管理伊DM),用户还可以利用VBScriPt技术实现企业生产综合数据库系统Intemet/Intranet应用,达到生产设计信息化、自动化、快速化目的。如果要以AutoCAD为基础平台开发出多功能集成的CAD系统,VBA无疑是最佳的开发工具。
3.ObjectARX AutoCAD运行扩展ARX[7] (AutoCAD Runtime eXtension)最早在AutoCAD R13中提供,它是在ADS基础上发展起来的一种面向对象的C++语言编程环境;将ADS函数归并为单一的库就形成了ADSRX,ADSRX是一种新型的ADS开发环境,它需要Visual C++料编译器并生成DLL(动态链接库)应用程序;在 AutoCAD R14及其以上的版本中,ARX被面向对象C料编程环境一ObjectARX所代替,它是一个面向对象的32位AutoCAD二次开发工具,ADSRX成了ObjectARX的一个子集。ObjectARX的最大特点是引入了面向对象的编程机制,它提供了大量的类库,同时还提供了兼容原来的ADS及ADSRX函数的新函数。与以往的AutoCAD二次开发工具AutoLisp和ADS不同,ObjecARX是一个DLL(动态链接库),共享AutoCAD的地址空间,直接调用AutoCAD的核心函数,所以,使用ARX编程的函数的执行速度得以大大提高,避免了使用过多的IPC,消耗过多的计算机内存空间;可直接访问AutoCAD的图形数据库和图形系统,可以定义类似于AutoCAD内置命令的自定义命令;可以使用MFC库来创建标准Windows风格的图形用户界面;用户还可以通过扩展ARX协议机制动态地为己有的AutoCAD类添加功能;ARX类库采用了标准的C++类库的封装形式,这也大大提高了程序员编程的可靠度和效率。
同时ARX还具有如下优点:
﹙l﹚可以直接实现多文档操作,而VisualLisp不能; ﹙2﹚可以自定义图形或非图形对象,而VisualLisp不能;
﹙3﹚可直接访问AutoCAD数据库的核心数据结构和代码,能够在运行其间扩展AutoCAD固有的类及其功能,创建能够全面享受AutoCAD固有命令特权的新命令。
但由于ARX是在Windows及Visual C++编程环境运行,所以对开发者的编程能力要求较高,同时开发过程也相当复杂。
ARX缺点是:
﹙l﹚与AutocAD命令交互的功能,很难借用AutoCAD强大的绘图命令; ﹙2﹚对程序设计者的计算和专业知识、软件专业知识要求较高。而且程序运行风险较大,ARX程序的崩溃,常常会连带AutoCAD甚至windows一起崩溃。
4. VisualAutoLISP、VBA和ObjectARX的比较 从AutoCAD R14开始提供
10
江西理工大学2012届专科生毕业设计(论文)
了采用对象编程技术的Visual AutoLISP语言,大大增强了AutoLISP的编程能力,是AutoLISP[8]编程技术自1985年嵌入AutoCAD的百万用户传统的应用开发手段向新一代对象编程技术的飞跃。
VisualAutoLISP是一个使用LISP语言开发和定制AutoCAD的可视化开发环境。它扩展和增强了现有的AutoLISP语言,提供了程序的编写和调试环境,可将LISP程序编译成ObjectARX,大大提高了CAD编程效率和性能,是一个崭新的一体化可视CAD编程环境。 VisualAutoLISP提供标准Windows安装界面,安装方便。安装完后,进入AutoCAD,在命令行上输入VLIDE就可以进入Vsua1AutoLISP编程环境。
对使用AutoLISP进行二次开发的人员,Visua1AutoLISP既是LISP编辑器又是编译器,它提供了一套简单的可视环境去开发和维护用户原有的AutoLISP源程序。 VisualAutoLISP新特点如下:
﹙l﹚使用VisualAutoLISP可使用户的AutoCAD应用程序运行更快,它的编译器将LISP源程序编译成ObjeetARX应用程序,由于LISP程序通过AutoCAD的ObjectARX接口运行,所以比AutoLISP加载运行快3倍~10倍,并且省去了每次打开新图再调用的麻烦。
﹙2﹚由于VisualAutoLISP采用ObjectARX平台,可以将AutoCAD和其他的应用程序如Windows、Office、ActiveX包含到AutoLISP源程序中,改善了ActiveX与AutoCAD对象模型之间接口特性,提高了应用程序的灵活性。
﹙3﹚由于VisualAutoLISP编译成的二进制代码无法直接读取,所以它生成的应用程序更安全。
VisualAutoLISP可视化编程提供了更多的实用功能:
﹙1﹚提供控制台,在控制台的命令行作AutoLISP命令,可以直接看到结果。 ﹙2﹚彩色字符源代码检查,可以在编辑窗中同时显示AutoLIsP和DCL源
程序的命令,注释、提示等以各种颜色区分表示出来,易于检查。 ﹙3﹚LISP程序自动缩进和标准格式化。 ﹙4﹚括号匹配检查。
﹙5﹚多窗口同时编辑LISP和DCL文件,并提供DCL对话框预览功能。 ﹙6﹚可直接将用户的LISP+ DCL文件编译成一个ObjectARX程序,并可
连接ObjectARX、VC、VisualBasic、AetiveX的AutoCAD程序。 使用VisualAut0LISP编程可避免LISP程序繁琐的调试过程,提高了编程效率,它不仅对CAD编程人员提供了新的强大编程工具,而且对每个AutoCAD使用者都提供了更简单易用的LISP环境。
11
江西理工大学2012届专科生毕业设计(论文)
2.4 各种工具的比较与选择
各种开发工具开发效率的比较见表2.4 开发工具 ObjectARX VisualL ISP VBA 开发语言 C++ AutoLISP VB 性能 非常强大 一般 一般 执行速度 快 慢 很快 开发难度 大 小 很小 表2.4 AutoCAD几种主要二次开发工具性能比较
从上表可以看出Visual LISP和VBA简单易学,开发周期短,适合开发一些小型的实用工具。目前,第一代的AutoLISP己被第三代的VisualAutoLISP完全替代,第二代的ADS在AutoCAD2000中就己不再支持,所以,第三代开发工具将成为今后AutoCAD二次开发的必然选择。
LISP对于AutoCAD的二次开发是一个既简单又实用的选择,同时也具有更广阔的应用前景,AutoLISP是内嵌于AutoCAD的LISP编程语言,作为应用接口语言,与Visual Basie、ADS、ObjectARX等其他二次开发语言相比,AutoLISP的突出优点就在于它最易学习和掌握,程序全部由函数组成,语法简单,不需要进行数据类型定义,从而避免了因数据类型不匹配而导致的程序错误;图形处理功能强大,它几乎能调用CAD所有的内部命令,可以方便地在计算、绘图之间进行切换;并能够通过与其他语言或方法的结合,实现复杂的AutoCAD操作。作为升级版的Viusal LISP则与AuotLISP完全兼容,并新增了系统文件操作、内存相互通信、访问外部数据库等功能。在Viusal LISP提供的可视化的集成开发环境(IDE)中,程序的编辑,加载,调试将更加容易和方便。所以在本软件系统中采用LISP作为二次开发工具。
12
江西理工大学2012届专科生毕业设计(论文)
第三章 电子印章插件的设计及分析
当前AutoCAD电子图纸面临的诸多安全问题,本章结合传统文档使用中的印章的作用,归纳总结出电子印章的功能需求和安全性需求。针对这些需求,结合相关法律规定,设计出完善的电印签章解决方案并对该方案进行了分析。
3.1设计要求 3.1.1功能需求:
在传统的文档审批和发布过程中,人们往往通过对文档的签署(签名、签字、签章,本文只研究签章)行为表明对文档的拥有权或者某种意见。这体现了人们对于文档在身份认证和不可否认性方面的需求,而传统的签署过程正好满足了这些需求。表现在以下几个方面:
(1)认证
把签章人和其签署的文档关联起来,通过签章表明签章人身份的真实性。这个意义是建立在“签章和签名是不容易伪造的”这一事实基础之上的。另外,签章自古以来都是身份和权力的象征,不论私人的还是公家的,都具有很高的可信度。签章的这种权威性使得我们都够信任签章即可代表签章人本身。
(2)表明意向
通过签章行为可以表明签章人对文档的某种意见,比如已阅览、审批通过或者未通过等,也可以表示签章人对文档拥有权的声明。
(3)不可否认性
分为内容不可否认性和操作不可否认性。内容不可否认是指文档的拥有者必须对其所拥有的文档的内容负责。操作不可否认性主要是指用户对其在文档上的签署行为负有责任。
以上是传统签署过程所含有(或者可能隐含)的意义。除开这些,我们还希望签章表达的是签章人对当前文档的意向(即签章前瞬间所见的文档,签章后的修改应视作无效)。然而,传统纸质文档上的签章并不能保证数据的完整性,或者防止签章后的文件被非法篡改。
由于办公文档的多元化发展,出现的文件格式越来越多,如Word、Excel、PowerPoint、PDF等,针对某一种格式的文档保护不仅耗费开发商的精力,也增加了用户使用上的复杂度。针对这种情况,开发者将各类文档统一转换成版式文档,然后对其进行保护。这样做提高了使用效率,但是却限制了用户的使用。为
13
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库肖涛毕业论文(3)在线全文阅读。
相关推荐: