
Ale spoko moje ego co chwila jest wygiglane za sprawą solidcama jak nie tu to na PW.
Wróć do „czas obróbki w pliku nc.”
@def_tooljest wywoływana tyle razy ile mamy uzytych narzedzi w programie
@def_tooljest tool_work_time jest to zmienna typu String
@time_count ... endpgdzies do gpp (tylko nie wewnątrz innej procedury)
@def_toolwywołaj procedurę jeśli tool_work_time nie wyglada tak ' 0:00:00'
123456789 ' 0:00:00'
Kod: Zaznacz cały
@time_count
; hours minutes seconds ===> seconds, i do wora :)
total_tools_time = total_tools_time + tonum(substr(tool_work_time,8,2)) + (tonum(substr(tool_work_time,5,2))*60) + (tonum(substr(tool_work_time,1,3))*3600)
; jesli następna operacja nie jest już definicją narzędzia to
if next_command ne '@def_tool'
;zainicjuj kilka zmiennych ale lokalnie (tylko tu czyli @def_tool...endp),
local numeric time_h, time_m, time_s
local string time_h_f, time_m_f, time_s_f
local string szh, szm, szs, ssh, ssm, sss, sop, csc
local integer iFrontEndTimeSep
local logical bNullOffFormat, bFillWithZero
;dobra wszystko policzone ale my są ludzie i chcemy czas w hh:mm:ss a nie sssssss
;no to godzin jest tyle cooooo w sumie sekund podzielone przez ilosc sekund w godzinie
;i interesują nas tylko pełne godziny wiec za pomocą funkcji int usuń
;wszystko po przecinku
time_h = int(total_tools_time/3600)
;no a minut to jest tyle co sekund podzielone przez ilośc sekund w minucie
;no ale jeszcze trzeba od tego odjąc te sekundy co juz poswiecilismy na policzenie godzin
;i znow chcemy tylko pelne minuty
time_m = int((total_tools_time-(time_h*3600))/60)
;tu to juz wiadomo z puli sekund odejmujemy ilośc godzin razy
;ilosc sekund w godzinie i oczywiscie ilosc minut razy ilosc sekund w minucie
time_s = total_tools_time-(time_h*3600)-(time_m*60)
;SETTINGS OUTPUT
bFillWithZero = true ;true - hh:mm:ss
;false - h:m:s
iFrontEndTimeSep = 0 ;0 = '0:0:0'
;1 = '0h 0m 0s'
;2 = '0 godz 0 min 0 sek'
bNullOffFormat = true ;true - no print insignificant time:
;'0h0m30s' --> '30s'
;'1h0m30s' --> '1h30s'
;false - print all
;<prefix><sign><leading-zeroes><integer>.<fraction><trailing-zeroes><options><postfix>
;troche algebry bool'a
if bFillWithZero then
szh = 'z2.0'
szm = 'z2.0'
szs = 'z2.0'
else
szh = '2.0'
szm = '2.0'
szs = '2.0'
endif
if bNullOffFormat and iFrontEndTimeSep eq 1 or iFrontEndTimeSep eq 2 then
sop = '(nd)'
else
sop = '(n)'
endif
if iFrontEndTimeSep eq 1 then
ssh = '<h>'
ssm = '<m>'
sss = '<s>'
else
if iFrontEndTimeSep eq 2 then
ssh = '<godz >'
ssm = '<min >'
sss = '<sec >'
else
ssh = '<:>'
ssm = '<:>'
sss = '<>'
endif
endif
time_h_f = szh + sop + ssh
time_m_f = szm + sop + ssm
time_s_f = szs + sop + sss
{nl}
{nl,'(Czas Programu: ' time_h time_m time_s ')'}
endif
endp
@start_of_job
...
...
if job_time ne '' then
{nl,"(Czas obrobki: " job_time ")"}
endif
...
...
endp
nie będę się rozwodził co jest co ale sprawi to tyle że jeśli wykoszasz generowanie kodu z czasem to cały napis (Czas obrobki: 00:01:00) będzie dodany do pliku.