切换到宽版
  • 广告投放
  • 稿件投递
  • 繁體中文
  • AutoCAD开发工具介绍

    作者:佚名 来源:网络 时间:2011-03-14 16:14 阅读:3955 [投稿]
    到目前为止,Autodesk公司提供了4种主要的二次开发工具:AutoLisp(VisuaLisp)、ADS、ObjectARX及VBA(VB)。本文就此向大家分别做一介绍。
    VBA(VB)可以利用ActiveX Automation提供的接口访问和控制AutoCAD所有图形对象和非图形对象,并且可以访问这些对象的方法和属性。 
    VBA(VB)数据类型丰富、界面友好。 
    VBA是内嵌在AuLoCAD中的一种编程语言,对平台有依赖性,但VB对此有改善。 
    正如ADS需要C语言做基础一样,VBA(VB)开发AutoCAD也必须以熟悉VB语言为前提。 
    这里同样给出一段直线的绘制程序。用VBA编制如下: 
    Dim stpt, enpt As Variant 
    Dim prompt1,prompt2 As String 
    Dim startpoint (1 To 3) As Double 
    Dim endpoint (1 To 3) As Double 
    Dim lineobj As Acadline 
    prompt1 = NL & “起点:” 
    prompt2 = NL & “终点:” 
    stpt = ThisDrawing.Utility.GetPoint(,prompt1) 
    enpt = ThisDrawing.Utility.GetPoint(stpt, prompt2) 
    startpoint(1) = stpt(0) 
    startpoint(2) = sptt(1) 
    startpoint(3) = stpt(2) 
    endpoint(1) = enpt(0) 
    endpoint(2) = enpt(1) 
    endpoint(3) = enpt(2) 
    Set lineobj = ThisDrawing.ModelSpace.AddLine(startpomt,endpoint) 
    用VB对AutoCAD开发与VBA的主要区别是当前图形对象的引用方法不同。VB中对象的获得要使用Getobject()和CreatObject()函数,从而有效地启动和切换AutoCAD窗口,具体代码如下: 
    Public acadDoc As Object 
    Public ModSpace As Object 
    Public acadApp As Object 
    On Error Resume Next "出错处理 
    Set acadlApp = Get Object(,"AutoCAD.Application") 
    If Err Then 
    Err.Clear 
    Set =cadlApp=CreateObject("AutoCAD.Application") 
    If Err Then 
    MsgBox Err.Description 
    Exit sub 
    End If 
    End If 
    AcadApp.Visible=True 
    Set acadDoc = acadApp.ActiveDocument 
    Set ModSpace = acadDoc.ModelSpace 
    接下来绘制直线的代码与VBA基本相同,只要把ThisDrawing换成acadDoc即可。 
    总之,通过以上分析可以看出AutoLisp仍然是AutoCAD的基本开发手段,它适十一般开发者用于较为简单交互性程序的开发。ADS将逐步被更为完善的ARX所取代。VBA则成为AutoCAD用户二次开发的另一支生力军。AutoCAD提供的开发手段让各类开发者都能有适合于自己的开发工具。
    分享到:
    扫一扫,关注光行天下的微信订阅号!
    【温馨提示】本频道长期接受投稿,内容可以是:
    1.行业新闻、市场分析。 2.新品新技术(最新研发出来的产品技术介绍,包括产品性能参数、作用、应用领域及图片); 3.解决方案/专业论文(针对问题及需求,提出一个解决问题的执行方案); 4.技术文章、白皮书,光学软件运用技术(光电行业内技术文档);
    如果想要将你的内容出现在这里,欢迎联系我们,投稿邮箱:service@opticsky.cn
    文章点评