【FlexSim2019】仿真软件入门笔记:基本操作、快捷键、事件驱动、控制与程序
仿真软件。第一次自学。自己摸索出的快捷键记录。
参考书目:
- 使用系统仿真建模与分析——使用Flexsim(第2版).秦天保, 周向阳. 清华大学出版社.
文章目录
基本操作
鼠标
按住Shift或Ctrl批量可操作

- 标准模式(Standard Mode/鼠标模式)下,按住shift,拖拽鼠标左键批量选中物体(或者说将物体分组)。
- 按住shift,在空白处拖拽鼠标左键,取消选择。

鼠标右键
单击鼠标右键退出当前模式
1.鼠标处于连线状态,或选中对象时,按右键或Esc退回到Standard Mode。
按住鼠标右键旋转镜头
鼠标滚轮
选中物体后鼠标滚轮可调整物体高度


常用快捷键
| 键 | 功能 |
|---|---|
| Backspace | 删除对象 |
| 按住A | 鼠标A连接模式 |
| 按住S | 鼠标S连接模式 |
| 按住Q | 鼠标剪断Q连接模式 |
| 按住W | 鼠标剪断W连接模式 |
仿真模型运行原理

目前只跟着第2章做了案例,对大概的运行原理有了一个推测。
设计上,面向过程,直接设计
将要仿真的对象直接转换为flex的对象,摆放、确认连接关系即可。
- A连接是有向的;
- B连接是无向的。
A连接从端口出,零一对象端口入。每个对象自己的出入端口有编号。
中间端口比如Dispatcher,其更像是Queue的分支(与Queue是S连接),与Operator是A连接(从Dispatcher到Operator)。在Queue的Flow页中选择Use Transport,即可调度Operator。
以Flow为事件驱动器
流动实体
书28页:流动实体(Flowitem)是系统中沿不同路线流动,并在不同地方被加工处理或被服务的对象。Flowitem可以代表产品、零件、托盘、容器、人、电话呼叫、订单等。Flowitem通常由Source对象生成,由Sink对象离开系统。
流动实体类型与标签
每个流动实体都内置属性实体类型(Itemtype),可以代表条形码、产品类型或工件号等。可以用于路线选择等决策逻辑。可以在通过增加Label来定义新属性。
控制与编程机制、代码
当Source创建流动实体时会触发onCreation触发器执行。可通过加号按钮为触发器增加代码模板。

通过卷轴按钮可以查看代码,这里以定义流动实体类型和颜色为例。
Object current = ownerobject(c);
Object item = param(1);
int rownumber = param(2); //row number of the schedule/sequence table
{ // ************* PickOption Start ************* //
/***popup:SetTypeAndColor*/
/**Set Item Type and Color*/
Object involved = /** \nFlowitem: *//***tag:involved*//**/item/**/;
double newtype = /** \nItem type: *//***tag:type*//**/duniform(1,3,getstream(current))/**/;
involved.Type = newtype;
involved.color = Color.byNumber(newtype);
} // ******* PickOption End ******* //
{ // ************* PickOption Start ************* //
旧版本中,各种对象都是treenode类型的,现在变为了Object。
这其中,代码表达的是:
- current代表对象本身;
- item代表刚刚创建的流动实体;
Object involved = item; // 将item的引用赋值给involved变量
double newtype = duniform(1,3,getstream(current)); // 在分布中产生一个数赋给newtype
involved.Type = newtype; // 将item的itemtype设为newtype
involved.color = Color.byNumber(newtype); // 设置item的color
可见flexscript也是采用面向对象的思想的。至于Object有多少子类、属性,不必过于深究,还是以GUI操作为主。
学了一晚,让我想起小时候玩的魔兽争霸地图编辑器:world edit。如果flexsim再有什么心得的话,那就下篇再见。
后记(2019年12月5日):距离写这篇文章已经过去快3个月了。现在回头看,“以Flow为事件驱动器”的理解是不对的。对于flexsim的学习,读书不如读软件中自带的英文版User Manual。去读User Manual吧,以后学编程也要注意,有精力,则去读官方文档吧,去读底层吧,去读源码吧。现在知道了,所谓A、S连接也并非我想的那样,过家家似的连接在一起。A、S连接只不过是Port连接的一种表现,而连接有三种:Port、List与Conveyors。
- github:https://github.com/PiperLiu
- 微信公众号:Piper蛋窝
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)