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

📄 主界面.frm

📁 用vb写的数控仿真系统
💻 FRM
📖 第 1 页 / 共 4 页
字号:
    TempLTXT = Replace(TempLTXT, Chr(10), "")
    Shell "NotePad.exe", vbNormalFocus
    SendKeys TempLTXT
  End If
End Sub

Private Sub MENU_HowToCircle1_Click()
  MENU_HowToCircle1.Checked = True
  MENU_HowToCircle2.Checked = False
  HowDC = False
End Sub

Private Sub MENU_HowToCircle2_Click()
  MENU_HowToCircle2.Checked = True
  MENU_HowToCircle1.Checked = False
  HowDC = True
End Sub


Private Sub Menu_LineWidth_Click()    '弹出设置线宽
   Dim INPUTSIZE As String
   INPUTSIZE = InputBox("请输入线宽大小,必须为正整数!!!" & vbCrLf & vbCrLf & vbCrLf & "当前线宽为: " & LineW, "设置比例")
   If INPUTSIZE <> "" And Val(INPUTSIZE) > 0 Then
     LineW = Val(INPUTSIZE)
   End If
End Sub

Private Sub MENU_NEW_Click()
  lblState.Caption = "新建文件"
  CodeEditor.Text = ""
End Sub




Private Sub MENU_OPEN_Click()  '打开文件
   lblState.Caption = "打开文件"
   Dim Inputdata As String
   cmd1.Filter = "数控代码文件(NC)|*.NC|所有文件|*.*"
   cmd1.FileName = ""
   cmd1.ShowOpen
   If cmd1.FileName <> "" Then
      CodeEditor.Text = ""
      CodeEditor.SetFocus
      Open cmd1.FileName For Input As #1
      Line Input #1, Inputdata
      If FileLen(cmd1.FileName) > 10240 Then   '如果文件小于10K,就用支持颜色代码
         CodeEditor.FileName = cmd1.FileName
         CodeEditor.SelStart = 0
         CodeEditor.SelLength = Len(CodeEditor.Text)
         CodeEditor.SelColor = vbYellow
         CodeEditor.SelLength = 0
         Close #1
         Exit Sub
      End If
      SendKeys Inputdata
      Do While Not EOF(1)
         Line Input #1, Inputdata
         SendKeys Chr(13) & Inputdata
      Loop
      Close #1
      OPENf = True
   End If
End Sub
Private Sub MENU_OPERATE_Click()
  lblState.Caption = "编译菜单"
End Sub
Private Sub MENU_PASTE_Click()
   lblState.Caption = "粘帖文本"
   Dim ClipboardTxt As String
   ClipboardTxt = Replace(Clipboard.GetText, Chr(10), "")
   SendKeys ClipboardTxt
End Sub

Private Sub MENU_PAUSE_Click()   '暂停
   If PauseRun = True Then
     MENU_PAUSE.Caption = "暂停"
     frmmain.lblState.Caption = "继续运行"
     PauseRun = False      '暂停标记
   Else
     MENU_PAUSE.Caption = "继续运行"
     frmmain.lblState.Caption = "暂停运行"
     Call G04
   End If
End Sub


Private Sub MENU_RUN_Click()   '运行
    Dim I As Integer, TempCode() As String
    Static RunFirst As Integer
    If StopRun = True Then
       RunFirst = 0     '先判断是否已经在运行了,则先停止,此处为标记
    End If
    If RunFirst = 0 Then
       RunFirst = 1     '先判断是否已经在运行了,则先停止,此处为标记
    ElseIf RunFirst = 1 Then
       StopRun = True
       Call MENU_STOP_Click   '如果已经在运行,则停止退出
       RunFirst = 0
       Exit Sub
    End If
    If VIEWXYZ = True Then    '视图效果:等轴测
       Line1.Visible = True
       Shape1.Visible = False
    Else                      '视图效果:平面
       Line1.Visible = False
       Shape1.Visible = True
    End If
    lblState.Caption = "编译运行仿真"
    If PauseRun = True Then   '判断是否为暂停,如果是,则继续运行,否则为从头开始运行
       PauseRun = False
       Exit Sub
    End If
    If CodeEditor.Text = "" Then   '判断有没有代码,如无则退出运行
      Exit Sub
    End If
    Call IniLoad                   '初始化
    Timer1.Enabled = True
    TempCode = Split(Replace(CodeEditor.Text, Chr(10), ""), Chr(13))    '分离每一行到数组
    If UBound(TempCode) <> 0 Then
       For I = 0 To UBound(TempCode)
          If Trim$(TempCode(I)) <> "" Then        '过滤空行
            If StopRun = False Then
                Me.Caption = "CNC数控编程仿真系统(作者:彭亚飞)——当前运行到第" & I + 1 & "行:" & TempCode(I)  '窗口标题栏显示运行到第几行
                Call TXTTOGRAPHIC(TempCode(I))    '调用代码分析过程
            End If
          End If
       Next I
    End If
    StopRun = True       '运行完毕为停止标记
    Me.Caption = "CNC数控编程仿真系统(作者:彭亚飞)"    '恢复标题栏文字
End Sub
Private Sub MENU_SAVE_Click()       '保存文件
   lblState.Caption = "保存文件"
   Dim Inputdata As String
   cmd1.Filter = "数控代码文件(NC)|*.NC|所有文件|*.*"
   cmd1.FileName = ""
   cmd1.ShowSave
   If cmd1.FileName <> "" Then
     CodeEditor.SaveFile cmd1.FileName, 1
     TEMPCODETEXT = CodeEditor.Text
   End If
End Sub

Private Sub MENU_SCALE_Click()      '设置比例
   Dim INPUTSIZE As String
   INPUTSIZE = InputBox("请输入比例大小,必须为正数!!!" & vbCrLf & vbCrLf & vbCrLf & "当前比例为: " & SCALESIZE, "设置比例")
   If INPUTSIZE <> "" Then
     SCALESIZE = Val(INPUTSIZE)
   End If
End Sub
Private Sub MENU_SELECT_Click()    '全选
   lblState.Caption = "选择文本"
   CodeEditor.SelStart = 0
   CodeEditor.SelLength = Len(CodeEditor.Text)
End Sub

Private Sub MENU_STANDER_Click()   '例子
  CodeEditor.Text = ""
  CodeEditor.SetFocus
  Clipboard.SetText LoadResString(101)
  SCALESIZE = 50
  Call MENU_PASTE_Click
End Sub
Private Sub MENU_Revolve_Click()   '例子
  CodeEditor.Text = ""
  CodeEditor.SetFocus
  Clipboard.SetText LoadResString(110)
  SCALESIZE = 20
  Call MENU_PASTE_Click
End Sub

Private Sub MENU_STOP_Click()
  frmmain.lblState.Caption = "停止执行"
  Call M30
End Sub





Private Sub MENU_VIEW_Click()
  frmmain.lblState.Caption = "选择视图模式"
End Sub

Private Sub MENU_XMIRROR_Click()   '例子
  CodeEditor.Text = ""
  CodeEditor.SetFocus
 Clipboard.SetText LoadResString(105)
  SCALESIZE = 50
  Call MENU_PASTE_Click
End Sub
Private Sub MENU_BAN_Click()   '例子
  CodeEditor.Text = ""
  CodeEditor.SetFocus
 Clipboard.SetText LoadResString(112)
  SCALESIZE = 15
  Call MENU_PASTE_Click
End Sub
Private Sub MENU_YMIRROR_Click()   '例子
  CodeEditor.Text = ""
  CodeEditor.SetFocus
 Clipboard.SetText LoadResString(106)
  SCALESIZE = 50
  Call MENU_PASTE_Click
End Sub
Private Sub MENU_MIRROR_Click()   '例子
  CodeEditor.Text = ""
  CodeEditor.SetFocus
 Clipboard.SetText LoadResString(109)
  SCALESIZE = 50
  Call MENU_PASTE_Click
End Sub

Private Sub MENU_CIRCLE_Click()   '例子
  CodeEditor.Text = ""
  CodeEditor.SetFocus
 Clipboard.SetText LoadResString(113)
  SCALESIZE = 20
  Call MENU_PASTE_Click
End Sub
Private Sub MENU_CIRCLE1_Click()   '例子
  CodeEditor.Text = ""
  CodeEditor.SetFocus
 Clipboard.SetText LoadResString(114)
  SCALESIZE = 20
  Call MENU_PASTE_Click
End Sub
Private Sub MENU_XY_Click()    '视图模式设置
  frmmain.lblState.Caption = "选择XY视图模式"
  If MENU_XY.Checked = False Then
    MENU_XY.Checked = True
    MENU_XYZ.Checked = False
    PicDraw.Cls
    PicDraw.DrawWidth = 1
    PicDraw.Line (0, PicDraw.ScaleTop - 300)-(0, 0), &HC0FFFF
    PicDraw.Line (0, 0)-(PicDraw.ScaleWidth / 2 - 300, 0), &HC0FFFF
    lblXYZ0(0).Top = -100
    lblXYZ0(0).Left = PicDraw.ScaleWidth / 2 - 400
    lblXYZ0(1).Top = PicDraw.ScaleTop - 300
    lblXYZ0(1).Left = -150
    lblXYZ0(3).Top = -100
    lblXYZ0(3).Left = 10
    lblXYZ0(2).Visible = False
  End If
   VIEWXYZ = False
   Shape1.Visible = True
   Line1.Visible = False
   Shape1.Left = SCALESIZE * (Val(txtTrue(0)) - Val(TXTOR(0)))
   Shape1.Top = SCALESIZE * (Val(txtTrue(1)) - Val(TXTOR(1)))
End Sub
Private Sub MENU_XYZ_Click()  '视图模式设置
  frmmain.lblState.Caption = "选择等轴测图模式"
  If MENU_XYZ.Checked = False Then
    MENU_XYZ.Checked = True
    MENU_XY.Checked = False
    PicDraw.Cls
    PicDraw.DrawWidth = 1
    PicDraw.Line (0, PicDraw.ScaleTop - 300)-(0, 0), &HC0FFFF
    PicDraw.Line (0, 0)-(PicDraw.ScaleWidth / 2 - 300, 0), &HC0FFFF
    PicDraw.Line (0, 0)-(2000 * Cos(225 * 6.28 / 360), 2000 * Sin(225 * 6.28 / 360)), &HC0FFFF
    lblXYZ0(2).Visible = True
    lblXYZ0(0).Top = 2000 * Sin(225 * 6.28 / 360)
    lblXYZ0(0).Left = 2000 * Cos(225 * 6.28 / 360)
    lblXYZ0(2).Top = PicDraw.ScaleTop - 300
    lblXYZ0(2).Left = -150
    lblXYZ0(1).Top = -100
    lblXYZ0(1).Left = PicDraw.ScaleWidth / 2 - 400
    lblXYZ0(3).Top = -100
    lblXYZ0(3).Left = 10
    PicDraw.DrawWidth = 2
  End If
   VIEWXYZ = True
   Shape1.Visible = False
   Line1.Visible = True
   Line1.X1 = SCALESIZE * (Val(txtTrue(0)) - Val(TXTOR(0))) * Sin(45 * 6.28 / 360) * Cos(225 * 6.28 / 360) + SCALESIZE * (Val(txtTrue(1)) - Val(TXTOR(1)))
   Line1.X2 = Line1.X1
   Line1.Y1 = SCALESIZE * (Val(txtTrue(0)) - Val(TXTOR(0))) * Sin(45 * 6.28 / 360) * Sin(225 * 6.28 / 360) + SCALESIZE * (Val(txtTrue(2)) - Val(TXTOR(2)))
   Line1.Y2 = Line1.Y1 + 300
End Sub



Private Sub PicDraw_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Button = 2 Then
    PopupMenu MENU_VIEW
  End If
End Sub
Private Sub Timer1_Timer()
    Static PRUN As Integer
    Line1.Visible = VIEWXYZ
    Shape1.Visible = Not VIEWXYZ
    If Val(LblCX) - CurrentNX < 0 Then     '显示脉冲状态
       lblX(0).BackColor = vbBlack
       lblX(1).BackColor = vbBlack
       lblX(2).BackColor = vbGreen
    ElseIf Val(LblCX) - CurrentNX > 0 Then
       lblX(0).BackColor = vbGreen
       lblX(1).BackColor = vbBlack
       lblX(2).BackColor = vbBlack
    Else
       lblX(0).BackColor = vbBlack
       lblX(1).BackColor = vbGreen
       lblX(2).BackColor = vbBlack
    End If
    If Val(LblCY) - CurrentNY < 0 Then
       lblY(0).BackColor = vbBlack
       lblY(1).BackColor = vbBlack
       lblY(2).BackColor = vbGreen
    ElseIf Val(LblCY) - CurrentNY > 0 Then
       lblY(0).BackColor = vbGreen
       lblY(1).BackColor = vbBlack
       lblY(2).BackColor = vbBlack
    Else
       lblY(0).BackColor = vbBlack
       lblY(1).BackColor = vbGreen
       lblY(2).BackColor = vbBlack
    End If
    If Val(LblCZ) - CurrentNZ < 0 Then
       LblZ(0).BackColor = vbBlack
       LblZ(1).BackColor = vbBlack
       LblZ(2).BackColor = vbGreen
    ElseIf Val(LblCZ) - CurrentNZ > 0 Then
       LblZ(0).BackColor = vbGreen
       LblZ(1).BackColor = vbBlack
       LblZ(2).BackColor = vbBlack
    Else
       LblZ(0).BackColor = vbBlack
       LblZ(2).BackColor = vbBlack
       LblZ(1).BackColor = vbGreen
    End If
   LblCX = Format(CurrentNX, "#0.00")     '显示当前坐标
   LblCY = Format(CurrentNY, "#0.00")
   LblCZ = Format(CurrentNZ, "#0.00")
   txtTrue(0) = CurrentNX + Val(TXTOR(0))  '显示机床当前坐标
   txtTrue(1) = CurrentNY + Val(TXTOR(1))
   txtTrue(2) = CurrentNZ + Val(TXTOR(2))
   LblV = CurrentNF
   If StopRun = True Then
      PRUN = PRUN + 1    '停止处理缓冲
   Else
      PRUN = 0
   End If
   If PRUN = 10 Then
     PRUN = 0
     Line1.Visible = False
     Shape1.Visible = False
     Timer1.Enabled = False
   End If
End Sub

Private Sub Timer2_Timer()   '用于菜单中弹出菜单
   If PopupConfig = True Then
     PopupConfig = False
     Call PicDraw_MouseDown(2, 0, 0, 0)
     Timer2.Enabled = False
   End If
End Sub
Private Sub MENU_DOG_Click()    '例子:可爱小狗
  CodeEditor.Text = ""
  CodeEditor.SetFocus
  Clipboard.SetText LoadResString(102)
  SCALESIZE = 15
  Call MENU_PASTE_Click
End Sub
Private Sub MENU_PEOPLE_Click()    '例子:卡通少女
  CodeEditor.Text = ""
  CodeEditor.SetFocus
  Clipboard.SetText LoadResString(103)
  SCALESIZE = 0.5
  Call MENU_PASTE_Click
End Sub
Private Sub MENU_LoadPG_Click()    '加载画G代码程序
  On Error Resume Next
  If Dir(App.Path & "\图形转换G代码.exe") <> "" Then
     Shell App.Path & "\图形转换G代码.exe"
  End If
End Sub

⌨️ 快捷键说明

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