首页 > 文章 > 数控插补

数字积分法(DDA)插补圆弧参考程序(VB)

       2023-05-29 来源:互联网热度:162评论:0
    广告
    核心提示:Sub插补() PSet (z原点, x原点), vbRed余数X = 0:余数Y = 0:余数Z = 0:插补记录= 0:过象限标志= 0:跨象限数量= 0If Opt逆圆= False Thenxx:跨象限数量=跨象限数量+ 1 Select Case象限标志 Case 1: '第一象限插补过象限预处理 Do Until (x动点对圆心- x终点对圆心) ^ 2 + (z动

Sub 插补()

        PSet (z原点, x原点), vbRed

        余数X = 0: 余数Y = 0: 余数Z = 0: 插补记录 = 0:

过象限标志 = 0: 跨象限数量 = 0

If Opt逆圆 = False Then

xx:             跨象限数量 = 跨象限数量 + 1

    Select Case 象限标志

        Case 1:   '第一象限插补

                   过象限预处理

                Do Until (x动点对圆心 - x终点对圆心) ^ 2 + (z动点对圆心 - z终点对圆心) ^ 2 <= 跨象限数量 ^ 2

                   If x动点对圆心 = 0 Then

                      象限标志 = 2:

                      过象限标志 = 1

                      GoTo xx

                   End If

                   插补公共

                   Line -Step(z步长 × 标志Z, -x步长 × 标志X), vbRed

               Loop

                   过象限标志 = 0

        Case 2:   '第二象限插补

                   过象限预处理

                Do Until (x动点对圆心 - x终点对圆心) ^ 2 + (z动点对圆心 - z终点对圆心) ^ 2 <= 跨象限数量 ^ 2

                   If x动点对圆心 = 0 Then

                      象限标志 = 3:

                      过象限标志 = 1

                      GoTo xx

                   End If

                   插补公共

                   Line -Step(-x步长 × 标志X, z步长 × 标志Z), vbRed

               Loop

                   过象限标志 = 0

        Case 3:   '第三象限插补

                   过象限预处理

                Do Until (x动点对圆心 - x终点对圆心) ^ 2 + (z动点对圆心 - z终点对圆心) ^ 2 <= 跨象限数量 ^ 2

                   If x动点对圆心 = 0 Then

                      象限标志 = 4:

                      过象限标志 = 1

                      GoTo xx

                   End If

                   插补公共

                   Line -Step(z步长 × 标志Z, -x步长 × 标志X), vbRed

               Loop

                   过象限标志 = 0

        Case 4:  '第四象限插补

                   过象限预处理

                Do Until (x动点对圆心 - x终点对圆心) ^ 2 + (z动点对圆心 - z终点对圆心) ^ 2 <= 跨象限数量 ^ 2

                   If x动点对圆心 = 0 Then

                      象限标志 = 1:

                      过象限标志 = 1

                      GoTo xx

                   End If

                   插补公共

                   Line -Step(-x步长 × 标志X, z步长 × 标志Z), vbRed

               Loop

                   过象限标志 = 0

    End Select

Else

xy:             跨象限数量 = 跨象限数量 + 1

    Select Case 象限标志

        Case 1:   '第一象限插补

                   过象限预处理

                Do Until (x动点对圆心 - x终点对圆心) ^ 2 + (z动点对圆心 - z终点对圆心) ^ 2 <= 跨象限数量 ^ 2

                   单步连续判断

                   If z动点对圆心 = 0 Then

                      象限标志 = 4:

                      过象限标志 = 1

                      GoTo xy

                   End If

                   插补公共

                   Line -Step(-z步长 × 标志Z, x步长 × 标志X), vbRed

               Loop

                   过象限标志 = 0

        Case 2:   '第二象限插补

                   过象限预处理

                Do Until (x动点对圆心 - x终点对圆心) ^ 2 + (z动点对圆心 - z终点对圆心) ^ 2 <= 跨象限数量 ^ 2

                   单步连续判断

                   If z动点对圆心 = 0 Then

                      象限标志 = 1:

                      过象限标志 = 1

                      GoTo xy

                   End If

                   插补公共

                   Line -Step(x步长 × 标志X, -z步长 × 标志Z), vbRed

               Loop

                   过象限标志 = 0

        Case 3:   '第三象限插补

                   过象限预处理

                Do Until (x动点对圆心 - x终点对圆心) ^ 2 + (z动点对圆心 - z终点对圆心) ^ 2 <= 跨象限数量 ^ 2

                   If z动点对圆心 = 0 Then

                      象限标志 = 2:

                      过象限标志 = 1

                      GoTo xy

                   End If

                   插补公共

                   Line -Step(-z步长 × 标志Z, x步长 × 标志X), vbRed

               Loop

                   过象限标志 = 0

        Case 4:  '第四象限插补

                   过象限预处理

                Do Until (x动点对圆心 - x终点对圆心) ^ 2 + (z动点对圆心 - z终点对圆心) ^ 2 <= 跨象限数量 ^ 2

                   If z动点对圆心 = 0 Then

                      象限标志 = 3:

                      过象限标志 = 1

                      GoTo xy

                   End If

                   插补公共

                   Line -Step(x步长 × 标志X, -z步长 × 标志Z), vbRed

               Loop

                   过象限标志 = 0

    End Select

cc: End If

End Sub


  • 信息来源:互联网
  • 版权声明:本站部分内容文章及图片来自互联网或自媒体,版权归属于原作者。如内容、图片有任何版权侵权问题,请联系我们处理,我们将在第一时间删除内容。
  • 免责声明:数控信息网发布此文目的在于促进信息交流,不存在盈利性目的,此文观点与本站立场无关,不承担任何责任。未经证实的信息仅供参考,据此操作风险自担。
  • 文本链接:https://skxx.site/news/show-4421.html
  • 小黑共发布427篇

  • 生成海报

    分享到微信

    分享到QQ

    更多分享

0相关评论
  • 小黑
这小子很懒什么也没留下。
  • 文章427
  • 浏览3498
  • 收藏0
  • 粉丝 0
    推荐图文