一键批量DWG_DXF文件互转——CAD c#插件实现(dwg转dxf dxf转dwg)

如下图,我们有大量的dwg格式文件需转为dxf格式文件,或大量dxf需要转dwg,可用cad插件一键实现。

 

 

使用方式:

第一步:

CAD命令行输入:netload ,加载此dll插件

第二步:

dwg转dxf:CAD命令行输入:dwg2dxf

dxf转dwg:  CAD命令行输入:dxf2dwg

根据提示选择对应文件夹,即可一键完成格式转换。

附部分代码如下:

        [CommandMethod("dxf2dwg")]
        public static void Dxf2Dwg()
        {
            ConvertFiles("dxf", "dwg", (db, inputFile) => db.DxfIn(inputFile, null), (db, outputFile) => db.SaveAs(outputFile, DwgVersion.Current));
        }

        [CommandMethod("dwg2dxf")]
        public static void Dwg2Dxf()
        {
            ConvertFiles("dwg", "dxf", (db, inputFile) => db.ReadDwgFile(inputFile, FileShare.Read, true, null), (db, outputFile) => db.DxfOut(outputFile, 15, true)); // 使用 AutoCAD 2018 DXF 格式
        }


 if (dlgResult != DialogResult.OK) return;
 string dialogPathName = dialog.SelectedPath;
 string[] fileNames = Directory.GetFiles(dialogPathName, $"*.{inputExtension}");
 if (fileNames.Length == 0)
 {
     System.Windows.Forms.MessageBox.Show($"文件夹内没有{inputExtension}文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
     return;
 }
 int counter = 0;

 string newFolderName = $"{outputExtension.ToUpper()}_{DateTime.Now:yyyyMMdd_HHmm}";
 string newFolderPath = Path.Combine(dialogPathName, newFolderName);

 if (!Directory.Exists(newFolderPath))
 {
     Directory.CreateDirectory(newFolderPath);
 }

 foreach (string fileName in fileNames)
 {
     string fullfilename = Path.Combine(newFolderPath, Path.GetFileNameWithoutExtension(fileName) + $".{outputExtension}");
}

 插件作者↓↓↓

LibreDWG 是一个开源的库,用于读取和写入 DWG 文件DWG 是 AutoCAD 的原生文件格式,而 DXF 是 Autodesk 开发的一种开放的 CAD 数据文件格式,用于在不同的 CAD 程序之间交换数据。 要在 Java 中使用 LibreDWG 实现 DWGDXF换,可以按照以下步骤进行: 1. **安装 LibreDWG**:首先,需要在系统上安装 LibreDWG 库。可以从 LibreDWG 的官方网站下载并按照说明进行安装。 2. **使用 JNI 调用 LibreDWG**:由于 LibreDWG 是用 C 语言编写的,因此需要使用 Java Native Interface (JNI) 来调用 C 语言的库。可以编写一个 JNI 接口,将 Java 代码与 LibreDWG 库连接起来。 3. **编写 Java 代码**:编写 Java 代码来调用 JNI 接口,从而实现 DWGDXF换。 以下是一个简单的示例代码,展示如何使用 JNI 调用 LibreDWG 库: ```java public class DwgToDxfConverter { static { System.loadLibrary("libredwg"); } // 声明本地方法 private native int convertDwgToDxf(String inputDwgPath, String outputDxfPath); public static void main(String[] args) { DwgToDxfConverter converter = new DwgToDxfConverter(); String inputDwgPath = "path/to/input.dwg"; String outputDxfPath = "path/to/output.dxf"; int result = converter.convertDwgToDxf(inputDwgPath, outputDxfPath); if (result == 0) { System.out.println("Conversion successful!"); } else { System.out.println("Conversion failed!"); } } // 加载本地库 static { System.loadLibrary("libredwg"); } } ``` ### 步骤详细说明: 1. **安装 LibreDWG**: - 从 LibreDWG 的官方网站下载源代码。 - 解压并进入源代码目录。 - 运行 `./configure` 和 `make` 命令进行编译。 - 使用 `make install` 命令安装库文件2. **编写 JNI 接口**: - 创建一个 C 语言文件,例如 `DwgToDxfConverter.c`,并编写 JNI 接口代码。 - 使用 `javac -h` 命令生成头文件。 - 编译 C 语言文件生成共享库。 3. **编译和运行**: - 编译 Java 代码:`javac DwgToDxfConverter.java` - 运行 Java 程序:`java DwgToDxfConverter`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山水CAD插件定制

你的鼓励是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值