DXF/DWG-tekening invoegen in DWG

Hoe een DXF/DWG-tekening in DWG in te voegen

Probleem: Hoe een DXF/DWG-tekening in DWG in te voegen.

Tips: Om dit te doen, maak eerst een CadInsertObject met de vereiste waarden, haal dan alle blokken op in een CadBlockDictionary, maak een nieuwe CadBlockEntity-blok aan en voeg deze toe aan de CadBlockDictionary, voeg een CadBlockDictionary toe aan de BlockEntities van de tekening, voeg een CadInsertObject toe aan de tekeningentiteit voor de array, maak een CadBlockTableObject per referentie, en voeg dan een blok toe aan de tekening.

Voorbeeld:

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(...)