DWG-Datei lesen, aktualisieren und schreiben

Wie man eine DWG-Datei liest, aktualisiert und schreibt

Problem: Wie liest, aktualisiert und schreibt man eine DWG-Datei.

Tipps: Um dies zu tun, können Sie die Datei mit der Lade-Methode abrufen, die erforderlichen Entitäten erhalten und Änderungen an ihnen vornehmen, wie beispielsweise die Anfangs- und Endpunkte oder die Dicke der Linien zu ändern.

Hinweis: Dieser Codeausschnitt zeigt ein Beispiel zum Lesen einer DWG-Datei, das Ändern von Objekten: die Positionen von Linien, Kreisen, Textwerten (Sie können Änderungen an anderen Objekten und ihren Werten vornehmen, für die das Lesen/Schreiben unterstützt wird) und dann das Speichern in einer neuen Datei. So können Sie eine neue Datei in AutoCAD öffnen und Objekte mit geänderten Werten sehen.

Beispiel:

var fileName = "TestDwg";
var inputFile = BaseDataPath + fileName + ".dwg";
var outFile = GetFileInOutputFolder(fileName + "-rewritten.dwg");
using var cadImage = (CadImage) Image.Load(inputFile);
var cadLines = cadImage.Entities.OfType<CadLine>().ToList();
if (cadLines.Any())
{
foreach (var cadLine in cadLines)
{
cadLine.FirstPoint.X *= 2;
cadLine.FirstPoint.Y *= 2;
cadLine.SecondPoint.X *= 3;
cadLine.SecondPoint.Y *= 3;
}
}
var cadCircles = cadImage.Entities.OfType<CadCircle>().ToList();
if (cadCircles.Any())
{
foreach (var cadCircle in cadCircles)
{
cadCircle.CenterPoint.X *= 1.5;
cadCircle.CenterPoint.Y *= 1.5;
cadCircle.Radius *= 0.5;
}
}
var cadTexts = cadImage.Entities.OfType<CadText>().ToList();
if (cadTexts.Any())
{
foreach (var cadText in cadTexts)
{
cadText.DefaultValue = $"New {cadText.DefaultValue}";
}
}
cadImage.Save(outFile);