Python-VISSIM-COM接口
我是Python新手,Python Vissim连接有问题。问题是,当我开始运行python文件时,Vissim开始打开并加载我的模型(网络和布局)。加载完成后,Vissim自动关闭。我不知道我做错了什么?我希望有人能在这个问题上帮助我 这是我的密码:Python-VISSIM-COM接口,python,python-3.x,Python,Python 3.x,我是Python新手,Python Vissim连接有问题。问题是,当我开始运行python文件时,Vissim开始打开并加载我的模型(网络和布局)。加载完成后,Vissim自动关闭。我不知道我做错了什么?我希望有人能在这个问题上帮助我 这是我的密码: import win32com.client as com 类别COM: #region Vissim connection Inpx_path = '' Layx_path = '' def __init__(self):
import win32com.client as com
类别COM:
#region Vissim connection
Inpx_path = ''
Layx_path = ''
def __init__(self):
self.Inpx_path = r'D:\\User\\Model\\Hein.inpx'
self.Layx_path = r'D:\\User\\Model\\Hein.layx'
def startVissim(self):
try:
Vissim = com.dynamic.Dispatch('Vissim.Vissim.110')
return Vissim
except Exception as e:
print(e)
def loadNetwork(self, vissim):
try:
Net = vissim.LoadNet(self.Inpx_path)
return Net
except Exception as e:
print(e)
def loadLayout(self, vissim):
try:
Layout = vissim.LoadLayout(self.Layx_path)
return Layout
except Exception as e:
print(e)
vissim = COM().startVissim()
net = COM().loadNetwork(vissim)
layout = COM().loadLayout(vissim)
注意:vissim、net和layout不属于COM类根据我在PTV COM培训课程中的记忆,尝试以下步骤可能会有所帮助:
如果没有帮助,我建议通过技术支持或LinkedIn上“PTV Vissim论坛”的帖子与PTV取得联系 在代码末尾,尝试调用“vissim”对象(新行如下所示)。这在我的代码中起作用,防止它关闭。我相信它使程序处于等待下一个命令的等待状态;否则,软件到达代码末尾并关闭
vissim = COM().startVissim()
net = COM().loadNetwork(vissim)
layout = COM().loadLayout(vissim)
vissim ## new line of code
这是脚本结束时的预期行为,因此Vissim将关闭。出于评估目的,您也许可以在程序结束时进行一次while循环,这样从技术上讲,程序将继续运行,因此vissim不会关闭 但是,上述方法将不再允许您使用python与模拟交互。如果真的需要,我只是出于评估的目的使用它 如果您希望保持Vissim运行并且仍然能够与之交互,我建议使用pythonidle。您可以每次手动在其中键入所有代码,或者只导入脚本文件。Python实例仍在运行,因此Vissim应用程序不会关闭,您仍然可以通过Python调用COM函数与Vissim交互 要导入脚本文件,请执行以下操作:
from foo import *
假设您共享的上述脚本文件名为foo.py,并且您位于同一目录中,则应该加载Vissim,而不是关闭,并允许您添加其他代码