AutoCAD環境下與數據庫間的互聯技術
2013-05-09 by:廣州有限元分析、培訓中心-1CAE.COM 來源:仿真在線
摘要 本文闡述了在液壓CAD系統中,針對AutoCAD R13 for Windows二次開發環境下,利用其內部ASI接口技術進行程序設計,實現與Visual Foxpro 3.0之間進行數據交換的方法。
關鍵詞:AutoCAD 二次開發 接口 數據交換
1 引言
數據交換是CAD的核心技術,可以說沒有數據的有效交換,就沒有CAD優越性的充分發揮。在AutoCAD環境下進行CAD軟件二次開發時,如何實現各模塊間數據的有效交換,如何解決各類不同軟件間的接口問題以及如何實現圖形實體與非圖形實體數據的聯系,是二次開發CAD系統解決的關鍵問題。
本文著重討論了AutoCAD R13 C4 for Windows環境下與Visual Foxpro 3.0之間進行的數據交換的ASI (AutoCAD SQL Interface)程序設計方法,并具體應用于液壓系統的CAD軟件中。
2 AutoCAD的開發與數據庫的訪問
象其他流行軟件一樣,Autodesk公司在AutoCAD R13內部提供了與外部數據庫相互聯系的機制。AutoCAD本身含有ASI(AutoCAD SQL Interface)、ASE(AutoCAD SQL Extension)和DBMS(Database Manager System)驅動程序幾部分。AutoCAD與數據庫文件之間進行數據交換的示意圖如圖所示。
AutoCAD與數據庫文件之間數據交換示意圖
ASI遵循ANSI/ISOSQL標準,是用于從AutoCAD中訪問外部數據庫的函數集。用ASI建立的應用程序,均可通過AutoCAD的開發應用系統;C語言開發的ADS,Visual C++4.0開發的ARX或其內部所自帶的AutoLISP語言連接到AutoCAD系統中,同時可以在不同的數據庫驅動程序支持下對不同的數據庫進行數據的存取交換。
ASE是一組命令集,可將SQL連接到AtuoCAD系統中。其實質就是利用ASI建立的ADS/ARX的應用程序。使用ASE可以在AutoCAD內部對外部數據庫中的數據文件的記錄和字段進行查詢和修改等操作,可以將數據關聯到圖形實體和非圖形實體(如啞圖中尺寸參數替換和明細表等)上,實現圖形和數據間的雙向查詢,并可以實現在圖形中動態跟蹤顯示數據。
AutoCAD本身包含一組數據庫驅動程序,其中每一個驅動程序都支持自己所連接的一種外部DBMS。其中用ADS/ARX或AutoLISP建立的應用程序,不必考慮DBMS專用的代碼應用程序,是用ASI編程還是用ASE命令編程,其實質都是遵循通用SQL標準的。
AutoCAD支持的開發語言有Turbo C,Visual Basic 5.0,Visual C/C++4.0和內部擁有AutoLISP語言,其中C,VB通過建立生成ADS的函數,VC生成的是ARX函數,與AutoCAD信息相聯系。
ASE作為AutoCAD內部的一組命令,可用編程方式執行。ASE作為AutoCAD訪問數據庫的核心具有更直接訪問數據庫的能力,允許應用程序對多種DBMS,DBMS內的多個數據庫,庫內的多張表進行數據訪問。ASE和ASI可根據需要單獨或同時使用。ASE方法在顯示屬性、編輯、列表框、基于查詢等功能方面顯得容易實現,但對于復雜的應用程序,就要使用ASI方式編程實現功能。
3 ASI方法的使用
3.1 ASI的支持文件與開發環境
AutoCAD R13 for windows所支持的ASI編程的文件都存放在缺省的\ACAD\WIN\ASE目錄中。
有ASI目標庫(文件后綴為.LIB)如asiatm80.lib;ASI頭文件(asi.h含ASI的通用定義)、(asierr.h包含返回出錯代碼值的含義)、(asiappl.h含主要的AutoCAD SQL結構查詢語言的頭文件)、(asisdata.h含C++的用戶接口定義)。
用ASI編制的應用程序,可用的編譯器有:Borland C/C++4.0、Microsoft C/C++7.0、Microsoft Visual C++4.0以上版本等。
3.2 利用ASI與數據庫交互處理的實現過程步驟
● 連通數據庫:通過asi-initsql,ads-initdrv,asi-connect分別對ASI指定的DBMS驅動程序進行初始化,登錄到所指定的數據庫。
● 打開一個通訊句柄:這可通過調用asi-compile函數來實現。在ASI程序中,每條SQL語句都通過一個通訊句柄來進行處理。
● 編譯SQL語句:通過調用asi-compile函數來實現。
● 執行SQL語句:用asi-iexecute函數執行SQL語句。
● 查詢和處理數據:逐行查詢結果,選取當前行,進行數據處理。所需的函數有:asi-fetch獲得光標所在的當前行;asi-coldsc獲得一列的說明;asi-delete刪除當前行;asi-update更換當前行,等函數。
● 關閉通訊句柄:用asi-chandle函數關閉語句處理的句柄,并釋放句柄。
● 斷開與數據庫的連接:調用asi-disconnect函數,斷開登錄的數據庫;調用asi-temdrv函數,終止驅動程序;調用asi-temrsql函數,終止程序接口。
上述每一過程可用ASI的出錯代碼處理函數進行錯誤信息處理,用asi-err獲得一條出錯代碼,用asi-errmsg函數獲得一條出錯信息。
4 實例說明
本例給出一個由Visual Foxpro3.0環境下,建立起來的液壓系統軟件包設計中的順序閥數據庫文件SXFLIB.DBF,其數據結構如下表所示。
Name | Type | Diameter | Pressure | Flux | Scale |
順序閥 | X-F*10D3-P-* | 10.0 | 20.0 | 40.0 | 0.5 |
順序閥 | 2X-F*10D3-AB/BA-* | 10.0 | 20.0 | 40.0 | 1.0 |
單向順序閥 | XA-F*10D3-B-* | 10.0 | 20.0 | 40.0 | 0.7 |
單向順序閥 | XA-F*10D3-B(A)-* | 10.0 | 20.0 | 40.0 | 0.5 |
編制ASI應用程序,實現所需功能:
(1)編制ins-rowvalue命令,實現將AutoCAD圖形上的數據和名稱做一標記插入到數據庫的記錄中。
(2)編制get-rowvalue命令,實現從數據庫選定行中讀取數據,在軟件的對話框中顯示出來,并按數據所提供的比例畫出圖形。
(3)編制fetch-dallue命令,實現從數據庫中讀取所有記錄,在對話框的列表框內顯示出來,以便用戶調用,插入圖形中。
由于AutoCAD可通過ASI/ASE、DBMS訪問數據庫,所以使許多應用項目的設計思路大為開闊,節省了設計者的工作時間,提高了工作效率,降低了投入成本,有利于集成系統的實現。
相關標簽搜索:AutoCAD環境下與數據庫間的互聯技術 AutoCAD培訓 AutoCAD培訓課程 AutoCAD圖紙設計 AutoCAD在線視頻 AutoCAD技術學習教程 AutoCAD軟件教程 AutoCAD資料下載 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓 Abaqus培訓 Autoform培訓