修改块的名称
ModifySelectedBlockName(_T("12345"));
static void ModifySelectedBlockName(const ACHAR* newName)
{
ads_name entName;
ads_point pt;
if (acedEntSel(TEXT("\n选择需要修改的块:"), entName, pt) != RTNORM)
return;
AcDbObjectId selectedObjectId;
acdbGetObjectId(selectedObjectId , entName);
// 获取用户选择的实体
Acad::ErrorStatus errorStatus;
// 打开所选实体
AcDbEntity* pEntity;
errorStatus = acdbOpenObject(pEntity, selectedObjectId, AcDb::kForRead);
if (errorStatus != Acad::eOk) {
acutPrintf(L"无法打开所选实体。");
return;
}
AcDbBlockReference* pBlock = AcDbBlockReference::cast(pEntity);
AcDbObjectId idBlkDef = pBlock->blockTableRecord();
AcDbBlockTableRecordPointer pBlkTblRcd(idBlkDef, AcDb::kForWrite);
if (Acad::eOk != pBlkTblRcd.openStatus())
return ;
pBlkTblRcd->setName(newName);
pEntity->close();
}
//功能:得到快参照名称
static CString GetBlkName(AcDbEntity* pEnt)
{
CString strBlkName;
AcDbBlockReference* pBlock = AcDbBlockReference::cast(pEnt);
AcDbObjectId idBlkDef = pBlock->blockTableRecord();
AcDbBlockTableRecordPointer pBlkTblRcd(idBlkDef, AcDb::kForRead);
if (Acad::eOk != pBlkTblRcd.openStatus())
return strBlkName;
TCHAR* szName = NULL;
pBlkTblRcd->getName(szName);
strBlkName = szName;
return strBlkName;
}
更多文章
-
用AcedGrRead()函数实现一拖多
实现代码:#include "StdAfx.h"#include "StdArx.h"#include "..\..\Common\我的类\Arc.h"#include <acedads.h>#include "..\..\Common\Entity\LineUtil.h"#include <geassign.h>#include <dbents.h>#include "..\..\Common\Others\ConvertUtil.h"#in
-
改变多段线区直
代码:#include "StdAfx.h"#include "StdArx.h"#include <dbpl.h>#include "..\..\Common\Others\ConvertUtil.h"#include <geassign.h>#include "..\..\Common\Entity\ArcUtil.h"#include "..\..\Common\Document\DwgDatabaseUtil.h"#include <afxwin.h&
-
获取任意路径Dwg文件内所有块在控件中显示并能选择插入当前模型空间
主对话框CPP内代码:#include "StdAfx.h"#include "resource.h"#include "BlockDialog.h"#include "..\..\Common\我的类\file.h"#include "..\..\Common\Document\DwgDatabaseUtil.h"#include <dbents.h>#include <dbmain.h>#include "..\..\Chapter11
-
多段线动态切割闭合区域
#include "StdAfx.h"#include "StdArx.h"#include <dbpl.h>#include "..\..\Common\Others\ConvertUtil.h"#include "..\..\Common\Document\DwgDatabaseUtil.h"#include <dbents.h>#include <dbregion.h>#include "..\..\Common\Entity\RegionUtil.h"
-
自创实体类从AcDbCurve派生,实现一些类方法并动态绘制
MyCurve.cpp:#include "StdAfx.h"#include "MyCurve.h"#include "actrans.h"#include "aced.h"//-----------------------------------------------------------------------------Adesk::UInt32 CMyCurve::kCurrentVersionNumber =1 ;//----------------------------------------