2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  Autocad二次開發(fā)在鋼結(jié)構(gòu)深化設(shè)計(jì)中的應(yīng)用</p><p>  摘要:目前,在廠房等鋼結(jié)構(gòu)的細(xì)化過程中廣泛采用Autocad進(jìn)行繪圖。本文在Autocad基礎(chǔ)上,利用其自帶的擴(kuò)展模塊Autolisp對其進(jìn)行二次開發(fā),在AutoCAD的繪圖環(huán)境中建立零件的數(shù)據(jù)庫。重點(diǎn)介紹了開發(fā)的過程,數(shù)據(jù)的存儲(chǔ)格式,以及與數(shù)據(jù)相關(guān)的操作函數(shù),給出了關(guān)鍵代碼等。 </p><p> 

2、 關(guān)鍵詞: 鋼結(jié)構(gòu)深化設(shè)計(jì) 二次開發(fā)鏈表DCL </p><p>  中圖分類號:TU291 文獻(xiàn)標(biāo)識(shí)碼:A </p><p><b>  前言 </b></p><p>  Autocad是美國歐特克公司開發(fā)的大型繪圖軟件,該軟件因其強(qiáng)大的圖形繪制及圖形編輯功能而廣泛的應(yīng)用于建筑,機(jī)械,化工等各個(gè)行業(yè)。在廠房等鋼結(jié)構(gòu)的深化設(shè)計(jì)過程中,也廣泛采

3、用該軟件進(jìn)行放樣。但是,該軟件屬于通用的繪圖軟件,并非專業(yè)為鋼結(jié)構(gòu)放樣設(shè)計(jì)。通過對其進(jìn)行二次開發(fā),可以在AutoCAD中形成有利于深化設(shè)計(jì)的環(huán)境。如在對鋼結(jié)構(gòu)完成深化設(shè)計(jì)后,經(jīng)常有生成材料明細(xì)表,材料的統(tǒng)計(jì)(如統(tǒng)計(jì)某種型號鋼材的使用量)等工作。以上過程都會(huì)涉及零件信息的錄入、整理、列表,零件圖形的繪圖等的內(nèi)容。由于AutoCAD中沒有相應(yīng)的模塊,人工操作起來費(fèi)時(shí)費(fèi)力,效率低,并且容易出錯(cuò)。解決辦法是,在AutoCAD中建立統(tǒng)一的零件數(shù)據(jù)

4、庫,當(dāng)需要時(shí)可以直接的調(diào)用。 </p><p>  Autolisp 是Autocad自帶的二次開發(fā)軟件。LISP語言具有語法簡單,編寫程序便捷、靈活,數(shù)據(jù)類型豐富等特點(diǎn),適用于大多數(shù)初學(xué)者。利用Autolisp可對Autocad的數(shù)據(jù)庫進(jìn)行修改,也可用于繪制復(fù)雜的圖形。本文利用Autolisp對Autocad進(jìn)行二次開發(fā),在Autocad中形成一個(gè)零件的數(shù)據(jù)庫。以這個(gè)數(shù)據(jù)庫為基礎(chǔ),可以完成零件清單的自動(dòng)生成,零

5、件圖形的自動(dòng)繪制等工作。 </p><p><b>  關(guān)鍵技術(shù) </b></p><p>  Autocad 圖元 </p><p>  在Autocad中,最基本的圖形對象叫圖元,圖元是以圖元表的形式存在于進(jìn)程中。圖元表記錄著圖元的名字、類型、幾何數(shù)據(jù)、圖層、顏色等信息。如直線在內(nèi)存中存儲(chǔ)的格式為:((-1 . )(0 . "LI

6、NE") (330 . ) (5 . "4E6F")(100 . "AcDbEntity")(67 . 0)(410 . "Model")(8 . "0") (100 . "AcDbLine") (10 -14068.7 18786.4 0.0) (11 -2194.93 21807.6 0.0) (210 0.0 0.0 1.

7、0))。其中,代碼8表示圖元位于0圖層,代碼10和11分別給出了直線的起點(diǎn)及終點(diǎn)信息,代碼100表示圖元的類型為直線。關(guān)于各個(gè)組碼所代表的意義,可以在AutoCAD DXF參考手冊查到。通過修改或創(chuàng)建圖元表,可以實(shí)現(xiàn)編輯或生成圖元。 </p><p>  Xrecord數(shù)據(jù) </p><p>  Xrecord是Autocad提供給用戶的另外一種圖元形式,和其他類型的圖元相同,該類型的圖元

8、在內(nèi)存中也是以數(shù)據(jù)表的形式進(jìn)行存儲(chǔ)。但是該類型的數(shù)據(jù)不依附于任何圖形對象,獨(dú)立的存在于當(dāng)前DWG進(jìn)程中。用戶可以根據(jù)自己的需要,借助Xrecord數(shù)據(jù),描述自己需要的數(shù)據(jù)類型。創(chuàng)建這樣的Xrecord需要有兩部分:規(guī)范部分和用戶部分。規(guī)范結(jié)構(gòu)部分,必須是AutoCAD能夠接受的內(nèi)容,一般來說要有對象名和數(shù)據(jù)子集名。例如:(0 . "XRECORD")(100 . "AcDbXrecord") 用戶

9、數(shù)據(jù)部分就比較隨意了,可以是任何VLISP能夠處理的數(shù)據(jù)。為了能夠用函數(shù)建立這些數(shù)據(jù),又能被順利提取和編輯,應(yīng)當(dāng)按照AutoCAD對象數(shù)據(jù)表的結(jié)構(gòu)組建,并按照DXF組碼以及配套的數(shù)據(jù)類型填寫。DXF組碼的可用范圍是1-369,原則上一個(gè)組碼只能出現(xiàn)一次。 </p><p>  AutoCAD詞典對象 </p><p>  AutoCAD詞典對象(AcDbDictionary)是另外一種不依

10、附于任何圖形的圖元對象,Xrecord數(shù)據(jù)必須托付于某個(gè)詞典對象才能存在于進(jìn)程中,因此AutoCAD詞典對象可以看作Xrecord數(shù)據(jù)的集合。和Xrecord數(shù)據(jù)不同,AutoCAD詞典對象沒有用戶數(shù)據(jù)部分,用戶可以創(chuàng)建或根據(jù)名稱找到某個(gè)AutoCAD詞典對象,但是不能加入任何的用戶數(shù)據(jù)。 </p><p><b>  數(shù)據(jù)架構(gòu)的提出 </b></p><p>  鋼

11、結(jié)構(gòu)的生產(chǎn)主要由下料、組立和拼裝等步驟組成,即利用剪板機(jī)、切割機(jī)等將原料(如鋼板、角鋼、工字鋼等)加工成所需規(guī)格后,再到拼裝平臺(tái)上組裝成鋼構(gòu)件。根據(jù)生產(chǎn)的實(shí)際需要,在圖紙完成分解后,要將零件的加工圖、鋼架圖(零件的組裝圖)交由不同的工段。為了便于以后的生產(chǎn),通常要將零件進(jìn)行編號。零件的編號主要由零件號碼及鋼架號碼(零件的歸屬,可以看作零件的集合)組成。根據(jù)兩種數(shù)據(jù)的不同特點(diǎn),零件宜采用Xrecord數(shù)據(jù),鋼架宜采用AutoCAD詞典對象

12、。 </p><p><b>  建立鋼架的詞典。 </b></p><p>  本程序?qū)槔L圖中的每一榀鋼架建立單獨(dú)的Autocad詞典對象,該詞典對象采用鋼架的名稱進(jìn)行命名。不同的鋼架詞典之間采用單向鏈表形式相聯(lián)系,通過在上一個(gè)詞典中記錄鏈表中下一詞典對象的句柄建立鏈表。鏈表的起始單元為Frame_list_start,終止單元為Frame_list_end,鏈表

13、中除了表頭及表尾以外的其余元素均按字母的ASCII碼進(jìn)行排列。 </p><p>  由于Autocad詞典對象本身不具備數(shù)據(jù)擴(kuò)展的功能,鋼架的名稱、數(shù)量,以及指向下一鏈表單元的指針(即下一詞典對象的句柄)均存在于以“index”為索引的Xrecord數(shù)據(jù)中。鏈表的結(jié)構(gòu)如圖一所示。 </p><p><b>  圖 1 </b></p><p>

14、;  建立零件信息的Xrecord數(shù)據(jù) </p><p>  鋼結(jié)構(gòu)加工中的零件一般由各種型鋼(如鋼板、角鋼、槽鋼,工字鋼等)經(jīng)切割、鉆孔等工藝加工而成,因此形狀一般比較簡單,用原料的規(guī)格、零件的長度,零件的厚度等參數(shù)即可完成表述。在本程序中,每個(gè)Xrecord數(shù)據(jù)代表一個(gè)零件。通過對DXF組碼設(shè)定不同的意義,完成零件信息的表述。關(guān)于不同DXF組碼在本程序中代表的意義,可以在圖表一中詳細(xì)的查到。 為了便于零件的查

15、詢、刪除等操作, 不同的零件在Autocad詞典中采用單向鏈表相聯(lián)系。其中表頭元素part_list_start,及表尾元素part_list_end在建立鋼架詞典的時(shí)候同時(shí)建立。指向指針存在于組碼為105的表中。 </p><p><b>  表格 1 </b></p><p>  數(shù)據(jù)類型 代表意義 </p><p>  0 字符串 子類標(biāo)

16、記 </p><p>  1 字符串 零件名稱 </p><p>  2 字符串 材料類型 </p><p>  3 字符串 零件規(guī)格 </p><p>  5 字符串 圖元句柄 </p><p>  40 雙精度浮點(diǎn)值 長度 </p><p>  41 雙精度浮點(diǎn)值 寬度 </p>

17、<p>  42 雙精度浮點(diǎn)值 厚度 </p><p>  60 整數(shù)值 數(shù)量 </p><p>  105 句柄值的字符串 指向指針 </p><p><b>  關(guān)鍵代碼 </b></p><p>  在本程序中,不同的鋼架詞典之間以及不同零件(在同一鋼架中的)之間采用鏈表相互聯(lián)系,因此程序的核心在于鏈

18、表的操作。本文將重點(diǎn)對如何在鏈表中插入、刪除元素進(jìn)行說明。 </p><p>  將新建鋼架詞典加入鏈表中 </p><p>  (defun insert_frame_to_frame_list(obj_name/ )(setq this_beam "frame_list_start")(setq next_beam (get_next_frame_name this

19、_beam))(while (not (or (< obj_name next_beam)(= next_beam"frame_list_end")))(setq this_beam next_beam)(setq next_beam (get_next_frame_name this_beam))) ; 獲取鋼架名稱在鏈表中的位置 </p><p>  (if (= obj_name

20、this_beam)(princ "該鋼架已存在列表中!/n") (prong(seq obj_handel(cdr(assoc5(dictsearch(namedobjdict) obj_name))));獲取鏈表前一元素的句柄(setq next_beam_handel (cdr(assoc 5 (dictsearch (namedobjdict)next_beam))));獲取鏈表后一元素的句柄(change_

21、handel_next obj_name next_beam_handel)(change_handel_next this_beam obj_handel ) ) </p><p><b>  ) </b></p><p><b>  ) </b></p><p>  獲取下一鏈表單元的名稱 </p>&l

22、t;p>  (defun get_next_frame_name(name_of_this / )(vla-get-name(vlax-ename->vla-object(handent (cdr (assoc 105 (dictsearch(cdr (assoc -1 (dictsearch (namedobjdict) name_of_this))) "index" )))) ))) </p&g

23、t;<p><b>  從鏈表中刪除鋼架 </b></p><p>  (defun delete_frame_from_list( obj_name/)(setq x1 "frame_list_start")(setq x(get_next_frame_name x1))(while (not (or (= x obj_name) (= x "f

24、rame_list_end")))(setq x1 x)(setq x(get_next_frame_name x)) ) </p><p>  (if (= x "frame_list_end")(princ"未在列表中找到要?jiǎng)h除的元素!\n")(prong(setq x1_handel_next(get_next_frame_handel x))(change

25、_handel_next x1 x1_handel_next)(dictremove (namedobjdict) x) </p><p><b>  ) ) </b></p><p><b>  ) </b></p><p><b>  建立用戶界面 </b></p><p>

26、;  為了方便用戶建立和修改數(shù)據(jù),本程序采用了對話框的形式。對話框可以采用DCL語言進(jìn)行書寫。由于篇幅有限,關(guān)于對話框的相關(guān)代碼就不在給出。用戶可在對話框中完成鋼架、零件等信息的建立和修改,以及表格的繪制等操作。圖二,和圖三給出了主要的對話框。 </p><p><b>  圖 2 </b></p><p><b>  圖 3 </b></

27、p><p><b>  結(jié)束語 </b></p><p>  本文通過在AutoCAD中建立零件數(shù)據(jù)庫,提出相關(guān)的操作函數(shù),實(shí)現(xiàn)了生成零件的明細(xì)表等其他功能。通過實(shí)踐中的應(yīng)用表明,在使用本程序后,大大提高了數(shù)據(jù)操作的準(zhǔn)確性,提升了工作的效率,并取得良好的經(jīng)濟(jì)效益。 </p><p><b>  參考文獻(xiàn) </b></p&

溫馨提示

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

最新文檔

評論

0/150

提交評論