Вставка малюнка 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(...) |