跳轉到

建立任務 (Building a Mission)

任務是一次執行依序執行的命令清單。在有任務之前什麼都不會播放,而播放的內容完全就是清單所寫的——包括哪些項目勾選了、哪些沒有。

位置

執行頁 /execution,控制樹的任務分支;/mission 也會來到同一個地方。應用程式一開啟就是這一頁。

清單就在樹的各列上組合與重新排列:任務列與每一個清單列都帶著一個用來新增命令的 +,而每一個命令列的標籤前都有一個拖曳把手,並帶著它自己的移動、產生副本與刪除按鈕。樹下方任務節點的面板只提供資訊——命令數,以及一段指出這些操作方式的提示。命令自己的設定,是往內一層、在該命令的節點上編輯。

新增命令

固定在任務列、或任何清單列右緣的 +,就是新增命令;它會打開一個以搜尋為先的挑選器。打字即可縮小範圍:搜尋會比對命令的顯示名稱、它內部的種類鍵 (kind key),以及它所宣告的別名,而別名既能以它的英文鍵比對,也能以它在介面語言中的用詞比對。方向鍵在結果之間移動,Enter 選取反白的那一個。

結果依類別分組。出貨時共有十五種:

類別 命令
設定 加工解析度、運動解析度、碰撞偵測、失敗時暫停、物理模擬
程式 程式檔案、NC 程式碼、腳本
優化 NC 優化設定
輸出 執行後作業、記錄網格幾何、匯出網格幾何 (STL)
流程 清單
映射 CSV 一對一映射、CSV 一對多映射

你挑的命令會落在你按下的那個 + 所屬的清單裡:若焦點命令是同一清單中的項目,就緊接在焦點命令之後,否則放在清單的結尾。焦點是被選取的命令——或者在選取位於某個命令的子節點上時,是擁有該子節點的命令——或是上一次新增所建立的命令;而當移動、產生副本、刪除或拖曳把選取帶到另一列時,焦點也會跟著過去。所以連續幾次新增會依序落在焦點下方,而任務列的 + 即使在群組內的某個命令被選取時,也一律新增在根層級。新的一列會在樹上顯露出來,但選取會留在原處,不會跳進新命令。沒有任何命令被固定在某個位置:順序完全由你決定,每個命令都可以放在任何地方。

在打開專案之前,新增命令是停用的。 什麼都沒打開時,任務面板寫著尚未載入專案。請先開啟或建立專案。有專案但任務是空的時,它寫著尚無命令,並指出那個按鈕。

可供挑選的這一組命令由應用程式提供,而不是內建在介面裡,所以一種命令可能在本手冊為它寫出一頁之前,就已出現在這個對話框中。

範例任務上的挑選器,路由 /execution?tree=execution/mission,按下了任務列的 +。六個類別標題就是上表的分組,頂端的搜尋框負責縮小範圍,而第一個結果已經反白,等著按 Enter。

「新增命令」對話框開在執行頁上,位於控制樹前方——控制樹的「任務」列右緣帶著一個 +,上方可見傳輸按鈕與綠色的「就緒」徽章:一個「搜尋命令…」框,底下是十五個項目,各帶著自己種類的圖示,分在六個標題之下——「設定」下是反白的「加工解析度」、「運動解析度」、「碰撞偵測」、「失敗時暫停」與「物理模擬」;「程式」下是「程式檔案」、「NC 程式碼」與「腳本」;「優化」下是「NC 優化設定」;「輸出」下是「執行後作業」、「記錄網格幾何」與「匯出網格幾何 (STL)」;「流程」下是「清單」;「映射」下是「CSV 一對一映射」,以及被對話框下緣截斷、清單在那裡繼續往下捲動的「CSV 一對多映射」

起步的形狀

空的清單是合法的,但專案不該停在那裡。一個完成的任務,不論加工什麼,都有同樣的形狀:設定在最上面,程式在中間,程式夾在兩筆記錄網格幾何項目之間,輸出在最下面。

新專案不是從空的開始。 建立專案時會預先放入八個項目:五個設定類命令、兩個指名佔位檔案 NC/NC-File-Name-1.nc 與 NC/NC-File-Name-2.nc 的程式檔案項目,以及一個所有輸出都關閉的執行後作業。這兩個佔位項目指名的檔案並不存在,所以在它們被指向一支真正的程式或被刪除之前,每次播放都會各自在工作階段分頁回報 RunNcFile--NotFound——而在什麼都沒選取時用任務列的 + 新增的命令,會落在它們之後,也就是清單的結尾。

設定 加工解析度、運動解析度、碰撞偵測、失敗時暫停、物理模擬
輸出 記錄網格幾何——Cache/<stage>-init.wct,毛胚
程式 程式檔案
輸出 記錄網格幾何——Cache/<stage>-done.wct,結果
輸出 執行後作業

這兩筆記錄正是讓執行能夠接續的關鍵,它們是形狀的一部分,而不是進階的附加項——沒有它們的任務,每一次都從毛胚重播整件工作。有兩條規則跟著它們:

  • 毛胚記錄是以工件的初始解析度網格化的。 第一筆記錄寫下的是依毛胚本身的幾何建出的毛胚,而這次建構使用的是工件網格項目上的初始解析度——不是加工解析度命令,不論它放在哪裡。加工解析度設定的是新切出的表面最細能到多細,所以它應該放在第一支程式之上。在第一筆記錄執行之前,把初始解析度設為毛胚所需的寬度;之後的變更,在第 0 階段的記錄被重設、或它的檔案被刪除之前,都不會有任何效果。
  • 毛胚是 STL 時保留第一筆記錄;毛胚是程序式實體時就拿掉它(方塊或柱狀體),毛胚本身已是記錄下來的網格時也一樣。網格化 STL 是每次播放都要付的固定成本;方塊則是核心一下子就建好的,快取它花的比省下的還多。

能接續的任務完整呈現了這個配置,並附上每一列背後的理由與實測數據。

讀懂一列

每一列都顯示命令的種類;若有某一項細節能辨識這個命令,就把那項細節接在種類後面的方括號裡。能為命令命名的,那項細節就是你鍵入的標題,所以一列在命名之後仍說得出它是什麼:清單 [Roughing]、NC程式碼 [Inline finishing pass]——而標題空著時,那一列就只是種類本身,NC程式碼 或 腳本。不能命名的,命令就改把它所持有的東西放進方括號——程式檔案 [NC/circle.ptp]、加工解析度 [1 mm]、碰撞偵測 [開]——所以不必打開任何東西,任務就讀得懂。有兩種沒有單一細節可顯示,只讀作它們的種類:NC優化設定 與 執行後處理,它們的設定是該列底下的子節點,而不是單一個值。

每一個命令列都帶著四個按鈕——上移、下移、產生副本與刪除——在指標停在該列上、或該列被選取時顯露出來,在觸控螢幕上則一直顯示。在清單的兩端,上移與下移會停用。刪除會先要求確認,確認對話框會寫出命令的名稱。產生副本是深層複製:群組會連同裡面的一切一起複製,副本緊接在原件之後。當選取位於被操作的那一列上,或它底下的任何地方時——你對群組那一列操作時,選取原本在群組裡的某個項目上;或你對命令那一列操作時,選取原本在它的某個子節點上——選取會跟著操作走。接著選取會落在被操作的那一列本身——移到新位置的那一列、副本,或刪除之後最近的倖存者(清單清空之後,就是清單本身)——所以你原本在那一列底下所開的編輯器,會被那一列自己的面板取代。對一個選取既不在其上、也不在其下的列操作,選取和你所在的編輯器都會留在原處。

列操作在寫入任何東西之前——刪除的話,要等你確認之後——會先處理打開中的編輯器尚未儲存的內容。如果你取消那個提示,這個操作就會被放棄,並有一則通知說明這一點。

在一列上除了核取方塊或按鈕以外的任何地方點一下,就會選取那個命令,並在樹下方打開它的編輯器。

勾選要執行的項目

命令列最前面的核取方塊,是決定命令是否執行的唯一依據。 取消勾選它,那一列就會反灰;編輯器仍然開著、完全可以編輯,並附上一則說明該命令已停用的提示。取消勾選群組,整個群組都會反灰,執行會跳過這個群組以及巢狀在它裡面的一切。

把命令留在原處、取消勾選它,就能跳過一個環節而不遺失它的設定——這正是你在縮小問題範圍時想要的。

群組成一張清單

清單是流程類別裡的一個普通命令,新增一個清單就會長出一棵子樹:它的子節點就是它自己的項目,也就是往下一層、帶著同樣把手與按鈕的列,而它那一列也帶著自己的 +。這可以巢狀到任何深度,所以任務可以依工序分組,而不是一路平鋪。

清單帶著一個選填的標題,它節點的面板上就只有那個標題(選填)欄位——它的項目就是它在樹上的各列——而且和任何命令一樣,核取方塊未勾選時,欄位上方會有一則說明它已停用的提示。標題空著時,那一列讀作 清單;標題有內容之後,讀作 清單 [標題];只有空白的標題視同未設定。任務根節點是唯一沒有標題欄位的清單——它讀作任務。

範例任務,路由 /execution?tree=execution/mission:兩個群組與七個散置的項目。傳輸按鈕與就緒徽章位於控制樹的頂端;任務是它的第一個根節點,清單 [Roughing] 與清單 [Finishing] 都已展開,各自裡面的兩個程式檔案項目在方括號中標出它們的檔案,而任務列與兩個清單列的右緣都帶著一個 +。程式根節點收合在下面。樹下方的任務面板寫著命令 9,以及指出這些列操作方式的提示。反灰的程式檔案與執行後處理兩列,是取消勾選、留在原處的項目——它們是任務的一部分,但不會執行。

執行頁上的控制樹:樹上方是六個傳輸按鈕與綠色的「就緒」徽章;「任務」根節點列的右緣帶著一個 +,接著是「加工解析度 1 mm」與「碰撞偵測 開」,展開的「清單 Roughing」底下是「程式檔案 NC/circle.ptp」與「程式檔案 NC/drill_slot.ptp」,展開的「清單 Finishing」底下是「程式檔案 NC/side.ptp」與「程式檔案 NC/slide.ptp」,兩列清單各自帶著自己的 +;接著是「程式檔案 NC/circle.ptp」、「NC程式碼 Inline finishing pass」、一列反灰且未勾選的「程式檔案 NC/slide-test-resolution-script.ptp」、展開箭頭收合著的「NC優化設定」,以及一列反灰、展開箭頭收合、未勾選的「執行後處理」,每一個命令列的標籤前都有一個核取方塊與一個拖曳把手;下方是收合的「程式」根節點;樹下方的「任務」面板寫著「命令 9」,以及命令在控制樹中由上而下執行的提示,提到「任務」或「清單」列上的 +、拖曳列以重新排序、列上自己的上移、下移、產生副本與刪除按鈕,以及啟用或停用該命令的核取方塊

重新排序,以及移入與移出

上移與下移只在項目自己的清單內移動它,從不改變它屬於哪個清單。拖曳一列能做得更多——標籤前的把手標示這一列可以拖曳,但整列都是抓握處:從把手、標籤或它們旁邊的空白處開始拖曳,都會把這一列拿起來——而放在哪裡,決定發生的是哪一種:

放在 結果
一個命令列上 落在它之前或之後——以該列的中線為界。在同一個清單裡,這是重新排序;在另一個清單裡,項目就移到那裡。
清單列的中間帶 把項目移進那個清單,放在它的結尾。該列上下外側的四分之一,仍是落在它之前或之後。
任務列 把項目移進根清單,放在它的結尾——整列都是落點。

拖曳經過某一列時,沿著該列上緣或下緣的一條線標示之前或之後,整列著色則標示移進。要把項目從群組中拿出來,就把它放在群組外的某一列上,或放在任務列上。把清單移進它自己、或移進它自己的某個群組,會被拒絕。被拖曳的命令若原本是選取的——或選取原本位於它底下的某處,在它的某個項目或子節點上——它就在落點處被選取;選取若在其他列上,就留在那一列。

拖曳只用於重新排列。樹只接受它自己的列:從外面拖進來的文字或檔案,在每一列上都會顯示瀏覽器的禁止放置游標,在那裡放開,則是把這次放置交給瀏覽器自己的預設行為,而不是交給應用程式——什麼都不會匯入,而瀏覽器通常會在分頁裡打開被放下的檔案,離開這一頁。要一次帶進好幾支程式,就用一個程式檔案命令的挑選器,把它們一起選取:多出來的檔案會成為緊接在那一個之後的程式檔案命令;見播放程式。

編輯單一命令

選取一個命令的列。它的編輯器會在樹下方的面板中打開——只有編輯器,命令關閉時再附上一則提示。移動、產生副本與刪除都留在列上。

只做一件事的命令——程式檔案、NC 程式碼、腳本——把整個編輯器放在那一個節點上。有好幾張卡片的命令則把它們攤開:命令本身的設定留在命令節點上,其餘每一張卡片都成為它底下的一個子節點,所以一個很長的命令,是沿著樹往下走著讀,而不是捲動一個面板來讀。卡片原本若有自己的啟用開關,那個開關就是子節點自己的核取方塊。哪些命令會這樣做、每張卡片放著什麼,見其他命令。

延伸閱讀