天天看點

SOLIDWORKS 二次開發 VC++需要了解的知識SOLIDWORKS環境配置第一個項目

需要了解的知識

* com元件原理及應用
	1. IUnknown , IDiapatch  ...
	2. 接口的指針指向接口這個結構,接口裡面儲存一個虛函數表指針,指向接口裡的函數。
	3. 接口的使用
		+ 通過queryInterface  	(必須是同一個元件)
		+ 通過上一級接口的方法得到
		+ 通過某些某些接口的方法得到
           

SOLIDWORKS環境配置

安裝apisdk 後 打開vs建立工程時會有向導可以建立solidworks項目

建立後需要配置下項目:

SOLIDWORKS 二次開發 VC++需要了解的知識SOLIDWORKS環境配置第一個項目

編譯這個模闆項目會出現

SOLIDWORKS 二次開發 VC++需要了解的知識SOLIDWORKS環境配置第一個項目

繼續編譯完成。 編譯時需要關閉solidworks

注意!! 直接用solidrorks打開生成的dll會注冊失敗,編譯成dll後,需要注冊到系統資料庫 才能被使用。

需要用管理者身份注冊

SOLIDWORKS 二次開發 VC++需要了解的知識SOLIDWORKS環境配置第一個項目

接口也可以通過api文檔下面這個提示來知道怎麼擷取

SOLIDWORKS 二次開發 VC++需要了解的知識SOLIDWORKS環境配置第一個項目

第一個項目

既然都已經有模闆項目了,再在這個模闆項目上進行修改就可以了。
           
  1. Add-in Callback and Enable Methods (先添加cmd cmd可以綁定工具欄和菜單)
cmdIndex0 = cmdGroup.AddCommandItem2("CreateCube", -1, "Create a cube", "Create cube", 0, "CreateCube", "EnableCube", mainItemID1, menuToolbarOption);
#Region UI Callbacks

public void CreateCube
{
    // Create Cube command code
}
public int EnableCube
{
    // Return status of the Create Cube enablement
    return 0;
}

public void ShowPMP
{
    // Show PMP command code
}
public int EnablePMP
{
    // Return status of Show PMP enablement
    return 0;
}

           
  1. solidwork 直接添加一個dll會自動加一個工具欄,不要試圖在代碼裡加,加不了
    SOLIDWORKS 二次開發 VC++需要了解的知識SOLIDWORKS環境配置第一個項目
    有血緣關系的接口指針 , 比如newPart() 得到的是dispatch的指針,但是實際上得到part,而part和modelDoc2有血緣關系,是以可以直接 代碼如下:
CComPtr <IModelDoc2> modelDoc2Ptr;
	CComPtr <IDispatch> disPathchPtr;
	gSwApp->NewPart(&disPathchPtr);
	modelDoc2Ptr = disPathchPtr;
	long docType;
	modelDoc2Ptr->GetType(&docType);
	if (docType == swDocPART)
	{
		AfxMessageBox(L"這是個零件");
	}

           

有時候需要像下面這樣用

SOLIDWORKS 二次開發 VC++需要了解的知識SOLIDWORKS環境配置第一個項目

下面這樣是錯誤的

SOLIDWORKS 二次開發 VC++需要了解的知識SOLIDWORKS環境配置第一個項目

而且下面這種也是可以的, 注釋的是不可以的編譯不過。

SOLIDWORKS 二次開發 VC++需要了解的知識SOLIDWORKS環境配置第一個項目

這裡一定要置空,不然會死循環,next函數不會幫你置空。

SOLIDWORKS 二次開發 VC++需要了解的知識SOLIDWORKS環境配置第一個項目

事件

SOLIDWORKS 二次開發 VC++需要了解的知識SOLIDWORKS環境配置第一個項目

調用IGetRefAxisParams()前不要select軸,不然會調用失敗導緻擷取不了軸得兩個端點

solidworks二次開發問題解決:

1.打開dll無法啟動插件,此時需要注冊插件才能打開。

2.需要什麼什麼.140msu.lib這種都是工具集不比對問題,改項目配置檔案,改成自己的工具集。

繼續閱讀