数年前、私は Python でスクリプトを作成し、SolidWorks_2012 で行っていたいくつかの面倒なプロセスを自動化しました。私はそのスクリプトをWin7 32ビットでpython 27 32ビットとSolidWorks_2012 32ビットで実行していました。
今、私はまったく同じ問題に直面し、古いスクリプトを使用しようとしましたが、OpenDoc6 (および値が ref で渡される他の関数) で例外が発生します:
"Objects of type 'PyOleMissing' can not be converted to a COM VARIANT"
これは、私が動作させることができないいくつかのサンプルです:
import win32com.client as win32
import pythoncom
sw = win32.Dispatch('SldWorks.Application')
path_to_file = "some_path"
sw_asm = sw.OpenDoc6(path_to_file, 2, 1, "", pythoncom.Missing, pythoncom.Missing)
VBAのドキュメントからのこの関数の仕様は次のとおりです。
Function OpenDoc6( _
ByVal FileName As System.String, _
ByVal Type As System.Integer, _
ByVal Options As System.Integer, _
ByVal Configuration As System.String, _
ByRef Errors As System.Integer, _
ByRef Warnings As System.Integer _
) As ModelDoc2
ご覧のとおり、最新の 2 つは参照渡しです。
また、ここには解決策のない同じ問題があります。これが重要な場合に備えて、今は win 8 64、python 27 32/64、SolidWorks 2014 64 を実行しています。
前もって感謝します!