Hello Guest it is March 28, 2024, 11:31:14 AM

Author Topic: Y axis manual input  (Read 3829 times)

0 Members and 1 Guest are viewing this topic.

Re: Y axis manual input
« Reply #10 on: January 05, 2019, 04:32:22 PM »
TPS
I am extremely impressed with your code writing ability....I can write some basic stuff, but this is awesome

Is there any way to make the number appear in the DRO as you are entering it, like it shows in the pop up num pad?

I will gladly share the screen set I am designing with you when I'm done.....

Offline TPS

*
  •  2,501 2,501
    • View Profile
Re: Y axis manual input
« Reply #11 on: January 06, 2019, 04:11:38 AM »
hi tmax1,

here the code with "online update" of the DRO during Input.

Code: [Select]
Global value As String
Global DroNum  As Integer

Sub Main
'declare variables
Dim YPos As Double
Dim OldDroValue As Double
Dim YMinPos As Double
Dim YMaxPos As Double

'preset the variables
YMinPos = 1.0
YMaxPos = 50.0
DroNum  = 1201

'get the actual DRO value
OldDroValue = GetOemDro(DroNum)

'show the virtual keyboard
call NumericKeyboard(DroNum,YMinPos,YMaxPos)

'get the new DRO value
YPos = GetOEMDro(DroNum)


'check that the entered value has changed
If YPos <> OldDroValue Then
'doe the move
Code "G0Y"+CStr(YPos)
Message "driving Y to: " & YPos
End If
End Sub



'TPS 01.12.2017
'numerische Eingabe
Function NumericKeyboard(ByVal DRONum as Integer , ByVal Min as Double , ByVal Max as Double) As Double
Dim title as String
value = "" 'GetOemDRO(DRONum)
title = Header


Begin Dialog UserDialog1 60,60, 105, 210, "input value:"  , .Enable

PushButton 10, 10, 25, 25, "7", .but7
PushButton 40, 10, 25, 25, "8", .but8
PushButton 70, 10, 25, 25, "9", .but9

PushButton 10, 40, 25, 25, "4", .but4
PushButton 40, 40, 25, 25, "5", .but5
PushButton 70, 40, 25, 25, "6", .but6

PushButton 10, 70, 25, 25, "1", .but1
PushButton 40, 70, 25, 25, "2", .but2
PushButton 70, 70, 25, 25, "3", .but3

PushButton 10, 100, 25, 25, ".", .butD
PushButton 40, 100, 25, 25, "0", .but0
PushButton 70, 100, 25, 25, "<-", .butB

PushButton 10, 130, 25, 25, "+/-", .butN
PushButton 40, 130, 25, 25, "Del", .butDel

TextBox 10, 160, 85, 18, .FText
PushButton 10, 185, 40, 21,"OK", .OK
CancelButton 55, 185, 40, 21
End Dialog


Dim Dlg1 As UserDialog1

Dlg1.FText = CStr(value)
x = Dialog( Dlg1 )

NumericKeyboard = CDbl(Dlg1.FText)
If CDbl(Dlg1.FText) < Min Then NumericKeyboard = Min
If CDbl(Dlg1.FText) > Max Then NumericKeyboard = Max

SetOEMDro(DRONum,NumericKeyboard)
End Function

Function Enable( ControlID$, Action%, SuppValue%)

Select Case Action%
Case 1

Case 2 'Button wurde gerückt
If ControlID$ = "but0" Then
value = CStr(value) + "0"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "but1" Then
value = CStr(value) + "1"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "but2" Then
value = CStr(value) + "2"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "but3" Then
value = CStr(value) + "3"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "but4" Then
value = CStr(value) + "4"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "but5" Then
value = CStr(value) + "5"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "but6" Then
value = CStr(value) + "6"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "but7" Then
value = CStr(value) + "7"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "but8" Then
value = CStr(value) + "8"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "but9" Then
value = CStr(value) + "9"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "butD" Then
   If InStr(1,value,".") = 0 Then
value = CStr(value) + "."
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
   End If
End If
If ControlID$ = "butB" Then
value = Left(value,Len(value)-1)
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "butN" Then
If Left(value,1) = "-" Then
value = "+" + CStr(Right(value,Len(value)-1))
Else
If Left(value,1) = "+" Then
value = "-" + CStr(Right(value,Len(value)-1))
Else
value = "-" + CStr(value)
End If
End If
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "butDel" Then
value = ""
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "OK" Then
Enable = -1
End If
Case 3 'Text verändert
'MsgBox Dlg1.FText
Case Else
End Select

'Wert zurückgeben
If Enable = -1 Then
Enable = value
End If

End Function   
anything is possible, just try to do it.
if you find some mistakes, in my bad bavarian english,they are yours.
Re: Y axis manual input
« Reply #12 on: January 06, 2019, 07:25:45 PM »
Works Perfect, thank you so much!