درج نقاشی DXF/DWG در داخل DWG

چگونه نقاشی DXF/DWG را در داخل DWG درج کنیم

مسئله: چگونه نقاشی DXF/DWG را در داخل DWG درج کنیم.

نکات: برای این کار، ابتدا یک CadInsertObject با مقادیر مورد نیاز ایجاد کنید، سپس تمام بلوک‌ها را در یک CadBlockDictionary بگیرید، یک بلوک CadBlockEntity جدید ایجاد کرده و آن را به CadBlockDictionary اضافه کنید، یک CadBlockDictionary به BlockEntities نقاشی اضافه کنید، یک CadInsertObject به موجودیت نقاشی برای آرایه اضافه کنید، یک CadBlockTableObject با ارجاع ایجاد کنید، سپس یک بلوک به نقاشی اضافه کنید.

نمونه:

CadInsertObject newInsert = new CadInsertObject();
newInsert.Name = "foreground";
newInsert.ObjectHandle = newObjectID;
newInsert.LayerName = "0";
newInsert.InsertionPoint.X = 200;
newInsert.InsertionPoint.Y = -1300;
CadBlockDictionary allBlocks = cadImage.BlockEntities;
CadBlockEntity newBlock = new CadBlockEntity();
newBlock.XRefPathName.Value = "foreground.dwg";
allBlocks.Add(newInsert.Name, newBlock);
cadImage.BlockEntities = allBlocks;
List entities = new List(cadImage.Entities);
entities.Add(newInsert);
cadImage.Entities = entities.ToArray();
CadBlockTableObject blockTableObjectReference = null;
CadBlockEntity cadBlockEntity = null;
foreach (CadBlockTableObject tableObject in cadImage.BlocksTables)
{
if (string.Equals(tableObject.HardPointerToLayout.Value, cadImage.Layouts["Model"].ObjectHandle))
{
blockTableObjectReference = tableObject;
break;
}
}
if (blockTableObjectReference != null && cadImage.BlockEntities.ContainsKey(blockTableObjectReference.BlockName))
{
cadBlockEntity = cadImage.BlockEntities[blockTableObjectReference.BlockName];
}
List blockEntities = new List(cadBlockEntity.Entities);
blockEntities.Add(newInsert);
cadBlockEntity.Entities = blockEntities.ToArray();
cadImage.Save(...)