- UID
- 5117
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-5-16
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
自己写了一个块插入的子函数
void insertBlock(char blkName[50], AcGePoint3d insPt,double k)
{
double ang,sx,sy,sz;
AcDbDatabase *pCurDb;
AcDbBlockTable *pBlkTable;
AcDbBlockTableRecord *pBlkTableRecord;
AcDbBlockReference *pInsrtObj=new AcDbBlockReference;
AcDbObjectId blkId;
ang=0.0;
sx=k;sy=k;sz=1;
AcGeScale3d xyzscale(sx,sy,sz);
pCurDb = acdbHostApplicationServices()->workingDatabase();
pCurDb->getBlockTable(pBlkTable, AcDb::kForRead);
if(!pBlkTable->has(blkName))
{
acutPrintf("\nBlock definition %s not found. ", blkName);
pBlkTable->close();
return;
}
pBlkTable->getAt(blkName, blkId);
pBlkTable->getAt(ACDB_MODEL_SPACE, pBlkTableRecord, AcDb::kForWrite);
pBlkTable->close();
acedInitGet(RSG_NONULL, NULL);
pInsrtObj->setBlockTableRecord(blkId);
pInsrtObj->setPosition(insPt);
pInsrtObj->setRotation(ang);
pInsrtObj->setScaleFactors(xyzscale);
pBlkTableRecord->appendAcDbEntity(blkId, pInsrtObj);
pBlkTableRecord->close();
pInsrtObj->close();
}
然后调用
AcGePoint3d pti(100,100,0);
insertBlock("1.dwg",pti,SK);
可是老是说找不到文件,1.dwg是我自己保存的块文件.放在程序目录下
谁能告诉我错在哪里呢? 一般块文件应该保存在哪里呢?
多谢! |
|