精華區beta Mechanical 關於我們 聯絡資訊
因為人機介面開發的關係 用到了這套軟體 但是之前公司沒人用過 所以想請問版上的高手們 小弟遇到了關於IF使用的問題: IF[#101 EQ 0]THEN; G240 P1; G204 X30 Y30 I40J50; ENDIF; IF[#101 EQ 1]THEN; G240 P2; G204 X50 Y30 I60J50; ENDIF; 在這樣的狀態下當#101=0的時候 螢幕會出現 示意圖: ┌─┐ └─┘ 在#101=1時 照理說#101現在不是0了 但是=0時的圖案還是留在畫面上 示意圖: ┌─┐┌─┐ └─┘└─┘ 但是使用G230 G249等游標指令卻又沒有上述問題 小弟為此困惑已久 懇請版上高手們幫忙解惑 感謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.252.103.146 > -------------------------------------------------------------------------- < 作者: yuleen123 (.......................) 看板: Mechanical 標題: Re: [請益] macro executor IF STATEMENT的問題 時間: Sat May 11 13:37:06 2013 ※ 引述《choral ( über'm Sternenzelt)》之銘言: : 因為人機介面開發的關係 : 用到了這套軟體 但是之前公司沒人用過 : 所以想請問版上的高手們 : 小弟遇到了關於IF使用的問題: : IF[#101 EQ 0]THEN; : G240 P1; : G204 X30 Y30 I40J50; : ENDIF; : IF[#101 EQ 1]THEN; : G240 P2; : G204 X50 Y30 I60J50; : ENDIF; : 在這樣的狀態下當#101=0的時候 螢幕會出現 : 示意圖: : ┌─┐ : └─┘ : : 在#101=1時 照理說#101現在不是0了 但是=0時的圖案還是留在畫面上 : 示意圖: : ┌─┐┌─┐ : └─┘└─┘ : 但是使用G230 G249等游標指令卻又沒有上述問題 : 小弟為此困惑已久 : 懇請版上高手們幫忙解惑 : 感謝!! 因為 G204、G01、G02、G03、G243... 等指令是繪圖指令 其中又細分為字元畫面和圖形畫面 你可以看 G202 指令要如何清除字元畫面和圖形畫面 如果到執行 M99 Pxxx 時 #8500 的值沒有改變的話 控制器會回到 Nxxx 單節繼續執行而不會將字元畫面和圖形畫面的內容清除 所以上一次執行繪圖指令後的內容會繼續留在螢幕上 所以你要使用 G202 指令清除不想要的地方 如果執行 M99 Pxxx 時 #8500 的值有改變 那控制器就會清除整個螢幕,並且跳到指定的程式 (指令的畫面) 可以參考 http://ppt.cc/K9Mj 所以我在寫 Macro Executor 的程式時會用以下的架構 Oxxxx; ; 不會變動的畫面內容 ..... ..... ; 會隨著使用者操作而變動的畫面內容 N100 ..... ..... ; 讀取使用者輸入 N900 #101 = #8501 IF [#101 EQ xxx ] THEN ...... M99 P100 ENDIF; IF [#101 EQ xxx ] THEN ...... M99 P100 ENDIF; ...... ...... M99 P900 這樣的話只有第一次顯示畫面時會執行整個程式 接下來會從 N100 或 N900 處重複執行 這樣做可以降低程式的執行時間 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.41.1.117
d1d1:簡單、詳細、明瞭。讚 05/11 13:45
choral:原PO高手請受我一拜!!真是太感謝了!! 05/11 13:49