❶ 零基礎怎麼當程序員
做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和java是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C++編寫。
程序員所需的技能
能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,CBuilder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。
另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
當前主流的操作系統是Windows,linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。
Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。
❷ 要成為一名專業的程序員,從零開始需要怎麼一步步來比較好,要把最底層的先學精通嗎(個人認為)求學長
前言
你是否覺得自己從學校畢業的時候只做過小玩具一樣的程序?走入職場後哪怕沒有什麼經驗也可以把以下這些課外練習走一遍(朋友的抱怨:學校課程總是從理論出發,作業項目都看不出有什麼實際作用,不如從工作中的需求出發)
建議:
不要亂買書,不要亂追新技術新名詞,基礎的東西經過很長時間積累而且還會在未來至少10年通用。
回顧一下歷史,看看歷史上時間線上技術的發展,你才能明白明天會是什麼樣。
一定要動手,例子不管多麼簡單,建議至少自己手敲一遍看看是否理解了里頭的細枝末節。
一定要學會思考,思考為什麼要這樣,而不是那樣。還要舉一反三地思考。
註:你也許會很奇怪為什麼下面的東西很偏Unix/Linux,這是因為我覺得Windows下的編程可能會在未來很沒有前途,原因如下:
現在的用戶界面幾乎被兩個東西主宰了,1)Web,2)移動設備iOS或Android。Windows的圖形界面不吃香了。
越來越多的企業在用成本低性能高的Linux和各種開源技術來構架其系統,Windows的成本太高了。
微軟的東西變得太快了,很不持久,他們完全是在玩弄程序員。詳情參見《Windows編程革命史》
所以,我個人認為以後的趨勢是前端是Web+移動,後端是Linux+開源。開發這邊基本上沒Windows什麼事。
啟蒙入門
1、 學習一門腳本語言,例如python/Ruby
可以讓你擺脫對底層語言的恐懼感,腳本語言可以讓你很快開發出能用得上的小程序。實踐項目:
處理文本文件,或者csv (關鍵詞 python csv, python open, python sys) 讀一個本地文件,逐行處理(例如 word count,或者處理log)
遍歷本地文件系統 (sys, os, path),例如寫一個程序統計一個目錄下所有文件大小並按各種條件排序並保存結果
跟資料庫打交道 (python sqlite),寫一個小腳本統計資料庫里條目數量
學會用各種print之類簡單粗暴的方式進行調試
學會用Google (phrase, domain, use reader to follow tech blogs)
為什麼要學腳本語言,因為他們實在是太方便了,很多時候我們需要寫點小工具或是腳本來幫我們解決問題,你就會發現正規的編程語言太難用了。
2、 用熟一種程序員的編輯器(不是IDE) 和一些基本工具
Vim / Emacs / Notepad++,學會如何配置代碼補全,外觀,外部命令等。
Source Insight (或 ctag)
使用這些東西不是為了Cool,而是這些編輯器在查看、修改代碼/配置文章/日誌會更快更有效率。
3、 熟悉Unix/Linux Shell和常見的命令行
如果你用windows,至少學會用虛擬機里的linux, vmware player是免費的,裝個Ubuntu吧
一定要少用少用圖形界面。
學會使用man來查看幫助
文件系統結構和基本操作 ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …
學會使用一些文本操作命令 sed/awk/grep/tail/less/more …
學會使用一些管理命令 ps/top/lsof/netstat/kill/tcpmp/iptables/dd…
了解/etc目錄下的各種配置文章,學會查看/var/log下的系統日誌,以及/proc下的系統運行信息
了解正則表達式,使用正則表達式來查找文件。
對於程序員來說Unix/Linux比Windows簡單多了。(參看我四年前CSDN的博文《其實Unix很簡單》)學會使用Unix/Linux你會發現圖形界面在某些時候實在是太難用了,相當地相當地降低工作效率。
4、 學習Web基礎(HTML/CSS/JS) + 伺服器端技術 (LAMP)
未來必然是Web的世界,學習WEB基礎的最佳網站是W3School。
學習HTML基本語法
學習CSS如何選中HTML元素並應用一些基本樣式(關鍵詞:box model)
學會用 Firefox + Firebug 或 chrome 查看你覺得很炫的網頁結構,並動態修改。
學習使用Javascript操縱HTML元件。理解DOM和動態網頁(Dynamic HTML: The Definitive Reference, 3rd Edition - O'Reilly Media) 網上有免費的章節,足夠用了。或參看 DOM 。
學會用 Firefox + Firebug 或 chrome 調試Javascript代碼(設置斷點,查看變數,性能,控制台等)
在一台機器上配置Apache 或 Nginx
學習php,讓後台PHP和前台HTML進行數據交互,對伺服器相應瀏覽器請求形成初步認識。實現一個表單提交和反顯的功能。
把PHP連接本地或者遠程資料庫 MySQL(MySQL 和 SQL現學現用夠了)
跟完一個名校的網路編程課程(例如:http://www.stanford.e/~ouster/cgi-bin/cs142-fall10/index.php ) 不要覺得需要多於一學期時間,大學生是全職一學期選3-5門課,你業余時間一定可以跟上
學習一個javascript庫(例如jQuery 或 ExtJS)+ Ajax (非同步讀入一個伺服器端圖片或者資料庫內容)+JSON數據格式。
HTTP: The Definitive Guide 讀完前4章你就明白你每天上網用瀏覽器的時候發生的事情了(proxy, gateway, browsers)
做個小網站(例如:一個小的留言板,支持用戶登錄,Cookie/Session,增、刪、改、查,上傳圖片附件,分頁顯示)
買個域名,租個空間,做個自己的網站。
進階加深
1、 C語言和操作系統調用
重新學C語言,理解指針和內存模型,用C語言實現一下各種經典的演算法和數據結構。推薦《計算機程序設計藝術》、《演算法導論》和《編程珠璣》。
學習(麻省理工免費課程)計算機科學和編程導論
學習(麻省理工免費課程)C語言內存管理
學習Unix/Linux系統調用(Unix高級環境編程),,了解系統層面的東西。
用這些系統知識操作一下文件系統,用戶(實現一個可以拷貝目錄樹的小程序)
用fork/wait/waitpid寫一個多進程的程序,用pthread寫一個多線程帶同步或互斥的程序。多進程多進程購票的程序。
用signal/kill/raise/alarm/pause/sigprocmask實現一個多進程間的信號量通信的程序。
學會使用gcc和gdb來編程和調試程序(參看我的《用gdb調試程序》)
學會使用makefile來編譯程序。(參看我的《跟我一起寫makefile》)
IPC和Socket的東西可以放到高級中來實踐。
學習Windows SDK編程(Windows 程序設計 ,MFC程序設計)
寫一個窗口,了解WinMain/WinProcere,以及Windows的消息機制。
寫一些程序來操作Windows SDK中的資源文件或是各種圖形控制項,以及作圖的編程。
學習如何使用MSDN查看相關的SDK函數,各種WM_消息以及一些常式。
這本書中有很多常式,在實踐中請不要照抄,試著自己寫一個自己的常式。
不用太多於精通這些東西,因為GUI正在被Web取代,主要是了解一下Windows 圖形界面的編程。@virushuo 說:「 我覺得GUI確實不那麼熱門了,但充分理解GUI工作原理是很重要的。包括移動設備開發,如果沒有基礎知識仍然很吃力。或者說移動設備開發必須理解GUI工作,或者在win那邊學,或者在mac/iOS上學」。
2、學習Java
Java 的學習主要是看經典的Core Java 《Java 核心技術編程》和《Java編程思想》(有兩卷,我僅鏈了第一卷,足夠了,因為Java的圖形界面了解就可以了)
學習JDK,學會查閱Java API Doc Java Platform SE 6
了解一下Java這種虛擬機語言和C和Python語言在編譯和執行上的差別。從C、Java、Python思考一下「跨平台」這種技術。
學會使用IDE Eclipse,使用Eclipse 編譯,調試和開發Java程序。
建一個Tomcat的網站,嘗試一下JSP/Servlet/JDBC/MySQL的Web開發。把前面所說的那個PHP的小項目試著用JSP和Servlet實現一下。
3、Web的安全與架構
學習HTML5,網上有很多很多教程,以前酷殼也介紹過很多,我在這里就不羅列了。
學習Web開發的安全問題(參考新浪微博被攻擊的這個事,以及Ruby的這篇文章)
學習HTTP Server的rewrite機制,Nginx的反向代理機制,fast-cgi(如:PHP-FPM)
學習Web的靜態頁面緩存技術。
學習Web的非同步工作流處理,數據Cache,數據分區,負載均衡,水平擴展的構架。
實踐任務:
使用HTML5的canvas 製作一些Web動畫。
嘗試在前面開發過的那個Web應用中進行SQL注入,JS注入,以及XSS攻擊。
把前面開發過的那個Web應用改成構造在Nginx + PHP-FPM + 靜態頁面緩存的網站
4、學習關系型資料庫
你可以安裝MSSQLServer或MySQL來學習資料庫。
學習教科書里資料庫設計的那幾個範式,1NF,2NF,3NF,……
學習資料庫的存過,觸發器,視圖,建索引,游標等。
學習SQL語句,明白表連接的各種概念(參看《SQL Join的圖示》)
學習如何優化資料庫查詢(參看《MySQL的優化》)
實踐任務:設計一個論壇的資料庫,至少滿足3NF,使用SQL語句查詢本周,本月的最新文章,評論最多的文章,最活躍用戶。
5、一些開發工具
學會使用SVN或Git來管理程序版本。
學會使用JUnit來對Java進行單元測試。
學習C語言和Java語言的coding standard 或 coding guideline。(我N年前寫過一篇關C語言非常簡單的文章——《編程修養》,這樣的東西你可以上網查一下,一大堆)。
推薦閱讀《代碼大全》《重構》《代碼整潔之道》
高級深入
1、C++ / Java 和面向對象
我個人以為學好C++,Java也就是舉手之勞。但是C++的學習曲線相當的陡。不過,我覺得C++是最需要學好的語言了。參看兩篇趣文「C++學習信心圖」 和「21天學好C++」
學習(麻省理工免費課程)C++面向對象編程
讀我的 「如何學好C++」中所推薦的那些書至少兩遍以上(如果你對C++的理解能夠深入到像我所寫的《C++虛函數表解析》或是《C++對象內存存局(上)(下)》,或是《C/C++返回內部靜態成員的陷阱》那就非常不錯了)
然後反思為什麼C++要干成這樣,Java則不是?你一定要學會對比C++和Java的不同。比如,Java中的初始化,垃圾回收,介面,異常,虛函數,等等。
實踐任務:
用C++實現一個BigInt,支持128位的整形的加減乘除的操作。
用C++封裝一個數據結構的容量,比如hash table。
用C++封裝並實現一個智能指針(一定要使用模板)。
《設計模式》必需一讀,兩遍以上,思考一下,這23個模式的應用場景。主要是兩點:1)鍾愛組合而不是繼承,2)鍾愛介面而不是實現。(也推薦《深入淺出設計模式》)
實踐任務:
使用工廠模式實現一個內存池。
使用策略模式製做一個類其可以把文本文件進行左對齊,右對齊和中對齊。
使用命令模式實現一個命令行計算器,並支持undo和redo。
使用修飾模式實現一個酒店的房間價格訂價策略——旺季,服務,VIP、旅行團、等影響價格的因素。
學習STL的用法和其設計概念 - 容器,演算法,迭代器,函數子。如果可能,請讀一下其源碼。
實踐任務:嘗試使用面向對象、STL,設計模式、和WindowsSDK圖形編程的各種技能
做一個貪吃蛇或是俄羅斯方塊的游戲。支持不同的級別和難度。
做一個文件瀏覽器,可以瀏覽目錄下的文件,並可以對不同的文件有不同的操作,文本文件可以打開編輯,執行文件則執行之,mp3或avi文件可以播放,圖片文件可以展示圖片。
學習C++的一些類庫的設計,如: MFC(看看候捷老師的《深入淺出MFC》) ,Boost, ACE, CPPUnit,STL (STL可能會太難了,但是如果你能了解其中的設計模式和設計那就太好了,如果你能深入到我寫的《STL string類的寫時拷貝技術》那就非常不錯了,ACE需要很強在的系統知識,參見後面的「加強對系統的了解」)
Java是真正的面向對象的語言,Java的設計模式多得不能再多,也是用來學習面向對象的設計模式的最佳語言了(參看Java中的設計模式)。
推薦閱讀《Effective Java》 and 《Java解惑》
學習Java的框架,Java的框架也是多,如Spring, Hibernate,Struts 等等,主要是學習Java的設計,如IoC等。
Java的技術也是爛多,重點學習J2EE架構以及JMS, RMI, 等消息傳遞和遠程調用的技術。
學習使用Java做Web Service (官方教程在這里)
實踐任務: 嘗試在Spring或Hibernate框架下構建一個有網路的Web Service的遠程調用程序,並可以在兩個Service中通過JMS傳遞消息。
C++和Java都不是能在短時間內能學好的,C++玩是的深,Java玩的是廣,我建議兩者選一個。我個人的學習經歷是:
深究C++(我深究C/C++了十來年了)
學習Java的各種設計模式。
2、加強系統了解
重要閱讀下面的幾本書:
《Unix編程藝術》了解Unix系統領域中的設計和開發哲學、思想文化體系、原則與經驗。你一定會有一種醍醐灌頂的感覺。
《Unix網路編程卷1,套接字》這是一本看完你就明白網路編程的書。重要注意TCP、UDP,以及多路復用的系統調用select/poll/epoll的差別。
《TCP/IP詳解 卷1:協議》- 這是一本看完後你就可以當網路黑客的書。了解乙太網的的運作原理,了解TCP/IP的協議,運作原理以及如何TCP的調優。
實踐任務:
理解什麼是阻塞(同步IO),非阻塞(非同步IO),多路復用(select, poll, epoll)的IO技術。
寫一個網路聊天程序,有聊天伺服器和多個聊天客戶端(服務端用UDP對部分或所有的的聊天客戶端進Multicast或Broadcast)。
寫一個簡易的HTTP伺服器。
《Unix網路編程卷2,進程間通信》信號量,管道,共享內存,消息等各種IPC…… 這些技術好像有點老掉牙了,不過還是值得了解。
實踐任務:
主要實踐各種IPC進程序通信的方法。
嘗試寫一個管道程序,父子進程通過管道交換數據。
嘗試寫一個共享內存的程序,兩個進程通過共享內存交換一個C的結構體數組。
學習《Windows核心編程》一書。把CreateProcess,Windows線程、線程調度、線程同步(Event, 信號量,互斥量)、非同步I/O,內存管理,DLL,這幾大塊搞精通。
實踐任務:使用CreateProcess啟動一個記事本或IE,並監控該程序的運行。把前面寫過的那個簡易的HTTP服務用線程池實現一下。寫一個DLL的鉤子程序監控指定窗口的關閉事件,或是記錄某個窗口的按鍵。
有了多線程、多進程通信,TCP/IP,套接字,C++和設計模式的基本,你可以研究一下ACE了。使用ACE重寫上述的聊天程序和HTTP伺服器(帶線程池)
實踐任務:通過以上的所有知識,嘗試
寫一個服務端給客戶端傳大文件,要求把100M的帶寬用到80%以上。(注意,磁碟I/O和網路I/O可能會很有問題,想一想怎麼解決,另外,請注意網路傳輸最大單元MTU)
了解BT下載的工作原理,用多進程的方式模擬BT下載的原理。
3、系統架構
負載均衡。HASH式的,純動態式的。(可以到Google學術里搜一些關於負載均衡的文章讀讀)
多層分布式系統 – 客戶端服務結點層、計算結點層、數據cache層,數據層。J2EE是經典的多層結構。
CDN系統 – 就近訪問,內容邊緣化。
P2P式系統,研究一下BT和電驢的演算法。比如:DHT演算法。
伺服器備份,雙機備份系統(Live-Standby和Live-Live系統),兩台機器如何通過心跳監測對方?集群主結點備份。
虛擬化技術,使用這個技術,可以把操作系統當應用程序一下切換或重新配置和部署。
學習Thrift,二進制的高性能的通訊中間件,支持數據(對象)序列化和多種類型的RPC服務。
學習Hadoop。Hadoop框架中最核心的設計就是:MapRece和HDFS。MapRece的思想是由Google的一篇論文所提及而被廣為流傳的,簡單的一句話解釋MapRece就是「任務的分解與結果的匯總」。HDFS是Hadoop分布式文件系統(Hadoop Distributed File System)的縮寫,為分布式計算存儲提供了底層支持。
了解NoSQL資料庫(有人說可能是一個過渡炒作的技術),不過因為超大規模以及高並發的純動態型網站日漸成為主流,而SNS類網站在數據存取過程中有著實時性等剛性需求,這使得目前NoSQL資料庫慢慢成了人們所關注的焦點,並大有成為取代關系型資料庫而成為未來主流數據存儲模式的趨勢。當前NoSQL資料庫很多,大部分都是開源的,其中比較知名的有:MemcacheDB、Redis、Tokyo Cabinet(升級版為Kyoto Cabinet)、Flare、MongoDB、CouchDB、Cassandra、Voldemort等。
❸ 65、試簡述什麼是數控機床零點、機床參考點、工件原點、編程零點、刀具起始點以及它們之間的相互關系
數控機床零點是機床出廠之前由機床製造廠商設置在機床上的一個固定位置;機床原點是機床坐標系原點通常由機床的製造廠家確定。機床參考點是機床上的一個固定點,它與機床原點之間有確定的尺寸聯系,使用時通過「尋找操作」確認。工件原點是工件坐標繫上確定工件輪廓編程和計算的原點,在加工中因工件的裝夾位置是相對機床坐標系而言固定的,所以工件坐標系在機床坐標系中的位置也就確定了。
求上牆!!!
❹ 快速入門數控加工中心編程的方法(2)
快速入門數控加工中心編程的方法
二、坐標系建立基礎概念
1.刀位點
刀位點是刀具上的一個基準點,刀位點相對運動的軌跡即加工路線,也稱編程軌跡。
2.對刀和對刀點
對刀是指操作員在啟動數控程序之前,通過一定的測量手段,使刀位點與對刀點重合。可以用對刀儀對刀,其操作比較簡單,測量數據也比較准確。還可以在數控機床上定位好夾具和安裝好零件之後,使用量塊、塞尺、千分表等,利用數控機床上的坐標對刀。對於操作者來說,確定對刀點將是非常重要的,會直接影響零件的加工精度和程序控制的准確性。在批生產過程中,更要考慮到對刀點的重復精度,操作者有必要加深對數控設備的了解,掌握更多的對刀技巧。
(1)對刀點的選擇原則
在機床上容易找正,在加工中便於檢查,編程時便於計算,而且對刀誤差小。對刀點可以選擇零件上的某個點(如零件的定位孔中心),也可以選擇零件外的某一點(如夾具或機床上的某一點),但必須與零件的定位基準有一定的坐標關系。提高對刀的准確性和精度,即便零件要求精度不高或者程序要求不嚴格,所選對刀部位的加工精度也應高於其他位置的加工精度。擇接觸面大、容易監測、加工過程穩定的部位作為對刀點。對刀點盡可能與設計基準或工藝基準統一,避免由於尺寸換算導致對刀精度甚至加工精度降低,增加數控程序或零件數控加工的難度。為了提高零件的加工精度,對刀點應盡量選在零件的設計基準或工藝基準上。例如以孔定位的零件,以孔的中心作為對刀點較為適宜。對刀點的精度既取決於數控設備的精度,也取決於零件加工的要求,人工檢查對刀精度以提高零件數控加工的質量。尤其在批生產中要考慮到對刀點的重復精度,該精度可用對刀點相對機床原點的坐標值來進行校核。
(2)對刀點的選擇方法
對於數控車床或車銑加工中心類數控設備,由於中心位置(X0,Y0,A0)已有數控設備確定,確定軸向位置即可確定整個加工坐標系。因此,只需要確定軸向(Z0或相對位置)的某個端面作為對刀點即可。對於三坐標數控銑床或三坐標加工中心,相對數控車床或車銑加工中心復雜很多,根據數控程序的要求,不僅需要確定坐標系的原點位置(X0,Y0,Z0),而且要同加工坐標系G54、G55、G56、G57等的確定有關,有時也取決於操作者的習慣。對刀點可以設在被加工零件上,也可以設在夾具上,但是必須與零件的定位基準有一定的坐標關系,Z方向可以簡單的通過確定一個容易檢測的平面確定,而X、Y方向確定需要根據具體零件選擇與定位基準有關的平面、圓。對於四軸或五軸數控設備,增加了第4、第5個旋轉軸,同三坐標數控設備選擇對刀點類似,由於設備更加復雜,同時數控系統智能化,提供了更多的對刀方法,需要根據具體數控設備和具體加工零件確定。對刀點相對機床坐標系的坐標關系可以簡單地設定為互相關聯,如對刀點的坐標為(X0,Y0,Z0),同加工坐標系的關系可以定義為(X0+Xr,Y0+Yr,Z0+Zr),加工坐標系G54、G55、G56、G57等,只要通過控制面板或其他方式輸入即可。這種方法非常靈活,技巧性很強,為後續數控加工帶來很大方便。
3.零點漂移現象
零點漂移現象是受數控設備周圍環境影響因素引起的,在同樣的切削條件下,對同一台設備來說、使用相同一個夾具、數控程序、刀具,加工相同的零件,發生的一種加工尺寸不一致或精度降低的現象。零點漂移現象主要表現在數控加工過程的一種精度降低現象或者可以理解為數控加工時的精度不一致現象。零點漂移現象在數控加工過程中是不可避免的,對於數控設備是普遍存在的,一般受數控設備周圍環境因素的影響較大,嚴重時會影響數控設備的正常工作。影響零點漂移的原因很多,主要有溫度、冷卻液、刀具磨損、主軸轉速和進給速度變化大等。
4.刀具補償
經過一定時間的數控加工後,刀具的磨損是不可避免的,其主要表現在刀具長度和刀具半徑的變化上,因此,刀具磨損補償也主要是指刀具長度補償和刀具半徑補償。
5.刀具半徑補償
在零件輪廓加工中,由於刀具總有一定的半徑如銑刀半徑,刀具中心的運動軌跡並不等於所需加工零件的實際軌跡,而是需要偏置一個刀具半徑值,這種偏移習慣上成為刀具半徑補償。因此,進行零件輪廓數控加工時必須考慮刀具的半徑值。需要指出的是,UG/CAM數控程序是以理想的加工狀態和准確的刀具半徑進行編程的,刀具運動軌跡為刀心運動軌跡,沒有考慮數控設備的狀態和刀具的磨損程度對零件數控加工的影響。因此,無論對於輪廓編程,還是刀心編程,UG/CAM數控程序的實現必須考慮刀具半徑磨損帶來的影響,合理使用刀具半徑補償。
6.刀具長度補償
在數控銑、鏜床上,當刀具磨損或更換刀具時,使刀具刀尖位置不在原始加工的編程位置時,必須通過延長或縮短刀具長度方向一個偏置值的方法來補償其尺寸的變化,以保證加工深度或加工表面位置仍然達到原設計要求尺寸。
7.機床坐標系
數控機床的坐標軸命名規定為機床的直線運動採用笛卡兒坐標系,其坐標命名為X、Y、Z,通稱為基本坐標系。以X、Y、Z坐標軸或以與X、Y、Z坐標軸平行的坐標軸線為中心旋轉的運動,分別稱為A軸、B軸、C軸,A、B、C的正方向按右手螺旋定律確定。Z軸:通常把傳遞切削力的主軸規定為Z坐標軸。對於刀具旋轉的機床,如鏜床、銑床、鑽床等,刀具旋轉的軸稱為Z軸。X軸:X軸通常平行與工件裝夾面並與Z軸垂直。對於刀具旋轉的`機床,例如卧式銑床、卧式鏜床,從刀具主軸向工件方向看,右手方向為X軸的正方向,當Z軸為垂直時,對於單立柱機床如立式銑床,則沿刀具主軸向立方向看,右手方向為X軸的正方向。Y軸:Y軸垂直於X軸和Z軸,其方向可根據已確定的X軸和Z軸,按右手直角笛卡兒坐標系確定。
旋轉軸的定義也按照右手定則,繞X軸旋轉為A軸,繞Y軸旋轉為B軸,繞Z軸旋轉為C軸。數控機床的坐標軸如下圖所示。
機床原點就是機床坐標系的坐標原點。機床上有一些固定的基準線,如主軸中心線;也有一些固定的基準面,如工作檯面、主軸端面、工作台側面等。當機床的坐標軸手動返回各自的原點以後,用各坐標軸部件上的基準線和基準面之間的距離便可確定機床原點的位置,該點在數控機床的使用說明書上均有說明。
8.零件加工坐標系和坐標原點
工件坐標系又稱編程坐標系,是由編程員在編制零件加工程序時,以工件上某一固定點為原點建立的坐標系。零件坐標系的原點稱為零件零點(零件原點或程序零點),而編程時的刀具軌跡坐標是按零件輪廓在零件坐標系的坐標確定的。加工坐標系的原點在機床坐標系中稱為調整點。在加工時,零件隨夾具安裝在機床上,零件的裝夾位置相對於機床是固定的,所以零件坐標系在機床坐標系中的位置也就確定了。這時測量的零件原點與機床原點之間的距離稱作零件零點偏置,該偏置需要預先存儲到數控系統中。在加工時,零件原點偏置便能自動加到零件坐標繫上,使數控系統可按機床坐標系確定加工時的絕對坐標值。因此,編程員可以不考慮零件在機床上的實際安裝位置和安裝精度,而利用數控系統的偏置功能,通過零件原點偏置值,補償零件在機床上的位置誤差,現在的數控機床都有這種功能,使用起來很方便。零件坐標系的位置以機床坐標系為參考點,在一個數控機床上可以設定多個零件坐標系,分別存儲在G54/G59等中,零件零點一般設在零件的設計基準、工藝基準處,便於計算尺寸。一般數控設備可以預先設定多個工作坐標系(G54~G59),這些坐標系存儲在機床存儲器內,工作坐標系都是以機床原點為參考點,分別以各自與機床原點的偏移量表示,需要提前輸入機床數控系統,或者說是在加工前設定好的坐標系。加工坐標系(MCS)是零件加工的所有刀具軌跡輸出點的定位基準。加工坐標系用OM-XM-YM-ZM表示。有了加工坐標系,在編程時,無需考慮工件在機床上的安裝位置,只要根據工件的特點及尺寸來編程即可。加工坐標系的原點即為工件加工零點。工件加工零點的位置是任意的,是由編程人員在編制數控加工程序時根據零件的特點選定。工件零點可以設置在加工工件上,也可以設置在夾具上或機床上。為了提高零件的加工精度,工件零點盡量選在精度較高的加工表面上;為方便數據處理和簡化程序編制,工件零點應盡量設置在零件的設計基準或工藝基準上,對於對稱零件,最好將工件零點設在對稱中心上,容易找准,檢查也方便。
9.裝夾原點
裝夾原點常見於帶回轉(或擺動)工作台的數控機床和加工中心,比如回轉中心,與機床參考點的偏移量可通過測量存入數控系統的原點偏置寄存器中,供數控系統原點偏移計算用。
;❺ 數控鏜銑機床上工件零點是怎樣確定的
數控程序的刀位點位置和刀位矢量確定依賴於加工坐標系的位置,所以,在加工零件前必須確定加工坐標系或編程坐標系的准確位置。
在普通設備上加工工件時,操作技師通常使用刀具的刃邊或刃口來確定工件的邊緣位置作為加工的零點,然後用機床刻度盤的刻度值或者數字顯示器顯示的讀數通過簡單的數學運算來確定工作坐標系的零點,所有的位置都以此點作為參考點,這也就是加工坐標系的由來。
數控銑床和普通銑床的工作原理是一樣的:加工前必須確定工件在機床上的位置,或者用刻度盤值或者用位置數字顯示器的數值給零件定位。然後,操作者通過按數控機床控制面板上的按鈕來建立加工坐標系,也就是通常所說的零點。只不過零點的位置確定通過數控設備控制系統內部的運算來完成。
在數控銑床上建立工件的加工坐標系,是為了確定工件在加工坐標系中的准確位置,首先應該了解兩個零點的概念,它們分別是機床坐標系原點和加工坐標系原點。
數控銑床都有一個參考點,也就是通常所說的機床坐標系原點或機床的初始位置,是由機床製造商設置在機床上的一個固定基準位置點,通過限位開關或感測器來建立。作用是使機床與控制系統同步,建立測量機床運動的起始點。從實際意義上講,機床零點是固定不變的,通常在機床的右上方。當機床啟動後,機床必須執行返回到機床零點的固定循環程序即初始化程序,然後將機床參考點和機床原點之間的偏置值自動存儲在機床控制單元MCU(Machine Control Unit)中。
對於數控編程和數控加工來說,還有一個重要的原點是程序原點,是編程員在進行數控編程時定義的幾何基準點,並以此點作為加工坐標系的原點,即通常所說的工件原點。工件坐標系是零件進行數控編程時確定的加工坐標系。
❻ 快速入門數控加工中心編程的方法
快速入門數控加工中心編程的方法
數控加工中心的綜合加工能力較強,工件一次裝夾後能完成較多的加工內容,加工精度較高,就中等加工難度的批量工件,其效率是普通設備的5~10倍,特別是它能完成許多普通設備不能完成的加工,對形狀較復雜,精度要求高的單件加工或中小批量多品種生產更為適用。下面是我整理的快速入門數控加工中心編程的方法介紹,大家一起來看看吧。
一、編程入門
概念一、指令分組:將功能類似的指令分成一組,同一組的G代碼不能同時出現在同一行程序段里。
概念二、程序段程序段是程序的基本組成部分,程序段由不同的指令組合而成。以下是我們學校在授課過程中必須要講的指令,了解編程的基本方法後,掌握這些指令你就能進行編程了。
概念三、常用指令類型指令的格式為英文字母+數字構成。
如G54 G_ X_Y_Z_ F_ S_ T_ M_
G_ G代碼
X_Y_Z_ 機床的直線軸
F_ 進給速度
S_ 主轉轉速
T_ 刀具指令
M_ 輔助功能
最常用的M代碼
M3 主轉正轉
M4 主轉反轉
M5主轉停轉
如:M3 S600 主軸正轉,轉速600 r/min
M06 換刀指令
如T1 M06 就是換一號刀
以下重點講G代碼01組G代碼用於控制刀具的運動。
G00 快速點定位G00 X_Y_Z_ ;
刀具以快速度移動至以絕對值指令(G90)或增量值指令(G91)所指定的工件坐標系中的位置,移動速度由機床參數所指定 。
G01 直線插補G01 X_Y_Z_ F_
G02 順時針圓弧插補指令格式:G02 X_ Y_ Z_ R_ F_ / G03 X_ Y_ Z_ I_ J_ K_ F
G03 逆時針圓弧插補指令格式:G03 X_ Y_ Z_ R_ F_ / G03 X_ Y_ Z_ I_ J_ K_ F_
X_ Y_ Z_ 圓弧的終點坐標
R_ 圓弧的半徑
I_ 圓弧的終點相對於刀具所在位置
X向的位置
J_ 圓弧的終點相對於刀具所在位置
Y向的位置
K_ 圓弧的終點相對於刀具所在位置
Z向的位置
F_ 進行速度
F的定義方式有兩種:G94每分鍾進給(刀具每分鍾移動速度mm/min)/ G95 每轉進給(主軸每旋轉一轉刀具移動的距離mm/r)
G代碼刀具的長度補償G43 長度補償指令
如G43H01 在換刀點刀尖到工件Z向零點的距離為“H01”,什麼是“H01”?
H01就是偏置值,也就是我將刀尖到工件Z向零面的距離寫在偏置表裡的H01處。
G54 號工件坐標系,我們將工件零點的位置,寫到坐標系列表中。
G54隻是列表中最常用的位置。其他的還有G55 G56 G57 G58 G59 等等,他們的意義和G54相同。
打孔、鏜孔、鉸孔時用的G代碼。
G81 格式為 G81 X_ Y_ Z_ R_ F_;
X_Y_ 孔位坐標(也就是孔的位置)
Z_ 孔的深度
R_ 安全高底,也就是高具移動到什麼位置時開始進給運動?
F_ 進給速度。
G80 固定循環結束
代碼還有很多,G81 G83 G84 G85 G86 G87 G73 G74 G76等等。每個一指令的動作都不太一樣,但掌握一個了,其它的看一下說明也就明白了。就是G84 和G76 稍有點復雜,有明白的地方可以提問,有時間幫你們在線答疑。
二、坐標系建立基礎概念
1.刀位點
刀位點是刀具上的一個基準點,刀位點相對運動的軌跡即加工路線,也稱編程軌跡。
2.對刀和對刀點
對刀是指操作員在啟動數控程序之前,通過一定的測量手段,使刀位點與對刀點重合。可以用對刀儀對刀,其操作比較簡單,測量數據也比較准確。還可以在數控機床上定位好夾具和安裝好零件之後,使用量塊、塞尺、千分表等,利用數控機床上的坐標對刀。對於操作者來說,確定對刀點將是非常重要的,會直接影響零件的加工精度和程序控制的准確性。在批生產過程中,更要考慮到對刀點的重復精度,操作者有必要加深對數控設備的了解,掌握更多的對刀技巧。
(1)對刀點的選擇原則
在機床上容易找正,在加工中便於檢查,編程時便於計算,而且對刀誤差小。對刀點可以選擇零件上的某個點(如零件的定位孔中心),也可以選擇零件外的某一點(如夾具或機床上的某一點),但必須與零件的定位基準有一定的坐標關系。提高對刀的准確性和精度,即便零件要求精度不高或者程序要求不嚴格,所選對刀部位的加工精度也應高於其他位置的加工精度。擇接觸面大、容易監測、加工過程穩定的部位作為對刀點。對刀點盡可能與設計基準或工藝基準統一,避免由於尺寸換算導致對刀精度甚至加工精度降低,增加數控程序或零件數控加工的難度。為了提高零件的加工精度,對刀點應盡量選在零件的設計基準或工藝基準上。例如以孔定位的零件,以孔的中心作為對刀點較為適宜。對刀點的精度既取決於數控設備的精度,也取決於零件加工的要求,人工檢查對刀精度以提高零件數控加工的質量。尤其在批生產中要考慮到對刀點的重復精度,該精度可用對刀點相對機床原點的坐標值來進行校核。
(2)對刀點的選擇方法
對於數控車床或車銑加工中心類數控設備,由於中心位置(X0,Y0,A0)已有數控設備確定,確定軸向位置即可確定整個加工坐標系。因此,只需要確定軸向(Z0或相對位置)的某個端面作為對刀點即可。對於三坐標數控銑床或三坐標加工中心,相對數控車床或車銑加工中心復雜很多,根據數控程序的要求,不僅需要確定坐標系的原點位置(X0,Y0,Z0),而且要同加工坐標系G54、G55、G56、G57等的確定有關,有時也取決於操作者的習慣。對刀點可以設在被加工零件上,也可以設在夾具上,但是必須與零件的定位基準有一定的坐標關系,Z方向可以簡單的通過確定一個容易檢測的平面確定,而X、Y方向確定需要根據具體零件選擇與定位基準有關的平面、圓。對於四軸或五軸數控設備,增加了第4、第5個旋轉軸,同三坐標數控設備選擇對刀點類似,由於設備更加復雜,同時數控系統智能化,提供了更多的對刀方法,需要根據具體數控設備和具體加工零件確定。對刀點相對機床坐標系的坐標關系可以簡單地設定為互相關聯,如對刀點的坐標為(X0,Y0,Z0),同加工坐標系的關系可以定義為(X0+Xr,Y0+Yr,Z0+Zr),加工坐標系G54、G55、G56、G57等,只要通過控制面板或其他方式輸入即可。這種方法非常靈活,技巧性很強,為後續數控加工帶來很大方便。
3.零點漂移現象
零點漂移現象是受數控設備周圍環境影響因素引起的,在同樣的切削條件下,對同一台設備來說、使用相同一個夾具、數控程序、刀具,加工相同的零件,發生的一種加工尺寸不一致或精度降低的現象。零點漂移現象主要表現在數控加工過程的'一種精度降低現象或者可以理解為數控加工時的精度不一致現象。零點漂移現象在數控加工過程中是不可避免的,對於數控設備是普遍存在的,一般受數控設備周圍環境因素的影響較大,嚴重時會影響數控設備的正常工作。影響零點漂移的原因很多,主要有溫度、冷卻液、刀具磨損、主軸轉速和進給速度變化大等。
4.刀具補償
經過一定時間的數控加工後,刀具的磨損是不可避免的,其主要表現在刀具長度和刀具半徑的變化上,因此,刀具磨損補償也主要是指刀具長度補償和刀具半徑補償。
5.刀具半徑補償
在零件輪廓加工中,由於刀具總有一定的半徑如銑刀半徑,刀具中心的運動軌跡並不等於所需加工零件的實際軌跡,而是需要偏置一個刀具半徑值,這種偏移習慣上成為刀具半徑補償。因此,進行零件輪廓數控加工時必須考慮刀具的半徑值。需要指出的是,UG/CAM數控程序是以理想的加工狀態和准確的刀具半徑進行編程的,刀具運動軌跡為刀心運動軌跡,沒有考慮數控設備的狀態和刀具的磨損程度對零件數控加工的影響。因此,無論對於輪廓編程,還是刀心編程,UG/CAM數控程序的實現必須考慮刀具半徑磨損帶來的影響,合理使用刀具半徑補償。
6.刀具長度補償
在數控銑、鏜床上,當刀具磨損或更換刀具時,使刀具刀尖位置不在原始加工的編程位置時,必須通過延長或縮短刀具長度方向一個偏置值的方法來補償其尺寸的變化,以保證加工深度或加工表面位置仍然達到原設計要求尺寸。
7.機床坐標系
數控機床的坐標軸命名規定為機床的直線運動採用笛卡兒坐標系,其坐標命名為X、Y、Z,通稱為基本坐標系。以X、Y、Z坐標軸或以與X、Y、Z坐標軸平行的坐標軸線為中心旋轉的運動,分別稱為A軸、B軸、C軸,A、B、C的正方向按右手螺旋定律確定。Z軸:通常把傳遞切削力的主軸規定為Z坐標軸。對於刀具旋轉的機床,如鏜床、銑床、鑽床等,刀具旋轉的軸稱為Z軸。X軸:X軸通常平行與工件裝夾面並與Z軸垂直。對於刀具旋轉的機床,例如卧式銑床、卧式鏜床,從刀具主軸向工件方向看,右手方向為X軸的正方向,當Z軸為垂直時,對於單立柱機床如立式銑床,則沿刀具主軸向立方向看,右手方向為X軸的正方向。Y軸:Y軸垂直於X軸和Z軸,其方向可根據已確定的X軸和Z軸,按右手直角笛卡兒坐標系確定。
旋轉軸的定義也按照右手定則,繞X軸旋轉為A軸,繞Y軸旋轉為B軸,繞Z軸旋轉為C軸。數控機床的坐標軸如下圖所示。
機床原點就是機床坐標系的坐標原點。機床上有一些固定的基準線,如主軸中心線;也有一些固定的基準面,如工作檯面、主軸端面、工作台側面等。當機床的坐標軸手動返回各自的原點以後,用各坐標軸部件上的基準線和基準面之間的距離便可確定機床原點的位置,該點在數控機床的使用說明書上均有說明。
8.零件加工坐標系和坐標原點
工件坐標系又稱編程坐標系,是由編程員在編制零件加工程序時,以工件上某一固定點為原點建立的坐標系。零件坐標系的原點稱為零件零點(零件原點或程序零點),而編程時的刀具軌跡坐標是按零件輪廓在零件坐標系的坐標確定的。加工坐標系的原點在機床坐標系中稱為調整點。在加工時,零件隨夾具安裝在機床上,零件的裝夾位置相對於機床是固定的,所以零件坐標系在機床坐標系中的位置也就確定了。這時測量的零件原點與機床原點之間的距離稱作零件零點偏置,該偏置需要預先存儲到數控系統中。在加工時,零件原點偏置便能自動加到零件坐標繫上,使數控系統可按機床坐標系確定加工時的絕對坐標值。因此,編程員可以不考慮零件在機床上的實際安裝位置和安裝精度,而利用數控系統的偏置功能,通過零件原點偏置值,補償零件在機床上的位置誤差,現在的數控機床都有這種功能,使用起來很方便。零件坐標系的位置以機床坐標系為參考點,在一個數控機床上可以設定多個零件坐標系,分別存儲在G54/G59等中,零件零點一般設在零件的設計基準、工藝基準處,便於計算尺寸。一般數控設備可以預先設定多個工作坐標系(G54~G59),這些坐標系存儲在機床存儲器內,工作坐標系都是以機床原點為參考點,分別以各自與機床原點的偏移量表示,需要提前輸入機床數控系統,或者說是在加工前設定好的坐標系。加工坐標系(MCS)是零件加工的所有刀具軌跡輸出點的定位基準。加工坐標系用OM-XM-YM-ZM表示。有了加工坐標系,在編程時,無需考慮工件在機床上的安裝位置,只要根據工件的特點及尺寸來編程即可。加工坐標系的原點即為工件加工零點。工件加工零點的位置是任意的,是由編程人員在編制數控加工程序時根據零件的特點選定。工件零點可以設置在加工工件上,也可以設置在夾具上或機床上。為了提高零件的加工精度,工件零點盡量選在精度較高的加工表面上;為方便數據處理和簡化程序編制,工件零點應盡量設置在零件的設計基準或工藝基準上,對於對稱零件,最好將工件零點設在對稱中心上,容易找准,檢查也方便。
9.裝夾原點
裝夾原點常見於帶回轉(或擺動)工作台的數控機床和加工中心,比如回轉中心,與機床參考點的偏移量可通過測量存入數控系統的原點偏置寄存器中,供數控系統原點偏移計算用。
;❼ 加工中心的程序零點
LZ您好
程序零點
如:
XY四面為零
也就是說程序零點在工件的中心點
程序的零點通常我們見到的
要不就是在工件的四個角上(通常叫單邊為零)
要不就是在工件的一邊中心
也就是X單邊
Y分中
這不算是規律
當然程序零點是編程人員給的
但是一般情況就是我上面講的那幾個零點
XY為零
XY單邊(這個會出現在產品的四個角上)
等等
如果是機床零點
就輸入
G91
G928
Z0.;
(zero)
望能幫到您!
❽ PowerMILL怎麼編程數控開料機
一、powermill數控銑編程加工特點
powermill數控銑編程至少有3個控制軸,即X,Y,Z軸,可同時控制其中任意2個坐標軸聯動,也能控制3個甚至更多個坐標軸聯動,主要用於各類較復雜的平面、曲面和充體類軍件的加工,如各類模具、樣板、葉片、凸輪和連桿等。因此.其編程方法與車床不盡相同。不同的數控悅床.不同的數控系
統,其編程原理基本上是相同的,但所用指令有不同之處。這里以FANUC Oi系統為主來介紹數控銑削編程。
二、數控銑編程工件坐標系的建立
(1)、數控銑編程機床的坐標系
powermill數控銑編程是以機床主軸軸線方向為Z軸,刀具遠離工件的方向為Z軸正方向。x軸位於與工件安裝面相平行的水平面內。若是立式銑床,則主軸右側方向為x軸正方向;若是卧式價床,則操作者面對主軸的左側方向為x軸正方向。y軸方向可根據Z, x軸按右手笛卡兒直角坐標系來確定。
(2)參考點
參考點是機床上一個固定點,與加工程序無關。數控機床的型號不同,其參考點的位!也不同。通常,立式銑床指定x軸、Y軸和Z軸正向的極限點為參考點。參考點又稱為機床零點。機床啟動後,首先要將機床位I「回零」,即執行手動返回參考點.使各軸移至機床軍點,在數控系統內部建立一個以機床零點為坐標原點的機床坐標系(CRT上顯示此時主軸的端面中心,即對刀參考點在機床坐標系中的坐標值均為零)。這樣在執行加工程序時.才能有正確的工件坐標系。所以編程時.必須首先設定工件坐標系,即確定刀具相對於工件坐標系坐標原點的距離,程序中的坐標值均以工件坐標系為依據。
三、建立工件坐標系應連循的原則
工件坐標系採用與機床運動坐標系一致的坐標方向。建立工件坐標系,關被是正確選擇坐標系的原點,即程序原點。編程人員在編制加工程序時選擇程序原點,要便於側t和對刀,便於編程計算。此外,如果考慮到零件的特點,還應遵循以下原則:
(1)、為便於在編程時進行坐標值的計算.減少計算錯誤和編程錯誤,工
件零點應選在零件圖的設計基準上;
(2)、為提高被加工軍件的加工精度,工件零點應盡A選在精度較高的工
件表面上;
(3)、為便於編程.對於那些幾何元素對稱的零件,工件零點應設在對稱
中心上;
(4)、對於一般零件,工件軍點設在工件外輪腳的某一角上;
(5)、z軸方向上的零點一般設在工件的上表面。
四、數控銑削加工的工藝分析
從數控機床加工程序的編制過程和內容可以看出,數控機床使用的工件加工程序中,應考慮機床的運動過程、工件的加工工藝過程、刀具的形狀及切削用量、走刀路線等比較廣泛的工藝問題。為了編制出一個合理的、實用的加工程序,要求編程人員不僅要了解數控機床的工作原理、性能特點及結構,掌握編程語言和標准程序格式,還應能熟練掌握工件加工工藝。在編程前,必須對所加工的零件進行工藝分析,擬訂加工方案,選擇合適的刀具和央其.確定合理切削用t,正確選用刀具和夾緊方法,並熟悉檢側方法。數控銑編程中,還需進行工藝處理,如確定對刀點等。因此.數控機床程序編制中的工藝分析與處理是一項十分重要的工作。也就是說,數控機床編程員首先是一個好的工藝員。數控機床加工工藝知識的獲得除了通過理論知識的學習以及正確使用工藝手冊外,主要是參加實際編程和操作,以獲取豐富的經驗。