Мне нужно экспортировать некоторые объекты, выбранные пользователем.Эта первая часть завершена, но теперь мне нужно поместить экспортируемые объекты в исходную точку нового чертежа, не открывая этот чертеж.Минимальная точка экстента выбранных объектов должна находиться в исходной точке.
Я не нашел, как выбрать объекты во внешнем пространстве модели и как переместить их в исходную точку.
// Create a new external database, where the
// exported objects will be created.
using (var newDb = new Database(true, false))
{
// objIds is an array of obejcts selected
// by the user.
db.Wblock(newDb, objIds, Point3d.Origin,
DuplicateRecordCloning.Ignore);
newDb.SaveAs(MyFileName, DwgVersion.Newest);
}
// Here it's what I've tried: Open the
// drawing with the ReadDWgFile method
// and to select all objects from model space,
// but no success.
using (var exDb = new Database(false, false))
{
try
{
exDb.ReadDwgFile(MyFileName,
FileOpenMode.OpenForReadAndWriteNoShare, false, "");
}
catch (System.Exception)
{
ed.WriteMessage("\nUnable to read drawing file.");
}
using (var exTr = exDb.TransactionManager.StartTransaction())
{
// Open the Block table record for read
BlockTable exBlkTbl;
exBlkTbl = exTr.GetObject(exDb.BlockTableId,
OpenMode.ForRead) as BlockTable;
// Open the Block table record Model space for read
BlockTableRecord exBlkTblRec;
exBlkTblRec = exTr.GetObject(exBlkTbl[BlockTableRecord.ModelSpace],
OpenMode.ForRead) as BlockTableRecord;
// Here I don't know how to proceed to
// get the objects from the model space
// and then move to the origin point.
}
}
Спасибо