![]() |
求助,块(block)或组(group)的建立方法
求助,块(block)或组(group)的建立方法
www.dimcax.com 求助,块(block)或组(group)的建立方法 我需要由已经生成的实体来建立一个块或编成组 public static objectid m_createblock(string m_blockname, entity[] m_ent) { documentlock m_doclock= application.documentmanager.mdiactivedocument.lockdocument(); objectid m_blockid = new objectid(); database m_db = hostapplicationservices.workingdatabase; using( transaction m_tr = m_db.transactionmanager.starttransaction()) { blocktable m_bt = (blocktable)m_tr.getobject(m_db.blocktableid, openmode.forwrite, false); blocktablerecord m_btr = new blocktablerecord(); m_btr.name = m_blockname; m_blockid = m_bt.add(m_btr); m_tr.addnewlycreateddbobject(m_btr, true); for (int i = 0; i <= m_ent.getupperbound(0); i++) { m_btr.appendentity(m_ent[]); } m_tr.commit(); } m_doclock.dispose(); return m_blockid; } 总在 m_btr.appendentity(m_ent[]) 行出错,说是无效输入该怎么改呢?(注:[]里面 i 显示不出来,只好不输了) [ public static objectid m_createblock(string m_blockname, entity[] m_ent) { documentlock m_doclock= application.documentmanager.mdiactivedocument.lockdocument(); objectid m_blockid = new objectid(); database m_db = hostapplicationservices.workingdatabase; using( transaction m_tr = m_db.transactionmanager.starttransaction()) { blocktable m_bt = (blocktable)m_tr.getobject(m_db.blocktableid, openmode.forwrite, false); blocktablerecord m_btr = new blocktablerecord(); m_btr.name = m_blockname; for (int i = 0; i <= m_ent.length; i++) { m_btr.appendentity(m_ent); } m_blockid = m_bt.add(m_btr); m_tr.addnewlycreateddbobject(m_btr,true); m_tr.commit(); } m_doclock.dispose(); return m_blockid; } 试一下 c#最适合开发autocad,因为它拥有vb容易的特点,却具有vc++的强大功能。 谢谢才鸟的 啊,终于试出来拉!把m_btr.appendentity(m_ent) 改成 m_btr.appendentity(m_ent.clone())就行了 但怎么创建组(group)呢? |
所有的时间均为北京时间。 现在的时间是 05:42 PM. |