几何尺寸与公差论坛------致力于产品几何量公差标准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(VB.NET/C#) (http://www.dimcax.com/hust/forumdisplay.php?f=176)
-   -   【转帖】遍历图块里的所有实体对象 (http://www.dimcax.com/hust/showthread.php?t=10156)

yang686526 2009-04-22 03:22 PM

【转帖】遍历图块里的所有实体对象
 
遍历图块里的所有实体对象
www.dimcax.com
遍历图块里的所有实体对象
遍历图块里的所有实体对象
[commandmethod("fbe")]
public void foreachblockentity()
{
database db = hostapplicationservices.workingdatabase;
editor ed = autodesk.autocad.applicationservices.application.documentmanager.mdiactivedocument.editor;
using (transaction trans = db.transactionmanager.starttransaction())
{
typedvalue[] fillistblock = new typedvalue[1];
fillistblock[0] = new typedvalue(0, "insert");
selectionfilter filterblock = new selectionfilter(fillistblock);
//选择对象
promptselectionresult resblock = ed.selectall(filterblock);
if (resblock.status == promptstatus.ok)
{
//遍历选择集里的所有实体对象
foreach (objectid blockid in resblock.value.getobjectids())
{
//获取图块对象
blockreference blockobject = trans.getobject(blockid, openmode.forread) as blockreference;
ed.writemessage("图块名称:" + blockobject.name + "\n");
//获取图块的块表记录
blocktablerecord btrblock = trans.getobject(blockobject.blocktablerecord, openmode.forread) as blocktablerecord;
//遍历图块里的所有实体对象
foreach (objectid blcokid in btrblock)
{
entity blockentity = trans.getobject(blcokid, openmode.forread) as entity;
ed.writemessage("实体对象objectid:" + blockentity.objectid + "\n");
ed.writemessage("实体对象句柄:" + blockentity.handle + "\n");
}
}
}
trans.commit();
}
}
复制代码
注明:忽悠悠提供技术支持 !!!
请教:
ed.writemessage("图块名称:" + blockobject.name + "\n");
是不是应该改成:
ed.writemessage("图块名称:" + blockobject.gettype().name + "\n");
我是一个初学者,也是用c#+objecarx开发,对cad里面的结构不是很清楚,比如我想查找帮助应该怎么搞呢?
请教:
ed.writemessage("图块名称:" + blockobject.name + "\n");
是不是应该改成:
ed.writemessage("图块名称:" + blockobject.gettype().name + "\n");
我是一个初学者,也是用c#+objecarx开发,对cad里面的 ...
sunliangyu 发表于
blockobject是blockreference类,它有一个name属性,用来获取块名。
你可以查objectarx


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