Chèn bản vẽ DXF/DWG vào trong DWG
Cách chèn bản vẽ DXF/DWG vào trong DWG
Vấn đề: Cách chèn bản vẽ DXF/DWG vào trong DWG.
Mẹo: Để thực hiện điều này, trước tiên tạo một CadInsertObject với các giá trị cần thiết, sau đó lấy tất cả các khối trong một CadBlockDictionary, tạo một khối CadBlockEntity mới và thêm nó vào CadBlockDictionary, thêm một CadBlockDictionary vào BlockEntities của bản vẽ, thêm một CadInsertObject vào thực thể bản vẽ cho mảng, tạo một CadBlockTableObject bằng tham chiếu, sau đó thêm một khối vào bản vẽ.
Ví dụ:
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(...) |