几何尺寸与公差论坛------致力于产品几何量公差标准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=7825)

yang686526 2009-04-18 04:43 PM

【转帖】求助块搜索问题,帮忙看看程序!!!
 
求助块搜索问题,帮忙看看程序!!!
求助块搜索问题,帮忙看看程序!!!
哪位高手帮帮看看程序,为什么不能获得块名呢?是书上的例子还是有错,跟踪发现获得的blockname是*model_space,为什么会这样?能帮帮我改改么?小妹这里先谢谢了!急待解决!!!
acdbdatabase extdb(adesk::kfalse);//定义一个空数据库
char dwgname[134],*blockname;
struct resbuf filedia,fileres;
//打开文件选择对话框dwg文件
acedgetvar("filedia",&filedia);//读入系统变量filedia之值
if (filedia.resval.rint==0)
filedia.resval.rint=1;
if (acedgetfiled("选择图形文件",null,"dwg",0,&fileres)==rtnorm)
{
if (fileres.restype==rtstr)
{
strcpy(dwgname,fileres.resval.rstring);
}
else
return;
}
else
return;

free(fileres.resval.rstring);
//将选择的dwg文件读入extdb数据库中
extdb.readdwgfile(dwgname);
//获得指向当前图形的块表指针pblocktable
acdbblocktable *pbtable; //定义块表指针
//获得指向extdb数据库的块表指针
extdb.getblocktable(pbtable,acdb::kforread);
acdbblocktablerecord *pbtrecord;

//获得遍历块表的浏览器、获得指向块表浏览器的指针
acdbblocktableiterator *pbiterator;
pbtable->newiterator(pbiterator);
//利用循环结构和块表浏览器遍历块表
for (pbiterator->start();!pbiterator->done();pbiterator->step())
{
//调用块表浏览器的成员函数getrecord获得指向块表浏览器的指针
pbiterator->getrecord(pbtrecord,acdb::kforread,adesk::kfalse);
pbtrecord->getname(blockname);
char tmp[32];
tmp[0]=*blockname;
if (tmp[0]='*')//不显示由hatch,dim等操作命令产生的无名块

ads_printf("\n块名:%s",blockname);

delete pbiterator;//删除浏览器对象
pbtrecord->close();//关闭块表记录
pbtable->close();//关闭块表
tmp[0]=*blockname;是什么意思?tmp[0]是八个bit,*blockname是一个指针所指向的内容。
{ 还就 一个。不知道你怎么编译过去的。
呵呵
谢谢指教!
}是复制的时候,没复制上,麻烦你看了,这个程序是书上的例子,我也不是很清楚,所以才请教高手指点的,我理解tmp[0]=*blockname是将块名赋给tmp! 不知道对不对?
尽信书不如无书。
谢谢
你说的对啊!我也觉得不对,那能不能告诉我例子错在哪?我是个菜鸟,不知道该怎样改?是哪错了呢?高手能指点一下么?


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