Lire, mettre à jour et écrire un fichier DWG
Comment lire, mettre à jour et écrire un fichier DWG
Problème : Comment lire, mettre à jour et écrire un fichier DWG.
Conseils : Pour ce faire, vous pouvez obtenir le fichier en utilisant la méthode load, obtenir les entités nécessaires et y apporter des modifications, comme changer les points de départ et d’arrivée ou l’épaisseur des lignes.
Remarque : Cet extrait de code montre un exemple de lecture d’un fichier dwg, de modification d’objets : les positions des lignes, des cercles, des valeurs de texte (vous pouvez ajouter des changements à d’autres objets et leurs valeurs pour lesquels la lecture/l’écriture est prise en charge) et ensuite les enregistrer dans un nouveau fichier. Ainsi, vous pouvez ouvrir un nouveau fichier dans AutoCAD et voir des objets avec des valeurs modifiées.
Exemple :
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); |