您的位置:首页 > 其它

solidworks二次开发:获得用户选择的实体的名字

2008-07-12 18:46 1051 查看
LPSLDWORKS p_sldwork = TheApplication->GetSWApp();//定义p_sldwork指针

LPMODELDOC pModelDoc = NULL;//定义pModelDoc指针

LPPARTDOC pPartDoc = NULL;//定义pPartDoc指针

LPENTITY pEntity = NULL;//定义pEntity指针

long nSelCount = 0;//定义选择数

BSTR entityName;//定义实体名字符串

if (!p_sldwork) return;//如果无p_sldwork,则返回

p_sldwork->get_IActiveDoc(&pModelDoc);//获得pModelDoc指针

if (!pModelDoc) return;//如果没有pModelDoc,则返回

pModelDoc->QueryInterface(IID_IPartDoc,(LPVOID *)&pPartDoc);//获得pPartDoc指针

if (!pPartDoc) {

//如果没有pPartDoc,则释放指针

pModelDoc->Release();

return;

}

//用SelectionMgr获到m_Entity

LPUNKNOWN pUnk = NULL;//定义pUnk指针

LPSELECTIONMGR pSelectMgr = NULL;//定义pSelectMgr指针

pModelDoc->get_ISelectionManager(&pSelectMgr);//获得选择管理器指针

if (!pSelectMgr) {

//如果没有获得选择管理器指针,则释放pModelDoc指针

pModelDoc->Release();

return;

}

pSelectMgr->GetSelectedObjectCount(&nSelCount);//获得所选对象的数目

if (nSelCount != 0){/

/如果选择数不为0

pSelectMgr->IGetSelectedObject3( 1, &pUnk);//获得实体指针pUnk

pUnk->QueryInterface(IID_IEntity,(LPVOID *)&pEntity);//获得实体

}

if (!pEntity){

//如果没有获得实体,则释放pModelDoc和pPartDoc,并返回

pModelDoc->Release();

pPartDoc->Release();

return;

}

pPartDoc->IGetEntityName(pEntity, &entityName);//获得实体名

CString message;//定义字符串

message.Format(_T("Entity Name is: /n%s"), entityName); AfxMessageBox( message );//发送消息给用户 pModelDoc->Release();//释放pModelDoc指针

pPartDoc->Release();//释放pPartDoc指针

pEntity->Release();//释放pEntity指针

return;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: