![]() |
【转帖】如何在插入块参照的同时给块赋一个扩展属性?
如何在插入块参照的同时给块赋一个扩展属性?
www.dimcax.com 如何在插入块参照的同时给块赋一个扩展属性? 我也是初学,我用vb.net,没有vc代码,我不会vc 自己的问题自己解决了!现代码改正如下: public sub insertblockref(byval blockname as string, byval point as point3d, byval scale as scale3d, byval rotateangle as double, byval layername as string, byval xdatacode as string) dim db as database = hostapplicationservices.workingdatabase dim doclock as documentlock = autodesk.autocad.applicationservices.application.documentmanager.mdiactivedocument.lockdocument dim bt as blocktable using trans as transaction = db.transactionmanager.starttransaction '以读的方式打开块表 bt = trans.getobject(db.blocktableid, openmode.forread) '如果没有blockname表示的块,则程序返回 if (bt.has(blockname) = false) then '从所指定的外部文件中导入块 importblocksfromdwg(blockname) end if '以读的方式打开blockname表示的块 dim block as blocktablerecord = trans.getobject(bt(blockname), openmode.forwrite) '创建一个块参照并设置插入点 dim blockref as blockreference = new blockreference(point, bt(blockname)) blockref.scalefactors = scale '设置块参照的缩放比例 blockref.layer = layername '设置图层 blockref.rotation = rotateangle '设置块参照的旋转角度 '以写的方式打开当前空间(模型空间或图纸空间) dim btr as blocktablerecord = trans.getobject(db.currentspaceid, openmode.forwrite) btr.appendentity(blockref) '在当前空间加入创建的块参照 '通知事务处理加入创建的块参照 trans.addnewlycreateddbobject(blockref, true) '给插入的块赋扩展属性 dim st as object = blockref setxdata(st, xdatacode) trans.commit() '提交事务处理以实现块参照的真实加入 trans.dispose() end using doclock.dispose() end sub 复制代码 |
| 所有的时间均为北京时间。 现在的时间是 03:20 PM. |