DWGファイルの読み取り、更新、書き込み
Contents
[
Hide
]DWGファイルの読み取り、更新、書き込み方法
問題: DWGファイルをどのように読み取り、更新し、書き込むか。
ヒント: これを行うには、loadメソッドを使用してファイルを取得し、必要なエンティティを取得して、それらに変更を加えます。例えば、開始点と終了点の変更や線の太さの変更などです。
注意: このコードスニペットは、dwgファイルの読み取り、オブジェクトの変更(線、円、テキスト値の位置:読み取り/書き込みがサポートされる他のオブジェクトとその値にも変更を加えることができます)を示し、新しいファイルに保存する例を示しています。これにより、新しいファイルをAutoCADで開き、変更された値を持つオブジェクトを見ることができます。
例:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); |