power mill宏和插件开发

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

PowerMill 数控编程宏(.mac)与插件二次开发。用于编写、阅读、调试、批量改造 PowerMill 宏; 调用 PM 命令族(FORM/EDIT/CREATE/IMPORT/EXPORT/PROCESS 等);处理变量、列表、entity 对象、 控制流、对话框、模板导入、后处理与 NC 输出、文件读写;以及用 Autodesk .NET API 做插件/自动化。 触发词:PowerMill、PM、宏、.mac、宏编程、二次开发、刀路、边界、毛坯、残留模型、后处理、 参考线、坐标系、PM 插件、powermill API、PowerMill 自动化。

一句话选型结论

按资料字段整理

power mill宏和插件开发是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_2ee1db66/powermill-macro-dev
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_2ee1db66仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量12.2 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
power mill宏和插件开发当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

12.2 KB
模型实际读到的说明书原文,来自技能仓库

PowerMill 宏与插件开发 Skill

面向 PowerMill(Autodesk,前身 Delcam)数控编程的宏语言与二次开发。目标:能读懂任意 .mac、
能按需求写出可直接在 PM 里运行的宏、能批量改造已有宏、能对接官方 .NET API 做插件与外部自动化。

何时用

  • 需要自动化 PM 里的重复操作(建刀、建边界、改参数、批处理刀路、出 NC、改坐标、统计时间…)。
  • 要读懂/修改工作空间里现成的 .mac 宏。
  • 要给一批刀路批量改参数、批量改转速进给、批量重命名、批量后处理。
  • 要用 C#/.NET 写 PM 插件或外部自动化程序。

核心心智模型(先理解,再动手)

  1. 宏 = PM 命令序列。在 PM 里手动点任何一个按钮/填任何对话框,都会向程序发命令。
    把「命令窗口(View > Window > User Interface > Command Window)」+「Home > Macro > Echo Commands」
    打开,操作一遍,窗口里回显的就是宏要写的命令。命令不区分大小写。
  2. 命令记录规则:录制只记录你显式改动的值,不记录当前默认值。想要某值,必须在录制时重新输入一次。
    调试时 UNSET MACROFIX 让 PM 直接报语法/宏错误(SET MACROFIX 恢复)。
  3. 宏语言是类 C 的脚本:有类型(INT/REAL/STRING/BOOL/ENTITY/对象/各类 LIST)、表达式、运算符、
    IF/SWITCH/WHILE/DO-WHILE/FOREACH、自定义 FUNCTION、内置函数、对话框。
  4. entity 是引用:entity('toolpath','名字') 拿到一个对象引用,用 对象.属性 取值
    (tp.Name、tp.Strategy、tool.Diameter、block.Limits.ZMax…),folder('toolpath') 拿一个类型下所有实体的列表。
  5. 命令 vs 函数:EDIT PAR 'xxx' 'yyy'、FORM xxx、CREATE xxx 是命令;
    entity()、length()、add_last()、sort() 是函数,用在表达式里。

标准工作流

A. 写一个新宏

  1. 确认需求落点:是改激活对象、改选中对象,还是遍历某类型全部对象?决定用 SELECTED / ;(激活)/
    FOREACH ... IN folder('类型') 哪种。
  2. 拿命令:能录就录——在 PM 里开 Echo Commands,手点一遍,复制回显命令。
    记不住参数路径时,EDIT PAR 的属性名可在 PM「参数」面板里右键「复制参数路径」得到。
  3. 套外壳(几乎每个生产宏都这么开头结尾):

// 中文注释建议:部分版本对中文敏感,必要时改 ANSI 编码或删中文注释 DIALOGS MESSAGE OFF DIALOGS ERROR OFF GRAPHICS LOCK ... 主体命令 ... GRAPHICS UNLOCK DIALOGS MESSAGE ON DIALOGS ERROR ON

  1. 加健壮性:IF NOT entity_exists(...) { MESSAGE ERROR "..."; MACRO ABORT ALL }。
  2. 加交互(按需):INPUT / QUERY / INPUT CHOICE / INPUT ENTITY / FILESELECT / MACRO PAUSE。
  3. 调试:UNSET MACROFIX;花括号配对;{ 前留空格;ELSEIF 不拆写;数字用小数点 . 不是逗号;
    赋值左侧必须带 $。按 ESC 中断循环。

B. 改造已有宏

  1. 先按 <references/recipes.md> 的模式识别它在做什么(遍历?选中?模板导入?后处理?)。
  2. 定位要改的变量/命令行,保持原有外壳(DIALOGS/GRAPHICS)不动。
  3. 只改请求的模块,保留其余命令;改完给一条最小可运行验证路径。

C. 批量处理(最常见的生产诉求)

模式固定:取集合 → 遍历 → 逐个激活 → 改参数 → 重算/提交。见 <references/recipes.md> 的「批量模板」。

语法速查

// 注释用双斜杠
// —— 变量 ——(赋值左侧必须带 $;变量名不区分大小写;必须先用类型声明)
INT i = 5
REAL d = 12.5
STRING s = "hello"
BOOL ok = 1
STRING LIST names = {}                 // 空列表
INT LIST a = {1,2,3}
REAL ARRAY v[] = {0,0,1}               // 固定数组
ENTITY tp = entity('toolpath','1')     // 实体引用
OBJECT blk = block                     // 参数对象集合

// —— 表达式/运算符 ——
// 算术 + - * / ;比较 == != < <= > >= ;逻辑 AND OR NOT
// 优先级见 references/macro-language.md(NOT > 比较 > AND > OR)
$s = "D" + string(i) + "R0"            // 字符串拼接
$v = Tool.Diameter * 0.6               // 直接用 PM 参数参与表达式

// —— 控制流 ——
IF cond { } ELSEIF cond { } ELSE { }
SWITCH $x { CASE 0 ... BREAK  CASE 1 ... BREAK  DEFAULT ... }
WHILE cond { }
DO { } WHILE cond
FOREACH item IN folder('toolpath') { }
FOREACH item IN list { }
BREAK / CONTINUE / RETURN

// —— 函数 ——
FUNCTION Main() { ... }
FUNCTION Sub(STRING LIST lst, output STRING msg) { $msg = ... RETURN }
CALL Sub($lst, $msg)

// —— 交互 ——
STRING s = INPUT "提示语"                       // 输入框
BOOL y = QUERY "是否继续?"                       // 是/否
INT c = INPUT CHOICE $stringlist "请选择"        // 单选
STRING t = INPUT ENTITY tool "选一把刀"          // 选实体
ENTITY LIST l = INPUT ENTITY MULTIPLE toolpath "多选刀路"
STRING f = FILESELECT "选择文件"
MACRO PAUSE "请选择局部位置"                     // 暂停等待用户操作
MESSAGE INFO|WARN|ERROR "文本"
INFOBOX ...                                    // 富文本信息窗(见 recipes)

// —— PM 命令族(示例)——
FORM BLOCK / EDIT BLOCK RESET / BLOCK ACCEPT
CREATE TOOL ; ENDMILL / RENAME TOOL ; "D1" / EDIT TOOL "D1" DIAMETER "10" / TOOL ACCEPT
ACTIVATE TOOLPATH $name
EDIT PAR 'Stepover' 'Tool.Diameter*0.6'
EDIT PAR CREATE REAL "clearance"
RESET SELECTED TOOLPATH FEEDRATE
IMPORT TEMPLATE ENTITY TOOLPATH "xxx.ptf"
PROCESS TPLINKS / LEADS ACCEPT
MACRO "其他.mac"    // 宏中调宏,可带参数
DoCommand $cmdstring  // 把字符串当命令执行(见下)

DoCommand(动态命令,字符串拼好后执行):

STRING $cmd = 'CURVEEDITOR TEXT SET_TEXT "' + $text + '"'
DoCommand $cmd

关键陷阱(踩过的坑)

  • 中文:部分 PM 版本含中文会报错或乱码;宏文件建议存 ANSI,或先删中文注释再运行。
    (实测语料:gbk/ANSI 2660 个、utf-8 2612 个、latin-1 1459 个,三种编码并存——约 61% 非 UTF-8,印证「宏建议存 ANSI」。)
  • 刀具类型两种写法并存:endmill/end_mill、ballnosed/ball_nosed、
    tipradiused/tip_radiused。判断时必须 IF c.type=='endmill' OR c.type=='end_mill',否则漏判一半。
  • $ 前缀:赋值左侧必须有 $($x = 5 对,x = 5 错);读取时 $ 可省。
  • 局部变量覆盖 PM 参数:REAL Stepover = 10 之后,宏内所有 Stepover 都用 10,
    EDIT PAR "Stepover" ... 也改的是这个局部变量,不是 PM 参数。要改 PM 参数就别用同名局部变量。
  • 列表输出要加 par:PRINT PAR "aa"。
  • folder() 参数区分大小写,且只接受实体类型名:
    MachineTool / NCProgram / Toolpath / Tool / Boundary / Pattern / Featureset / Workplane / Level / Model / StockModel / Group。
  • \r:命令回显里出现的 \r 直接忽略即可。
  • ; 与 #:命令里 ; 常表示「激活对象」,# 表示「当前对象」(如 ACTIVATE TOOLPATH #)。
  • entity 列表:entity list / entity('...') 返回的是引用,能取全部属性;extract() 可从集合提字段。
  • ${表达式}:命令参数位置可用 ${} 直接插表达式(EDIT BOUNDARY $x OFFSET ${-offset})。
  • apply() / join():现场高频使用(224 / 369 次)但不在官方 PDF,属版本相关,跨版本先试。
  • ERROR 变量:判断变量是否有效(现场用 2352 次),比 entity_exists 更底层。

参考文档(按需加载,不要一次全读)

文件 内容
references/corpus-analysis.md 6731 个真实宏的全量统计:命令族频次、211 条参数路径、116 个策略页名、554 个函数名、现场工程模式
references/ui-customization.md 方向一:工具栏按钮 / 快捷键 / 自定义菜单 / 启动宏 pmuser.mac,含真实 XML 结构、按键编码、图标名、内置按钮 ID
references/advanced-macro-design.md 方向二:套餐级大宏架构——Main+子函数、配置驱动、状态持久化、守卫、进度、宏传参、目录组织
references/macro-language.md 完整语法:类型、变量、表达式、运算符优先级、控制流、函数、对话框、文件读写、宏参数、pmuser
references/builtin-functions.md 内置函数分类速查(数学/三角/向量/字符串/列表/路径/条件/转换/统计/实体/时间/序列)
references/pm-commands.md PM 命令族与常见参数路径(毛坯/刀具/刀路/边界/参考线/坐标/NC/后处理/碰撞)
references/recipes.md 20 类实战套路与可套用模板(批量改参、批量改名、选面、模板导入、NC 输出、配置驱动、自动分中…)
references/plugin-dev.md 官方 .NET API(PowerMillConnection/PMAutomation)、NuGet、插件与外部自动化
references/official-guide-full.md Autodesk《Macro Programming Guide》全文(147 页抽取,权威兜底)
references/templates.md 宏模板(外壳/批量/交互/报告/套餐菜单/配置驱动/pmuser)+ 界面定制 XML 样例(快捷键/工具栏),已全部内联为代码块(skillhub 不接受 .mac/.xml 单独文件)
scripts/check_macro.py 宏语法预检:花括号配对、{ 前空格、赋值缺 $、ELSE IF 拆写、小数点误用逗号等

两条主路径(按需求选)

路径 A — 把高频小操作变成按钮/快捷键(现场 75% 的宏都是一行命令)

写一行命令宏 → 绑到工具栏按钮或快捷键 → 加进 Macro Paths

读 references/ui-customization.md。三条绑定通道:快速访问工具栏按钮、
键盘快捷键、资源管理器右键自定义菜单;另有启动宏 pmuser.mac 设默认参数。

路径 B — 写套餐级大宏(数百到 3000+ 行)

外部配置 + Main 调度 + 子函数模块 + 状态持久化 + 全程守卫

读 references/advanced-macro-design.md。核心是 FUNCTION/CALL(含 output 引用参数)、
apply()/join()/position() 解析配置、SWITCH 套餐分发、MACRO 宏传参。

两条路径可以叠加:大宏做好后,同样可以绑成按钮;按钮点开的也可以是一个套餐菜单。

写完宏先跑预检

python scripts/check_macro.py 你的宏.mac
python scripts/check_macro.py --dir 某个宏目录

只做语法预检(不理解 PM 语义),能挡掉大部分「一运行就报错」的低级问题。

参考资源(联网)

  • Autodesk 宏编程指南(PDF):https://www.autodesk.com/sites/default/files/file_downloads/PM_Macro_Programming_Guide.pdf
  • 离线帮助与宏/插件文档:Autodesk 支持站点 powermill-2024-offline-help-and-macros-and-plugin-documentation
  • 在线帮助(变量/命令/函数):https://help.autodesk.com/view/PWRM/2026/ENU/
  • 官方 API 仓库:https://github.com/Autodesk/PowerShapeAndPowerMillAPI(NuGet:PowerMill / PowerShape)
  • 设置自定义启动宏(pmuser.mac):放在 C:\Program Files\Autodesk\PowerMillxxxxx\lib\macro 或用户 pmill 目录下

交付要求

  • 产出 .mac 时给完整可运行内容,带最小注释;说明放到 PM 里怎么跑(资源管理器 > 宏 > 运行)。
  • 未验证的内容标注「未执行」,并给出在 PM 里验证的具体命令。
  • 批量宏必须先做「空集合/未激活」的健壮性判断,避免误改整个项目。

常见问题

5 问
答案由本站依据条目字段整理
power mill宏和插件开发怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_2ee1db66/powermill-macro-dev。安装方式为未标注。装完刷新技能列表或重开客户端。

power mill宏和插件开发支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

power mill宏和插件开发权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

power mill宏和插件开发收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

power mill宏和插件开发用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。