




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
延邊大學(xué)計算機系本科畢業(yè)設(shè)計――AutoCAD的二次開發(fā)PAGEPAGE16
延邊大學(xué)本科畢業(yè)論文
用VLISP與DCL整合實現(xiàn)繪制拋物線
摘要
本次畢業(yè)設(shè)計任務(wù)是學(xué)習(xí)AutoCAD的開發(fā)工具VisualLisp與對話框DCL語言整合的具體過程,并通過學(xué)習(xí)開發(fā)簡單的實例。VisualLisp是為加速AutoLisp程序開發(fā)而設(shè)計的軟件開發(fā)工具,為AutoCAD提供了一個完整的集成開發(fā)環(huán)境。對話框DCL語言所建立的對話框形象、直觀,可隨意輸入、修改,鼠標、鍵盤并用,是一種深受用戶歡迎的界面。本文對AutoCAD的二次開發(fā)工具和對話框DCL語言進行了簡單的介紹,對VisualLisp與對話框DCL語言整合過程進行了詳細的介紹,并利用VisualLisp與對話框DCL語言整合實現(xiàn)制作拋物線的全過程,對具體的步驟進行了詳盡的分析,提出了基本的設(shè)計思路,最后給出了利用拋物線的幾個生活實例。關(guān)鍵詞: VisualLisp對話框二次開發(fā)拋物線ABSTRACTThisgraduationdesignsthemissionistheconcreteprocessthatthedevelopmenttoolVisualLispthatstudiestheAutoCADintegrateswiththedialogboxDCLlanguage,andpasstheinbriefsolidexampleofthestudydevelopment.TheVisualLispisinordertoacceleratetheAutoLispproceduredevelopmentbutsoftwareofdesignsdevelopmenttool,providedfortheAutoCADagathercompletelydeveloptheenvironment.ThedialogboximagethatthedialogboxDCLlanguagebuildup,keeptheview,caninput,modifyatwill,themouse,keyboardcounteract,isakindofinterfaceforwelcome.ThistextdevelopsthetoolanddialogboxDCLlanguagestocarryonthesimpleintroductiontotheAutoCADtwotimes,integratedtheprocesstocarryonthedetailedintroductiontotheVisualLispanddialogboxDCLlanguage,andmakeuseofthewholeprocessthattheVisualLispintegrateswiththedialogboxDCLlanguagetherealizationmanufactureparabola,carryingonthedetailedanalysistotheconcretestep,puttingforwardthebasicdesignwayofthinking,theendgivemakeuseofthelivingsolidexampleofseveralsoftheparabola.KEYWORDS: VisualLispDialogboxsecondDevelopparabola
目錄前言………………3AutoCAD二次開發(fā)工具及對話框綜述……………3三、VisualLISP設(shè)計及具體開發(fā)拋物線程序問題提出…………7預(yù)期目標…………7需求分析…………7總體設(shè)計…………7詳細設(shè)計…………86.程序流程圖………………………107.程序源代碼………………………118.應(yīng)用實例圖………………………14四、總結(jié)………………15五、參考文獻……………16
一、前言隨著計算機輔助技術(shù)的急速發(fā)展,美國AutoDesk公司的AutoCAD已成為設(shè)計人員手中的一件利器。隨著AutoCAD應(yīng)用的深入,越來越多的用戶發(fā)現(xiàn)僅僅利用AutoCAD提供的交互功能已不能滿足設(shè)計要求,在解決專業(yè)性的問題時,這一點顯得尤為突出。這就需要一種智能化的軟件,能夠通過編程方式來大量成批地去解決一些問題。AutoCAD的開發(fā)性和豐富的開發(fā)工具為我們解決新局面這個問題提供了有效的手段。VLISP和DCL正是解決這一問題的兩大法寶。利用VLISP編程,可以強化AutoCAD原有的命令,創(chuàng)造更有用的AutoCAD新命令。DCL簡化繁瑣的環(huán)境設(shè)定或繪圖步驟,進行參數(shù)式繪圖,從而達到真正靈活控制AutoCAD的目的。二、AutoCAD二次開發(fā)工具及對話框綜述1.AutoCAD二次開發(fā)工具綜述AutoCAD是目前微機上應(yīng)用最為廣泛的通用交互式計算機輔助繪圖與設(shè)計軟件包。AutoCAD的強大生命力在于它的通用性、多種工業(yè)標準和開放的體系結(jié)構(gòu)。其通用性使得它在機械、電子、航空、船舶、建筑、服裝等領(lǐng)域得到了極為廣泛的應(yīng)用。下面對AutoCAD的三代開發(fā)工具進行淺析。
第一代開發(fā)工具——AutoLISP是1986年隨AutoCADv2.18提供的二次開發(fā)工具。它是一種人工智能語言,是嵌入AutoCAD內(nèi)部的COMMONLISP的一個子集。在AutoCAD的二次開發(fā)工具中,它是唯一的一種解釋型語言。使用AutoLISP可直接調(diào)用幾乎所有的AutoCAD命令。
AutoLISP語言最典型的應(yīng)用之一是實現(xiàn)參數(shù)化繪圖程序設(shè)計,包括尺寸驅(qū)動程序和鼠標拖動程序等。另一個典型應(yīng)用就是驅(qū)動AutoCAD提供PDB模塊構(gòu)成DCL(DialogControlLanguage)文件,創(chuàng)建自己的對話框。
AutoLISP具有以下優(yōu)點:語言規(guī)則十分簡單,易學(xué)易用;接針對AutoCAD,易于交互;解釋執(zhí)行,立竿見影。AutoLISP的缺點是:功能單一,綜合處理能力差;解釋執(zhí)行,程序運行速度慢;缺乏很好的保護機制,源程序保密性差;LISP用表來描述一切,并不能很好地反映現(xiàn)實世界和過程,跟人的思維方式也不一致;不能直接訪問硬件設(shè)備、進行二進制文件的讀寫。AutoLISP的這些特點,使其僅適合于有能力的終端用戶完成一些自己的開發(fā)任務(wù)。第二代開發(fā)工具——ADS(AutoCADDevelopmentSystem)是AutoCADR11開始支持的一種基于C語言的靈活的開發(fā)環(huán)境。ADS可直接利用用戶熟悉的C編譯器,將應(yīng)用程序編譯成可執(zhí)行文件后在AutoCAD環(huán)境下運行,從而既利用了AutoCAD環(huán)境的強大功能,又利用了C語言的結(jié)構(gòu)化編程、運行效率高的優(yōu)勢。
與AutoLISP相比,ADS優(yōu)越之處在于:具備錯綜復(fù)雜的大規(guī)模處理能力;編譯成機器代碼后執(zhí)行速度快;編譯時可以檢查出程序設(shè)計語言的邏輯錯誤;程序源代碼的可讀性好于AutoLISP。而其不便之處在于:C語言比LISP語言難于掌握和熟練應(yīng)用;ADS程序的隱藏錯誤往往導(dǎo)致AutoCAD,乃至操作系統(tǒng)的崩潰;需要編譯才能運行,不易見到代碼的效果;同樣功能,ADS程序源代碼比AutoLISP代碼長很多。第三代開發(fā)工具—VisualLISP,ARX及基于ActiveXAutomation技術(shù)的VBA等
1.VisualLISP(VLISP)
VLISP是AutoLISP的換代產(chǎn)品。它與AutoLISP完全兼容,并提供它所有的功能,是新一代的AutoCADLISP語言。VLISP對語言進行了擴展,可以通過MicrosoftActiveXAutomation接口與對象交互。同時,通過實現(xiàn)反應(yīng)器函數(shù),還擴展了AutoLISP響應(yīng)事件的能力。作為開發(fā)工具,VLISP提供了一個完整的集成開發(fā)環(huán)境(IDE),包括編譯器、調(diào)試器和其他工具,可以提高二次開發(fā)的效率。另外,VLISP還提供了工具用于發(fā)布獨立的應(yīng)用程序。
2.ARX
ARX(AutoCADRuntimeeXtension)是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消息傳遞機制直接通訊。
3.基于ActiveXAutomation技術(shù)的VBA等開發(fā)工具
ActiveXAutomation技術(shù)的完全面向?qū)ο蠡幊痰奶攸c,使其開發(fā)環(huán)境具備了強大的開發(fā)能力和簡單易用的優(yōu)良特點,開發(fā)工具的選擇也具有很大的靈活性。所以,利用ActiveXAutomation技術(shù),是極具潛力的一種開發(fā)手段。4.Visual
LISP
特色顯著由于AutoLisp存在自身無法解決的問題,為了適應(yīng)AutoCAD環(huán)境下的較大型用戶化CAD應(yīng)用系統(tǒng)的開發(fā),Autodesk公司從AutoCADR11開始,推出采用C語言的開發(fā)環(huán)境ADS(AdvanceDevelopmentSystem),借助C/C++語言的性能和資源,完成許多AutoLISP語言難以實現(xiàn)的任務(wù)。隨著Windows平臺,面向?qū)ο缶幊碳夹g(shù)等先進技術(shù)的日益成熟和普及,AutoCAD也和其他系統(tǒng)一樣迫切需要一種全新的面向?qū)ο缶幊痰拈_發(fā)環(huán)境。在AutoCADR13之后,又推出了新一代的直接面向?qū)ο蟮亩伍_發(fā)工具ARX(AutoCADRuntimeExtension)以及更新的AutoCADR14ObjectARXSDK開發(fā)工具包。為開發(fā)高自動化程度,高集成化及高性能的用戶化CAD系統(tǒng)提供了一種極為有效的工具。是AutoCAD目前用戶化的主流開發(fā)工具。Visual
LISP與AutoCAD
Visual
LISP作為一個完整的集成開發(fā)環(huán)境(IDE),具有自己的窗口和菜單,但它并不能獨立于AutoCAD運行。當用戶從Visual
LISP
IDE中運行AutoLISP程序時,經(jīng)常需要與AutoCAD圖形交互或在命令窗口響應(yīng)程序提示。如果Visual
LISP
把控制傳給AutoCAD時AutoCAD已被最小化,用戶必須手動恢復(fù)并激活A(yù)utoCAD才可繼續(xù),Visual
LISP不會自動恢復(fù)AutoCAD
窗口。相反,Visual
LISP窗口中會出現(xiàn)并保持一個
Visual
LISP符號,直到激活A(yù)utoCAD并響應(yīng)了在AutoCAD命令提示處的提示。啟動Visual
LISP可在AutoCAD下邊的命令欄中輸入VLISP,也可在工具中啟動,如圖:啟動Vlisp后的界面如下圖所示:各組成部分的說明如下:
(1)
菜單欄:通過選取各菜單項來發(fā)出Visual
LISP命令。
(2)
工具欄:提供了對常用Visual
LISP命令的快速調(diào)用。Visual
LISP共提供了五個工具欄:“Standard(標準)”、“Search(搜索)”、“View(視圖)”、“Debug(調(diào)試)”和“Tools(工具)”,如圖36-2所示,每個工具欄各自代表不同功能的命令組。
(3)
編輯窗口:用于編輯LISP文件代碼。如果用戶同時編輯多個文件,則Visual
LISP使用多個編輯窗口來分別顯示文件。
(4)
控制臺窗口:類似于AutoCAD的命令窗口,可在其中輸入AutoLISP命令,也可以不使用菜單或工具欄而直接在控制臺窗口中調(diào)用Visual
LISP命令。
(5)
跟蹤窗口:在啟動Visual
LISP,該窗口將顯示Visual
LISP當前版本的信息。而如果Visual
LISP在啟動時遇到錯誤,它還會包含相應(yīng)的錯誤信息。
(6)
狀態(tài)欄:顯示提示信息。比如,當菜單上的某一個菜單項被亮顯,則狀態(tài)欄上將顯示相關(guān)命令功能的簡介;當鼠標指針在工具欄某按鈕上停留幾秒鐘后,Visual
LISP將顯示工具提示說明按鈕功能,并同時在狀態(tài)欄上顯示更詳細的描述;當Visual
LISP在編輯窗口中打開文件時,狀態(tài)欄上將顯示文件名名稱及其路徑。
(7)
其他窗口:有些Visual
LISP函數(shù)將創(chuàng)建它們自己的窗口來顯示結(jié)果。用戶不能在這些輸出窗口中輸入文本,但可以從中復(fù)制,并將其粘貼到編輯器或控制臺窗口中。2.對話框綜述AutoCAD隨著版本的逐步提高,人機交互界面也越來越先進,在各類對話框中輸入?yún)?shù)的交互方式已逐步替代從命令提示行中輸入?yún)?shù)的基本方式,因此對AutoCAD進行二次開發(fā),設(shè)計定制自己的對話框是必不可少的工作。對話框使用的界面的設(shè)計分為兩個部分:外觀與功能。外觀定義對話框有哪些組件,以及這些組件如何布局。功能則定義每個組件的內(nèi)容、動作、要返回哪個數(shù)據(jù)、對其他組件有何影響。對話框由對話框控制語言DCL編寫并定義在ASCII文件中。對話框中的元素,如按鈕、列表、文本、圖像、滑動桿和編輯框等都被認為是控件。每個控件的大小和功能都由控件的屬性決定。對話框的大小和它各個組成部分的布局通過少量的定位信息自動設(shè)置完成。對話框本身并不能完成它所設(shè)計的功能,功能的實現(xiàn)要通過AutoLISP等程序語言來控制。VisualLISP中提供了觀察對話框的工具,并且還提供了在應(yīng)用程序中控制對話框的參數(shù)。要實現(xiàn)對話框的預(yù)定義功能,主要分為兩個步驟:首先要編制一個DCL對話框定義文件該文件是由一個或幾個“對話框描述”構(gòu)成的ASCII文件,擴展名為.dcl,對話框描述定義了該對話框的工作方式和其中包含的成分(如各類按鈕、正文編輯框、列表、滑動桿、屬性等),并按層次結(jié)構(gòu)加以描述:然后要編寫一個相應(yīng)的AutoLISP應(yīng)用程序來控制DCL文件預(yù)定義功能,從某種程度上,DCL文件只定義了對話框的工作方式,說明可以拾取哪些按鈕、顯示什么文件、列表等,但對話框的功用及其行為方式還將取決于調(diào)用它的應(yīng)用程序,而AutoLISP提供了各類管理對話框的函數(shù),包括加載、顯示和終止對話框,接受用戶響應(yīng),初始化動作表達式,存取控件及屬性,建立列表和生成圖像等。對話框設(shè)計的一般原則特色:1.美觀2.便于操作3.語言文字說明準確、便于理解4.控件設(shè)計風格一致性5.操作控制順序隨意6.實時反饋及時7.對待操作人員寬容8.提供幫助9.測試通用規(guī)范:1.布局合理2.對話框的大小和位置3.控件的禁止使用4.嵌套對話框5.隱藏對話框6.默認值7.鍵盤輸入8.顏色9.標準化
三、VisualLISP與對話框設(shè)計及具體開發(fā)拋物線程序1.問題的提出傳統(tǒng)手工制圖以紙、筆、三角板、直尺、圓規(guī)等作為輔助工具,用圖形和尺寸的形式進行表達說明,這種表達方式大大超越了傳統(tǒng)的文字敘述方法。近幾年,隨著信息工業(yè)的高速發(fā)展,計算機軟、硬件迅速更新,操作界面逐漸個性化,促使計算機融入人們的日常生活之中。以紙、筆、尺等為工具的繪圖工作,也逐步被計算機所代替,從而形成了計算機輔助繪圖(ComputerAidedDesign)的技術(shù)領(lǐng)域。因此計算機輔助繪圖不僅應(yīng)具有計算機操作系統(tǒng)(如Windows98、WindowsNT、Windows2000)本身的功能(如復(fù)制與刪除文件、中文輸入等),而且,應(yīng)具備傳統(tǒng)的制圖規(guī)范準則。運用計算機強大的計算和存儲功能并具有繪圖功能的軟件,稱為計算機輔助繪圖軟件。計算機輔助繪圖軟件有很多,筆者在學(xué)習(xí)AutoCAD2002繪制建筑、物理、機械所用圖時,經(jīng)常遇到繪制類似拋物線這類曲線的圖形問題。拋物線必須顯示在坐標平面。在AutoCAD中,如果你只要一個大概的形狀,可以用多義線大約畫出圓弧狀的圖形,但是在實際應(yīng)用中,如建筑繪圖、機械制造等方面就要求精度較高的弧狀圖形,如建設(shè)拱橋時,由力學(xué)專家給出最佳的方案,既考慮到橋的最大承重能力,又要考慮制造建橋材料的可行性,這是就需要精確的繪制拋物線圖形了。考慮到用戶使用方便,筆者使繪制程序與操作簡便的對話框相結(jié)合,只要在編輯框種輸入數(shù)據(jù)就可以了。2.預(yù)期目標根據(jù)用戶的需求設(shè)計應(yīng)用程序再設(shè)計對話框,驅(qū)動對話框,將用戶提供的數(shù)據(jù)輸入到對話框中,單擊確定就可得到運算后的圖形,如下圖拋物線的演示圖形:3.需求分析需求分析的基本任務(wù)是準確的回答“系統(tǒng)必須做什么?”這個問題。這一階段是對系統(tǒng)認識最全面、準確、清晰、得體的一個比較關(guān)鍵的時期。需求分析的結(jié)果是系統(tǒng)開發(fā)的基礎(chǔ),關(guān)系到工程的成敗和軟件產(chǎn)品的質(zhì)量。因此,必須用行之有效的方法對軟件需求進行嚴格的審查驗證,為下一步的總體設(shè)計打好基礎(chǔ)。AutoCAD是一種用計算機硬、軟件系統(tǒng)輔助人們對產(chǎn)品或工程進行設(shè)計的方法和技術(shù),包括設(shè)計、繪圖、工程分析與文檔制作等設(shè)計活動。在設(shè)計過程中,設(shè)計人員處于主導(dǎo)地位,計算機處于輔助地位。AutoCAD在建筑、數(shù)學(xué)、物理等學(xué)科都有廣泛的應(yīng)用,將其功能實現(xiàn)以對話框的形式呈現(xiàn)給用戶非常受歡迎,因此,筆者就兩者的結(jié)合情況作了詳細的研究,并開發(fā)了繪制拋物線這個小程序用以具體實現(xiàn)一下。下面我具體的介紹一個此軟件的系統(tǒng)環(huán)境。(一)功能介紹:編寫對話框程序,將運算程序裝入,驅(qū)動對話框就可實現(xiàn)其繪圖功能。(二)運行要求●操作系統(tǒng)為Windows98,Windows2000或WindowsXP。●內(nèi)存推薦為64兆以上,128或以上更加。●具有300MHz處理器(或更高檔處理器)的IBMPC兼容機。●鼠標,鍵盤。4.總體設(shè)計經(jīng)過了需求分析階段的工作,系統(tǒng)必須“做什么”已經(jīng)清楚了,現(xiàn)在決定“怎么做”的時候了。總體設(shè)計的基本目的就是回答“概括地說,系統(tǒng)應(yīng)該如何實現(xiàn)?”這個問題。因此,總體設(shè)計又稱為概要設(shè)計或初步設(shè)計。筆者從簡單的對話框設(shè)計入手,先編寫用戶可見的對話框.dcl文件,然后編寫通過輸入的數(shù)值運算及繪制拋物線的應(yīng)用程序.lsp文件,再制作用于顯示在對話中的示例幻燈片.sld文件,最后編寫驅(qū)動對話框的.lsp文件,使輸入數(shù)值后能調(diào)用畫圖程序顯示出來。5.詳細設(shè)計詳細設(shè)計階段的根本目標是確定應(yīng)該怎樣具體實現(xiàn)所需要的程序,也就是說,經(jīng)過這個階段的設(shè)計工作,應(yīng)該得出對目標系統(tǒng)的精確描述,從而在編碼階段可以把這個描述直接翻譯成用某種程序設(shè)計語言書寫的程序。編輯框1對話框編輯框1對話框加框列圖像Ok_cancel組件行編輯框2編輯框3根據(jù)拋物線的方程y=ax2+bx+c,我們只需要輸入a,b,c的值就可以,所以選用了三個編輯框,并對它們賦予初值。為了使對話框美觀,直觀,又放入了幻燈片文件作為圖像顯示。編寫繪制拋物線程序時,先選定坐標原點,以坐標原點為基礎(chǔ),將x定為2,4,6三個值,再根據(jù)給定的a,b,c的值,依次計算出y的值,再以這些點畫直線,將單位都改為毫米,連起來的直線段就看起來就成為了曲線,將單位選的再小一些看起來就效果更好了。對話框中的圖像是在繪圖板中制作的AutoCAD幻燈片文件,將需要加工的圖片在繪圖板中放到最大,在命令欄內(nèi)輸入mslide(制作幻燈片)命令,再保存。在對話框驅(qū)動程序中調(diào)用start_image命令,給出幻燈片存放的位置,調(diào)用成功后圖像就能顯示在對話框中,如果調(diào)用失敗則圖像位置為背景色,因為在制作對話框DCL文件時,設(shè)定color=-2是取背景色。最后一項也是本次畢業(yè)設(shè)計的關(guān)鍵,就是vlisp與dcl的整合,也就是對話框的驅(qū)動。對話框中的控件本身并沒有實際意義,需要經(jīng)過驅(qū)動程序才能實現(xiàn)它自身的功能。下圖是一般情況下的對話框驅(qū)動過程。不成功不成功不成功不成功成功成功加載對話框文件顯示對話框初始化控件激活對話框用戶操作對話框顯示“加載失敗”信息顯示出錯信息卸載對話框文件結(jié)束開始1.加載對話框文件Vlisp程序首先調(diào)用load_dialog函數(shù)加載指定的對話框文件,若加載成功則返回一個大于零的整數(shù)。返回的整數(shù)類似于文件標識號,是顯示和卸載對話框文件的主要參數(shù),應(yīng)該將其賦給一個變量保存,以備程序調(diào)用。2.將對話框顯示到屏幕上調(diào)用new_dialog函數(shù),將以加載的對話框文件中指定名字的對話框按照指定的位置顯示到屏幕上,默認位置在屏幕中央。3.初始化控件根據(jù)對話框文件中控件的屬性值對控件初始化,也可調(diào)用set_tile、mode_tile或action_tile等函數(shù)對控件初始化。只有經(jīng)過初始化的控件才有初始的外觀、狀態(tài)、功能。4.激活對話框調(diào)用start_dialog函數(shù),對話框處于激活狀態(tài),等待并接受用戶施加在對話框上的操作,直到某一操作直接或間接地調(diào)用了done_dialog函數(shù),對話框才消失。5.用戶操作對話框用戶可隨意進行單擊或切換開關(guān)、向編輯框鍵入字符、選取列表的選項或拖動滑動條等操作。控件根據(jù)用戶的操作,執(zhí)行相應(yīng)的動作。6.卸載對話框文件如果用戶選擇了“OK”、“Cancel”、“Exit”或其他含有退出功能控件的按鈕,則先調(diào)用done_dialog函數(shù),對話框從屏幕上消失,再調(diào)用unload_dialog函數(shù),卸載對話框文件,釋放對話框所占用的存儲空間。7.對話框向應(yīng)用程序傳遞函數(shù)“OK”等按鈕的動作不但調(diào)用了done_dialog函數(shù),同時還設(shè)置了對話框退出時的不同狀態(tài)。應(yīng)用程序根據(jù)對話框退出是的狀態(tài)決定是否確認對話框當前接納的數(shù)據(jù)。AutoCAD的二次開發(fā)基本都可以按照以上詳細設(shè)計步驟進行。
否否程序流程圖否否程序流程圖是是否是否是加載對話框pwx.dcl激活對話框NotF載入幻燈片通過對話框輸入給定值在AutoCAD界面下選取坐標原點觸發(fā)DCL控件取得初始值確定取消繪圖主程序在AutoCAD界面上繪出拋物線修改按取消按鈕選取坐標原點開始結(jié)束dcl_id<0(1)對話框的設(shè)計:pwx:dialog{label="繪制拋物線";//顯示在對話框頂部的標簽:row{//引用行:image//引用圖像的控件{width=30;//圖像的寬height=8;//圖像的高key="img_cr";//圖像的關(guān)鍵字color=-2;//圖像的背景色}:boxed_column{//引用加框列l(wèi)abel="y=ax2+bx+c";//加框列的標簽:edit_box{//引用編輯框1label="&A(mm)";//編輯框1的標簽 edit_width=8;//編輯框1的寬度key="a";//編輯框1的關(guān)鍵字}:edit_box{//引用編輯框2label="&B(mm)";//編輯框1的標簽 edit_width=8;//編輯框1的寬度key="b";//編輯框1的關(guān)鍵字}:edit_box{label="&C(mm)";edit_width=8;key="c";}}}ok_cancel;}(2)拋物線繪制程序:(defunc:pwx()(setqa1b0c0);假設(shè)變量的值a=1,b=0,c=0(setqp0(getpoint"\n輸入坐標原點"));在繪圖板中選取坐標原點(setqxp(carp0)yp(cadrp0));將坐標原點橫坐標的值給xp縱坐標的值給yp(command"line"(list(-xp40)yp)(list(+xp40)yp)"");畫X軸(command"line"(listxp(-yp40))(listxp(+yp40))"");畫y軸(command"pline"(list(+xp40)yp)"w"50(list(+xp50)yp)"");畫X軸箭頭(command"pline"(listxp(+yp40))"w"50(listxp(+yp50))"");畫Y軸箭頭(setqx0(+(carp0)(/(-b)(*2a))));指定拋物線頂點的橫坐標(setqy0(+(cadrp0)(/(-(*4ac)(*bb))(*4a))));指定拋物線頂點的縱坐標(setqd2)(command"pline"(listx0y0))(while(<=d6)(setqx1(+dx0))(setqy1(+y0(+(*add)(*bd)c))); (command(listx1y1))(setqd(+d2))) (command""))(3)對話框驅(qū)動程序(defunc:drawpwx(/abcid);AUTOCAD命令名:drawpwx(defungetdata();定義getdata函數(shù),獲取控件的最終結(jié)果(setqa(atof(get_tile"A")));獲取編輯框A的值,轉(zhuǎn)換為實數(shù)后賦給變量a(setqb(atof(get_tile"B")));獲取編輯框B的值,轉(zhuǎn)換為實數(shù)后賦給變量b(setqc(atof(get_tile"C")));獲取編輯框C的值,轉(zhuǎn)換為實數(shù)后賦給變量c)(setqsdt0);設(shè)置狀態(tài)參數(shù)sdt為0(setqid(load_dialog"E:/文件夾/我的文件夾/論文-文件夾/畢業(yè)設(shè)計/尹慧1/pwx.DCL"));裝入DCL文件(if(<id0)(exit));如果裝入失敗則退出(setqA50.0B50C25);設(shè)變量初值(if(not(new_dialog"pwx"id))(exit));啟動對話框,如果失敗則退出(setqx1(dimx_tile"img_cr"));(setqy1(dimy_tile"img_cr"));(start_image"img_cr")
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年金融科技在財富管理中的智能風控系統(tǒng)市場前景報告
- 湖南燃氣考試試題及答案
- 內(nèi)蒙古中小學(xué)教師考試真題2024
- 高測入職培訓(xùn)考試試題及答案
- 2024年攀枝花市仁和區(qū)醫(yī)共體總醫(yī)院招聘考試真題
- 幼兒園教育活動健康
- 河南開封智慧健康職業(yè)學(xué)院招聘筆試真題2024
- 2024年四川綿陽九洲投資控股集團有限公司招聘考試真題
- 澄邁縣遴選考試真題2024
- 12古詩二首教學(xué)課件
- 2025年廣東省高考生物真題(解析版)
- 2025年7月自考13811績效管理試題及答案含解析
- 2025年中學(xué)教師資格考試《綜合素質(zhì)》教育法律法規(guī)經(jīng)典案例分析及強化試題集(含答案)
- CGF生長因子在口腔醫(yī)學(xué)中的應(yīng)用
- 互聯(lián)網(wǎng)新聞信息服務(wù)安全評估報告模板(2025年7月修訂)
- 《等腰三角形的性質(zhì)》課件
- (2025)公文寫作考試題庫(含答案)
- 2023年成都市成華發(fā)展集團有限責任公司招聘筆試模擬試題及答案解析
- 蓄電池安裝工程分項工程質(zhì)量驗收記錄表
- (完整版)幼兒園大班升一年級數(shù)學(xué)測試卷
- B2B2C多用戶商城平臺詳解
評論
0/150
提交評論