技术论坛

 回复:小于半圆如何找正圆心

返回主题列表
作者 主题
huangdongbing
侠士

经验值:1049
发帖数:534
精华帖:7
楼主    2007-07-16 19:46:33
主题:小于半圆如何找正圆心
卧式加工中心加工工件。有一工件,圆弧小于180度,如何用寻边器找正圆弧的中心?请各位高手发表见解!
huangdongbing
侠士

经验值:1049
发帖数:534
精华帖:7
    2007-07-19 20:00:09
精华帖  主题:回复:小于半圆如何找正圆心
找到方法了
设三点为P1(X1,Y1) P2(X2,Y2) P3(X3,Y3) 圆心为P0(X,Y)
利用三角形的外接圆方程:
(X-X1)^2+(Y-Y1)^2=(X-X2)^2+(Y-Y2)^2=(X-X3)^2+(Y-Y3)^2
推导出如下公式:
a=x1(y2-y3)+x2(y3-y1)+x3(y1-y2)
b=(x1^2+y1^2-x2^2-y2^2)/2
c=(x1^2+y1^2-x3^2-y3^2)/2
d=b(y1-y3)-c(y1-y2)
e=c(x1-x2)-b(x1-x3)
半径:r=SQRT((d/a-x1)^2+(e/a-y1)^2
圆心坐标:(d/a,e/a)

编制一个简单程序:
R11=$AA_IM[X]
R12=$AA_IM[Y]
M0
R21=$AA_IM[X]
R22=$AA_IM[Y]
M0
R31=$AA_IM[X]
R32=$AA_IM[Y]
R1=R11*(R22-R32)+R21*(R32-R12)+R31*(R12-R22)
IF R1==0 GOTO AAA
R2=(POT(R11)+POT(R12)-POT(R21)-POT(R22))/2
R3=(POT(R11)+POT(R12)-POT(R31)-POT(R32))/2
R4=R1*(R12-R32)-R3*(R12-R22)
R5=R3*(R11-R21)-R2*(R11-R31)
R97=SQRT(POT(R4/R1-R11)+POT(R5/R1-R12))
R98=R4/R1
R99=R5/R1
AAA:M2

R1为零时,说明三点一线,所以跳到程序结尾
R97为半径,R98为X坐标,R99为Y坐标

这个程序只是草草编的,没有完善
本人已经试过,很好用,而且很准的!!!!
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。