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