CAD工具之家's Archivers

From boitboy on 2013-06-27 13:44:06

AcDbObjectId,ads_name,Handle,long之间相互转换

//文件名:IdsTrans.h //说明:实体ID对应的各种转换 //日期:2013.06.27 #pragma once // 功能:将选择集转换为实体ID数组 // 参数: ObjIds,实体ID数组 // ssName,选择集 // 返回: void SSToIds(AcDbObjectIdArray& ObjIds,ads_name ssName); // 功能:将实体ID数组转换为选择集 // 参数: ssName,选择集 // ObjIds,实体ID数组 // 返回: Acad::ErrorStatus IdsToSS(ads_name& ssName,AcDbObjectIdArray& ObjIds); // 功能:将实体ID转换为CAD句柄 // 参数: handle,CAD句柄 // objId,实体ID // 返回: Acad::ErrorStatus IdToHandle(AcDbHandle& handle,AcDbObjectId objId); // 功能:将实体ID转换为CAD句柄 // 参数: strHandle,CAD句柄(字符串) // objId,实体ID // 返回: Acad::ErrorStatus IdToHandle(CString& strHandle,AcDbObjectId objId); // 功能:将CAD句柄转换为实体ID // 参数: objId,实体ID // pDB,CAD数据库 // handle,CAD句柄 // 返回: Acad::ErrorStatus HandleToId(AcDbObjectId& objId,AcDbDatabase* pDB,AcDbHandle handle); // 功能:将CAD句柄转换为实体ID // 参数: objId,实体ID // pDB,CAD数据库 // strHandle,CAD句柄(字符串) // 返回: Acad::ErrorStatus HandleToId(AcDbObjectId& objId,AcDbDatabase* pDB,CString strHandle); // 功能:在当前数据库中将CAD句柄转换为实体ID // 参数: objId,实体ID // handle,CAD句柄 // 返回: Acad::ErrorStatus HandleToId(AcDbObjectId& objId,AcDbHandle handle); // 功能:在当前数据库中将CAD句柄转换为实体ID // 参数: objId,实体ID // strHandle,CAD句柄(字符串) // 返回: Acad::ErrorStatus HandleToId(AcDbObjectId& objId,CString strHandle); // 功能:将实体ID转换为long // 参数: objId,实体ID // 返回: long IdToLong(AcDbObjectId objId); // 功能:将long转换为实体ID // 参数: lValue,long值 // 返回: AcDbObjectId LongToId(long lValue); //文件名:IdsTrans.cpp //说明:实体ID对应的各种转换 //日期:2013.06.27 #include "StdAfx.h" #include "IdsTrans.h" // 功能:将选择集转换为实体ID数组 // 参数: ObjIds,实体ID数组 // ssName,选择集 // 返回: void SSToIds(AcDbObjectIdArray& ObjIds,ads_name ssName) { AcDbObjectId ObjId; ads_name EntName; long nLength=0; acedSSLength(ssName,&nLength); for(int nLen=0; nLenclose(); return Acad::eOk; } // 功能:将实体ID转换为CAD句柄 // 参数: strHandle,CAD句柄(字符串) // objId,实体ID // 返回: Acad::ErrorStatus IdToHandle(CString& strHandle,AcDbObjectId objId) { AcDbHandle handle; Acad::ErrorStatus es=IdToHandle(handle,objId); if(es!=Acad::eOk) return Acad::eOk; TCHAR tmpStr[256]={0}; handle.getIntoAsciiBuffer(tmpStr); strHandle=tmpStr; return es; } // 功能:将CAD句柄转换为实体ID // 参数: objId,实体ID // pDB,CAD数据库 // handle,CAD句柄 // 返回: Acad::ErrorStatus HandleToId(AcDbObjectId& objId,AcDbDatabase* pDB,AcDbHandle handle) { Acad::ErrorStatus es=Acad::eOk; if(pDB==NULL) { return Acad::eNullPtr; } es=pDB->getAcDbObjectId(objId,false,handle); return es; } // 功能:将CAD句柄转换为实体ID // 参数: objId,实体ID // pDB,CAD数据库 // strHandle,CAD句柄(字符串) // 返回: Acad::ErrorStatus HandleToId(AcDbObjectId& objId,AcDbDatabase* pDB,CString strHandle) { AcDbHandle handle=strHandle; return HandleToId(objId,pDB,handle); } // 功能:在当前数据库中将CAD句柄转换为实体ID // 参数: objId,实体ID // handle,CAD句柄 // 返回: Acad::ErrorStatus HandleToId(AcDbObjectId& objId,AcDbHandle handle) { return HandleToId(objId,acdbHostApplicationServices()->workingDatabase(),handle); } // 功能:在当前数据库中将CAD句柄转换为实体ID // 参数: objId,实体ID // strHandle,CAD句柄(字符串) // 返回: Acad::ErrorStatus HandleToId(AcDbObjectId& objId,CString strHandle) { return HandleToId(objId,acdbHostApplicationServices()->workingDatabase(),strHandle); } // 功能:将实体ID转换为long // 参数: objId,实体ID // 返回: long IdToLong(AcDbObjectId objId) { return objId.asOldId(); } // 功能:将long转换为实体ID // 参数: lValue,long值 // 返回: AcDbObjectId LongToId(long lValue) { AcDbObjectId tmpId; #ifdef _WIN64 Adesk::IntDbId oldId=lValue; tmpId.setFromOldId(oldId); #else tmpId.setFromOldId(lValue); #endif return tmpId; }

查看完整版本: AcDbObjectId,ads_name,Handle,long之间相互转换

Tags: AcDbObjectId, ads_name, Handle, long, 转换


©CAD工具之家
创办于:2013年5月24日