1

数年前、私は 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 を実行しています。

前もって感謝します!

4

1 に答える 1