Skip to content

convert

文件格式转换相关 CLI 命令(本地操作,无需 Dimine 运行)。

cmd_convert_file(fmt, source, target, overwrite=True)

在采矿文件格式之间转换(本地操作)。

dmf <-> dwg, dmf <-> dtm (Surpac), dmf <-> str (MicroMine),

dmf <-> dm (DataMine), dmf -> mgis (MapGIS), dmd -> dmg(钻孔数据库数据表形式转为三维模型+数据形式)

MapGIS 仅支持作为目标格式,mgis -> dmf 当前不可用。

dmf -> mgis 的产物是文件夹(如 .../新文件2/,内含 .WL/.WT), 而非用户传入的 .../新文件2.mgis 文件。

Source code in dimine_python_sdk\cli\commands\convert.py
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
def cmd_convert_file(fmt: str, source: str, target: str, overwrite: bool = True) -> None:
    """在采矿文件格式之间转换(本地操作)。

    支持格式: dmf <-> dwg, dmf <-> dtm (Surpac), dmf <-> str (MicroMine),
             dmf <-> dm (DataMine), dmf -> mgis (MapGIS),
             dmd -> dmg(钻孔数据库数据表形式转为三维模型+数据形式)

    注意: MapGIS 仅支持作为目标格式,mgis -> dmf 当前不可用。
          dmf -> mgis 的产物是**文件夹**(如 `.../新文件2/`,内含 .WL/.WT),
          而非用户传入的 `.../新文件2.mgis` 文件。
    """
    err = require_local_sdk()
    if err:
        output_error(err, fmt)

    source_path = resolve_path(source)
    target_path = resolve_path(target)

    from dimine_python_sdk.lib.io import convert_file

    try:
        result = convert_file(source_path, target_path, overwrite=overwrite)
        # Path 不是 JSON 可序列化类型,统一转 str 输出
        output_path = str(result.output_path)
        # MapGIS 等格式的产物是文件夹(如 .../新文件2/ 内含 .WL/.WT),
        # 与用户传入的 .mgis 目标路径不同,需明确回传真实产物位置。
        kind = "目录" if result.is_directory else "文件"
        output_result({
            "success": True,
            "source": source_path,
            "target": target_path,
            "output_path": output_path,
            "output_is_directory": result.is_directory,
            "overwrite": overwrite,
            "result": str(result),
            "message": f"文件已转换: {source_path} -> {output_path}({kind})",
        }, fmt)
    except Exception as e:
        output_error(f"文件转换失败: {e}", fmt)

register_commands(subparsers, format_parent)

向 subparsers 注册转换相关子命令。

Source code in dimine_python_sdk\cli\commands\convert.py
52
53
54
55
56
57
def register_commands(subparsers, format_parent) -> None:
    """向 subparsers 注册转换相关子命令。"""
    p = subparsers.add_parser("convert-file", parents=[format_parent], help="转换采矿文件格式(支持 dmd -> dmg)")
    p.add_argument("--source", required=True, help="源文件路径")
    p.add_argument("--target", required=True, help="目标文件路径(扩展名决定格式,例如 .dmd -> .dmg)")
    p.add_argument("--overwrite", type=bool, default=True, help="是否覆盖已存在的目标文件(默认: true)")