首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SelectById2的指针标注

SelectById2的指针标注
EN

Stack Overflow用户
提问于 2013-10-19 00:42:14
回答 2查看 801关注 0票数 3

我正在尝试将我用VBA编写的一些代码移植到Python中来控制Solidworks。具体地说就是自动编辑草图。我在Python中使用Solidworks SelectById2时遇到了问题。在VBA中,以下代码运行正常:

代码语言:javascript
复制
Part.Extension.SelectByID2("Sketch1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)

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

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

代码语言:javascript
复制
SelectByID2(Name, Type, X, Y, Z, Append, Mark, Callout, SelectOption)

其中,callout是指向关联标注的指针。我不想创建指针,因为它与我无关,而且我在VBA中看到它是不必要的。

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

下面是我的相关Python代码:

代码语言:javascript
复制
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 

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

EN

回答 2

Stack Overflow用户

发布于 2015-02-19 22:39:19

我知道这不能解决你的问题,但也许你可以使用一个变通的方法:

代码语言:javascript
复制
swModel.FirstFeature

然后你问他的名字:

代码语言:javascript
复制
swFeat.Name = "Sketch1"

如果这不是你要找的草图,那就去看下一个:

代码语言:javascript
复制
swFeat = swFeat.GetNextFeature
票数 2
EN

Stack Overflow用户

发布于 2022-01-31 03:05:15

尝试将"ffff“更改为:

代码语言:javascript
复制
arg1 = win32com.client.VARIANT(pythoncom.VT_DISPATCH, None) 
to get:
doc.Extension.SelectByID2("Sketch1", "SKETCH", 0, 0, 0, False, 0, arg1, 0)

致谢:http://joshuaredstone.blogspot.com/2015/02/solidworks-macros-via-python.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19454804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档