本文整理汇总了Python中win32com.client.Dispatch.Type方法的典型用法代码示例。如果您正苦于以下问题:Python Dispatch.Type方法的具体用法?Python Dispatch.Type怎么用?Python Dispatch.Type使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类win32com.client.Dispatch
的用法示例。
在下文中一共展示了Dispatch.Type方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Add3DCoordsToMol
# 需要导入模块: from win32com.client import Dispatch [as 别名]
# 或者: from win32com.client.Dispatch import Type [as 别名]
def Add3DCoordsToMol(data, format, props={}):
""" adds 3D coordinates to the data passed in using Chem3D
**Arguments**
- data: the molecular data
- format: the format of _data_. Should be something accepted by
_CDXConvert_
- props: (optional) a dictionary used to return calculated properties
"""
global c3dApp
if c3dApp is None:
StartChem3D()
if format != 'chemical/mdl-molfile':
molData = CDXClean(data, format, 'chemical/mdl-molfile')
else:
molData = data
molFName = tempfile.mktemp('.mol')
open(molFName, 'wb+').write(molData)
doc = c3dApp.Documents.Open(molFName)
if not doc:
print('cannot open molecule')
raise ValueError('No Molecule')
# set up the MM2 job
job = Dispatch('Chem3D.MM2Job')
job.Type = 1
job.DisplayEveryIteration = 0
job.RecordEveryIteration = 0
# start the calculation...
doc.MM2Compute(job)
# and wait for it to finish
while doc.ComputeStatus in [0x434f4d50, 0x50454e44]:
pass
#outFName = tempfile.mktemp('.mol')
# this is horrible, but apparently Chem3D gets pissy with tempfiles:
outFName = os.getcwd() + '/to3d.mol'
doc.SaveAs(outFName)
# generate the properties
for prop in availChem3DProps:
props[prop] = eval('doc.%s' % prop)
doc.Close(0)
os.unlink(molFName)
c3dData = open(outFName, 'r').read()
gone = 0
while not gone:
try:
os.unlink(outFName)
except Exception:
time.sleep(.5)
else:
gone = 1
return c3dData