python - SelectById2 的指针标注

标签 python solidworks

我正在尝试将我在 VBA 中编写的一些代码移植到 Python 中以控制 Solidworks。特别是自动化草图编辑。我在 Python 中使用 Solidworks SelectById2 时遇到问题。在 VBA 中,以下代码工作正常:

Part.Extension.SelectByID2("Sketch1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)

我遇到的问题是用一些 Python 等效项替换 VBA 的“无”值。

从 Solidworks API 文档中,SelectByID2 正在寻找的是:

SelectByID2(Name, Type, X, Y, Z, Append, Mark, Callout, SelectOption)

其中 Callout 是指向相关标注的指针。我宁愿不创建指针,因为它与我无关,而且我在 VBA 中看到它没有必要。

我尝试过使用 Python 的 None、pythoncom.Missing、pythoncom.Empty、""、""、0 ... 都无济于事。所有这些都给我一个 TypeError。

这是我的相关 Python 代码:

import win32com.client
import pythoncom

pythoncom.CoInitializeEx(pythoncom.COINIT_APARTMENTTHREADED)

sldworks = win32com.client.gencache.EnsureModule('{83A33D31-27C5-11CE-BFD4-00400513BB57}', 0x0, 20, 0) # Solidworks OLE Automation 1.0 Type Library
swconst = win32com.client.gencache.EnsureModule('{4687F359-55D0-4CD3-B6CF-2EB42C11F989}', 0x0, 20, 0)  # Solidworks 2012 Constant Type Library

sw = sldworks.SldWorks()
sw.Visible = 1
model_path = "Y:\\Templates\\Solidworks\\test.SLDPRT"
doc, errors, warnings = sw.OpenDoc6(model_path, swconst.constants.swDocPART, swconst.constants.swOpenDocOptions_Silent, "", pythoncom.Missing, pythoncom.Missing)
sw.ActivateDoc2(model_path, False,pythoncom.Missing)
Part = sw.ActiveDoc  

try:
    Part.Extension.SelectByID2("Sketch1", "SKETCH", 0, 0, 0, False, 0, ffff, 0)
except Exception, value:        
    print "Exception occured, value = ", value 

关于如何解决这个问题有什么建议吗?

最佳答案

我知道它不能解决您的问题,但也许您可以使用以下解决方法:

swModel.FirstFeature

然后你问名字:

swFeat.Name = "Sketch1"

如果这不是您正在寻找的草图,请前往下一个:

swFeat = swFeat.GetNextFeature

关于python - SelectById2 的指针标注,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19454804/

相关文章:

python - 在列表中查找字符串第二次出现的索引

vb.net - 使用 OpenDoc6 打开工程图文档

c# - 在 C# COM 项目中,我应该引用 DLL 还是 TLB? (主要是 SolidWorks)

c# - Solidworks C# API 创建线性阵列

python - 在 Tkinter 中循环遍历小部件

Python sys.exit 返回代码

Python 生成器的 'yield' 在单独的函数中

python - 有什么方法可以在 python 脚本中创建一个 Understand (from Scitools) DB?

vba - SolidWorks 2013 宏 - 字符串操作?

c# - 在 Windows 窗体中显示 SolidWorks 工程图