
センサー1個でホームドアを開閉するスクリプトを作りました。それぞれで設定する項目は赤文字のところです。ホームドアにはグループ名を付けておいてください。
#OBJID=74
import vrmapi
def vrmevent_74(obj,ev,param):
di = obj.GetDict()
if ev == 'init':
di['train'] = 0
di['doorname'] = "DOOR01" #ホームドアグループ名
di['doorside'] = 1 #0:停車車両左側 1:停車車両右側
di['stopdistance'] = 700.0 #停車距離
di['stoptime'] = 5.0 #停車時間
di['startdistance'] = 600.0 #出発列車電圧設定距離
di['startvoltage'] = 0.8 #出発列車電圧
di['doorlist'] = list()
vrmapi.LAYOUT().ListCrossingGroup(di['doorname'],di['doorlist'])
for item in di['doorlist']:
item.SetCrossingStatus(2)
elif ev == 'broadcast':
dummy = 1
elif ev == 'timer':
dummy = 1
elif ev == 'time':
dummy = 1
elif ev == 'after':
if param['eventUID'] == 100:
di['train'].OpenDoor(di['doorside'],False)
for item in di['doorlist']:
item.SetCrossingStatus(1)
obj.SetEventAfter(di['stoptime'],101)
if param['eventUID'] == 101:
di['train'].CloseDoor(di['doorside'],False)
for item in di['doorlist']:
item.SetCrossingStatus(2)
obj.SetEventAfter(2.0,102)
if param['eventUID'] == 102:
di['train'].AutoSpeedCTRL(di['startdistance'],di['startvoltage'])
elif ev == 'frame':
dummy = 1
elif ev == 'catch':
if obj.GetForward() == 1:
di['train'] = obj.GetTrain()
speed = di['train'].GetSpeed()
stoptime = 2.0 + 1.08 * di['stopdistance'] / speed
di['train'].AutoSpeedCTRL(di['stopdistance'],0.0)
obj.SetEventAfter(stoptime,100)
それでは動画でどうぞ(^^)/
