前言
在不启动AutoCad的情况下修改表格中的值,一直是个难题,此次通用Cadlib4.0 实现
一、cadlib是什么?
下载cadlib4.0 通过反编译破解后可以去除水印和弹窗限制。
二、使用步骤
1.引入库
代码如下(示例):
using WW.Cad.IO;
using WW.Cad.Model;
using WW.Cad.Model.Entities;
2.实现代码
代码如下(示例):
using (FileStream fs = new FileStream(Path.Combine(currentDir, fileName), FileMode.OpenOrCreate))
{
file.CopyTo(fs);
fs.Flush();
if (fs.Length > 0)
{
try
{
model = DwgReader.Read(Path.Combine(currentDir, fileName));
}
catch (Exception e)
{
throw e;
}
var dxfInsert = model.Entities.FirstOrDefault(e =>
{
if (e is DxfInsert insert)
{
if (insert.Block == model.GetBlockWithName("BTLAN01"))
{
return true;
}
}
return false;
}) as DxfInsert;
model.Header.AcadVersion = DxfVersion.Dxf24;
dxfInsert.Attributes.FirstOrDefault(attr => attr.BasicTagString == basicTag).Text = text;
}
string outName = Path.Combine(currentDir, Path.GetRandomFileName() + ".dwg");
DwgWriter.Write(outName, model);
fs.Close();
fs.Dispose();
return File.ReadAllBytes(outName);
}
由于直接打开Stream会报Version信息缺失,所以只能先保存本地,使用路径打开的方式。