solidworks二次开发:在装配体中更换零件和调整配合

 LPSLDWORKS  SwApp;  

LPMODELDOC2   ModelDocPart;  

HRESULT      hRes;  

VARIANT_BOOL retval;

//定义各类指针  

SwApp = TheApplication->GetSWApp();   

hRes = SwApp->get_IActiveDoc2 ( &ModelDocPart );  

LPASSEMBLYDOC pAssmDoc;  

hRes = ModelDocPart->QueryInterface(IID_IAssemblyDoc,(LPVOID*)&pAssmDoc);

LPMODELDOCEXTENSION modelDocExt;  

hRes = ModelDocPart->get_Extension ( &modelDocExt );  

//更改装配体的部件   

LPCALLOUT Callout=NULL;   hRes = modelDocExt->SelectByID2(_T("柄1-修正-3@hong1"), _T("COMPONENT"), 0, 0, 0,false,1, Callout,0,&retval);  

hRes = pAssmDoc->ReplaceComponents(_T("C://Documents and Settings//Administrator//桌面//111//柄2.SLDPRT"), _T(""), false, 0, &retval);

 hRes = ModelDocPart->ClearSelection2 ( true ); //更改装配体的配合 

  hRes = modelDocExt->SelectByID2(_T("右视基准面@直槽铰刀-1@hong1"), _T("PLANE"), 0, 0, 0, false,1, Callout,0,&retval);

 hRes = modelDocExt->SelectByID2( _T("右视基准面@柄2-1@hong1"), _T("PLANE"), 0, 0, 0, true,1, Callout,0,&retval);  

hRes = modelDocExt->SelectByID2(_T("距离1"), _T("MATE"), 0, 0, 0,true,1, Callout,0,&retval);  long Error;  

hRes = pAssmDoc->EditMate2(5, 0, true, 0.08, 0.08, 0.08, 1, 1, 0, 0.5235987755983, 0.5235987755983, &Error);  

hRes = ModelDocPart->ClearSelection2 ( true ); //另存为  

hRes = SwApp->get_IActiveDoc2 ( &ModelDocPart );  

long  Errors;

 long  Warnings;

 VARIANT_BOOL  retval4;

 ModelDocPart->SaveAs4(_T("C://Documents and Settings//Administrator//桌面//111//另存为.SLDASM"),swSaveAsCurrentVersion,swSaveAsOptions_Silent,&Errors,&Warnings,&retval4); //释放各种指针  

SwApp->Release();  

ModelDocPart->Release();  

pAssmDoc->Release();  

modelDocExt->Release();

你可能感兴趣的:(solidworks二次开发)