⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 module2.bas

📁 使用的是最小误差法的插补程序
💻 BAS
字号:
Attribute VB_Name = "modDraw"


'实现上端跳,上端跳和上径跳,下径跳的线形动态显示
Public Sub DrawLine(Angle As Single, JumpOne As Single, JumpTwo As Single, ByRef N As Integer)

Dim Color1 As Single
Dim Color2 As Single
 
Const k = 840
'设置单位,单位的转化
Const Unit1 = 1693 / 60      'Angle的单位值
Const Unit2 = 380            'Jump的单位值

Dim X1 As Double  '上端跳,上端跳和上径跳,下径跳的起点角度系坐标
Dim X2 As Double  '上端跳,上端跳和上径跳,下径跳的终点角度系坐标
Dim Y1 As Double  '上端跳,上端跳和上径跳,下径跳的起点跳动系坐标
Dim Y2 As Double  '上端跳,上端跳和上径跳,下径跳的终点跳动系坐标

Color1 = RGB(255, 0, 0)   '上端跳和上径跳的颜色:红色
Color2 = RGB(0, 0, 255)   '下端跳和下径跳的颜色:蓝色

'设置点的位置
X1 = (Angle - StepAngle) * Unit1 + k
Y1 = 1340 - JumpOne * Unit2

X2 = Angle * Unit1 + k
Y2 = 1340 - JumpTwo * Unit2

If JumpOne > 3# Then                '如果点的跳动量大于3.0,那么默认为3.0
    Y1 = 1340 - 3 * Unit2
End If

If JumpTwo > 3# Then                '如果点的跳动量大于3.0,那么默认为3.0
    Y2 = 1340 - 3 * Unit2
End If

If JumpOne < -3# Then               '如果点的跳动量大于3.0,那么默认为3.0
    Y1 = 1340 + 3 * Unit2
End If
  
If JumpTwo < -3# Then               '如果点的跳动量大于3.0,那么默认为3.0
     Y2 = 1340 + 3 * Unit2
End If
'绘制直线
Select Case N
    Case 1
        Main.PicDuan.Line (X1, Y1)-(X2, Y2), Color1
    Case 4
        Main.PicDuan.Line (X1, Y1)-(X2, Y2), Color2
    Case 2
        Main.PicJing.Line (X1, Y1)-(X2, Y2), Color1
    Case 3
        Main.PicJing.Line (X1, Y1)-(X2, Y2), Color2
End Select
End Sub
'显示产品等级统计数
Public Sub Display(DengJi As String)
Dim Percent As Single
Dim temp As String

'如果检测到某等级的产品则更新数据

Main.clJian.Caption = DengJi
Main.clJian.FontSize = 20

'If Main.clJian.Caption = DengJi Then
    Main.Frame3.Caption = "检测结果"
'Else: Main.Frame3.Caption = ""
'End If

Select Case DengJi
    Case "合格品"
        Counter(1) = Counter(1) + 1
        temp = Format(Counter(1), "000")
        Main.clTong(0).Caption = temp
    Case "一级处理品"
        Counter(2) = Counter(2) + 1
        temp = Format(Counter(2), "000")
        Main.clTong(1).Caption = temp
    Case "二级处理品"
        Counter(3) = Counter(3) + 1
        temp = Format(Counter(3), "000")
        Main.clTong(2).Caption = temp
    Case "返修品"
        Counter(4) = Counter(4) + 1
        temp = Format(Counter(4), "000")
        Main.clTong(3).Caption = temp
    Case "废品"
        Counter(5) = Counter(5) + 1
        temp = Format(Counter(5), "000")
        Main.clTong(4).Caption = temp
End Select
  Main.clTong(6).Caption = temp
 ProNumber = Counter(1) + Counter(2) + Counter(3) + Counter(4) + Counter(5)
 Main.clTong(5).Caption = ProNumber
 temp = Format(ProNumber, "0000")
 
Percent = 100 * ((Counter(4) + Counter(5))) / ProNumber

If Percent < 10 Then
    Main.clTong(6).Caption = Format(Percent, "0.00")
ElseIf Percent < 100 Then
    Main.clTong(6).Caption = Format(Percent, "00.00")
Else
    Main.clTong(6).Caption = Format(Percent, "000.00")
End If
End Sub
  '在面板上显示瞬时值和跳动量
Public Sub DisplayData(mydata As Single, i As Integer, k As Integer)
'K=1表示瞬时值,K=2表示跳动量
If k = 1 Then
    'If i = 0 Then
    '    Main.clSun(0).Caption = Format(mydata, "00.00")
    'ElseIf i = 1 Then
    '    Main.clSun(1) = Format(mydata, "00.00")
    'ElseIf i = 2 Then
    '    Main.clSun(2) = Format(mydata, "00.00")
    '    Main.clSun(3) = Format(mydata, "00.00")
    'End If
    Main.clSun(i).Caption = Format(mydata, "00.00")
Else
    'If i = 0 Then
        Main.clTiao(i).Caption = Format(mydata, "00.00")
    'ElseIf i = 1 Then
    '    Main.clTiao(1) = Format(mydata, "00.00")
    'ElseIf i = 2 Then
    '    Main.clTiao(2) = Format(mydata, "00.00")
    'Else
    '    Main.clTiao(3) = Format(mydata, "00.00")
    'End If
End If
End Sub
'-----------------------------------
'班统计数据清零
Public Sub ClearZero()
Dim l As Integer
For l = 1 To 5
Counter(l) = 0
Call Format(Counter(l), "000")
Next l
ProNumber = 0
Call Format(ProNumber, "0000")
Main.clTong(6).Caption = 100
End Sub

Public Sub DrawRadius1(AngleOne As Single, AngleTwo As Single, JumpOne As Single, JumpTwo As Single)

Dim X0 As Double
Dim Y0 As Double
Dim X1 As Double
Dim Y1 As Double
Dim X2 As Double
Dim Y2 As Double
Dim X3 As Double
Dim Y3 As Double
Dim X4 As Double
Dim Y4 As Double

Const pi = 3.1415926
Const R = 2000

AngleOne = AngleOne / DownRate
AngleTwo = AngleTwo / DownRate

'根据实际检测的结果画圆
X0 = frmDrawRadius.PicRadius.ScaleWidth / 2
Y0 = frmDrawRadius.PicRadius.ScaleHeight / 2

X1 = X0 - Cos(AngleOne * pi / 180) * (10 * JumpOne + R) '设置第一点的X坐标
Y1 = Y0 - Sin(AngleOne * pi / 180) * (10 * JumpOne + R) '设置第一点的Y坐标

X2 = X0 - Cos(AngleTwo * pi / 180) * (10 * JumpTwo + R) '设置第二点的X坐标
Y2 = Y0 - Sin(AngleTwo * pi / 180) * (10 * JumpTwo + R) '设置第二点的Y坐标

frmDrawRadius.PicRadius.Line (X1, Y1)-(X2, Y2), vbRed  '连接各点

'设置标准的圆
X3 = X0 - Cos(AngleOne * pi / 180) * R '设置第一点的X坐标
Y3 = Y0 - Sin(AngleOne * pi / 180) * R '设
'置第一点的Y坐标
X4 = X0 - Cos(AngleTwo * pi / 180) * R '设置第二点的X坐标
Y4 = Y0 - Sin(AngleTwo * pi / 180) * R '设置第二点的Y坐标

frmDrawRadius.PicRadius.Line (X3, Y3)-(X4, Y4), vbBlack '连接各点
End Sub

Public Sub DrawRadius2(AngleOne As Single, AngleTwo As Single, JumpOne As Single, JumpTwo As Single)

Dim X0 As Double
Dim Y0 As Double
Dim X1 As Double
Dim Y1 As Double
Dim X2 As Double
Dim Y2 As Double

Const pi = 3.1415926
Const R = 2000

AngleOne = AngleOne / DownRate
AngleTwo = AngleTwo / DownRate

'根据实际检测的结果画圆
X0 = frmDrawRadius.PicRadius.ScaleWidth / 2
Y0 = frmDrawRadius.PicRadius.ScaleHeight / 2

X1 = X0 - Cos(AngleOne * pi / 180) * (10 * JumpOne + R) '设置第一点的X坐标
Y1 = Y0 - Sin(AngleOne * pi / 180) * (10 * JumpOne + R) '设置第一点的Y坐标

X2 = X0 - Cos(AngleTwo * pi / 180) * (10 * JumpTwo + R) '设置第二点的X坐标
Y2 = Y0 - Sin(AngleTwo * pi / 180) * (10 * JumpTwo + R) '设置第二点的Y坐标

frmDrawRadius.PicRadius.Line (X1, Y1)-(X2, Y2), vbBlue '连接各点
End Sub

'Public Sub DrawRadius3(AngleOne As Single, AngleTwo As Single, JumpOne As Single, JumpTwo As Single)

'Dim X0 As Double
'Dim Y0 As Double
'Dim X1 As Double
'Dim Y1 As Double
'Dim X2 As Double
'Dim Y2 As Double

'Const pi = 3.1415926
'Const R = 2000

'根据实际检测的结果画圆
'X0 = frmDrawRadius.PicRadius.ScaleWidth / 2
'Y0 = frmDrawRadius.PicRadius.ScaleHeight / 2

'X1 = X0 - Cos(AngleOne * pi / 180) * (10 * JumpOne + R) '设置第一点的X坐标
'Y1 = Y0 - Sin(AngleOne * pi / 180) * (10 * JumpOne + R) '设置第一点的Y坐标

'X2 = X0 - Cos(AngleTwo * pi / 180) * (10 * JumpTwo + R) '设置第二点的X坐标
'Y2 = Y0 - Sin(AngleTwo * pi / 180) * (10 * JumpTwo + R) '设置第二点的Y坐标

'frmDrawRadius.PicRadius.Line (X1, Y1)-(X2, Y2), vbGreen '连接各点
' End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -