模具設計與制造模具設計說的概述(ppt137頁)_第1頁
模具設計與制造模具設計說的概述(ppt137頁)_第2頁
模具設計與制造模具設計說的概述(ppt137頁)_第3頁
模具設計與制造模具設計說的概述(ppt137頁)_第4頁
模具設計與制造模具設計說的概述(ppt137頁)_第5頁
已閱讀5頁,還剩134頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第一章 模具CADCAM系統的構成第一節 模具CAD/CAM 系統的硬件一、模具CAD/CAM 系統的硬件構成(一)計算機主機(二)外部存儲器常用的外部存儲器有磁盤、磁帶、光盤。(三)輸入、輸出設備1. 輸入設備 模具CAD/CAM系統使用的輸入設備主要包括:鍵盤、鼠標(圖形板)、激光掃描機等。2. 輸出設備 模具CAD/CAM系統使用的輸出設備主要包括:圖形顯示器、繪圖設備、快速成形機。二、CAD/CAM硬件系統的配置 (一)大型機系統(Mainframe Based System )(二)小型機成套系統(Turn Key System)(三)圖形工作站(Workstation)(四)個人計

2、算機(Personal Computer)第二節 模具CAD/CAM系統的軟件模具CAD/CAM系統除必要的硬件設備外,還必須配備相應的軟件。模具CAD/CAM的軟件可分為系統軟件、支撐軟件和應用軟件三個層面。一、系統軟件系統軟件(System Software)指的是在計算機運行狀態下,保證用戶正確而方便的工作的那一部分軟件,包括操作系統、匯編系統、編譯系統和診斷系統等。 操作系統是用戶和計算機之間的接口,使用戶能夠有效的使用計算機。操作系統全面管理計算機資源,合理的組織計算機的工作流程。操作系統是每一計算機系統都具有的系統軟件,如DOS、UNIX、LINUX、WINDOWS等。二、支撐軟件

3、 模具CAD/CAM系統的支撐軟件主要包括圖形處理軟件、幾何造型軟件、有限元分析軟件、數據庫管理軟件、優化設計軟件、計算機仿真分析應用軟件、數控加工軟件、檢測與質量控制軟件等。(一)圖形處理軟件圖形處理包括對圖形的定義、圖形的生成、表示、變換、修改等一系列操作。圖形處理軟件是進行圖形處理的專用軟件,它是計算機與圖形輸出裝置的中間連接者,其功能是實現圖形與數據之間的 轉換。圖形處理軟件就是常說的圖形支撐軟件它是一種通用的基礎軟件,在此基礎上,可進行第二次開發,研制適合用于各專業的應用軟件。圖形處理軟件是模具CAD/CAM系統中的重要支撐軟件。1. 圖形處理軟件的類型圖形處理軟件可分為繪圖子程序庫

4、、繪圖語言和專用語言系統三種類型。這些軟件都應具有人機交互處理圖形的功能。(1)繪圖子程序庫 繪圖子程序庫又稱圖形軟件包。它是一系列與圖形有關的子程序的集合。利用這種圖形軟件包,可大大提高編程的效率。在編寫復雜圖形的繪圖軟件時,只要編寫一個主程序來調用軟件包中的程序就行了。圖形軟件包,一般包括基本子程序和功能子程序,也有的包括應用子程序。基本子程序包括繪圖所必須的最基本的功能。如繪圖初始化、啟動圖形輸出設備、幾何計算、幾何變化、畫直線、圓、注寫字符等應用子程序。功能子程序包括畫各種圖線、各種軸線、各種基本的直線圖形、曲線圖形等子程序。應用子程序是在上述兩種子程序的基礎上開發的專用程序,如畫軸測

5、圖、透視圖、機械圖、等值線圖、標高投影、電路圖、管道圖等子程序。(2)繪圖語言 繪圖語言是在一種高級語言的基礎上,經過修改、添加圖形功能而成。這種繪圖語言不需要獨立的編譯系統,但由于要改動、擴充高級語言的編譯系統,因此要求研制人員對該高級語言的編譯系統要比較熟悉,故研制這種圖形處理軟件比研究制圖子程序庫要復雜些,而且不可移植,其優點是執行速度較快。(3)專用的圖形設計語言 這種專用的語言系統,獨立于其他高級語言,有自己單獨的編譯系統。因此研制相當困難。工作量大。且難以移植到其他機器上。其優點是直觀易懂、使用靈活、功能強、執行速度快、效率高。2. 對圖形處理軟件的要求(1)實用性(2)功能強(3

6、)執行速度快、效率高(4)容錯性3. 圖形處理軟件的標準化標準化了的圖形包又稱為圖形標準,它必須作到:設備無關性。即與系統內所配置的圖形設備的種類、數量、性能、參數等無關;與應用軟件無關,即通用性,可用于開發各種應用軟件,各種圖形應用軟件可用同一方式調用圖形標準;與語言無關,即可被各種程序設計語言調用;具有較完整的圖形處理功能,如圖形的生成、表示、變換、分段、輸入等。1977年,美國計算機協會(ACM)的圖示學專業組(SIG-GRAPH)“圖示學標準起草委員會”(GSPC)提出了圖形標準GSPC77(即CORE系統),1979年進行了修訂擴充。1979年提出了一個二維圖形GKS(Graphic

7、al Kernel System),與繁雜龐大的CORE不同,GKS使用了工作站的概念,清晰簡潔,小巧玲瓏,經過多次修改。1983年,修改后的GKS7.2版被國際標準化組織(ISO)定為國際圖形標準。GKS標準圖形軟件包,為圖形應用軟件和圖形輸入輸出設備提供了一個功能接口,它包括各種交互的或者非交互的基本功能,適用于各種設備。(二)數據庫系統 在模具CAD/CAM系統中,幾乎所有應用軟件都離不開數據庫。提高模具CAD/CAM系統的集成化程度主要取決于數據庫的水平。數據庫主要是收集有關產品外形結構定義(如造型、繪圖、加工、有限元分析等)和相應的有關信息。傳統的數據庫管理系統運用于CAD/CAM系

8、統有許多缺陷:1)基于文件系統的數據庫系統。它的特點是根據設計需要編制數據庫管理程序,不具備理論化的設計模型和數據庫語言,缺乏通用性。2)不能完全滿足工程環境中信息表達的要求,如表達復雜實體中各元素的聯系非常困難、缺乏動態模式修改能力等。3)不能支持整個工程應用過程,對不同階段要求不同方面信息這一特點缺乏支持,對過程性信息的支持較弱。4)存取的效率很低。隨著CAD/CAM/CAE/CAPP集成化軟件系統的發展,為了解決傳統數據庫的缺陷繼而出現了工程數據庫,它具有以下主要功能:1)支持復雜對象及其語義關系的描述與處理。復雜對象和存在于復雜對象之間語義關系的復雜性是工程的特點之一。2)支持文字、圖

9、形、圖像、動畫等多媒體數據的管理。3)是動態數據庫,不僅能對靜態數據建模,而且能對動態數據建模,允許動態地對數據庫進行修改或擴充。4)支持快速查詢,有良好的查詢接口。5)支持不同設計版本的存儲與管理,支持多方案設計和回溯的功能,具有良好的多級版本管理功能。第三節 模具CAD/CAM系統的網絡配置利用通信系統將計算機與計算機以及相關的外部設備相連即可構成網絡。局域網(Local Area Network,簡稱LAN)能夠以最高效率、最低成本在本地區范圍內將計算機、終端、工作站以及常用的計算機外部設備連接成一個網絡系統。通過國際互聯網(Internet)非常方便地實現全球資源共享,可以通過網絡電子

10、商務完成從采購至銷售的一系列環節。一、模具CAD/CAM系統常用的局域網絡系統形式:(一)集中式CAD/CAM系統(二)分布式CAD/CAM系統局域網特點是傳輸速度高、組網靈活,成本低。連網以后,可以實現數據、信息、軟件、硬件資源的共享。更為有效的利用現有資源和提高工作效率。廣域網的典型代表是Internet網。組織局域網的方式很多,但采用最多的是總線形、環形和星形網絡結構。1. 總線形網絡結構2. 環形網絡結構3. 星形網絡結構二、CAD/CAM網絡系統硬件設備網卡插在計算機或服務器擴展槽中,通過網絡線(如雙絞線、同軸電纜或光纖)與網絡交換數據、共享資源。集線器(HUB)是局域網的星型連接點

11、,每個工作站是用雙絞線連接到集線器上,由集線器對工作站進行集中管理。網絡傳輸介質是網絡中傳輸數據、連接各網絡站點的實體,如雙絞線、同軸電纜、光纖,網絡信息還可以利用無線電系統、微波無線系統和紅外技術傳輸。常用局域網互連設備還有中繼器、網橋、路由器以及網關等。三、網絡協議(一)NETBEUI協議NETBEUI是為IBM開發的非路由協議,用于攜帶NETBIOS通信。NETBEUI缺乏路由和網絡層尋址功能,既是其最大的優點,也是其最大的缺點。因為它不需要附加的網絡地址和網絡層頭尾,所以很快且很有效,適用于只有單個網絡的小工作組環境。(二)IPX/SPX協議IPX是NOVELL用于NETWARE客戶端

12、/服務器的協議群組,避免了NETBEUI的弱點。但是,帶來了新的不同弱點。(三)TCP/IP協議每種網絡協議都有自己的優點,但是只有TCP/IP允許與Internet完全的連接。TCP/IP同時具備了可擴展性和可靠性的需求,不幸的是犧牲了速度和效率,TCP/IP的開發榮幸地受到了政府的資助,因此得到了迅速的推廣。Internet公用化以后,人們開始發現全球網的強大功能。Internet的普遍性是TCP/IP至今仍然使用的原因。常常在沒有意識到的情況下,用戶就在自己的PC上安裝了TCP/IP棧,從而使該網絡協議在全球應用最廣。由于TCP/IP的32位尋址功能方案不足以支持即將加入Internet

13、的主機和網絡數,因而新的IPv6標準可能代替當前實現的標準。第三章 模具CAD/CAM常用軟件第一節 第一節 各種流行的CADCAM軟件AutoCAD是應用最廣泛的CAD軟件,它優良的二次開發工具使其能夠活躍在各類CAD專業領域。CAXA是國產CAD/CAM軟件,其初級產品CAXA電子圖板具有較廣泛的應用,可幫助設計人員進行零件圖、裝配圖、工藝圖表、平面包裝的設計。PICAD是另一種國產CAD軟件產品,是參數化、集成化的計算機輔助設計系統,也是二維CAD支撐平臺及交互式工程繪圖系統。開目CAD是基于微機平臺的CAD和圖紙管理軟件。開目CAD支持多種幾何約束種類及多視圖同時驅動,具有局部參數化的

14、功能,能夠處理設計中的過約束和欠約束的情況。開目CAD實現了CAD、CAPP、CAM的集成。高華CAD系列產品包括計算機輔助繪圖支撐系統GHDrafting、機械設計及繪圖系統GHMDS、工藝設計系統GHCAPP、三維幾何造型系統GHGEMS、產品數據管理系統GHPDMS及自動數控編程系統GHCAM。大恒通用機械CAD系統最早開發于1991年,是針對機械制造及設計行業的通用機械CAD系統。Solidedge是三維CAD系統,它向用戶提供了從三維零件建模,裝配設計到最終的二維圖制作的一整套完善的CAD工具。SolidWorks是基于Windows的機械設計軟件,是以Windows為平臺,以Sol

15、idWorks為核心的各種應用的集成,包括結構分析、運動分析、工程數據管理和數控加工等。金銀花(Lonicera)系統主要應用于機械產品設計和制造中,它可以實現設計制造一體化和自動化。GS-CAD是一個基于微機、中文Windows95/NT平臺的三維CAD系統。MDT是Autodesk公司在PC平臺上開發的三維機械CAD系統。它以三維設計為基礎,集設計、分析、制造以及文檔管理等多種功能為一體;為用戶提供了從設計到制造一體化的解決方案。Pro/Engineer簡稱Pro/E,是一個面向機械工程的CAD系統。PTC公司提出的單一數據庫、參數化、基于特征、全相關的概念改變了機械CAD/CAE/CAM

16、的傳統觀念。UG-是一個集CAD、CAE和CAM于一體的機械工程輔助系統,UG-為用戶提供了一個全面的產品建模系統。SurfCAM是基于Windows的能夠自動生成零件刀具軌跡,以及進行零件加工的NC代碼,具有強大的通用后置處理模塊的輔助制造軟件。Mastercam為PC級CAM軟件。 Mastercam包括了銑削加工(milling),車削加工(turning),線切割加工(wire EDM)等主要模塊,適用于機械設計與制造的各個領域。Cimatron系統是以色列的CAD/CAM/PDM產品,該系統提供了比較靈活的用戶界面,優良的三維造型、工程繪圖,全面的數控加工,各種通用、專用數據接口以及

17、集成化的產品數據管理。I-DEAS是全世界制造業用戶較廣泛應用的大型CAD/CAE/CAM軟件。CATIA系統是在起源于航空工業的CADAM系統基礎上擴充開發的CAD/CAM/CAE/PDM應用系統。Euclid軟件是為英法聯合研制協和號超音速客機而開發的CAD軟件。DUCT軟件是三維復雜形體造型設計與制造CAD/CAM軟件。第二節 第二節 通用CAD軟件AutoCAD一、AutoCAD的二維繪圖命令二維繪圖命令是AutoCAD的基礎部分。無論二維圖形如何復雜,都是由點、線、圓、圓弧等最基本的圖形要素組成。1. 1. 點的輸入在各項CAD操作中,點的輸入是最基本的操作,AutoCAD共有四種點

18、的輸入方式。(1) (1) 通過鍵盤輸入點 通過鍵盤輸入點的坐標值是一種精確的點輸入方式,點的坐標值輸入有三種坐標方式:絕對直角坐標(輸入x,y)、相對直角坐標(輸入x,y)和相對極坐標(輸入r引出子菜單工藝性分析小孔CC(load dcad-b-2000-k) (load DCAD) (load Dcad-b) DCADBK孔距CC(load dcad-b-2000-jb) (load DCAD) (load Dcad-b) DCADBJB凸臂CC(load dcad-b-2000-tz) (load DCAD) (load Dcad-b) DCADBTZ窄槽CC(load dcad-b-2

19、000-tz) (load DCAD) (load Dcad-b) DCADBTZ圓弧CC(load dcad-b-2000-y) (load DCAD) (load Dcad-b) DCADBY孔間壁厚CC(load dcad-b-2000-b) (load DCAD) (load Dcad-b) DCADBB排樣定搭邊值CC(load dcad-l-2000-d) (load DCAD) (load dcad-l-2000) dbz單排排樣CC(load dcad-l-2000-s) (load DCAD) (load dcad-l-2000) lay1CAM3B指令CC(load dca

20、d-ww) w3b穿孔代碼CC(load dcad-ww) punch代碼校驗CC(load dcad-ww) check模板上模座CC(load dcad-mb) (mb) smz墊板CC(load dcad-mb) (mb) db固定板CC(load dcad-mb) (mb) gdb卸料板CC(load dcad-mb) (mb) xlb凹模CC(load dcad-mb) (mb) am下模座CC(load dcad-mb) (mb) xmz下固定板CC(load dcad-pt) (mb) xgdb下墊板CC(load dcad-pt) (mb) xdb空心墊板CC(load dca

21、d-mb) (mb) kxdb-模具標準件模柄(if (null c:mb) (load dcad-pt) mb橡皮(if (null C:XP) (load dcad-pt) XP導柱(IF (NULL C:DZ) (LOAD DCAD-PT) DZ導套(IF (NULL C:DT) (LOAD DCAD-PT) DT導料板(IF (NULL C:DT) (LOAD DCAD-PT) DLB承料板(IF (NULL C:DT) (LOAD DCAD-PT) CLB卸料螺釘(if (null c:XLLD) (load dcad-pt) XLLD固定導銷(IF (NULL C:DT) (LOA

22、D DCAD-PT) GDDLX-圓凸模(IF (NULL C:DT) (LOAD DCAD-PT) YTM裝配示意圖CC(load dcad-z) zpt圖3-1 DCAD子菜單ASCII代碼二、LISP語言AutoCAD內嵌的兩種LISP語言(AutoLISP和Visual LISP)是與AutoCAD結合最為完美的程序語言。AutoLISP是AutoCAD選用的第一個強有力的開發工具,從1985年問世的版本開始,一直沿用至今。AutoLISP是解釋型語言,它的欠缺之處是運行效率較低,源程序缺乏保密性。針對AutoLISP的弱點,AutoCAD在其2000版本中又推出了具有高運行效率的編譯

23、型LISP語言Visual LISP。Visual LISP在AutoLISP的基礎上增加了源程序編輯環境、編譯器以及一些增強函數。實際上,過去編寫的AutoLISP程序都可以在Visual LISP中編譯和運行,即Visual LISP能夠完全兼容AutoLISP。(一)LISP語言簡介LISP是英語LISt Processing 的縮寫,意思是一種編制計算機程序的表處理語言。LISP語言1960年起源于美國麻省理工學院(MIT),是一種著名的人工智能計算機語言。與BASIC等其他計算機語言一樣,LISP語言也有許多版本,現在使用最多的是COMMON LISP。AutoCAD軟件中鑲嵌的Au

24、toLISP與COMMON LISP很接近,它增加了調用AutoCAD命令的功能和一些幾何函數,并削減了COMMON LISP中一些不常用的函數。作為一種高級語言,LISP可以完成其他許多高級語言(如FORTRAN、BASIC、PASCAL、C等)能夠完成的工作,諸如計算、邏輯判斷、循環運算等等。LISP語言具有一些獨特的優點,使它特別適用于人工智能和CAD領域,這也是AutoCAD在眾多計算機語言中首先選擇其作為開發工具的主要理由。表(List)在LISP語言中具有極其重要的意義。表是LISP語言的重要成份,它由若干個元素(Element)和一對圓括號組成。元素則包括表和原子(Atom)兩種

25、類型。原子指常數(Constant)或者符號變量(Variable)。表中的元素可以是表,因此表可具有嵌套結構。在LISP語言中,表既可以構成數據,也可以組成程序。如()和(1 5.3 3)都是用表的形式表示的數據。前者可以表示一個二維點,x坐標值為,y坐標值為。后者可以表示一個三維點,x坐標值為1,y坐標值為,z坐標值為3。(1 2 5 8.2 “A” 9)可以表示一個六維向量,與其他計算機語言中的一維數組相當,但是表中元素的數據類型可以各不相同,而同一數組中各個數據的類型都必須相同。利用表的嵌套結構,容易獲得類似的多維數組,但是其中各維的長度可以不相等,并且表中元素的數據類型可以各不相同,

26、所以在表示數據時,表比其他計算機語言中的多維數組更顯優越性。AutoCAD中的圖形數據(包括類型、圖層、顏色、線型、特征、坐標值等)都可采用表的形式表達。如AutoCAD中表達一根直線所用的表為(-1 . ) (0 . LINE) (330 . ) (5 . 2F7) (100 . AcDbEntity) (67 . 0) (410 . Model) (8 . 0) (100 . AcDbLine) (10 187.701 -45.8475 0.0) (11 5.0 -45.8475 0.0) (210 0.0 0.0 1.0);表達一個圓所用的表為(-1 . ) (0 . CIRCLE) (

27、330 . ) (5 . 88) (100 . AcDbEntity) (67 . 0) (410 . Model) (8 . 0) (100 . AcDbCircle) (10 0.0 0.0 0.0) (40 . 10.0) (210 0.0 0.0 1.0)LISP語言的程序結構非常簡單,它也是由表組成。LISP程序采用前綴形式:(元素0 元素1 元素2 )構成LISP程序時,表中元素0必為函數名稱,其后的各個元素為該函數(元素0)的變量。LISP程序對字母的大小寫是不加區分的。例如(+ 1 2)是一個LISP程序的例子,其中為函數名,1和2為函數的變量。LISP語言是一種函數型計算機語

28、言,LISP語言擁有的功能是通過其函數表現出來的。(二)LISP函數LISP函數具有返回值和特定的功能。如上例中,函數返回值為3,函數的特定功能是求和。各種類型的LISP函數用來完成LISP語言所有的功能,下面將一些最基本的LISP函數進行分類,以便大家能夠對LISP語言及其在CAD中的應用有所了解。1. 1.代數運算函數代數運算函數用于完成代數運算,包括賦值函數(SETQ),四則運算函數(+、-、*、/),三角函數(SIN、COS、ATAN)以及其他代數函數(ABS、EXP、EXPT、SQRT)。代數運算函數的使用方法很容易掌握,唯一要注意的是LISP程序具有前綴結構的特點,各種函數運算都必

29、須將函數名作為LISP表達式中最前面的元素。1) SETQ函數的格式為(SETQ v1 e1 v2 e2 vn en)。其功能是將ei的計算值賦予變量vi,函數返回值為en的計算值。(注:方括號部分是可選項,以下同。)例如,(SETQ x 1 y (+ 1 2)將常數1的計算值1賦予變量x,LISP表達式(+ 1 2)的計算值3賦予變量y,函數返回值為3。2) +函數的格式為(+ n1 n2 n3 nm)。其功能是對函數變量求和,函數返回值為變量之和:n1+n2+n3+nm。3) -函數的格式為(- n1 n2 n3 nm)。其功能是對函數變量求差。當m1,函數只有一個變量n1時,函數返回值為

30、0-n1,即-n1;當m2時,函數返回值為n1-(n2+n3+nm)。4) *函數的格式為(* n1 n2 n3 nm)。其功能是對函數變量求積,函數返回值為變量的乘積:n1n2n3nm。5) 函數的格式為(/ n1 n2 n3 nm)。其功能是求函數變量的商,函數返回值為n1 /(n2n3nm)。當函數變量均為整型數時,函數返回值也為整型數;當函數變量中至少有一個為實型數時,函數返回值為實型數。例如,(/ 3 2)的返回值為1,而()的返回值則為。6) SIN函數的格式為(SIN n)。其功能是求函數變量n的正弦值,函數返回n的正弦值。變量n的單位為弧度。例如,(SIN (/ PI 2))的

31、返回值為,式中PI為LISP符號變量,表示圓周率值。7) COS函數的格式為(COS n)。其功能是求函數變量n的余弦值,函數返回n的余弦值。變量n的單位為弧度。用法與SIN函數相同。8) ATAN函數的格式為(ATAN n1 n2)。其功能是求反正切值arc tan n1 或 arc tan(n1/n2)。當只有一個函數變量時,函數返回值的范圍為(-/2,/2),當存在2個函數變量時,函數返回值的范圍為(-,。函數返回值的角度單位為弧度。例如:(ATAN 0)返回值(ATAN 1)返回值(ATAN 1 1)返回值(ATAN 1 1)返回值(ATAN 1 1)返回值(ATAN 1 1)返回值(

32、ATAN 1 0)返回值(ATAN 1 0)返回值(ATAN 0 1)返回值(ATAN 0 1)返回值9) ABS函數的格式為(ABS n)。其功能是求絕對值,函數返回n的絕對值。10) EXP函數的格式為(EXP n)。其功能是求e的指數,函數返回en。11) EXPT函數的格式為(ESPT m n)。其功能是求m的指數,函數返回mn。12) SQRT函數的格式為(SQRT n)。其功能是求 平方根,函數返回n的平方根。2. 2.自定義函數LISP語言提供了許多基本函數,稱為內部函數或系統函數(如前述函數),利用這些函數可以直接編寫LISP程序,例如tan的LISP程序可編寫為(/ (SIN

33、 x) (COS x)。對于復雜的程序,直接利用基本函數編寫程序并不是一個好方法,編寫LISP程序更多是利用自定義函數來編寫程序,反之,大多數LISP程序也都編寫成為自定義函數的形式。自定義函數與其他語言中的子程序或函數最接近。自定義函數是用戶自己定義的函數,又被稱為用戶函數或外部函數。自定義函數的使用和系統函數的使用方法是一致的,用戶在使用方面不會感覺到兩者的差異。自定義函數的格式為(DEFUN name (A1 A2 AL / V1 V2 VM) e1 e2 en)上表中第0個元素DEFUN是自定義函數的函數名,第1個元素name是符號變量,為自定義函數所定義的用戶函數的名稱。用戶函數名稱

34、后是用戶函數的變量表,變量表中的元素都是所定義的用戶函數的局部變量,可分成以“”分隔的兩個部分,方括號表示可選項,表中“”前的可選項A1 A2 AL為新設立的用戶函數name的函數變量,表中另一可選項/ V1 V2 VM中的元素不是用戶函數的函數變量,它們僅僅是用戶函數name的局部變量。所謂局部變量是指僅僅在定義函數內部存在并起作用的變量,它對定義函數以外的程序無任何干擾。變量表可以是空表(即表中不包含任何元素)。變量表后面是函數定義體,決定了函數name的功能和返回值。函數name的返回值是en的計算結果。例如AutoLISP沒有提供正切函數,用戶可以利用自定義函數自行定義正切函數,定義正

35、切函數的程序如下(DEFUN tan (x / y) (SETQ y (COS x)(IF (/= y 0) (/ (SIN x) y)以上程序中tan是用戶自行定義的正切函數名。x和y之間的符號“/”分隔開了局部變量中的自變量,“/”前的變量x是用戶函數tan的自變量,也是該函數的局部變量,而“/”后的變量y是tan函數的局部變量,但不是tan函數的自變量。程序中的DEFUN、SETQ、IF、/=、/、SIN和COS都是AutoLISP的基本函數。調用正切函數(tan 0),返還的正切函數值為??梢钥吹?,用戶自定義的正切函數的使用方法與LISP系統函數SIN或COS的用法相同。用戶函數經一次

36、定義后可無限次使用。用戶在使用LISP語言的過程中,用自定義函數的方法可以逐漸積累自己的函數,從而使編程越來越方便。3. 3.分支結構分支結構在LISP語言中有二分支結構和多分支結構兩種,與此相關的函數有:關系運算函數(、/、和函數的用法也是相同的,其功能如同其函數名所示。EQUAL函數的格式為(EQUAL e1 e2 e3)。EQUAL用來比較兩個實型數或表是否相等,相等時函數返回T,否則返回NIL。比較兩個實型數e1和e2時,取一個很小的正數e3,其判斷準則是當|e1-e2|e3 時函數返回T,否則返回NIL。2) 2) AND函數的格式為(AND e1 e2 en)。當函數變量e1、e2

37、、en中全部有值時,函數返回T,否則返回NIL。3) 3) OR函數的格式為(OR e1 e2 en)。當函數變量e1、e2、en中至少有一個有值時,函數返回T,否則返回NIL。4) 4) NOT格式為(NOT e)。當函數變量e有值時,函數返回NIL,否則返回T。5) 5) IF函數的格式是(IF e1 e2),它的功能是實現程序的二分支結構。當判別式的結果為非NIL時,函數執行e1并返回e1的計算值,否則函數執行e2并返回e2的計算值,若可選項e2不存在,則函數結束運行,返回NIL。例如(SETQ a (GETREAL “A”) c (GETREAL “C”)(SETQ x (IF (/=

38、 a 0) (/ c a)(SETQ y (IF ( a 0) (+ c a) (- c a)6) 6) PROGN函數的格式為(PROGN e1 e2 en),它的功能是將若干個LISP表達式歸并為一個LISP表達式,常用于IF函數內,以便使IF函數能夠在e1和e2的格式規定中作更多的事情。7) 7) COND函數的格式為(COND(測試式1 e11 e12 e1i)(測試式2 e21 e22 e2j) (測試式m em1 em2 emk)函數功能是實現多分支結構。COND函數的變量都為表,變量表中的第一個元素是測試式,其余元素是當測試結果為非NIL時順序執行的LISP表達式。COND函數依

39、次對測試式進行測試,當測試結果為非NIL時,順序執行其后的LISP表達式。函數返回值為最后執行的表達式計算結果。變量表中可以只有一個元素,即可以只有測試式,此時的函數返回值為測試結果。例3-1 例3-1 編寫下列分段函數的LISP程序。解1:可以利用COND函數處理該分段函數,編寫程序如下A)編寫程序(DEFUN L3-1-1 (x)(COND (AND ( x 10) ( x -6) ( x 2) ( x 2) (= x 6) 1) (T 2)B)調用程序(SETQ n (L3-1-1 1))后函數L3-1-1返回0,并將該值賦予變量n。解2:利用COND函數順序測試的特點,可以編寫更簡化的

40、程序如下A)編寫程序(DEFUN L3-1-2 (x)(COND (= x 10) 2) (= x 6) 2) (= x 2) 1) (= x 2) 0) (= x 6) 1) (T 2))B)調用程序(SETQ n (L3-1-2 1))后函數L3-1-2返回0,并將該值賦予變量n。4. 4.交互式輸入函數交互式輸入函數提供控制臺輸入,包括鍵盤輸入和光標設備輸入。交互式輸入函數又稱為GET族輸入函數,該族函數均以字符GET開頭。交互式輸入函數包括整型數輸入函數(GETINT)、實型數輸入函數(GETREAL)、字符串輸入函數(GETSTRING)、點輸入函數(GETPOINT)、角度輸入函數

41、(GETANGLE)、距離輸入函數(GETDIST)、關鍵字輸入函數(GETKWORD)和初始化輸入函數(INITGET)。交互式輸入函數為專業軟件的二次開發提供了與AutoCAD相同的交互界面,簡化了軟件的開發過程和推廣工作。1) GETINT函數的格式為(GETINT 提示信息)。其功能是輸入整型數,函數返回值為從鍵盤輸入的整型數。提示信息為字符串,用于輸入時給出提示。2) GETREAL函數的格式為(GETREAL 提示信息)。其功能是輸入實型數,函數返回值為從鍵盤輸入的實型數。3) GETSTRING函數的格式為(GETSTRING 開關變量 提示信息)。其功能是輸入字符串,函數返回值

42、為從鍵盤輸入的字符串。當不選用開關變量或開關變量無值時,輸入字符串可以用空格或RETURN結束,輸入字符串中無法包括空格。開關變量存在且有值時,則輸入字符串中可以包含空格,但必須用RETURN結束字符串。AuotLISP通過這種方式,使字符串輸入和AutoCAD在方式上保持一致。4) GETPOINT函數的格式為(GETPOINT pt 提示信息)。其功能是通過鍵盤或光標設備輸入點??蛇x項pt是一個表示點的表,當pt存在時,移動光標會出現從pt到光標的連線(皮筋線),此時pt也作為相對坐標系的原點對采用相對坐標輸入點產生作用。當pt不存在時,相對坐標系的原點由AutoCAD系統變量LASTPO

43、INT決定。5) GETANGLE函數的格式為(GETANGLE pt 提示信息)。其功能是通過鍵盤或光標設備輸入角度。函數返回值為表示角度的實型數,單位為弧度。Pt的作用同前。AuotLISP通過這種方式,使角度輸入和AutoCAD在方式上保持一致。6) GETDIST函數的格式為(GETDIST pt 提示信息)。其功能是通過鍵盤或光標設備輸入長度。函數返回值為表示距離的實型數。Pt的作用同前。AuotLISP通過這種方式,使長度輸入和AutoCAD在方式上保持一致。7) GETKWORD函數的格式為(GETKWORD 提示信息)。其功能是通過鍵盤輸入關鍵字。函數返回值定義為關鍵字的字符串

44、。關鍵字由下面的INITGET函數定義。8) INITGET函數的格式為(INITGET bits 關鍵字)。其功能是控制GET函數的輸入。bits為二進制概念的控制位,能夠最大限度的減少輸入錯誤。表3-4中,十進制數1(bit 0)防止空輸入(ENTER);2(bit 1)防止0輸入;4(bit 2)防止負數輸入;8(bit 3)允許用戶輸入LIMITS規定界限以外的點;16(bit 4)(尚未使用);32(bit 5)使用虛線作皮筋線;64(bit 6)阻止Z坐標輸入;128(bit 7)允許任意輸入。關鍵字除了用于GETKWORD函數,還能夠用于其他GET函數,擴大它們的使用范圍。如關鍵

45、字用于GETINT函數,能夠使該函數根據輸入內容返回整型數或關鍵字。而沒有關鍵字時,GETINT函數只能夠返回整型數。關鍵字是包含在雙引號內的字符和數字,關鍵字之間用空格分隔,例如“Abc Def”定義了Abc和Def兩個關鍵字。關鍵字中的大寫字母在輸入時可以作為關鍵字的縮寫。表3-4 控制位和輸入函數的關系函數關鍵字控制位非空(1)(bit 0)非0(2)(bit 1)非負(4)(bit 2)非限制(8)(bit 3)用虛線(32)(bit 5)二維距離(64)(bit 6)任意輸入(128)(bit 7)GETINTGETREALGETDISTGETANGLEGETPOINTGETKWOR

46、DINITGET函數只對其后的GET函數起一次作用。對于程序段(INITGET 7 “Abc Def”)(SETQ A(GETINT “A”)運行時,輸入空回車、0或負數,系統都會要求重新輸入,只有在輸入正數時程序才會將整型數賦予變量A。當輸入a或abc時,程序會將關鍵字“Abc”作為字符串賦予變量A。而輸入d或def時,程序則將“Def”賦予變量A。輸入其他字母,程序也會要求重新輸入,直至符合輸入要求。例如,在AutoCAD繪圓命令CIRCLE執行時,有如下提示Command: circleSpecify center point for circle or 3P/2P/Ttr (tan t

47、an radius):Specify radius of circle or Diameter:首先可以輸入點或關鍵字,然后可以輸入點、數值或關鍵字。同樣的輸入效果可以用以下LISP程序達到:(INITGET 1 “3P 2P Ttr”)(SETQ p(GETPOINT “Specify center point for circle or 3P/2P/Ttr (tan tan radius):”) (INITGET 7 “Diameter”)(SETQ r (GETDIST p “Specify radius of circle or Diameter:”)5. 5.字符串函數字符串函數專門

48、用于處理字符串,包括字符串長度函數(STRLEN)、字符串鏈接函數(STRCAT)和子字符串函數(SUBSTR)。1) STRLEN函數的格式是(STRLEN s)。函數變量是字符串,STRLEN函數的功能是求出字符串s的長度,即組成字符串s的字符個數,函數返回整型數。如(STRLEN “abc”)返回3。2) STRCAT函數的格式是(STRCAT s1 s2 sn)。它的功能是按變量順序合并字符串s1 、s2 、 、sn,函數返回合并后的字符串。如(STRCAT “abc” “def”)返回字符串“abcdef”。3) SUBSTR函數的格式是(SUBSTR s m n),函數變量s為字符

49、串,m和n為整型數。SUBSTR函數從字符串s中取出一部分作為函數的返回值。返回的子字符串從字符串s的第m個字符開始,其長度(字符數)為n 。若n不存在,則返回的子字符串從字符串s的第m個字符開始至字符串末尾。字符串排列順序為從左到右,起首字符序號為1。如(SUBSTR “Good Morning” 6 3)返回字符串“Mor”,(SUBSTR “Good Morning” 6)返回字符串“Morning”。6. 6.表處理函數表處理函數是LISP語言中最具特色的一類函數,用來生成表(LIST函數)或對表進行各種操作,如往表中添加元素(CONS函數)、從表中刪除元素(CDR函數和MEMBER函

50、數)、提取表中元素(函數CAR、CADR函數、CADDR函數和NTH函數)、檢索表中元素(ASSOC函數)、替換表中元素(SUBST函數)、合并表(APPEND函數)、顛倒表中元素順序(REVERSE函數)等等,其他的表處理函數還有LENGTH、APPLY、MAPCAR、FOREACH等等。其中的APPLY函數和MAPCAR函數又被稱為泛函數,即在原來函數自變量位置上出現了函數,這就大大增加了程序的適用性。1) 1) LIST函數的格式是(LIST e1 e2 en)。它的功能是把e1、e2、en的計算值組成一個表。如(LIST 1 (+ 1 2) “A”)返回表(1 3 “A”)。2) 2)

51、 CONS函數的格式是(CONS e L),它的功能是把e的計算值加入表L中。如(CONS (+ 1 2) (LIST 1 2))返回表(3 1 2)3) 3) CDR函數的格式是(CDR L),它的功能是去除表L中為首的元素,函數返回剩余的表。如(CDR (LIST 1 2)返回表(2)。4) 4) MEMBER函數的格式是(MENBER e L), 它的功能是提取表L中e及其后面元素組成的表。如(MENBER 3 (LIST 1 2 3 4 5)返回表(3 4 5)。5) 5) CAR函數的格式是(CAR L),它的功能是提取表L中第0個元素,函數返回該元素。如(CAR (LIST 1 2

52、 3)返回1。在CAD中常被用來提取點中的X坐標值。6) 6) CADR函數的格式是(CADR L),它的功能是提取表L中第1個元素,函數返回該元素。如(CADR (LIST 1 2 3)返回2。在CAD中常被用來提取點中的Y坐標值。7) 7) CADDR函數的格式是(CADDR L),它的功能是提取表L中第2個元素,函數返回該元素。如(CADDR (LIST 1 2 3)返回3。在CAD中常被用來提取點中的Z坐標值。8) 8) NTH函數的格式是(NTH n L),它的功能是提取表L中第n個元素,函數返回該元素。表中元素的排列順序是從左到右,為首元素序號為0。如(NTH 2 (LIST 1

53、2 3 4)返回3。9) 9) ASSOC函數的格式是(ASSOC e L),它的功能是檢索表L中包含以e值為起始元素的嵌套子表,函數返回檢索到的子表。如(ASSOC 2 (1 2) (2 3) (3 4))返回以2為起始元素的嵌套子表(2 3)。10) 10) SUBST函數的格式是(SUBST m n L),它的功能是用m取代表L中的n,函數返回更換后的表。如(SUBST “QQ” “B” (LIST “A” “B” “AB” “”)返回表(“A” “QQ” “AB” “QQ”)。11) 11) APPEND函數的格式是(APPEND m n),它的功能是合并表m和n,函數返回合并后的表。

54、如(APPEND (LIST 1 2) (LIST 3 4 )返回表(1 2 3 4)。12) 12) REVERSE函數的格式是(REVERSE L),它的功能是顛倒表中元素的順序,函數返回顛倒元素順序后的表。如(REVERSE (LIST 1 2 3 4)返回表(4 3 2 1)。13) 13) LENGTH函數的格式是(LENGTH L),它的功能是求出表的長度(即表中元素的個數),函數返回表示元素數目的整型數。如(LENGTH (LIST 1 2 3 4)返回整型數4。7. 7.類型轉換函數類型轉換函數提供了變量和數據類型的相互轉換,包括整型數和實型數互相轉換函數(FIX和FLOAT)

55、以及涉及字符串的轉換函數(RTOS和READ)。1) 1) FIX函數用于將實型數轉換成整型數,它的格式為(FIX n)。2) 2) FLOAT函數用于將整型數轉換成實型數,它的格式為(FLOAT n)。3) 3) RTOS函數用于將數轉換成一定格式的字符串,它的格式為(RTOS n mode precision)??蛇x項mode和precision都是整型數。mode表示轉換格式,precision表示轉換精度(小數點后的位數),mode含義如表3-5所示。當可選項缺省時,RTOS函數按照AutoCAD的缺省格式進行轉換。表3-5 mode取值與轉換格式的關系mode轉換格式1科學計數制2十

56、進制3英制工程制4英制建筑制5分數4) READ函數的格式是(READ s),其中s是可以包含空格的字符串。READ函數去除字符串s的雙引號,并返回從中獲得的第一個表或原子。如(READ “HELLO”)返回符號變量HELLO(READ “HE LLO”)返回符號變量HE(READ “123”)返回常數123(READ “123 456 789”)返回常數123(READ “(1 2 3)”)返回表(1 2 3)(READ “(1 2 3) (4 5 6)”)返回表(1 2 3)8. 8.循環運算函數循環運算函數用于循環運算,包括無條件循環函數(REPEAT)和有條件循環函數(WHILE)。無

57、條件循環是按照確定的循環次數進行循環運算,而有條件循環則是在每次運算前進行判斷,根據判斷結果確定是否進行循環運算。1) REPEAT函數的格式為(REAPEAT n e1 e2 em)其中n為整型數, e1 、e2 、em為LISP表達式。REPEAT函數的功能是無條件地按順序對e1 、e2 、em進行n次循環運算,函數返回值為em最后一次的計算結果。2) WHILE函數的格式為(WHILE e1 e2 em)WHILE函數首先對測試式進行測試,當測試結果為非NIL時,順序執行e1、e2、em,然后再對測試式進行測試,直至測試結果為NIL時才停止循環運算,函數返回值為em最后一次的計算結果。例

58、3-2 編寫LISP程序求1+2+100解1:采用REPEAT函數編寫程序A)編寫程序(DEFUN L3-2-1 (/ I s)(SETQ i 0 s 0)(REPEAT 100(SETQ i (+ I 1) s (+ s i)B)調用函數(L3-2-1),函數返回5050。解2:采用WHILE函數編寫程序A)編寫程序(DEFUN L3-2-2 (/ I s)(SETQ I 0 s 0)(WHILE ( v c);查詢項有字符串或數之分(SETQ c (NTH (SETQ i (1+ i) l);不符合查詢條件時,列數增加1(IF ( i 20) (*ERROR* N);列數超過20,退出循環

59、,顯示出錯信息)i;函數返回列數)(defun s-line (u b i / c);行查詢函數,u為查詢變量,b為表,i為列數(SETQ c (NTH i b);表b中第i個數據(WHILE (IF (EQ (TYPE u) str) (/= u c) ( u c);查詢項有字符串或數之分(SETQ c (NTH i (SETQ b (readl f);不符合查詢條件時,查找下一行)b;函數返回符合查詢要求的行(表的形式))(DEFUN readl (f);讀記錄函數(READ (STRCAT ( (READ-LINE f) );函數以表的形式返回讀取的一行數據)例如,確定凹模尺寸的數據存放

60、在數據文件中B2-40.DAT中,其內容如下0 0.8 1.5 3 5 8 1275 (26 20) (30 22) (34 25) (40 28) (47 30) (55 35)150 (32 22) (36 25) (40 28) (46 32) (55 35) (65 40)200 (38 25) (42 28) (46 32) (52 36) (60 40) (75 45)1000 (44 28) (48 30) (52 35) (60 40) (68 45) (85 50)其中第一行數據表示沖裁件板料的厚度,第一列數據表示沖裁件的長度,根據板料厚度和沖裁件長度可以查找到一個含有兩個數

溫馨提示

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

評論

0/150

提交評論