Изменения документа Макрос для формирования карты высот
Редактировал(а) Edgar Allan Poe 2024/11/14 17:01
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -2,30 +2,26 @@ 2 2 3 3 {{code language="lua"}} 4 4 function m155() 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 5 + local XWidth = 70 6 + local YWidth = 50 7 + local SafeZ = 3 8 + local ProbeZ = -3 9 + local StepX = 15 10 + local StepY = 15 11 + local Feed = 50 12 + local TipHeight = 0 13 + local ProbeFilename = "C:\temp\probe.txt" 14 14 15 - PushCurrentDistanceMode() 16 - PushCurrentMotionMode() 17 - 18 - if (IsProbingPinConfigured()) then 19 - file, msg = io.open(ProbeFilename, "w") -- open the file 20 - else 21 - DisplayMessage("Probe input is not configured") 22 - return 23 - end 15 + PushCurrentDistanceMode() 16 + PushCurrentMotionMode() 17 + 18 + if (IsProbingPinConfigured()) then 19 + file, msg = io.open(ProbeFilename, "w") -- open the file 24 24 25 25 if (file == nil) then 26 - 27 - 28 - 22 + DisplayMessage("Could not open probe output file ("..msg..")") 23 + Stop() 24 + return 29 29 end 30 30 31 31 ExecuteMDI("F "..Feed) ... ... @@ -36,30 +36,29 @@ 36 36 37 37 local direction = 0 38 38 for y = 0, YWidth, StepY do 35 + if (direction == 1) then 36 + direction = 0 37 + else 38 + direction = 1 39 + end 40 + 41 + for x = 0, XWidth, StepX do 39 39 if (direction == 1) then 40 - direction=043 + ExecuteMDI("G0 X"..x.." Y"..y.." Z"..SafeZ) 41 41 else 42 - direction=145 + ExecuteMDI("G0 X"..(XWidth - x).." Y"..y.." Z"..SafeZ) 43 43 end 44 - 45 - for x = 0, XWidth, StepX do 46 - if (direction == 1) then 47 - ExecuteMDI("G0 X"..x.." Y"..y.." Z"..SafeZ) 48 - else 49 - ExecuteMDI("G0 X"..(XWidth - x).." Y"..y.." Z"..SafeZ) 50 - end 51 51 52 - ExecuteMDI("G38.2 Z"..ProbeZ) 53 - LogCurrentPos(TipHeight) 54 - ExecuteMDI("G0 Z"..SafeZ) 55 - end 56 - 48 + ExecuteMDI("G38.2 Z"..ProbeZ) 49 + LogCurrentPos(TipHeight) 50 + ExecuteMDI("G0 Z"..SafeZ) 51 + end 57 57 end 58 58 59 59 if (direction == 1) then 60 - 55 + ExecuteMDI("G0 X"..XWidth.." Y"..YWidth.." Z"..SafeZ) 61 61 else 62 - 57 + ExecuteMDI("G0 X".."0".." Y"..YWidth.." Z"..SafeZ) 63 63 end 64 64 65 65 local HighZ = 5 ... ... @@ -67,16 +67,19 @@ 67 67 ExecuteMDI("G0 X0Y0") 68 68 69 69 file:close() 65 + else 66 + DisplayMessage("Probe input is not configured") 67 + return 68 + end 70 70 end 71 71 72 72 function LogCurrentPos(tipHeight) 73 - 74 - 75 - 72 + local CurrX = AxisGetPos(Axis.X) 73 + local CurrY = AxisGetPos(Axis.Y) 74 + local CurrZ = AxisGetPos(Axis.Z) 76 76 77 - local fmt = "%.5f" 78 - file:write(string.format(fmt, CurrX)..","..string.format(fmt, CurrY)..",".. 79 - string.format(fmt, CurrZ - tipHeight), "\n") 76 + local fmt = "%.5f" 77 + file:write(string.format(fmt, CurrX)..","..string.format(fmt, CurrY)..","..string.format(fmt, CurrZ - tipHeight), "\n") 80 80 end 81 81 {{/code}} 82 82