凯得吧[CAD8.Net]

 找回密码
 注册会员

QQ登录

只需一步,快速开始

尊敬的会员:如您的密码仅为数字等简单密码,为帐号安全,请务必修改! 新会员请验证邮箱!升级后可发主题贴!
分享内容请勿对会员进行二次引导,附件有密码请务必在贴内说明,或使用本站默认密码:www.cad8.net
本站所有资料为会员上传仅供大家学习之用,商用请务必购买正版版权!有侵权之处,请联系管理员(QQ:119891935)删除!
查看: 144|回复: 0
收起左侧

如何在VBA中调用Inventor命令

[复制链接]
发表于 2018-12-29 14:36:35 | 显示全部楼层 |阅读模式 简体中文繁體中文
用QQ等截图工具截图后,点中发贴区直接按Ctrl+V键就可以将截图粘贴到发贴框.

欢迎加入,注册成为会员,享用更多功能,完全免费。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
通过API可以实现大部分Inventor的功能,但偶尔可能API尚未提供对应功能,或者Inventor的对话框比较复杂,你不想自己也写个对话框,用API实现每个按钮功能。那这时可以考虑直接调用Inventor命令。其实,基本所有在用户界面看到的功能都可以找到对应的命令,包括二次开发创建的命令。如果你写过插件,肯定熟悉如何创建一个按钮,其中有个ControlDefinition对象,它就是所谓的命令容器。通过API你可以获取所有命令列表,例如:

Sub dumpCommands()

'准备一个文本文件用来存储命令信息

Open "c:\temp\inventorcommands.txt" For Output As #1

'遍历每个命令

Dim oEachCol As ControlDefinition

For Each oEachCol In ThisApplication.CommandManager.ControlDefinitions

Write #1, "[命令显示名] " & oEachCol.DisplayName & "[命令内部名] " & oEachCol.InternalName

Next

Close #1

End Sub

所有命令,写入一个文本文件。DisplaName是命令在用户界面显示的名字,若中文版则是中文。而InternName是唯一名,任何版本都一样。当你拿到这样的文本文件,通常可以根据显示名,查找哪个命令可能是你需要的,例如,要弹出【另存文件】的对话框,显示名(我是英文版)是Save Copy,则可查到其内部名是: AppFileSaveCopyAsCmd。

接着,你可以直接调用该命令:

Sub executeCommand()

Dim oTheCol As ControlDefinition

Set oTheCol = ThisApplication.CommandManager.ControlDefinitions("AppFileSaveCopyAsCmd")

'异步执行。只在你自己命令结束后才执行

oTheCol.Execute

'或立即执行

'oTheCol.Execute2 True

End Sub
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

本站所有资料仅供大家学习之用,商用请务必购买正版版权!有侵权之处,请联系管理员(QQ:119891935)删除!
 
在线客服
ҷϢ
++++++++++
CAD论坛公众号

欢迎扫码关注!
快速回复 返回顶部 返回列表