entities.cpp

来自「对autocad图形数据库中的图形进行编辑」· C++ 代码 · 共 57 行

CPP
57
字号
#include<HeadFile.h>


AcDbobjectId createNewLine()
{
	AcGePoint3d startPoint(5.0,4.0,0.0);
	AcGePoint3d endPoint(5.0,4.0,0.0);
	AcDbLine *pLine=new AcDbLine(startPoint,endPoint);
	AcDbBlockTable *pBlockTable;
	acdbHostApplicationServices()->workingdatabase()->getSymbolTable(pBlockTable,AcDb::kForRead);
	AcDbBlockTableRecord *pBlockTableRecord;
	pBlockTable->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForRead);
	pBlockTable->close();
	AcDbobjectId lineId;
	pBlockTableRecord->appendAcDbEntity(lineId,pLine);
	pBlockTableRecord->close();
	pLine->close();
	return lineId;
}


AcDbobjectId createNewCircle()
{
	AcGePoint3d center(10.0,7.0,0.0);
	AcGePoint3d normal(0.0,0.0,1.0);
	AcDbCircle *pCirc=new AcDbCircle(center,normal,4.5);
	AcDbBlockTable *pBlockTable;
	acdbHostApplicationServices()->workingdatabase()->getSymbolTable(pBlockTable,AcDb::kForRead);
	AcDbBlockTableRecord *pBlockTableRecord;
	pBlockTable->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForRead);
	pBlockTable->close();
	AcDbobjectId lineId;
	pBlockTableRecord->appendAcDbEntity(lineId,pCirc);
	pBlockTableRecord->close();
	pCirc->close();
	return lineId;
}


AcDbobjectId createNewLayer()
{
	AcDbLayerTable *pLayerTable;
	acdbHostApplicationServices()->workingdatabase()->getSymbolTable(pLayerTable,AcDb::kForRead);
	AcDbLayerTableRecord *pLayerTableRecord=new AcDbLayerTableRecord;
	pLayerTableRecord->setName("MYNewLayer");


	pBlockTable->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForRead);
	pBlockTable->close();
	AcDbobjectId lineId;
	pBlockTableRecord->appendAcDbEntity(lineId,pCirc);
	pBlockTableRecord->close();
	pCirc->close();
	return lineId;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?