إدراج رسم 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(...)