您好,
我正在尝试复制在side数据库中打开的图形中的特定块,并将其以相等的距离粘贴n次。这是我的代码:
-
- try
- {
- using (db)
- {
- db.ReadDwgFile(@"-------.dwg", FileOpenMode.OpenForReadAndAllShare, false, null);
- db.CloseInput(true);
- using (Transaction tr = db.TransactionManager.StartTransaction())
- {
- BlockReference br;
- BlockTableRecord btr = (BlockTableRecord)tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForRead);
- foreach (ObjectId id in btr)
- {
- Entity ent = (Entity)tr.GetObject(id, OpenMode.ForWrite);
- if (ent is Line)
- {
- Line line = (Line)ent;
- if (line.Handle.ToString() == "3D5")
- {
- Point3d linePt = new Point3d();
- linePt = line.StartPoint;
- ed.WriteMessage(linePt.ToString());
-
- ObjectId brId = ObjectId.Null;
- string blockFile = @"--------.dwg";
- string blockName = Path.GetFileNameWithoutExtension(blockFile);
-
- using (Database tempDb = new Database(false, true))
- {
- tempDb.ReadDwgFile(blockFile, FileShare.Read, true, null);
- brId = db.Insert(blockName, tempDb, false);
- tempDb.Dispose();
- br = new BlockReference(linePt, brId);
- //tr.AddNewlyCreatedDBObject(br, true);
- }
- }
- }
- }
- tr.Commit();
- }
- db.SaveAs(@"----------.dwg", DwgVersion.Current);
- }
- }
- catch (Autodesk.AutoCAD.Runtime.Exception ex)
- {
- ed.WriteMessage(ex.ToString());
- }
不幸的是,它不起作用。请帮忙。
谢谢
本帖以下内容被隐藏保护;需要你回复后,才能看到! 游客,如果您要查看本帖隐藏内容请 回复 |