空間佈置:Network
這是AnyLogic非常重要的觀念,有別於其他模擬軟體。我在這邊摔了很多次跤。AnyLogic把邏輯流程與空間佈置分開來處理。你可以有個模型沒有空間佈置,純粹就是看邏輯流程裡的元件,進出多少個Entity。當你有了空間佈置,那就有2D與3D的視圖。設計時是有3維座標的2D編輯區。執行時2D編輯區仍可顯示3D物件,但是真正的3D,是另外一個3D Window來顯示。 講空間佈置,原則上是在一個2D的編輯區中設計3D物件的擺放與流動。這個擺放與流動所形成的結構,就叫做Network。下圖是AnyLogic的說明檔中的圖。 左邊是我們拉一些空間佈置的節點(Node)到編輯區,並仿照實務情形來擺放位置,並且使用Path[待補連結]來將這些Node串起來,形成Entity可以流動的路線。這樣結合起來,就形成一個Network。注意,一個Agnet Type可以有多個Network,節點也可以單獨存在。右方就是形成一個Network。一般節點有(1) Rectangular node[待補連結], (2) Point node[待補連結], (3) Polygonal node[待補連結]三種類型。上圖例都是用Rectangular node。 形成Network的節點與路徑,在專案目錄中會以下圖方式顯示。 看到這,就可以想想Network也只是一個群組類別。是類別,就可以有屬性。 屬性 名稱。預設值是network。若有很多個Network時,命名很重要。 是否可以忽略。很多元件都有,使用上要小心,若這個元件有被其他元件用程式呼叫時,在編譯時會出錯。 是否要顯示在最上層。之前提到Agent Type可以有自己的network,但是都會疊在一起。這個是設定疊在一起時要不要顯示。 鎖定。這個很重要。實務上一個模型會有好多個Network疊來疊去,保證會昏頭轉向。我做了三層樓的,疊在一起,很難辨識。而且很容易被選擇且移動到。避免如此,當某個Network確認好相對位置後,就可以先鎖起來,避免被選取與移動。 可見與否。這個跟地3不太一樣。這個是在Agent Type本身。 Z軸座標。是的,當有三層樓時,這個z座標就很重要。 決定此network要顯示在2D或3D,或兩者都要。 函數 network也提供了一些函數方便我們在程式面使...