浅谈AUTOCAD二次开发在工程中的应用

来源 :建筑科技与管理 | 被引量 : 0次 | 上传用户:crystalymd
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】本文主要介绍当今流行辅助设计软件AutoCAD二次开发的主要工具及方法,简单的介绍了难为一般用户所掌握的ObjectARX,针对其中的能够在短时间内为非计算专业所掌握的ActiveX作了主要介绍,并结合实际工作对有关功能作出了细致地分析。
  【关键词】AutoCAD;二次开发;应用
  
  Discuss application of AUTOCAD 2ne development in engineering
  Meng Kui
  (Shaanxi province highway investigateion and design institute Xi'an Shaanxi 710068)
  【Abstract】The article mainly introduced nowadays main tool and method of spreading the software two developments in AutoCAD of the assistance design and in brief introduced difficult is Object ARX that the general customer controls, aim at among them of can control for doing not compute profession at the in a short time of ActiveX made main introduction, and combine actual work to relevant the function made delicately analytical.
  【Key words】AutoCAD; 2nd development; Application
  
  AutoCAD是美国AUTODESK公司生产的功能强大的绘图软件,和它齐名的还有著名的MICROSTATION等软件。但是在设计行业,AUTOCAD能够一枝独秀,其原因在于AutoCAD有着完善的二次开发环境,有高级语言为其提供专门的定制、开发功能,使其能够适应各种需要,在不太复杂的开发工作下,迅速的成为各行各业的专门软件。作为一个工程技术人员,不能只把AutoCAD当成一个绘图板来使用,那是资源上的浪费,AutoCAD的目标是使绘图、出图自动化,用户的手工工作只是一些简单的编辑美化工作!要达到这一点就必须要利用AutoCAD的二次开发功能。
  从AutoCAD的发展来看,它的二次开发主要有如下发展阶段:AUTOLISP、ADS、ARX和VBA。现就它们的发展过程难易程度和优劣一一说明。
  
  1. Autolisp
  
  Autolisp是AUTOCAD最古老的一个开发语言,到现在仍然保留。早期的Autolisp是一个内嵌式语言,用其它如记事本等工具书写,在AUTOCAD内部调入使用,没有自己的单独开发环境,学习起来不很容易。但是它能够利用AutoCAD的内部函数,定制工具栏和启动组,缺点是是一门解释性的语言,要和AutoCAD系统之间利用IPC机制进行通讯,运行速度较慢。到现在的AUTOCAD版本仍然保留了这门语言,并且有所发展。在AutoCAD2000版以后,改名叫作Visual Lisp,有了自己的开发平台,可以脱离开发环境独立运行,可以编译,运行速度有了很大的提高。笔者早期用它开发过符号库,但是因为类似商业软件的出现,现在已经不再使用了!下面是生成坎类符号的源程序,笔者已经调试通过。
  (defun c:kz()
  (setq start(getpoint “\n选择起点:”))
   (setq end(getpoint “\n选择终点:”))
   (setq di(distance start end))
   (command “line” start end “”)
   (setq a(angle start end))
   (setq b(/ pi 2))
   (setq c(+ a b))
   (setq total 0)
   (setq km 0)
   (while (< km di)
   (command “line”
  (polar start 0 0)
  (polar start c 1.5)
  ()
   )
   (command “line”
   (setq start(polar start a 2))
   (polar start 0 0)
   ()
   )
   (setq total(+ total 1))
   (setq km(* total 2))
  )
  (command “redraw”)
  (princ)
  )
  
  2. Ads
  
  Ads是继Autolisp以后出现的一种开发方式,在AutoCAD R11以后出现。它是以C语言编写程序的设计环境,除了可以使用标准的C函数以外,还可以使用对AUTOCAD进行操作ADS函数,可以编译成EXE文件以后被Autolisp作为一组外部函数装入和调用。对于AutoCAD来说,Ads程序等价于Autolisp程序。优点是保密性强,有自己的开发环境,好调试,易加载。缺点是根子里还是一门解释性语言,需要和AutoCAD进行通讯,运行速度较慢!在AutoCAD2000版以后,Ads已被ARX所淘汰。故在此不做太多介绍!
  
  3. ARX
  
  ARX目前最先进的的一种开发方式,它的实质一个动态连接库,和AutoCAD在同一地址空间运行,所以运行速度很快。ARX能够直接利用AutoCAD的内核代码,直接访问AutoCAD的数据库、图形系统和几何造型中心 ,在运行期间实时扩展AutoCAD具有的类及其功能,建立和AutoCAD本身固有的命令操作方式相同的新命令,它是一种全新的运行模式。ARX需要Visual C++作为开发环境,随着AutoCAD版本的改进Visual C++的编译版本也要随之提高。因为函数名和头文件的不同,一种版本AUTOCAD的SDK 开发包开发的程序只能在该版本下运行。
  ARX应用程序的基本结构包括头文件,函数说明部分,调用ARX应用程序,初始化函数,卸载函数定义,入口点函数定义和用户程序主体函数定义等几个部分,当然这只是简单的程序,如果要用到用户窗体等将要用到MFC编程技术,使得程序界面更加漂亮,能够支持数据库的访问,程序组成将更加复杂。
  要做ARX应用程序,必须掌握Visual C++,这是一门非常难学的语言,指针是整个语言的核心,这就使得ARX在非专业领域的发展非常难。另外ARX应用程序开发周期长,调试困难,使得一些中小用户尽量避免用它来做应用程序。但是它非常专业,能够利用Visual C++的MFC类库,做出的程序界面漂亮,所以大部分基于AutoCAD的专业软件都是利用ARX来开发的!在我们公路上著名的纬地程序和专业地形图成图软件cass就是利用这种开发模式作出来的,它的拖动技术就是典型的对AutoCAD功能和命令的扩展!
  
  4. VBA开发
  
  VBA技术是在AutoCAD R14以后作为标准安装组件的。利用AutoCAD对VBA的支持,用户可以开发VBA应用程序,使用ActiveX对象。但是VBA毕竟不是VB,它只是使用VB的语法和算法,对于实体的定义及扩展又有自己的底层实体库。VB语言简单,易于推广,而VBA功能强大,代码利用率高,运行迅速,作为专业技术人员来说,VBA的确是适合我们的一个很好利用AutoCAD的开发工具!它的缺点就是不能编译(在VB环境下开发的可以编译,但运行速度明显降低),每次运行都需要加载,一个开发环境只能运行于一种版本的autocad之下,不能兼容其他版本。
  使用VBA开发环境时每个实体均需要定义,即实例化,它可以直接访问acad数据库,得到实体的所有属性,可以实时修改实例对象的颜色、线宽、起点、终点、字体、字型等表现形式,可以使用数据库编程。在VBA环境中开发的程序所生成的实体都是有名字的实体,这就便于在程序中调用和修改实体本身的属性,下面是笔者在公路征地宗地图开发中的一段程序,定义了INSERTPT无模式变量来得到屏幕选择坐标和zhcirc这个实例化圆变量、tl实例化直线变量:
  Dim insertpt As Variant'图形插入点
  Dim zhcirc As AcadCircle
  Dim tl As AcadLine
  Dim st(0 To 2) As Double
  Dim et(0 To 2) As Double
  Dim i As Single
  Open “控制文件.txt” For Input As #1
  Input #1, bt$
  Input #1, jsdw$
  Input #1, dq$
  Input #1, dat$
  Close #1
  ThisDrawing.WindowState = acMaxinsertpt= ThisDrawing.Utility.GetPoint(, vbCrLf & “请输入插入点:”)
  qqy$=ThisDrawing.Utility.GetString(1, vbCrLf & “请输入起始页码:”)
  Set mjs = ThisDrawing.ModelSpace.AddText(SS$, st, 4)
  mjs.Alignment = acAlignmentCenter
  mjs.TextAlignmentPoint = st
  mjs.StyleName = “mkroman”
  mjs.ScaleFactor = 0.75
  mjs.Update
  程序运行后首先提问基础数据文件夹位置,在问文本段数据文件夹位置,最后程序自动读出控制文件,确定土地权属,然后求出征地路段面积(如图1所示)。接着程序要求用户在屏幕上指定生成图形的位置,用鼠标指定输出位置即可,程序可根据数据多少确定是否自动分表,最后在指定位置绘制表格和图形(如图2所示)。根据在实际工作中的应用,本程序使用方便,计算迅速,界面美观,生成图形易于编辑和保存,比原来用其他语言编写的程序具有无可比拟的优越性。
  


  
  5. 结束语
  
  AUTOCAD是一个开放的软件,其二次开发博大精深,而且还在不停的发展。随着新一代开发语言VS.NET的普及应用,肯定还会有更方便的开发工具。作为一个工程技术人员,能够熟练使用AUTOCAD是最基本的,能够让AUTOCAD更加专业化,能够最大程度上批处理和定制一些常用功能才是最重要的。笔者水平所限,文中不妥之处敬请专家批评指正。
  参考文献
  [1] 张帆主编,郑立楷、卢择临、王成煌 编著,清华大学出版社《AutoCAD VBA 二次开发教程》
  [2] 刘良华 朱东海著,清华大学出版社《AutoCAD 2000 ARX开发技术》
   [3] 中国铁道出版社,《AutoCAD VBA函数库查询辞典》
  
  [文章编号]1006-7619(2008)09-17-533
其他文献
【摘 要】本文以工程实例介绍了圆筒型力学模型在圆柱形土体加固或圆形基坑支护中的应用,有效控制了基坑开挖引起的地面沉降及水平变形,为类似基坑工程提供借鉴。  【关键词】圆筒型力学模型;微型桩;腰梁;基坑支护    Circle tube type mechanics model protection application in foundation ditch  Zhang Xue-shan1
期刊
【摘 要】本文从设计、材料、施工三大方面分析楼面裂缝的产生原因,并针对性地提出了具体预防措施。  【关键词】楼面;裂缝;成因;措施    Building surface crack of Reason analysis and prevention and cure measure  Song Feng-long  (Xinyu steel and iron works construction
期刊
【摘 要】水泥稳定砂砾土底基层具有半刚性基层的特点,本文对其产生裂缝进行探讨,并重点在施工方面提出防治要点。  【关键词】底基层;裂缝;防治     Study and prevention of gravel soil bottom grass-roots crack of cement stability  Guo Ming-hai  (Linzhang county highway stat
期刊
【摘 要】本文详细介绍了水泥混凝土旧路上加铺沥青混凝土技术,详细论述了旧水泥混凝土板处理、反射裂缝的防治、沥青混凝土加铺层厚度控制、沥青混凝土面层材料的选择、沥青混凝土面层材料的选择。  【关键词】水泥;沥青;控制    Construction craft and quality control of old cement road surface spread asphalt surface
期刊
【摘 要】面层是路面工程的重要组成部分,确保面层质量是公路工程的热点和难点之一。本文通过工地试验室对面层材料的优选检测、配合比设计,到面层铺筑与碾压施工过程分析,强调了工地试验室对沥青路面施工前后质量有效检测控制的重要性。  【关键词】工地试验室;沥青路面;材料优选;施工质量检测控制     Discuss workplace laboratory to the examination contr
期刊
【摘 要】本文结合本地区建筑节能质量工作实际,分析了存在问题及原因,提出了提高建筑节能质量的建议和对策。  【关键词】建筑节能;质量;建议     Tactics on how to improve the record rate of registeration inthe completed construction projects  Chen Xia-wei  (Putian City C
期刊
【摘 要】建筑工程抗震框架箍筋的制作要求、扎放位置。柱、梁受力钢筋的锚固要求到位。施工位置的准确性。质量控制性。  【关键词】抗震框架钢筋制作;位置准确性;质量控制    Discuss problem of anti- earthquake frame reinforcing bar construction   Cheng Xiao-lin(Nanjing Hairan constructio
期刊
【摘 要】墙体裂缝是常见的房屋质量问题之一,经常出现的墙体裂缝包括斜向裂缝、垂直裂缝、水平裂缝、女儿墙裂缝和混合裂缝等。这些裂缝主要由于温差变形、地基沉降不均匀、地基土冻胀和屋面女儿墙漏水冻胀和房屋结构等原因引起的,应根据各种具体情形对这些裂缝采取相应的应对措施。  【关键词】房屋;墙体;裂缝;工程质量    Discuss reasons of house wall crack preventi
期刊
【摘 要】水泥深层搅拌桩是进行软基处理的一种有效形式,本文介绍了水泥搅拌桩施工中试桩,施工准备、工艺流程、设计参数等。  【关键词】水泥搅拌桩;软基;施工方法;质量控制    Cement deep agitation stake in soft groundwork processing of construction method and quality control  Wu Li-xia 
期刊
【摘 要】 结合杭州庆春路/新华路人行过街通道工程,介绍了在杭州富水粉砂地层条件下,采用管幕超前预支护、掌子面深孔注浆加固、短开挖、强支护等综合浅埋暗挖施工技术,地表垂直降水和洞内长短管地层降水技术。并应用大型有限差分软件FLAC3D,采用数值方法对其施工效应进行了计算分析,分析结果表明,施工过程中洞室结构稳定,浅埋暗挖管幕预支护施工方法对于富水粉砂地层修建地下通道切实可行,并可满足洞内施工安全与
期刊