DXF/DWG-Zeichnung in DXF einfügen

Wie man eine DXF/DWG-Zeichnung in DXF einfügt

Problem: Wie man eine DXF/DWG-Zeichnung in DXF einfügt.

Tipps: Dazu müssen Sie zunächst ein CadInsertObject mit den erforderlichen Werten erstellen, dann alle Blöcke im CadBlockDictionary abrufen, einen neuen CadBlockEntity-Block erstellen und ihn zum CadBlockDictionary hinzufügen, das CadBlockDictionary zu den BlockEntities der Zeichnung hinzufügen und ein CadInsertObject zu den Entitäten der Zeichnung für das Array hinzufügen.

Beispiel:

/ this part is not required but detects the first available free ID for handle as each object should have unique one
// assuming that we only make export, but not saving to dxf/dwg, you may assign any unique value
string newObjectID = "FFFFFF";
if (cadImage.Header.HeaderProperties.ContainsKey(CadHeaderAttribute.HANDSEED))
{
newObjectID = ((CadStringParameter)cadImage.Header.HeaderProperties[CadHeaderAttribute.HANDSEED][0]).Value;
int nextAvailableID = int.Parse(newObjectID, System.Globalization.NumberStyles.HexNumber) + 1;
((CadStringParameter)cadImage.Header.HeaderProperties[CadHeaderAttribute.HANDSEED][0]).Value = nextAvailableID.ToString("X");
}
CadInsertObject newInsert = new CadInsertObject();
newInsert.Name = "foreground";
newInsert.SoftOwner.Value = cadImage.Layouts["Model"].BlockTableRecordHandle;
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();
cadImage.Save(...)