zoukankan      html  css  js  c++  java
  • 如何用Qt做SolidWorks二次开发

    这个问题困扰了我2年了,之前找到的教程都是MFC的,ATL导入向导或是通过导入类型库的方式来调用控件,我一直都搞不明白。

    最近学习了ActiveQT以及通过ActiveQT控制EXCEL、Word、PowerPoint、flash后,我终于大致明白了。

    经过几个小时的尝试,终于成功通过Qt操作Solidworks。建议各位可以去BAIDU相关文章,关键词ActiveQt 

    首先我要说明白一下,VC都是通过COM来操作Solidworks的,既然如此,我们只要通过Qt的COM操作方法来控制就可以了。

    我用的是Qt5.4、Solidworks2014。

    其实有两种方式:1、使用ClassId 直接获取COM对象来操作Solidworks。2、使用Qt自带的dumpcpp工具导出H文件,然后通过指针对象来控制。

    第二种方法和VC的开发方式类似。但是导出的文件有12mb,37W行代码,IDE相当容易崩溃,而且编译有错误,需要求改一下头文件,但是因为老是崩溃,我就没有继续尝试了。

    不过输出的头文件至少可以当个API手册看,至于输出方法:将solidworks目录下的sldworks.tlb文件复制到随便一个目录下(我复制到自己的Qt工程目录),打开Qt的命令行功能,通过cd转到这个目录下,运行dumpcpp SldWorks.tlb 即可。

    下面说一下如何用第一个方法:

    首先在项目文件中添加:QT+= axcontainer,之后运行QMake。

    在Cpp文件中添加#include <ActiveQt/QAxObject>

    之后在需要运行地方添加以下代码:

    QAxObject *swApp=new QAxObject("SldWorks.Application",0);
    if(!swApp->isNull())
    {
    swApp->dynamicCall("SetVisible(bool)",true);
    swApp->dynamicCall("OpenDoc(QString,int)",QString("C:\Users\512\Desktop\a.SLDPRT"),1);
    }

    SldWorks.Application是COM的简写,可以在注册表中搜索命名控件来获得。

  • 相关阅读:
    C语言寒假大作战01
    C语言|博客作业12-学期总结
    第一次作业
    C语言|博客作业11
    C语言|博客作业10
    Centos7上安装 sqlmap 所经历的坑
    软件工程1916|W(福州大学)_助教博客】助教总结
    软件工程1916|W(福州大学)_助教博客】个人总结作业(第12次)成绩公示
    团队作业第五次(第8次)—项目系统设计与数据库设计成绩排名
    需求分析课堂答辩问题汇总
  • 原文地址:https://www.cnblogs.com/blueroses/p/6023500.html
Copyright © 2011-2022 走看看