public void Ins_Shtamp_Block(string BlockPath)
{
///Вставка блока: ///
///---------------------------------------------------------------------///
Document doc = acadApp.DocumentManager.MdiActiveDocument;
Editor ed = doc.Editor;
try
{
Point3d pt = Point3d.Origin;
using (EditorUserInteraction UI = ed.StartUserInteraction(this)) {
PromptPointResult ppr = ed.GetPoint("\nУкажите точку вставки блока ");
pt = ppr.Value;
}
Database db = new Database(false, false);
Database curdb = doc.Database;
db.ReadDwgFile(BlockPath, System.IO.FileShare.Read, true, null);
using (Transaction tr = doc.TransactionManager.StartTransaction())
{
ObjectId BlkId = curdb.Database.Insert(BlockPath, db, false);
BlockTable bt = (BlockTable)tr.GetObject(doc.Database.BlockTableId, OpenMode.ForRead, true);
BlockTableRecord ps = tr.GetObject(curdb.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord;
MyData.InsPt = pt; ///сохраняю точку вставки,для вставки следующих блоков
BlockReference bref = new BlockReference(pt, BlkId);
ps.AppendEntity(bref);
tr.AddNewlyCreatedDBObject(bref, true);
bref.ExplodeToOwnerSpace();
bref.Erase();
tr.Commit();
}
}
catch (Autodesk.AutoCAD.Runtime.Exception ex)
{
acadApp.ShowAlertDialog(ex.Message);
}
finally
{
acadApp.ShowAlertDialog("Adios");
}
}