第一篇:編程感想
編程感想
從C學到C++,就是從面向過程到對象,又從C++到JAVA,就是從靜態語言到動態語言。編程語言的學習無怪乎多寫代碼,多參考,多了解,那些所謂的牛人,又有多牛呢 ? 我想開始時也跟我們剛學時一樣,但人家堅持住了,所以被牛了!編程要養成好的習慣!
下面是我在一篇博文上看到的,很受用,與大家分享 態度篇
1.做實事 不要抱怨,發牢騷,指責他人,找出問題所在,想辦法解決。對問題和錯誤,要勇于承擔。
2.欲速則不達 用小聰明、權宜之計解決問題,求快而不顧代碼質量,會給項目留下要命的死角。
3.對事不對人 就事論事,明智、真誠、虛心地討論問題,提出創新方案。4.排除萬難,奮勇前進 勇氣往往是克服困難的唯一方法。學習篇
5.跟蹤變化 新技術層出不窮并不可怕。堅持學習新技術,讀書,讀技術雜志,參加技術活動,與人交流。要多理解新詞背后的所以然,把握技術大趨勢,將新技術用于產品開發要謹慎。
6.對團隊投資打造學習型團隊,不斷提高兄弟們的平均水平。7.懂得丟棄 老的套路和技術,該丟,就得丟。不要固步自封。
8.打破砂鍋問到底 不斷追問,真正搞懂問題的本質。為什么?應該成為你的口頭禪。9.把握開發節奏 控制好時間,養成好習慣,不要加班。開發流程篇
10.讓客戶做決定 讓用戶在現場,傾聽他們的聲音,對業務最重要的決策應該讓他們說了算。
11.讓設計指導而不是操縱開發 設計是前進的地圖,它指引的是方向,而不是目的本身。設計的詳略程度應該適當。
12.合理地使用技術 根據需要而不是其他因素選擇技術。對各種技術方案進行嚴格地追問,真誠面對各種問題。
13.讓應用隨時都可以發布 通過善用持續集成和版本管理,你應該隨時都能夠編譯、運行甚至部署應用。
14.提早集成,頻繁集成 集成有風險,要盡早盡量多地集成。15.提早實現自動化部署 16.使用演示獲得頻繁反饋 17.使用短迭代,增量發布
18.固定價格就意味著背叛承諾 估算應該基于實際的工作不斷變化。用戶篇 19.守護天使 自動化單元測試是你的守護天使。20.先用它再實現它 測試驅動開發其實是一種設計工具。21.不同環境,就有不同問題 要重視多平臺問題。22.自動驗收測試
23.度量真實的進度 在工作量估算上,不要自欺欺人。24.傾聽用戶的聲音 每一聲抱怨都隱藏著寶貴的真理。編程篇
25.代碼要清晰地表達意圖
代碼是給人讀的,不要耍小聰明。26.用代碼溝通 注釋的藝術。
27.動態地進行取舍 記住,沒有最佳解決方案。各種目標不可能面面俱到,關注對用戶重要的需求。
28.增量式編程 寫一點代碼就構建、測試、重構、休息。讓代碼干凈利落。
29.盡量簡單 寧簡勿繁。如果沒有充足的理由,就不要使用什么模式、原則和特別的技術。30.編寫內聚的代碼 類和組件應該足夠小,任務單一。31.告知,不要詢問 多用消息傳遞,少用函數調用。32.根據契約進行替換 委托往往優于繼承。調試篇
33.記錄問題解決日志)不要在同一地方摔倒兩次。錯誤是最寶貴的財富。34.警告就是錯誤 忽視編譯器的警告可能鑄成大錯。
35.對問題各個擊破
分而治之是計算機科學中最重要的思想之一。但是,要從設計和原型階段就考慮各部分應該能夠很好地分離。
36.報告所有的異常 37.提供有用的錯誤信息
稍微多花一點心思,出錯的時候,將給你帶來極大便利。團隊協作篇
38.定期安排會面時間 常開會,開短會。
39.架構師必須寫代碼
不寫代碼的架構師不是好架構師。好的設計都來自實際編程。編程可以帶來深入的理解。
40.實行代碼集體所有制 讓開發人員在系統不同區域中不同的模塊和任務之間輪崗。41.成為指導者 教學相長。分享能提高團隊的總體能力。
42.讓大家自己想辦法
指引方向,而不是直接提供解決方案。讓每個人都有機會在干中學習。
43.準備好后再共享代碼 不要提交無法編譯或者沒有通過單元測試的代碼!44.做代碼復查 復查對提高代碼質量、減少錯誤極為重要。45.及時通報進展與問題
主動通報,不要讓別人來問你。
第二篇:編程大賽感想
(本人技術一般,所寫只為給新人介紹一下西工大acm如何入門,大牛請無視本貼)
ACM競賽作為大學階段計算機學生的最高榮譽在咱學校竟然不受重視,也沒人提起,讓那些高中轉戰NOIP,IOI的同學寒心不已。其實我們學校成績還是可以的,前年就獲得了合肥賽區的第二名,當然由與高手都在其它賽區,沒有參加決賽的資格,但也說明了只要我們努力就能有成果。但由于其獲獎難度極高,我們學校幾乎是破罐子破摔,根本就不管事。其實是學校的這種心態造成大量潛在人才由于不知道相關信息而大學四年庸庸碌碌迷失方向,所以我來說說吧。(如果想簡單地保研的話就去機器人吧,進了70%國家一等獎,直接保研資格哦)當然想成為高手,想提升自己的能力就參加ACM吧。首先說下參加ACM比賽好處,以及與其它課程的關系: 很多人都說ACM考察面太窄了只是算法罷了,像操作系統,編譯原理,網絡,嵌入式等等都沒考察。
其實當你成為ACM高手的時候會發現這些課的重點難點用的算法你都已經知道了,你再學這些東西就像看小人書一樣了,你會覺得如果讓你去做這些東西你也會這么設計甚至還能加以優化。比如內存分配管理其實就是排序算法的應用而已,PV操作就是設置標志的小技巧而已,編譯原理就是字符串處理而已,路由器的相關算法就是圖論里的東東而已。。因為算法是核心,其它那些只是算法在具體環境下的特定應用罷了。如果說那些東西是套路,那么算法就是內功,而ACM比賽就是內功的檢驗場,你通過了說明你的任督二脈已經打通,你已可縱橫天下了。此時你已成為世界各高校爭相搶奪的人才了。就算沒有進入決賽但內功強了干啥都順手。從本科生階段到博士生階段的的各種面試筆試機試全逃不出acm考察的圈圈。因為難所以價值極高!
對于找工作來說,百度騰訊網易google每年都有類似于ACM的競賽,初賽大概都在五月份到六月份進行。只要進入決賽去他們公司找工作都不用簡歷,直接走綠色通道的哦~你奪得名次后這些公司的崗位就任你挑了,不用簡歷不用面試,求你到他們公司去!
想想看吧:你不用向各大公司投簡歷,而是各大公司像你投他們公司的簡歷了,然后你看都不看把它們都丟到垃圾桶里去!(我時常就在幻想這樣的牛人待遇啊,現在已經大四了悔之晚矣,希望大一的同學努力啊)
再說高數,物理等科目。其實與算法真的沒什么關系。一旦模擬信號變成了離散信號就是算法的天下了,與之相關的數學是組合數學(研究生階段才開,我認為應該大一就開)。主要是為了我們今后的計算機應用,比如各種物理數據的采集處理,物理電路的設計仿真等等,這些都屬于計算機應用范疇,我們學校其實沒有計算機科學專業,有的只是計算機應用與技術專業。有志去1,3系的同學好好學高數,復變,信號與系統這些課吧。當然高數等是常識性知識,不能不知道,這么簡單的東西都學不好就不要搞acm了。接著講正題:
本人剛來時由于不知道如何進校隊而浪費大量時間,學校信息也較為閉塞,到了大三參加了一次也是草草收場,所以希望更多有志的同學早些知道些信息少走彎路。咱學校進校隊其實非常簡單,有兩條路:
第一條路:在學校舉行選拔的時候去參加選拔賽。這個要特別留心,很多陰險的人看了通知后就把通知扯掉的(當年親眼目睹。。),一定要多留心。
第二條路:把usaco前五章的題目做完你就直接去找王琪老師就可以進校隊了。王琪老師會上離散數學和算法分析課,大家留心下。王老師水平不咋樣但人還是很好的,會盡力幫你的哦。ACM競賽與其它競賽的區別就是學生一定比老師強,強很多!(不像咱學校的那些所謂的強項競賽,哼哼)
第二條路顯然是我們的最好選擇。因為一旦你做完了前五章題目什么選拔賽早已不在話下了。usaco是美國的程序設計訓練站,剛開始英語看不懂的話就去nocow看翻譯。acm的題目都是英文的,所以最好看英文的。(學計算機英語極為重要,這東西幾乎是美國一家弄出來的沒辦法)。這個站的特點是題目按學習進程一步步安排,從最簡單的講起,對各種算法分別介紹,題目循序漸進的出現。不像其它OnlineJudge一開始就讓你面對雜亂無章的一對題目。一開始你只能做幾道題,只有你做完了這幾題之后才能解鎖后續的題目。做這套題目還有一個好處就是做過這套題的人特別多,相關分析講解到處都是,相當于有一位經驗豐富的老師給你指引了。
當然做完這套題是很不容易的,用一年時間攻克它吧。如果光看書不做題是絕對不行的,要邊做題邊看書。你會感到強烈的對知識的渴求,而且在應用中你會牢牢記住書上的東西并透徹地了解他們。
首先是語言基礎,先把C語言弄熟來(高中用過PASCLE學C一樣很快的)。C語言書用譚浩強的就可以了,我們的目標只要會用這門語言即可,此階段會寫冒泡排序,斐波那契數列的遞歸法,八皇后,約瑟夫問題(數組版和鏈表版,有興趣看看數學公式版)即可。然后找一本簡單數據結構書看一下(一般都用嚴蔚敏寫的),先把前四章看下,代星星的以及樹和圖以后做題時一塊看。接著學習C++。C++的好處就是STL,一些數據結構如棧,隊列,優先隊列都可以直接調用,一些常用的算法(例如快排)也可直接調用。C++先用幾天看看譚浩強的寫的紅色的那本,把類,構造函數,析構函數,泛型編程,操作符重載等相關概念理解下,譚的書例子非常簡單利于理解,然后看下《ACM程序設計》這本書(藍皮的,北京大學出版社,超簡單的入門基礎書,強烈推薦新手看),基本上STL就會用了。然后備著本《C++ primer》就好了,遇到問題時查查。用一周把《ACM程序設計》上的水題推掉,這時語言功底已經打好了。接著準備一本《算法導論》和一本簡單的國人寫的算法設計與分析,按照usaco上的順序開始算法的學習吧。
其中你會遇到各方面的問題,主要有數論,數據結構,組合數學,計算幾何等方面,帶著問題去圖書館或上網查資料學習吧,效率很高的哦~ 順帶說下,我們學校是先學數據結構再學算法,我認為在學數據結構前先學下算法較好,因為是先有算法
做完五章就去校隊吧,會讓你做烏拉爾大學的OJ,這時再準備本劉汝佳的《算法藝術與信息學競賽》翻翻吧(此書極難,分析超短,只適合高手看)
第三篇:游戲編程感想
游戲編程感想
班 53080907 周杰
首先,通過游戲編程課程的學習,我了解了怎么用我們所學過的知識進行游戲編程,不過對于第一開始應該用什么語言,你有許多種選擇,包括Basic、Pascal、C、C++、Java等等,而且在網上關于游戲制作新手應該選擇哪門語言的討論也很多。推薦選擇C和C++做為開始寫游戲的語言。一些人可能會說這兩種語言對于沒有編程經驗的新手來說有點難度,我不同意這種說法,因為我就是剛開始的也是選擇這兩種語言。另外C/C++在今天是兩種應用范圍最廣的語言,因此你才會更有可能得到更多的編程和學習資源以及其他人的幫助。
其次,如果要進行游戲編程,我們要對我們在大學期間學過的相關知識有個大概的了解,游戲編程設計到經濟學,統籌學,物理學,機器人學,生物學,心理學,人工智能,計算機圖形學,多媒體技術,虛擬現實等等。而且它也是一個團隊的合作才能完成的工作,它所涉及的工作有策劃、程序、美術、音樂等。只有每個方面的工作相互配合達到完美,所設計出來的游戲才是一款經典的游戲作品。
第三,作為游戲編程,它所設計的不單單是一款游戲,如果把它想成僅僅工人們娛樂消遣的工具,那就把游戲定義的有所狹隘。游戲只是人們日常生活中所能接觸到的一部分應用,它更可以應用虛擬現實的技術把這個產品應用到人們生活的方方面面,比如軍事模擬訓練,仿真模擬等等。
最后,不要僅僅是積累知識,用它。除非你用它們,否則你不能真正的知道和理解它們。用你所學的東西制作一個小的Demo。認真的去做書里面每個章節后面留的練習。
盡量玩更多的游戲。這樣做可以給你許多靈感并能幫助你把游戲做的更好一些。這也可以給你枯燥的編程工作減輕一些痛苦。
幫助別人。在教別人或者給別人講解的過程中你將會更加的了解自己,學到很多東西。有始有終。不要陷入“我知道我能完成這個游戲,但是我有更好的方法,因此我要繼續想想我的那個方法。”如果你能完完整整的寫完一個你從一開始要做的游戲,你將會學到非常非常多的東西,而且你也有東西可以證明你不是一個把什么東西都停留在嘴巴上的人。在你成為一個有經驗的游戲程序員之前,請把你要做的游戲更簡單更容易一些,不要貿然的去嘗試寫一些比較大或者很復雜的游戲。
第四篇:如何學習編程
最近看到很多朋友問到如何學習編程這個問題,我想這個問題應該是所有初學者都非常關注的問題了,在論壇上回答了很多也講了很多,但是總是無法讓所有朋友得到一個解答,所以我想寫一下自己的經驗,希望對大家有所幫助,不過在此先聲明,我并非什么高手,我也只是剛剛入門而已,也只是希望通過寫一點個人的體會幫助一些和我遇到相同問題的朋友,高手就免看了,以免班門弄斧。
好了,廢話就不多說了。在學習程序之前,我想大家首先應該對程序員這個行業熟悉一下,更加要對編程的語言以及所涉及到的工具有所了解。因為如何過了解這些是很難去給自己一個明確的目標的。所以首先我想在這里先為大家介紹一下這個行業以及一些相關的內容。
程序員,相信在很多人眼中是一個非常神秘,非常特別又或者說非常有趣的職業。因為在這個行業里面實在出現了太多的英雄,每一個英雄的事跡都足以讓我們熱血沸騰。但是,又有誰知道在這些英雄的背后,藏著多少辛酸,藏著多少的努力。程序員這個行業并非如大家所想象的那樣美好。程序員是一個沒有白天黑夜概念的行業,程序員是一個讓人筋疲力盡的行業。你們看到的是一些英雄的光輝歷史,但是卻忽略了大多數程序員的艱辛。所以在這里我奉勸各位,如果你是為了這個行業充滿傳奇色彩而想加入,如果你是為了這個行業薪水高而想加入,那么請你現在退出吧,因為他不適合你。這個行業需要的是擁有努力、認真、堅持的人。
講到如何學習編程,那么必不可少的就要講到編程語言了,相信大家都知道編程語言有很多種,包括C、C++、BASIC、PASIC、ASP、PHP等等,當中還分為很多不同的領域,所以在學習編程之前一定要為自己定下一個目標,一個自己即將要進入的領域。有些人想進行底層開發,有些人想做網站開發,有些人想做商業軟件開發等等,由于計算機的普及,軟件行業所涉及的領域也就越來越多,一個人是不可能涉及所有的領域的,所以必須在學習之前給自己一個定位,這個是很重要的,如果沒有這個定位的話在未來學習編程的日子里將會很迷茫。
目標的定位當然不能少了工具的因素,因為不同的領域使用的開發工具也不同,在這里想重新再次鄭重的向所有朋友聲明一次,不要把開發工具和開發語言混為一談,語言是編程的基礎,而工具是用來輔助開發的,例如VC、VB、DELPHI、BCB等等。每種工具都有各自的優勢和缺點,至于每種工具的特點我就不再相信講了,如果大家是有心學編程的話,我相信你一定會去看看關于這些工具的具體內容的,呵呵,讓我偷個懶。還有在這里重要提醒一下大家,不要被現在的流行工具所迷惑,學好根本才是最重要
前面大概的準備工作已經做完了,對這個行業了解了,給自己定了一個目標后,接下來當然是全力向這個目標出發了。那該怎么做呢?看了很多朋友的帖子,都講到C語言是程序員必學的語言,如果程序員不學C就不算是真正的程序員,我個人認為這種說法有點偏激,當然,我承認學C是會對你有很大的幫助,但是并非一定要學C,大家之所以這樣說,可能是因為C語言的影響太大了。但是你總不能要那些去學網站開發的人一定要去學C吧,呵呵。其實我個人認為,一開始學什么都無所謂,但是無論學什么,一定要努力和堅持,做不到這兩點,你就注定會是個失敗者。在這里我想講一下學編程最關鍵的問題,就是思想。也許這是個很抽象的概念,但是沒有辦法,編程本身就是個很抽象的東西,呵呵。等你真正領悟到這一點的時候,恭喜你,你已經站在編程的門口了,呵呵,只是門口哦。那么編程的思想又該如何去領悟呢?要領悟其思想,那首先學習語言是必然的,語言是思想的一種體現形式,就像一個人的思想需要語言來表達一樣,所以如果連一門語言都無法掌握的人是無法領悟其思想的。但是對于一個人,如果不經常說話,不經常使用語言,他又如何去使用語言來表達自己的思想呢?編程也一樣,要領悟其精髓,必須先不斷地看,不斷地使用,才能在這種過程中慢慢有所體驗,當然有的人可能快些,有的人可能慢些,但是不管快慢,能夠達到就是進步。
我記得在我仍然迷茫的時候,不知道自己該如何去學,每天就是機械式的看書寫代碼,根本都不知道自己是不是真的懂,但是就是這樣不斷的看不斷的照著書寫,終于有一天,好象突然開竅一樣,一下子就把所有不明白的東西全都弄明白了,這個有點像佛家所說的頓悟,呵呵。我最初以C語言開始學習的,在我開始學C語言到頓悟這一刻,我可以告訴大家,我看C語言的書我一共看了5本不同的版本(不過都是像走馬觀花一樣的看,千萬不要學我),直到第5本看到指針那里,我才真正有種明白的感覺,也許我太笨了,相信大家看一本就夠了,HOHO。自從那一次后,我接著看C++,學習pascal、basic、匯編這些東西,自己感覺都非常容易看懂,可能這就是所謂的一理通百理通的道理吧。呵呵,不過在這里要講一下,上面所說的幾種語言雖然看書都看過了,也看明白了,但是由于很少使用,現在大部分都還給書本了,呵呵。
看到這里,包括我在內,我都感覺到自己很了不起,很厲害了。可惜,只有我自己知道,雖然看了那么多,學得也多,寫得也不少,可是我卻不知道如何運用。來來去去就是寫一些書本上的題目,自己卻感覺像windows那些程序卻不知道如何去寫,不知道該怎么辦,相信很多人都有和我一樣的體會吧,把C語言學了,題目也做了,而且都沒有問題,可是卻不知道如何去做開發,感覺自己學的東西一點用處都沒有。這又是為什么呢?
在這之前,我一直為這個問題煩惱,后來我終于找到了答案,那就是我所學的,所寫的都是DOS應用程序,而我們現在所使用的確實windows操作系統,當然也有使用linux系統的。后來看了一篇別人寫的文章后,我才知道我所學的和實際運用相差太遠了。現在大部分學習編程語言的書籍上的例題都是基于DOS系統開發的,所以我們所寫的程序和windows上所運行的不一樣,這就是造成我們迷茫的主要原因。那該怎么辦呢?那還用問嗎,當然就是去學習windows開發啦。在第一次接觸windows開發的時候,我真的是大吃一驚,這完全和我以前所學的很不一樣,但是又息息相關,如果沒有以前所學的,我根本就看不懂windows開發的內容。在這里給大家簡單介紹一下,windows開發和DOS開發的區別吧。大家都知道,DOS是一個單任務執行系統,也就是說在DOS下只能在一個程序運行完成或者中斷后才能運行其他的程序,而windows是個多任務系統,當然在本質上windows也只能一個時間內執行一個程序,但是由于其利用CPU的運算能力,讓這些微妙的時間讓人無法感覺到,再就是windows是一個圖形界面系統,擁有著良好的用戶界面,不像DOS是個指令界面。所有這一切的區別導致DOS和windows開發上也存在很大的區別。所以現在的程序員首要的任務除了學習語言以外,就是要去學習windows開發機制。如果連這個都不懂,那是肯定開發不出一個好的windows軟件的。在這里向所有朋友重點推薦美國人Charles Perzold所寫的《windows程序設計》第五版,這本書可以說是經典中的經典,學習windows開發必看的書,適合有C語言基礎的朋友看,它有多經典我就不想細講了,總之就是絕對不會讓你失望,呵呵。這本書市場價是160元整,分上下兩冊,如果有的朋友覺得太貴的話,我這里有他的電子版,需要的就找我要吧,隨時歡迎大家找我要這本書,呵呵。
說實話寫到這里,我自己都不知道自己寫了些什么,好象很亂,呵呵,希望大家能夠看得懂吧。看完我介紹的這本書后,而且看懂的話,那么接下來自己該如何走,我相信我就不用再多說了,到那個時候你一定知道自己該如何去學習編程了。上面講了下我個人是如何學習的,當然還有很多細節地方沒有涉及到,不過隨時歡迎朋友們跟我一起交流。而且我現在才發現
上面所寫的是從C語言開始學習的,呵呵,其實我并非要大家向我一樣學習,我只是把自己學習的經過大概講了下,當然還有以后該怎么辦沒有寫,其實我也在摸索中,嘿嘿,我寫了那么多廢話,無非是想要大家明白幾個道理:
第一、首先要給自己定一個明確的目標。
第二、分清楚語言和工具的區別。
第三、把思想放在首位,語言在精不在多,學好了一門語言再去學其他的,就易如反掌了。第四、工具是經常被淘汰的,不要被工具所迷惑,堅定自己的信念。
第五、無論選擇做什么系統開發,首先要去了解這個系統,只有了解了這個系統才能在上面為所欲為。
大概也就差不多了,不全或者寫得不好的地方請指正,個人發覺全是廢話,呵呵,就這么多了吧,歡迎大家跟我一起學習,一起進步,一起交流。當然最后仍然是那句:
努力+堅持=成功
網易16G“郵箱航母”橫空出世!
創紀錄16G超大容量(送6G免費網盤),支持手機郵、通訊錄克隆、圖片簽名、網絡書簽??
第五篇:編程教案
常用編程指令的應用
車削加工編程一般包含X和Z坐標運動及繞Z軸旋轉的轉角坐標C。
(1)快速定位(G00或G0)刀具以點位控制方式從當前所在位置快速移動到指令給出的目標位置。
指令格式:G00 X(U)Z(W);(2)直線插補(G01或G1)
指令格式:G01 X(U)Z(W)F ;
圖1 快速定位 圖2 直線插補
G00 X40.0 Z56.0; G01 X40.0 Z20.1 F0.2;
/絕對坐標,直徑編程; /絕對坐標,直徑編程,切削進給率0.2mm/r G00 U-60.0 W-30 G01 U20.0 W-25.9 F0.2;
/增量坐標,直徑編程 /增量坐標,直徑編程,切削進給率0.2mm/r(3)圓弧插補(G02或G2,G03或G3)1)指令格式: G02 X(U)_Z(W)_I_K_F_ ; G02 X(U)Z(W)R F ;
G03 X(U)_Z(W)_I_K_F_ ; G03 X(U)Z(W)R F ;
2)指令功能: 3)指令說明: ①G02為順時針圓弧插補指令,G03為逆時針圓弧插補指令。圓弧的順、逆方向判斷見圖3左圖,朝著與圓弧所在平面相垂直的坐標軸的負方向看,順時針為G02,逆時針為G03,圖3右圖分別表示了車床前置刀架和后置刀架對圓弧順與逆方向的判斷;
圖3 圓弧的順逆方向
②如圖4,采用絕對坐標編程,X、Z為圓弧終點坐標值;采用增量坐標編程,U、W為圓弧終點相對圓弧起點的坐標增量,R是圓弧半徑,當圓弧所對圓心角為0°~180°時,R取正值;當圓心角為180°~360°時,R取負值。I、K為 圓心在X、Z軸方向上相對圓弧起點的坐標增量(用半徑值表示),I、K為零時可以省略。
圖4 圓弧絕對坐標,相對坐標
圖5 圓弧插補
G02 X50.0 Z30.0 I25.0 F0.3; G03 X87.98 Z50.0 I-30.0 K-40.0 F0.3;
G02 U20.0 W-20.0 I25.0 F0.3; /絕對坐標,直徑編程
G02 X50.Z30.0 R25.0 F0.3; G03 U37.98 W-30.0 I-30.0 K-40.0 F0.3; G02 U20.0 W-20.0 R25.0 F0.3; /相對坐標,直徑編程
(4)主軸轉速設置(S)車床主軸的轉速(r/min)為:
式中υ為圓周切削速度,單位缺省為m/min、D為工件的外徑,單位為mm。
例如,工件的外徑為200mm,要求的切削速度為300m/min,經計算可得
因此主軸轉速應為478r/min,表示為S478。(5)主軸速度控制指令
數控車削加工時,按需要可以設置恒切削速度(例如,為保證車削后工件的表面粗糙度一致,應設置恒切削速度),車削過程中數控系統根據車削時工件不同位置處的直徑計算主軸的轉速。
恒切削速度設置方法如下:G96 S ; 其中S后面數字的單位為r/min。
設置恒切削速度后,如果不需要時可以取消,其方式如下:G97 S ; 其中S后面數字的單位為r/min。
在設置恒切削速度后,由于主軸的轉速在工件不同截面上是變化的,為防止主軸轉速過高而發生危險,在設置恒切削速度前,可以將主軸最高轉速設置在某一個最高值。切削過程中當執行恒切削速度時,主軸最高轉速將被限制在這個最高值。設置方法如下:G50 S ; 其中S的單位為r/min。
圖6 主軸速度控制
例如:在刀具T01切削外形時用G96設置恒切削速度為200m/min,而在鉆頭T02鉆中心孔時用G97取消恒切削速度,并設置主軸轉速為1100r/min。這兩部分的程序頭如下:
G50 S2500 T0101 M08; /G50限定最高主軸轉速為2500r/min;
G96 S200 M03; / G96設置恒切削速度為200m/min,主軸順時針轉動 G00 X48.0 Z3.0; / 快速走到點(48.0,3.0)G01 Z-27.1 F0.3; /車削外形 G00 Ul.0 Z3.0; /快速退回 T0202; /調02號刀具
G97 Sll00 M03; /G97取消恒切削速度,設置主軸轉速為ll00r/min G00 X0.0 Z5.0 M08; /快速走到點(0,5.0),冷卻液打開 G01 Z-5.0 F0.12; /鉆中心孔(6)進給率和進給速度設置指令
在數控車削中有兩種切削進給模式設置方法,即進給率(每轉進給模式)和進給速度(每分鐘進給模式)。
1)進給率,單位為mm/r,其指令為: G99; / 進給率轉換指令,G01 X Z F ; / F的單位為mm/r 2)進給速度,單位為mm/min,其指令為: G98; / 進給速度轉換指令
G01 X Z F ; / F的單位為mm/min
圖7 進給率和進給速度
a:G99 G01 Z-27.1 F0.3;b:G98 G01 Z-10.0 F80;表示進給率為0.3mm/r 表示進給速度為80mm/min CNC系統缺省進給模式是進給率,即每轉進給模式。(7)工件原點設置
工件坐標系的原點有兩種設置方法。
1)用G50指令進行工件原點設置,分以下兩種設置情況:
圖8 工件原點設置 ①坐標原點設置在卡盤端面
如圖8a所示,這種情況下z坐標是正值。工件原點設置在卡盤端面:
G50 X85.Z210.;/* 將刀尖當前位置的坐標值定為工件坐標系中的一點(85.,210.)。②坐標原點設置在零件右端面
如圖8b所示,這種情況下Z坐標值是負值。工件原點設置在工件右端面:G50 X85.0 Z90.0; 則刀尖當前位置即為工件坐標系原點。(8)端面及外圓車削加工
端面及外圓的車削加工要用到插補指令G01。
為正確地編寫數控程序,應在編寫程序前根據工件的情況選擇工件原點。確定好工件原點后,還必須確定刀具的起始點。
編程時還應考慮車削外圓的始點和端面車削的始點,這兩點的確定應結合考慮工件的毛坯情況。如果毛坯余量較大,應進行多次粗車,最后進行一次精車,因而每次的車削始點都不相同。
圖9 確定車削原點
a)工件原點在左端面時 b)工件原點在右端面時 1)工件原點在左端面 o0001 /* 程序編號o0001 N0 G50 X85.0 Z210.0; /* 設置工件原點在左端面 N1 G30 U0 W0; /* 返回第二參考點
N2 G50 S1500 T0101 M08; /* 限制最高主軸轉速為1500r/min,調01號刀具,M08為打開冷卻液
N3 G96 S200 M03; /* 指定恒切削速度為200m/min N4 G00 X40.4 Z153.0; /* 快速走到外圓粗車始點 N5 G01 Z40.2 F0.3; /* 以進給率0.3mm/r車削外圓 N6 X60.4; /* 臺階車削
N7 Z20.0; /*φ60.4mm處長度為20.0mm的一段外圓 N8 G00 X62.0 Z150.2; /* 刀具快速退到點(62.0,150.2)N9 X41.0; /*刀具快速走到點(41.0,150.2)N10 G01 X-1.6; /* 車削右端面
N1l G00 Zl52.0; /* 刀具快速退到點(-1.6,152.0)N12 G30 U0 W0; /* 直接回第二參考點以進行換刀 N13(Finishing); /*精車開始,括號為程序說明
N14 G50 S1500 T0202; /*限制最高主軸轉速為1500r/min,調02號刀具 N15 G96 S250; /* 指定恒切削速度為250m/min N16 G00 X40.0 Z153.0 ;/*快速走到外圓精車始點(40.0,153)N17 G42 G01 Z151.0 F0.15;/*調刀尖半徑補償,右偏 N18 Z40.0; /*φ40.4mm一段外圓的精車 N19 X60.0; /*臺階精車
N20 Z20.0; /*φ60.0mm處長度為20.0mm外圓的精車 N21 G40 G00 X62.0 Z150.0; /*取消刀補 N22 X41.0; /*刀具快速走到點(41.0,150.0)N23 G41 G01 X40.0; /*調刀尖半徑補償,左偏 N24 G01 X-1.6; /*精車右端面
N25 G40 G00 Zl52.0 M09; /*取消刀補,切削液關
N26 G30 U0 W0 M05; /*返回第二參考點,主軸停止 N27 M30; /*程序結束 2)工件原點在右端面:工件原點設置在右端面與設置在左端面的區別僅在于Z坐標為負值,程序編寫過程完全相同。O0002 ; /* 程序編號
N0 G50 X85.0 Z90.0 /* 設置工件原點在右端面 N2 G30 U0 W0; /* 返回第二參考點
N4 G50 S1500 T0101 M08; /* 限制最高主軸轉速 N6 G96 S200 M03; /* 指定恒切削速度為 200m/min,主軸逆時針旋轉
N8 G00 X30.4 Z3.0; /*快速走到點(30.4,3.0)N10 G01 W-33.0 F0.3; /*以進給率0.3mm/r粗車φ30.4處外圓 N12 U30.0 W-50.0; /*粗車錐面
N14 W-10.0; /*粗車φ60.4mm處長度為10的一段外圓 N16 G00 Ul.6 W90.2;/*刀具快速走到點(62.0,0.2)N18 U-31.0; /*刀具快速走到點(3l,0.2)N20 G01 U-32.6; /*粗車端面
N22 G00 W2.0; /*刀具快速走到點(-1.6,2)N24 G30 U0 W0; /*返回第二參考點 N26(Finishing); /*精車開始
N28 G50 S1500 T0202;/*設置主軸最高轉速1500r/min,調2號刀具 N30 G96 S250; /* 指定恒切削速度為250m/min N32 G00 X30.0 Z3.0;/*刀具快速走到精車始點(30.0,3.0)N34 G42 G01 W-2.0 F0.15;/*調刀尖半徑補償,右偏 N36 W-31.0; /*精車ф30.4mm處外圓 N38 U30.0 W-50.0; /*精車錐面
N40 W-10.0; /*精車ф60.0mm處外圓
N42 G40 G00 U2.0 W90.0; /*取消刀補,刀具快速走到點(62,0.0)N44 U-31.0; /*刀具快速走到點(31,0.0)N46 G41 G01 U-1.0; /*調刀尖半徑補償,左偏
N48 G01 U-32.6; /*精車端面
N50 G40 G00 W2.0 M09; /*取消刀補,刀具快速走到點(1.6,2.0)N52 G30 U0 W0 M30; /*返回參考點,程序結束 實例:
如圖10所示零件
圖10 數控車削綜合編程實例
N0050 G01 X32 Z0;N0110 G02 X16 Z-15 R2;N0060 G01 X-0.5;N0120 G01 X20;
N0070 G00 Z1;N0130 G01 Z35;N0080 G00 X10;N0140 X26;N0090 G01 X12 Z1;N0150 Z50;N0100 G01 X12 Z1;N0160 X32;為1500r/min,調1號刀具,M08為打開冷卻液在這種情況下,如果設置指令寫成: G50 X0 Z0;
G02、G03指令表示刀具以F進給速度從圓弧起點向圓弧終點進行圓弧插補。刀具以一定的進給速度從當前所在位置沿直線移動到指令給出的目標位置。
2.循環加工指令
當車削加工余量較大,需要多次進刀切削加工時,可采用循環指令編寫加工程序,這樣可減少程序段的數量,縮短編程時間和提高數控機床工作效率。根據刀具切削加工的循環路線不同,循環指令可分為單一固定循環指令和多重復合循環指令。(1)單一固定循環指令
對于加工幾何形狀簡單、刀具走刀路線單一的工件,可采用固定循環指令編程,即只需用一條指令、一個程序段完成刀具的多步動作。固定循環指令中刀具的運動分四步:進刀、切削、退刀與返回。
1)外圓切削循環指令(G90)
指令格式 : G90 X(U)_ Z(W)_ R_ F_ 指令功能: 實現外圓切削循環和錐面切削循環。
刀具從循環起點按圖11與圖12所示走刀路線,最后返回到循環起點,圖中虛線表示按R快速移動,實線表示按F指定的工件進給速度移動。
圖11 外圓切削循環
圖12 錐面切削循環
指令說明: ① X、Z 表示切削終點坐標值;
② U、W 表示切削終點相對循環起點的坐標分量;
③ R 表示切削始點與切削終點在X軸方向的坐標增量(半徑值),外圓切削循環時R為零,可省略;
④F表示進給速度。例題 如圖13所示,運用外圓切削循環指令編程。
G90 X40 Z20 F30
A-B-C-D-A X30
A-E-F-D-A X20
A-G-H-D-A
圖13 外圓切削循環例題
例題 如圖14所示,運用錐面切削循環指令編程。
G90 X40 Z20 R-5 F30 A-B-C-D-A X30
A-E-F-D-A X20
A-G-H-D-A
圖14 錐面切削循環例題
2)端面切削循環指令(G94)
指令格式: G94 X(U)_ Z(W)_ R_ F_ 指令功能: 實現端面切削循環和帶錐度的端面切削循環。
刀具從循環起點,按圖15與圖16所示走刀路線,最后返回到循環起點,圖中虛線表示按R快速移動,實線按F指定的進給速度移動。
圖15 端面切削循環 圖16 帶錐度的端面切削循環
① X、Z表示端平面切削終點坐標值;
② U、W表示端面切削終點相對循環起點的坐標分量;
③ R 表示端面切削始點至切削終點位移在Z軸方向的坐標增量,端面切削循環時R為零,可省略;
④ F表示進給速度。
例題: 如圖17所示,運用端面切削循環指令編程。
G94 X20 Z16 F30
A-B-C-D-A Z13
A-E-F-D-A Z10
A-G-H-D-A
圖17 端面切削循環例題 圖18 帶錐度的端面切削循環例題
例題: 如圖18所示,運用帶錐度端面切削循環指令編程。
G94 X20 Z34 R-4 F30
A-B-C-D-A Z32
A-E-F-D-A Z29
A-G-H-D-A(2)多重復合循環指令(G70——G76)運用這組G代碼,可以加工形狀較復雜的零件,編程時只須指定精加工路線、徑向軸向精車留量和粗加工背吃刀量,系統會自動計算出粗加工路線和加工次數,因此編程效率更高。
在這組指令中,G71、G72、G73是粗車加工指令,G70是G71、G72、G73粗加工后的精加工指令,G74 是深孔鉆削固定循環指令,G75 是切槽固定循環指令,G76是螺紋加工固定循環指令。
1)外圓粗加工復合循環(G71)指令格式 : G71 UΔd Re G71 Pns Qnf UΔu WΔw Ff Ss Tt
指令功能: 切除棒料毛坯大部分加工余量,切削是沿平行Z軸方向進行,如圖19所示。A為循環起點,A-A'-B為精加工路線。
圖19 外圓粗加工復合循環 圖20 端面粗加工復合循環 指令說明:①Δd表示每次切削深度(半徑值),無正負號; ② e表示退刀量(半徑值),無正負號;
③ ns表示精加工路線第一個程序段的順序號; ④ nf表示精加工路線最后一個程序段的順序號;
⑤ Δu表示X方向的精加工余量,直徑值;
例題 :如圖21所示,運用外圓粗加工循環指令編程。
圖21 外圓粗加工復合循環例題 N010 G50 X150 Z100 N020 G00 X41 Z0 N030 G71 U2 R1 N040 G71 P50 Q120 U0.5 W0.2 F100 N050 G01 X0 Z0 N060 G03 X11 W-5.5 R5.5 N070 G01 W-10 N080 X17 W-10 N090 W-15 N100 G02 X29 W-7.348 R7.5 N110 G01 W-12.652 N120 X41 N130 G70 P50 Q120 F30
2)端面粗加工復合循環(G72)指令格式: G72 WΔd Re
G72 Pns Qnf UΔu WΔw Ff Ss Tt
指令功能: 除切削是沿平行X軸方向進行外,該指令功能與G71相同,如圖20所示。指令說明 :
Δd、e、ns、nf、Δu、Δw的含義與G71相同。例題:如圖22,運用端面粗加工循環指令編程。
圖22 端面粗加工復合循環例題 圖23 固定形狀切削復合循環 N010 G50 X150 Z100 N020 G00 X41 Z1 N030 G72 W1 R1 N040 G72 P50 Q80 U0.1 W0.2 F100 N050 G00 X41 Z-31 N060 G01 X20 Z-20 N070 Z-2 N080 X14 Z1 N090 G70 P50 Q80 F30 3)固定形狀切削復合循環(G73)指令格式: G73 UΔi WΔk Rd G73 Pns Qnf UΔu WΔw Ff Ss Tt
指令功能:適合加工鑄造、鍛造成形的一類工件,見圖23所示。指令說明: Δi 表示X軸向總退刀量(半徑值); ΔK 表示Z軸向總退刀量; d 表示循環次數;
ns 表示精加工路線第一個程序段的順序號; nf 表示精加工路線最后一個程序段的順序號; Δu 表示X方向的精加工余量(直徑值); Δw 表示Z方向的精加工余量。
①固定形狀切削復合循環指令的特點:
a.刀具軌跡平行于工件的輪廓,故適合加工鑄造和鍛造成形的坯料;b.背吃刀量分別通過X軸方向總退刀量Δi和Z軸方向總退刀量ΔK除以循環次數d求得;c.總退刀量Δi與ΔK值的設定與工件的切削深度有關。
②使用固定形狀切削復合循環指令,首先要確定換刀點、循環點A、切削始點A’和切削終點B的坐標位置。分析上圖,A點為循環點,A’→B是工件的輪廓線,A→A’→B為刀具的精加工路線,粗加工時刀具從A點后退至C點,后退距離分別為Δi+Δu /2,Δk+Δw,這樣粗加工循環之后自動留出精加工余量Δu /
2、Δw。
③順序號ns至nf之間的程序段描述刀具切削加工的路線。例題: 如圖14所示,運用固定形狀切削復合循環指令編程。
圖24 固定形狀切削復合循環例題 圖25 復合固定循環舉例
N010 G50 X100 Z100 N020 G00 X50 Z10 N030 G73 U18 W5 R10 N040 G73 P50 Q100 U0.5 W0.5 F100 N050 G01 X0 Z1 N060 G03 X12 W-6 R6 N070 G01 W-10 N080 X20 W-15 N090 W-13 N100 G02 X34 W-7 R7 N110 G70 P50 Q100 F30 4)精車復合循環(G70)指令格式: G70 Pns Qnf
指令功能:用G71、G72、G73指令粗加工完畢后,可用精加工循環指令,使刀具進行A-A`-B的精加工,(如圖24)
指令說明:
ns表示指定精加工路線第一個程序段的順序號; nf表示指定精加工路線最后一個程序段的順序號;
G70~G73循環指令調用N(ns)至N(nf)之間程序段,其中程序段中不能調用子程序。5)復合固定循環舉例(G71與G70編程)
加工圖25所示零件,其毛坯為棒料。工藝設計參數為:粗加工時切深為7mm,進給速度0.3mm/r,主軸轉速500r/min;X向(直徑上)精加工余量為4 mm,z向精加工余量為2mm,進給速度為0.15mm/r,主軸轉速800mm/min。程序設計如下: N01 G50 X200.0 Z220.0;N02 G00 X160.0 Z180.0 M03 S800;N03 G71 P04 Q10 U4.0 W2.0 D7.0 F0.3 S500;N04 G00 X40.0 S800;N05 G01 W-40.0 F0.15;N06 X60.0 W-30.0;N07 W-20.0;N08 X100.0 W-10.0;N09 W-20.0;N10 X140.0 W-20.0;N11 G70 P04 Q10;N12 G00 X200.0 Z220.0;N13 M05;N14 M30;3.螺紋加工自動循環指令
(1)單行程螺紋切削指令G32(G33,G34)指令格式 : G32 X(U)_ Z(W)_ F_
指令功能:切削加工圓柱螺紋、圓錐螺紋和平面螺紋。指令說明:
格式中的X(U)、Z(W)為螺紋中點坐標,F為以螺紋長度L給出的每轉進給率。L表示螺紋導程,對于圓錐螺紋(圖26),其斜角α在45°以下時,螺紋導程以Z軸方向指定;斜角α在45°~90°時,以X軸方向指定。
①圓柱螺紋切削加工時,X、U值可以省略,格式為: G32 Z(W)_ F _ ; ②端面螺紋切削加工時,Z、W值可以省略,格式為: G32 X(U)_ F_;
③螺紋切削應注意在兩端設置足夠的升速進刀段δ1和降速退刀段δ2,即在程序設計時,應將車刀的切入、切出、返回均應編入程序中。
圖26 螺紋切削 圖27 螺紋切削應用 螺紋切削例題: 如圖27所示,走刀路線為A-B-C-D-A,切削圓錐螺紋,螺紋導程為4mm , δ1 = 3mm,δ2 = 2mm,每次背吃刀量為1mm,切削深度為2mm。G00 X16 G32 X44 W-45 F4 G00 X50 W45 X14 G32 X42 W-45 F4 G00 X50 W45(2)螺紋切削循環指令(G92)
指令格式 : G92 X(U)_ Z(W)_ R_ F_ 指令功能: 切削圓柱螺紋和錐螺紋,刀具從循環起點,按圖28與圖29所示走刀路線,最后返回到循環起點,圖中虛線表示按R快速移動,實線按F指定的進給速度移動。
圖28 切削圓柱螺紋 圖29 切削錐螺紋 指令說明:
①X、Z表示螺紋終點坐標值;②U、W表示螺紋終點相對循環起點的坐標分量;
③R表示錐螺紋始點與終點在X軸方向的坐標增量(半徑值),圓柱螺紋切削循環時R為零,可省略;
④F表示螺紋導程。
例題: 如圖30所示,運用圓柱螺紋切削循環指令編程。
圖30 切削圓柱螺紋例題 圖31 切削錐螺紋例題 G50 X100 Z50 G97 S300 T0101 M03 G00 X35 Z3 G92 X29.2 Z-21 F1.5 X28.6 X28.2 X28.04 G00 X100 Z50 T0000 M05 M02
例題 : 如圖31所示,運用錐螺紋切削循環指令編程。G50 X100 Z50 G97 S300 T0101 M03 G00 X80 Z2 G92 X49.6 Z-48 R-5 F2 X48.7 X48.1 X47.5 X47.1 X47 G00 X100 Z50 T0000 M05 M02
(3)螺紋切削復合循環(G76)
指令格式 : G76 Pm r a QΔdmin Rd G76 X(U)_ Z(W)_Ri Pk QΔd Ff
指令功能:該螺紋切削循環的工藝性比較合理,編程效率較高,螺紋切削循環路線及進刀方法如圖32所示。
圖32 螺紋切削復合循環路線及進刀法 指令說明:
②r表示斜向退刀量單位數,或螺紋尾端倒角值,在0.0f—9.9f之間,以0.1f為一單位,(即為0.1的整數倍),用00—99兩位數字指定,(其中f為螺紋導程); ③a表示刀尖角度;從80°、60°、55°、30°、29°、0°六個角度選擇;
④Δdmin:表示最小切削深度,當計算深度小于Δdmin,則取Δdmin作為切削深度; ⑤d:表示精加工余量,用半徑編程指定;Δd :表示第一次粗切深(半徑值); ⑥X、Z:表示螺紋終點的坐標值; ⑦U:表示增量坐標值; ⑧W:表示增量坐標值;
⑨I:表示錐螺紋的半徑差,若I=0,則為直螺紋; ⑩k:表示螺紋高度(X方向半徑值); G76螺紋車削實例
圖33所示為零件軸上 的一段直螺紋,螺紋高度為3.68,螺距為6,螺紋尾端倒角為1.1L,刀尖角為60°,第一次車削深度1.8,最小車削深度0.1,精車余量0.2,精車削次數1次,螺紋車削前先精車削外圓柱面,其數控程序如下:
圖33 螺紋切削多次循環G76指令編程實例 O0028 /程序編號
N0 G50 X80.0 Z130.0;/設置工件原點在左端面 N2 G30 U0 W0;/返回第二參考點
N4 G96 S200 T0101 M08 M03;/指定切削速度為200m/min,調外圓車刀 N6 G00 X68.0 Z132.0;/快速走到外圓車削起點(68.0,132.0)N7 G42 G01 Z130.0 F0.2;N8 Z29.0 F0.2;/外圓車削 N9 G40 G00 U10.0;N10 G30 U0 W0;N12 G97 S800 T0202 M08 M03;/取消恒切削速度,指定主軸轉速800r/min,調螺紋車刀 N14 G00 X80.0 Z130.0;/快速走到螺紋車削循環始點(80.0,130.0)N16 G76 P011160 Q0.1 R0.2;/循環車削螺紋 N18 G76 X60.64 Z25.0 P3.68 Q1.8 F6.0;N20 G30 U0 W0 M09;N22 M30;①m表示精車重復次數,從1—99;