【摘 要】減速器是原動機和工作機之間的獨立的傳動裝置。基于Flash9.0的Action Script3.0編程環境,可以生成用于直齒輪一級減速器參數化設計的軟件,提高設計效率。本文簡單介紹了Flash9.0 Action Script3.0的基本概念、編程方法和常見交互方式的實現方法,并敘述了基于Action Script3.0的直齒輪一級減速器的設計思路并將典型設計過程的程序代碼列出并注釋,最后演示了程序的運行結果。通過本文設計實現了直齒圓柱齒輪一級減速器的網絡設計,提高了減速器設計速度及精度,具有一定的理論意義和參考價值。
【關鍵詞】減速器;Action Script3.0;交互方式
一、設計思想概述
減速器是原動機和工作機之間獨立的閉式傳動裝置,用來降低轉速和增大轉矩以滿足工作需要。當前的減速器設計體系已經相當成熟與完善,所以我們應該在機械設計實現過程的多樣性上做出創新。即提高設計的效率,有效縮短設計時間,設計過程具有交互性,可視性,以及多媒體功能等。對減速器的參數設計傳統方法是通過查閱機械手冊來進行設計,而對于當今這個信息高度網絡集約化的社會,通過網絡的發布來實現機械的設計是一個不錯的思路,甚至可以通過與數據庫的聯通實現數據的實時更新與共享,最終實現效率的提升是毋庸置疑的。對于目前網頁設計軟件而言,Flash特別適用于創建通過Internet提供的內容,所以通過flash來開發設計基于網頁形式的機械類應用軟件是很好的一個方向。本題目基于Flash9.0的Action Script3.0編程環境,生成用于直齒輪一級減速器參數化設計的軟件,提高設計效率。
二、Flash cs ActionScript3.0概述
ActionScript是針對Flash Player的編程語言,它在flash內容和應用程序中實現了交互性、數據管理以及其它許多功能。在flash創作環境中,我們的程序寫在“動作”面板中,而動作面板,又是與舞臺上可以添加動作的對象相關聯的。Action
Script3.0中可以添加動作的對象有關鍵幀、影片剪輯元件等。ActionScript內部的詞匯在編程環境中都會以藍色表示。動作面板的左半部分將所有的指令列出,可以分門別類地去找到相關指令,如影片剪輯控制、時間軸控制、常用語句等。在flash8.0中單擊 → ,打開組件選擇窗口,選擇自己需要的組件,拖動到舞臺上即可。因為使用到的UI組件屬于Flash的內建類,所以在使用以前需要導入,代碼為://///導入內建類import fl.controls.Button;import fl.controls.List;import fl.controls.
DataGrid;import fl.controls.ProgressBar;import fl.controls.Radio
ButtonGroup;import fl.controls.SliderDirection;import fl.data.DataProvider;import fl.events.ListEvent;import fl.events.Slider
Event;import fl.events.ComponentEvent;import fl.containers.
ScrollPane。
三、減速器設計流程
1.編程前工作。(1)對于機械設計來說,需要考慮數值的精度問題,由于Flash本身只提供整型,和雙浮點精度兩大類,那么在運算數值最后輸出顯示的時候要考慮其數值精度的實用性,那么就要借助其他方法,在場景ddj的第一幀中加入代碼://///四舍五入保留兩位小數/////// function shu(abc:Number){return (Math.round(abc×100))/100;} /////創建一個函數,名字為shu,abc為變量名,使用Math的round方法將abc四舍五入為整數,除以100,最后用return將值返回給其本身。(2)線性插值:所謂線性,即,當設計計算時,所查表格中無對應數據時,有時需要線性插值求出,編程思路為讀入多維數組相鄰的兩組對應數據,求得“k”,然后計算出“y”(本程序中包角修正系數,單根普通V帶基本額定功率P0的確定使用線性插值)。
2.電動機選擇。(1)設計思路。設計步驟:按照傳統設計方法,即設計思路簡單來說為:確定原始數據→確定電動機容量(功率)→確定電動機轉速→選擇電動機型號→確定出總傳動比→分配傳動比→傳動裝置的運動和動力設計。轉換為編程思路:輸入原始數據(單擊 查閱資料)→單擊
→確定電動機容量(功率),轉速,以及可供選擇的電動機型號→選擇電動機型號→顯示總傳動比→輸入帶傳動部分傳動比→分配出減速器部分的傳動比并顯示傳動裝置的運動和動力設計的數據表格。最終設計完成如圖1所示:
(2)部分代碼注釋。//////原始數據部分:life_btn.addEvent
Listener(Event.CHANGE,selectlife);function selectlife(e:Event){ life=life_btn.value;} hour_btn.addEventListener(Event.CHANGE,selecthour);function selecthour(e:Event){ hour=hour_btn.value;} //////確定電動機容量(功率)、電動機轉速部分:ddjjs_btn.addEventListener(MouseEvent.CLICK,zfAdd);function zfAdd(event:MouseEvent):void{var myArrays:Array=new Array();//////變量定義var i:int=0;//////傳動比;var f
:Number=Number(f_txt.text);//////f為運輸帶拉力F;var v:Number=Number(v_txt.text);//////v為運輸帶速度V;var d:Number=Number(d_txt.text);//////d為卷筒直徑D。if((n1<750)(n2>750)){/////////判斷750r/min的轉速是否在允許范圍內for (i=0;i<=12;i++){var gonglv750:Number;gonglv750=
Number(ddj750[i][2]);//////////循環讀取ddj750數組的數據并賦予變量gonglv750//////////if(gonglv750>=p){。myArrays.push({“電動機型號”:ddj750[i][0],“同步轉速\n(r/min)”:ddj750[i][1],“額定功率\n(kW)”:ddj750[i][2],“滿載轉速\n(r/min)”:ddj750[i][3],“堵轉轉矩\n(額定)”:ddj750[i][4],“最大轉矩\n(額定)”:ddj750[i][5]});……。///////////////////////傳動比分配部分//////////////////////// i0_txt.addEventListener(Event.CHANGE,chhd);function chhd(e:Event){var i00:Number=Number(i0_txt.text);……。(3)其他部分。使用類似的設計思路與編程方法,分別設計其余部分參數化設計,不再贅述。
參 考 文 獻
[1]濮良貴.機械設計(第八版)[M].北京:高等教育出版社,2006(5)
[2]陸玉.機械設計課程設計指導書[M].北京:機械工業出版社,2005(10)
[3]朱治國,繆亮.FlashActionScript3.0編程技術[M].北京:清華大學出版社,2008(5)
[4]Adobe公司.Flash9.0 Action Script3.0官方教程.2008(6)