切換到寬版
  • 廣告投放
  • 稿件投遞
  • 繁體中文
  • AutoCAD開發(fā)工具介紹

    作者:佚名 來源:網(wǎng)絡(luò) 時間:2011-03-14 16:14 閱讀:3958 [投稿]
    到目前為止,Autodesk公司提供了4種主要的二次開發(fā)工具:AutoLisp(VisuaLisp)、ADS、ObjectARX及VBA(VB)。本文就此向大家分別做一介紹。
    VBA(VB)可以利用ActiveX Automation提供的接口訪問和控制AutoCAD所有圖形對象和非圖形對象,并且可以訪問這些對象的方法和屬性。 
    VBA(VB)數(shù)據(jù)類型豐富、界面友好。 
    VBA是內(nèi)嵌在AuLoCAD中的一種編程語言,對平臺有依賴性,但VB對此有改善。 
    正如ADS需要C語言做基礎(chǔ)一樣,VBA(VB)開發(fā)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開發(fā)與VBA的主要區(qū)別是當(dāng)前圖形對象的引用方法不同。VB中對象的獲得要使用Getobject()和CreatObject()函數(shù),從而有效地啟動和切換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的基本開發(fā)手段,它適十一般開發(fā)者用于較為簡單交互性程序的開發(fā)。ADS將逐步被更為完善的ARX所取代。VBA則成為AutoCAD用戶二次開發(fā)的另一支生力軍。AutoCAD提供的開發(fā)手段讓各類開發(fā)者都能有適合于自己的開發(fā)工具。
    分享到:
    掃一掃,關(guān)注光行天下的微信訂閱號!
    【溫馨提示】本頻道長期接受投稿,內(nèi)容可以是:
    1.行業(yè)新聞、市場分析。 2.新品新技術(shù)(最新研發(fā)出來的產(chǎn)品技術(shù)介紹,包括產(chǎn)品性能參數(shù)、作用、應(yīng)用領(lǐng)域及圖片); 3.解決方案/專業(yè)論文(針對問題及需求,提出一個解決問題的執(zhí)行方案); 4.技術(shù)文章、白皮書,光學(xué)軟件運用技術(shù)(光電行業(yè)內(nèi)技術(shù)文檔);
    如果想要將你的內(nèi)容出現(xiàn)在這里,歡迎聯(lián)系我們,投稿郵箱:service@opticsky.cn
    文章點評