分享好友 文章首页 频道列表

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

    普通会员

    小黑创作者

    1年前-来自四川省 TA的动态

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


举报

版权声明:本站部分内容文章及图片来自互联网或自媒体,版权归属于原作者。如内容、图片有任何版权侵权问题,请联系我们处理,我们将在第一时间删除内容。

免责声明:数控信息网发布此文目的在于促进信息交流,不存在盈利性目的,此文观点与本站立场无关,不承担任何责任。未经证实的信息仅供参考,据此操作风险自担。如遇虚假诈骗信息,请立即举报

反对 0
收藏 0
打赏 0
评论 0