Buona Pasqua e buona serata a tutti,
torn24, provo a spiegarti quello che ho in testa, mi è difficile spiegare bene con la scrittura.
Ho creato una scheda personalizzata nel mach in cui ho messo dei controlli e dei pulsanti per poter muovere gli assi dei mm che mi occorrono nella fresatura di quel momento. Valorizzo il controllo e poi con un pulsante faccio iniziare la movimentazione per l'asse che mi occorre.
Così facendo freso come se avessi degli avanzamenti automatici per i 3 assi, compreso anche il feed rate, abbastanza pratici senza dover ricaricare con le freccette MDI o creare un Gcode ad occ.
Ora mi sono messo in testa di implementare questa .......chiamiamola procedura, con una macro facendo meno interventi di click possibili.
La mia idea era quella di iniziare la lavorazione rispondendo a dei MsgBox e poi finita la prima passata, continuare le altre passate facendo un solo click sullo stesso pulsante fino alla fine, magari facendo qualche spostamento manuale tra una passata e l'altra quando occorre. La mia è una piccola fresa e lavorando il ferro non posso fare passate che siano più di 0,5 mm sulla Z, soffre troppo.
Per fare questo mi serve un valore che rimanga memorizzato anche dopo finita la SUB, tipo la variabile GLOBAL.
Ti metto uno screenshot della schermata personalizzata e poi la sub che ho scritto.
Nella funzione faccio riferimento al primo textbox (quello della X) e a quello del FEED RATE che vengono valorizzati di volta in volta in questa scheda.
Scheda.jpg
Global varglobale As Integer
Sub Main()
Dim response
Dim button
Dim var, var1, var2, AxisNum
If varglobale>0 Then
response=MsgBox ("CONTINUARE IL LAVORO?" , 1 , "ATTENZIONE" )
If response =1 Then GoTo 6 Else Exit Sub
End If
response=MsgBox ("CONFERMARE INIZIO LAVORO?" , 4 , "ATTENZIONE POSIZIONARE L'UTENSILE VICINO AL PUNTO 0(ZERO)" )
If response = "6" Then GoTo 1 Else GoTo 2
1:
Begin Dialog GroupSampleA 331,132,220,96,"SELEZIONE DEGLI ASSI DA MOVIMENTARE"
OKButton 38,75,40,14
GroupBox 12,8,96,62,"ASSI DA SELEZIONARE",.GroupBox1
OptionGroup .OptionGroup1
OptionButton 20,24,40,8,"Z Axis",.OptionButton1
OptionButton 20,40,40,8,"X Axis",.OptionButton2
OptionButton 20,56,40,8,"Y Axis",.OptionButton3
OptionButton 67,24,40,8,"A Axis",.OptionButton4
'OptionButton 67,40,40,8,"B Axis",.OptionButton5
'OptionButton 67,56,40,8,"C Axis",.OptionButton6
End Dialog
Dim Dlg1 As GroupSampleA
Button = Dialog (Dlg1)
If Button = 0 Then
Exit Sub
End If
AxisNum = Dlg1.OptionGroup1
Select Case AxisNum
Case 0 'Z
3:
If GetOEMLED(1001)=true Then
var2="G91" ' sceglie il code G91
End If
If GetOEMLED(1002)=true Then
var2="G0" ' sceglie il Code G0
End If
If GetOemDRO(1006)=0 Then 'Predispone una velocita predefinita nel caso non sia stata impostata dall'operatore
FeedCurrent= "300"
Else
FeedCurrent = GetOemDRO(1006) 'memorizza il valore del controllo per il feedrate
End If
'imposta il ciclo
VAR= GetOemDRO(1003) 'memorizza il valore del controllo per lo spostamento
VAR1=var1 &"F" & FeedCurrent ' completa il valore nella variabile
Code var2 & "Z" & VAR & var1 'oppure fare cos Code "G91 Z" & VAR &"F300"
'Ritorno
While IsMoving()
Sleep 1000
Wend
VAR1="F" & 300 ' velocit di ritorno
Code var2 & "Z" & -VAR & var1 'oppure fare cos Code "G91 Z" & VAR &"F300"
varglobale=3
Case 1 'X
4:
If GetOEMLED(1001)=true Then
var2="G91" ' sceglie il code G91
End If
If GetOEMLED(1002)=true Then
var2="G0" ' sceglie il Code G0
End If
If GetOemDRO(1006)=0 Then 'Predispone una velocita predefinita nel caso non sia stata impostata dall'operatore
FeedCurrent= "300"
Else
FeedCurrent = GetOemDRO(1006) 'memorizza il valore del controllo per il feedrate
End If
'imposta il ciclo
VAR= GetOemDRO(1003) 'memorizza il valore del controllo per lo spostamento
VAR1=var1 &"F" & FeedCurrent ' completa il valore nella variabile
Code var2 & "X" & VAR & var1 'oppure fare cos Code "G91 X" & VAR &"F300"
'Ritorno
While IsMoving()
Sleep 1000
Wend
VAR1="F" & 300 ' velocit di ritorno
Code var2 & "X" & -VAR & var1 'oppure fare cos Code "G91 X" & VAR &"F300"
varglobale=4
Case 2 'Y
5:
If GetOEMLED(1001)=true Then
var2="G91" ' sceglie il code G91
End If
If GetOEMLED(1002)=true Then
var2="G0" ' sceglie il Code G0
End If
If GetOemDRO(1006)=0 Then 'Predispone una velocita predefinita nel caso non sia stata impostata dall'operatore
FeedCurrent= "300"
Else
FeedCurrent = GetOemDRO(1006) 'memorizza il valore del controllo per il feedrate
End If
'imposta il ciclo
VAR= GetOemDRO(1003) 'memorizza il valore del controllo per lo spostamento
VAR1=var1 &"F" & FeedCurrent ' completa il valore nella variabile
Code var2 & "Y" & VAR & var1 'oppure fare cos Code "G91 Y" & VAR &"F300"
'Ritorno
While IsMoving()
Sleep 1000
Wend
VAR1="F" & 300 ' velocit di ritorno
Code var2 & "Y" & -VAR & var1 'oppure fare cos Code "G91 Y" & VAR &"F300"
varglobale=5
End Select
Exit Sub
6:
Select Case varglobale
Case 1
GoTo 3
Case 2
GoTo 4
Case 3
GoTo 5
End Select
2:
End Sub
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login