几何尺寸与公差论坛------致力于产品几何量公差标准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=9508)

yang686526 2009-04-21 09:47 AM

【转帖】如何在插入块参照的同时给块赋一个扩展属性?
 
如何在插入块参照的同时给块赋一个扩展属性?
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.