組裝錨點 (Assembly Anchors)¶
加工場景的各個部分靠什麼固定在一起。HiNC 的組裝不是一個擺放步驟,而是一句「重合」的宣告:兩個具名錨點被宣告相等,它們所屬的一切就會移動到讓這件事成立。工具機、夾具與工件各自擁有一套自由的拓樸,並由自己指名哪些錨點擔任自己的角色;刀具的 mount(安裝點)則是固定的錨點。設備把相鄰部件的角色接在一起,而這些關節就是下面這幾個 mount。
由「錨點是什麼」開始,到各部件指名的角色,再到用它們建起來的兩個關節。
錨點是什麼¶
錨點 (Anchor) 用於組裝。當幾何之間的錨點重合時,組裝即完成。
嚴格而言,錨點不是一個點,而是一個座標系。兩個座標系若要相等,原點必須重合,且旋轉方向必須一致。
錨點組裝範例
如下圖,存在兩個元件,每個元件各有兩個錨點,分別為 {AnchorA, AnchorB} 與 {AnchorC, AnchorD}。
兩元件以 AnchorB 與 AnchorC 重合完成組裝。

角色:哪個錨點擔任哪個部分¶
部件的拓樸是自由的——任意的錨點、連接與變換器——所以由部件自己說出設備可以接到它的哪些元素上。角色是一個可設定的屬性,它接受該部件自身組件裡的任何元素,或以 null 解除繫結;組件以外的元素會被拒絕。設定時不檢查其他事:一個部件可以帶著尚未繫結的角色存在,而它是否完整,是在真正要用到的地方才判斷——設備只附接已繫結的角色,而一次執行會在起點停下並點名缺少的那一個。
| 部件 | 角色 | 種類 |
|---|---|---|
| 工具機 (GeneralXyzabcMachineTool) | TableMount、ToolMount |
錨點 |
AxisX … AxisC |
連接;X、Y、Z 帶一個 DynamicTranslation,A、B、C 帶一個 DynamicRotation | |
Spindle |
連接;一個繞刀具安裝點 −Z、穿過其原點旋轉的 DynamicRotation——不是機械座標;沒有記錄主軸的檔案按拓樸去找它:抵達刀具安裝點所掛之處的那條連接 | |
| 夾具 (Fixture) | TableMount、WorkpieceMount、GeomAnchor |
錨點 |
| 工件 (Workpiece) | FixtureMount、ProgramZeroAnchor、GeomAnchor |
錨點 |
兩個 GeomAnchor 角色不是關節:夾具的那個是它的實體所掛上、也是夾具碰撞所檢查的錨點;工件的那個是它的毛胚與目標幾何所依據的座標系。ProgramZeroAnchor 則是 NC 程式所寫在的那個座標系。由鏈碼建出的機台,是按名稱繫結它的兩個 mount——端錨點 w 與 t——如機台鏈碼所述。
夾具與工件各有一個把自己所有角色都繫結好的預設形狀(Fixture.CreateDefault (API)、Workpiece.CreateDefault (API)):夾具的根錨點就是它的 GeomAnchor,帶著一個空實體,並有一條單位變換連接通到 TableMount、一條通到 WorkpieceMount;工件的根錨點是它的 FixtureMount,而自它的 GeomAnchor 有一條零平移連接通到 FixtureMount、一條通到 ProgramZeroAnchor。每條預設連接都以它所抵達的錨點命名。存檔時未內嵌拓樸的檔案,載入後就落在這個形狀上。
工作臺錨點與工件錨點¶
工具機的 TableMount 就是它的工作臺端。夾具的 TableMount 與它相接,夾具的 WorkpieceMount 再與工件的 FixtureMount 相接——所以這個關節是由兩個各自以對方命名的錨點構成的。
只有工作臺這個附接——工具機 TableMount 到夾具 TableMount——帶著變換:也就是設備的 TableToComp,那就是夾具在工作臺上的擺放位置。夾具到工件的附接不帶變換,是單純的重合。至於夾具幾何相對於它兩個 mount 的位置,以及工件幾何與程式原點相對於它的夾具 mount 的位置,都是部件自己的連接——以 Branch.Get(fixture.GeomAnchor, fixture.TableMount).Transformer 與 Branch.Get(workpiece.GeomAnchor, workpiece.ProgramZeroAnchor).Transformer 讀取或寫入(見以 ITransformer 處理變換矩陣)。
工件夾具組裝範例
工件與夾具透過夾具的 WorkpieceMount 與工件的 FixtureMount 重合完成組裝。

如未設置夾具,夾具的兩個錨點便消失,改由工具機的 TableMount 直接與工件的 FixtureMount 相接,並帶著同一個 TableToComp 變換。
這些附接連接是設備自己建出來的,而且只要有部件或角色變動,就整批重建(Rewire (API),實作於 EquipmentWiring):先把每一個附接卸除,再把兩端錨點都已繫結的那些重新附接回去。尚未繫結的角色就單純不會有附接。
主軸錨點與刀具錨點¶
工具機的 ToolMount 就是它的刀具端,它與整支刀具的 SpindleMount 相接。刀把位在主軸與刀刃之間:刀具整體的 SpindleMount 與刀把自己的 SpindleMount 相接,刀把的 CutterMount 再與刀刃的 mount 錨點 (Mount) 相接。
如未設置刀把,刀把的兩個錨點便消失,改由刀具的 SpindleMount 直接與刀刃的 Mount 相接。工具機那一側的關節兩種情況都相同。
延伸閱讀¶
- 運動拓樸 — 這套慣例所使用的錨點、連接與組件類別(英文,未鏡像)
- 以 ITransformer 處理變換矩陣 — 連接所帶的變換器,以及如何在兩個角色錨點之間取到它(英文,未鏡像)
- 機台鏈碼 — 以
w與t兩個關鍵字繫結機台兩個 mount 角色的那套記法 - 錨點與角色 — 這些角色在應用程式裡從哪裡繫結、附接從哪裡編輯
- 程式原點對齊 — 把程式原點對到這些錨點上