this is my macro and i already do the record while it's running, but my idea was see the value that every variable keep during the macro execution
//compile statistics file for powermill
function main(){
//------------------------------TRACE DELLA MACRO---------------------------------------
DIALOGS MESSAGE OFF
DIALOGS ERROR OFF
MACRO RECORD FILESAVE "V:\3D\PowerMILL\Statistics\statistics_exporting_trace.mac" Yes
DIALOGS MESSAGE ON
DIALOGS ERROR ON
//--------------------------------------------------------------------------------------
string $date = local_time(time()).day + "-" + local_time(time()).month + "-"+ local_time(time()).year
DIALOGS MESSAGE OFF
DIALOGS ERROR OFF
IF NOT Member(local._keys,"Statistics_exported") {
EDIT USERPAR project TYPE 'Real'
EDIT USERPAR project NAME "Statistics_exported"
CREATE USERPAR project
}
DIALOGS MESSAGE ON
DIALOGS ERROR ON
//lettura file
STRING LIST $statistics = {}
STRING $OPENFILE = "FILE OPEN V:\3D\PowerMILL\Statistics\Statistics.txt FOR READ AS input"
DOCOMMAND $OPENFILE
FILE READ $statistics FROM input
FILE CLOSE input
if $Stats == 1 {
call only_view($statistics)
return
}
string list $month_list = {'GENNAIO','FEBBRAIO','MARZO','APRILE','MAGGIO','GIUGNO','LUGLIO','AGOSTO','SETTEMBRE','OTTOBRE','NOVEMBRE','DICEMBRE'}
//reading from previous
int $a = 4
int $b = $a + 12
int $c = $b + 12
int $d = $c + 12
int $e = $d + 12
//string $msg = $statistics[$a + 2 ]
//MESSAGE INFO $msg
string $giorno_corrente = substring($statistics[$a] , (position($statistics[$a] , "=") + 2) , (length($statistics[$a]) - position($statistics[$a] , "=") + 1 )) //a
real $hl_d = real(substring($statistics[$a + 2] , 0 , position($statistics[$a + 2],"="))) //ore lavoro totali
real $nt_d = real(substring($statistics[$a + 3] , 0 , position($statistics[$a + 3],"="))) //numero utensili totali
real $cx_d = real(substring($statistics[$a + 4] , 0 , position($statistics[$a + 4],"="))) //numero cinque assi
real $cxk_d = real(substring($statistics[$a + 5] , 0 , position($statistics[$a + 5],"="))) //numero cinque assi k
real $cxh_d = real(substring($statistics[$a + 6] , 0 , position($statistics[$a + 6],"="))) //numero cinque assi h
real $pc_d = real(substring($statistics[$a + 7] , 0 , position($statistics[$a + 7],"="))) //powermill completi
real $md_d = real(substring($statistics[$a + 8] , 0 , position($statistics[$a + 8],"="))) //cuori
real $all_d = real(substring($statistics[$a + 9] , 0 , position($statistics[$a + 9],"="))) //allargatori
real $mt_d = real(substring($statistics[$a + 10] , 0 , position($statistics[$a + 10],"="))) //matrici
string $mese_corrente = substring($statistics[$b] , (position($statistics[$b] , "=") + 2) , (length($statistics[$b]) - position($statistics[$b] , "=") + 1 )) //b
real $hl_m = real(substring($statistics[$b + 2] , 0 , position($statistics[$b + 2],"="))) //ore lavoro totali
real $nt_m = real(substring($statistics[$b + 3] , 0 , position($statistics[$b + 3],"="))) //numero utensili totali
real $cx_m = real(substring($statistics[$b + 4] , 0 , position($statistics[$b + 4],"="))) //numero 5 assi
real $cxk_m = real(substring($statistics[$b + 5] , 0 , position($statistics[$b + 5],"="))) //numero 5 assi k
real $cxh_m = real(substring($statistics[$b + 6] , 0 , position($statistics[$b + 6],"="))) //numero 5 assi h
real $pc_m = real(substring($statistics[$b + 7] , 0 , position($statistics[$b + 7],"="))) //powermi5 completi
real $md_m = real(substring($statistics[$b + 8] , 0 , position($statistics[$b + 8],"="))) //cuori
real $all_m = real(substring($statistics[$b + 9] , 0 , position($statistics[$b + 9],"="))) //allargatori
real $mt_m = real(substring($statistics[$b + 10] , 0 , position($statistics[$b + 10],"="))) //matrici
string $anno_corrente = substring($statistics[$c] , (position($statistics[$c] , "=") + 2) , (length($statistics[$c]) - position($statistics[$c] , "=") + 1 )) //c
real $hl_a = real(substring($statistics[$c + 2] , 0 , position($statistics[$c + 2],"="))) //ore lavoro totali
real $nt_a = real(substring($statistics[$c + 3] , 0 , position($statistics[$c + 3],"="))) //numero utensili totali
real $cx_a = real(substring($statistics[$c + 4] , 0 , position($statistics[$c + 4],"="))) //numero 5 assi
real $cxk_a = real(substring($statistics[$c + 5] , 0 , position($statistics[$c + 5],"="))) //numero 5 assi k
real $cxh_a = real(substring($statistics[$c + 6] , 0 , position($statistics[$c + 6],"="))) //numero 5 assi h
real $pc_a = real(substring($statistics[$c + 7] , 0 , position($statistics[$c + 7],"="))) //powermi5 completi
real $md_a = real(substring($statistics[$c + 8] , 0 , position($statistics[$c + 8],"="))) //cuori
real $all_a = real(substring($statistics[$c + 9] , 0 , position($statistics[$c + 9],"="))) //allargatori
real $mt_a = real(substring($statistics[$c + 10] , 0 , position($statistics[$c + 10],"="))) //matrici
string $mese_precedente = substring($statistics[$d] , (position($statistics[$d] , "=") + 2) , (length($statistics[$d]) - position($statistics[$d] , "=") + 1 )) //d
real $hl_mp = real(substring($statistics[$d + 2] , 0 , position($statistics[$d + 2],"="))) //ore lavoro totali
real $nt_mp = real(substring($statistics[$d + 3] , 0 , position($statistics[$d + 3],"="))) //numero utensili totali
real $cx_mp = real(substring($statistics[$d + 4] , 0 , position($statistics[$d + 4],"="))) //numero 5 assi
real $cxk_mp = real(substring($statistics[$d + 5] , 0 , position($statistics[$d + 5],"="))) //numero 5 assi k
real $cxh_mp = real(substring($statistics[$d + 6] , 0 , position($statistics[$d + 6],"="))) //numero 5 assi h
real $pc_mp = real(substring($statistics[$d + 7] , 0 , position($statistics[$d + 7],"="))) //powermill completi
real $md_mp = real(substring($statistics[$d + 8] , 0 , position($statistics[$d + 8],"="))) //cuori
real $all_mp = real(substring($statistics[$d + 9] , 0 , position($statistics[$d + 9],"="))) //allargatori
real $mt_mp = real(substring($statistics[$d + 10] , 0 , position($statistics[$d + 10],"="))) //matrici
string $anno_precedente = substring($statistics[$e] , (position($statistics[$e] , "=") + 2) , (length($statistics[$e]) - position($statistics[$e] , "=") + 1 )) //e
real $hl_ap = real(substring($statistics[$e + 2] , 0 , position($statistics[$e + 2],"="))) //ore lavoro totali
real $nt_ap = real(substring($statistics[$e + 3] , 0 , position($statistics[$e + 3],"="))) //numero utensili totali
real $cx_ap = real(substring($statistics[$e + 4] , 0 , position($statistics[$e + 4],"="))) //numero 5 assi
real $cxk_ap = real(substring($statistics[$e + 5] , 0 , position($statistics[$e + 5],"="))) //numero 5 assi k
real $cxh_ap = real(substring($statistics[$e + 6] , 0 , position($statistics[$e + 6],"="))) //numero 5 assi h
real $pc_ap = real(substring($statistics[$e + 7] , 0 , position($statistics[$e + 7],"="))) //powermill completi
real $md_ap = real(substring($statistics[$e + 8] , 0 , position($statistics[$e + 8],"="))) //cuori
real $all_ap = real(substring($statistics[$e + 9] , 0 , position($statistics[$e + 9],"="))) //allargatori
real $mt_ap = real(substring($statistics[$e + 10] , 0 , position($statistics[$e + 10],"="))) //matrici
//refresh
string $day = local_time(time()).day
string $month = local_time(time()).month
string $year = local_time(time()).year
string $new_giorno_corrente = replace($statistics[$a] , $giorno_corrente , $date)
string $new_mese_corrente = replace($statistics[$b] , $mese_corrente , $month_list[real($month) - 1])
string $new_anno_corrente = replace($statistics[$c] , $anno_corrente , int($year))
int $mp = int($month) - 2
if ($mp < 0) {
$mp = 13 + $mp
}
string $new_mese_precedente = replace($statistics[$d] , $mese_precedente , $month_list[$mp - 1])
string $new_anno_precedente = replace($statistics[$e] , $anno_precedente , int($year)-1)
real $TOTAL_TIME = 0
int $ntool = 0
call TOTAL_MACHINING_TIME($TOTAL_TIME , $ntool)
//string $hl_d_n = time_to_string($TOTAL_TIME,"M")
real $hl_d_n = $TOTAL_TIME
real $nt_d_n = $ntool
bool $cx_d_n = (int(multiaxis) != 0)
bool $cxk_d_n = ((int(multiaxis) == 1) or (int(multiaxis) == 2))
bool $cxh_d_n = ((int(multiaxis) == 3) or (int(multiaxis) == 4))
bool $pc_d_n = (ENTITY_EXISTS("Toolpath", "ZONE 5 DEGREE FIN") OR ENTITY_EXISTS("Toolpath", "ZONE 3 DEGREE FIN") OR ENTITY_EXISTS("Toolpath", "ZONE 2 DEGREE FIN") OR ENTITY_EXISTS("Toolpath", "ZONE 6 CIL FIN") OR ENTITY_EXISTS("Toolpath", "ZONE 12 CIL FIN"))
bool $md_d_n = (ENTITY_EXISTS("Level", "264") and ENTITY_EXISTS("Level", "260") and ($multiaxis == 0))
bool $all_d_n = (ENTITY_EXISTS("Level", "264")and not ENTITY_EXISTS("Level", "260") and ($multiaxis == 0))
bool $mt_d_n = (ENTITY_EXISTS("Level", "20"))
if (int($anno_corrente) != int($year)) {
//previously year
$hl_ap = $hl_a
$nt_ap = $nt_a
$cx_ap = $cx_a
$cxk_ap = $cxk_a
$cxh_ap = $cxh_a
$pc_ap = $pc_a
$md_ap = $md_a
$all_ap = $all_a
$mt_ap = $mt_a
}
if ($mese_corrente != $month_list[real($month) - 1]) {
//previously month
$hl_mp = $hl_m
$nt_mp = $nt_m
$cx_mp = $cx_m
$cxk_mp = $cxk_m
$cxh_mp = $cxh_m
$pc_mp = $pc_m
$md_mp = $md_m
$all_mp = $all_m
$mt_mp = $mt_m
}
if ($date != $giorno_corrente) {
//previously month
$hl_d = 0
$nt_d = 0
$cx_d = 0
$cxk_d = 0
$cxh_d = 0
$pc_d = 0
$md_d = 0
$all_d = 0
$mt_d = 0
}
// updating value
//current day
$hl_d = (round(($hl_d + $hl_d_n) * 100 , 0)) / 100
$nt_d = $nt_d + $nt_d_n
$cx_d = $cx_d + $cx_d_n
$cxk_d = $cxk_d + $cxk_d_n
$cxh_d = $cxh_d + $cxh_d_n
$pc_d = $pc_d + $pc_d_n
$md_d = $md_d + $md_d_n
$all_d = $all_d + $all_d_n
$mt_d = $mt_d + $mt_d_n
//current month
$hl_m = (round(($hl_m + $hl_d) * 100 , 0)) / 100
$nt_m = $nt_m + $nt_d_n
$cx_m = $cx_m + $cx_d_n
$cxk_m = $cxk_m + $cxk_d_n
$cxh_m = $cxh_m + $cxh_d_n
$pc_m = $pc_m + $pc_d_n
$md_m = $md_m + $md_d_n
$all_m = $all_m + $all_d_n
$mt_m = $mt_m + $mt_d_n
//current year
$hl_a = (round(($hl_a + $hl_d) * 100 , 0)) / 100
$nt_a = $nt_a + $nt_d_n
$cx_a = $cx_a + $cx_d_n
$cxk_a = $cxk_a + $cxk_d_n
$cxh_a = $cxh_a + $cxh_d_n
$pc_a = $pc_a + $pc_d_n
$md_a = $md_a + $md_d_n
$all_a = $all_a + $all_d_n
$mt_a = $mt_a + $mt_d_n
//*********************************************************************************************
string $new_text = ""
int $kk = 0
foreach item in $statistics {
string $add_txt = item
string $add_txt_value = substring($add_txt , 0 , position($add_txt , "="))
string $add_txt_description = substring($add_txt , position($add_txt , "=") , (length($add_txt) - position($add_txt , "=")))
//MESSAGE INFO ($kk + crlf + item)
switch $kk {
case 4
$add_txt = $new_giorno_corrente
break
case 6
$add_txt = string($hl_d) + $add_txt_description
break
case 7
$add_txt = string(int($nt_d)) + $add_txt_description
break
case 8
$add_txt = string(int($cx_d)) + $add_txt_description
break
case 9
$add_txt = string(int($cxk_d)) + $add_txt_description
break
case 10
$add_txt = string(int($cxh_d)) + $add_txt_description
break
case 11
$add_txt = string(int($pc_d)) + $add_txt_description
break
case 12
$add_txt = string(int($md_d)) + $add_txt_description
break
case 13
$add_txt = string(int($all_d)) + $add_txt_description
break
case 14
$add_txt = string(int($mt_d)) + $add_txt_description
break
case 16
$add_txt = $new_mese_corrente
break
case 18
$add_txt = string($hl_m) + $add_txt_description
break
case 19
$add_txt = string(int($nt_m)) + $add_txt_description
break
case 20
$add_txt = string(int($cx_m)) + $add_txt_description
break
case 21
$add_txt = string(int($cxk_m)) + $add_txt_description
break
case 22
$add_txt = string(int($cxh_m)) + $add_txt_description
break
case 23
$add_txt = string(int($pc_m)) + $add_txt_description
break
case 24
$add_txt = string(int($md_m)) + $add_txt_description
break
case 25
$add_txt = string(int($all_m)) + $add_txt_description
break
case 26
$add_txt = string(int($mt_m)) + $add_txt_description
break
case 28
$add_txt = $new_anno_corrente
break
case 30
$add_txt = string($hl_a) + $add_txt_description
break
case 31
$add_txt = string(int($nt_a)) + $add_txt_description
break
case 32
$add_txt = string(int($cx_a)) + $add_txt_description
break
case 33
$add_txt = string(int($cxk_a)) + $add_txt_description
break
case 34
$add_txt = string(int($cxh_a)) + $add_txt_description
break
case 35
$add_txt = string(int($pc_a)) + $add_txt_description
break
case 36
$add_txt = string(int($md_a)) + $add_txt_description
break
case 37
$add_txt = string(int($all_a)) + $add_txt_description
break
case 38
$add_txt = string(int($mt_a)) + $add_txt_description
break
case 40
$add_txt = $new_mese_precedente
break
case 42
$add_txt = string($hl_mp) + $add_txt_description
break
case 43
$add_txt = string(int($nt_mp)) + $add_txt_description
break
case 44
$add_txt = string(int($cx_mp)) + $add_txt_description
break
case 45
$add_txt = string(int($cxk_mp)) + $add_txt_description
break
case 46
$add_txt = string(int($cxh_mp)) + $add_txt_description
break
case 47
$add_txt = string(int($pc_mp)) + $add_txt_description
break
case 48
$add_txt = string(int($md_mp)) + $add_txt_description
break
case 49
$add_txt = string(int($all_mp)) + $add_txt_description
break
case 50
$add_txt = string(int($mt_mp)) + $add_txt_description
break
case 52
$add_txt = $new_anno_precedente
break
case 54
$add_txt = string($hl_ap) + $add_txt_description
break
case 55
$add_txt = string(int($nt_ap)) + $add_txt_description
break
case 56
$add_txt = string(int($cx_ap)) + $add_txt_description
break
case 57
$add_txt = string(int($cxk_ap)) + $add_txt_description
break
case 58
$add_txt = string(int($cxh_ap)) + $add_txt_description
break
case 59
$add_txt = string(int($pc_ap)) + $add_txt_description
break
case 60
$add_txt = string(int($md_ap)) + $add_txt_description
break
case 61
$add_txt = string(int($all_ap)) + $add_txt_description
break
case 62
$add_txt = string(int($mt_ap)) + $add_txt_description
break
}
if $new_text == "" {
$new_text = $add_txt
} else {
$new_text = $new_text + crlf + $add_txt
}
//INFOBOX NEW "Statistics"
//INFOBOX APPEND $new_text
$kk = $kk + 1
}
// INFOBOX NEW "Statistics"
// INFOBOX APPEND $new_text
if (int($Statistics_exported) == 0) {
FILE OPEN "V:\3D\PowerMILL\Statistics\Statistics.txt" FOR write AS out
FILE WRITE $new_text TO out
FILE CLOSE out
//MESSAGE INFO "Statistics_exported"
$Statistics_exported = 1
}
//------------------------------END TRACE---------------------------------------
DIALOGS MESSAGE OFF
DIALOGS ERROR OFF
MACRO STOP
DIALOGS MESSAGE ON
DIALOGS ERROR ON
//------------------------------------------------------------------------------
}
FUNCTION TOTAL_MACHINING_TIME(output real $TOTAL_TIME , output int $ntool) {
$TOTAL_TIME = 0
$ntool = 0
REAL $F_TIME = 0
STRING LIST $Folder = $GET_FOLDERS('toolpath')
DIALOGS MESSAGE OFF
DIALOGS ERROR OFF
$Folder = remove($Folder , "Toolpath\GHOST")
$Folder = remove($Folder , "Toolpath\GHOST ")
DIALOGS MESSAGE ON
DIALOGS ERROR ON
FOREACH f IN $FOLDER {
// Make the FOLDER name bold & underlined
STRING $FN = SUBSTRING (f,9)
STRING msg = $FN
FOREACH TP IN FOLDER ($f) {
STRING $TPN = TP.NAME
REAL $TPTIME = TP.STATISTICS.TOTALTIME
$F_TIME = $F_TIME + $TPTIME
$TOTAL_TIME = $TOTAL_TIME + $TPTIME
$ntool = $ntool + 1
}
}
}
FUNCTION only_view(STRING LIST $statistics) {
string $new_text = ""
int $kk = 0
foreach item in $statistics {
if kk >= 4 {
string $add_txt = item
string $add_txt2 = ''
if $kk == 14 {
real $a = substring($statistics[6] , 0 , position($statistics[6] , "="))
$a = $a / 1440
real $d = $a
real $h = ($d - int($d)) * 24
real $m = ($h - int($h)) * 60
real $s = ($m - int($m)) * 60
$add_txt2 = int($d) + " giorni " + int($h) + " ore " + int($m) + " minuti " + int($s) + " secondi"
}
if $kk == 26 {
real $a = substring($statistics[18] , 0 , position($statistics[18] , "="))
$a = $a / 1440
real $d = $a
real $h = ($d - int($d)) * 24
real $m = ($h - int($h)) * 60
real $s = ($m - int($m)) * 60
$add_txt2 = int($d) + " giorni " + int($h) + " ore " + int($m) + " minuti " + int($s) + " secondi"
}
if $kk == 38 {
real $a = substring($statistics[30] , 0 , position($statistics[30] , "="))
$a = $a / 1440
real $d = $a
real $h = ($d - int($d)) * 24
real $m = ($h - int($h)) * 60
real $s = ($m - int($m)) * 60
$add_txt2 = int($d) + " giorni " + int($h) + " ore " + int($m) + " minuti " + int($s) + " secondi"
}
if $new_text == "" {
$new_text = $add_txt
} elseif $add_txt2 == "" {
$new_text = $new_text + crlf + $add_txt
} else {
$new_text = $new_text + crlf + $add_txt + crlf + $add_txt2
}
}
$kk = $kk + 1
}
DIALOGS MESSAGE OFF
DIALOGS ERROR OFF
MACRO STOP
DIALOGS MESSAGE ON
DIALOGS ERROR ON
INFOBOX NEW "Statistics"
INFOBOX APPEND $new_text
MACRO PAUSE "REBOOT WHEN OK"
}