作为一些工作流优化的一部分,我想将大量Solidworks函数映射到热键。程序本身有能力将功能分配给热键,但它只是整个命令集的一小部分。其余部分可以通过一种变通方法分配给热键,该变通方法创建一个运行该函数的宏并将该宏分配给热键
在Solidworks中创建宏的方法有两种:
在Solidworks中,可以记录一系列命令,然后将它们保存为.swb文件。运行该宏会重复记录的命令。(这种方法有缺陷,真的命中或未命中)
可以使用Microsoft Visual Basic for Applications(Solidworks用作宏编辑器)直接创建宏。生成的文件也是一个.swb文件,运行它会执行它调用的Solidworks函数。这个方法是创建多个热键的最简单的方法,因为我只需要编辑一行代码,就可以执行我想要的任何函数
下面是它的样子:
Dim swApp As Object
Dim Part As Object
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
swApp.RunCommand swCommands_Leader_Add_Bent, ""
End Sub
上面的示例宏(在VB中)向选定的引线添加折弯点。下一行是负责执行Solidworks功能的行
swApp.RunCommand swCommands_Leader_Add_Bent, ""
例如,将swCommands_Leader_Add_Bent
更改为swCommands_Select_Midpoint
现在使代码选择直线或边的中点
使用这种方法,我可以创建可以运行Solidworks三千个左右命令的宏。问题是,这个过程有点乏味,而对几十个或数百个命令执行这个过程将非常耗时。我有所有SolidWorks函数的列表,因此理想情况下,我希望将该列表提供给一些python代码,该代码使用列表中的函数编辑swApp.RunCommand
行,以及该代码输出.swb文件,这些文件是准备分配给热键的宏
其他一些评论:
我不确定.swb文件是什么类型的文件,所以如果我的术语不正确,请原谅。我知道它们不是文本文件,因为在文本编辑器中打开它会导致胡说八道。它们使用Microsoft Visual Basic for Applications 7.1进行编辑。Solidworks称之为SW VBA宏
我不希望从python运行宏或VBA代码本身。我已经得到了工作,它太慢,我的需要。我想使用python生成VBA文件
我四处搜索,没有找到一种方法可以让python编辑、写入或生成VBA文件
解决方案不必使用python,但这是我最熟悉的语言。我对其他语言或方法持开放态度
总之,我希望自动创建大量SW VBA宏(*.swb),你们能提供任何指导或建议吗
如果我正确理解了你的问题,下面的方法应该有效(未经测试!!)
您可以创建一个函数,将任何命令名替换为您提供的代码,如下所示
..然后您可以创建一个包含所有命令名的列表
..然后迭代列表,将生成的文本保存到扩展名为“.swb”的文件中
…这将生成许多名为“my_solidworks\u macro\u 0”、“my_solidworks\u macro\u 1”等的文件。每个文件的命令名与您提供的列表不同
相关问题 更多 >
编程相关推荐