几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(C++) (http://www.dimcax.com/hust/forumdisplay.php?f=34)
-   -   【转帖】[分享]图块插入源码 (http://www.dimcax.com/hust/showthread.php?t=6547)

yang686526 2009-04-16 01:10 PM

【转帖】[分享]图块插入源码
 
[分享]图块插入源码
[分享]图块插入源码
希望能对大家有用,我花了好久才看懂的,刚学编程不久不要笑我菜,欢迎批评指正
void ctestplate::onblockinsert()
{
// todo: add your control notification handler code here
acdocmanager->lockdocument(curdoc());
acdbobjectid blockid; //要插入的块的id值
acdbblocktable *pblocktable;
acdbhostapplicationservices()->workingdatabase()
->getsymboltable(pblocktable,acdb::kforread);
acad::eok!=pblocktable->getat("asdk-no-attr",
blockid,acdb::kforread)//根据块名获得要插入的块的id值
acdbblockreference *pblkref=new acdbblockreference;//插入块实质是插入块的引用
pblkref->setblocktablerecord(blockid);//指定所引用的图块表记录的对象id
resbuf to,from;
from.restype=rtshort;//插入图块要进行用户坐标与世界坐标的转换
from.resval.rint=1;//ucs
to.restype=rtshort;
to.resval.rint=0;//wcs
acgevector3d normal(0.0,0.0,1.0);
acedtrans(&(normal.x),&from,&to,adesk::ktrue,&(normal.x));//转换函数
acgepoint3d basepoint(12,23,0);//指定的插入点(可以根据需要输入)
//acedgetpoint(null,"\nenter insertion point:",asdblarray(basepoint));
pblkref->setposition(basepoint);
pblkref->setrotation(0.0);
pblkref->setnormal(normal);
acdbblocktablerecord *pblocktablerecord;
pblocktable->getat(acdb_model_space,pblocktablerecord,acdb::kforwrite);
pblocktable->close();
acdbobjectid newentid;
pblocktablerecord->appendacdbentity(newentid,pblkref);
pblocktablerecord->close();
pblkref->close();
acdocmanager->lockdocument(curdoc());
}
哈哈,我又回来了。互相学习,共同提高qq:250623330我的群:1083110
【好评】好程序 金钱+1 经验+1 [easypower |
谢谢楼主!!!
正好要用这个功能,先看看再改进一下


所有的时间均为北京时间。 现在的时间是 12:21 PM.