AutoCAD-油浸式變壓器的參數(shù)化繪圖設(shè)計(jì)_第1頁(yè)
已閱讀5頁(yè),還剩75頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGEII題目AutoCAD—油浸式變壓器的參數(shù)化繪圖設(shè)計(jì)PAGEI摘要隨著社會(huì)的進(jìn)步和市場(chǎng)經(jīng)濟(jì)的激烈競(jìng)爭(zhēng),對(duì)工程設(shè)計(jì)提出了更高、更新的要求,CAD正是適應(yīng)這一要求的產(chǎn)物。目前,我國(guó)CAD技術(shù)的應(yīng)用取得了較好的成績(jī),但由于CAD技術(shù)涉及面廣,影響因數(shù)多,在實(shí)際應(yīng)用方面還不可能完全滿足要求。二次開(kāi)發(fā)是CAD技術(shù)應(yīng)用取得實(shí)效的關(guān)鍵環(huán)節(jié),因此,結(jié)合具體的專業(yè)CAD二次開(kāi)發(fā)更具有實(shí)際意義。由于變壓器繪圖在變壓器設(shè)計(jì)繪圖中占的比例大,變壓器設(shè)計(jì)中頻繁的重復(fù)計(jì)算和繪圖。本次畢業(yè)設(shè)計(jì)開(kāi)發(fā)了實(shí)用的變壓器參數(shù)化繪圖程序,從而提高了產(chǎn)品的設(shè)計(jì)效率和質(zhì)量,降低了產(chǎn)品成本,能為企業(yè)獲得較好的社會(huì)效益和經(jīng)濟(jì)效益。變壓器參數(shù)化繪圖系統(tǒng)使用AutoLISP和DCL編寫(xiě),程序采用模塊化的設(shè)計(jì)理念設(shè)計(jì),提高了程序的生命力,本系統(tǒng)大大的縮短了產(chǎn)品設(shè)計(jì)周期,使企業(yè)提高了產(chǎn)品開(kāi)發(fā)效率和設(shè)計(jì)質(zhì)量。關(guān)鍵詞:Autolisp,參數(shù)化繪圖,變壓器,計(jì)算機(jī)輔助設(shè)計(jì)ABSTRACTABSTRACTAsthedevelopmentofsociety,thecompetitivenessofeconomyandmarketgetincreasinglyfierce,andthenhighandnewrequirementhasbeenputforward.CAD(Computer-AidedDesign)techniqueistheveryoutcomeofthisrequirement.Recently,inCADtechniqueapplication,wehavegottenagreatsuccess.However,involvinginalargescaleandwithtoomanyfactors,it’simpossibletomeetalltherequirementsintheactualapplicationoftheCADtechnique.There-developisthekeyringforCADtechniquetomakearealeffect;therefore,theRe-developTechnologyCADinacertainfieldwillbemoreeffective.BecausetheTransformerMappingaccountsforalargeproportioninTransformerDesignMapping,calculationandmappingrepeatagainandagainintheTransformerDesign.InthisGraduationDesign,apracticalparameterizedmappingprogramdesignoftransformerhasbeendeveloped,andthereforeimprovedthedesigningefficiencyandthequalityofproducts,reducedthecostandishelpfulforenterprisestogainabettersocialandeconomicalbenefit.ThetransformerparameterizedmappingsystemiscomposedinAutoLISPandDCL;indesigningtheprogram,ModularIdeaisappliedtoimprovethevitalityoftheprogram.ThissystemgreatlyshortensthedesigncircleofproductsandimprovestheR&Defficiencyandqualityofproducts.Keywords:AutoLISP,theparameterizedmapping,transformer,computer-aideddesigPAGE72PAGE3目錄摘要 IABSTRACT II第一章AutoCAD二次開(kāi)發(fā)概述 11.1AutoCAD簡(jiǎn)介 11.2AutoCAD二次開(kāi)發(fā)語(yǔ)言及工具簡(jiǎn)介 21.2.1AutoLISP 21.2.2ADS 21.2.3ObjectARX 21.2.4VisualLISP 31.2.5VBA 31.2.6VisualJava 41.3AutoLISP語(yǔ)言與DCL簡(jiǎn)介 41.3.1AutoLISP簡(jiǎn)介 41.3.2DCL簡(jiǎn)介 51.4參數(shù)化繪圖系統(tǒng)簡(jiǎn)介 81.4.1概述 81.4.2理解參數(shù)化設(shè)計(jì) 81.4.3設(shè)計(jì)參數(shù)化系統(tǒng)的基本要素 91.4.4參數(shù)化設(shè)計(jì)的一般步驟 9第二章實(shí)用繪圖工具的開(kāi)發(fā)設(shè)計(jì) 102.1概述 102.2設(shè)置繪圖環(huán)境設(shè)計(jì) 102.2.1設(shè)計(jì)思想及流程 102.2.2設(shè)計(jì)實(shí)施與程序設(shè)計(jì) 112.3.圖框的繪制 142.3.1圖紙的基本幅面 142.3.2圖框格式 152.3.3圖框程序 162.4設(shè)計(jì)日期的輸入 172.5標(biāo)題欄的繪制與填寫(xiě)方法 172.5.1零件名稱 182.5.2零件材料 182.5.3圖樣代號(hào) 182.5.4比例 182.5.5設(shè)計(jì)者 182.2.6設(shè)計(jì)時(shí)期 192.5.7選取點(diǎn) 192.5.8程序操作界面 192.6明細(xì)表 192.6.1繪制明細(xì)表 192.6.2繪制明細(xì)表程序 192.6.3填寫(xiě)明細(xì)表 212.6.4技術(shù)要求 232.7序號(hào)標(biāo)注 23第三章變壓器絕緣部分參數(shù)化繪圖設(shè)計(jì) 243.1變壓器各部件零件圖的參數(shù)化繪圖概述 243.2絕緣部件的參數(shù)化繪圖 253.3總體設(shè)計(jì)思路 263.4鐵軛墊塊參數(shù)化繪圖 263.4.1參數(shù)確定 263.4.2對(duì)話框界面設(shè)計(jì) 273.4.3總體繪圖設(shè)計(jì)思路 283.4.4布局的點(diǎn)位圖 283.4.5主視圖的繪制 283.4.6左視圖的繪制 293.4.7 俯視圖的繪制 303.5下鐵軛絕緣的參數(shù)話設(shè)計(jì) 313.5.1參數(shù)的確定 313.5.2對(duì)話框界面設(shè)計(jì) 313.5.3總體繪圖設(shè)計(jì)思路 323.5.4布局的點(diǎn)位圖 323.5.5主視圖的繪制 333.5.6俯視圖的繪制 333.5.7平面圖的繪制 343.5.8平面右圖的繪制 353.6上鐵軛絕緣的參數(shù)化設(shè)計(jì) 353.6.1參數(shù)的確定 353.6.2對(duì)話框界面設(shè)計(jì) 363.6.3總體繪圖設(shè)計(jì)思路 363.6.4布局的點(diǎn)位圖 373.6.5主視圖的繪制 383.6.6俯視圖的繪制 383.6.7平面圖的繪制 393.6.8平面右圖的繪制 393.7絕緣裝配的參數(shù)化設(shè)計(jì) 403.7.1對(duì)話框界面設(shè)計(jì) 403.7.2總體繪圖設(shè)計(jì)思路 413.7.3布局的點(diǎn)位圖 413.7.4塊的繪制 41第四章結(jié)論 43參考文獻(xiàn) 44致謝辭 45附錄A:鐵軛墊塊的主程序清單 46附錄B:上鐵軛墊塊的主程序清單 53PAGE43第一章AutoCAD二次開(kāi)發(fā)概述AutoCAD是一個(gè)通用CAD平臺(tái),它不僅具有強(qiáng)大的繪圖、編輯功能,而且具有開(kāi)放的體系結(jié)構(gòu),允許用戶對(duì)其進(jìn)行二次開(kāi)發(fā),以滿足繪圖過(guò)程中的特殊要求。AutoCAD榮登全球繪圖軟件的龍頭寶座,主要是因?yàn)樗哂虚_(kāi)放的體系結(jié)構(gòu)。它允許用戶和開(kāi)發(fā)者采用高級(jí)編程語(yǔ)言對(duì)其進(jìn)行擴(kuò)充和修改,即二次開(kāi)發(fā),能最大限度地滿足用戶的特殊要求。AutoCAD第一版于1982年11月由AutoDESK公司推出,目前最新版本是AutoCAD2005。1.1AutoCAD簡(jiǎn)介AutoCAD是美國(guó)AUTODESK公司1982年在微機(jī)上開(kāi)發(fā)的繪圖軟件包,AutoCAD的版本不斷更新,更新的版本功能逐步增加,現(xiàn)已成為強(qiáng)有力繪圖工具,在國(guó)際上廣為流傳。AutoCAD廣泛應(yīng)用于建筑、機(jī)械、電子、藝術(shù)造型及工程管理等領(lǐng)域,是微機(jī)上最為流行的繪圖軟件之一。使用AutoCAD對(duì)用戶的計(jì)算機(jī)和英語(yǔ)不作要求,現(xiàn)在已有了中文版的AutoCAD軟件,可應(yīng)用中文直接與軟件對(duì)話,使用相當(dāng)方便,掌握好AutoCAD的關(guān)鍵就是實(shí)踐,通過(guò)實(shí)踐掌握各種命令的應(yīng)用,技巧繪圖以提高繪圖的速度。其主要功能有:一、繪圖功能AutoCAD提供了豐富的基本繪圖實(shí)體,具有完善的圖形繪功能,繪制的圖形是由預(yù)先定義好的圖形元素即實(shí)體(Entity)所組成,實(shí)體通過(guò)命令調(diào)用和光標(biāo)定位即可輸入所繪制的圖形。如:點(diǎn)、直線、多邊形、圓弧、橢圓、文本、剖面線、尺寸等等。二、編輯功能AutoCAD提供了各種修改手段,具有強(qiáng)大的圖形編輯功能,AutoCAD可以對(duì)圖形進(jìn)行擦除、修改、拷貝、移動(dòng)、鏡像、斷開(kāi)、修剪、旋轉(zhuǎn)等多種編輯操作。三、繪圖工具AutoCAD為用戶提供了大量的繪圖工具,如捕捉、刪格、正交、動(dòng)態(tài)坐標(biāo)、目標(biāo)捕捉、縮放、點(diǎn)過(guò)濾、用戶坐標(biāo)等等輔助繪圖工具。四、三維功能AutoCAD可直接繪制三維圖形,它提供了一個(gè)實(shí)體造型模塊(AME),可生成典型三維實(shí)心體、拉伸體、回轉(zhuǎn)體,對(duì)這些實(shí)心體進(jìn)行并差交等布爾運(yùn)算可以構(gòu)成組合體,進(jìn)而可獲得剖切圖輪廓圖著色圖等。五、開(kāi)發(fā)環(huán)境AutoCAD內(nèi)含AutoLISP語(yǔ)言和ADS開(kāi)發(fā)系統(tǒng),便于用戶進(jìn)行二次開(kāi)發(fā)。用戶可以利用AutoLISP編制各種程序,從而為AutoCAD增加新的命令,也可以為各專業(yè)編制圖形數(shù)據(jù)庫(kù)。ADS是以C語(yǔ)言為基礎(chǔ)的開(kāi)發(fā)系統(tǒng),它具有AutoLISP的大部分功能,并可使用標(biāo)準(zhǔn)C函數(shù),是開(kāi)發(fā)AutoCAD的另一有效工具。另外AutoCAD還有制作幻燈、文件管理等其它功能。1.2AutoCAD二次開(kāi)發(fā)語(yǔ)言及工具簡(jiǎn)介1.2.1AutoLISPAutoLISP的全名是LISTProcessingLanguage,是一種表處理語(yǔ)言,有很強(qiáng)的符號(hào)處理能力。是被解釋執(zhí)行的,任何一個(gè)語(yǔ)句鍵入后就能馬上執(zhí)行,它對(duì)于交互式的程序開(kāi)發(fā)非常方便。其缺點(diǎn)是繼承了LISP語(yǔ)言的編程規(guī)則而導(dǎo)致繁多的括號(hào)。她出現(xiàn)于20世紀(jì)50年代為研究人工智能而開(kāi)發(fā)起來(lái),也稱人工智能語(yǔ)言。是一種嵌入在AutoCAD內(nèi)部的編程語(yǔ)言,是LISP原版的一個(gè)子集,她一直是低版本AutoCAD的首選編程語(yǔ)言。AutoLISP具有如下特點(diǎn):eq\o\ac(○,1)AutoLISP語(yǔ)言是在普通LISP語(yǔ)言基礎(chǔ)上,擴(kuò)充了許多適用于CAD應(yīng)用的特殊功能而形成的,是一種僅能以解釋方式運(yùn)行于AutoCAD內(nèi)部的解釋型程序設(shè)計(jì)語(yǔ)言。eq\o\ac(○,2)AutoLISP語(yǔ)言中的一切成分都是以函數(shù)的形式給出的,它沒(méi)有語(yǔ)句概念和其他語(yǔ)法結(jié)構(gòu),執(zhí)行AutoLISP程序就是執(zhí)行一些函數(shù),再調(diào)用其他函數(shù)。eq\o\ac(○,3)AutoLISP把數(shù)據(jù)和程序統(tǒng)一表達(dá)為表結(jié)構(gòu),即S-表達(dá)式,故可把程序當(dāng)成數(shù)來(lái)處理,也可以把數(shù)據(jù)當(dāng)成程序來(lái)執(zhí)行。eq\o\ac(○,4)AutoLISP語(yǔ)言中的程序運(yùn)行過(guò)程就是函數(shù)求值的過(guò)程,是在對(duì)函數(shù)求值的過(guò)程中實(shí)現(xiàn)函數(shù)的功能。eq\o\ac(○,5)AutoLISP語(yǔ)言主要控制結(jié)構(gòu)采用遞歸方式。遞歸方式的使用,似的程序設(shè)計(jì)簡(jiǎn)單易懂。1.2.2ADSADS的全名是AutoCADDevelopmentSystem,它是AutoCAD的C語(yǔ)言開(kāi)發(fā)系統(tǒng),ADS本質(zhì)上是一組可以用C語(yǔ)言編寫(xiě)AutoCAD應(yīng)用程序的頭文件和目標(biāo)庫(kù),它直接利用用戶熟悉的各種流行的C語(yǔ)言編譯器,將應(yīng)用程序編譯成可執(zhí)行的文件在AutoCAD環(huán)境下運(yùn)行,這種可以在AutoCAD環(huán)境中直接運(yùn)行的可執(zhí)行文件叫做ADS應(yīng)用程序。ADS由于其速度快,又采用結(jié)構(gòu)化的編程體系,因而很適合于高強(qiáng)度的數(shù)據(jù)處理,如二次開(kāi)發(fā)的機(jī)械設(shè)計(jì)CAD、工程分析CAD、建筑結(jié)構(gòu)CAD、土木工程CAD、化學(xué)工程CAD、電氣工程CAD等。1.2.3ObjectARXObjectARX是一種嶄新的開(kāi)發(fā)AutoCAD應(yīng)用程序的工具,她以C++為編程語(yǔ)言,采用先進(jìn)的面向?qū)ο蟮木幊淘恚峁┛膳cAutoCAD直接交互的開(kāi)發(fā)環(huán)境,能使用戶方便快捷地開(kāi)發(fā)出高效簡(jiǎn)潔的AutoCAD應(yīng)用程序。ObjectARX并沒(méi)有包含在AutoCAD中,可在AutoDESK公司網(wǎng)站中去下載,其最新版本是ObjectARXforAutoCAD2000,它能夠?qū)utoCAD的所有事務(wù)進(jìn)行完整的、先進(jìn)的、面向?qū)ο蟮脑O(shè)計(jì)與開(kāi)發(fā),并且開(kāi)發(fā)的應(yīng)用程序速度更快、集成度更高、穩(wěn)定性更強(qiáng)。ObjectARX從本質(zhì)上講,是一種特定的C++編程環(huán)境,它包括一組動(dòng)態(tài)鏈接庫(kù)(DLL),這些庫(kù)與AutoCAD在同一地址空間運(yùn)行并能直接利用AutoCAD核心數(shù)據(jù)結(jié)構(gòu)和代碼,庫(kù)中包含一組通用工具,使得二次開(kāi)發(fā)者可以充分利用AutoCAD的開(kāi)放結(jié)構(gòu),直接訪問(wèn)AutoCAD數(shù)據(jù)庫(kù)結(jié)構(gòu)、圖形系統(tǒng)以及CAD幾何造型核心,以便能在運(yùn)行期間實(shí)時(shí)擴(kuò)展AutoCAD的功能,創(chuàng)建能全面享受AutoCAD固有命令的新命令。ObjectARX的核心是兩組關(guān)鍵的API,即AcDb(AutoCAD數(shù)據(jù)庫(kù))和AcEd(AutoCAD編譯器),另外還有其它的一些重要庫(kù)組件,如AcRX(AutoCAD實(shí)時(shí)擴(kuò)展)、AcGi(AutoCAD圖形接口)、AcGe(AutoCAD幾何庫(kù))、ADSRX(AutoCAD開(kāi)發(fā)系統(tǒng)實(shí)時(shí)擴(kuò)展)。ObjectARX還可以按需要加載應(yīng)用程序;使用ObjectARX進(jìn)行應(yīng)用開(kāi)發(fā)還可以在同一水平上與Windows系統(tǒng)集成,并與其它Windows應(yīng)用程序?qū)崿F(xiàn)交互操作。1.2.4VisualLISP

VisualLISP已經(jīng)被完整地集成到AutoCAD2000中,她為開(kāi)發(fā)者提供了嶄新的、增強(qiáng)的集成開(kāi)發(fā)環(huán)境,一改過(guò)去在AutoCAD中內(nèi)嵌AtuoLISP運(yùn)行引擎的機(jī)制,這樣開(kāi)發(fā)者可以直接使用AutoCAD中的對(duì)象和反應(yīng)器,進(jìn)行更底層的開(kāi)發(fā)。其特點(diǎn)為自身是AutoCAD2000中默認(rèn)的代碼編輯工具;用它開(kāi)發(fā)AutoLISP程序的時(shí)間被大大地縮短,原始代碼能被保密,以防盜版和被更改;能幫助用戶使用ActiveX對(duì)象及其事件;使用了流行的有色代碼編輯器和完善的調(diào)試工具,讓用戶很容易創(chuàng)建和分析LISP程序的運(yùn)行情況。在VisualLISP中新增了一些函數(shù):如基于AutoLISP的ActiveX/COM自動(dòng)化操作接口;用于執(zhí)行基于AutoCAD內(nèi)部事件的LISP程序的對(duì)象反應(yīng)器;新增了能夠?qū)Σ僮飨到y(tǒng)文件進(jìn)行操作的函數(shù)。VisualLISP為AutoLISP應(yīng)用程序提供三種文件格式選項(xiàng):LSP文件(.lsp)-一種包含AutoLISP程序代碼的ASCII文本文件。FAS文件(.fas)-一個(gè)LSP程序文件的二進(jìn)制編譯版本。VLX文件(.vlx)-一個(gè)或多個(gè)LSP文件和/或?qū)υ捒蚩刂普Z(yǔ)言(DCL)文件的編譯集合。1.2.5VBAVBA即Mcrosoftoffice中的VisualBasicforApplications,它被集成到AutoCAD2000中。VBA為開(kāi)發(fā)者提供了一種新的選擇,也為用戶訪問(wèn)AutoCAD2000中豐富的技術(shù)框架打開(kāi)一條新的通道。VBA和AutoCAD2000中強(qiáng)大的ActiveX自動(dòng)化對(duì)象模型的結(jié)合,代表了一種新型的定制AutoCAD的模式構(gòu)架。通過(guò)VBA,我們可以操作AutoCAD,控制ActiveX和其它一些應(yīng)用程序,使之相互之間發(fā)生互易活動(dòng)。1.2.6VisualJavaJava是最早由Sun公司創(chuàng)建的一種頗具魅力的程序設(shè)計(jì)語(yǔ)言,她是針對(duì)嵌入系統(tǒng)而設(shè)計(jì)的。像許多開(kāi)發(fā)語(yǔ)言一樣,Java是一組實(shí)時(shí)庫(kù)的集合,可為軟件開(kāi)發(fā)者提供多種工具來(lái)創(chuàng)建軟件,管理用戶接口,進(jìn)行網(wǎng)絡(luò)通訊、發(fā)布應(yīng)用程序等。對(duì)AutoCAD用戶和開(kāi)發(fā)者而言,Java代表著新一代的編程語(yǔ)言,它主要用于開(kāi)發(fā)出全新的優(yōu)秀產(chǎn)品。AutoCAD為我們提供了完整的、高性能的、面向?qū)ο蟮腃AD程序開(kāi)發(fā)環(huán)境,為用戶和開(kāi)發(fā)者提供了多種新的選擇,使得對(duì)AutoCAD二次開(kāi)發(fā)和定制變得輕松而容易。通過(guò)以上的介紹,幫助大家在二次開(kāi)發(fā)時(shí)有所選擇,提高工效,達(dá)到事半工倍的目的。1.3AutoLISP語(yǔ)言與DCL簡(jiǎn)介1.3.1AutoLISP簡(jiǎn)介AutoCAD為用戶提供了眾多的高級(jí)編程環(huán)境,主要有嵌套在AutoCAD之中的AutoLISP和VBA,面向?qū)ο筇卣鞯腃++編程環(huán)境ARX,以及其它通過(guò)動(dòng)態(tài)數(shù)據(jù)交換(DDE)完成與AutoCAD之間通信的高級(jí)語(yǔ)言應(yīng)用程序等。LISP(ListProcessing,表處理解釋語(yǔ)言)誕生于20世紀(jì)50年代末期,是人工智能學(xué)科領(lǐng)域廣泛應(yīng)用的程序設(shè)計(jì)語(yǔ)言。AutoLISP語(yǔ)言是Autodesk公司為用戶提供的在AutoCAD平臺(tái)上進(jìn)行二次開(kāi)發(fā)的早期語(yǔ)言。AutoLISP程序源于人工智能語(yǔ)言LISP,是一種對(duì)AutoCAD進(jìn)行定制、二次開(kāi)發(fā)的非結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,它嵌套于AutoCAD內(nèi)部,是LISP語(yǔ)言與AutoCAD有機(jī)結(jié)合的產(chǎn)物。AutoLISP不僅具備一般高級(jí)基本結(jié)構(gòu)與功能,而且還具有強(qiáng)大的圖形處理功能。由于AutoLISP語(yǔ)法簡(jiǎn)單易于掌握,函數(shù)功能強(qiáng)大,因此,是AutoCAD用戶使用較為廣泛的編程語(yǔ)言之一。就目前而言,與VBA和ARX相比,采用AutoLISP對(duì)AutoCAD進(jìn)行工程專業(yè)領(lǐng)域的應(yīng)用程序或CAD系統(tǒng)的開(kāi)發(fā)有許多明顯的優(yōu)勢(shì),比如在功能上與ARX已相差無(wú)幾,而學(xué)習(xí)AutoLISP所需計(jì)算機(jī)專業(yè)知識(shí)遠(yuǎn)遠(yuǎn)低于C++。VBA雖然在對(duì)話框設(shè)計(jì)能力上比AutoLISP強(qiáng)許多,但由于它使用ActiveX與AutoCAD交互,運(yùn)行效率不如AutoLISP,且代碼保密性差。另外,從AutoCAD版本不斷升級(jí)中可看出,Autodesk公司仍在繼續(xù)擴(kuò)充AutoLISP的功能。1996年底推出VisualLISP,對(duì)AutoLISP是一次重大改進(jìn),增強(qiáng)了AutoCAD的二次開(kāi)發(fā)能力。VisualLISP(簡(jiǎn)稱VLISP)是一個(gè)用AutoLISP語(yǔ)言進(jìn)行程序開(kāi)發(fā)的軟件工具,它提供的集成開(kāi)發(fā)環(huán)境(IntegratedDevelopmentEnvironment,IDE)提供有眾多工具,功能十分強(qiáng)大,可使用戶方便地用AutoLISP語(yǔ)言進(jìn)行程序開(kāi)發(fā)中的編寫(xiě)程序代碼、調(diào)試程序等操作。1.3.2DCL簡(jiǎn)介DCL話框具有操作直觀、方便、易于輸入和修改數(shù)據(jù)等特點(diǎn),是現(xiàn)代軟件設(shè)計(jì)中必不可少的風(fēng)格。對(duì)話框是一個(gè)彈出式窗口,它與用戶進(jìn)行信息通信,一般被用于特定的與輸入有關(guān)的任務(wù)。AutoCAD從12版本起提供了對(duì)話框語(yǔ)言,用戶基于AutoCAD開(kāi)發(fā)自己的應(yīng)用程序時(shí),可以利用AutoCAD所提供的可編程對(duì)話框PDB(ProgrammableDialogBox)功能創(chuàng)建新的對(duì)話框,也可以修改一個(gè)已經(jīng)存在的對(duì)話框。AutoCAD對(duì)話框新穎直觀,在一定程度上簡(jiǎn)化了用戶交互操作,極大地提高了軟件的使用效率。對(duì)話框是用對(duì)話框控制語(yǔ)言DCL(DialogControlLanguage)編寫(xiě)的ASCII文件定義的。DCL語(yǔ)言將定義對(duì)話框以什么方式出現(xiàn)以及它包含的內(nèi)容,例如按鈕,列表,文本等。對(duì)話框的設(shè)計(jì)以約束條件為基礎(chǔ),框的尺寸及其部件的布局均應(yīng)遵循統(tǒng)一規(guī)則,用戶不需要指出每一部分的尺寸大小及定位關(guān)系,系統(tǒng)自動(dòng)進(jìn)行布置。AutoCAD為用戶提供的可編程對(duì)話框技術(shù)是由專用的對(duì)話框描述語(yǔ)言(DCL)和AutoLISP驅(qū)動(dòng)函數(shù)兩部分內(nèi)容組成的。對(duì)話框的部件只定義了其行為方式,如按鈕只意味著按壓,列表只顯示相關(guān)的內(nèi)容以便用戶做出選擇等,一個(gè)對(duì)話框的使用方式實(shí)際上完全由它的應(yīng)用程序(利用AutoLISP/VLISP或ADS所編寫(xiě)的程序)所決定。手工編碼方法設(shè)計(jì)對(duì)話框的最終目的,就是要產(chǎn)生一個(gè)描述對(duì)話框外觀的DCL程序文件。目前有兩種方法,即手工編碼方法和利用現(xiàn)成的設(shè)計(jì)工具PROTOBOX。為一個(gè)應(yīng)用程序設(shè)計(jì)對(duì)話框,一般需要經(jīng)歷圖1-1所示。圖1-1對(duì)話框手工設(shè)計(jì)過(guò)程⒈分析問(wèn)題:弄清應(yīng)用程序所要解決的問(wèn)題,確定輸入?yún)?shù)和輸出形式。對(duì)于復(fù)雜的應(yīng)用程序還需要進(jìn)行模塊化,確定模塊之間的調(diào)用關(guān)系和數(shù)據(jù)聯(lián)系。⒉根據(jù)應(yīng)用程序所需的數(shù)據(jù)類型選擇合適的構(gòu)件,對(duì)構(gòu)件進(jìn)行分類,確定對(duì)話框構(gòu)件的布局。⒊確定對(duì)話框及其構(gòu)件和組件的屬性。例如,確定構(gòu)件的名字,標(biāo)識(shí)文字,尺寸,對(duì)齊方式等。⒋手工繪制對(duì)話框的草圖。⒌根據(jù)繪制的草圖,利用DCL語(yǔ)言對(duì)對(duì)話框進(jìn)行編碼,生成描述對(duì)話框外觀的DCL程序文件。⒍對(duì)DCL進(jìn)行錯(cuò)誤檢查。對(duì)話框驅(qū)動(dòng)程序?qū)υ捒蝌?qū)動(dòng)程序具有相對(duì)固定的結(jié)構(gòu)框架和嚴(yán)格的函數(shù)調(diào)用順序。其一般順序如下:⒈用LOAD_DIALOG函數(shù)把對(duì)話框定義文件裝入內(nèi)存,這樣,對(duì)話框定義文件中定義的所有對(duì)話框才是有定義的,程序中才能利用函數(shù)返回的文件表識(shí)號(hào)彈出其中的對(duì)話框,并在所有操作結(jié)束后卸載DCL文件,從內(nèi)存中清除該文件中的對(duì)話框。⒉利用NEW_DIALOG函數(shù)顯示出已裝入的DCL文件中定義的特定對(duì)話框,使之成為當(dāng)前對(duì)話框。檢查NEW_DIALOG函數(shù)的返回值是非常重要的,如果返回值為nil,則應(yīng)中斷程序執(zhí)行。如果仍強(qiáng)行執(zhí)行START_DIALOG函數(shù),則會(huì)產(chǎn)生意想不到的后果。⒊對(duì)話框構(gòu)件的初始化。在成功的彈出了對(duì)話框后,即進(jìn)入了對(duì)話框激活期。此后。AutoLISP與圖形屏幕操作有關(guān)的函數(shù)無(wú)法使用,而AutoLISP新提供的對(duì)話框處理也才能使用。對(duì)話框構(gòu)件初始化大致包括兩個(gè)方面的內(nèi)容:①構(gòu)件處值的設(shè)置。對(duì)話框構(gòu)件的初值可以在DCL文件中通過(guò)value屬性設(shè)置,也可以利用專門(mén)的函數(shù)在驅(qū)動(dòng)程序中設(shè)置。一般采用后者,因?yàn)橐钩踔翟O(shè)置合理,取決于AutoCAD的當(dāng)前狀態(tài)。例如,應(yīng)把顏色設(shè)置為系統(tǒng)當(dāng)前色,則需要用GETVAR得到系統(tǒng)變量“CECOLOR”的當(dāng)前值;層控制對(duì)話框中當(dāng)前層名和列表框中的層名,需要用程序搜索層表在能得到。這些在建立DCL文件時(shí)都無(wú)法知道的。②動(dòng)作構(gòu)件動(dòng)作表達(dá)式的設(shè)定。動(dòng)作構(gòu)件是用來(lái)俘獲事件的,或者說(shuō)它們是靠事件驅(qū)動(dòng)的。但是,某一事件(例如锨擊了按鈕或選擇了列表框的選項(xiàng))發(fā)生后,需要做些什么事情卻是程序設(shè)計(jì)者的責(zé)任。動(dòng)作構(gòu)件的動(dòng)作設(shè)定是用ACTION_TILE函數(shù)實(shí)現(xiàn)的。不設(shè)定動(dòng)作的構(gòu)件是不會(huì)有預(yù)期動(dòng)作的。⒋對(duì)話框的激活。當(dāng)初始化工作完成以后,還需要START_DIALOG函數(shù)激活對(duì)話框,把控制權(quán)交給對(duì)話框,監(jiān)視和俘獲用戶的輸入和選擇,并且構(gòu)件的動(dòng)作表達(dá)式來(lái)處理用戶的操作,用變量或表保存必要數(shù)據(jù)。當(dāng)用戶按下對(duì)話框的退出按鈕后,將由系統(tǒng)內(nèi)置的或用戶設(shè)置的DONE_DIALOG函數(shù)隱去對(duì)話框,終止START_DIALOG函數(shù)的執(zhí)行。⒌后處理與DCL文件的卸載。圖1-2驅(qū)動(dòng)程序的基本流程只有START_DIALOG函數(shù)執(zhí)行結(jié)束后,主對(duì)話框才把控制權(quán)交回AutoCAD。此時(shí)可根據(jù)START_DIALOG函數(shù)返回值來(lái)判知用戶退出對(duì)話框的原因,然后分情況進(jìn)行處理。最后,調(diào)用UNLOAD_DIALOG函數(shù)卸載DCL文件。驅(qū)動(dòng)程序的基本流程如圖1-2所示。1.4參數(shù)化繪圖系統(tǒng)簡(jiǎn)介1.4.1概述AutoCAD參數(shù)化程序從用戶取得參數(shù)或外部文件,然后在AutoCAD圖形中生成圖像。這些參數(shù)可以是基于AutoCAD,AutoLisp或ADS的。一個(gè)參數(shù)程序可以畫(huà)一個(gè)公共零件的許多不同尺寸,不同形狀的圖。通過(guò)參數(shù)化,可以畫(huà)出一系列復(fù)雜的物體,他們共享公共的參數(shù)關(guān)系。如果只改變比例,塊是最好的解決方法。但如果這種變動(dòng)需要大規(guī)模的相似塊的庫(kù)時(shí),采用參數(shù)化可以提高柔性,減少錯(cuò)誤,并產(chǎn)生巨大的效益。1.4.2理解參數(shù)化設(shè)計(jì) 參數(shù)化繪圖在現(xiàn)代機(jī)械CAD中的應(yīng)用很廣,特別是對(duì)于定型的機(jī)械產(chǎn)品設(shè)計(jì),需要形成系列,以便針對(duì)用戶的生產(chǎn)特點(diǎn)提供不同大小、功率、規(guī)格的產(chǎn)品。這就要求該產(chǎn)品的CAD系統(tǒng)具有參數(shù)化的設(shè)計(jì)功能,使得產(chǎn)品的設(shè)計(jì)圖可以方便地隨著某些結(jié)構(gòu)尺寸的修改而修改并自動(dòng)地重新繪出所要求的圖樣,實(shí)現(xiàn)尺寸驅(qū)動(dòng)圖形的自動(dòng)變化。 在當(dāng)今流行CAD軟件中,每一個(gè)簡(jiǎn)單的命令調(diào)用就是一個(gè)參數(shù)化繪圖的應(yīng)用。這就像C語(yǔ)言或其他高級(jí)語(yǔ)言中的函數(shù)的調(diào)用一樣,輸入?yún)?shù)后執(zhí)行特定的操作。對(duì)一個(gè)復(fù)雜的機(jī)械圖進(jìn)行參數(shù)化設(shè)計(jì),其實(shí)就是一些簡(jiǎn)單的命令按照一定的拓?fù)潢P(guān)系的中和。參數(shù)化設(shè)計(jì)對(duì)象的結(jié)構(gòu)形狀一般比較定型,其尺寸關(guān)系可以用一組參數(shù)來(lái)確定。這樣參數(shù)化系統(tǒng)的繪圖功能就很明確的得以實(shí)現(xiàn)。 1.4.3設(shè)計(jì)參數(shù)化系統(tǒng)的基本要素 一個(gè)較復(fù)雜的參數(shù)化部件系統(tǒng)的各個(gè)部分是隨系統(tǒng)的設(shè)計(jì)而變化,但他們大致上都包括下列元素:非CAD的外部文件,包括不見(jiàn)數(shù)據(jù)和設(shè)計(jì)特征。一個(gè)進(jìn)行提示和通信的用戶界面函數(shù)。一個(gè)讀數(shù)據(jù)文件的AutoLisp子程序。計(jì)算和繪圖函數(shù)。程序和函數(shù)的菜單界面。零件表列的屏幕幫助。材料幫助 。設(shè)計(jì)一個(gè)整體系統(tǒng)實(shí)際上就是設(shè)計(jì)其各個(gè)功能的模塊,即通常說(shuō)的:模塊化設(shè)計(jì)。這樣,以后的公共模塊就可以通用,這就大大的提高了設(shè)計(jì)效率!1.4.4參數(shù)化設(shè)計(jì)的一般步驟 一般的參數(shù)化設(shè)計(jì),可以遵循以下的步驟:進(jìn)行數(shù)據(jù)分析,得出設(shè)計(jì)計(jì)算以及繪圖所需數(shù)據(jù)查找相關(guān)設(shè)計(jì)手冊(cè),得出零件圖(或其他)的參數(shù)表繪制零件圖所需的參數(shù)列出由零件參數(shù)表數(shù)據(jù)到繪圖需要使用的參數(shù)數(shù)據(jù)轉(zhuǎn)換公式根據(jù)上面的數(shù)據(jù)項(xiàng)設(shè)計(jì)人機(jī)交互界面(對(duì)話框)進(jìn)行編程工作設(shè)計(jì)對(duì)話框驅(qū)動(dòng)函數(shù)設(shè)計(jì)相關(guān)的幫助文件標(biāo)注程序調(diào)試程序第二章實(shí)用繪圖工具的開(kāi)發(fā)設(shè)計(jì)2.1概述為了簡(jiǎn)便繪圖工序,節(jié)省繪圖時(shí)間,利用CAD集成的AutoLISP語(yǔ)言編寫(xiě)固定的繪圖程序,來(lái)完成比較通用的繪圖工序是一件十分必要的事情。AutoLISP語(yǔ)法簡(jiǎn)單,不用特殊的變量定義,非常富有彈性,比起其他的程序語(yǔ)言,它的語(yǔ)法簡(jiǎn)單而又有其獨(dú)特風(fēng)格。除一般性的功能函數(shù)外,又擁有為數(shù)不少控制配合AutoCAD的特殊函數(shù),而且AutoLISP可直接調(diào)用執(zhí)行所有AutoCAD的命令,以及掌握運(yùn)用所有的AutoCAD系統(tǒng)變量,功能十分強(qiáng)大。編寫(xiě)AutoLISP可以用來(lái)強(qiáng)化AutoCAD原有命令,可以創(chuàng)造更加有用的AutoCAD新命令,可以簡(jiǎn)化繁瑣的環(huán)境設(shè)定或繪圖步驟,可處理參數(shù)式繪圖,可用用來(lái)達(dá)到真正靈活控制AutoCAD等等。在實(shí)際生產(chǎn)中,利用AutoLISP語(yǔ)言來(lái)編寫(xiě)程序,可大大的提高生產(chǎn)效率。設(shè)想某員工花了20小時(shí)編寫(xiě)一個(gè)AutoLISP程序,表面上,這將近三天的時(shí)間,他一張圖都沒(méi)有畫(huà),甚至可能偶有發(fā)呆,沉思。如此程序一天可以替公司繪圖部門(mén)節(jié)省一個(gè)小時(shí)繪圖時(shí)間,那算一算,只要20天就可以抵消開(kāi)發(fā)成本,而20天以后就能節(jié)省大量的繪圖時(shí)間,隨著使用的人越多,使用的時(shí)間越長(zhǎng),就可以獲得更大的生產(chǎn)效率。2.2設(shè)置繪圖環(huán)境設(shè)計(jì)計(jì)算機(jī)輔助設(shè)計(jì)(CAD)技術(shù)具有快速設(shè)計(jì)和自動(dòng)繪圖的功能,是幫助企業(yè)適應(yīng)飛速變化的技術(shù)要求和市場(chǎng)要求的產(chǎn)物。其中,AutoCAD是一種通用圖形處理軟件,功能強(qiáng)大,具有良好的開(kāi)放性,是機(jī)械行業(yè)“甩圖板”的好幫手,在企業(yè)中使用越來(lái)越來(lái)普遍。但要繪制出符合我國(guó)機(jī)械制圖標(biāo)準(zhǔn)的工程圖,需要設(shè)置好繪圖環(huán)境才能達(dá)到事半功倍的目的,而且每畫(huà)一張新圖都要重新創(chuàng)建。在企業(yè)之間甚至企業(yè)內(nèi)部,由于不同用戶設(shè)置的繪圖環(huán)境不同給用戶的技術(shù)文件交流造成混亂與障礙的現(xiàn)象時(shí)有發(fā)生。為此可利用AutoCAD提供的模板功能將設(shè)置好的繪圖環(huán)境保存為模板文件,另一個(gè)較好的方法是對(duì)此進(jìn)行二次開(kāi)發(fā)。從而可大大提高繪圖效率及軟件開(kāi)發(fā)效率,同時(shí)還可為技術(shù)文件的交流帶來(lái)方便。2.2.1設(shè)計(jì)思想及流程機(jī)械工程圖模板的AutoCAD二次開(kāi)發(fā),即繪圖環(huán)境的設(shè)置的程序開(kāi)發(fā)設(shè)計(jì),主要包括對(duì)象特性(即層設(shè)置)、尺寸標(biāo)注樣式設(shè)置、文字樣式設(shè)置、圖幅設(shè)置及標(biāo)題欄的程序開(kāi)發(fā),以便在實(shí)際使用中符合國(guó)家標(biāo)準(zhǔn),同時(shí)也提高繪圖效率。開(kāi)發(fā)過(guò)程結(jié)合實(shí)際工程的二次開(kāi)發(fā)工作,以體現(xiàn)其優(yōu)越性。2.2.2設(shè)計(jì)實(shí)施與程序設(shè)計(jì)2.2在設(shè)計(jì)中應(yīng)根據(jù)我國(guó)最新的機(jī)械制圖國(guó)標(biāo)的規(guī)定,在開(kāi)發(fā)過(guò)程中主要采用的國(guó)標(biāo)有:GB10609.1-89《技術(shù)制圖標(biāo)題欄》;GB/T14689-93《技術(shù)制圖圖紙幅面和格式》;GB/T14691-93《技術(shù)制圖字體》;GB/T17450-1998《機(jī)械制圖圖線》;GB/T16675.2-1996《機(jī)械制圖尺寸注法》;GB/T14665-93《計(jì)算機(jī)制圖用計(jì)算機(jī)信息交換制圖規(guī)則》。2.2在AutoCAD軟件中,圖形對(duì)象的組織和管理是用圖層來(lái)實(shí)現(xiàn)的。每個(gè)圖形對(duì)象都有其特性,包括對(duì)象的圖層、顏色、線型、線寬等。由于該項(xiàng)設(shè)置與輸出圖效果有較大的聯(lián)系,因此在繪圖環(huán)境中的設(shè)置恰當(dāng)與否至關(guān)重要。根據(jù)繪圖經(jīng)驗(yàn),在此設(shè)置好后直接按繪制樣式輸出,效果較理想,而且也可預(yù)見(jiàn)的。選擇計(jì)算機(jī)繪圖線寬的第4組,即粗實(shí)線、粗點(diǎn)畫(huà)線為0.7mm,其余為0.25mm。圖層的名字取為漢字,且與圖層的用途一致以便分層作圖時(shí)圖層的轉(zhuǎn)換。根據(jù)使用效果粗實(shí)線線寬改為0.4,其余改為0。最后設(shè)置的圖層效果見(jiàn)下圖2-1.圖2-1設(shè)置圖層設(shè)置漢字字體、羅馬字體及字高。為方便使用,設(shè)置了多種字高的文字樣式。參照國(guó)家標(biāo)準(zhǔn),根據(jù)經(jīng)驗(yàn),字體應(yīng)設(shè)為兩種樣式:TEXT字體樣式選用Romans.shx,寬度比例選0.67,傾斜角度選15°,該字體專用于標(biāo)注英文字母和阿拉伯?dāng)?shù)字。HZ字體樣式選仿宋GB_2312,文字寬度系數(shù)選0.67,該字體專用于漢字內(nèi)容的書(shū)寫(xiě)。設(shè)置標(biāo)注樣式尺寸標(biāo)注樣式的設(shè)置是二維工程制圖繪圖環(huán)境設(shè)置的重要內(nèi)容。圖樣的標(biāo)注能否符合國(guó)標(biāo)的關(guān)鍵在于尺寸標(biāo)注樣式的設(shè)置。在軟件開(kāi)發(fā)過(guò)程中只能通過(guò)尺寸標(biāo)注變量的設(shè)置來(lái)完成,設(shè)置的具體內(nèi)容見(jiàn)下面程序說(shuō)明。在實(shí)際使用中,需要設(shè)置多個(gè)尺寸標(biāo)注樣式。設(shè)計(jì)的樣式見(jiàn)圖2-2設(shè)置標(biāo)注樣式。標(biāo)注樣式0標(biāo)注樣式1標(biāo)注樣式2標(biāo)注樣式3標(biāo)注樣式4(字體TEXT3.5)(字體HZ3.5)無(wú)指引線(用于直徑文字水平書(shū)寫(xiě)及漢字說(shuō)明)圖2-2設(shè)置標(biāo)注樣式2.2.;===================================================(defunszhthj();;;設(shè)置所需的圖層(command"linetype""load""center,ACAD_ISO02W100,ACAD_ISO10W100,ACAD_ISO12W100""acadiso.lin""");調(diào)所需線型(command"layer""make""標(biāo)注層""on""標(biāo)注層" "color"3"標(biāo)注層""lw"0.0"標(biāo)注層""")(command"layer""make""粗點(diǎn)畫(huà)線層""on""粗點(diǎn)畫(huà)線層""color"2"粗點(diǎn)畫(huà)線層""lw"0.4"粗點(diǎn)畫(huà)線層""L""ACAD_ISO10W100""粗點(diǎn)畫(huà)線層""")(command"layer""make""粗實(shí)線層""on""粗實(shí)線層" "color"7"粗實(shí)線層""lw"0.4"粗實(shí)線層""")(command"layer""make""雙點(diǎn)畫(huà)線層""on""雙點(diǎn)畫(huà)線層""color"6"雙點(diǎn)畫(huà)線層""lw"0.0"雙點(diǎn)畫(huà)線層""l""ACAD_ISO10W100""雙點(diǎn)畫(huà)線層""")(command"layer""make""文本層""on""文本層""color"5"文本層""lw"0.0"文本層""")(command"layer""make""細(xì)點(diǎn)畫(huà)線層""on""細(xì)點(diǎn)畫(huà)線層" "color"4"細(xì)點(diǎn)畫(huà)線層""lw"0.4"細(xì)點(diǎn)畫(huà)線層""")(command"layer""make""細(xì)實(shí)線層""on""細(xì)實(shí)線層" "color"1"細(xì)實(shí)線層""lw"0.0"細(xì)實(shí)線層""")(command"layer""make""虛線層""on""虛線層""color"2"虛線層" "lw"0.0"虛線層""L""ACAD_ISO02W100""虛線層""")(command"layer""make""中心線層""on""中心線層""color"1"中心線層" "lw"0.0"中心線層""L""center2""中心線層""")(command"layer""make""特性表層""on""特性表層""color"7"特性表層" "lw"0.0"特性表層""");;;設(shè)置字體樣式(command"-style""text0""romans"00.715"""""")(command"-style""text3.5""romans"3.50.715"""""")(command"-style""text5""romans"50.715"""""")(command"-style""text7""romans"70.715"""""")(command"-style""text10""romans"100.715"""""")(command"-style""text14""romans"140.715"""""")(command"-style""text20""romans"200.715"""""")(command"-style""hz0""仿宋_GB2312"00.70"""")(command"-style""hz3.5""仿宋_GB2312"3.50.70"""")(command"-style""hz5""仿宋_GB2312"50.70"""")(command"-style""hz7""仿宋_GB2312"70.70"""")(command"-style""hz10""仿宋_GB2312"100.70"""")(command"-style""hz14""仿宋_GB2312"140.70"""");;;設(shè)置尺寸標(biāo)注樣式(command"dimclrd"0"dimdli"5"dimclre"256"dimexe"3"dimgap"0.5 "dimasz"2.5"dimclrt"256"dimtxsty""text3.5""dimtxt"3.5 "dimtad"1"dimjust"0"dimgap"1"dimtih"0 "dimatfit"2"dimlunit"2"dimdec"2"dimdsep""." "dimatftt"2"dimexo"0"dimse1"1"dimse2"1 "dimstyle""save""標(biāo)注樣式4")(command"dimclrd"0"dimdli"5"dimclre"256"dimexe"3"dimgap"0.5 "dimasz"2.5"dimclrt"256"dimtxsty""hz3.5""dimtxt"3.5 "dimtad"1"dimjust"0"dimgap"1"dimtih"0 "dimatfit"2"dimlunit"2"dimdec"2"dimdsep""." "dimatftt"2 "dimexo"0"dimtoh"1"dimse1"0"dimse2"0 "dimstyle""save""標(biāo)注樣式3")(command"dimclrd"0"dimdli"5"dimclre"256"dimexe"3"dimgap"0.5 "dimasz"2.5"dimclrt"256"dimtxsty""text3.5""dimtxt"3.5 "dimtad"1"dimjust"0"dimgap"1"dimtih"0 "dimatfit"2"dimlunit"2"dimdec"2"dimdsep""." "dimatftt"2 "dimexo"0"dimtoh"1"dimse1"0"dimse2"0 "dimstyle""save""標(biāo)注樣式2")(command"dimclrd"0"dimdli"5"dimclre"256"dimexe"3"dimgap"0.5 "dimasz"2.5"dimclrt"256"dimtxsty""text3.5""dimtxt"3.5 "dimtad"1"dimjust"0"dimgap"1"dimtih"0 "dimatfit"2"dimlunit"2"dimdec"2"dimdsep""." "dimatftt"2"dimexo"0"dimtoh"0 "dimse1"0"dimse2"0 "dimstyle""save""標(biāo)注樣式1"));defunend2.3.圖框的繪制 在使用CAD繪圖軟件時(shí),如果每次畫(huà)圖都要手工操作CAD繪制出圖框,是一件繁瑣的事情。如果圖紙數(shù)量巨大,為每一幅圖都繪制上圖框,需要的時(shí)間,耗費(fèi)的精力是很巨大的。 圖框是幾乎每幅圖都必須繪制的基本模塊之一,具有極強(qiáng)的通用性,如果能用一個(gè)LISP程序來(lái)代替這樣的手工繪制,可以節(jié)省大量時(shí)間和精力,提高勞動(dòng)效率,是省時(shí)省事的好方法。于是構(gòu)思設(shè)計(jì)一個(gè)關(guān)于圖框繪制的LISP程序。 由于繪制圖框時(shí),繪制某一幅面總有對(duì)應(yīng)的一組B和L,所以不需要給出其他的變量,繪制圖框的基準(zhǔn)點(diǎn)定為坐標(biāo)原點(diǎn)(0,0),只需帶入相應(yīng)的B和L,即可繪制出所需要的圖框。2.3.1圖紙的基本幅面 繪制技術(shù)圖樣時(shí)優(yōu)先選用代號(hào)為A0,A1,A2,A3,A4,自定義,六種基本幅面(提供選擇),自定義圖框的尺寸由用戶輸入。幅面代號(hào)A0A1A2A3A4自定義尺寸B*L841*1189594*841420*594297*420210*297xxx*xxx幅面尺寸中,B表示短邊,L表示長(zhǎng)邊。2.3.2圖框格式圖框格式有兩種:一種是保留裝訂邊的圖框,用于需要裝訂的圖樣。另一種是不留裝訂邊的圖框格式,用于不需要裝訂的圖樣。如圖2-3、2-4所示為兩種圖框的基本樣式。圖2-3帶裝訂邊圖框圖2-4不帶裝訂邊圖框圖2-4不帶裝訂邊圖框圖2-4不帶裝訂邊圖框幅面代號(hào)A0A1A2A3A4自定義B*L841*1189594*841420*594297*420210*297xxx*xxxe2010c105a25圖2-5圖框與標(biāo)題欄的尺寸2.3.3圖框程序;===================================================;;程序功能:繪制國(guó)家標(biāo)準(zhǔn)圖框A0-A4,帶裝訂。;根據(jù)企業(yè)實(shí)際使用進(jìn)行簡(jiǎn)化。;參數(shù)說(shuō)明:tfdm--圖幅代碼,整型數(shù),取值為0-4;使用方法:帶參調(diào)用,如(tka2),表示繪制A2圖幅;修改時(shí)間:2007年4月30日2007年5月25日;編程者:黃軍;;===================================================(defuntk(tfdm)(command"osnap""none")(cond((=tfdm0) (do_tk284111892510))((=tfdm1) (do_tk25948412510))((=tfdm2) (do_tk24205942510))((=tfdm3) (do_tk2297420255))((=tfdm4) (do_tk2297210255))(T(prompt"沒(méi)有你選擇的圖幅!參數(shù)為0——4,謝謝!")) );cond);defun(defundo_tk2(blac)(setqp00'(0.00.0))(command"layer""s""細(xì)實(shí)線""")(command"line"p00(polarp000l) (polar(polarp000l)(/pi2)b) (polarp00(/pi2)b)"c")(command"layer""s""粗實(shí)線""")(command"pline"(setqpp0(polar(polarp000a)(/pi2)c)) (polarpp00(-lac)) (polar(polarpp00(-lac))(/pi2)(-bcc)) (polarpp0(/pi2)(-bcc))"c")(command"zoom""all"))2.4設(shè)計(jì)日期的輸入為簡(jiǎn)化操作,設(shè)計(jì)思想是設(shè)計(jì)日期自動(dòng)提取系統(tǒng)當(dāng)前日期,同時(shí)也允許用戶在對(duì)話框中對(duì)系統(tǒng)當(dāng)前日期進(jìn)行改變,以滿足用戶使用要求。由于允許用戶改變,所以該控件只能設(shè)計(jì)成編輯框控件。程序自動(dòng)提取系統(tǒng)當(dāng)前日期的實(shí)現(xiàn)方法是:利用AutoCAD系統(tǒng)變量CDATE取得計(jì)算機(jī)系統(tǒng)當(dāng)前日期與時(shí)間,然后再組合成新的字符數(shù)據(jù)作為初值傳到標(biāo)簽為“設(shè)計(jì)日期”編輯框控件。自動(dòng)提取系統(tǒng)當(dāng)前日期的程序段如下:(setqsjrq1(rtos(getvar"cdate")20);利用CDATE取得計(jì)算機(jī)系統(tǒng)當(dāng)前日期與時(shí)間,并將實(shí)型數(shù)轉(zhuǎn)化為字符型sjrq(strcat(substrsjrq114)"-"(substrsjrq152)"-"(substrsjrq172)));setq;用strcat函數(shù)構(gòu)成新的“年-月-日”格式字符,既系統(tǒng)當(dāng)前日期程序說(shuō)明:(substrsjrq114)從字符數(shù)據(jù)sjrq1中取前4位為年份;(substrsjrq152)從字符數(shù)據(jù)sjrq1中取第5、6位為月份;(substrsjrq172)從字符數(shù)據(jù)sjrq1中取第7、8位為日期。2.5標(biāo)題欄的繪制與填寫(xiě)方法標(biāo)題欄的繪制與填寫(xiě)有兩種方法,一是全部采用AutoLISP編程利用繪制命令和TEXT命令來(lái)繪制與填寫(xiě)標(biāo)題欄,但程序編寫(xiě)較繁;二是在AutoLISP編程中插入塊時(shí)利用AutoCAD塊及其屬性填寫(xiě)標(biāo)題欄的設(shè)計(jì)者、設(shè)計(jì)日期,零部件名稱等內(nèi)容。后者使程序開(kāi)發(fā)更簡(jiǎn)潔。針對(duì)設(shè)計(jì)具體要求,以參數(shù)化驅(qū)動(dòng)。參數(shù)說(shuō)明:ppt繪圖基點(diǎn),標(biāo)題欄右下角點(diǎn)坐標(biāo)。tydh圖樣代號(hào),字符型。ljmc零件名稱,字符型。ljcl材料名稱,字符型。asx比例下拉列表索引。在使用AutoCAD繪制機(jī)械圖形時(shí),標(biāo)題欄也是一個(gè)必不可少的工具。每一張圖紙的標(biāo)題欄都是一樣,可以利用LISP程序來(lái)完成這樣的繪圖工作,以方便下次再次繪制此圖形,節(jié)省繪圖時(shí)間。標(biāo)題欄格式如圖2-6所示。圖2-6標(biāo)題欄格式2.5.1零件名稱在繪制標(biāo)題欄完成后,自動(dòng)填寫(xiě)到標(biāo)題欄中的對(duì)應(yīng)的零件名稱項(xiàng)的值。2.5.2零件材料在繪制標(biāo)題欄完成后,自動(dòng)填寫(xiě)到標(biāo)題欄中的對(duì)應(yīng)的零件材料項(xiàng)的值。2.5.3圖樣代號(hào)在繪制標(biāo)題欄完成后,自動(dòng)填寫(xiě)到標(biāo)題欄中的對(duì)應(yīng)的圖樣代號(hào)項(xiàng)的值。2.5.4比例選擇繪制圖形所選用的比例值,在繪制標(biāo)題欄完成后,自動(dòng)填寫(xiě)到標(biāo)題欄中的對(duì)應(yīng)的比例項(xiàng)的值。2.5.5設(shè)計(jì)者在繪制標(biāo)題欄完成后,自動(dòng)填寫(xiě)到標(biāo)題欄中的對(duì)應(yīng)的設(shè)計(jì)者項(xiàng)的值。2.2.6設(shè)計(jì)時(shí)期提取系統(tǒng)當(dāng)前時(shí)間,用戶也可根據(jù)自己的設(shè)計(jì)時(shí)間輸入。在繪制標(biāo)題欄完成后,自動(dòng)填寫(xiě)到標(biāo)題欄中的對(duì)應(yīng)的設(shè)計(jì)時(shí)期項(xiàng)的值。2.5.7選取點(diǎn)選取繪制標(biāo)題欄的繪制基點(diǎn),提出用戶選擇圖框的右下角點(diǎn),用戶如果沒(méi)有選擇繪圖基點(diǎn)時(shí),繪圖動(dòng)作將不能執(zhí)行。2.5.8程序操作界面(見(jiàn)圖2-7)圖2-7標(biāo)題欄DCL效果圖2.6明細(xì)表2.6.1繪制明細(xì)表對(duì)設(shè)計(jì)中的絕緣部分,各不同部件所具明細(xì)表數(shù)目不同,故對(duì)明細(xì)表用帶參調(diào)用。圖2-8明細(xì)表2.6.2繪制明細(xì)表程序;===================================================;;程序功能:繪明細(xì)表,;參數(shù)說(shuō)明:ptt是明細(xì)表的基點(diǎn),n是明細(xì)表的行數(shù).;使用方法:帶參調(diào)用,;修改時(shí)間:2007年4月30日2007年5月25日;編程者:黃軍;;==================================================;(defunhmxb(pttn/dcl_iddo_what)(setqdo_what1)(if(=do_what1)(hmxb1)))(defunhmxb1()(command"layer""m""mxb""on""mxb""c"5"mxb""")(command"pline"ptt"w"0.5"" (setqptt1(polarptt(/pi2)(+14(*7n)))) (setqptt2(polarptt1pi180)) (polarpttpi180)"c");;;繪制明細(xì)欄的第一行(command"line"(polarptt(/pi2)14) (polar(polarptt(/pi2)14)pi180) "" );;;繪制明細(xì)欄的外框(setqi1)(repeat(-n1)(command"line" (setqpttx(polarptt(/pi2)(+14(*i7)))) (polarpttxpi180)"" )(setqi(+1i)));;;繪制明細(xì)欄的行(command"line"(setqpttx(polarpttpi20)) (polarpttx(/pi2)(+14(*7n)))"" "line"(setqpttx(polarpttx(/pi2)7)) (polarpttxpi22)"" "line"(polarpttxpi12) (polar(polarpttxpi12)(/pi2)(+7(*7n)))"" "line"(setqpttx(polarpttpi42))(polarpttx(/pi2)(+14(*7n)))"" "line"(setqpttx(polarpttpi80))(polarpttx(/pi2)(+14(*7n)))"" "line"(setqpttx(polarpttpi88))(polarpttx(/pi2)(+14(*7n)))"" "line"(setqpttx(polarpttpi132))(polarpttx(/pi2)(+14(*7n)))"" "line"(setqpttx(polarpttpi172))(polarpttx(/pi2)(+14(*7n)))"" );;;繪制明細(xì)欄的列(command"layer""m""xz""on""xz""c"1"xz""")(command"-style""standard""simfang.ttf"00.650"n""n")(command"text""m"(polar(polarpttpi10)(/pi2)7)50"備注""text""m"(polar(polarpttpi31)(/pi2)3.5)40"重量""text""m"(polar(polarpttpi26)(/pi2)10.5)40"總計(jì)""text""m"(polar(polarpttpi37)(/pi2)10.5)40"單件""text""m"(polar(polarpttpi61)(/pi2)7)50"材料""text""m"(polar(polarpttpi84)(/pi2)7)50"數(shù)量""text""m"(polar(polarpttpi110)(/pi2)7)50"名稱" "text""m"(polar(polarpttpi152)(/pi2)7)50"代號(hào)""text""m"(polar(polarpttpi176)(/pi2)7)50"序號(hào)" ))2.6.3填寫(xiě)明細(xì)表繪制出明細(xì)表實(shí)際上只完成了整個(gè)明細(xì)表工作的極小部分,而大量繁瑣的工作則是填寫(xiě)部明細(xì)表的內(nèi)容。要實(shí)現(xiàn)程序的實(shí)用性和通用性,就必須要有處理數(shù)據(jù)的能力,并盡可能減少用戶的操作,實(shí)現(xiàn)自動(dòng)填寫(xiě)。從數(shù)據(jù)文件讀取數(shù)據(jù)時(shí),以明細(xì)表的一欄即某一個(gè)零部件的所有具體信息為單位,包括“名稱”、“代號(hào)”、“數(shù)量”、“重量”和“材料”等。因此,必須在數(shù)據(jù)文件中設(shè)置相應(yīng)的分隔符號(hào),程序自動(dòng)完成各數(shù)據(jù)項(xiàng)的分離,并根據(jù)各數(shù)據(jù)項(xiàng)具體的填寫(xiě)位置完成填寫(xiě)。為簡(jiǎn)化程序設(shè)計(jì),采用英文狀態(tài)下的“逗號(hào)”為分隔符。填寫(xiě)位置由繪制明細(xì)表的基點(diǎn)來(lái)參照確定,可省去用戶選擇基點(diǎn)的操作。明細(xì)表填寫(xiě)設(shè)計(jì)思路如圖2-9所示。打開(kāi)需要

溫馨提示

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

評(píng)論

0/150

提交評(píng)論