![]() |
【转帖】等不及金斑竹了,我先发个简单的例子
等不及金斑竹了,我先发个简单的例子
www.dimcax.com 等不及金斑竹了,我先发个简单的例子 imports autodesk.autocad.applicationservices imports autodesk.autocad.databaseservices imports autodesk.autocad.runtime imports autodesk.autocad.interop imports autodesk.autocad.geometry imports autocadtm = autodesk.autocad.databaseservices.transactionmanager module module1 end module public class tlstemp <commandmethod("test")> public shared sub mytestcmd() dim putility as acadutility = application.documentmanager.mdiactivedocument.acaddocument.utility dim pt as new tlsdatabase dim p1, p2 as object '在屏幕上选取两个点生成一条直线 p1 = putility.getpoint() p2 = putility.getpoint(p1) dim pline as new line(new point3d(p1(0), p1(1), p1(2)), new point3d(p2(0), p2(1), p2(2))) pt.appendentity(pline) '生成一条直线,并加入到无名块,插入 dim p as object = putility.getpoint() dim pes(0) as dbobject 'pes(0) = new line(new point3d(p1(0), p1(1), p1(2)), new point3d(p2(0), p2(1), p2(2))) pes(0) = pline.clone dim pblock as objectid = pt.appendblock("*u", pes) dim pobj as new blockreference(new point3d(p(0), p(1), p(2)), pblock) pt.appendentity(pobj) end sub end class public class tlsdatabase '程序功能:向当前模型空间加入实体 public function appendentity(byval tlsentity as dbobject) dim pdatabase as database = application.documentmanager.mdiactivedocument.database dim ptransactionmanager as autocadtm = pdatabase.transactionmanager dim pstarttransaction as transaction = ptransactionmanager.starttransaction() try dim pblocktable as blocktable = ctype(ptransactionmanager.getobject(pdatabase.blocktableid, openmode.forread, false), blocktable) dim pblocktablerecord as blocktablerecord = ctype(ptransactionmanager.getobject(pblocktable(blocktablerecord.modelspace), openmode.forwrite, false), blocktablerecord) pblocktablerecord.appendentity(tlsentity) ptransactionmanager.addnewlycreateddbobject(tlsentity, true) pstarttransaction.commit() finally pstarttransaction.dispose() end try end function '程序功能:生成一个新块,并加入实体 public function appendblock(byval name as string, byval entitys as dbobject()) as objectid dim i as dbobject dim pdatabase as database = application.documentmanager.mdiactivedocument.database dim ptransactionmanager as autocadtm = pdatabase.transactionmanager dim pstarttransaction as transaction = ptransactionmanager.starttransaction() try dim pblocktable as blocktable = ctype(ptransactionmanager.getobject(pdatabase.blocktableid, openmode.forwrite, false), blocktable) dim pblocktablerecord as new blocktablerecord pblocktablerecord.name = name pblocktable.add(pblocktablerecord) dim pid as objectid = pblocktablerecord.id for each i in entitys pblocktablerecord.appendentity(i) ptransactionmanager.addnewlycreateddbobject(i, true) next i pblocktablerecord.close() pstarttransaction.commit() return pid finally pstarttransaction.dispose() end try end function end class [此贴子已经被作者于 金版主用的夹叙夹议之春秋笔法,有滋有味。你来个只练不讲,责把开头的一堆“imports”解释清楚。:) 河伯老兄,偶还等着金版主的文章呢,就靠偶的三脚猫可不行,:) 这是用vb.net做的吗?怎么这么像arx啊。。。 好像挺烦的,不如vba来得简单啊,不知有什么优点??? |
所有的时间均为北京时间。 现在的时间是 05:50 AM. |