📄 主界面.frm
字号:
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 + -