
如何使用模板脚本实现信号灯节点的快速可视化
2020年1月:模板里有各种脚本:Margarida Delgado解释了第10号脚本如何加快过滤和查看信号灯节点的过程。
2016年8月
作者:Grant MacKinnon
大多数用户都熟悉在Aimsun模型的目标中创建自己的属性。 这些通常是数字或字符串,但也有可能在一个目标中添加一个列,根据一些Python代码返回一个值,允许一个值被即时计算。
一个简单的例子是,在转弯处放置一个标签字母,说明它是左转、直行、右转还是调头。
点击放大:显示网络中的属性
首先,我们可以使用类型编辑器创建这个列(通过从类型窗口中选择相关的目标类型),然后添加一个新的列:类型函数列,在这种情况下,一个返回字符串作为结果的列。
点击放大:使用类型编辑器创建列
该函数需要包含一个Python函数,其形式为:
def eval_attr(object):
其返回一个带有结果的值。
以下是我们存储在该列中的代码
def determineTurningLetterForAngle(angle): dirString = "" if abs(angle)<30.0: dirString+="T" elif abs(angle)>150.0:< dirString+="U" elif angle>0.0: dirString+="L" else: dirString+="R" return dirString def retrieveTurningLetterForTurning(turning): angle = turning.calcAngleSections() directionString = determineTurningLetterForAngle(angle) return directionString def eval_attr(object): res = retrieveTurningLetterForTurning(object) return res
然而,我们可以通过一个脚本来创建这一切,该脚本可以创建列,并填充代码。
直接从Python脚本中设置列的代码如下:
def main():
turnLetterAttr = model.getColumn("GKTurning::TurnLetter")
if turnLetterAttr == None:
turningType = model.getType("GKTurning")
turnLetterAttr =
turningType.addColumn("GKTurning::TurnLetter","TurnLetter",
GKColumn.String, GKColumn.ePython)
turnLetterAttr.setPythonCode(PYTHON_CODE_STRING)
main()
PYTHON_CODE_STRING 包含该函数的定义。
2020年1月:模板里有各种脚本:Margarida Delgado解释了第10号脚本如何加快过滤和查看信号灯节点的过程。
2016年3月:Marga Delgado解释了如何使用“宏观函数组件”在执行任务时产生额外的输出。
分享