【发布时间】:2018-04-02 11:42:13
【问题描述】:
我想使用我的宏 (.CATScript) 打开 catia 界面并将宏脚本中列出的更改更改为 .CATpart 并将输出作为 .stp 文件。是否可以使用python来实现这个功能?
Run a Catia macro with a python script 中有一个示例,但它不适用于我的情况。我编辑了如下代码并运行了它。
import win32com.client
catapp = win32com.client.Dispatch("CATIA.Application")
catapp.StartCommand('Macro_schweller_model_lsopt.CATScript')
我的错误是
File "C:\FK-Programme\python36-32\Anaconda\Install\lib\site-packages\win32com\client\dynamic.py", line 91, in _GetGoodDispatch
IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
com_error: (-2147221005, 'Ungültige Klassenzeichenfolge', None, None)
我的 .CATscript 看起来像这样
Sub CATMain()
Dim FileToOpen as String
Dim partDocument1 As Document
Dim part1 As Part
Dim AnglePara As Parameter
Dim parameters1 As Parameters
Dim AmplitudePara As Parameter
Dim WavelengthPara As Parameter
FileToOpen = "E:\Datei\Results\Optimization\LS_OPT_results\Optimization_model_1\Schweller_fully_corrugated.CATPart"
Set partDocument1 = CATIA.Documents.Open(FileToOpen)
Set part1 = partDocument1.Part
Set parameters1 = part1.Parameters
Set AnglePara = parameters1.RootParameterSet.DirectParameters.Item("Angle")
AnglePara.Value = -7
Set AmplitudePara = parameters1.RootParameterSet.DirectParameters.Item("Amplitude")
AmplitudePara.Value = 30
Set WavelengthPara = parameters1.RootParameterSet.DirectParameters.Item("Wavelength")
WavelengthPara.Value = 30
CATIA.DisplayFileAlerts = False
partDocument1.Part.Update
partDocument1.ExportData "E:\Datei\Results\Optimization\LS_OPT_results\Optimization_model_1\Schweller.stp", "stp"
End Sub
【问题讨论】:
-
我对 VBA 一无所知,但
_会不会是文件名中的问题 - 即使它们显然没有被禁止 (msdn.microsoft.com/en-us/vba/language-reference-vba/articles/…)?另外,你搜索过Ungültige Klassenzeichenfolge和英文翻译吗? -
Ungültige Klassenzeichenfolge 转换为无效的类字符串
-
你的问题回答了吗?
标签: python-2.7 macros catia