如何用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的簡寫,可以在注冊表中搜索命名控件來獲得。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM