| 作者 | 主题 |
|---|---|
|
huangdongbing 侠士 经验值:1049 发帖数:534 精华帖:7 |
楼主
主题:小于半圆如何找正圆心
卧式加工中心加工工件。有一工件,圆弧小于180度,如何用寻边器找正圆弧的中心?请各位高手发表见解!
|
|
huangdongbing 侠士 经验值:1049 发帖数:534 精华帖:7 |
楼
主题:回复:小于半圆如何找正圆心
找到方法了
设三点为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坐标 这个程序只是草草编的,没有完善 本人已经试过,很好用,而且很准的!!!! |