技术论坛

西门子840D 已知空间三点怎么编程求圆心半径?

作者 主题
新手

经验值: 3
发帖数: 1
精华帖: 0
主题:【求助】西门子840D 已知空间三点怎么编程求圆心半径?


只看楼主 楼主 2021-07-30 16:35:58

西门子840D 已知空间三点怎么编程求圆心半径?


 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1707595&b_id=20&s_id=0&num=3

侠客

经验值: 610
发帖数: 79
精华帖: 1
回复:西门子840D 已知空间三点怎么编程求圆心半径?


只看楼主 3楼 2021-08-01 19:34:47

R1=第1点X坐标

R2=第1点Y坐标

R3=第2点X坐标

R4=第2点Y坐标

R5=第3点X坐标

R6=第3点Y坐标

R91=R1-R3

R92=R2-R4 

R93=R1-R5 

R94=R2-R6

R95=((POT(R1)-POT(R3))-(POT(R4)-POT(R2)))/2 

R96=((POT(R1)-POT(R5))-(POT(R6)-POT(R2)))/2

R97=-((R94*R95-R92*R96)/(R92*R93-R91*R94))         ;圆心X坐标

R98=-((R91*R96-R93*R95)/(R92*R93-R91*R94))         ;圆心Y坐标

R99=SQRT(POT(R1-R97)+POT(R2-R98))                     ;半径


下面是个验证程序

R11=464.765                                                                ;圆心X坐标

R12=755.356                                                               ;圆心Y坐标

R13=863.34                                                                  ;圆半径

R14=1                                                                           ;圆上第1点角度

R15=2                                                                           ;圆上第2点角度

R16=3                                                                           ;圆上第3点角度


R1=R11+R13*COS(R14)                                               ;圆上第1点X坐标

R2=R12+R13*SIN(R14)                                                 ;圆上第1点Y坐标

R3=R11+R13*COS(R15)                                                ;圆上第2点X坐标

R4=R12+R13*SIN(R15)                                                 ;圆上第2点Y坐标

R5=R11+R13*COS(R16)                                                ;圆上第3点X坐标

R6=R12+R13*SIN(R16)                                                ;圆上第3点Y坐标


IF (R1==R3)OR(R1==R5)OR(R3==R5)OR(R2==R4)OR(R2==R6)OR(R4==R6)     ;假如三点中有任意两点在水平或垂直方向相同

IF ((R1==R3)AND(R3==R5))OR((R2==R4)AND(R4==R6)) GOTO ERROR01     ;假如三点都在水平或垂直方向上跳跃到提示信息

ELSE

IF ((R4-R2)/(R3-R1))==((R6-R2)/(R5-R1)) GOTO ERROR01     ;假如三点在任意一条斜线上跳跃到提示信息

ENDIF


R91=R1-R3

R92=R2-R4 

R93=R1-R5 

R94=R2-R6

R95=((POT(R1)-POT(R3))-(POT(R4)-POT(R2)))/2 

R96=((POT(R1)-POT(R5))-(POT(R6)-POT(R2)))/2

R97=-((R94*R95-R92*R96)/(R92*R93-R91*R94))     ;计算出圆心X坐标,应和R11相同

R98=-((R91*R96-R93*R95)/(R92*R93-R91*R94))     ;计算出圆心Y坐标,应和R12相同

R99=SQRT(POT(R1-R97)+POT(R2-R98))                  ;计算出圆半径,应和R13相同

MSG("圆心X坐标R97="<<R97<<",圆心Y坐标R98="<<R98<<",半径R99="<<R99)

M0

M30

ERROR01:

MSG("三点在一条直线上")

M0

M30



 
以下网友喜欢您的帖子:

  
版主

经验值: 38719
发帖数: 10357
精华帖: 72
回复:西门子840D 已知空间三点怎么编程求圆心半径?


只看楼主 1楼 2021-07-30 17:04:48

如果需要自动取圆心,那就要通过含数做子程序。


西门子的多年使用者http://yinshenren.ys168.com/、
以下网友喜欢您的帖子:

  
侠士

经验值: 1533
发帖数: 185
精华帖: 2
回复:西门子840D 已知空间三点怎么编程求圆心半径?


只看楼主 2楼 2021-07-31 19:44:22

可以参考一下我的这个帖:

http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1707733&b_id=20&s_id=106&pno=0


 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
西门子840D 已知空间三点怎么编程求圆心半径?
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。