- UID
- 729508
- 积分
- 60
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2014-4-12
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2014-4-23 13:40:23
|
显示全部楼层
这是代码
// move函数定义
static Acad::ErrorStatus Move(AcDbObjectId entId, const AcGePoint3d& ptFrom, const AcGePoint3d& ptTo)
{
// 构建用于实现移动实体的矩阵
AcGeVector3d vec(ptTo[X] - ptFrom[X], ptTo[Y] - ptFrom[X],ptTo[Z] - ptFrom[Z]);
AcGeMatrix3d mat;
mat.setToTranslation(vec);
AcDbEntity *pEnt = NULL;
Acad::ErrorStatus es = acdbOpenObject(pEnt, entId,AcDb::kForWrite);
if (es != Acad::eOk)
return es;
es = pEnt->transformBy(mat);
pEnt->close();
return es;
}
// 自定义函数PostToModelSpace
static AcDbObjectId PostToModelSpace(AcDbEntity* pEnt)
{
AcDbBlockTable *pBlockTable;
acdbHostApplicationServices()->workingDatabase()
->getBlockTable(pBlockTable, AcDb::kForRead);
AcDbBlockTableRecord *pBlockTableRecord;
pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,
AcDb::kForWrite);
AcDbObjectId entId;
pBlockTableRecord->appendAcDbEntity(entId, pEnt);
pBlockTable->close();
pBlockTableRecord->close();
pEnt->close();
return entId;
}
// - minemovebox_1._Addbox command (do not rename)
static void minemovebox_1_Addbox(void)
{
// Add your code for command minemovebox_1._Addbox here
AcDb3dSolid *pSolid1 = new AcDb3dSolid();
Acad::ErrorStatus es1 = pSolid1->createBox(40, 50, 30);
if (es1 != Acad::eOk)
{
acedAlert(L"创建长方体失败!");
delete pSolid1;
return;
}
boxId=PostToModelSpace(pSolid1);
}
// - minemovebox_1._Movebox command (do not rename)
static void minemovebox_1_Movebox(void)
{
// Add your code for command minemovebox_1._Movebox here
AcGePoint3d ptFrom(50,0,0);
AcGePoint3d ptTo(60.36,10.36,0);
Move(boxId,ptFrom,ptTo);
}
还要自定义一个全局变量boxId |
|