- 相關(guān)推薦
如何學(xué)好數(shù)控車床編程
引導(dǎo)語:學(xué)習(xí)數(shù)控編程應(yīng)該掌握的的一些基本知識點(diǎn)和學(xué)習(xí)方法有哪些?對此小編整理出了一些對幾種常用數(shù)控機(jī)床的基本編程要點(diǎn)和技巧,為大家能夠?qū)W好學(xué)精數(shù)控編程這門技術(shù)應(yīng)該作何前期準(zhǔn)備的一個(gè)簡單論述。希望能夠幫助到大家!
隨著我國制造業(yè)快速發(fā)展,數(shù)控機(jī)床以具有自動化程度高、生產(chǎn)率高、柔性好、加工精度高、加工質(zhì)量穩(wěn)定、易于建立與計(jì)算機(jī)間的通信聯(lián)絡(luò)、容易實(shí)現(xiàn)群控和良好的經(jīng)濟(jì)效益等優(yōu)點(diǎn),迅速的占領(lǐng)制造業(yè)的市場。對于機(jī)械制造專業(yè)的學(xué)生來講,今后畢業(yè)將從事的行業(yè)很可能是數(shù)控加工行業(yè)。因此學(xué)好數(shù)控加工技術(shù)對于今后的就業(yè)就有著更加重要的意義。筆者在此提出自己在學(xué)習(xí)和實(shí)際操作數(shù)控機(jī)床時(shí)的一些心得體會以供廣大初學(xué)者參考。
一、數(shù)控機(jī)床的加工原理
學(xué)習(xí)數(shù)控加工技術(shù)首先得弄清數(shù)控加工的工作原理。首先將被加工零件圖上的幾何信息和工藝信息數(shù)字化,即將刀具與工件的相對運(yùn)動軌跡、加工過程的切削速度、進(jìn)給速度、工件和刀具的交換、冷卻液的開關(guān)等信息都按規(guī)定的代碼和格式編成加工程序,接著將該程序送到數(shù)控系統(tǒng);數(shù)控系統(tǒng)則按照程序的要求,先進(jìn)行相應(yīng)的運(yùn)算、處理,然后發(fā)出控制命令是個(gè)坐標(biāo)軸、主軸及輔助動作相互協(xié)調(diào),實(shí)現(xiàn)刀具與工件間的相對運(yùn)動實(shí)現(xiàn)零件的加工。
二、數(shù)控加工中涉及的坐標(biāo)系
數(shù)控機(jī)床上各個(gè)運(yùn)動執(zhí)行部件的動作都是由數(shù)控驅(qū)動單元(CNC裝置)控制的。因此為了建立各個(gè)運(yùn)動部件相對于機(jī)床的相對位置的量化關(guān)系可借助坐標(biāo)系來實(shí)現(xiàn)。這個(gè)坐標(biāo)系是機(jī)床出廠是生產(chǎn)廠家已經(jīng)確定的稱為機(jī)床坐標(biāo)系,建立機(jī)床坐標(biāo)系的原點(diǎn)稱之為機(jī)床原點(diǎn)或零點(diǎn)。參考點(diǎn)是機(jī)床上坐標(biāo)系中一個(gè)固定不變的位置點(diǎn)。通常將參考點(diǎn)與機(jī)床坐標(biāo)系原點(diǎn)設(shè)置為同一點(diǎn),所以有些機(jī)床上回參考點(diǎn)操作也叫回零點(diǎn)操作。在數(shù)控編程中通常以零件圖上某一點(diǎn)來建立坐標(biāo)系進(jìn)行編程,這個(gè)點(diǎn)稱之為工件編程零點(diǎn),這個(gè)坐標(biāo)系稱為工件坐標(biāo)系。建立工件坐標(biāo)系的目的在于方便和簡化編程。
三、數(shù)控編程的方法
數(shù)控編程的方法主要有兩種:一是手工編程;二是自動編程。兩種編程方法各有優(yōu)缺點(diǎn)和適用于不同的加工范圍。手工編寫的程序具有程序簡單精煉、易于讀懂、程序調(diào)整容易、適用于編寫比較簡單的零部件的加工程序,但是手工編程難以實(shí)現(xiàn)復(fù)雜曲面的加工。而自動編程是指用計(jì)算機(jī)來編制數(shù)控加工程序,自動編程的效率高、正確性好、操作安全可靠、能實(shí)現(xiàn)手工編程無法實(shí)現(xiàn)的復(fù)雜曲面的加工,但自動編程編寫的程序比較冗長、不精煉、有些情況下走到軌跡不是很合理比較耗費(fèi)工時(shí),所以編程人員要根據(jù)零件實(shí)際情況選擇合理對的編程方式。
四、常用機(jī)床的編程
(1)數(shù)控車床編程。數(shù)控車削加工過程中通常會用到車削循環(huán)指令,車削循環(huán)指令主要有簡單車削循環(huán)指令和復(fù)合循環(huán)車削指令,而簡單車削循環(huán)指令與復(fù)合車削循環(huán)指令里面又各包含幾種不同的車循循環(huán)指令。面對不同的車削循環(huán)指令究竟該用哪一種合理,依賴于學(xué)習(xí)者對各種車削循環(huán)指令的走刀軌跡及走刀特點(diǎn)有一定的了解才能做出合理的選擇。對于車削比較細(xì)長的工件而用到尾座和頂尖時(shí),編寫加工程序時(shí)應(yīng)謹(jǐn)慎選擇退刀和換刀的位置防止刀架與頂尖或是尾座發(fā)生碰撞。另外在車削錐面和圓弧時(shí)由于刀位點(diǎn)的變動,往往會造成過切或欠切的現(xiàn)象,可借助刀尖半徑補(bǔ)償功能來消除此類加工誤差。
(2)數(shù)控銑床編程。數(shù)控銑主要用于加工平面類、變斜角類、曲面類、箱體類零件。數(shù)控銑床在加工過程中實(shí)際是控制刀具中心軌跡來實(shí)現(xiàn)銑削加工的,因此若不采取措施直接編程加工,所加工的零件在尺寸方面必然達(dá)不到圖紙的要求。決解這個(gè)問題的方法主要有兩種:一是編程時(shí)在相應(yīng)的尺寸上加上或減去一個(gè)刀具半徑,二是運(yùn)用刀具半徑補(bǔ)償功能來補(bǔ)償一個(gè)刀具半徑。在建立刀補(bǔ)的過程中刀具首先運(yùn)動到程序中指定的目標(biāo)位置,然后再根據(jù)刀具半徑補(bǔ)償中儲存的數(shù)據(jù)相對與原軌跡偏離一個(gè)距離,所以在建立刀具半徑補(bǔ)償時(shí)建立刀補(bǔ)的距離必須大于刀具半徑。而且建立與取消刀補(bǔ)必須在G01和G00上進(jìn)行。在有些情況下為了防止在加工零件表面留下進(jìn)刀痕跡可選擇圓弧切入切出的方式進(jìn)行進(jìn)刀。另外通過修改刀具半徑補(bǔ)中存儲的數(shù)值還可實(shí)現(xiàn)粗精加工。當(dāng)數(shù)控機(jī)床用到多把刀進(jìn)行加工時(shí),在對刀的過程中只有第一把刀的X、Y、Z三個(gè)方向都要進(jìn)行對刀操作其它刀具只需進(jìn)行Z方向?qū)Φ恫僮骷纯伞?/p>
(3)數(shù)控加工中心的編程。數(shù)控加工中心主要用于加工形狀復(fù)雜、工序多、精度要求比較高的工件。數(shù)控加工中心與數(shù)控車數(shù)控銑最大區(qū)別在于數(shù)控加工中心有刀庫和自動換刀裝置。對于不同規(guī)格的加工中心擁有不同數(shù)量刀具的刀庫,故刀具從刀具庫轉(zhuǎn)到換刀位所需要的時(shí)間有長有短,因此在編寫換刀指令時(shí)也比較靈活。例如:當(dāng)?shù)毒叻祷氐綋Q刀點(diǎn)的時(shí)間小于從刀具庫選刀的時(shí)間,為提高生產(chǎn)效率減少等待換刀的時(shí)間可將選刀動作指令編寫在換刀指令之前,在銑削的同時(shí)進(jìn)行選刀。另外加工中心通常用長度補(bǔ)償指令來設(shè)置Z向零點(diǎn)。所以在設(shè)定工件坐標(biāo)系時(shí)通常僅僅在X、Y兩個(gè)方向上進(jìn)行零點(diǎn)偏置,Z向不進(jìn)行偏置采取直接置零。當(dāng)機(jī)床換上加工刀具后用塊規(guī)找正Z向,讀取塊規(guī)松緊合適時(shí)機(jī)床坐標(biāo)系的Z值減去塊規(guī)高度后將其輸入到刀具長度補(bǔ)償值中,實(shí)現(xiàn)Z向零點(diǎn)的設(shè)定。通常情況下在編寫加工中心加工程序時(shí)應(yīng)以工序集中原則進(jìn)行編寫。
五、數(shù)控仿真的應(yīng)用
實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。掌握了一定的數(shù)控編程技術(shù)理論基礎(chǔ)后,不進(jìn)行實(shí)際操作只在紙上談兵也是不行的。初學(xué)者直接在數(shù)控機(jī)床上進(jìn)行操作練習(xí),難免會因不熟練或誤操作而導(dǎo)致造成機(jī)床設(shè)備的損壞。而且對于一個(gè)初學(xué)者來講也不可能有較多的實(shí)際上機(jī)操作練習(xí)的機(jī)會。數(shù)控仿真則提供了一個(gè)很好的學(xué)習(xí)平臺供學(xué)習(xí)者來進(jìn)行模擬上機(jī)操作。初學(xué)者有足夠的時(shí)間和機(jī)會在數(shù)控仿真軟件進(jìn)行各種數(shù)控機(jī)床的操作練習(xí),并且初學(xué)者可通過仿真來實(shí)際感受加工環(huán)境、刀具毛坯的安裝、切削加工過程、觀察各種指令的走刀軌跡。另外數(shù)控仿真同樣可對加工程序進(jìn)行快速精確的校驗(yàn),以防止加工時(shí)出現(xiàn)干涉碰刀現(xiàn)象。在數(shù)控仿真上進(jìn)行模擬操作幾乎與實(shí)際機(jī)床上的操作是一樣的,因此它在一定程度上可以達(dá)到佷好的操作練習(xí)的目的。
六、進(jìn)一步學(xué)習(xí)數(shù)控的必要準(zhǔn)備
前面提到過對于一些比較復(fù)雜的曲面單靠人工進(jìn)行編程往往是比較困難的,運(yùn)用一些編程軟件進(jìn)行自動編程可很好的解決這一難題。因此要想學(xué)好、學(xué)精數(shù)控編程這一門技術(shù)僅僅學(xué)習(xí)人工編程是遠(yuǎn)遠(yuǎn)不夠的,還得學(xué)習(xí)一些自動編程的知識,兩者結(jié)合在一起用才行。目前我國應(yīng)用的比較多自動編程軟件有:國產(chǎn)的CAXA、美國的Pro/Engineer、UG CAD/CAM系統(tǒng)、Mastercam、以色列的CIMATRON等軟件,這些自動編程軟件在自動編程過程比較重要的一步是對零件進(jìn)行幾何建模。所以學(xué)習(xí)者在學(xué)好手工編程的基礎(chǔ)上還得學(xué)習(xí)當(dāng)今一些主流編程的基本建模方法和技巧。雖然當(dāng)今的數(shù)控技術(shù)發(fā)展的比較完善各種功能的加工指令也比較齊全。但是隨著產(chǎn)品的不斷更新?lián)Q代,這些指令可能滿足不了某些特殊零件的加工要求。而數(shù)控系統(tǒng)為用戶提供了宏程序功能,用戶可根據(jù)自己的加工要求來對數(shù)控系統(tǒng)的功能進(jìn)行拓展。故學(xué)習(xí)一定的用戶宏程序知識對于今后在數(shù)控行業(yè)的發(fā)展還是很有必要的。
一個(gè)優(yōu)秀的數(shù)控編程技術(shù)人員應(yīng)不僅滿足編寫出零件輪廓的加工程序,還應(yīng)做到所編寫的程序加工效率高、工藝性好、工藝參數(shù)選用合理、加工出來的零件合格率高、刀具壽命長、加工過程對機(jī)床壽命影響小。另外學(xué)好數(shù)控編程技術(shù)并不僅僅在于一朝一夕的努力刻苦學(xué)習(xí),必須通過長期堅(jiān)持不懈的努力鉆研和實(shí)際操作經(jīng)驗(yàn)的積累才能培養(yǎng)出優(yōu)秀的數(shù)控技術(shù)人才。
Java數(shù)據(jù)庫編程中的幾個(gè)常用技巧
1、java數(shù)據(jù)庫操作基本流程
2、幾個(gè)常用的重要技巧:
可滾動、更新的記錄集
批量更新
事務(wù)處理
java數(shù)據(jù)庫操作基本流程:取得數(shù)據(jù)庫連接 - 執(zhí)行sql語句 - 處理執(zhí)行結(jié)果 - 釋放數(shù)據(jù)庫連接
1、取得數(shù)據(jù)庫連接
1)用DriverManager取數(shù)據(jù)庫連接
例子:
String className,url,uid,pwd;
className = "oracle.jdbc.driver.OracleDriver";
url = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr;
uid = "system";
pwd = "manager";
Class.forName(className);
Connection cn = DriverManager.getConnection(url,uid,pwd);
2)用jndi(java的命名和目錄服務(wù))方式
例子
String jndi = "jdbc/db";
Context ctx = (Context) new InitialContext().lookup("java:comp/env");
DataSource ds = (DataSource) ctx.lookup(jndi);
Connection cn = ds.getConnection();
多用于jsp中
2、執(zhí)行sql語句
1)用Statement來執(zhí)行sql語句
String sql;
Statement sm = cn.createStatement();
sm.executeQuery(sql); // 執(zhí)行數(shù)據(jù)查詢語句(select)
sm.executeUpdate(sql); // 執(zhí)行數(shù)據(jù)更新語句(、update、、drop等)statement.close();
2)用PreparedStatement來執(zhí)行sql語句
String sql;
sql = " into user (id,name) values (?,?)";
PreparedStatement ps = cn.prepareStatement(sql);
ps.setInt(1,xxx);
ps.setString(2,xxx);
...
ResultSet rs = ps.executeQuery(); // 查詢
int c = ps.executeUpdate(); // 更新
3、處理執(zhí)行結(jié)果
查詢語句,返回記錄集ResultSet。
更新語句,返回?cái)?shù)字,表示該更新影響的記錄數(shù)。
ResultSet的方法:
1、next(),將游標(biāo)往后移動一行,如果成功返回true;否則返回false。
2、getInt("id")或getSting("name"),返回當(dāng)前游標(biāo)下某個(gè)字段的值。
3、釋放連接。
cn.close();
一般,先關(guān)閉ResultSet,然后關(guān)閉Statement(或者PreparedStatement);最后關(guān)閉Connection
可滾動、更新的記錄集
1、創(chuàng)建可滾動、更新的Statement
Statement sm = cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,ResultSet.CONCUR_READ_ONLY);
該Statement取得的ResultSet就是可滾動的
2、創(chuàng)建PreparedStatement時(shí)指定參數(shù)
PreparedStatemet ps = cn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet.absolute(9000);
批量更新
1、Statement
Statement sm = cn.createStatement();
sm.addBatch(sql1);
sm.addBatch(sql2);
...
sm.executeBatch()
一個(gè)Statement對象,可以執(zhí)行多個(gè)sql語句以后,批量更新。這多個(gè)語句可以是、update、等或兼有
2、PreparedStatement
PreparedStatement ps = cn.preparedStatement(sql);
{
ps.setXXX(1,xxx);
...
ps.addBatch();
}
ps.executeBatch();
一個(gè)PreparedStatement,可以把一個(gè)sql語句,變換參數(shù)多次執(zhí)行,一次更新。
事務(wù)的處理
1、關(guān)閉Connection的自動提交
cn.setAutoCommit(false);
2、執(zhí)行一系列sql語句
要點(diǎn):執(zhí)行每一個(gè)新的sql語句前,上一次執(zhí)行sql語句的Statement(或者PreparedStatemet)必須先close
Statement sm ;
sm = cn.createStatement( into user...);
sm.executeUpdate();
sm.close();
sm = cn.createStatement(" into corp...);
sm.executeUpdate();
sm.close();
3、提交
cn.commit();
4、如果發(fā)生異常,那么回滾
cn.rollback();
【如何學(xué)好數(shù)控車床編程】相關(guān)文章:
數(shù)控車床編程與操作08-17
教你如何學(xué)好工程制圖10-15
法國留學(xué)時(shí)如何學(xué)好法語10-25
零基礎(chǔ)又如何,起點(diǎn)低照樣學(xué)好英語10-21
數(shù)控車床的日常維護(hù)08-12
赴美國留學(xué)前期如何讓孩子學(xué)好SSAT08-26
數(shù)控車床的操作方法03-24
數(shù)控車床加工工藝技巧05-27
數(shù)控編程M代碼大全03-22