'Åø±³È¯À» ÇÑµÚ Åø ³¡ÀÇ 0ÁöÁ¡À» ã´Â ÇÁ·Î±×·¥ Sub Main() 'ZÃàÀÇ 0ÁöÁ¡À» ã±âÀ§ÇØ »ç¿ëÇÏ´Â º¯¼ö ¼³Á¤ ºÎºÐ ZeroOffsetZ = 5.35 '¼¾¼­ÀÇ ÃøÁ¤ À§Ä¡¿¡¼­ ¹Ù´Ú±îÁö °Å¸® UpStep = 1/320 '¼¾¼­¸¦ ²ô±â À§ÇØ À§·Î À̵¿ÇÏ´Â °£°Ý °ª (¸ðÅÍÀÇ 1½ºÅÜ °ª) StepZ = 100 * UpStep '¼¾¼­¸¦ ²ô±â À§ÇØ À§·Î ºü¸£°Ô À̵¿ÇÏ´Â °£°Ý °ª ProbeX = -33.5 '¼¾¼­°¡ ÀÖ´Â XÃàÀÇ ±â°è ÁÂÇ¥ °ª ProbeY = 386.2 '¼¾¼­°¡ ÀÖ´Â YÃàÀÇ ±â°è ÁÂÇ¥ °ª DownFeed = 1500 '¼¾¼­¸¦ ãÀ» ¶§ ÃàÀÇ À̵¿ ¼Óµµ MinLimitZ = GetOEMDro(158) 'ZÃàÀÌ ¿òÁ÷ÀÏ ¼ö ÀÖ´Â ÃÖÀú ³ôÀÌ (Softlimit Z Minimum DRO) SafeZ = GetOEMDro(152) - 5 'ZÃàÀÌ ¿òÁ÷ÀÏ ¼ö ÀÖ´Â ÃÖ°í ³ôÀÌ °ª¿¡¼­ -5ÇÑ °ªÀ» ¾ÈÀü ³ôÀÌ·Î Á¤ÇÔ (Softlimit Z Maximum DRO) 'CNCÀÇ ÇöÀç »óŸ¦ ÀúÀåÇÏ´Â ºÎºÐ CurrentFeed = GetOemDRO(818) 'ÇöÀçÀÇ ÀÌ¼Û ¼Óµµ¸¦ ÀúÀåÇÕ´Ï´Ù. SetOEMDro(54, SafeZ) 'ZÃàÀÇ ¾ÈÀü³ôÀ̸¦ ÀúÀåÇÔ (Safe Z DRO) 'UserFixture = GetOEMDro(46) 'ÇöÀç À¯ÀúÁÂÇ¥¸¦ ÀúÀåÇÕ´Ï´Ù. '¿µÁ¡À» Àâ±âÀ§ÇØ CNC¸¦ ÃʱâÈ­ÇÏ´Â ºÎºÐ If GetOEMLed(16) Then 'Ç¥½Ã°¡ ±â°èÁÂÇ¥(G53)À̸é À¯ÀúÁÂÇ¥(G54)·Î ¹Ù²ß´Ï´Ù. Code "G54" '»ç¿ëÀÚ ÁÂÇ¥(G54)·Î ¹Ù²ß´Ï´Ù. DoOemButton(107) 'À¯ÀúÁÂÇ¥¸¦ Ç¥½ÃÇÕ´Ï´Ù. End If Code "M5" '½ºÇɵé ȸÀüÀ» ¸ØÃä´Ï´Ù. Code "M9" '±â¸§ ºÐÃâÀ» ¸ØÃä´Ï´Ù. Code "G90" Code "G0 G53 Z" & SafeZ 'ZÃàÀ» ¾ÈÀüÇÑ ³ôÀÌ·Î ¿Ã¸³´Ï´Ù. Code "G0 G53 X" & ProbeX & " Y" & ProbeY '¼¾¼­ À§Ä¡·Î À̵¿ÇÕ´Ï´Ù. While IsMoving() 'À§ÀÇ ÀÛ¾÷ÀÌ ³¡³¯ ¶§±îÁö ±â´Ù¸³´Ï´Ù. Wend if GetLED(0) Then Goto Exit_Loop 'ResetÀÌ °É¸®¸é ÇÁ·Î±×·¥À» Á¾·áÇÕ´Ï´Ù. 'ºü¸£°Ô ¼¾¼­¸¦ °ËÃâÇÏ´Â ºÎºÐ 'GetOemLed(825)´Â Digitize LED»óÅÂÀÔ´Ï´Ù. If GetOemLed(825) = 1 Then 'ÇöÁ¦ ¼¾¼­°¡ µ¿ÀÛÇÏ°í ÀÖÀ¸¸é ¿¡·¯¸Þ¼¼Áö Ãâ·Â MsgBox ("¼¾¼­ ¹®Á¦°¡ ÀÖ½À´Ï´Ù.") Exit Sub End If CurrentZ = GetOEMDro(802) - SafeZ + MinLimitZ '¼¾¼­ °ËÃâÀ» À§ÇÑ ZÃàÀÇ °ªÀ» °è»êÇÕ´Ï´Ù. Code "G31 Z" & CurrentZ & " F" & DownFeed '¼¾¼­ °ËÃâÀ» Çϸ鼭 ZÃàÀ» ³»¸³´Ï´Ù. While IsMoving() 'À§ÀÇ ÀÛ¾÷ÀÌ ³¡³¯ ¶§±îÁö ±â´Ù¸³´Ï´Ù. Wend if GetLED(0) Then Goto Exit_Loop 'ResetÀÌ °É¸®¸é ÇÁ·Î±×·¥À» Á¾·áÇÕ´Ï´Ù. If GetOemLed(825) = 0 Then '¼¾¼­°¡ µ¿ÀÛÇÏÁö ¾ÊÀ¸¸é ¿¡·¯¸Þ¼¼Áö Ãâ·Â MsgBox ("¼¾¼­°¡ °¨Áö µÇÁö ¾Ê½À´Ï´Ù.") Exit Sub End If 'Á¤È®ÇÏ°Ô ¿µÁ¡À» Àâ±â À§ÇØ ¼¾¼­ÀÇ À§Ä¡¸¦ °ËÃâÇÏ´Â ºÎºÐ CurrentZ = GetOEMDro(802) 'GetOEMDro(802)´Â ZÃàÀÇ À¯ÀúÁÂÇ¥ÀÔ´Ï´Ù. While (GetOemLed(825)) '¼¾¼­ °¨Áö°¡ ¾øÀ» ¶§±îÁö Á¶±Ý¾¿ ZÃàÀ» À§·Î ¿Ã¸³´Ï´Ù. Tool_Up_Loop: CurrentZ = CurrentZ + StepZ Code "G0 Z" & CurrentZ While IsMoving() 'À§ÀÇ ÀÛ¾÷ÀÌ ³¡³¯ ¶§±îÁö ±â´Ù¸³´Ï´Ù. Wend if GetLED(0) Then Goto Exit_Loop 'ResetÀÌ °É¸®¸é ÇÁ·Î±×·¥À» Á¾·áÇÕ´Ï´Ù. Wend 'ZÃàÀ» ´Ù½Ã ¾à°£ ³»·Á¼­ ZÃàÀÌ ¼¾¼­¿¡ ´ê°Ô ÇÕ´Ï´Ù. if StepZ <> UpStep Then CurrentZ = CurrentZ - (1.5 * StepZ) StepZ = UpStep Goto Tool_Up_Loop End If 'ãÀº ¿µÁ¡ ÁÂÇ¥·Î À¯ÀúÁÂÇ¥¸¦ ¿µÁ¡ Á¶Á¤ÇÏ´Â ºÎºÐ SetOEMDro(802, ZeroOffsetZ) 'ÇöÀçÀÇ ZÃàÀ» À¯ÀúÁÂÇ¥¿¡ 0Á¡ Á¶Á¤ÇÔ Code "G4 P0.1" 'ZÃà ÁÂÇ¥ ¼³Á¤ÈÄ¿¡ ´ÙÀ½ ÀÛ¾÷À» Çϵµ·Ï G4 Äڵ带 ³Ö½À´Ï´Ù. While IsMoving() 'À§ÀÇ ÀÛ¾÷ÀÌ ³¡³¯ ¶§±îÁö ±â´Ù¸³´Ï´Ù. Wend 'ÇÁ·Î±×·¥À» ¸¶¹«¸®ÇÏ´Â ºÎºÐ Code "G0 G53 Z" & SafeZ While IsMoving() 'À§ÀÇ ÀÛ¾÷ÀÌ ³¡³¯ ¶§±îÁö ±â´Ù¸³´Ï´Ù. Wend Exit_Loop: SetOemDRO(818,CurrentFeed) '¿µÁ¡ ¸ÂÃß±â ÀüÀÇ ÀÌ¼Û ¼Óµµ·Î º¹±ÍÇÕ´Ï´Ù. 'SetOEMDro(46,UserFixture) '¿µÁ¡ ¸ÂÃß±â ÀüÀÇ À¯ÀúÁÂÇ¥·Î º¹±ÍÇÕ´Ï´Ù. End Sub Main