高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】求问4arx图块插入问题
求问4arx图块插入问题
求问4arx图块插入问题
我使用的是autocad4,按照论坛和书上的指导做了这个将图形作为图块插入的程序,可是怎么都不能在图纸上显示插入结果,手动插入的时候可以看见图形已经成为块,并可以顺利插入图块,但程序的插入代码并不起作用,为什么?请大家看一下。
cstring pblockname = "basept";
acgepoint3d pt(,,0);
double angle = 0.0;
acgescale3d xrefscale(1.,1.,1.);
acdbdatabase *pnewdb =new acdbdatabase(adesk::kfalse);
int es=pnewdb->readdwgfile(sfilename,_sh_denyno,false);
if (es!=acad::eok)
{
acutprintf("\nthe file %s cannot be opend",sfilename);
return;
}
acdbdatabase *pdb;
pdb =acdbhostapplicationservices ()->workingdatabase () ;
acdbobjectid blockid;
if((es=pdb->insert(blockid, pblockname,pnewdb, true))==acad::eok)
{
acutprintf("\ninsert ok\n");
}
else
{
afxmessagebox("insert failed");
delete pnewdb;
return;
} //程序到这里,后面仿佛就开始出错,我找不到原因。难道因为我用的盗版??
acdbblockreference *pblkref = new acdbblockreference;
pblkref->setblocktablerecord(blockid);//指向blockid;
pblkref->setposition(pt);//设定位置
pblkref->setrotation(angle);//设定转角
pblkref->setscalefactors( xrefscale);//设定放大比例
acdbblocktable *pblocktable;
pdb->getsymboltable(pblocktable, acdb::kforread);
acdbblocktablerecord *pblocktablerecord;
pblocktable->getat(acdb_model_space, pblocktablerecord, acdb::kforwrite);
pblocktable->close();
acdbobjectid newentid;
pblocktablerecord->appendacdbentity(newentid, pblkref);
pblocktablerecord->close();
}
hoho,不好意思,犯了变量名认知错误了,眼睛都看花了,想了那么多就是没想到简单错误,忘了把acdbblockreference给close了,打扰各位看客了。
|