Python SolidWorks 二次开发—SolidWorks中的事件实现


文章目录

  • Python SolidWorks 二次开发---SolidWorks中的事件实现
  • 前言
  • 一、如何实现com事件
  • 二、SolidWorks中如何实现com事件

前言

事件是可以被控件识别的操作,如按下确定按钮,选择某个单选按钮或者复选框。每一种控件有自己可以识别的事件,如窗体的加载、单击、双击等事件,编辑框(文本框)的文本改变事件,等等。
SolidWorks中的事件有如下几种,分别为:
DAssemblyDocEvents(装配体),
DDrawingDocEvents(工程图),
DFeatMgrViewEvents(特征管理),
DModelViewEvents(模型视图),
DMouseEvents(鼠标),
DPartDocEvents(零件),
DSldWorksEvents(SolidWorks),
DTaskpaneViewEvents(任务查看)。


一、如何实现com事件

这里以excel为例,网上示例很多,这里简单给个示例,代码如下:

from win32com.client import DispatchWithEventsclass ExcelEvents:def OnNewWorkbook(self, wb):print('打开excel新文档')def main():    excelApp = DispatchWithEvents("Excel.Application", ExcelEvents)excelApp.Visible = Truebook=excelApp.Workbooks.Add()if __name__ == '__main__':main()

在excel中实现事件是用的DispatchWithEvents函数,提前定义好相关的事件类,并将类以参数的形式调用,类中定义的事件函数名需要查找帮助,并不是随其定义的,执行以上代码会在终端输出"打开excel新文档"的内容,说明事件功能已经实现

二、SolidWorks中如何实现com事件

在SolidWorks中如果使用DispatchWithEvents会报错,所以不能直接使用,以下是SolidWorks中调用事件的示例代码,代码如下:

import pythoncom
import win32com.client
class SldEvents(win32com.client.getevents("SldWorks.Application")):def OnFileOpenNotify(self, FileName):print(f'打开的文件名为:{FileName}')def OnFileNewNotify(self, NewDoc=None, DocType=None):print('test',NewDoc,DocType)
def main():swApp=win32com.client.Dispatch('SldWorks.Application')swApp.CommandInProgress =TrueswModel=swApp.ActiveDocevents=SldEvents(swApp)errors=win32com.client.VARIANT(pythoncom.VT_BYREF | pythoncom.VT_I4, -1)warnings=win32com.client.VARIANT(pythoncom.VT_BYREF | pythoncom.VT_I4, -1)filename=r'C:\test\test.sldprt'swModel=swApp.OpenDoc6(filename, 1, 1, "", errors, warnings)if __name__ == '__main__':main()

可以看到,在SolidWorks中使用事件和excel类似,都需要先定义事件类,并且在类中需要使用win32com.client.getevents定义是继承那个事件的基础类,在主函数中先实例化此事件类,完成后运行以上代码,会在终端提示“打开的文件名为:C:\test\test.sldprt”,需要将示例中的文件路径进行修改。
SolidWorks中其他事件和以上代码相同,都需要线定义对应的类事件,在事件出发前需要实例化,然后相应的事件就会触发。
大多数com事件使用DispatchWithEvents函数就可以,SolidWorks中事件的用法不太一样,按照以上示例代码使用即可实现。
事件的使用有时可能会降低效率,是否使用需结合实际使用环境决定。

Python SolidWorks 二次开发—SolidWorks中的事件实现相关推荐

  1. Python SolidWorks 二次开发---SolidWorks另存文件为其他格式

    Python SolidWorks 二次开发-SolidWorks另存文件为其他格式 Python SolidWorks 二次开发-SolidWorks另存文件为其他格式 文章目录 Python So ...

  2. Python SolidWorks 二次开发---SolidWorks保存文件

    Python SolidWorks 二次开发-SolidWorks保存文件 Python SolidWorks 二次开发-SolidWorks保存文件 文章目录 Python SolidWorks 二 ...

  3. 基于Python的Solidworks二次开发方法

    关于python简易二次开发Solidworks的小程序 第一次动手开发了一个Solidworks的小程序,实验的功能也很简单,出来分享一下,第一次大佬们也可以指出一些问题,来帮助我改进~ 此处特别感 ...

  4. 基于Python的Solidworks二次开发小尝试(一)

    文章目录 前言 一.自我理解 二.使用步骤 1.建立 Python 与 SolidWorks 之间的关联 2.通过录制宏获取vb代码 总结 前言 第一次运用python对solidworks进行二次开 ...

  5. sw二次开发 python_基于C#的SolidWorks二次开发.doc

    摘要: 气动电阻点焊钳已经被各大汽车制造厂商广泛运的用于汽车焊接工艺中.它以无污染.压力稳定.动作敏捷等优点逐步替代了国内常见的液压传动焊钳,改变了液压传动滞缓的现象,从而达到了焊接循环的要求.本次毕 ...

  6. Solidworks二次开发平台 --- RyS.SwWorks [2015-09-18更新]

    RyS.SwWorks 是一款基于.NET的Solidworks二次开发平台,该平台封装了插件注册.菜单.工具栏.侧边栏.Document接口,使得Solidworks开发和部署简单高效. 安装程序中 ...

  7. SolidWorks二次开发的研究

    三维机械设计软件SolidWorks是一套基于Windows的CAD/CAE/CAM/PDM桌面集成系统,是由美国SolidWorks公司在总结和继承大型机械CAD软件的基础上,在Windows环境下 ...

  8. C# SolidWorks二次开发 干涉检查

    总体思路 基于.NET Framework控制台应用程序进行SolidWorks二次开发,选中输入零件,实现干涉检查功能. 使用SelectByID2方法,选中待检查零件,然后使用ToolsCheck ...

  9. C# Solidworks二次开发 输入零件名选中零件

    实现功能 基于.NET Framework控制台应用程序进行SolidWorks二次开发,实现输入零件名,在软件中选中零件. 注意:(1)进行SolidWorks控制台程序二次开发不能使用.NET C ...

最新文章

  1. 模拟浏览器的神器 - HtmlUnit
  2. 猜数字游戏_FLEX版
  3. 信息系统项目管理师-项目成熟度模型、量化项目管理核心知识点思维脑图
  4. Ubuntu 16.04 Spark单机环境搭建
  5. 需求简报_代码简报:我如何通过做自己喜欢的事情来获得顶级技术实习
  6. 脚本语言程序员怎么学习程序设计?
  7. mysql锁表语句,从理论到实践!
  8. 【IE】IE对line-height 失效的的解决方案
  9. Code a simple telnet client using sockets in python
  10. NEsper Nuget包
  11. 微型计算机原理控制,微机原理与控制技术(试题).doc
  12. 小区物业管理系统--数据库应用开发
  13. 智能仓储物流技术知识点汇总(部分)
  14. echarts自定义地图
  15. 【最强大脑】天才数学家陶哲轩亲授25条职业建议
  16. 2022快速计算机视觉EI国际会议汇总
  17. 如何把一个数字x最右侧那个1拿出来,变成00...10..的格式
  18. 客户画像赋能百度推广生态实践
  19. 华为往事(十五)--华为北京研究所
  20. 击石乃有火:华为云的生长逻辑

热门文章

  1. wps怎么添加附录_wps用尾注生成参考文献后怎么插入致谢和附录等,来充电吧
  2. 湖北移动HG680-LV_S905L3B_线刷固件包
  3. vue3 微信扫码登录及获取个人信息实现的三种方法
  4. 红客学堂 不输密码照样登陆操作系统(转)
  5. 与保险经纪人考试面对面
  6. otn与stn网络_OTN与波分的区别
  7. wincc使用C脚本实现用户登录
  8. python两点分布产生随机数_Python随机数生成模块random详解
  9. shell中的环境变量设置
  10. 适合大学生的六个兼职项目,挣钱的同时还能提升自己