基于AutoCAD的液壓系統(tǒng)計算機輔助設(shè)計_第1頁
基于AutoCAD的液壓系統(tǒng)計算機輔助設(shè)計_第2頁
基于AutoCAD的液壓系統(tǒng)計算機輔助設(shè)計_第3頁
基于AutoCAD的液壓系統(tǒng)計算機輔助設(shè)計_第4頁
基于AutoCAD的液壓系統(tǒng)計算機輔助設(shè)計_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、PAGE PAGE 36基于AutoCAD的液壓系統(tǒng)計算機輔助設(shè)計 摘 要CAD技術(shù)一直處于不斷發(fā)展與探索之中,應(yīng)用AutoCAD技術(shù)可以提高企業(yè)設(shè)計效率,優(yōu)化設(shè)計方案,減輕技術(shù)人員的勞動強度,縮短設(shè)計周期,加強設(shè)計標準化等,由于AutoCAD所具有的開放性結(jié)構(gòu),使AutoCAD技術(shù)廣泛地應(yīng)用于機械,電子,航天,化工等行業(yè)。從而使設(shè)計與生產(chǎn)向數(shù)字化和無紙化方向發(fā)展。本文以AutoCAD為平臺,用Auto LISP語言,系統(tǒng)研究了液壓系統(tǒng)數(shù)據(jù)庫和圖形庫的開發(fā),給出開發(fā)程序代碼和運行結(jié)果。減輕了設(shè)計人員的工作量,大大的提高了CAD的使用效率,縮短了繪制圖形的時間。同時也簡單介紹了AutoCAD二次

2、發(fā)展的過程和Auto LISP使用方法。關(guān)鍵字:液壓系統(tǒng);AutoCAD;計算機輔助設(shè)計;AutoLispAbstractCAD technology has been in continuous development and exploration, AutoCAD technology can enhance the efficiency of design, optimize design, reduce the labor technical strength, shorten design cycles, enhance design standardization. Becaus

3、e AutoCAD has the open structure, so AutoCAD technology is widely used in mechanical, electronic, aerospace, chemical and other industries. So that the design and production of digital and paperless direction. Based on AutoCAD, using Auto LISP language, this paper mainly studies and designs hydrauli

4、c system databases and the development of graphics library, the code and result of the program have been given. It is a great compensation for the CAD graphics drawing and greatly improves the efficiency in the use of CAD. And greatly shorten the designation periodicity. Also briefed the AutoCAD dev

5、elopment process and introduce the use of VLISP.Keywords : Hydraulic Manifolds;CAD system;aided-design;Auto Lisp目 錄 TOC o 1-3 h z u HYPERLINK l _Toc10170432 摘 要 PAGEREF _Toc10170432 h 1 HYPERLINK l _Toc10170433 Abstract PAGEREF _Toc10170433 h 2 HYPERLINK l _Toc10170434 目 錄 PAGEREF _Toc10170434 h 3 H

6、YPERLINK l _Toc10170435 引 言 PAGEREF _Toc10170435 h 4 HYPERLINK l _Toc10170439 第一章 CAD技術(shù)概述 PAGEREF _Toc10170439 h 5 HYPERLINK l _Toc10170440 1.1 CAD基本概念與特點 PAGEREF _Toc10170440 h 5 HYPERLINK l _Toc10170441 2.2 CAD系統(tǒng)的組成與基本內(nèi)容 PAGEREF _Toc10170441 h 5 HYPERLINK l _Toc10170442 2.3 CAD發(fā)展趨勢 PAGEREF _Toc101

7、70442 h 6 HYPERLINK l _Toc10170443 第二章 CAD二次開發(fā) PAGEREF _Toc10170443 h 8 HYPERLINK l _Toc10170444 2.1二次開發(fā)問題提出 PAGEREF _Toc10170444 h 8 HYPERLINK l _Toc10170446 2.2 AutoCAD二次開發(fā)方法 PAGEREF _Toc10170446 h 8 HYPERLINK l _Toc10170447 第三章 Auto LISP語言 PAGEREF _Toc10170447 h 12 HYPERLINK l _Toc10170448 3.1 Au

8、to LISP語言的簡述 PAGEREF _Toc10170448 h 12 HYPERLINK l _Toc10170449 3.2 Auto LISP程序基本語法結(jié)構(gòu) PAGEREF _Toc10170449 h 13 HYPERLINK l _Toc10170450 3.3 加載和運行Auto LISP程序 PAGEREF _Toc10170450 h 13 HYPERLINK l _Toc10170451 3.4 Auto LISP 程序的調(diào)試 PAGEREF _Toc10170451 h 15 HYPERLINK l _Toc10170453 第四章 對話框文件簡述 PAGEREF

9、_Toc10170453 h 16 HYPERLINK l _Toc10170454 4.1 對話框文件 PAGEREF _Toc10170454 h 16 HYPERLINK l _Toc10170455 4.2 DCL文件的結(jié)構(gòu) PAGEREF _Toc10170455 h 16 HYPERLINK l _Toc10170456 4.3 DCL文件的預(yù)覽 PAGEREF _Toc10170456 h 17 HYPERLINK l _Toc10170457 4.4對話框驅(qū)動程序 PAGEREF _Toc10170457 h 17 HYPERLINK l _Toc10170458 4.4.1驅(qū)

10、動對話框的程序流程圖 PAGEREF _Toc10170458 h 17 HYPERLINK l _Toc10170459 4.4.2對話框驅(qū)動函數(shù) PAGEREF _Toc10170459 h 18 HYPERLINK l _Toc10170460 第五章 基于 Visual FoxPro的數(shù)據(jù)庫 PAGEREF _Toc10170460 h 19 HYPERLINK l _Toc10170461 5.1 Visual FoxPro 6.0簡介 PAGEREF _Toc10170461 h 19 HYPERLINK l _Toc10170462 第六章 液壓圖形庫的建立 PAGEREF _T

11、oc10170462 h 24 HYPERLINK l _Toc10170463 6.1實現(xiàn)方案 PAGEREF _Toc10170463 h 24 HYPERLINK l _Toc10170464 6.2方案論證 PAGEREF _Toc10170464 h 24 HYPERLINK l _Toc10170465 6.3 開發(fā)步驟 PAGEREF _Toc10170465 h 25 HYPERLINK l _Toc10170466 6.3.1 建立圖形庫文件夾 PAGEREF _Toc10170466 h 25 HYPERLINK l _Toc10170467 6.3.2 制作幻燈片庫(*.

12、SLB) PAGEREF _Toc10170467 h 25 HYPERLINK l _Toc10170468 6.3.3 編寫對話框文件(*.dcl) PAGEREF _Toc10170468 h 26 HYPERLINK l _Toc10170469 6.3.4 編制對話框控制程序(*.lsp) PAGEREF _Toc10170469 h 27 HYPERLINK l _Toc10170470 6.3.5編制圖標菜單 PAGEREF _Toc10170470 h 28 HYPERLINK l _Toc10170471 6.4 應(yīng)用效果 PAGEREF _Toc10170471 h 30

13、HYPERLINK l _Toc10170474 結(jié) 論 PAGEREF _Toc10170474 h 32 HYPERLINK l _Toc10170475 參考文獻 PAGEREF _Toc10170475 h 34 HYPERLINK l _Toc10170476 謝 辭 PAGEREF _Toc10170476 h 35需要全套程序等資料聯(lián)系,QQ:1047713170引 言CAD技術(shù)最早可以追溯到20世紀40年代,它是20世紀最杰出得科技成果之一。近年來,CAD技術(shù)從最初的平面輔助工具,迅速向智能化、三維化、集成化和網(wǎng)絡(luò)化的方向發(fā)展。隨著CAD技術(shù)的不斷發(fā)展,二次開發(fā)應(yīng)用范圍不斷擴大

14、,隨之而來誕生了很多AutoCAD二次開發(fā)語言,主要有Auto LISP、ADS(AutoCADDevelopmentSystem)、Visual LISP三種語言。Auto LISP是為擴展和自定義AutoCAD功能而設(shè)計的一種編程語言。它起源于五十年代末的LISP語言,最初是為編寫人工智能(AI)應(yīng)用程序設(shè)計的,現(xiàn)在仍是許多人工智能程序的基礎(chǔ)。在AutoCAD二次開發(fā)工具中,Auto LISP也是使用最簡單、應(yīng)用最廣泛、使用者最多的一種開發(fā)工具。但是,Auto LISP只是一種解釋型語言,且不能加密。為了解決個問題,Autodesk公司在AutoCAD R14中推出了Visual LISP

15、的測試版,隨后在AutoCAD 2000中推出了Visual LISP的正式版本。Visual LISP是為加速Auto LISP程序開發(fā)而設(shè)計的軟件工具。Visual LISP完全兼容以前的Auto LISP,同時應(yīng)用了AutoCAD的另一個開發(fā)工具Object ARX面向?qū)ο蠹夹g(shù)和ActiveX技術(shù),使Visual LISP開發(fā)的應(yīng)用程序功能更強大,運行速度更快,從而真正成為一個能開發(fā)商業(yè)軟件的開發(fā)平臺1。作為一名工程技術(shù)人員,掌握AutoCAD的設(shè)計技術(shù)已經(jīng)成為一項基本技能;能夠精通AutoCAD特別是在三維方面的設(shè)計和開發(fā)技術(shù)更是提高工作效率、進行創(chuàng)新設(shè)計的必備能力。本文介紹了基于Au

16、toCAD 平臺上對液壓集成塊CAD系統(tǒng)的設(shè)計開發(fā),并且運用Auto LISP語言對AutoCAD液壓集成塊系統(tǒng)進行二次開發(fā),特別是在三維方面的設(shè)計技術(shù)和二次開發(fā)方法的使用方面,并對開發(fā)過程中存在的問題及解決方法提出了自己的看法。第一章 CAD技術(shù)概述1.1 CAD基本概念與特點計算機輔助設(shè)計(Computer Aided Design),簡稱CAD,是一種利用計算機輔助設(shè)計人員進行快速、高效、高質(zhì)、低設(shè)計成本、方便地完成產(chǎn)品設(shè)計任務(wù)的現(xiàn)代設(shè)計技術(shù)。CAD技術(shù)思想起源于20世紀50年代末,40年來,CAD技術(shù)已發(fā)展成為以“計算機技術(shù)”和“計算機圖形學(xué)”為技術(shù)基礎(chǔ),并融合各工程學(xué)科知識的一種高新

17、技術(shù)。CAD技術(shù)主要研究如何用計算機及外圍設(shè)備和圖形輸入輸出設(shè)備幫助人們進行工程和產(chǎn)品設(shè)計.它將計算機高速而精確的運算功能,大容量存儲和處理數(shù)據(jù)的能力,豐富而靈活的圖形、文字處理功能與設(shè)計者的創(chuàng)造性思維能力、綜合分析及邏輯判斷能力結(jié)合起來,形成一個設(shè)計者與計算機各發(fā)揮所長,又密切配合的系統(tǒng)5。當前計算機輔助設(shè)計的發(fā)展有如下特點:(1)應(yīng)用范圍不斷擴大、日益普及。(2)系統(tǒng)的性價比不斷提高,硬件成本下降,軟件成本提高。(3)具有大圖形功能的工作站和分布式網(wǎng)絡(luò)計算機輔助設(shè)計系統(tǒng)被普遍采用。(4)面向各種先進制造技術(shù)的CAD技術(shù)的研究與開發(fā)。(5)計算機輔助設(shè)計軟件系統(tǒng)集成化程度提高,出現(xiàn)各種軟件商

18、品。(6)圖形和數(shù)據(jù)接口等軟件標準化。(7)虛擬設(shè)計技術(shù)的研究與應(yīng)用。2.2 CAD系統(tǒng)的組成與基本內(nèi)容一般來說,一個CAD系統(tǒng)由如下幾部分組成:(1)CAD硬環(huán)境 計算機,計算機的外圍設(shè)備(I/O設(shè)備),有的還有網(wǎng)絡(luò)通信環(huán)境等。(2)CAD軟環(huán)境 操作系統(tǒng),各種標準和支撐軟件,有的還有網(wǎng)絡(luò)通信軟件等。(3)CAD軟件 幫助設(shè)計人員去完成各種設(shè)計任務(wù)的計算機應(yīng)用軟件。(4)設(shè)計人員 與CAD系統(tǒng)的軟硬件一起組成的能協(xié)同完成設(shè)計任務(wù)的人機系統(tǒng)。由于 CAD技術(shù)的廣泛應(yīng)用,使得其包含的內(nèi)容也在不斷增加。但CAD的基本內(nèi)容應(yīng)包括建模、分析、仿真和繪圖四個方面(1)建模。建立設(shè)計對象的計算機內(nèi)部表示,

19、即設(shè)計模型,常見的有幾何模型、數(shù)學(xué)模型、物理模型等。(2)計算分析。設(shè)計對象生成模型后,對該模型進行靜態(tài)和動態(tài)下的強度、剛度、變形等方面的分析,常用的分析方法有解析法和數(shù)值解法。(3)仿真。在計算機上構(gòu)造與實際系統(tǒng)相一致的模型進行試驗和研究,以檢驗設(shè)計的合理性,仿真分數(shù)學(xué)仿真和實物仿真。4繪圖及技術(shù)文檔。繪制各種工程圖、特性圖及編寫設(shè)計說明書等各種技術(shù)文件。一個實際運行的CAD系統(tǒng)并非都要包含以上內(nèi)容。設(shè)計人員在開發(fā)CAD系統(tǒng)時,可以根據(jù)自己行業(yè)的特點及設(shè)計目標任務(wù)的需要,靈活合理安排系統(tǒng)的內(nèi)容。但一個完整的CAD系統(tǒng)應(yīng)具有三方面的功能,即工程數(shù)據(jù)庫功能、計算功能和繪圖功能。2.3 CAD發(fā)展

20、趨勢隨著CAD技術(shù)不斷研究、開發(fā)與廣泛應(yīng)用,對CAD技術(shù)提出越來越高的要求,因此CAD從其本身技術(shù)的發(fā)展來看,將朝著如下幾個方向發(fā)展:(1)集成化 計算機集成制造系統(tǒng)(CIMS)是在新的生產(chǎn)組織原理指導(dǎo)下形成的一種新型生產(chǎn)模式。它要求將CAD/CAM/CAPP/CAE集成起來,而這種集成應(yīng)是建立一種新的設(shè)計、生產(chǎn)、分析以及技術(shù)管理的一體化,并不是將孤立的CAD、CAM、CAPP、CAE等系統(tǒng)進行簡單的連接,而是從概念設(shè)計開始就考慮到集成。(2)智能化 隨著人工智能(AI)的發(fā)展,知識工程和專家系統(tǒng)技術(shù)日趨成熟,為機械設(shè)計中需要專家豐富經(jīng)驗和創(chuàng)造性思維解決的問題提供了強有力的求解手段和工具。專家

21、系統(tǒng)ES(Expert System)實質(zhì)上是一種“知識+推理”的程序。(3)并行工程 并行工程(Concurrent Engineering)是隨著CAD、CIMS技術(shù)發(fā)展提出的一種、新的系統(tǒng)工程方法。這種方法思路是并行的、集成的設(shè)計產(chǎn)品及其開發(fā)過程。它要求產(chǎn)品開發(fā)人員在設(shè)計的階段就考慮產(chǎn)品整個生命周期的所有要求,包括質(zhì)量、成本、進度、用戶要求等,以便更大限度地提高產(chǎn)品開發(fā)效率及一次成功率。(4)網(wǎng)絡(luò)化 由于CAD/CAM/CAPP技術(shù)日趨成熟,可應(yīng)用于越來越大的項目,所以分布式計算機系統(tǒng)非常適用于CAD/CAM/CAPP的作業(yè)形式。同時,隨著Internet網(wǎng)的發(fā)展,可針對某一特定產(chǎn)品,將

22、分散在不同地區(qū)的現(xiàn)有智力資源和生產(chǎn)設(shè)備資源迅速組合,建立動態(tài)聯(lián)盟的制造體系。(5)虛擬設(shè)計技術(shù) 虛擬設(shè)計通過以虛擬現(xiàn)實技術(shù)為基礎(chǔ),以機械產(chǎn)品為對象,使設(shè)計人員能與多維的信息環(huán)境進行交互。同時,利用這項技術(shù)也可以大大地減少實物模型和樣件的制造。第二章 CAD二次開發(fā)2.1二次開發(fā)問題提出AutoCAD是目前微機上應(yīng)用最為廣泛的通用交互式計算機輔助繪圖與設(shè)計軟件包。AutoCAD的強大生命力在于它的通用性、多種工業(yè)標準和開放的體系結(jié)構(gòu)。但是,不同的行業(yè)標準使得各領(lǐng)域在使用AutoCAD的過程中均需根據(jù)自身特點進行定制或開發(fā)。Autodesk公司為滿足廣大用戶的需求,可以說,AutoCAD的通用性為

23、其二次開發(fā)提供了必要條件,AutoCADv2.18版到 AutoCAD2000的短短十幾年間,就相繼推出了三代二次開發(fā)AD開放的體系結(jié)構(gòu)則使其二次開發(fā)成為可能4。在用AutoCAD繪制工程圖時,經(jīng)常遇到繪制液壓系統(tǒng)圖這類問題。在液壓系統(tǒng)中,標準的元件很多,而在繪制液壓系統(tǒng)圖時,重復(fù)的繪制無疑會極大增加設(shè)計人員的工作量。因此,為了保證繪制的液壓系統(tǒng)圖設(shè)計合理、尺寸精確,減少設(shè)計人員的重復(fù)勞動,就必須建立液壓元件的圖形庫,這樣做起來非常方便。為了解決這個問題,采用編制一個LISP程序來實現(xiàn)。同時建立一個標準元件的數(shù)據(jù)庫,減少查閱手冊的時間和工作量。2.2 AutoCAD二次開發(fā)方法Auto LIS

24、PAuto LISP是1986年隨AutoCADv2.18提供的二次開發(fā)工具。它是一種工智能語言,是嵌入AutoCAD內(nèi)部的COMMONLISP的一個子集。在AutoCAD的二次開發(fā)工具中,它是唯一的一種解釋型語言。使用Auto LISP可直接調(diào)用幾乎所有的AutoCAD命令。 Auto LISP語言最典型的應(yīng)用之一是實現(xiàn)數(shù)字化繪圖程序設(shè)計,包括尺寸驅(qū)動程序和鼠標拖動程序等。另一個典型應(yīng)用就是驅(qū)動AutoCAD提供PDB模塊結(jié)構(gòu) DCL(DialogControlLanguage)文件,創(chuàng)建自己的對話框。Auto LISP具有以下優(yōu)點:(1)語言規(guī)則十分簡單,易學(xué)易用;(2)直接針對AutoC

25、AD,易于交互;(3)解釋執(zhí)行,立竿見影。Auto LISP的缺點是:(1)功能單一,綜合處理能力差;(2)解釋執(zhí)行,程序運行速度慢;(3)缺乏很好的保護機制,源程序保密性差;(4)LISP用表來描述一切,并不能很好地反映現(xiàn)實世界和過程,跟人的思維方式也不一致;(5)不能直接訪問硬件設(shè)備、進行二進制文件的讀寫。Auto LISP的這些特點,使其僅適合于有能力的終端用戶完成一些自己的開發(fā)任務(wù)。ADSADS(AutoCADDevelopmentSystem)是AutoCADR11開始支持的一種基于C語言的靈活的開發(fā)環(huán)境。ADS可直接利用用戶熟悉的C編譯器,將應(yīng)用程序編譯成可執(zhí)行文件后在AutoCA

26、D環(huán)境下運行,從而既利用了AutoCAD環(huán)境的強大功能,又利用了C語言的結(jié)構(gòu)化編程、運行效率高的優(yōu)勢。與Auto LISP相比,ADS優(yōu)越之處在于:(1)具備錯綜復(fù)雜的大規(guī)模處理能力;(2)編譯成機器代碼后執(zhí)行速度快;(3)編譯時可以檢查出程序設(shè)計語言的邏輯錯誤;(4)程序源代碼的可讀性好于Auto LISP。而其不便之處在于:(1)C語言比LISP語言難于掌握和熟練應(yīng)用;(2)ADS程序的隱藏錯誤往往導(dǎo)致AutoCAD,乃至操作系統(tǒng)的崩潰;(3)需要編譯才能運行,不易見到代碼的效果;(4)同樣功能,ADS程序源代碼比Auto LISP代碼很多。VisualLISP,ARX及基于ActiveX

27、Automation技術(shù)的VBA等(1)VisualLISP (VLISP)VLISP是Auto LISP的換代產(chǎn)品。它與Auto LISP完全兼容,并提供它所有的功能,是新一代的AutoCADLISP語言。VLISP對語言進行了擴展,可以通過MicrosoftActiveXAutomation接口與對象交互。同時,通過實現(xiàn)反應(yīng)器函數(shù),還擴展了Auto LISP響應(yīng)事件的能力。作為開發(fā)工具,VLISP提供了一個完整的集成開發(fā)環(huán)境(IDE),包括編譯器、調(diào)試器和其他工具,可以提高二次開發(fā)的效率。另外,VLISP還提供了工具用于發(fā)布獨立的應(yīng)用程序。(2)ARXARX(AutoCADRuntimee

28、xtension)是AutoCADR13之后推出的一個以C+語言為基礎(chǔ)的面向?qū)ο蟮拈_發(fā)環(huán)境和應(yīng)用程序接口。ARX程序本質(zhì)上為Windows動態(tài)鏈接庫(DLL)程序,與AutoCAD共享地址空間,直接調(diào)用AutoCAD的核心函數(shù),可直接訪問AutoCAD數(shù)據(jù)庫的核心數(shù)據(jù)結(jié)構(gòu)和代碼,以便能夠在運行期間擴展AutoCAD固有的類及其功能,創(chuàng)建能夠全面享受AutoCAD固有命令特權(quán)的新命令。ARX程序與AutoCAD、Windows之間均采用Windows消息傳遞機制直接通訊。Auto LISP、ADS、ARX都是AutoCAD提供的內(nèi)嵌式編程語言。Auto LISP和ADS都是通過內(nèi)部進程通訊(IP

29、C)來和AutoCAD通訊,它們與AutoCAD是相互分離的過程,而ARX以DLL形式與AutoCAD共享地址空間,所示。因此,與前兩者相比,其速度更快、運行更穩(wěn)定、更簡單。由于是在Windows及VC+編程環(huán)境里運行,所以,對開發(fā)者的編程能力要求較高。ARX、ADS、Auto LISP與AutoCAD的關(guān)系ObjectARX應(yīng)用程序以C+為基本開發(fā)語言,具有面向?qū)ο缶幊谭绞降臄?shù)據(jù)可封裝性、可繼承性及多態(tài)性的特點,用其開發(fā)的CAD軟件具有模塊性好、獨立性強、連接簡單、使用方便、內(nèi)部功能高效地實現(xiàn)以及代碼可重用性強等特點,并且支持MFC基本類庫,能簡潔高效地實現(xiàn)許多復(fù)雜功能。 這里順便提一下AD

30、SRX。AutoCADR14的開發(fā)環(huán)境ADSRX是ARX的一個子集,它等效于ADS。使用ADSRX,能夠用C語言編寫基于AutoCAD的程序,也能很方便地將ADS程序移植為ARX程序。比較了Auto LISP、ADS、ADSRX和ARX的關(guān)于速度、暴露性、功能和要求使用每個API的編程經(jīng)驗等方面的編程接口?!氨┞缎浴眳?shù)顯示了用戶編程錯誤的可能嚴重性。盡管ARX接口是四個API中最強有力的,它也具有產(chǎn)生嚴重編程錯誤的最大潛在性,如 破壞AutoCAD數(shù)據(jù)結(jié)構(gòu)等。其它編程環(huán)境要求較少的編程經(jīng)驗,但提供的功能和范圍也較小。Auto LISP、ADS和ARX的系統(tǒng)比較,可以說,Auto LISP著眼

31、于應(yīng)用程序的交互性,ADSC/C+著眼于應(yīng)用程序的綜合性,而ARX則著眼于應(yīng)用程序的智能性。(3)基于ActiveXAutomation技術(shù)的VBA等開發(fā)工具 ActiveXAutomation是一套微軟標準,以前稱為OLEAutomation技術(shù)。該標準允許通過外顯的對象由一個Windows應(yīng)用程序控制另一個Windows應(yīng)用程序,這也是面向?qū)ο缶幊碳夹g(shù)的精髓所在。AutoCAD從R14開始增加了作為ActiveXAutomation服務(wù)器應(yīng)用程序的功能,使得許多面向?qū)ο缶幾g語言和應(yīng)用程序可以通過ActiveX與AutoCAD進行通信,并操縱AutoCAD的許多功能, (4)ActiveX在

32、開發(fā)語言與AutoCAD之間所起的作用 ActiveXAutomation服務(wù)器應(yīng)用程序是通過自身對象的屬性、方法和事件實現(xiàn)其功能。對象是服務(wù)器應(yīng)用程序簡單而抽象的代表。不管是用VB、VC、OFFICEVBA等從外部開發(fā),還是用AutoCADVBA從內(nèi)部對AutoCAD進行二次開發(fā),都是通過調(diào)用AutoCAD的對象體系結(jié)構(gòu)來進行的。AutoCAD2000ActiveXAutomation技術(shù)將AutoCAD2000的各種功能封裝在AutoCADActiveX對象中,供編程使用。AutoCAD2000中提供的所有對象組成一個樹形結(jié)構(gòu),最高層是Application對象,其他對象都是它的后代。為了

33、得到一個特定的對象,必須從Application對象對其子孫進行遍歷,直到找到該特定的對象。(5)AutoCAD對象模型 ActiveXAutomation技術(shù)的完全面向?qū)ο蠡幊痰奶攸c,使其開發(fā)環(huán)境具備了強大的開發(fā)能力和簡單易用的優(yōu)良特點,開發(fā)工具的選擇也具有很大的靈活性。所以,利用ActiveXAutomation技術(shù),是極具潛力的一種開發(fā)手段。第三章 Auto LISP語言 3.1 Auto LISP語言的簡述AutoCAD軟件系統(tǒng)提供了Auto LISP語言,使用Auto LISP語言進行高級編程,實現(xiàn)了對復(fù)雜圖形的編程操作。9. 0版本提供了下拉菜單、圖標菜單和對話框等高級界面。而可

34、進行復(fù)雜的三維圖形設(shè)計,又因為動態(tài)觀察視圖和多視窗功能的增加使繪圖工作變得更加方便 。AutoCAD2 000則是Autodesk公司推出的跨世紀的、一體化的、功能豐富以及面向未來的世界領(lǐng)先的大型設(shè)計軟件。新增加的Internet功能真正實現(xiàn)了將用戶設(shè)計信息和外部世界緊密聯(lián)系起來,組成一個有機的整體。在它的強大技術(shù)平臺框架之上,結(jié)合了許多用戶一直追求的特征,如類似Windows常用軟件的界面,構(gòu)成了充滿活力而又輕松易用的設(shè)計環(huán)境。除了繼承以前AutoCAD系統(tǒng)的優(yōu)點之外,又增加了許多新的功能,能夠在未來的Windows 2000Professional及Windows 2000 Server操

35、作平臺上安裝使用。AutoCAD 2000除了在繼承原來版本功能的基礎(chǔ)上,又包含了一系列靈活方便的開發(fā)1具,如Visual LISP, VBA, ActiveX和Object ARX等,使用這些工具可以靈活地實現(xiàn)功能的集成和設(shè)計過程的自動化.AutoCAD 2000已經(jīng)被普遍認為是目前世界上功能最為強大的計算機輔助設(shè)計軟件。利用Auto LISP開發(fā)AutoCAD的一個典型應(yīng)用是實現(xiàn)參數(shù)化繪圖的程序化設(shè)計。到目前為止,大多數(shù)參數(shù)化程序都是針對二維平面圖編制的.實際上,三維立體圖形同樣也可以實現(xiàn)參數(shù)化繪制。在AutoCAD中編制實體的三維立體圖參數(shù)化程序,比其平面三視圖程序更簡單,而且三維立體圖

36、生成后,可以很方便地生成三視圖、剖面圖和軸測圖等。Auto LISP的另一個典型應(yīng)用就是驅(qū)動對話框。該對話框是利用AutoCAD提供的PDB模塊構(gòu)成DCL( Dialog Control Language)文件,并由用戶創(chuàng)建的。自從 AutoCAD中嵌入了Auto LISP以后,使僅作為交互式圖形編輯軟件的AutoCAD變成能真正進行計算機輔助設(shè)計和繪圖的CAD軟件。由于LISP靈活多變,又易于學(xué)習(xí)和使用,因而使AutoCAD成為功能很強大的工具軟件。3.2 Auto LISP程序基本語法結(jié)構(gòu)(1) Auto LISP程序的所有括號“()”,一定要成雙成對、相對稱,內(nèi)部的字符串雙引號“”也要成

37、雙成對。(2) Auto LISP程序執(zhí)行時,按從左到右,從內(nèi)到外的順序執(zhí)行。(3) 函數(shù)必須放在表中第一個元素的位置,即放在操作數(shù)之前,而不是放在它們中間。表中的函數(shù)與參數(shù),各參數(shù)之間均至少要用一個空格分開。(4 )可占多行表與表之間和表內(nèi)的多余空格和回車不起作用,故一個表一 行也可寫多個表。(5) Auto LISP程序使用分號“;”作注釋行的起始字符,注釋行可放在程序的任何位置。Auto LISP執(zhí)行時,忽略每行中分號以后的部分。(6 ) Auto LISP程序的執(zhí)行過程是對一個個Auto LISP函數(shù)的調(diào)用過程。Auto LISP對函數(shù)的調(diào)用是通過標準表實現(xiàn)的。Auto LISP程序的

38、運行是對標準表的依次求值。標準表或者說函數(shù)調(diào)用的一般格式如下:(函 數(shù) 名 1. . . )標準表中的第一個元素必須是函數(shù)名,以后的各元素為該函數(shù)的參數(shù)。參數(shù)的類型及數(shù)目取決于函數(shù)類型.3.3 加載和運行Auto LISP程序 一個Auto LISP程序通常有兩個相關(guān)的名稱:程序文件名和函數(shù)名。所有的Auto LISP文件都以.lsp為文件擴展名,在一個相同的Auto LISP程序文件中可以有一個或多和函數(shù)定義。要運行一個函數(shù),定義該函數(shù)的Auto LISP程序文件必須被加載。 對于很短的Auto LISP程序(只是由一個或兩個表組成,如交待的數(shù)值函數(shù)的運算等)或用defun函數(shù)定義的簡單用戶

39、函數(shù),可以直接在AutoCAD環(huán)境中的命令提示符下直接輸入即可,返回的結(jié)果就會立即顯示在文本屏幕上。 而對于一般的Auto LISP應(yīng)用程序,則需要采用文本編輯器進行編輯。編輯器可以隨意的選擇,當然最好使用那些能夠檢查匹配的括號的編輯器。因為在Auto LISP程序中一對匹配括號時組成表的單元,又是很容易混亂,從而影響程序的運行。在編輯器下編輯好的.lsp程序,系統(tǒng)便于一邊裝載一百年執(zhí)行;如果有defun函數(shù)定義的命令或函數(shù),裝載后只需在命令符下在鍵入defun函數(shù)定義的命令名即可運行相應(yīng)的命令或函數(shù)。加載程序。 = 1 * GB3 進入AutoCAD后,如下圖所示,在菜單欄中選擇“工具” “

40、AutoLISP” “加載應(yīng)用程序(L)”。圖3-1 LISP語言加載方法 = 2 * GB3 點擊“加載應(yīng)用程序(L)”后,彈出“加載/卸載應(yīng)用程序”對話框。找到程序所在的根目錄,即找到“design.LSP”的所在,點擊“加載(L)”后顯示“已成功加載 design.LSP。”。表示已經(jīng)成功加載了LISP程序,點擊“關(guān)閉(C)”,關(guān)閉對話框。 3.4 Auto LISP 程序的調(diào)試 Auto LISP程序文件加載也不能保證一定能成功,如果不成功就需要進行調(diào)試。調(diào)試的步驟是:(1) 控制程序在指定的位置暫停;(2) 查看,分析有關(guān)變量的值;(3) 修改程序的源代碼;(4) 繼續(xù)或重新運行程序

41、;(5) 如果程序不能正常運行,則繼續(xù)調(diào)試程序,直到程序正常運行。 Visual LISP提供了監(jiān)視窗口,檢查窗口,符號服務(wù)對話框,中斷和繼續(xù)執(zhí)行程序的模式,命令跟蹤,跟蹤堆棧,跟蹤調(diào)試等調(diào)試程序的工具。第四章 對話框文件簡述4.1 對話框文件對話框文件是用DCL語言定義對話框的文件,是ASCII碼的文本文件。文件的擴展名為“.dcl”,因此也被稱做DCL文件。BASE.DCL與ACAD.DCL文件是兩個最重要的對話框文件,它們在AutoCAD的SUPPORT子目錄下。(1). BASE.DCLBASE.DCL內(nèi)含DCL的原始定義與整合性DCL對象定義,為用戶預(yù)定義了Button, Edit_

42、box等基本控件,Row、Column等組件和ok_cancel,ok_cancel_help_info等標準控件。該文件是所有其他DCL文件的基礎(chǔ),被所有其他的DCL文件自動引用,因此不要修改該文件。(2). ACAD.DCLACAD.DCL文件定義了AutoCAD系統(tǒng)的大部分標準對話框。是編寫DCL文件很好的學(xué)習(xí)參考資料。用戶不應(yīng)直接引用ACAD.DCL文件,如果需要創(chuàng)建類似的對話框,可將ACAD.DCL中的相應(yīng)內(nèi)容復(fù)制到自己定義的DCL文件中。該文件與AutoCAD系統(tǒng)密切相關(guān),因此不要修改該文件。4.2 DCL文件的結(jié)構(gòu)對話框是一個樹型結(jié)構(gòu),對話框是這棵樹的樹根,行和列組件是樹枝,基本

43、控件和組和控件是樹葉。如下圖:圖4-14.3 DCL文件的預(yù)覽 在Visual LISP文本編輯器窗口內(nèi),選擇菜單 工具界面工具預(yù)覽編輯器的DCL, 輸入DCL文件名,之后就能預(yù)覽.4.4對話框驅(qū)動程序?qū)υ捒蛭募枋隽藢υ捒虻慕Y(jié)構(gòu)和外觀,所屬控件的樣式,功能及控件的布局。但是要將對話框顯示到屏幕上,使對話框及其各控件發(fā)揮作用,必須靠程序的驅(qū)動。用Auto LISP或Visual C+語言可以編寫對話框的驅(qū)動程序。4.4.1驅(qū)動對話框的程序流程圖 圖4-2 DCL驅(qū)動流程圖4.4.2對話框驅(qū)動函數(shù)(1).(load_dialog dclfilename)加載一個對話框文件。參數(shù)dclfilena

44、me為對話框文件名,若末指定文件路徑,該函數(shù)默認AutoCAD的搜索路徑。若加載成功返回一個大于零的整數(shù)。例如:(setq dcl_id (load_dialog “d:usertest.dcl”)若返回值大于0,表示加載成功;否則,加載失敗。返回值類似于文件標識號,是顯示對話框,卸載對話框文件的只要參數(shù),應(yīng)該將其才賦給一個變量dcl_id,作為其他番薯調(diào)用的參數(shù)。(2).(unload_dialog dcl_id)卸載一個與dcl_id相關(guān)聯(lián)的對話框文件,釋放該對話框所占存儲空間。參數(shù)dcl_id為load_dialog函數(shù)的返回值。不論卸載是否成功,返回值均為nil。第五章 基于 Visu

45、al FoxPro的數(shù)據(jù)庫5.1 Visual FoxPro 6.0簡介Visual FoxPro是Fox軟件公司在FoxBase之后,推出的又一個PC平臺上的杰出數(shù)據(jù)庫管理系統(tǒng)軟件。Visual FoxPro 6.0是一種速度快、有效、靈活、功能強大的數(shù)據(jù)庫管理系統(tǒng)。Visual FoxPro 6.0具有以下特點:(1)Visual FoxPro 6.0是PC機平臺上檢索速度最快的數(shù)據(jù)庫。(2)Visual FoxPro 6.0具有豐富的開發(fā)工具。(3)Visual FoxPro 6.0支持真正的面向?qū)ο蟮目梢暬幊碳夹g(shù)。(4)Visual FoxPro 6.0可以生成真正的事件驅(qū)動的應(yīng)用程

46、序。(5)OLE的自動處理擴展了Visual FoxPro 6.0與其他應(yīng)用程序之間的數(shù)據(jù)交換手段和能力。(6)Visual FoxPro 6.0支持客戶/服務(wù)器結(jié)構(gòu),這使得用戶在開發(fā)客戶/服務(wù)器應(yīng)用程序時可以把Visual FoxPro 6.0作為前端,使用SQL直接訪問服務(wù)器。5.2 Visual FoxPro 6.0數(shù)據(jù)庫建立說明在安裝了Visual FoxPro 6.0中文版之后,雙擊Visual FoxPro 6.0圖標,即啟動了Visual FoxPro 6.0,出現(xiàn)如下圖的啟動畫面:圖5-1 Visual FoxPro 6.0主頁面啟動Visual FoxPro 6.0之后,選擇

47、“文件”菜單,選擇“新建”,選擇“項目”后,單擊“新建文件”按鈕,然后在“創(chuàng)建”對話框中輸入項目文件名“液壓元件”后,單擊保存按鈕,單擊數(shù)據(jù)庫,選擇右邊“新建”,命名“液壓系統(tǒng)”,將會出現(xiàn)如下圖所示的項目管理器:圖5-2 項目管理器-液壓元件選擇“液壓系統(tǒng)”,單擊表,選擇“新建”,命名為“液壓元件”,出現(xiàn)“表設(shè)計器”對話框,然后根據(jù)需要輸入字段名、類型、長度。如下圖所示: 圖5-3 表設(shè)計器圖根據(jù)需要輸入數(shù)據(jù),如下圖所示:圖5-4 液壓元件尺寸表在項目管理器中,選擇“文檔”,單擊“表單”,選擇對話框右邊的“新建”按鈕,進入表單設(shè)計,以便查詢數(shù)據(jù)。通過“表單控件”工具欄和“屬性”窗口,定義表單控

48、件的相應(yīng)屬性并編寫程序,如下圖所示:圖5-5 液壓元件表單查詢進入程序代碼編寫界面之后,在Form1的Init事件中添寫代碼:THISFORM.Grid1.RecordSource=THISFORM.TEXT1.SETFOCUS在按鈕“開始查詢”的Click事件中編寫代碼:THISFORM.GRID1.RECORDSOURCETYPE=4SET TALK ONIF ALLTRIM (THISFORM.TEXT1.VALUE)= MESSAGEBOX(請輸入類別!,1+48+256,系統(tǒng)提示) THISFORM.TEXT1.SETFOCUS RETURNELSETHISFORM.GRID1.RE

49、CORDSOURCE=SELECT * FROM 液壓元件.DBF WHERE ALLTRIM(類別)=ALLTRIM(THISFORM.TEXT1.VALUE)ENDIF在按鈕“退出”的Click事件中編寫代碼:RELEASE THISFORM表單運行后,在文本框中輸入液壓元件的類別會得到關(guān)于此累液壓元件的型號、額定壓力、流量或排量的信息。根據(jù)所顯示的信息,設(shè)計人員可以直觀的選擇所需要的元件型號。例如:運行程序后,在文本框中輸入溢流閥,點擊“開始查詢”按鈕,運行結(jié)果如下圖所示: 圖5-6 元件查詢圖這樣,設(shè)計人不需要再翻閱機械設(shè)計手冊進行查詢,通過這種直觀方便的方式,大大減輕了設(shè)計工作者的負

50、擔(dān)。第六章 液壓圖形庫的建立AutoCAD軟件具有相當優(yōu)秀的開放型結(jié)構(gòu)(Open architecture)和一個強大的內(nèi)部編程語言(Autolisp語言,可以完成一些計算機工作和作圖功能),可以方便地讓用戶隨意地開發(fā)自己的命令、標準庫文件和各種應(yīng)用程序等。 圖形管理是CAD應(yīng)用的一個重要內(nèi)容,是CAD應(yīng)用中較為繁瑣、較為困難的部分之一。用戶在實際應(yīng)用中總是為圖形太多無法管理大傷腦筋。本文提供了一個圖形庫創(chuàng)建和管理的方法,其最終效果是展示一個方便快捷、圖文并茂的直觀的圖形庫。6.1實現(xiàn)方案許多AutoCAD用戶在圖形庫的創(chuàng)建和管理方面都使用一種較為簡便的方法:將圖形文件命名為能體現(xiàn)其圖形內(nèi)容的

51、名稱,然后將其分類存入特定的文件夾。這種方法的優(yōu)點在于簡便快捷,但其不方便、不直觀的缺點卻更為突出。 針對上述的簡便方法,本文提出的方案方便、直觀且內(nèi)置于AutoCAD中。該方案如下: 生成所有圖形的幻燈片文件; 在AutoCAD初始化界面的下拉菜單區(qū)加入“圖形庫”菜單條,此菜單條包含“機械圖庫”菜單項; 點擊“機械圖庫”菜單區(qū)彈出相應(yīng)的圖標菜單,在圖標菜單中可以看到圖形文件標識名和相應(yīng)的圖形(幻燈片); 在圖標菜單中拾取圖形,根據(jù)CAD命令提示欄的提示,輸入元件的坐標、大小、旋轉(zhuǎn)角度等信息 ;確定即可在工作空間中出現(xiàn)所需的元件符號。 6.2方案論證該方案的關(guān)鍵在于圖標菜單和對話框。 圖標菜單

52、: 圖標菜單是AutoCAD菜單的一種。圖標菜單以20個為一組顯示幻燈片,并同時顯示一個包含有幻燈片名或其他文字的滾動列表框。圖標菜單的長度不受限制,如果一個圖標菜單包含的幻燈片多于20個AutoCAD會提供換頁按鈕,以便讓用戶換頁顯示更多的幻燈片。因此,可以利用AutoCAD的開放型體系結(jié)構(gòu)上的二次開發(fā)定制圖標菜單來對圖形庫進行管理。 圖標菜單也有不足之處。圖標菜單的一個頁面需顯示20幅幻燈片,所以只能從中獲得比較概略的圖形信息(尤其是復(fù)雜圖形)。所以,需要采取一定的輔助措施來對使用圖標菜單的缺陷進行彌補。 對話框: 從用戶觀點來看,窗口操作環(huán)境是目前最先進最流行的一種人機交互界面。它能控制

53、光柵掃描型顯示器和以鼠標器為代表的輸入設(shè)備, 向用戶提供了圖文并茂的可視化環(huán)境,是操作更為直觀、自然、簡便和快速。 AutoCAD R12以上版本提供了一種對話框語言(Dialog-box Control Language,縮寫為DCL),允許用戶設(shè)計并實現(xiàn)自己的對話框。因此, 可以使用對話框語言編程來對圖標菜單中圖形進行放大并提供圖標菜單中不能提供的文字信息。6.3 開發(fā)步驟6.3.1 建立圖形庫文件夾 在AutoCAD目錄下創(chuàng)建文件夾Storeroom,將需要進入圖形庫進行管理的圖形文件存入該文件夾。 6.3.2 制作幻燈片庫(*.SLB) 制作幻燈片文件(*.SLD) 在當前視窗中打開圖

54、形文件,并將圖形移到屏幕中央。然后在命令行鍵入MSLIDE命令并在“Creat slide file”框中鍵入幻燈片名(按下return鍵則將當前圖形名作缺省幻燈片名接受)。為了創(chuàng)建幻燈片庫,將所有幻燈片文件保存到AutoCAD目錄下的support子目錄中。 創(chuàng)建幻燈片列表文件(*.txt) 共有mach_001.dwgmach_039.dwg 39個圖形文件和對應(yīng)的mach_001.sldmach_03.sld共39個幻燈片文件,編輯如下文件(文件名為mach.txt): mach_001.sld mach_002.sld mach_003.sld mach_039.sld 幻燈片庫的建立

55、 使用AutoCAD的support目錄中的實用程序slidelib,將幻燈片文件按照文件列表構(gòu)造成幻燈片庫mach.slb,將其同幻燈片存入同一文件夾內(nèi)。6.3.3 編寫對話框文件(*.dcl) 對話框主要是展示一個圖文并茂的圖形庫中的圖形,在對話框中不僅要有圖形預(yù)覽,還要有該圖形的一些文字說明。本文中的DCL文件內(nèi)容如下:dcl_settings:default_dcl_settingsaudit_level=0; accept_button:ok_button label=確定; key=accept; can_button:cancel_button label=取消; key=can

56、cel; /背壓閥mach_001:dialog label=液壓元件背壓閥; :row :column :text label=圖 號:mach-001; key=num; width=20; fixed_width=true; :image key=img; width=40; height=20; spacer_1; :row :text label= ; accept_button; can_button; :text label=; 6.3.4 編制對話框控制程序(*.lsp) 下面給出對話框文件的控制程序mach.lsp: /背壓閥(defun mach_001() (setq d

57、cl_id (load_dialog mach_001.dcl) (if (not (new_dialog mach_001 dcl_id) (exit) (action_tile accept (draw001) (action_tile cancel (done_dialog) (setq x (dimx_tile img) y (dimy_tile img) (start_image img) (fill_image 0 0 x y 0) (slide_image 0 0 x y mach(mach_001) (end_image) (start_dialog) (unload_dial

58、og dcl_id) ) (defun draw001()(command openmach_001) 6.3.5編制圖標菜單 本文通過修改AutoCAD主菜單acad.mnu來實現(xiàn),其操作步驟如下: 在AutoCAD主菜單acad.mnu中加入自己的圖標菜單區(qū) AutoCAD主菜單acad.mnu中的“*IMAGE”表示圖標菜單區(qū),對應(yīng)幻燈片庫中的幻燈片、對話框和對話框的控制程序,在圖標菜單區(qū)加入以下內(nèi)容(本文給出的是機械圖庫的圖標菜單,電子圖庫的圖標菜單與此類似): *IMAGE *IMAGE_mach 液壓元件mach(mach_001)CC-INSERT mach_001 mach(m

59、ach_002)CC-INSERT mach_002mach(mach_003)CC-INSERT mach_003mach(mach_004)CC-INSERT mach_004mach(mach_005)CC-INSERT mach_005mach(mach_006)CC-INSERT mach_006mach(mach_007)CC-INSERT mach_007mach(mach_008)CC-INSERT mach_008mach(mach_009)CC-INSERT mach_009mach(mach_010)CC-INSERT mach_010mach(mach_011)CC-I

60、NSERT mach_011mach(mach_012)CC-INSERT mach_012mach(mach_013)CC-INSERT mach_013mach(mach_014)CC-INSERT mach_014mach(mach_015)CC-INSERT mach_015mach(mach_016)CC-INSERT mach_016mach(mach_017)CC-INSERT mach_017mach(mach_018)CC-INSERT mach_018mach(mach_019)CC-INSERT mach_019mach(mach_020)CC-INSERT mach_0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論