技術文章
數(shù)控加工程序仿真圖形的生成
閱讀:110 發(fā)布時間:2020-8-11數(shù)控加工代碼的識別
為了完成數(shù)控加工程序仿真圖形的生成,要求VB程序能識別數(shù)控代碼,比如G01直 線插補、G03圓弧插補等,然后將程序轉(zhuǎn)入相應的指令模塊中,進行插補運算及顯示[36]。 數(shù)控加工中心中使用的典型語句模式為[36]:
N□□□G□□G□□G□□X±□□□Y±□□□Z±□□□I□□□J□□□K□□□F
□□S□□T□□M□□M□□
其中□代表一位十進制數(shù)字。
基于PMAC加工中心數(shù)控系統(tǒng)采取直接從能顯示數(shù)控代碼的文本框中讀取數(shù)控代碼, 再進一步分析的方法。數(shù)控代碼的識別過程是:直接將文本框中的數(shù)控代碼讀入到字符竄 變量中,然后根據(jù)數(shù)控加工代碼的每一行的結(jié)束標志”;”,來將其分割成一行一行的代碼, 放入字符竄數(shù)組,再分析字符竄數(shù)組的每一個元素即每一行數(shù)控代碼[36]。在數(shù)控代碼的分 析過程中,考慮到數(shù)控系統(tǒng)只是進行圖形仿真,所以在對代碼進行識別的時候,關鍵就是 識別出G代碼、X代碼、R代碼等[36]。程序識別的關鍵語句如下:
t1 = Split (stra1, ";") '以符號“;”進行分行
i = 1
For i = 1 To UBound (t1) - 1
For nextchar = 8 To Len (t1 (i))
Select Case Mid (t1 (i), nextchar, 1)
Case "G" '提取字母 G
lg = InStr(nextchar, t1(i), "G",1)
num = Mid (t1(i),lg + 1,2)
Select Case num
Case "02" Text2.Text = "G02" n = 2
Case "01" n = 1
……
End Select
Case "X" '提取字母 X
j = InStr (t1 (i),"X")
x(i) = Val(Mid(t1(i),j + 1,3)) '提取 XY 后面的數(shù)值,放到數(shù)組 X(i),Y(i)里面
……
End Select
Next nextchar
Dim yanse
If n = "" ThenElseIf n = 1 Or n = 0 Then
If n = 0 Then yanse = vbGreen
Else yanse = vbBlack
End If
Call 直線(dqdx,dqdy,CDbl(x(i)),CDbl(y(i)),yanse) '調(diào)用直線插補子程序
dqdx = CDbl(x(i))
dqdy = CDbl(y(i))
Else If n = 2 Then
Call 圓弧(dqdx,dqdy,CDbl(x(i)),CDbl(y(i)),dRadius) '調(diào)用圓弧插補子程序
dqdx = CDbl(x(i))
dqdy = CDbl(y(i))
End If
Next i
2.圓弧插補R編程
在數(shù)控零件加工圖紙上,一般都用半徑R來表示圓弧,故R編程格式對于數(shù)控程序員 來說是非常便利的[37]。但是,在數(shù)控系統(tǒng)內(nèi)部必須知道圓心的坐標,才能進行圓弧插補[37]。 因此,在R編程方式下,數(shù)控系統(tǒng)需要解決已知兩點的坐標和圓弧半徑,求解圓心坐標的 問題[37]。影響圓心坐標的因素很多,如圓弧的長短、順時針走刀、逆時針走刀以及起止點 的相對位置等,如圖3-8所示,假設已知圓弧半徑R、起點A(Xl,yi)和終點B(x2, y2),滿 足條件的圓心有兩個OKXi,Y2),連接AB和ChCb,其交點坐標為M(xm,
ym)。利用矢量算法簡單快捷的求出圓心坐標,其計算圓心的關鍵公式為:如果弧AB是G02的劣弧,如圖3-8(a)所示,其圓心為02,此圓心02的坐標是:
如果弧AB是G02的優(yōu)弧如圖3-8(b)所示,其圓心為,此圓心Ch的坐標是:
本文采摘自“基于PMAC的加工中心開放式數(shù)控系統(tǒng)研究”,因為編輯困難導致有些函數(shù)、表格、圖片、內(nèi)容無法顯示,有需要者可以在網(wǎng)絡中查找相關文章!
本文由伯特利數(shù)控整理發(fā)表文章均來自網(wǎng)絡僅供學習參考,轉(zhuǎn)載請注明!
相關產(chǎn)品可查閱:介紹頁(線軌加工中心)、介紹頁(龍門加工中心)、介紹頁(臥式加工中心)