iCAx开思网

标题: 【求助】五轴后处理插入点问题,急!!!!!! [打印本页]

作者: jisx0404    时间: 2004-3-3 17:53
标题: 【求助】五轴后处理插入点问题,急!!!!!!
五轴cb双摆头,用lintol指令后,后处理时会在c轴转角大时,插入点,x、y、z、i、j、k这些点是怎样插入的?看上去好象不是线性插入的。我想用vb也插入这些点。
请高手指教,谢谢!!
作者: jisx0404    时间: 2004-3-5 09:12
老大快来!!
高手快来!!
谢谢!!
作者: 我爱计算机    时间: 2004-3-5 09:54
没听懂您问什么东西?
作者: jisx0404    时间: 2004-3-5 10:38
我爱计算机 wrote:
没听懂您问什么东西?

  
不用lintol指令,ug程序是10000个数据点,后处理后的nc程序还是10000个数据点,用lintol指令,后处理后绝对大于10000个数据点,可能是15000个数据点,或者更多个的数据点,这些点仅在c轴转角较大时插入,这些多出来的数据点是怎样插入的?是按什么原则插入的?x、y、z、i、j、k是如何确定的?
而且这些插入点和提高精度插入的点是很大的不同,如b是0.582到0.551,c是-106.3到-64.5,lintol指令插入的点,b在0.582到0.551之间,而提高精度插入的点b可能是0.293。
明白了吗?
作者: zhangcanwei    时间: 2004-3-7 09:57
你可以先做个三轴程序,然后,插入一些点,看看xyz是否是线性插入的。
  
我从来没用过ug后置处理的插入命令,据我估计,还是线性插入的。点坐标按照线性计算。两点之间的刀轴矢量是按照角度均匀变化计算。首先计算两个矢量夹角,然后等分角度。
  
    数学实现方法:
    把两个矢量平移至坐标系原点,计算夹角。计算书矢量积得出新的矢量。然后,第一个矢量绕新矢量逐步旋转至第二个矢量。
    用以上方法,就可以计算出一系列插入点,这些点再经过后置处理,就可以了。即便是线性插入,经过后置处理后,也看不出来,因为五轴计算时,角度变化对XYZ也有影响。
作者: zhangcanwei    时间: 2004-3-7 10:10
下面是AC标准五轴的VB计算程序
PS()是数组。
ps(2)=X
ps(3)=Y
ps(4)=Z
ps(5)=I
ps(6)=J
ps(7)=K
ENDOFPI-圆周率倒数,这是个常量
  
Private Sub mcs_07(ps() As Double)  '标准五轴(A,C)座标转换过程
Dim xt As Double, yt As Double, zt As Double'xt yt zt 老的xyz数据
Dim it As Double, jt As Double, kt As Double‘老的ijk数据
Dim ax As Double, ay As Double, az As Double
Dim t_c As Double
Dim a As Double, c As Double'AC数据
Dim delat_2 As Double, delat_3 As Double, delat_4 As Double'机床坐标系与工件坐标系的原点差值
kt = 1
c = 0
  
xt = ps(2)
yt = ps(3)
zt = ps(4)
  
it = ps(5)
jt = ps(6)
kt = ps(7)
  
ax = Sgn(it)
ay = Sgn(jt)
az = Sgn(kt) '取正负号
  
If ax = 0 Then
         t_c = PI / 2
Else
         t_c = Atn(Abs(jt / it)) 't_c---C轴数值预准备
End If
  
If az = 0 Then
      a = PI / 2
ElseIf az > 0 Then
      a = Atn(Sqr(it * it + jt * jt) / kt)
Else
      Load Form5
      Form5.Print "  报警信息:"
      Form5.Print "  " & file_name(Cls_Index) & "文件的刀轴矢量方向错误! 程序中止."
      Print #2, Chr$(13) + Chr$(10) + path_fname + " 文件的刀轴矢量方向错误!"
      Form5.Show 1
      Exit Sub
End If
   
If ax >= 0 And ay >= 0 Then c = PI / 2 + t_c
If ax <= 0 And ay >= 0 Then c = 1.5 * PI - t_c
If ax <= 0 And ay <= 0 Then c = 1.5 * PI + t_c
If ax >= 0 And ay <= 0 Then c = PI / 2 - t_c
If ax = 0 And ay = 0 Then c = 0  '求C轴数值
  
delat_2 = x_dist * Cos(c) + y_dist * Sin(c)
delat_3 = y_dist * Cos(c) * Cos(a) - x_dist * Sin(c) * Cos(a) + z_dist * Sin(a)
delat_4 = x_dist * Sin(c) * Sin(a) - y_dist * Cos(c) * Sin(a) + z_dist * Cos(a)
  
ps(2) = xt * Cos(c) + yt * Sin(c) + delat_2
ps(3) = yt * Cos(c) * Cos(a) - xt * Sin(c) * Cos(a) + zt * Sin(a) + delat_3
ps(4) = xt * Sin(c) * Sin(a) - yt * Cos(c) * Sin(a) + zt * Cos(a) + delat_4
   
ps(11) = EndOfPI * a
ps(12) = 0
ps(13) = EndOfPI * c
  
End Sub
作者: jisx0404    时间: 2004-3-8 15:26
非常感谢!!
az = Sgn(kt) '取正负号 ,Sgn() 是自定义函数?
  
ax、ay也有正负号 问题?
是不是在曲面扭曲过渡区优先以a轴取正——负或负——正,c轴在用zig加工方式下c轴limt问题能较好解决,c轴大角度转动问题能较好解决?
  
ug的插入点c、b角度没有均分。
作者: sinderal    时间: 2006-8-10 15:36
GPOst裡有 Lintol的 設置..
作者: mstang    时间: 2006-8-12 14:19
原帖由 zhangcanwei 于 2004-3-7 10:10 发表
下面是AC标准五轴的VB计算程序
PS()是数组。
ps(2)=X
ps(3)=Y
ps(4)=Z
ps(5)=I
ps(6)=J
ps(7)=K
ENDOFPI-圆周率倒数,这是个常量
  
Private Sub mcs_07(ps() As Double)  '标准五轴(A,C)座标转 ...


感谢张兄!
作者: mstang    时间: 2006-8-12 14:32
原帖由 zhangcanwei 于 2004-3-7 10:10 发表
下面是AC标准五轴的VB计算程序
PS()是数组。
ps(2)=X
ps(3)=Y
ps(4)=Z
ps(5)=I
ps(6)=J
ps(7)=K
ENDOFPI-圆周率倒数,这是个常量
  
Private Sub mcs_07(ps() As Double)  '标准五轴(A,C)座标转 ...


感谢张兄!
作者: xzjhuadian    时间: 2010-2-21 21:08
看看 学习一下
作者: qingwawanz    时间: 2016-5-24 12:13
相互学习,共同进步!~
作者: qingwawanz    时间: 2016-6-1 18:51
相互学习,共同进步!~




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3