![]() |
【转帖】关于readdwgfile的问题
关于readdwgfile的问题
关于readdwgfile的问题 函数:bool creanent::readdwgfile() { acdbdatabase *pdb=new acdbdatabase(adesk::kfalse); cstring acadpath,filepath; getacadpath(acadpath); acadpath = acadpath.left(acadpath.getlength() - 8); //cstring filepath = acadpath + "test.dwg"; filepath="d:\\test01.dwg"; // filepath=lstopenfile(); if(pdb->readdwgfile(filepath,_sh_denyrw)!=acad::eok); { if(filepath.getalloclength()==0) { afxmessagebox(_t("文件不存在")); } else afxmessagebox(_t("文件不能打开")); return false; } acdbblocktable *pblktbl; pdb->getsymboltable(pblktbl, acdb::kforread); acdbblocktablerecord *pblktblrcd; pblktbl->getat(acdb_model_space, pblktblrcd,acdb::kforread); pblktbl->close(); acdbblocktablerecorditerator *pblktblrcditr; pblktblrcd->newiterator(pblktblrcditr); acdbentity *pent; for (pblktblrcditr->start(); !pblktblrcditr->done(); pblktblrcditr->step()) { pblktblrcditr->getentity(pent, acdb::kforread); acutprintf(_t("classname: %s\n"), (pent->isa())->name()); pent->close(); } pblktblrcd->close(); delete pblktblrcditr; delete pdb; } 这个函数基本上是按教材上抄下来的, 我用的是vs5+autocad8编写,但是文件就是打不开,如果不加 if(pdb->readdwgfile(filepath,_sh_denyrw)!=acad::eok); { if(filepath.getalloclength()==0) { afxmessagebox(_t("文件不存在")); } else afxmessagebox(_t("文件不能打开")); return false; } 这个判断,那么只要一运行就马上出现严重错误而使得autocad关闭,不知道何原因。程序很简单,就是打开一个dwg文件,并显示它。 不知各位大侠遇到此问题没有。 readdwgfile函数很简单,只要路径对了文件存在就能执行成功,否则不成功 objectarx 8\samples\下有个例子,很详细 谢谢 按例子做,可以读取,但是文件不显示啊 如果新建立数据库的话,没有办法在窗口显示图形 因为那个例子功能就是只readdwg并插入,但不显示 你注意看有个erase什么的 |
所有的时间均为北京时间。 现在的时间是 06:48 AM. |