AutoCAD二次开发在土工试验中的应用

AutoCAD二次开发在土工试验中的应用
AutoCAD二次开发在土工试验中的应用

AutoCAD 二次开发在土工试验中的应用

胡建平

(中交第三航务工程勘察设计院有限公司,上海200032)

摘要:利用Visual LISP 语言对AutoCAD 进行二次开发,提出解决室内土工试验自动化数据采集、计算、曲线自动生成新方案;介绍程序技术特点、算法优劣判定、浮动图形菜单制作等编程技巧,具有鲜明的技术创新点和广阔的市场前景。该程序已应用于企业的实际工程中,填补了国内该领域的一个空白。

关键词:AutoCAD ;Visual LISP ;土工试验;浮动菜单中图分类号:TP 311.1

文献标志码:B

文章编号:1002-4972(2011)04-0145-04

Application of re-development of AutoCAD in soil test

HU Jian-ping

(CCCC Third Harbor Consultants Co.,Ltd.,Shanghai 200032,China)

Abstract:Using Visual LISP language,we conducted the re-development of AutoCAD,and put forward a

new method for the data collection,calculation and automatic graphing of lab soil test.The programming skills including the technical characteristics of the program,the algorithm,and float menu,etc.have distinct innovations and a broad application prospect.The program has been used in engineering and has filled the blank in the domain of our country.

Key words:AutoCAD;Visual LISP;soil test;float menu

2011年4月

第4期总第452期Apr.2011

No.4Serial No.452

水运工程

Port &Waterway Engineering 收稿日期:2010-08-27

作者简介:胡建平(1956—),男,高级工程师,从事工程地质与测绘信息系统软件开发。

土工试验数据处理及各类图表绘制是工程地质报告的基础。根据业主或工程设计需要,往往需要提供土的各类分层试验图表曲线和标准的AutoCAD 文件(后缀为dwg )。目前国内土工试验室往往采用自动化采集软件处理后直接屏幕显示、编辑、打印,图表格式固化,用户无法对打印的图表格式进行修改、编辑。如何利用AutoCAD 的二次开发功能,编制程序采集自动化系统接口数据,自动计算和分析并绘制出三轴剪切、固结试验E -log P 、t 90、高压P c 、直剪c 、准等各类常规试验曲线,生成通用类型的dwg 格式文件,以适应境内外各类工程的需求,避免了重复计算与绘图。

笔者用DCL (Dialog Control Language )和Visual

LISP 语言开发了土工图表采集处理系统,使得CAD 与自动化采集系统更紧密地结合,实时或动态采集自动化接口数据,程序计算出土的单个试样或分层统计各类指标及绘制出各类图表曲线。程序依据GB/T 50123—1999《土工试验方法》和水利部《土工试验规程》及港工、上海规范等要求编写,从而为程序设计奠定基础。1

程序设计思路

AutoCAD 采用开放性的体系结构,允许用户进行二次开发。随着系统功能的逐渐增加和版本的不断升级,AutoCAD 提供了一系列开发工具,其中比较著名的有Visual LISP 语言,它嵌入在AutoCAD 内部,是一种智能化语言[1-2]。

利用参数化

水运工程2011年

绘图方法可以在较短的时间内快速、高质量地完成程序开发,而且非常适于图形的应用。由于AutoCAD 版本具有向下兼容的特点,本程序采用Autodesk 公司最近发布的AutoCAD 2010为运行环境,使用Visual LISP 语言进行二次开发,程序读取自动化系统接口数据,生成通用格式的各类土工试验图表及图形,满足所有用户特别是一些特殊用户的要求。该系统主要由三部分组成:1)程序模块设计;2)用户界面设计;3)设计方法。2

程序模块设计

建立融合行业知识的产品参数化模型,可以有效地支持系统化产品设计,根据用户的需求和Visual LISP 特点,设计软件总体结构框架(图1)。用户接触到的界面由DCL 对话框完成,在对话框中输入必要的参数,系统据此自动调用不同的试验项目计算模块和与之匹配的算法,生成标准化CAD 图形[3]。

软件框架特色:

1)各行业、地区规范要求不同,土的常量、经验值有所不同,需建立不同的数据模型。

2)各试验曲线模块集成封装,使得逻辑概念更加清晰;软件设计者可以根据需求补充和完善,无需关心其他计算模块的算法和节点间的逻辑关系。

3)建立多种算法模块,独立封装;通用性的源码采用控件或类、类模块的方式共享。算法的多样性、独立性,以应对各类试验的需求。

4)建立试验成果曲线图表生成的反馈机制,便于用户改变参数,生成较为理想化的曲线形态。

3用户界面设计

在AutoCAD R14—2007环境中,用户设计的

主流普遍采用下拉式菜单。随着AutoCAD 版本的不断升级,一种新型的浮动式菜单出现,功能类似于工具条,但远胜一筹。采用AutoCAD 浮动式窗体技术完全能设计出类似Office —AutoCAD 2007以上版本的界面,只要把各种功能的独立模块指令名嵌入其中。用户可以拖动所设计的浮动式菜单到屏幕任何处或隐藏,实现用户窗体最优化状态。鼠标移到浮动式菜单上,即刻显示该命令的功能、说明、帮助等信息,即用即会,这项技术已成为未来发展的方向。本系统融入了该项技术,获得成功。以下介绍在AutoCAD 2010中用户如何设计浮动菜单。

首先,运行AutoCAD 2010,在命令窗口中输入“cui ”命令,单击“用户自定义界面”

中(创建新命令)按钮,即可定义新命令。将程序“土工曲线.lsp ”(土工曲线为程序名)中的命令添加到宏窗格中,其他窗格(如:名称、说明、图像等)均可按个人喜好设定,输入完成后单击“应用”按钮,再单击“确定”按钮关闭“自定义用户界面”对话框,逐一在对话框中添加子程序模块名称,完成浮动菜单的设计,结果如图2所示。

4设计方法4.1

用户程序加载

在AutoCAD 2010中实现用户程序自动加载的方法与以前版本基本相同,都是通过“Auto -CAD2010doc.lsp ”或者在“AutoCAD2010.lsp ”文

图1总体结构设计框架

图2

用户浮动菜单

146

··

第4期图4程序运行对话框

图3DCL 对话框树型结构

件中添加如下语句:(load “土工曲线.lsp ”)实现的。

前提是程序调试无误后再添加,否则加载后会出错。建议添加前先将原来的文件(指:Auto -CAD2010doc.lsp )备份。

如果要加载的“土工曲线.lsp ”程序没有在库路径下,则应设置该文件的存放路径,可在Auto -CAD “工具”→“选项”中设置,详细了解可参见“帮助”。4.2

图标及幻灯片制作

制作一个体现某功能用途的图标,只要掌握技巧,很容易实现。好的图标用户一目了然,AutoCAD 2010上的图标都是经典之作,可用来参考。以制作一个E-P 曲线图标为例,笔者在Auto -CAD 环境下,先用CAD 命令绘制一幅E-P 曲线视图(与规范要求的曲线类似),为了图形美观、精确,线条可绘制的粗些,制成后用Zoom 命令,使图标尽可能充满整个屏幕,由于bmp 文件图标修改不便,若要修改,需要在原视图中进行,故视图创造完成后必须保存,以便反复修改。运行Adobe Photoshop CS4,新建一幅图,把刚绘制的E-P 曲线视图插入其中,进行居中、修饰、亮度调准等,然后选择“图像”→“图像大小”→“像素大小”→“文件”→“存储为”→生成24×24或16×16bmp 图标,逐个制作具有代表性的图标,存到一个指定的目录如D:\Tg-bmp 中,以便制作浮动菜单时调用。一个线型美观、色调清晰、分布合理的图标要进行多次修改。

幻灯片是用来在DCL 对话框中模拟显示试验图像的文件,使得用户界面更直观。在模型空间中,用“Mslide ”命令将当前视窗中的图形制成幻灯片,制成后的幻灯片文件后缀为”.sld ”,把所有制成的幻灯片文件存放在一个指定目录中如D :\Tg-sld 中,具体方法与制作bmp 图标类似,这里不再叙述。4.3

对话框设计

为了增加程序可操作性,运行界面采用Auto -CAD 提供的DCL 语言编程。设计一个人机交互界面,清晰明了,方便用户进行参数的输入和选择。DCL 文件由ASCII 码组成,后缀为“.dcl ”,一个

典型的用户对话框结构如图3所示。

从图3可以看出对话框是由其本身的框架和框架中的控件组成。这些基本控件可在AutoCAD 中定义,用户可以使用这些控件进行组合。图3中部分图像框DCL 语句驱动如下:

{:Image //图像控件(E-P 曲线示意图){Width=50;//图像宽度

Aspect_ratio=0.7;//图像长宽比例Key="Ep_Picture";//图像控件关键字Color=-2;//图像背景色}

调试完成后,用户可以开始运行自编程序。由于上述程序“土工曲线.lsp ”已添加到“Auto -CAD2010doc.lsp ”中,随CAD 启动而加载。现举例:运行一项试验曲线程序,以绘制E-P 曲线为例,用户点击已设计完成的浮动菜单,如图2中第2行“E-P 曲线”图标,屏幕上显示的对话框如图4所示。

用户逐一填入工程编号、页面编号、起始页码等参数后,按“确定”,程序运行后CAD 窗口显示如图5所示,可用来编辑、打印或保存为“dwg ”文件

胡建平:AutoCAD 二次开发在土工试验中的应用

147··

水运工程2011年

图5E-P 成果曲线

4.4算法选择

根据国内外土工行业规范要求,室内土工试验计算成果、绘制曲线涉及到线性最小二乘法;直线拟合;排序;样条插值;拉格朗日插值等算法。算法筛选和择优原则如下[4]:

1)执行算法的时间,时间耗费长短;2)执行算法的存储空间,占用存储空间多少。

算法运行耗时短、占用存储空间少为优先选用。反复测试,算法稳定后集成封装,算法调用后变量、数组等占用的内存空间,程序中需进行释放处理,不能忽略。5结语

利用AutoCAD 二次开发功能绘制出各类土工试验曲线图表,为地质成果报告提供了分析依据。用Visual LISP 、DCL 语言编程所生成通用的

“dwg ”文件,满足了各类工程和不同用户的需求。因此这种方法具有重要的推广价值。参考文献:

[1]

汤峻.AutoCAD 2000高级应用与Visual LISP 开发宝典[M].北京:人民邮电出版社,2001.

[2]李学志.Visual LISP 程序设计[M].北京:清华大学大学

出版社,2006.

[3]胡建平,吴卫平.Delaunay 三角网在河床冲淤计算中的

应用[J].海洋测绘,2009,29(6):68-70.

[4]胡建平,虞祖培.基于AutoCAD 的等高线自动绘制程序

设计[J].测绘通报,2008(5):65-67.[5]

王东卫,史衍伟.谈Visual LISP 在工程地质CAD 方面的应用[J].西部探矿工程,2004(9):103-105.

[6]刘言松,贺炜.AutoCAD 2009中文版二次开发实例教

程[M].北京:化学工业出版社,2009.

[7]吴永进,林美樱.Visual LISP&DCL 基础[M].北京:中国

铁道出版社,2002.

(本文编辑郭雪珍

)

148

··

2021年如何选择autocad二次开发的工具

如何选择autocad二次开发的工具AutoCAD提供了三种主要的开发工具,分别是:使用C/C++的ObjectARX,VB/VBA的ActiveX开发,以及AutoLISP/VisualLISP开发工具。每一个开发者都有自己的爱好,但是抛开所有的偏爱,人们经常想知道哪一种最好,我到底应该选择哪种工具?给这些人的答案是:“它取决于你要完成什么工作。”每一种开发工具都有不同的东西,在某谢情况下都有不可比拟的优点。当决定究竟使用什么开发工具时,你可以问自己四个问题:哪种语言让我感觉最顺手(舒服)?我有多少时间?谁是我的目标用户,他们有多少使用AutoCAD的经验?我到底需要对AutoCAD控制到什么程度,需要多少可能的窗口类型来尽快完成工作?当我介绍不同开发工具所具有的不同功能时,你可能会明白为什么这四个问题是重要的。在谈及这几种开发工具时,我仅仅将它们看作在AutoCAD中使用的功能,而不将它们看作独立的应用程序。 ObjectARX: 在三种开发工具中,这种工具拥有对AutoCAD最深入的控制能力,能够提供最多类型的窗体。使用ARX可以向AutoCAD注册自己的命令,用户运行你的程序时无需了解关于AutoCAD更多的知识。这种便利的代价就是编制ARX程序比VBA和LISP程序需要花费更多的时间,因此用来编制简单的绘图工具有点浪费了。要掌握ARX的前提是你对C和C++非常熟悉,从个人观点来说,我最喜欢这种工具,但那是因为我做的99%的程序都是用C和C++语言,选择ARX意味着我

不用学习一门新语言。对我来说,回答“哪种语言让我感觉最顺手?”就足够了。ARX能够访问很多的AutoCAD底层工具(这些东西可能VBA和LISP并不能访问),这是大多数开发者选择ARX的主要原因,他们需要作一些用其他两种开发工具不能完成的工作。此外,这也是唯一一种能够确保你的代码安全(不被别人阅读或非法复制)的开发工具。如果你需要开发自定义实体,使用空间过滤,扩展一个使用其他开发工具的应用程序的功能,正在开发用于销售的第三方工具,或者用到一大堆用VBA和LISP不能访问的东西(或者费很大力气去实现的东西),那么ObjectARX是你的最佳选择。 VBA: 如果你是第一次开发AutoCAD应用程序,那么这就是最适合你的工具!这种工具对初学者来说非常友好,Visual Basic的代码阅读起来非常容易,很多初学者仅读了函数的名称就能理解一个问题。无论如何创建或者执行LISP命令来扩充你的访问手段,这种开发工具没有ARX和LISP那么多对AutoCAD访问的方式(译者注:这也有情可原,毕竟VBA和另外两种开发工具比起来年轻得多!)如果你对VBA非常精通,可以通过再对AutoCAD命令行进行仔细研究和分类(这句话可能不太通顺,原文是:you can subclass the AutoCAD command line),这样你就能实现LISP所能完成的所有功能!对VBA来说,最大的遗憾就是不能向AutoCAD注册命令,必须先用各种加在应用程序的方法将其对应的dvb文件加载,然后通过“工具/宏/宏”菜单项执行,或者在菜单项和自定义的工具栏按钮中执行,如果你的用户的基础知

AutoCAD二次开发实验一

实验一 ObjectARX .NET托管开发包的使用 一,主要内容 1、下载安装ObjectARX .NET托管开发包 2、创建AutoCAD命令 3、创建自定义用户菜单 4、创建自定义用户工具条 5、创建用户自定义窗体 二,主要步骤 1,下载安装ObjectARX 不同的ACAD版本用不同的开发包及开发环境 ACAD2000~ACAD2002 : VC++ 6.0 ACAD2004~ACAD2006 : https://www.360docs.net/doc/4717732268.html, 2002 ACAD2007~ACAD2009 : https://www.360docs.net/doc/4717732268.html, 2005 ACAD2010~ACAD2011 : https://www.360docs.net/doc/4717732268.html, 2008 ACAD2012~ : https://www.360docs.net/doc/4717732268.html, 2010 下载ObjectARX 在打开打开默认网页浏览器并浏览网站. 的网页上,点击License & Download(许可&下载). 填写必填字段并选择ObjectARX for AutoCAD 2012. 点击Submit(提交)按扭. 在下载页, 点击Download Now(现在下载)使用下载管理器或点击Standard Download Method(标准下载方法)使用你的网页浏览器的默认下载方法下载. 点击Save(保存)或用于保存文件到你的本地驱动器的选项。指定下载ObjectARX SDK安装包文件存放的位置。一旦安装包文件下载完成,就浏览你保存在本地的安装并双击它,安装向导将显示在ObjectARX <释放>对话框中, 指定一个新的安装位置或接受默认的安装位置。点击Install(安装)按扭. 如果没有遇到问题,安装向导完成后关闭它 安装ObjectARX向导和托管项目模板 一旦 ObjectARX SDK被安装,请使用默认目录c:\ObjectARX 浏览它的安装文件夹。 (1)AtuoCAD的类库都在此库。 2,Hello World程序创建 1)在https://www.360docs.net/doc/4717732268.html, 2012中建项目HelloWorld 采用.NET托管API →从“项目类型”列表中选择第二个“Visual C#”,从模板中选择“类库”,输入项目名称“HelloWorld” →.单击“确定”按钮 如果弹出如下对话框说明没安装正确,可以手动加载托管DLL →从ObjectARX安装目录下加载acmgd.dll和acdbmgd.dll →使用.NET对象浏览器查看 AcMgd.dll--AutoCAD .NET托管类

基于VBA的AutoCAD二次开发及应用实例

基于VBA的AutoCAD二次开发及应用实例 时间:2011-10-03 18:25:09 来源:作者: 1引言 AutOCAD2005是AutOdesk公司的系列产品,该软件从其使用和设计思路上都秉承了工程制图人员的绘图习惯,能够非常轻松地绘制出带有平面视图和三维渲染效果的工程图纸,是绘图人员的一个理想工具。随着CAD基础理论和应用技术的不断发展,对CAD系统的功能要求也越来越高。因而AutoCAD 不可能完全满足每个用户的具体而特定的要求。设计人员希望它能从本质上减轻大量简单烦琐的工作量,使他们能集中精力于那些富有创造性的高层次思维活动中。 AutoCAD提供的开放式体系结构允许用户和开发者采用高级编程语言对其进行扩充和修改,即二次开发,能最大限度地满足用户的特殊要求,更方便、更规范、更专业的实现设计和绘图中的应用。VBA最早是建立在0ffice97中的标准宏语言,由于它在开发方面的易用性及具有的强大功能,许多软件开发商都将其嵌入自己的应用程序中,作为一种开发工具提供给用户使用。AutOdeSk公司自从Aut0CADRl4.0l版开始,内置了VBA开发工具。 新一代程序开发工具ViSual BaSic,不仅继承了面向对象方法的特性,同时具备可视化程序语言及程序产生器的概念。 VBA(visual Basic For Apphcation)是AutoCAD R12以后推出的一种新的编程环境,提供了以Visual Basic为基础的面向对象的开发特征及程序接口,能真正快速地访问AutOCAD图形数据库,能明显提高软件开发和维护的效率。 2 VBA的技术特性 2.1 VBA开发AUTOCAD的技术特点 VBA是微软开发出来的应用程序共享一种通用的自动化语言,它可以使常用的程序自动化,并可以创建自定义的解决方案。 VBA被集成到AutoCAD中,VBA和AutoCAD中强大的Activex自动化对象模型的结合,代表了一种新型的定制AutoCAD的模式构架。通过VBA,我们可以操作AutoCAD2004,控制ActiveX和其它一些应用程序,使之相互之间发生互易活动下面就是VBA的主要功能: (1)VBA提供强大的窗体创建功能,为应用程序建立对话框及其他屏幕界面。 (2)可以创建自己的工具条。 (3)可以创建功能强大的模块级宏指令,宏名实质上就是模块的过程名。 (4)提供建立类模块的功能,这对开发大型工程非常有用,因此类可以提供重用组。 (5)具备完善的数据访问和管理能力,通过ADO(ActivexData Objects),可以对Access数据库或其他外部数据库(像dBase,FoxPro等)实现访问和管理。此功能比直接使用AutoCAD的数据库管理系统要方便,且功能强大。 2.2 VBA AutoCAD ActiveX Automation对象模型 VBA是通过AutoCAD ActiveX Automation接口来建立和AutoCAD对象问的联系。ActiveX是建立在COM对象模型之上的一个标准通信协议,它允许对象之间通过一定的接口相互通信。

如何维护老客户与开拓新增客户

如何维护老客户与开拓新增客户 导读: 准客户开发只有两种途径,一是自己开发,一是客户帮你开发,所以请你每天去回访你的客户。 “建立影响力中心,充分运用转介绍,促使你的寿险事业如日中天。因为: 第一,推荐你的同事或街坊拥有保险保障,你们单位你们小区就能成为保险公司的"大户"; 第二,帮助你的亲朋好友拥有保险的利益,其实就是帮助你自己,因为他们的问题同样会成为你的困扰。如果他不向保险公司投保,就等于向你投保,而且完全免费!请问你愿意这种情况发生吗?” 保险服务包括售前服务、售中服务和售后服务,也就是说,客户服务工作贯穿我们从事保险工作的始终。如何才能做到、做好客户服务工作?我们必须首先从心态和行为上做——保险生活化,生活保险化。 显然,售后服务是维护老客户的必备方式和有效手段,维护好老客户其实正是增添新客户的高效前提!售后服务的另一种说法叫做“客户回访”,准客户开发只有两种途径,一是自己开发,一是客户帮你开发,所以请你每天去回访你的客户。

一个成功的代理人每天都会拨出专门的时间去拜访他的客户,让客户帮助自己开发准客户,所以他会越做越轻松,越做越有成就感。一个失败的代理人每天都会拨出全部的时间去拜访他的准客户,只能依赖自己开发准客户,所以他会越做越辛苦,越做越有挫折感。 做好客户回访的关键其实并非在如何回访?因为人的不同,方式方法亦不一而同,关键在于“去”回访,在于行动,在于走出去,走进客户。保险营销员在其职业生涯当中,常常会出现三大致命伤,首先是”懒”,这其实就是失败的开始;其次是“傲”,这是保险业务员职业生涯中的第一大病,其实,每个代理人,在发展的过程中,要学会谦逊,在获得成绩时,掌声愈大、腰要愈软;三是“伪”,这是人际关系的致命伤。 作为一个成功的寿险营销员,要做到“人生三勤”。即勤能补拙、勤能补运、勤能补情。 勤能补拙。笨鸟先飞,成事靠准备,不是靠智慧。勤能补运(时)。客户被拜访99次,第100次被你访到,幸运成交。勤能补情。多与顾客接触,能增近感情。 加强客户回访,要成为我们日常工作的好习惯。成功的人都有好习惯,好习惯是勉强来的,勉强成习惯,习惯成自然。因此,加强客户回访,不断给客户以保险的观念与理财分析,你的诚心,必将能打动客户。我们要让客户明白,买保险不仅要买单一的保险产品,更要买组合型的产品,买全方位的保障。我们要让客户明白,不仅自己要买保险,自己身边的关系人也必须要购买保险。保险应当成为人们生活当中的必须品,人人都该拥有足够的保险保障,从而获得自立、自尊的尊贵生活。保险从业人员应充分运用保险的这一独特功用,为更多的客户提供保险保障服务,从而使我们自己的寿险从业生涯走向良性循环。

客户的维护与开发

读《怎样做好客户保持》后感 -------胡玉彬 客户是一个公司的根本,也是企业赖以发展的源泉,一个企业的持续发展,除了正常的管理,经营;客户的开发和维护显然是重中之重。 开发一个客户和维护一个客户,大家都知道,从经济学角度来讲,很明显,维护客户能够大大的节约成本,正如文中所讲“开发一个新客户所需要花费的成本是维护一个老客户的5-10倍,客户保持比吸引新客户更能够降低成本”。 我们只需要花开发新客户1/3的精力,1/5的成本,不仅能维护好客户,还能在现有客户的基础上越做越大,因为,客户也要发展。一个一点不图发展的客户,不是一个好客户。我们要在有限的资源和精力情况下,最大效益的保持最有价值的客户。 根据已经成交的客户使用情况,整理归纳,有一个清晰明了的客户信息数据库,知道哪些是现有最大客户利益化,哪些是最有潜力,哪些是长期维护的客户,根据不同客户的情况,有自己的一套维护体系,有限的资源,有效的时间,效果最好。 中国的社会,归根到底,是人情的社会,所以要重视与客户情感的建立,正如文中所言“把客户感情的维护与企业提供的产品和服务紧密的联系在一起”,这样才能大大提高客户对公司,对产品的认可度和依赖度。 客户的维护,没有客户开发那样有难度,有刺激,和成就感,相

比而言,维护客户相对比较平淡和持久。这就更要求我们自己要注意细节,注意自己内心对客户的理解和尊敬,客户是自己的衣食父母,只有在日久的维护中,始终能保持一颗关心,帮助客户的心态,才能真正让客户感觉到,我们是在和他们共成长,才会有牢靠的客情关系。 用真心和耐心去维护客户,用信心和激情去开发客户,在维护中学习,从开发中反思,做出属于自己的品牌营销!

AutoCAD二次开发教程复习总结

CAD复习题及答案1、AutoLISP 2、VisualLISP 3、VBA 4、ADS 5、ObjectARX

6、.NET 托管API 7、ActiveX Automation

8、Visual Java 1、 AutoCAD二次开发方式有哪些?各自优缺点? 2、 AutoCAD 中实现ObjectARX .NET API 的有哪些优点? 3、 AutoCAD .NET API 的三个主要的DLL文件是? 4、简述ObjectARX .NET API所对应的https://www.360docs.net/doc/4717732268.html,版本。 5、简述AutoCAD数据库的组成。 AutoCAD数据库是用来管理当前图形中的图元实体和其他非几何信息的容器对象,一个AutoCAD数据库包含一套固定的符号表和命名的对象词典,每一个符号表包含一个特定符号

表记录类的实例,例如层表(AcDbLayerTable)中包含层表的记录,块表(AcDbBlockTable)中包含块表记录,所有的AutoCAD实体均包含于块表记录中。词典提供了一种通用容器来存储对象,它可以保存AcDbObject对象以及其它对象,也可以创建新的对象词典,将新的数据库元素加入其中。 AutoCAD数据库的组成如图所示,从图中我们可以看出数据库主要由一下内容组成:1)层表AcDbLayerTable和层表记录AcDbLayerTableRecord,。 2)块表AcDbBlockTable和块表记录AcDbBlockTableRecord。AutoCAD中所有可见实体均存储在块表记录。块表中包含有两条特殊的记录*MODEL_SPACE(模型空间)和*PAPER_SPACE (图纸空间)。 3)其他符号表和符号表记录。 4)命名对象词典。缺省情况下当AutoCAD数据库被建立以后,词典中就包括了组词典以及MILINE样式词典。 5)符号表和命名对象词典都是存储数据库对象的容器,用于组织和管理数据库对象。AutoCAD数据库通常有9个固定类型的符号表,开发者不能向数据库中新增或者删除任何一种类型符号表,能实现的是向符号表中添加对应的符号表记录。 6、 Application 对象是AutoCAD .NET API 对象模型的根对象,它包括哪些部分? Application 对象是层次结构的根,而且它提供对AutoCAD 的主窗口的访问。

AutoCAD的二次开发

浅谈AutoCAD的二次开发 林学与园林学院 06园林傅欣蕾 摘要:通过对AutoCAD软件发展史的概述,从中归纳出CAD的总体发展趋势。从当今各行业所需的CAD专业化功能,提出对其进行二次开发的意义及具体实施步骤。 关键词:AutoCAD 发展史二次开发专业化功能 1.AutoCAD的发展简史: 1.1、第一次CAD技术革命—曲面造型系统 60年代出现的三维CAD系统只是极为简单的线框式系统。这种初期的线框造型系统不能有效表达几体数据间的拓扑关系。进入70年代,随着贝赛尔算法促使人们用计算机处理由线及曲面问题变得可行。 1.2、第二次CAD技术革命—实体造型技术 1979年世界上第一个完全基于实体造型技术的大型CAD软件发布。由于实体造型技术能够精确表达零件的全部属性,在理论上有助于统一CAD、CAE、CAM的模型表达,给设计带来了惊人的方便性。 1.3、第三次CAD技术革命—参数化技术 1.4、第四次CAD技术革命—变量化技术 成功运用参数化技术之后,开发人员发现了参数化技术尚有许多不足之外。首先,“全尺寸约束”这一硬性规定就干忧和制约着设计者创造力及想象力的发挥。再者,如在设计中关键形体的拓扑关系发生改变,失去了某些约束特征也会造成系统数据混乱。 1993年全新体系结构的I-DEAS Master Series软件问世,它第一次将变量化付诸实践。变量化技术既保持了参数化技术的原有优点,同时又克服了它的不足之处。无疑,变量化技术成就了SDRC,也驱动了CAD发展的第四次技术革命。 1.5、CAD的发展方向 任何一种软件都是有缺陷而非完美无瑕的。AutoCAD这一软件也是一样,只有在不断的发展中,找到自己的不足力求弥补,才能趋向臻化,达到一种完美。 纵观CAD的发展史,我们可以大略地看出该软件是朝着“人工智能化”、“专业应用化”等方向发展的。 而实现这样的发展方向的最佳手段就是通过对CAD的二次开发。将各类专业设计技术研制成CAD系统的各类设计工具和知识,从而使使用者能按照专业设计的方向进行,可以大大提高CAD的设计效率。

AutoCAD的二次开发

AutoCAD的二次开发主要涉及以下内容: (1)编写各种用户自定义函数并形成若干LISP、ARX、VLX或ADS文件,以及一些DCL文件。 (2)建立符合自己要求的菜单文件,一般可在AutoCAD原菜单文件内添加自己的内容,对于AutoCAD2000版本还可增加部分菜单文件,然后经交互方式加入到系统中去。 (3)在系统的ACAD.LSP或类似文件中加入某些内容以便进行各种初始化操作,如在启动时立即装入一些文件等。 (4)通过系统对话框设置某些路径。这些操作在程序开发成功后向其它AutoCAD系统上安装应用,特别是需要大批安装时,需要进行很多文件检索、内容增删、子目录创建、文件拷贝、系统设置等繁琐工作,如能令上述工作全部自动进行,使整个二次开发程序在无人干预的情况下嵌入系统,将大大提高工作效率。为此笔者用VC++开发了一套自动安装程序,使原本需要五、六分钟的人工操作在十几秒内即可自动完成。 一、基本思路 整个安装程序遵循以下思路: 1)首先获得所在机器AutoCAD2000系统的安装路径; 2)寻找菜单文件AutoCAD2000\\support\\acad.mnu,打开文件并将要添加的内容加至末尾; 3)寻找LISP文件AutoCAD2000\\support\\acad2000doc.lsp,打开文件并将要添加的内容加至末尾; 4)创建一个预先命名的子目录,将所有二次开发形成的各类文件拷入;

5)给出信息框,告知安装成功,如有问题则告知安装失败。 需要指出的是,在添入acad2000doc.lsp的内容中须有如下语句:(command“_menu”(strcat (getvar "menuname") ".mnu")),目的是为了强制执行菜单文件装入命令,将改动后的acad.mnu文件编译后装入。另外,在添入acad2000doc.lsp的内容中还有一赋值语句,将准备创建的包含所有二次开发生成文件的子目录全路径名赋予一全局变量,以供二次开发程序在需要时调用,从而避免了在AutoCAD环境下交互设定路径的麻烦。 二、实现方式及关键函数 为获得AutoCAD2000的安装路径,需要利用WINDOWS系统注册表的有关功能。 首先通过RegOpenKey函数打开注册表: HKEY hKey; LONGret=RegOpenKey( HKEY_LOCAL_MACHINE, "Software\\Autodesk\\AutoCAD\\R14.0\\ACAD-1:804", &hKey); 其中第一参数HKEY_LOCAL-MACHINE为注册表中预定义的主键句柄,第二参数为注册表中HKEY_LOCAL_MACHINE下的子键内容,第三参数hKey将返回一子键句柄,用于接下来的键值查询。若该函数运行成功,将返回一长整型数ERROR_SUCCESS。 接下来利用RegQueryValueEx函数进行键值查询: DWORD dwType=REG_SZ; BYTE szData[100];

Autocad-VBA二次开发简易教程

第一课:入门 1.为什么要写这个教程 市面上ACAD VBA的书不多,它的帮助是英文版的,很多人看不懂。其实我转行已经好几年了,而且手艺也慢慢生疏了,写个教程对自己来说也是一次复习。 2.什么是Autocad VBA? VBA是Visual Basic for Applications的英文缩写,它是一个功能强大的开发工具,学好VBA可以成倍甚至成百、成万倍提高工作效率,在工作中,有很多任务仅用ACAD命令不可能完成的,只要学好VBA就可以做到,相信到时候您一定会得到同事的佩服、老板的器重。 3、VBA有多难? 相信大家都知道Basic是的含义。应该承认,我的水平还不高,错误之处在所难免,如果大家发现错误一定要提出批评,以便及时更正。 4、怎样学习VBA? 介绍大家一个学习公式:信心+恒心=开心。仔细阅读本教程,完成例题,在学习的过程中一定要多思考,多想一些是什么、为什么。本教程将陆续发布在CAD世界论坛上,您不需要付费就可以学习。本作者在此郑重承诺:关于本教程中有任何疑问,可以跟贴提问,只要有时间,本人一定会耐心解答。我不会发到任何人的邮箱中,您自己在论坛上找就可以了,请不要再向我索要这份教程。 5、现在我们开始编写第一个程序:画一百个同心圆 第一步:复制下面的红色代码 第二步:在模型空间按快捷键Alt+F8,出现宏窗口 第三步:在宏名称中填写C100,点“创建”、“确定” 第四步:在Sub c100()和End Sub之间粘贴代码 第五步:回到模型空间,再次按Alt+F8,点击“运行” Sub c100() Dim cc(0 To 2) As Double '声明坐标变量 cc(0) = 1000 '定义圆心座标 cc(1) = 1000 cc(2) = 0 For i = 1 To 1000 Step 10 '开始循环 Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆 Next i End Sub 也许您还看不懂上面的代码,这没有关系,只要能把同心画出来就可以了,祝您成功。 第二课编程基础 本课主要任务是对上一课的例程进行详细分析 下面是源码: Sub c100() Dim cc(0 To 2) As Double '声明坐标变量 cc(0) = 1000 '定义圆心座标 cc(1) = 1000 cc(2) = 0 For i = 1 To 1000 Step 10 '开始循环 Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆

AutoCAD二次开发教程

第 1章 Hello World: 工程的创建 在这一章中,我们将不使用ObjectARX向导来创建一个新的工程。我们将使用Visual Studio .NET来创建一个新的类库工程。通过这个工程,你可以创建一个能被AutoCAD装载的.NET dll文件。这个dll文件会向AutoCAD加入一个名为“HelloWorld”的新命令。当用户运行这个命令后,在AutoCAD 命令行上将显示“Hello World”文本。 1) 启动Visual https://www.360docs.net/doc/4717732268.html,,选择”文件>新建>工程”(File> New> Project)。在新建工程对话框中选择工程类型为”Visual Basic 工程”,然后选择”类库”模板,在工程名字框中输入”Lab1”,然后选择工程存放的位置。点击确定按钮来创建工程。 2) 在工程的Class1.vb文件中,一个公有类“Class1”已经被系统自动创建了。接下来向这个类加入命令。要加入命令,你必须使用AutoCAD .NET托管封装类。这些托管封装类包含在两个托管模块中。要加入对这两个托管模块的引用,请用鼠标右键单击”引用”然后选择”添加引用”。在弹出的”添加引用”对话框中选择”浏览”。在”选择组件”对话框中,选择AutoCAD 2006的安装目录(这里假定为C:\Program Files\AutoCAD 2006\),在这个目录下找到“acdbmgd.dll”然后选择并打开它。再一次选择”浏览”,在AutoCAD 2006 的安装目录下找到“acmgd.dll”并打开它。当这两个组件被加入后,请单击”添加引用” 对话框中的”确定”按钮。正如它们的名字所表示的,acdbmgd.dll包含ObjectDBX托管类,而acmgd.dll包含AutoCAD托管类。 3) 使用对象浏览器(Visual https://www.360docs.net/doc/4717732268.html,的”查看>其它窗口>对象浏览器”菜单项)来浏览加入的两个托管模块所提供的类。请展开“AutoCAD .NET Managed Wrapper”对象(在对象浏览器中显示为acmgd),在整个教程中我们将使用这个对象中的类。在本章中,我们将使用“Autodesk.AutoCAD.EditorInput.Editor”类的一个实例来在AutoCAD命令行中显示文本。请再展开“ObjectDBX .NET Managed Wrapper” 对象(在对象浏览器中显示为acdbmgd),这个对象中的类将被用来访问和编辑AutoCAD图形中的实体(这部分内容将在以后的章节中介绍)。 4) 引用了ObjectARX .NET 封装类后,我们就可以导入它们。在Class1类的声明语句(位于Class1.vb文件的顶部的)之前,导入ApplicationServices, EditorInput 和 Runtime 命名空间。 Imports Autodesk.AutoCAD.ApplicationServices Imports Autodesk.AutoCAD.EditorInput Imports Autodesk.AutoCAD.Runtime 5) 接下来在类Class1中加入命令。要加入能在AutoCAD 中调用的命令,你必须使用“CommandMethod”属性。这个属性由Runtime命名空间提供。在类Class1中加入下列属性和子程序。注意续行符” _”的使用。 Public Class Class1 _ Public Sub HelloWorld() End Sub End Class 6) 当“HelloWorld”命令在AutoCAD中运行的时候,上面定义的HelloWorld子程序就会被调用。在这个子程序中,一个Editor类的实例将被创建。Editor类拥有访问AutoCAD命令行的相关方法,它还包括选择对象和其它一些重要的功能。AutoCAD当前活动文档的Editor 对象可以使用Application类来访问。当Editor对象被创建后,你可以使用它的

AutoCAD二次开发

第一课:入门 1.为什么要写这个教程市面上ACAD VBA的书不多,它的帮助是英文版的,很多人看不懂。其实我转行已经好几年了,而且手艺也慢慢生疏了,写个教程对自己来说也是一次复习。 2.什么是Autocad VBA? VBA是Visual Basic for Applications的英文缩写,它是一个功能强大的开发工具,学好VBA可以成倍甚至成百、成万倍提高工作效率,在工作中,有很多任务仅用ACAD命令不可能完成的,只要学好VBA就可以做到,相信到时候您一定会得到同事的佩服、老板的器重。 3、VBA有多难?相信大家都知道Basic是的含义。应该承认,我的水平还不高,错误之处在所难免,如果大家发现错误一定要提出批评,以便及时更正。 4、怎样学习VBA?介绍大家一个学习公式:信心+恒心=开心。仔细阅读本教程,完成例题,在学习的过程中一定要多思考,多想一些是什么、为什么。本教程将陆续发布在CAD世界论坛上,您不需要付费就可以学习。本作者在此郑重承诺:关于本教程中有任何疑问,可以跟贴提问,只要有时间,本人一定会耐心解答。我不会发到任何人的邮箱中,您自己在论坛上找就可以了,请不要再向我索要这份教程。 5、现在我们开始编写第一个程序:画一百个同心圆第一步:复制下面的红色代码第二步:在模型空间按快捷键Alt+F8,出现宏窗口第三步:在宏名称中填写C100,点“创建”、“确定” 第四步:在Sub c100(和End Sub之间粘贴代码第五步:回到模型空间,再次按Alt+F8,点击“运行” Sub c100( Dim cc(0 To 2 As Double '声明坐标变量 cc(0 = 1000 '定义圆心座标 cc(1 = 1000 cc(2 = 0 For i = 1 To 1000 Step 10 '开始循环 Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10 '画圆 Next i End Sub 也许您还看不懂上面的代码,这没有关系,只要能把同心画出来就可以了,祝您成功。第二课编程基础本课主要任务是对上一课的例程进行详细分析下面是源码: Sub c100( Dim cc(0 To 2 As Double '声明坐标变量 cc(0 = 1000 '定义圆心座标 cc(1 = 1000 cc(2 = 0 For i = 1 To 1000 Step 10 '开始循环 Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10 '画圆 Next i End Sub 先看第一行和最 后一行:Sub C100( …… End Sub C100是宏的名称,也叫过程名称,当用户执行 C100时程序将运行sub和end sub之间的所有指令。第二行: Dim cc(0 To 2 As Double '声明坐标变量后半段“'声明坐标变量”自动变为绿色字体,它是代码语句的注释,它不会影响程序运行,它的作用是告诉阅读者程序员的想法。对于简单的程

AutoCAD二次开发工具的比较

AutoCAD二次开发工具的比较 AutoCAD是美国Autodesk公司的产品,是当今世界最为流行的计算机辅助设计软件之一,广泛应用于机械、建筑、电子、工程等许多领域。它如此风靡的原因除了具有各种强大的绘图及编辑功能、友好的用户界面、易于操作等特性之外,还在于它所具有的开放式结构(Open Architecture,即允许用户开发自己的命令、标准库文件和各种应用程序)使得通过对AutoCAD进行二次开发来完成各类设计工作变得更加容易。 现在对AutoCAD二次开发工具的几种方法作一个介绍,对比各自的优势及不足,给出各自的适用条件。 1.AutoLISP AutoLISP是AutoCAD最早的一种二次开发语言。它是一种嵌入在AutoCAD内部的CommonLisp程序设计语言子集,并扩充了极强的图形处理功能。此外还可为AutoCAD添加某些特殊的函数功能,如制作幻灯片、菜单等。 AutoLISP应用程序既可完成通常的科学计算和数学分析,又能直接调用几乎全部AutoCAD命令。这两者的有机结合,使它成为专业CAD开发者强有力的理想工具。而Lisp是目前研究和开发人工智能与专家系统CAD的主要编程语言。 AutoLISP有如下优点:(1)语言规则十分简单,易学易用。对计算机了解不太深入的工程专业人员,仅需经短期的学习,就可以熟练掌握这门语言。该语言的简洁性是其它许多计算机语言所无法相比

的。(2)直接针对AutoCAD,解释执行,易于交互。AutoLISP提供的大多数函数都是直接针对AutoCAD操作的,用AutoLISP可编写访问AutoCAD图形数据库(DWG)的操作。(3)解释执行立竿见影。程序员既可以一次运行一段AutoLISP代码,也可以在AutoCAD 的”Command:”下逐条键入AutoLISP指令,立即得到结果。 随着计算机技术的发展,CAD编程逐渐复杂,代码越来越庞大,AutoLISP的缺点也越来越明显。如,综合处理能力差、程序运行速度慢、软件质量不易保证、开发环境集成度低和与人的思维方式不太一致等。由于AutoLISP的这些特点,它仅适合于有能力的终端用户作些自己的开发任务,如今AutoLISP的使用已经逐渐被其它几种开发工具所取代。 2.ADS 它是AutoCAD开发系统(AutoCAD Development)的简称。ADS 的编程界面可使用户用C语言来实现AutoCAD的用户化,既可运行第三方开发的ADS应用程序,也可以编写自己的ADS应用程序。 与AutoLISP相比,ADS程序的优越性如下:(1)具备错综复杂的综合大规模处理能力;(2)由于是编译开发环境,可以检查程序设计语言的逻辑错误,且执行速度快;(3)程序源代码的可读性好于LISP;(4)引入C++高级语言后,ADS也同样具有面向对象的功能,程序层次分明,清晰可读,从而使软件的可维护性得到提高;(5)经过良好封装,ADS C++的程序代码比ADS C程序简洁得多,许多时候比AutoLISP更简洁;(6)ADS C++的程序能够减少程序出错的概率。

利用C#进行AutoCAD的二次开发

利用C#进行AutoCAD的二次开发(一)转自明经通道 众所周知,对AutoCAD进行二次开发用到的主要工具有:ObjectArx,VBA,VLisp。但它们的优缺点是显而易见的:ObjectArx功能强大,编程效率高,但它的缺点是编程者必须掌握VC++,而这门语言非常的难学;VBA和VLisp虽然简单易上手,但它们对于开发大型的程序好象无能为力。那究竟有没有一种语言能结合它们的优点而尽量避免它们的缺点呢? 回答是肯定的,那就是微软新推出的21世纪编程语言C#。关于C#的详细介绍,大家可以参考有关的文章。 C#是通过AutoCAD ActiveX 这座桥梁来和AutoCAD之间进行通讯的。AutoCAD ActiveX 使用户能够从AutoCAD 的内部或外部以编程方式来操作AutoCAD。它是通过将AutoCAD 对象显示到“外部世界”来做到这一点的。一旦这些对象被显示,许多不同的编程语言和环境就可以访问它们。关于AutoCAD ActiveX 的情况,大家可以参考AutoCAD自带的帮助。 呵呵,说了这么多无聊的,还是让我们通过一个具体的例子来说明怎样利用C#进行AutoCAD的二次开发吧。在介绍例子之前先讲一下有关的配置: (1)Visual Studio .net (2003和2002都可以,我用的是2002)(2)AutoCAD2000以上版本(我用的是2004)这个例子非常简单,就是通过C#建立的窗体来启动AutoCAD并画一条直线。下面是编程的具体步骤: (1)通过Visual Studio .net 建立一C#的windows应用程序。 (2)在“解决方案资源管理器”中右击“引用”标签,在弹出的菜单中选择“添加引用”,在“添加引用”对话框中选择“com"选项卡下的下拉列表框中的“AutoCAD 2004 Type Library"项(注意:不同版本的CAD的数字不同),单击右边的“选择”按钮,最后单击下面的“确定”按钮。(3)在C#窗体中加入两个文本框和一个按钮,分别用于输入直线起点、终点的坐标和在CAD中画直线。下面主要解释一下添加的代码。(a)在程序的开头加入:using AutoCAD;//导入AutoCAD引用空间 (b)在窗体的变量声明部分加入: private AcadApplication a;//声明AutoCAD对象 (c)在窗体的构造函数部分加入:a=new AcadApplicationClass();//创建AutoCAD对象 a.Visible=true;//使AutoCAD可见 (d)在按钮的消息处理函数中加入: double[] startPoint=new double[3]; //声明直线起点坐标 double[] endPoint=new double[3];//声明直线终点坐标 string[] str=textBox1.Text.Split(',');//取出直线起点坐标输入文本框的值,文本框的输入模式为"x,y,z" for(int i=0;i<3;i++) startPoint=Convert.ToDouble(str);//将str数组转为double型 str=textBox2.Text.Split(',');//取出直线终点坐标输入文本框的值 for(int i=0;i<3;i++) endPoint=Convert.ToDouble(str); a.ActiveDocument.ModelSpace.AddLine(startPoint,endPoint);//在AutoCAD中画直线 a.Application.Update();//更新显示 好了,简单吧,你可以试着编译一下。关于上面一些语句的用法,我会在下一讲中作详细介绍。

客户二次开发技巧

学习导航 通过学习本课程,你将能够: ●学会让顾客记住并信任自己; ●了解顾客二次开发的步骤; ●掌握顾客二次开发的方法。 客户二次开发技巧 一、如何让顾客记住并信任你 客户二次开发最基本的前提是信任,只有当顾客信任并记住自己时,顾客才有可能继续进行交流、接触。 导购要想使顾客记住自己及自己店面的产品,并得到顾客的信任,需要做好以下方面的工作: 第一,建立完备的客户档案,这是工作人员向顾客进行回访、举办惊喜活动和提供优惠产品的依据; 第二,要保证送货及时、安装优质; 第三,要及时、有效地对顾客进行事后电话反馈; 第四,需要定时做回访,回访过程中的活动与奖品可以有效地使顾客记住并信任自己; 第五,在顾客较多的情况下,工作人员可以利用短信平台,给顾客适时地送去祝福和问候,需要注意的是,短信的发送频率不要太高,以免给顾客带来不便; 第六,偶尔进行电话回访,询问顾客对本店产品的满意度与近期需求,此外,这种回访还可以利用短信系统的群发功能,虽然费用较高,但却有利于产品的二次介绍与店面的口碑宣传,可以为公司带来极大的效益。 二、二次开发的方法 家居建材是一种耐用消费品,顾客对于同一类产品的重复购买率较低。 因此,对于家居建材行业而言,在顾客二次开发过程中需要运用一定的方式: 1.给出顾客整体性建议 顾客购买产品时,工作人员可以根据其所购买的产品以及自己的专业知识取得顾客的信任,然后以专业人员或朋友的身份向其介绍周边的其他配套产品,并提出整体性建议。 提出建议时,导购一定要得到顾客的信任,使他相信自己不是让他向外掏钱,否则会引起顾客的反感。一般来说,可以在向顾客进行一次比较完整的服务后,适时提出建议。 【案例】 驯兽员的故事

关于VB对AutoCAD二次开发学习笔记

关于VB对AutoCAD二次开发学习笔记 □By OYLS 基于VB对AutoCAD的二次开发,主要是通过运用VB编程对AutoCAD软件中的基本绘图操作进行控制,了解AutoCAD软件中的常用命令。在编程过程中我们要借助AutoCAD软件中的“帮助文件”,即“AutoCAD开发人员帮助”文档。 一、获取VB对AutoCAD的控制权: 先定义变量acadApp,acadDoc: Public acadApp As AcadApplication Public acadDoc As AcadDocument Function boot_CAD() As Boolean On Error Resume Next Set acadApp = GetObject(, "AutoCAD.Application") If Err Then Err.Clear Set acadApp = CreateObject("AutoCAD.Application") If Err Then MsgBox "您没有安装AutoCAD ,或安装版本错误!", vbOKOnly + vbInformation, "CAD简易绘图系统" boot_CAD = False BtOK = False Exit Function End If End If Set acadDoc = acadApp.ActiveDocument acadApp.Visible = True boot_CAD = True End Function 需要说明的是,我们只有先对CAD获取了控制权以后才能有效地运用VB编程方式进行CAD的基本绘图操作。不然,以后的各种对CAD的操作将无法得以实现。 二、基本绘图思路: 先了解所绘对象的基本属性,可以说,也正是由于对象的各种属性才构成了一个特性为一而标准的实体。对象的属性特点我们可以事先通过CAD帮助文件查找得出。接下来我们就应了解创建方法,同样,我们也是通过CAD帮助文件进行查找。可以看出,在整个绘图编程过程中我们都离不开CAD帮助文件,所

用VB对AutoCAD进行二次开发

用VB对AutoCAD进行二次开发|用VB对AutoCAD进行二次开发 A utoCAD一直是CAD市场中的主流产品。随着AutoCAD的日益普及,在其上进行二次开发的工具也不断更新。从早期的Auto Lisp、ADS、 DCL到现在流行的 Object ARX、ActiveX Automation、Visual Lisp,均可十分方便地对AutoCAD进行二次开发。本文主要讨论关于运用Visual Basic对AutoCAD基于ActiveX Automation的二次开发技术。选用ActiveX有两个原因,一是因为Visual Basic的普及性与易用性,二是采用这种方法进行二次开发可方便地实现与其它图形软件的接口,如与Solid Works实现实体造型与二维绘图的结合,以及根据用户的特殊需要开发出一定功能的软件。 二、ActiveX Automation技术 AutoCAD中的ActiveX Automation是微软公司ActiveX规范的具体应用。它通过基于ActiveX的自动化对象,为其他应用程序提供了访问AutoCAD内部功能的方法,是AutoCAD最新的开发接口。在运行时,AutoCAD与其他应用程序之间的关系是服务器与客户的关系,开发人员使用支持ActiveX规范的编程语言(如VB、Dephi等)能通过访问AutoCAD的对象模型,把AutoCAD的强大功能集成到应用程序中.AutoCAD的对象模型是一种树型结构模型,根为"AutoCAD Application",AutoCAD中的所有对象都是AutoCAD Application的子对象。图1所示为AutoCAD对象模型的层次结构树,其中父对象与子对象之间的关系并不是对象继承关系,而是包含关系。 图1 AutoCAD中ActiveX对象的总结构图 三、ActiveX Automation的使用方法 1. Application对象 如果在计算机系统上安装了AutoCAD,则Windows会自动将其所有的信息注册到系统注册表里。那么在启动Visual Basic后,用户可以象调用VB自己的对象一样调用AutoCAD所提供的ActiveX。 在编程、调试或运行时至少应该有一个AutoCAD副本在运行。可以通过以下的代码创建AutoCAD对象。 Dim AcadApp as Object ’定义一个对象 On Error Resume Next Set AcadApp =GetObject(,"AutoCAD.Application") If Err Then ’如果没有一个AutoCAD副本在运行 Err.Clear Set AcadApp =CreateObject("AutoCAD.Application") AcadApp.Visable =True ’启动一个AutoCAD副本并设为可见 If Err Then MsgBox Err.Description ’如果失败,给出错误提示 Exit Sub End If End If 2. Preferences与Document对象 与AutoCAD中的Preferences对话框的作用相同,通过Preferences对象可以读取或设置AutoCAD的一些基本设置。Preferences对象通过Application的Preferences 属性返回。 Dim AcadPref as Object

相关文档
最新文档