新建和插入块函数
请教老师:例如:首先判断当前图档中是否有一图块“A”,如果没有则新建,如果有则直接插入。
下面是我写的一部分,但是有问题,请帮助修正一下...
public static ObjectId CreateBlock(string blockname, ObjectIdCollection[] objIds)
{
DocumentLock doclock = Application.DocumentManager.MdiActiveDocument.LockDocument();
ObjectId blockid = new ObjectId();
Database db = HostApplicationServices.WorkingDatabase;
using (Transaction tr = db.TransactionManager.StartTransaction())
{
BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForWrite, false);
BlockTableRecord btr = new BlockTableRecord();
btr.Name = blockname;
if (!bt.Has(blockname)) //判断是否存在名为blockname的块,如果没有则新建
{
for (int i = 0; i 复制代码 没修改你的代码的声明就直接改了,楼上的代码已更正 我还是没有测试成功,例如: 我是按以下方式画出两个圆,下面如何调用CreateBlockDef函数复制代码 Circle c1 = new Circle(new Point3d(0, 0, 0),10);
Circle c2 = new Circle(new Point3d(0, 0, 0),10);
DBObjectCollection objs = new DBObjectCollection();
objs.Add(c1);
objs.Add(c2);
CreateBlockDef("Test", objs);
如果是用ObjectIdCircle c1 = new Circle(new Point3d(0, 0, 0),10);可以吗?
下面我将我的测试代码贴上了你看看。。。
页:
[1]