第4章 autocad菜單開發和數據交換技術演示文稿
第4章 AutoCAD菜單開發和數據交換技術,4.1 AutoCAD菜單類型4.1.1 菜單類型1. 屏幕菜單2. 下拉菜單3. 光標菜單4. 圖標菜單在屏幕上每次最多顯示20個圖標。5. 圖形輸入板菜單不常用6. 按鈕菜單不常用,屏幕菜單和下拉菜單,屏幕菜單和光標菜單,圖標菜單,4.1.2 菜單文件類型,通過MENU命令可以裝入標準菜單或用戶菜單。使用格式為 CommandMENU,4.2 菜單文件結構4.2.1菜單文件的總體結構 菜單文件是樹型的邏輯結構,第一層為菜單段,菜單段以下為子菜單,子菜單以下還可以設置子菜單或菜單項,菜單項作為樹的終端結點即樹葉,如圖所示。,4.2.2 菜單段每個菜單段有一個固定的標題,“***”是段標題的標記,從菜單段標題開始到下一個段標題或文件結束是這個段的內容。,,,4.2.3 子菜單當菜單包含菜單項的數目超過外部設備所規定的最大項數時,多出的菜單項將不能被調用,在這種情況下應設置子菜單。 1子菜單標題 子菜單標題都以“**”為標記,名字可由用戶定義。 子菜單以下可以設子菜單或菜單項。 菜單段標題后的第一行為該段的根菜單。 2子菜單的引用表述式SectionSubmenu實現引用子菜單的功能。 S屏幕菜單段; P0光標菜單; P1-P16下拉菜單116段; I圖標菜單段; Submenu是待激活的子菜單名,該子菜單名必須在已加載的菜單文件中。如果該項是缺省的話,將返回上一個子菜單。,4.2.4 菜單項菜單項是菜單樹的樹葉,它記錄該菜單待執行的具體內容,如執行命令、調用函數、輸入數據等等。(1)菜單項語法 1空格“ ”空格的作用相當于回車。 2分號“;”也相當于回車,但比空格可讀性好,而且可以結束文本或尺寸文本的內容。 3加號“”用于續行,每個菜單項占一行,一行寫不下,在該行尾放一個加號“”,其余可寫到下一行。 4反斜杠“”反斜杠的作用是等待用戶輸入。,5字符“”相當于“Ctrl”鍵,它不單獨使用,與其后的一個字符組合,構成特定的含義。其中 BSNAP捕捉命令的ON/OFF開關; C終止正在進行的命令; D顯示光標位置的方式切換; E等軸測平面方式切換; GGRID網絡的ON/OFF開關; H退格作用,倒退一個字符; I相當于按Tab制表鍵; M執行回車鍵; OORTHO正交方式的ON/OFF開關; P控制命令提示區是否顯示來自菜單項的輸入; Q在圖形編輯狀態下,聯機打印的ON/OFF開關; T圖形輸入板數字化儀的ON/OFF開關; V激活下一個視窗。6星號“*”如果菜單項的工作是以“*CC”開頭時,當該菜單項被拾取后,自動重復地用該菜單項的的命令以及選擇項響應“Command”提示,直至用CtrlC結束。,2菜單項標題菜單項標題只對菜單項的作用進行注釋,沒有實際操作內容。菜單項標題放在方括號“ ”內,方括號之后是該菜單的工作內容。菜單項可以沒有標題。,4.2.5菜單的開發方法(1)添加式;(2)創建式。,4.3下拉菜單設計,4.3.1下拉菜單的設計特點 1段標題固定為***POPn,n為116的整數。 2菜單欄標題由所有下拉菜單的第一項組成。 3下拉菜單的寬度為該段中字符數最多的菜單項寬度,高度為菜單項數。 4 在兩菜單項之間顯示一條分隔線。 5在菜單項右邊將顯示一條箭頭,說明它含有子菜單,把鼠標移到該菜單項,下一級子菜單就會顯示出來。 6說明該級菜單的最后一項。 7在菜單項右邊顯示“”,說明它將顯示對話框。,***POP7**DRAWID_MnDraw 繪圖ID_MnCircle -圓QDSJ.; -結構選取及零件圖繪制 -圓柱齒輪 大齒輪ccIyzcl1 I* -小齒輪ccloadztclbzm.lspztclbzm --圓錐齒輪ccIyzcl I*軸的設計cczhou --幫助ccbz,***POP12 標準件 軸承 CCIZC I* 螺紋聯接件 螺釘螺栓CCIldls I* 螺母 CCLUOM 墊圈CCDIQ 檔圈CCDAQ 鍵CCJIAN 花鍵CCHJIAN 銷CCXIAO 幫助CCSHELP,練習,4.4 圖標菜單設計4.4.1 圖標菜單的設計特點 1圖標菜單段標題固定為***IMAGE。 2子菜單標題之下的第一項為圖標菜單的標題。 3圖標菜單只能通過屏幕菜單或下拉菜單調用。 在屏幕或下拉菜單段中的某個菜單項上,包含I*的作用是顯示當前圖標菜單。,4.4.2 圖標菜單的設計,為增加圖4-7所示圖標菜單,對標準菜單文件ACAD.MNU的圖標菜單區加入螺釘螺栓圖標子菜單,方括號右邊的內容為待執行命令或函數。,***IMAGE **ldls 常用螺釘螺栓 ld1,六角頭螺栓細桿B級CCLD1 ld2,六角頭螺栓C級CCLD2 ld3,六角頭螺栓全螺紋C級CCLD3 ld4,六角頭螺栓AB級CCLD4 ld5,六角頭螺栓全螺紋AB級CCLD5 ld6,六角頭螺桿帶孔螺栓C級CCLD6 ld7,六角頭頭部帶孔螺栓C級CCLD7 ld8,六角頭螺桿帶孔細牙螺栓AB級CCLD8 ld9,六角頭頭部帶孔細牙螺栓AB級CCLD9 ld10,活節螺栓C級CCLD10 ld11,地腳螺栓CCLD11 ld12,等長雙頭螺柱B級CCLD12 ld13,開槽圓柱頭螺釘CCLD13 ld14,開槽沉頭螺釘CCLD14 ld15,十字槽盤頭螺釘CCLD15 ld16,十字槽沉頭螺釘CCLD16 ld17,內六角圓柱頭螺釘CCLD17 ld18,開槽錐端緊定螺釘CCLD18 ld19,開槽長圓柱端緊定螺釘CCLD19 ld20,方頭短圓柱錐端緊定螺釘CCLD20 ld21,方頭長圓柱端緊定螺釘CCLD21,4.4.3 圖標調用格式與制作1.圖標調用格式 圖標菜單中的圖標是通過幻燈片來實現的,每一個圖標實際對應一個幻燈片文件。在圖標子菜單定義中,可以選用以下四種格式 1幻燈片文件名執行內容 2幻燈片文件名,幻燈片標號執行內容 3幻燈片庫名幻燈片文件名執行內容 4幻燈片庫名幻燈片文件名,幻燈片標號執行內容 如果標題部分有幻燈片標號,列表框中列出幻燈片標號,否則列出幻燈片文件名。2.制作圖標菜單幻燈片 按照國家標準用簡化畫法繪出5種螺釘和螺栓圖樣,然后分別對每個圖樣用ZOOM命令盡可能放大到全屏幕,使用“mslide”命令制成幻燈片,名為ld1.sld、ld12.sld、ld13.sld、ld14.sld、ld17.sld,存入support子目錄下。,3.建立幻燈片庫 先將已存盤的幻燈片名(含擴展名.sld)按順序編輯成列表文件ld1.lst,文件格式為 ld1.sld ld12.sld ld13.sld ld14.sld ld17.sld 在DOS狀態下使用AutoCAD 2007目錄下的可執行文件slidelib.建立幻燈片庫。命令格式為 DProgram FilesAutoCAD 2007slidelib ld1.slbld1.txt確認幻燈片庫已建成,可刪除幻燈片文件(或在實驗結束后刪除)。,4.建立圖標子菜單 在AutoCAD菜單文件acad 1.mnu圖標菜單區***IMAGE插入如下內容 ***IMAGE **Ldls1 螺栓繪制 ld1,六角頭螺栓 CCLD1 ld12,等長雙頭螺柱 CCLD12 ld13,開槽圓柱頭螺釘 CCLD13 ld14,開槽沉頭螺釘 CCLD14 ld17,內六角圓柱頭螺釘 CCLD17然后存盤,退出編輯狀態。,以上過程結束后,在AutoCAD編輯狀態,使用Commandmenu命令調入Support子目錄中的acad 1.mnu文件,這時下拉菜單區將增加一個“標準件”菜單項。用鼠標激活此菜單項并選子菜單“螺釘螺栓”,在屏幕圖形區會出現圖標,拾取其中的一項,就會執行圖標菜單中對應項的命令,調用繪制螺栓的AutoLISP函數,給定螺栓直徑和長度后,繪出一個螺栓的零件圖。,4.5菜單的編譯 用文本編輯程序可以直接建立“.MNU”類型的菜單文件。AutoCAD還提供了菜單編譯程序MC.,它的作用是將含有宏定義的類型為“.MND”的菜單文件編譯成“.MNU”類型的菜單源文件。MC.文件在AutoCAD的SAMPLE目錄下。利用宏可以簡化菜單源文件的文本編輯工作。,4.6 CAD數據交換 一個功能完善的CAD系統可能包括很多獨立的模塊,如設計計算、圖形處理、數據管理、校核計算、有限元分析、設計優化、數控代碼輸出等。一些現成的軟件系統往往只是針對某一類問題而設計的,如圖形軟件(AutoCAD等)有很強的圖形生成和編輯能力,有限元分析系統(如 ANSYS等)擅長有限元分析計算,數據庫管理系統適合于建立和管理數據庫,我們可以利用這些現成的資源,作為二次開發的某些功能模塊,使這些不同的系統間的數據相互交換,是實現大CAD系統或CADCAM集成的基礎性課題之一。,4.6.1數據交換的作用 1.CAD與其它應用程序的數據交換 當用AutoCAD畫好一張圖,要用程序對這張圖所表達的物體進行一些計算,這就需要從這張圖上提取某些幾何實體的數據,如果沒有圖形交換文件,就要按圖示的工作步驟來進行。反之,如果需要先用某些應用程序計算出物體有關形狀結構和大小的一些數據,然后再根據這些數據用AutoCAD系統畫出這個物體的圖形。因此,如果沒有圖形交換文件,只能按圖示的工作步驟來進行這項工作。,,在上面兩種情況下,由于數據是顯示在屏幕或打印在紙上的,所以只能由人工來完成從清單上讀數據、從鍵盤上輸入數據的工作。這樣的工作是繁重的,并且它的可靠性和效率都是不高的。利用圖形交換文件很好的解決了這一問題,如圖所示。它不僅使得操作簡便,同時也提高了數據的可靠性和工作效率。,圖形交換文件的類型主要有以下幾種(1) DXF類型 DXF類型的圖形交換文件是具有專門格式的ASCII碼文本文件,它比較好讀,易于被其它程序處理,主要用于實現高級語言編寫的程序與AutoCAD系統連接,或其它CAD系統與AutoCAD交換圖形文件。(2)DXB類型 DXB類型的圖形交換文件是具有專門格式的二進制文件,它具有比DXF文件更緊湊的格式,它不像DXF文件那樣容易被其它程序處理,主要面向具有CAD軟件包的用戶,用某些程序通過外部功能執行。,2.不同CAD系統之間的數據交換 隨著CAD應用日益廣泛,人們在不斷完善各種單元技術的同時,又提出了計算機集成制造(CIM)的要求,而實現CIM系統的先決條件就是要在下述幾個方面能夠進行產品數據的交換不同的產品設計部門之間;設計、生產準備和制造部門之間;與各合同承制廠之間;不同時期研制的產品之間;不同的CAD系統之間;CAD,CAPP,CAM等系統之間。,目前市場上流行的CAD/CAM系統不僅用途和性能各異,而且其內部產品模型的數據結構和格式也不同。因此需要數據交換,數據交換方法目前有兩種,如圖所示。點對點交換 各系統之間通過專用數據處理程序直接交換,N個系統N(N-1)個處理程序。星式交換 各個系統借助一個標準數據交換格式進行間接交換,N個系統需要2N個處理程序。,4.6.2 DXF文件結構 DXF文件是一個具有專門格式的ASCII碼文本文件。可以用文本編輯命令對其進行修改。1.文件的總體結構一個完整的DXF文件是由四個段(SECTION)和一個文件結尾組成的。其順序如下標題(HEADER)段;表(TABLES)段;塊(BLOCKS)段;實體(ENTITIES)段;文件結束(EOF)。,2.組代碼和組值 DXF文件由若干個組構成。每個組有兩行。第一行為組代碼,第二行為組值。組代碼相當于數據類型代碼,每個組代碼的含義已由AutoCAD系統約定。組值相當于數據值。組代碼和組值合起來表示一個數據的含義和它的值。,1 組代碼和組值的類型 組代碼是一個非負、不超過三位的整數。組值的類型由組代碼來決定,見下表。,表 組值的類型,2 組代碼的含義每個組代碼都有一定的含義。有些組代碼的含義是固定的;有些組代碼因應用的場合不同而有多個含義。分別說明如下0標識一個說明的開始。例如一個段、一個表、一個塊、一個圖層、一個實體等;1字符型數據的值。例如TEXT的字符串、文件名、屬性值等;2一個類型的名字。例如段、表、塊、線型、視圖等的名字;35字符型數據的值。例如文件名、關于線型的說明部分、屬性提示等;6線型名(固定的);7字樣名(固定的);8圖層名(固定的);9標題變量名(固定的); 1018X坐標值; 2028Y坐標值; 3037Z坐標值; 38基面高; 39實體的厚度;,4048高度、寬度、半徑、距離、比例因子等;49重復性的值,如定義線型時的筆劃長;5058角度值;62顏色號(固定的);66實體跟隨標記,用于多義線(PLINE)或帶有屬性的插入體(INSERT);67用于模型空間還是圖紙空間;70標題變量的狀態,表的數量和標記等;71定義字樣時對稱方式及統計數量;72文本或線型的對齊方式及統計數量;73統計數量;210X方向分量;220Y方向分量;230Z方向分量;999注釋行。,3.標題(HEADER)段1 標題段的作用 標題段記錄了AutoCAD系統的所有標題變量的當前值或當前狀態。這些標題變量記錄了AutoCAD 系統的當前工作環境。例如,AutoCAD的版本號、插入基點、繪圖界限的左下角、右上角、SNAP撲捉的當前狀態、柵格間距、式樣、當前圖層名、當前線型、當前顏色等。,2 標題段的格式 標題段的前四行如下 0 SECTION 2 HEADER 這四行分成兩個組。第一個組表達的內容是段的開始。第二個組表達的內容是HEADER(標題)。,接著依次描述了所有的標題變量。描述每一個標題變量的格式是用組代碼9標識這個標題變量名,后面跟有一個或幾個組用來描述這個標題變量的當前值或當前狀態。例如,(3)每個標題變量的含義和它所要求的組代碼及組值的含義ACADVER 1 AutoCAD版本號ANGBASE 50 ( 角度0的方向)ANGDIR 70 (0逆時針方向,1順時針方向)ATTMODE 70 (屬性的可見性0不可見,1標準的,2全部的)PDSIZE 40 (點的顯示大小)PLINEWID 40 (當前的折線寬度)SNAPMODE 70 (SNAP撲捉的狀態,非零時為開)SNAPSTYLE 70 (SNAP撲捉的式樣,0standard,1isometric等軸的)SNAPUNIT 10 和20(SNAP撲捉的X軸方向和Y軸方向的柵格間距)TDCREATE 40 (建立圖形文件的時間)TDINDWG 40 (該作業的累計時間)TDUPDATE 40 (上一次更新這個圖形文件的時間)TDUSRTIMER 40 (用戶所用的時間)TEXTSIZE 40 (當前文字高度)TEXTSTYLE 7 (當前字樣名)TRACEWID 40 (當前的加寬線寬度)VIEWCTR 10 和20 (當前屏幕的視圖中心)VIEWDIR 10,20和 30 (用VPOINT命令設置的當前視點)VIEWSIZE 40 (當前屏幕的視圖高度)......,4. 表(TABLES)段(1)表段的作用 表段包含了七種表,每個表又包含可變數目的表項,按照這些表在文件中出現的順序分別是視窗(VPORT)表、線型(LTYPE)表、圖層(LAYER)表、字樣(STYLE)表、視圖(VIEW)表、用戶坐標系(UCS)表、應用程序標識(APPID)表和尺寸標注式樣(DIMSTYLE)表。這些表記錄了當前圖形編輯的支撐環境。(2)表段的格式,5. 塊(BLOCKS)段 (1)塊段的作用 塊段記錄了定義每一個塊時的塊名、當前圖層名、塊的種類、塊的插入基點及組成該塊的所有成員。塊的種類分為圖形塊、帶有屬性的塊和無名塊三種。無名塊包括用HATCH命令生成的剖面線和用DIM命令完成的尺寸標注。 (2)塊段的格式,,,6實體(ENTITIES)段(1)實體段的作用實體段記錄了每個幾何實體的名稱、所在圖層的名稱、線型名、顏色號、基面高度、厚度以及有關的幾何數據。,2實體段的格式 0SECTION 2ENTITIES(實體段開始) 0(開始的實體)(實體名,例如LINE,CIRCLE等) 8(圖層名)(例如AB) 6(線型名)(例如DASHED,為BYLAYER時無此組。) 62(顏色號)(例如3,為BYLAYER時無此組。) 38(基面高). (為0時無此組) 39(厚度).(為0時無此組)(以下是該實體的幾何數據) 0(又一個實體開始) 0ENDSEC (實體段結束),4.6.3 DXF文件應用實例1DXF文件實例,圖4-13的DXF文件如下...... 0SECTION 2ENTITIES (實體段開始) 0LINE (切線1) 8 (圖層名) 0 (0層) 10 (起點的X坐標)7.873236 20 (起點的Y坐標)2.782406 30 (起點的Z坐標)0.0 11 (終點的X坐標)3.104196 21 (終點的Y坐標)3.486028 31 (終點的Z坐標)0.0,0 LINE (切線2) 8 (圖層名) 0 (0層) 10 (起點的X坐標) 3.104196 20 (起點的Y坐標) 5.492233 30 (起點的Z坐標) 0.0 11 (終點的X坐標) 7.873236 21 (終點的Y坐標) 6.195854 31 (終點的Z坐標) 0.0,0 LINE (中心線1) 8 (圖層名) 1 (1層) 10 (起點的X坐標) 1.729427 20 (起點的Y坐標) 4.48913 30 (起點的Z坐標) 0.0 11 (終點的X坐標) 10.365687 21 (終點的Y坐標) 4.48013 31 (終點的Z坐標) 0.0,0LINE (中心線2) 0ARC (圓弧1) 8 (圖層名)0 (0層) 10 (圓心的X坐標)3.252194 20 (圓心的Y坐標)4.48913 30 (圓心的Z坐標) 0.0 40 (圓弧半徑) 1.013961 50 (圓弧起始角)95.392841 51 (圓弧終止角)261.607159 0LINE (中心線3)0ARC (圓弧2) 0ENDSEC (實體段結束) 0EOF (DXF文件結束),2.DXF文件的生成及使用DXF文件繪圖 生成DXF文件命令DXFOUT 調用DFX生成DWG文件命令DXFIN,