在开发过程中,大家可能会遇到我想执行某个命令,但是api中没有提供对应的方法。

比如说用户选中一个尺寸时,solidworks的左侧属性框就会自动出来(有个选项可以控制),但此时如果我们想关闭属性框。应该怎么操作? 通过正常的测试可以发现按esc就可以。
当然如果直接发送系统的键盘命令的话,还需要先切换焦点到solidworks中。虽然 也可以实现,相对麻烦。
这时候我们可以通过另一种方式来执行命令,这个方式和我们手动点击菜单中的命令按钮是一样的效果。
这个我就不细说了,下面看一下简单的例子:

首先需要引用SolidWorks.Interop.swcommands

代码比较简单

          SldWorks swApp = PStandAlone.GetSolidWorks();//执行命令监控swApp.CommandOpenPreNotify += SwApp_CommandOpenPreNotify;//请参考SolidWorks.Interop.swcommands//swCommands_e 命令操作//swMouse_e  鼠标操作//打开选项对话框//swApp.RunCommand((int)swCommands_e.swCommands_Options, "");//开始3d草图swApp.RunCommand((int)swCommands_e.swCommands_3DSketch, "");//单击右键//swApp.RunCommand((int)swMouse_e.swMouse_Click, "");

在零件或者装配体的状态下执行后,就会看到solidworks已经在3d草图状态下了。

下面这个事件就可以对执行的命令进行记录。还可以限制用户进行一些特殊的命令,如下面的代码就禁用了过滤面命令。
这个可以扩展很多功能,比如做一些标准化管理,限制用户乱改配置。

         /// <summary>/// 在执行命令前通知。/// </summary>/// <param name="Command"></param>/// <param name="UserCommand"></param>/// <returns></returns>private int SwApp_CommandOpenPreNotify(int Command, int UserCommand){Debug.Print($@"command is :{Enum.GetName(typeof(swCommands_e), Command)}");Debug.Print($@"user command Id is :{UserCommand}");if (Command == (int)swCommands_e.swCommands_FilterFaces){MessageBox.Show("Fillet Faces Command is disable!");return 1;}return 0;}

在用户点击过滤面的时候就会出现:

C# SolidWorks 二次开发 API---调用Solidworks命令相关推荐

  1. 微信API接口、微信二次开发API调用

    微信API接口.微信二次开发API调用 微信协议接口调用-加微信好友及通过好友请求 加微信好友 /**       * 微信自动添加好友      * @author wechatno:tangjin ...

  2. C# SolidWorks 二次开发 API --- 提升exe执行效率接近DLL

    最近一段时间没更新博客,原因比较多.作为湖北人,今年的班上的不容易.当然还是要感谢各地的支援. 今天来和大家分享一下一个关于exe提升性能的选项,因为之前主要写的exe比较多,后来改成dll之后效率提 ...

  3. C# SolidWorks 二次开发 API --- 2018版 中文翻译 之官方示例

    这是2018版 自带帮助文件的API例子中文导航,如果有错误的,请指出来 时间原因,我没有一一测试,只是大概过滤了一下. 共计750个例 子: 中文标题 Web Link 将绘图表缩放到窗口中的最大尺 ...

  4. api 二次 开发 禅道_VBA SolidWorks 二次开发 API ---从宏开始

    Macro是可以用来录制一些操作的工具,然后你可以看到具体内部执行的一些代码.通过这些代码,我们可以更快更直接的找到所需要查询的API函数.我们以最简单的做一个拉伸特征开始,看如何找到对应的API 1 ...

  5. VBA SolidWorks 二次开发 API ---从宏开始

    Macro是可以用来录制一些操作的工具,然后你可以看到具体内部执行的一些代码.通过这些代码,我们可以更快更直接的找到所需要查询的API函数.我们以最简单的做一个拉伸特征开始,看如何找到对应的API 1 ...

  6. C# SolidWorks 二次开发 API --- 2018版 中文翻译 ModelDocExtension 方法

    AddAngularRunningDim Method (IModelDocExtension) 为选定实体添加指定的角度运行标注. AddComment Method (IModelDocExten ...

  7. C# SolidWorks 二次开发 API --- 2018版 中文翻译-完整版共享

    这是2018的api帮助文档看了一下翻译版,我把之前翻译的文件免费共享下,希望能对大家有所帮助. 如果大家想查找快速了解某个功能,可以直接在Excel表中查找全部. 之前有两篇共享了官方示例与Mode ...

  8. C# SolidWorks 二次开发 API --- 实例:打包文件

    我们开发的程序使用过程中经常要使用一些做好的模板,尤其是参数化的时候,这样就难免有一些文件需要从指定的地方复制过来,或者说还要把文件名替换掉,还可以加一些前缀或者后缀.这个例子也只是一个最简单的打包方 ...

  9. C# SolidWorks 二次开发 API --- 2018版 中文翻译 ModelDoc2 属性和IModelDocExtension属性

    属性名称 描述 ActiveView Property (IModelDoc2) 获取只读模式下的当前活动模型视图.注意:此属性是一个get-only属性.集合未实现. ConfigurationMa ...

  10. C# SolidWorks 二次开发 API ---读取零件相关属性

    如何读取零件相关属性 这一篇看下如何读取属性: 直接上代码: 代码如下: private void BtnGetPartData_Click(object sender, EventArgs e){/ ...

最新文章

  1. ORB_SLAM2中的Sim3变换
  2. jquery $.post 超时_jQuery介绍
  3. wxWidgets:wxListbook类用法
  4. cxf restful_使用Apache CXF开发RESTful服务
  5. 使用Spring Data MongoDB和Spring Boot进行数据聚合
  6. 计算机文化基础论述题,计算机文化基础复习题六
  7. android alarmmanager定时任务,AlarmManager 实现定时任务
  8. 五月数据库技术通讯丨Oracle 12c因新特性引发异常Library Cache Lock等待
  9. java实验二 类和对象
  10. 金融数据分析与挖掘实战1.4.4-1.5.1
  11. Intel开发工具之VTune
  12. 【论文写作】JSP旅游网如何写总体设计
  13. 【Qt学习笔记】10.主窗口 The Main Window
  14. js获取td的html,js中获取 table节点各tr及td的内容简单实例
  15. LINUX编译GtkLP(开源的打印机图形化工具)
  16. vivado实现cameralink接口
  17. 码率自适应算法深入浅出
  18. latex引用图标出现问号
  19. No virtual method
  20. “加号 +” 的运算原理(详细!!!)

热门文章

  1. vb.net 教程 3-8 窗体编程 容器 1 Panel GroupBox
  2. 云南大学计算机专业双一流排名,42所双一流、39所985大学四档排名分析
  3. 数据结构实验报告——约瑟夫问题(循环链表)
  4. 编写一个C程序,实现以下功能: 张三、李四、王五三个人同时放鞭炮,张三每隔i秒放一个,李四每隔j秒放一个,王五每隔k秒放一个,他们各自放n个。对任意给定的i、j、k和n,求能听到多少声鞭炮响。
  5. 从零开始理解DM368的H264视频编码过程(上)
  6. 全球及中国分子束外延(MBE)系统行业研究及十四五规划分析报告
  7. Android开发之Windows系统adb环境设置
  8. VSTO,COM加载项勾选后不显示,始终处于未加载状态
  9. ​ leetcode 714. 买卖股票的最 佳时机含手续费 medium ​
  10. mysql datareader dataset_DataReader与DataSet的选择?