You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用AppleScript提取.gcode文件中以分号开头的行

完善AppleScript实现Gcode文件参数清理功能

功能说明

这段AppleScript可自动清理3D打印的.gcode文件,仅保留所有以分号;开头的参数设置行,移除所有非注释的G代码指令行。

完整可运行代码

-- 自定义列表拼接函数,用于将筛选后的行用换行符连接
on join(lst, delimiter)
    set prevTIDs to AppleScript's text item delimiters
    set AppleScript's text item delimiters to delimiter
    set joinedText to lst as text
    set AppleScript's text item delimiters to prevTIDs
    return joinedText
end join

-- 1. 让用户选择要处理的Gcode文件
set inputFile to choose file with prompt "选择要清理的Gcode文件" of type {"gcode", "txt"}

-- 2. 读取文件内容并按行拆分
set fileContent to read inputFile as text
set allLines to paragraphs of fileContent

-- 3. 筛选出以分号开头的行
set filteredLines to {}
repeat with aLine in allLines
    -- 跳过空行(可选,若需要保留空行可删除此判断)
    if length of aLine > 0 and aLine starts with ";" then
        set end of filteredLines to aLine
    end if
end repeat

-- 4. 将筛选后的行合并为带换行的文本
set outputContent to join(filteredLines, linefeed)

-- 5. 让用户选择清理后文件的保存位置
set inputFileName to name of (info for inputFile)
set defaultOutputName to "cleaned_" & inputFileName
set outputFile to choose file name with prompt "选择清理后文件的保存位置" default name defaultOutputName default location (path to desktop folder)

-- 6. 写入处理后的内容到文件,并处理异常
try
    set fileHandle to open for access outputFile with write permission
    write outputContent to fileHandle starting at eof
    close access fileHandle
    display dialog "文件清理完成!" & linefeed & "保存路径:" & linefeed & POSIX path of outputFile buttons {"确定"} default button 1
on error errMsg
    -- 确保文件句柄被关闭
    try
        close access outputFile
    end try
    display dialog "处理出错:" & linefeed & errMsg buttons {"确定"} default button 1 with icon stop
end try

代码关键细节说明

  • 文件选择:通过choose file和choose file name实现可视化文件选择,支持.gcode和.txt格式,默认保存到桌面并自动添加cleaned_前缀。
  • 行筛选逻辑:严格检查每一行是否以;开头,同时可选跳过空行(若需要保留空行,删除length of aLine > 0 and即可)。
  • 文本拼接:自定义join函数确保筛选后的行之间保留换行符,避免内容挤在一起。
  • 错误处理:写入文件时加入异常捕获,防止文件被占用等情况导致的崩溃,并确保文件句柄被正确关闭。

输入输出示例

输入Gcode片段:

;FLAVOR:Marlin
;TIME:1234
;Filament used: 5.6m
G28 ;Home
G1 Z5 F3000
;LAYER_COUNT:20
G1 X10 Y10 F2000

清理后输出:

;FLAVOR:Marlin
;TIME:1234
;Filament used: 5.6m
;LAYER_COUNT:20

内容的提问来源于stack exchange,提问作者GilbertOOl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 01:27:07