!stub.cpp@148错误提示?
!stub.cpp@148错误提示?
acdbobjectid blockid;
int retcode = 0;
acdbblocktable *pblocktable = null;
acdbblocktablerecord* pblockrecord
= new acdbblocktablerecord;
pblockrecord->setname("样式");
acgepoint3d basepoint(aspnt3d(pt));
pblockrecord->setorigin(basepoint);
acdbhostapplicationservices()->workingdatabase()
->getsymboltable(pblocktable, acdb::kforwrite);
pblocktable->add(blockid, pblockrecord);
pblocktable->close();
acdbpolyline *ppoly=new acdbpolyline();
//形成闭合多段线 已经定义pd1,pd2,pd3;
ppolya->addvertexat(0,pd1,0,-1,-1);
ppolya->addvertexat(1,pd2,0,-1,-1);
ppolya->addvertexat(2,pd3,0,-1,-1);
ppolya->setclosed(adesk::ktrue);
acdbobjectid id;
pblockrecord->appendacdbentity(ida, ppoly);
ppoly->close();
acdbobjectidarray idarr;
idarr.append(ida);
acgevector3d normal(0,0,1);
acdbhatch *p_acdbhatch1=new acdbhatch();
p_acdbhatch1->setnormal(normal);
p_acdbhatch1->setelevation(0.0);
p_acdbhatch1->setassociative(true);
p_acdbhatch1->setpatternscale(5);
p_acdbhatch1->evaluatehatch(false);
if(acad::eok!=p_acdbhatch1->appendloop(acdbhatch::kdefault ,idarr))
{
delete p_acdbhatch1;
return ;
}
//执行下面这条语句时候出现错误提示。autocad运行挺长时间才出现错误提示
//用vc调试,好像是进程已经exit(0)终止了
if( acad::eok!=p_acdbhatch1->setpattern(acdbhatch::kpredefined,"solid"))
{
delete p_acdbhatch1;
return ;
}
if( acad::eok!=p_acdbhatch1->sethatchstyle(acdbhatch::knormal))
{
delete p_acdbhatch1;
return ;
}
if(acad::eok!=p_acdbhatch1->evaluatehatch(false))
{
delete p_acdbhatch1;
return ;
}
acdbobjectid hatchid1;
pblockrecord->appendacdbentity(hatchid1,p_acdbhatch1);
p_acdbhatch1->close();
上面是定义块的一部分代码,在当前文档中使用没有问题,但是用executeinapplicationcontext(void (*procaddr)(void *)pfunc,void *pdata ) const = 0;
函数切换文档,打开另一个文件,时候,在pfunc函数中使用,执行上述代码出现的错误;新文档已经设置了当前文档和活动文档,并且设置了写保护,加入实体没有问题。
请帮忙分析一下,是什么原因引起?
新文档已经设置了当前文档和活动文档,并且设置了写保护,加入实体没有问题。
请问如何实现?可以设置当前活动文档,但是不能立即向该文档加入实体,必须另外重新再发一个命令。可以和你交流,欢迎和我联系?
qq:19154480
msn:
freejustinji@hotmail.com
e-mail:
justin3@citiz.net