• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于AUTOLISP語(yǔ)言的自動(dòng)排樣程序設(shè)計(jì)

    2014-04-29 00:00:00王忠川李曉光
    數(shù)字化用戶 2014年10期

    【摘 要】AutoLISP程序語(yǔ)言是AutoCAD的二次開(kāi)發(fā)軟件之一。它應(yīng)用靈活,語(yǔ)法簡(jiǎn)單易學(xué),具有強(qiáng)大的函數(shù)功能及繪圖功能。用戶通過(guò)Auto LISP程序的編寫(xiě)來(lái)強(qiáng)化AutoCAD原有命令或是處理參數(shù)式繪圖,從而實(shí)現(xiàn)大幅度提高繪圖效率的目的?;贏utoLISP程序語(yǔ)言編寫(xiě)的自動(dòng)排樣程序比較全面的展示了AutoLISP語(yǔ)言的特點(diǎn)。并且在鈑金材料數(shù)控切割生產(chǎn)過(guò)程中發(fā)揮巨大作用,能夠最大限度的提高材料利用率及工作效率。

    【關(guān)鍵詞】AutoLISP AutoCAD 二次開(kāi)發(fā) 數(shù)控切割 自動(dòng)排樣 邏輯判斷 陣列

    1 AUTOLISP程序語(yǔ)言特點(diǎn)

    AutoCAD應(yīng)用于機(jī)械設(shè)計(jì)、土木建筑、地理地圖、服裝設(shè)計(jì)等各個(gè)行業(yè)。但往往在應(yīng)對(duì)各行業(yè)相對(duì)獨(dú)特的繪圖需要時(shí)卻力不從心。而Auto LISP就是一種用來(lái)擴(kuò)展AutoCAD功能、定制AutoCAD和開(kāi)發(fā)AutoCAD的程序語(yǔ)言。用戶通過(guò)AutoCAD提供的程序應(yīng)用界面,以AutoCAD為平臺(tái),利用AutoLISP語(yǔ)言發(fā)展特殊的應(yīng)用程序,實(shí)現(xiàn)獨(dú)有繪圖功能。

    相比其他程序語(yǔ)言,Auto LISP具有其鮮明的特點(diǎn):

    語(yǔ)法非常簡(jiǎn)單且風(fēng)格獨(dú)特;

    功能函數(shù)強(qiáng)大,除一般性的功能函數(shù)外,還擁有控制配合AutoCAD的特殊函數(shù),并可以直接調(diào)用執(zhí)行所有AutoCAD的命令;

    撰寫(xiě)的環(huán)境不挑剔,只要一般的窗口文本編輯軟件都適用;

    直譯式程序,不用再作編譯,即寫(xiě)即測(cè),即測(cè)即用,馬上可以在AutoCAD中響應(yīng)效果。

    鈑金材料數(shù)控切割生產(chǎn)中的自動(dòng)排樣程序較為復(fù)雜,比較全面的展現(xiàn)了AutoLISP語(yǔ)言的特點(diǎn)。自動(dòng)排樣程序的設(shè)計(jì)是為了滿足鈑金材料的數(shù)控切割過(guò)程中能夠最大限度的提高材料利用率及工作效率的需要。在自動(dòng)排樣程序中將相對(duì)規(guī)則的零件劃分為圓形、三角形、平行四邊形、梯形四類。它們排樣程序設(shè)計(jì)的思路與方法大同小異,本文以三角形零件的自動(dòng)排樣為例,介紹其程序設(shè)計(jì)的思路與方法。

    2 程序設(shè)計(jì)思路與方法

    2.1排錯(cuò)主程序PAIYANG

    為方便維護(hù)與除錯(cuò),程序共建立了4個(gè)模塊,分別為:排錯(cuò)PAIYANG主程序、數(shù)據(jù)處理DATA子程序、初始化判斷PANDUAN子程序、陣列ARRAY子程序。

    排錯(cuò)PAILIAO主程序中具有進(jìn)行總程序的統(tǒng)籌、調(diào)用功能,另外還具有排錯(cuò)功能。在系統(tǒng)初始化之后,主程序立即進(jìn)行數(shù)據(jù)計(jì)算及邏輯判斷,看材料尺寸是否與零件相匹配。如果不符合排樣的最基本要求則返回系統(tǒng)變量輸入狀態(tài),重新輸入變量進(jìn)行排樣,避免程序死循環(huán)。流程圖見(jiàn)圖1。

    2.2數(shù)據(jù)處理子程序DATA

    數(shù)據(jù)處理DATA子程序主要完成零件圖形集的數(shù)據(jù)讀取和預(yù)處理并輸出,為進(jìn)一步的排樣工作做準(zhǔn)備。圖形預(yù)處理如圖2所示。

    2.3初始化判斷子程序PANDUAN

    程序采用單排法和旋轉(zhuǎn)混合算法計(jì)算出各種排料結(jié)果,并進(jìn)行方案比較。在只采用單排算法時(shí),有兩種排樣結(jié)果,即:橫向排樣與縱向排樣。在材料尺寸和零件尺寸相同的情況下,橫向單排與縱向單排的排樣總數(shù)可能相同也可能不同。程序的方案比較功能會(huì)在這種情況下自動(dòng)的選擇排樣總數(shù)最大、材料利用率較大的一種排樣形式進(jìn)行排樣。另外,在實(shí)際生產(chǎn)過(guò)程中,經(jīng)常會(huì)遇到這樣的情況,就是在進(jìn)行完橫向單排或縱向單排以后,材料一邊的余量還較大,還可以通過(guò)零件圖形編輯轉(zhuǎn)換,在材料余量?jī)?nèi)進(jìn)行再排樣,顯然排樣結(jié)果會(huì)使材料利用率更大些。這就要求單排排樣與旋轉(zhuǎn)混合排樣結(jié)合起來(lái),達(dá)到最佳的排樣結(jié)果,使材料利用率盡可能高。能夠旋轉(zhuǎn)組合排樣是這一程序軟件的主要優(yōu)勢(shì)之一,但也是該程序編制的主要難點(diǎn)之一。程序流程圖見(jiàn)圖3。

    2.4陣列子程序ARRAY

    本段程序采用正排和倒排分別陣列的方式來(lái)組成一個(gè)完整的排樣圖形。首先建立正排和倒排的基圖,然后根據(jù)計(jì)算結(jié)果陣列正排圖形,接著陣列倒排圖形。接下來(lái)對(duì)余量進(jìn)行排樣。在進(jìn)行完方案比較以后,將我們?cè)谇懊孀骱玫乃姆N方向的基圖進(jìn)行選擇,選擇合適的基圖,并按事先算出的基點(diǎn)插入圖形。當(dāng)然,如果算出的余量不足以再排樣,那么這一步省略。然后進(jìn)行余量排樣,陣列選定的基圖。流程圖見(jiàn)圖4。

    從ARRAY子程序流程圖中可以看出,這個(gè)程序斷的邏輯判斷多、程序執(zhí)行的步驟多。但大體上四種排樣過(guò)程大致相同,主要區(qū)別是主次嵌套。

    ARRAY子程序主要進(jìn)行排樣的過(guò)程,這也是該系統(tǒng)的核心部分。程序思想:采用逐次If嵌套、逐次比較排樣的方法。如果排樣總數(shù) amass1為四種狀況下排樣總數(shù)的最大值,則進(jìn)行單排排樣賦值準(zhǔn)備工作。然后先進(jìn)行單排,在單排之前先判斷需陣列的列數(shù)和行數(shù),如果兩者至少有一項(xiàng)大于1則進(jìn)行陣列,否則將不進(jìn)行陣列。在進(jìn)行完單排排樣之后,判斷余量是否可進(jìn)行排樣,如果可以再排樣,則進(jìn)行旋轉(zhuǎn)排樣。在進(jìn)行旋轉(zhuǎn)排樣之前仍需判斷所需陣列的行數(shù)和列數(shù),如果兩者之一大于1則進(jìn)行陣列,否則將不進(jìn)行陣列。如果排樣總數(shù)Amass1不是四種情況下總數(shù)的最大值,則進(jìn)行Amass2 If判斷。依次循環(huán)至最后的Amass4排樣。

    3 程序運(yùn)行實(shí)例

    首先繪制零件圖形,如圖5所示。調(diào)用程序后在“排樣”對(duì)話框中輸入“材料長(zhǎng)度”、“材料寬度”、“圖樣間距”的數(shù)值,并點(diǎn)擊“OK”按鈕,如圖6所示。

    得到排樣圖形及排樣結(jié)果,如圖7、圖8所示。

    4 結(jié)束語(yǔ)

    基于AutoLISP語(yǔ)言的自動(dòng)排樣程序操作簡(jiǎn)單,最大限度提高材料利用率的同時(shí),排樣效率及排樣準(zhǔn)確性都是原始工藝中技師依靠經(jīng)驗(yàn)及簡(jiǎn)單計(jì)算的手工排樣所無(wú)法比擬的。

    參考文獻(xiàn):

    [1]吳永進(jìn),林美櫻.《AutoLISPDCL基礎(chǔ)篇》[M].北京:中國(guó)鐵道出版社,2003.

    [2]藍(lán)屹生.《AutoLISP學(xué)習(xí)指導(dǎo)》[M].北京:中國(guó)鐵道出版社,2003.

    [3]沈旭,宋正和.《AutoCAD2010實(shí)用教程》[M].北京:清華大學(xué)出版社,2011.

    大方县| 巴林左旗| 兴文县| 安化县| 北宁市| 嘉鱼县| 新巴尔虎右旗| 聊城市| 陆良县| 东平县| 孟津县| 穆棱市| 宁蒗| 微山县| 黄冈市| 望江县| 纳雍县| 西青区| 香港 | 图木舒克市| 固原市| 澄迈县| 包头市| 玉山县| 青阳县| 荣昌县| 渭源县| 沅江市| 教育| 青河县| 平湖市| 唐河县| 曲阳县| 鄢陵县| 房山区| 永平县| 武胜县| 枣强县| 牙克石市| 和田市| 日照市|