- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Arx编程对实体的基本操作
//
// ObjectARX defined commands, created by [2010-9-30], ,
#include StdAfx.h
#include StdArx.h
#include dbents.h
#include geassign.h
#include dbpl.h
#define PI 3.141592653589793238462643383279502884197169399375105820974944592308
BOOL AddEntityToDBS(AcDbEntity *pEntity, AcDbObjectId Id)
{
//获取块表
AcDbBlockTable *pBlockTable = NULL;
if (acdbHostApplicationServices()-workingDatabase()-getBlockTable(pBlockTable, AcDb::kForRead) != Acad::eOk)
{
return FALSE;
}
//获取模型空间的快表记录
AcDbBlockTableRecord *pBlkTabRec = NULL;
if (pBlockTable-getAt(ACDB_MODEL_SPACE, pBlkTabRec, AcDb::kForWrite) != Acad::eOk)
{
pBlockTable-close();
return FALSE;
}
pBlkTabRec-appendAcDbEntity(Id, pEntity);
pEntity-close();
pBlockTable-close();
pBlkTabRec-close();
return TRUE;
}
//-----------绘制直线-----------------------------------------------------
// This is command CLINE, by [2010-9-30], ,
void EICADDrawCLine()
{
#ifdef OARXWIZDEBUG
acutPrintf (\nOARXWIZDEBUG - EICADDrawCLine() called.);
#endif // OARXWIZDEBUG
// TODO: Implement the command
ads_point pt0;
ads_point pt;
AcDbObjectId EntId;
if (ads_getpoint(NULL, _T(\n请指定起始点:), pt0) !=RTNORM) return;
if (ads_getpoint(pt0, _T(\n请指定终点:), pt) != RTNORM) return;
AcDbLine *pLine = new AcDbLine(asPnt3d(pt0), asPnt3d(pt));
AddEntityToDBS(pLine, EntId);
pLine-close();
}
//-----------编辑直线起点-----------------------------------------------------
// This is command EDITLSTARTPOINT, by [2010-9-30], ,
void EICADDRAWEditlstartpoint()
{
#ifdef OARXWIZDEBUG
acutPrintf (\nOARXWIZDEBUG - EICADDRAWEditlstartpoint() called.);
#endif // OARXWIZDEBUG
// TODO: Implement the command
ads_point pt0;
ads_point pt;
ads_name Ent;
AcDbObjectId EntId;
AcDbLine *pLine = NULL;
if (ads_entsel(_T(\n请选择对象:), Ent, pt0) != RTNORM) return;
if (ads_getpoint(NULL, _T(\n请选择起点:), pt) != RTNORM) return;
if (acdbGetObjectId(EntId, Ent) != Acad::eOk) return;
if (acdbOpenObject(pLine, EntId, AcDb::kForWrite) != Acad::eOk) return;
文档评论(0)