发动态
图文
列表
MCP 与 Skill 深度对比:AI Agent 的两种扩展哲学用 AI Agent 工具(Claude Code、Cursor、Windsurf 等)的时候,经常会遇到两个概念:MCP(Model Context Protocol)Skill(Agent Skill)它们看起来都是"扩展 AI 能力"的方式,但具体有什么区别?为什么需要两套机制?什么时候该用哪个?这篇文章会从设计哲学、技术架构、使用场景三个维度,把这两个概念彻底讲清楚。一句话区分先给个简单的定位:MCP 解决"连接"问题:让 AI 能访问外部世界 Skill 解决"方法论"问题:教 AI 怎么做某类任务用 Anthropic 官方的说法:"MCP connects Claude to external services and data sources. Skills provide procedural knowledge—instructions for how to complete specific tasks or workflows."打个比方:MCP 是 AI 的"手"(能触碰外部世界),Skill 是 AI 的"技能书"(知道怎么做某件事)。你需要两者配合:MCP 让 AI 能连接数据库,Skill 教 AI 怎么分析查询结果。MCP:AI 应用的 USB-C 接口MCP 是什么MCP(Model Context Protocol)是 Anthropic 在 2024 年 11 月发布的开源协议,用于标准化 AI 应用与外部系统的交互方式。官方的比喻是"AI 应用的 USB-C 接口"——就像 USB-C 提供了一种通用的方式连接各种设备,MCP 提供了一种通用的方式连接各种工具和数据源。关键点:MCP 不是 Claude 专属的。它是一个开放协议,理论上任何 AI 应用都可以实现。截至 2025 年初,已经被多个平台采用:Anthropic: Claude Desktop、Claude CodeOpenAI: ChatGPT、Agents SDK、Responses APIGoogle: Gemini SDKMicrosoft: Azure AI Services开发工具: Zed、Replit、Codeium、Sourcegraph到 2025 年 2 月,已经有超过 1000 个开源 MCP 连接器。MCP 的架构MCP 基于 JSON-RPC 2.0 协议,采用客户端-主机-服务器(Client-Host-Server)架构: ┌─────────────────────────────────────────────────────────┐ │ Host │ │ (Claude Desktop / Cursor) │ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ Client │ │ Client │ │ Client │ │ │ │ (GitHub) │ │ (Postgres) │ │ (Sentry) │ │ │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ └─────────┼────────────────┼────────────────┼─────────────┘ │ │ │ ▼ ▼ ▼ ┌───────────┐ ┌───────────┐ ┌───────────┐ │MCP Server │ │MCP Server │ │MCP Server │ │ (GitHub) │ │(Postgres) │ │ (Sentry) │ └───────────┘ └───────────┘ └───────────┘ Host:用户直接交互的应用(Claude Desktop、Cursor、Windsurf)Client:Host 应用中管理与特定 Server 通信的组件Server:连接外部系统的桥梁(数据库、API、本地文件等)MCP 的三个核心原语MCP 定义了三种 Server 可以暴露的原语:1. Tools(工具)—— 模型控制可执行的函数,AI 可以调用来执行操作。 { "name": "query_database", "description": "Execute SQL query on the database", "parameters": { "type": "object", "properties": { "sql": { "type": "string" } } } } AI 决定什么时候调用这些工具。比如用户问"这个月的收入是多少",AI 判断需要查数据库,就会调用 query_database 工具。2. Resources(资源)—— 应用控制数据源,为 AI 提供上下文信息。 { "uri": "file:///Users/project/README.md", "name": "Project README", "mimeType": "text/markdown" } 资源由应用控制何时加载。用户可以通过 @ 引用资源,类似于引用文件。3. Prompts(提示)—— 用户控制预定义的提示模板,帮助结构化与 AI 的交互。 { "name": "code_review", "description": "Review code for bugs and security issues", "arguments": [ { "name": "code", "required": true } ] } 用户显式触发这些提示,类似于 Slash Command。机-会技术大厂,前端-后端-测试,全国均有机-会,感兴趣可以试试。待遇和稳定性都还不错~MCP 与 Function Calling 的关系很多人会问:MCP 和 OpenAI 的 Function Calling、Anthropic 的 Tool Use 有什么区别?Function Calling 是 LLM 的能力——把自然语言转换成结构化的函数调用请求。LLM 本身不执行函数,只是告诉你"应该调用什么函数,参数是什么"。MCP 是在 Function Calling 之上的协议层——它标准化了"函数在哪里、怎么调用、怎么发现"。两者的关系: 用户输入 → LLM (Function Calling) → "需要调用 query_database" ↓ MCP Protocol ↓ MCP Server 执行 ↓ 返回结果给 LLM Function Calling 解决"决定做什么",MCP 解决"怎么做到"。MCP 的传输方式MCP 支持两种主要的传输方式:传输方式适用场景说明Stdio本地进程Server 在本地机器运行,适合需要系统级访问的工具HTTP/SSE远程服务Server 在远程运行,适合云服务(GitHub、Sentry、Notion)大部分云服务用 HTTP,本地脚本和自定义工具用 Stdio。MCP 的代价MCP 不是免费的午餐,它有明显的成本:1. Token 消耗大每个 MCP Server 都会占用上下文空间。每次对话开始,MCP Client 需要告诉 LLM "你有这些工具可用",这些工具定义会消耗大量 Token。连接多个 MCP Server 后,光是工具定义可能就占用了上下文窗口的很大一部分。社区观察到:"We're seeing a lot of MCP developers even at enterprise build MCP servers that expose way too much, consuming the entire context window and leading to hallucination."2. 需要维护连接MCP Server 是持久连接的外部进程。Server 挂了、网络断了、认证过期了,都会影响 AI 的能力。3. 安全风险Anthropic 官方警告:"Use third party MCP servers at your own risk - Anthropic has not verified the correctness or security of all these servers."特别是能获取外部内容的 MCP Server(比如网页抓取),可能带来 prompt injection 风险。MCP 的价值尽管有这些代价,MCP 的价值在于标准化和可复用性:一次实现,到处使用:同一个 GitHub MCP Server 可以在 Claude Desktop、Cursor、Windsurf 中使用动态发现:AI 可以在运行时发现有哪些工具可用,而不是写死在代码里供应商无关:不依赖特定的 LLM 提供商Skill:上下文工程的渐进式公开Skill 是什么Skill(全称 Agent Skill)是 Anthropic 在 2025 年 10 月发布的特性。官方定义:"Skills are organized folders of instructions, scripts, and resources that agents can discover and load dynamically to perform better at specific tasks."翻译一下:Skill 是一个文件夹,里面放着指令、脚本和资源,AI 会根据需要自动发现和加载。Skill 在架构层级上和 MCP 不同。用 Anthropic 的话说:"Skills are at the prompt/knowledge layer, whereas MCP is at the integration layer."Skill 是"提示/知识层",MCP 是"集成层"。两者解决不同层面的问题。Skill 的核心设计:渐进式信息公开Skill 最精妙的设计是渐进式信息公开(Progressive Disclosure)。这是 Anthropic 在上下文工程(Context Engineering)领域的重要实践。官方的比喻:"Like a well-organized manual that starts with a table of contents, then specific chapters, and finally a detailed appendix."就像一本组织良好的手册:先看目录,再翻到相关章节,最后查阅附录。Skill 分三层加载:Claude 判断相关需要更多信息第 3+ 层:支持文件(深度按需)reference.mdscripts/helper.pytemplates/...第 2 层:核心指令(按需加载)SKILL.md 完整内容通常 < 5k tokens第 1 层:元数据(始终加载)Skill 名称 + 描述约 100 tokens这个设计的好处是什么?传统方式(比如 MCP)在会话开始时就把所有信息加载到上下文。如果你有 10 个 MCP Server,每个暴露 5 个工具,那就是 50 个工具定义——可能消耗数千甚至上万 Token。Skill 的渐进式加载让你可以有几十个 Skill,但同时只加载一两个。上下文效率大幅提升。用官方的话说:"This means that the amount of context that can be bundled into a skill is effectively unbounded."理论上,单个 Skill 可以包含无限量的知识——因为只有需要的部分才会被加载。上下文工程:Skill 背后的思想Skill 是 Anthropic "上下文工程"(Context Engineering)理念的产物。官方对此有专门的阐述:"At Anthropic, we view context engineering as the natural progression of prompt engineering. Prompt engineering refers to methods for writing and organizing LLM instructions for optimal outcomes. Context engineering refers to the set of strategies for curating and maintaining the optimal set of tokens (information) during LLM inference."简单说:Prompt Engineering:怎么写好提示词Context Engineering:怎么管理上下文窗口里的信息LLM 的上下文窗口是有限的(即使是 200k 窗口,也会被大量信息撑爆)。Context Engineering 的核心问题是:在有限的窗口里,放什么信息能让 AI 表现最好?Skill 的渐进式加载就是 Context Engineering 的具体实践——只加载当前任务需要的信息,让每一个 Token 都发挥最大价值。Skill 的触发机制Skill 是自动触发的,这是它和 Slash Command 的关键区别。工作流程:扫描阶段:Claude 读取所有 Skill 的元数据(名称 + 描述)匹配阶段:将用户请求与 Skill 描述进行语义匹配加载阶段:如果匹配成功,加载完整的 SKILL.md执行阶段:按照 Skill 里的指令执行任务,按需加载支持文件用户不需要显式调用。比如你有一个 code-review Skill,用户说"帮我 review 这段代码",Claude 会自动匹配并加载。Skill 的本质是什么?技术上,Skill 是一个元工具(Meta-tool):"The Skill tool is a meta-tool that manages all skills. Traditional tools like Read, Bash, or Write execute discrete actions and return immediate results. Skills operate differently—rather than performing actions directly, they inject specialized instructions into the conversation history and dynamically modify Claude's execution environment."Skill 不是执行具体动作,而是注入指令到对话历史中,动态修改 Claude 的执行环境。Skill 的文件结构一个标准的 Skill 长这样: my-skill/ ├── SKILL.md # 必需:元数据 + 主要指令 ├── reference.md # 可选:详细参考文档 ├── examples.md # 可选:使用示例 ├── scripts/ │ └── helper.py # 可选:可执行脚本 └── templates/ └── template.txt # 可选:模板文件 SKILL.md 是核心,必须包含 YAML 格式的元数据: --- name: code-review description: > Review code for bugs, security issues, and style violations. Use when asked to review code, check for bugs, or audit PRs. --- #CodeReviewSkill## Instructions When reviewing code, follow these steps: 1. First check for security vulnerabilities... 2. Then check for performance issues... 3. Finally check for code style... 关键字段:name:Skill 的唯一标识,小写字母 + 数字 + 连字符,最多 64 字符description:描述做什么、什么时候用,最多 1024 字符description 的质量直接决定 Skill 能不能被正确触发。Skill 的安全考虑Skill 有一个潜在的安全问题:Prompt Injection。研究人员发现:"Although Agent Skills can be a very useful tool, they are fundamentally insecure since they enable trivially simple prompt injections. Researchers demonstrated how to hide malicious instructions in long Agent Skill files and referenced scripts to exfiltrate sensitive data."因为 Skill 本质上是注入指令,恶意的 Skill 可以在长文件中隐藏恶意指令,窃取敏感数据。应对措施:只使用可信来源的 Skill审查 Skill 中的脚本使用 allowed-tools 限制 Skill 的能力范围 --- name: safe-file-reader description: Read and analyze files without making changes allowed-tools: Read, Grep, Glob # 只允许读操作 --- Skill 的平台支持Agent Skills 目前支持:Claude.ai(Pro、Max、Team、Enterprise)Claude CodeClaude Agent SDKClaude Developer Platform需要注意的是,Skill 目前是 Anthropic 生态专属的,不像 MCP 是跨平台的开放协议。MCP vs Skill:架构层级对比现在我们可以从架构层级来理解两者的区别: ┌─────────────────────────────────────────────────────────┐ │ 用户请求 │ └────────────────────────┬────────────────────────────────┘ ▼ ┌─────────────────────────────────────────────────────────┐ │ 提示/知识层 (Skill) │ │ │ │ Skill 注入专业知识和工作流程 │ │ "怎么做某类任务" │ └────────────────────────┬────────────────────────────────┘ ▼ ┌─────────────────────────────────────────────────────────┐ │ LLM 推理层 │ │ │ │ Claude / GPT / Gemini 等 │ │ 理解请求,决定需要什么工具 │ └────────────────────────┬────────────────────────────────┘ ▼ ┌─────────────────────────────────────────────────────────┐ │ 集成层 (MCP) │ │ │ │ MCP 连接外部系统 │ │ "能访问什么工具和数据" │ └────────────────────────┬────────────────────────────────┘ ▼ ┌─────────────────────────────────────────────────────────┐ │ 外部世界 │ │ │ │ 数据库、API、文件系统、第三方服务 │ └─────────────────────────────────────────────────────────┘ Skill 在上层(知识层),MCP 在下层(集成层)。两者不是替代关系,而是互补关系。你可以:用 MCP 连接 GitHub用 Skill 教 AI 如何按照团队规范做 Code Review详细对比表维度MCPSkill核心作用连接外部系统编码专业知识和方法论架构层级集成层提示/知识层协议基础JSON-RPC 2.0文件系统 + Markdown跨平台是(开放协议,多平台支持)否(目前 Anthropic 生态专属)触发方式持久连接,随时可用基于描述的语义匹配,自动触发Token 消耗高(工具定义持久占用上下文)低(渐进式加载)外部访问可以直接访问外部系统不能直接访问,需要配合 MCP 或内置工具复杂度高(需要理解协议、运行 Server)低(写 Markdown 就行)可复用性高(标准化协议,跨应用复用)中(文件夹,可以 Git 共享)动态发现是(运行时发现可用工具)是(运行时发现可用 Skill)安全考虑外部内容带来 prompt injection 风险Skill 文件本身可能包含恶意指令什么时候用 MCP,什么时候用 Skill用 MCP 的场景需要访问外部数据:数据库查询、API 调用、文件系统访问需要操作外部系统:创建 GitHub Issue、发送 Slack 消息、执行 SQL需要实时信息:监控系统状态、查看日志、搜索引擎结果需要跨平台复用:同一个工具在 Claude Desktop、Cursor、其他支持 MCP 的应用中使用用 Skill 的场景重复性的工作流程:代码审查、文档生成、数据分析公司内部规范:代码风格、提交规范、文档格式需要多步骤的复杂任务:需要详细指导的专业任务团队共享的最佳实践:标准化的操作流程Token 敏感场景:需要大量知识但不想一直占用上下文结合使用很多时候,两者是配合使用的: 用户:"Review PR #456 并按照团队规范给出建议" 1. MCP (GitHub) 获取 PR 信息 ↓ 2. Skill (团队代码审查规范) 提供审查方法论 ↓ 3. Claude 按照 Skill 的指令分析代码 ↓ 4. MCP (GitHub) 提交评论 MCP 负责"能访问什么",Skill 负责"怎么做"。写好 Skill 的关键Skill 能不能被正确触发,90% 取决于 description 写得好不好。差的 description description: Helps with data 太宽泛,Claude 不知道什么时候该用。好的 description description: > Analyze Excel spreadsheets, generate pivot tables, and create charts. Use when working with Excel files (.xlsx), spreadsheets, or tabular data analysis. Triggers on: "analyze spreadsheet", "create pivot table", "Excel chart" 好的 description 应该包含:做什么:具体的能力描述什么时候用:明确的触发场景触发词:用户可能说的关键词最佳实践官方建议:保持专注:一个 Skill 做一件事,避免宽泛的跨域 SkillSKILL.md 控制在 500 行以内:太长的话拆分到支持文件测试触发行为:确认相关请求能触发,不相关请求不会误触发版本控制:记录 Skill 的变更历史关于 Slash Command文章标题是 MCP vs Skill,但很多人也会问到 Slash Command,简单说一下。Slash Command 是最简单的扩展方式——本质上是存储的提示词,用户输入 /命令名 时注入到对话中。Skill vs Slash Command 的关键区别是触发方式:Slash CommandSkill触发方式用户显式输入 /命令Claude 自动匹配用户控制完全控制何时触发无法控制,Claude 决定问自己一个问题:用户是否需要显式控制触发时机?需要 → Slash Command不需要,希望 AI 自动判断 → Skill总结MCP 和 Skill 是 AI Agent 扩展的两种不同哲学:MCPSkill哲学连接主义知识打包问的问题"AI 能访问什么?""AI 知道怎么做什么?"层级集成层知识层Token 策略预加载所有能力按需加载知识记住这句话:MCP connects AI to data; Skills teach AI what to do with that data.MCP 让 AI 能"碰到"数据,Skill 教 AI 怎么"处理"数据。它们不是替代关系,而是互补关系。一个成熟的 AI Agent 系统,两者都需要。参考资源MCP 官方资源Model Context Protocol 官网 - 协议规范、快速入门、Server 开发指南MCP Specification - 完整的协议规范文档Introducing the Model Context Protocol - Anthropic 发布 MCP 的官方博客MCP GitHub Organization - 官方 SDK、示例 Server、参考实现Awesome MCP Servers - 社区维护的 MCP Server 列表Skill 官方资源Claude Code Skills 文档 - Skills 的完整文档Building effective agents - Anthropic 关于 Agent 设计的研究博客Context Engineering Guide - 上下文工程官方指南,理解 Skill 设计哲学的关键跨平台采用OpenAI adds support for MCP - OpenAI 宣布支持 MCPGoogle Gemini MCP Support - Google 宣布 Gemini 支持 MCP延伸阅读Function Calling vs MCP - 理解两者区别Claude Code Documentation - Claude Code 完整文档Prompt Engineering Guide - 提示工程基础,Context Engineering 的前置知识如果你觉得这篇文章有帮助,欢迎关注我的 GitHub,下面是我的一些开源项目:Claude Code Skills(按需加载,意图自动识别,不浪费 token,介绍文章):code-review-skill - 代码审查技能,覆盖 React 19、Vue 3、TypeScript、Rust 等约 9000 行规则(详细介绍)5-whys-skill - 5 Whys 根因分析,说"找根因"自动激活first-principles-skill - 第一性原理思考,适合架构设计和技术选型全栈项目(适合学习现代技术栈):prompt-vault - Prompt 管理器,用的都是最新的技术栈,适合用来学习了解最新的前端全栈开发范式:Next.js 15 + React 19 + tRPC 11 + Supabase 全栈示例,clone 下来配个免费 Supabase 就能跑chat_edit - 双模式 AI 应用(聊天+富文本编辑),Vue 3.5 + TypeScript + Vite 5 + Quill 2.0 + IndexedDB——转载自:也无风雨也雾晴
别搞混了!MCP 和 Agent Skill 到底有什么区别?
开源硬件平台
低功耗蓝牙(BLE)技术凭借其低功耗、低成本、易部署等优势,成为物联网设备的主流通信协议。MF9006作为一款经典的能量收集PMIC芯片,能够从微弱能源中高效提取能量,为BLE设备提供持续供电。本文将探讨BLE设备与MF9006的能量协同设计。 #蓝牙模块# BLE设备的功耗特征 BLE设备的工作模式决定了其能量需求特征。在广播模式下,设备定期发送广播信号,平均电流0.01-0.1mA;在连接模式下,设备与主机建立连接,平均电流0.1-1mA;在休眠模式下,电流低于1μA。数据传输时峰值电流可达10-20mA,但持续时间极短。功耗优化策略:通过延长广播间隔、缩短连接时间、优化数据传输协议,可以进一步降低平均功耗。例如,将广播间隔从100ms延长到1s,功耗可降低90%。通过软件算法优化,可以进一步延长设备续航时间。MF9006的能量管理功能 MF9006是一款超低功耗的升压充电器,专为能量采集应用设计。芯片的boost效率超过90%。冷启动电压为400mV,启动功率约15µW,静态电流为580nA,在弱光环境下仍能稳定工作。MPPT功能:芯片内置可编程的最大功率点跟踪功能,通过采样光伏电池的开路电压,实时调整工作点,确保能量提取效率最大化。可通过管脚配置MPPT,可配置为70%、75%、85%或90%。保护功能:芯片内置电池欠压保护(UVLO)、过压保护(OVP)、过温保护(OTP)等,确保储能单元在安全范围内工作。系统协同设计 能量平衡计算:根据BLE设备的功耗特征和能量源的供给能力,进行能量平衡计算。假设BLE设备平均功耗为10μA,每天需要能量10μA×24h=240μAh。在1000lux光照下,光伏电池每天可产生0.1mA×8h=0.8mAh(按每天8小时有效光照计算),能量供给大于需求,系统可以稳定运行。储能容量配置:根据应用场景的功耗特征和光照条件,合理选择储能容量。对于资产追踪标签,建议配置10-50mAh的锂离子电池;对于电子价签,建议配置1-5mAh的超级电容。动态功率管理:根据能量状态调整负载工作模式。在能量充足时,可以增加数据传输频率;在能量不足时,进入深度休眠模式,降低功耗。通过软件算法优化,可以进一步延长设备续航时间。应用场景 资产追踪标签:在仓储物流、医疗设备管理等场景中,BLE资产标签通过MF9006实现免维护运行。设备从环境光中采集能量,无需电池更换,大幅降低运维成本。电子价签系统:零售行业的电子价签采用MF9006实现能量采集,通过商场灯光即可工作,支持实时变价、库存显示等功能。工业传感器网络:在工业监测、农业环境监测等场景中,无线传感器节点通过MF9006实现长期自供电运行,在桥梁健康监测、管道泄漏检测等场景中,传感器节点可实现5年以上免维护运行。
BLE设备与MF9006能量收集PMIC的协同设计
硬创社
ESP32-S2-MINI-2是一款紧凑的2.4 GHz Wi-Fi(802.11 b/g/n)模块,内置ESP32-S2 系列芯片(版本v1.0),搭载Xtensa单核32位LX7微控制器。该模块通过芯片叠封技术集成4MB flash,并支持额外叠封2MB PSRAM,提供多达37个GPIO接口以及丰富的周边外设,同时配备板载PCB天线或外部天线连接器,适用于各种物联网应用场景。 主要特性 CPU和片上系统内置ESP32-S2FH4或ESP32-S2FN4R2芯片,Xtensa单核32位 LX7微处理器,支持高达240MHz的时钟频率128KB ROM320KB SRAM16KB RTC SRAM4MB flash2MB PSRAM(仅ESP32-S2FN4R2 芯片) WiFi802.11b/g/n802.11n模式下数据速率高达150 Mbps帧聚合(TX/RX A-MPDU, RX A-MSDU)0.4µs保护间隔工作信道中心频率范围:2412~2484 MHz 其他特性高达37个GPIO40 MHz集成晶振ESP32-S2-MINI-2:板载PCB天线工作电压/供电电压:3.0~3.6V工作环境温度:–40~85°C 应用领域智能家居工业自动化医疗保健消费电子产品智慧农业POS 机服务机器人音频设备通用低功耗 IoT 传感器集线器通用低功耗 IoT 数据记录器摄像头视频流传输USB 设备语音识别图像识别Wi-Fi + 蓝牙网卡触摸和接近感应 封装图示 总之,ESP32-S2-MINI-2 以其高效的Wi-Fi连接、丰富的GPIO接口和灵活的内存配置,成为物联网开发者的理想选择,助力您的项目从概念到实现无缝推进。如果您在集成或应用过程中遇到任何疑问,欢迎随时联系!
ESP32-S2-MINI-2-N4—超低功耗、超高射频性能、超高稳定性与通用性
立创商城
狼黑工具 (WolfBlack Tool) 是一款专为 嘉立创EDA专业版 (Pro) 设计的强大插件集合。它旨在解决设计师在 PCB 与原理图设计中的痛点,提供了一系列批量处理、逆向工程、自动化辅助功能,让设计更高效,工具更顺手。 🛠️ 功能全览与演示 以下是插件包含的核心功能,点击链接可直接查看演示视频。 🎨 图像类 导入图片 (无损) 将 PNG/JPG/BMP 图片无损导入 PCB 图层。支持毫米/密尔单位切换,内置 DPI 换算,支持“鼠标跟随”放置。 演示视频 导入二维码 (矢量/图片) 生成标准或独特的“斜二维码”,支持图片模式或矢量模式(适合阻焊开窗),内置识别功能可从已有二维码读取内容。 演示视频 🧩 PCB 设计与布线类 生成物理网络 (逆向黑科技) 无原理图也能做 DRC! 基于几何接触算法(并查集),自动分析导线、过孔、焊盘的物理连接,反向生成网络表。比 AD 的同类功能快 30 倍。 演示视频 线条导线互转 打通“导线”与“多边形/线条”的壁垒。将 DXF 导入的图形一键转为具有电气属性的导线,或将导线炸开为普通线条。 演示视频 过孔焊盘互转 解决 EDA 无法对过孔设置特定覆铜规则的痛点。一键将过孔转为焊盘(或反之),利用焊盘的约束区域属性进行特殊设计。 演示视频 快速创建封装 所见即所得。在 PCB 画布上直接画好图形,一键生成对应的封装、符号和器件,无需在封装编辑器中繁琐操作。 演示视频 📋 数据管理与 BOM 类 批量替换器件 (改版神器) 通过 Excel 粘贴“位号”和“新 C 编号”,插件自动联网获取新器件属性(名称、厂家、封装等)并批量更新到 PCB,省去手动修改的繁琐。 演示视频 导入 BOM 从 Excel 复制 BOM 数据(支持多位号),一键批量更新 EDA 中的器件属性,适合后期统一整理物料信息。 演示视频 批量修改网络 通过 Excel 规则批量重命名或合并网络。例如将所有 NetR1_2 批量改为 SPI_MISO,自带查询引脚网络功能,复制到 Excel 修改后粘贴回来批量替换。 演示视频 丝印代码转换 一键将 104、01C (E96代码) 等简写转换为 100nF、10kΩ 等人类可读的数值,提升 BOM 规范性和维修便利性。 演示视频 🧹 检查与清理类 位号查重 无需原理图,直接扫描 PCB 中是否存在重复的位号(不区分大小写),并在日志中提供点击定位功能。 演示视频 清空多余属性 自动清理器件中“供应商”为空的冗余属性,保留关键信息,防止 BOM 表混乱。 演示视频 恢复 3D 模型 解决因批量替换属性导致 3D 模型丢失的问题。通过导入备份的网表文件,一键恢复器件的 3D 模型关联。 演示视频 🔄 原理图同步与逆向 放置导线 (逆向同步) 根据 PCB 的连接关系,自动在原理图引脚上绘制导线并标记网络,解决 PCB 改动后原理图未同步的问题。 演示视频 放置器件 (PCB转SCH) 逆向工程辅助。读取 PCB 或网表,自动在原理图画布重建元器件,并根据 C 编号或名称的匹配度分区域放置。 演示视频 📊 时间统计工具 工作时间统计 统计每天的设计时长,自动区分“工作”与“摸鱼”时间,生成可视化图表,数据本地存储。 演示视频 💡 核心技术亮点 狼黑工具不仅仅是简单的脚本,它包含多项硬核技术实现: 并查集 (Union-Find):用于“生成物理网络”,高效处理成千上万图元的连通性合并。 空间网格索引 (Spatial Hashing):将 PCB 划分为网格进行碰撞检测,避免暴力计算,提升处理速度。 几何算法:包含复杂多边形解析、Line/Rect/Round 混合碰撞检测、以及基于三角函数的图形旋转计算。 剪贴板智能解析:直接读取 Excel 复制的数据,自动识别 TSV 格式,支持单行多位号拆分。 源码级操作:部分功能直接通过解析源码,突破 API 限制。 云端同步:通过 C 编号自动调用 EDA 接口拉取云端器件的完整属性。 鼠标跟随:导入图片、二维码等对象时,实现流畅的鼠标吸附跟随效果。 异步并发:大量使用 async/await 和 Promise.all,防止界面卡顿。 可视化反馈:集成 ECharts 图表,以及在原理图上直接生成进度文本。 🚀 安装方式 方式一:从 扩展管理器 安装(推荐 V3 用户) 顶部菜单栏 ⇒ 高级 ⇒ 扩展管理器 搜索 “狼黑工具” 点击 安装 ⇒ 配置 ⇒ 勾选“显示在顶部菜单” 方式二:从文件导入(V2/V3 通用) 下载插件:GitHub 或 嘉立创EDA扩展广场 V2版本:设置 ⇒ 扩展 ⇒ 扩展管理器 ⇒ 导入扩展 V3版本:高级 ⇒ 扩展管理器 ⇒ 导入 ⇒ 配置 ⇒ 显示在顶部菜单 🔗 开源地址 本工具完全开源,欢迎 Star 或提交 Issue: 👉 GitHub: https://github.com/WOLF4096/easyeda_wolfblack_tool ⚠️ 注意事项与免责声明 兼容性提示 本工具基于 V2.2.43客户端 开发,大部分功能已适配 V3 版本。 重要提醒 务必备份:本工具涉及到底层源码与网表修改(尤其是创建封装、批量替换、导入BOM等功能),使用前请务必备份设计文件。 3D模型丢失:使用“批量替换器件”功能可能会导致原有的 3D 模型关联丢失,可使用“恢复 3D 模型”功能进行修复。 API 缺陷规避:部分功能(如快速创建封装)为了规避 EDA 原生 API 的 Bug,采用了特殊的创建-删除-再放置策略,请留意插件的操作提示。 免责声明 使用前请务必备份设计文件 建议在测试环境中验证功能后再用于正式项目 作者不对因使用本工具造成的任何数据丢失或设计错误负责 让设计更高效,让工具更顺手。 🐺
狼黑工具:嘉立创EDA专业版的效率神器
嘉立创EDA
前言在前端开发中,我们经常会遇到接口返回的文本内容过长,无法完全显示的问题。为了处理这一问题,通常会设置固定的宽度并使用省略号样式(text-overflow: ellipsis)来隐藏超出的文本。然而,有时产品需求还希望用户能够通过悬停查看完整内容,这时就需要引入 Tooltip 进行展示。(没被省略的时候不要显示Tooltip) // tailwind的样式单行省略 .line-clamp-1 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; } // 自行设置的css样式 single-line { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } 为了解决这个问题,我们实现了一个自定义 Hook,该 Hook 会监测文本元素是否因宽度限制而被省略。一旦检测到文本内容被省略,Hook 会自动为该元素添加 Tooltip,确保用户可以方便地查看完整信息。代码实现use-ellipsis.ts import { useEffect, useRef, useState } from 'react'; type Options = { lines?: number; // 支持多行 }; export function useEllipsis<T extends HTMLElement>({ lines = 1, }: Options = {}) { const ref = useRef<T>(null); const [isEllipsis, setIsEllipsis] = useState(false); useEffect(() => { const el = ref.current; if (!el) return; const check = () => { if (lines === 1) { setIsEllipsis(el.scrollWidth > el.clientWidth); } else { setIsEllipsis(el.scrollHeight > el.clientHeight); } }; check(); window.addEventListener('resize', check); return () => { window.removeEventListener('resize', check); }; }, [lines]); return { ref, isEllipsis }; } ellipsis-tooltip.tsx import { Tooltip } from '@arco-design/web-react'; // 或 antd / 你自己的库 import { useEllipsis } from '@/hooks/use-ellipsis.ts'; import { cn } from '@/lib/utils.ts'; type EllipsisTooltipProps = { text: string; className?: string; onClick?: () => void; lines?: number; }; export const EllipsisTooltip: React.FC<EllipsisTooltipProps> = ({ text, className, onClick, lines = 1, }) => { const { ref, isEllipsis } = useEllipsis<HTMLDivElement>({ lines }); const lineClass = lines === 1 ? 'truncate whitespace-nowrap' : `line-clamp-${lines}`; const content = ( <div ref={ref} className={cn(lineClass, className)} onClick={onClick}> {text} </div> ); return isEllipsis ? <Tooltip content={text}>{content}</Tooltip> : content; }; 机会技术大厂,前端-后端-测试,全国各地等均有机-会,感兴趣可以试试~使用示例与效果 export default function TestPage() { const mockText = '很长很长很长很长很长'; const mockText2 = '简短的'; return ( <> <EllipsisTooltip className='w-28' text={mockText} /> <EllipsisTooltip text={mockText2} /> </> ); } ——转载自:代码小学僧
前端技巧:检测到省略号文本自动显示 Tooltip
开源硬件平台
简介 在嘉立创 EDA 专业版中,过孔(Via)和焊盘(Pad)虽然在物理上非常相似,但它们在规则约束中的地位完全不同。 本插件解决 无法针对过孔设置特定层的覆铜连接规则 这一痛点。通过一键将过孔转换为多层焊盘,利用焊盘更丰富的约束区域属性,从而解决 EDA 不支持过孔规则的不足。 使用方法 选择对象:在 PCB 画布中选中需要转换的 过孔 或 多层圆形焊盘 。 执行转换:在菜单栏选择对应选项 焊盘 ⇒ 过孔:强制将选中的多层焊盘转换为过孔。 过孔 ⇒ 焊盘:强制将选中的过孔转换为多层焊盘。 焊盘 ⇄ 过孔:自动识别选中的是焊盘还是过孔,并进行反向转换。 8696993821974626304 解决了哪些痛点 过孔无法单独设置无连接:在多层板设计中,有时需要让某片 GND 过孔在特定的内层 不连接覆铜 ,但 EDA 的覆铜管理器不支持对过孔的设置。转换为焊盘后,可以利用约束区域轻松实现指定区域无连接。 过孔无法设置特殊的十字样式:转换为焊盘后,可以使用约束区域对指定范围的焊盘设置十字连接规则。 手动替换效率极低:手动放置一个尺寸完全一样的焊盘去替换过孔,需要反复测量孔径、外径,并重新分配网络。本工具一键完成,毫秒级替换。 技术要点 Pad 转 Via:对于非圆形的焊盘(如长圆形、槽孔),算法自动取宽度和高度中的最小值作为过孔直径,确保生成的过孔不会超出原焊盘范围。 Via 转 Pad:精准保留通孔属性,生成的焊盘默认为“多层”且“金属化”,并且保留了阻焊设置(v3版本),完全模拟过孔的电气特性。 使用API接口 API接口 描述 eda.pcb_SelectControl.getAllSelectedPrimitives() 获取当前用户选中的所有 PCB 图元。 eda.sys_Environment.getEditorCurrentVersion() 检测 EDA 客户端版本号。 eda.pcb_PrimitiveVia.create(...) 在指定坐标创建新的过孔。 eda.pcb_PrimitivePad.create(...) 在指定坐标创建新的焊盘。 eda.pcb_PrimitivePad.delete(id) 转换成功后删除原始图元。 适配bug 针对 v2.2.43 版本:适配了API获取 焊盘内径 需 x10,设置 焊盘内径 需 /2 的兼容性问题。 针对 v3.2.69 版本:适配了API获取 过孔坐标 外径 阻焊扩展 时数值偏小需 x10 的兼容性问题。 常见问题 v2.2.43 版本不支持阻焊扩展继承(API设置了不生效) v3.2.69 转换后阻焊扩展显示 NaN ,已修复,将插件更新至 v1.12.17 其他版本 EDA 未适配,可能会出现异常情况 适用EDA版本 v2.2.43 v3.2.69 本工具基于 v2.2.43 客户端开发,已适配 v3 版本 #规则约束# #过孔自定义# #PCB设计技巧# #自动化脚本# #嘉立创EDA# #扩展API# #扩展插件# #狼黑工具#
嘉立创EDA扩展插件 - 焊盘过孔互转工具
嘉立创EDA
简介 这是一个为嘉立创EDA专业版开发的自动化工具。它的核心功能是 根据PCB数据或外部网表文件,自动在原理图器件引脚上绘制带有网络标签的导线。 该工具主要解决在PCB中修改了网络关系后,需要反向同步到原理图,或者根据网表批量为引脚添加网络标签的繁琐工作。脚本内置了性能监控模块,能够统计绘制数量与耗时,并支持根据引脚方向自动调整导线绘制方向。 使用方法 脚本支持两种导入方式:从PCB导入 和 从网表文件导入。 从PCB导入: 在原理图中选中一个或多个器件。(注意:一个窗口里只能有PCB和原理图页面) 在菜单栏选择 放置导线 ⇒ 从PCB,脚本会自动切换到PCB界面获取对应选中器件的网络信息。 自动切换回原理图页面,对比网络差异。 如果发现原理图引脚无网络但PCB引脚有网络,则自动在原理图引脚处绘制导线并标记网络名。 从网表文件导入: 在原理图中选中需要处理的器件。 在菜单栏选择 放置导线 ⇒ 从网表文件,选择 .enet 格式的网表文件。 脚本读取文件内容,匹配选中器件的UID,自动为缺省网络的引脚补充导线和网络名。 8697000026851397632 解决了哪些痛点 PCB更新原理图:解决了在PCB中已经有了网络连接,但原理图中对应引脚还未画线和标记网络的同步问题。 手动布线繁琐:针对引脚密集的IC,手动一根根画线并打上网络标签效率极低,本工具可一键完成。 网表一致性检查:辅助检查原理图与PCB的网络差异,确保连接关系一致。 技术要点 智能方向识别:代码通过 getMultiplePinPositions 获取引脚旋转角度,根据引脚的 0、90、180、270 度旋转情况,自动计算导线绘制坐标(drawSingleWire),确保导线始终向外引出。 批量处理优化: 支持同时处理多个选中的器件。 使用 getMultiplePinPositions 批量获取图元引脚信息,减少API调用次数,提升执行效率。 针对导入过程做了防抖延迟处理,保证跨文档操作(SCH <-> PCB)的稳定性。 异常处理:具备完善的 try-catch 机制,能够捕获如“未选中器件”、“未找到PCB界面”或“引脚位置缺失”等错误,并通过日志和消息提示反馈。 性能监控:内置 PerformanceMonitor 类,记录开始时间、结束时间,计算总耗时及单条导线平均耗时,并在执行结束后在日志输出性能统计报告。 使用API接口 API接口 描述 eda.sys_Message.showToastMessage 消息吐司提示,用于用户交互反馈。 eda.sch_SelectControl.getSelectedPrimitives 获取原理图中当前选中的图元(器件)数据。 eda.pcb_SelectControl.getAllSelectedPrimitives 获取PCB中当前选中的图元数据,用于跨文档同步。 eda.sch_Netlist.getNetlist 获取当前原理图的网表数据,用于比对网络差异。 eda.dmt_EditorControl.getSplitScreenTree 获取分屏树结构,用于查找PCB或原理图文档的Tab ID。 eda.dmt_EditorControl.activateDocument 激活指定的文档标签页,实现原理图与PCB界面的自动切换。 eda.sch_PrimitiveComponent.getAllPinsByPrimitiveId 根据图元ID获取器件的所有引脚详细信息(坐标、旋转角度等)。 eda.sch_PrimitiveWire.create 在指定坐标创建导线,这是核心绘制功能的实现接口。 eda.sys_FileSystem.openReadFileDialog 打开文件选择对话框,用于读取外部网表文件。 常见问题 原理图符号和PCB元件的唯一ID和位号必须一一对应 必须合并全部窗口,且只有一个PCB窗口 如果有多页原理图,自动切换时如果没有切换回当前页,有500ms的时间可以手动点击原理图标签 适用EDA版本 v2.2.43 v3.2.69 本工具基于 v2.2.43 客户端开发,已适配 v3 版本 #嘉立创EDA# #扩展API# #扩展插件# #狼黑工具# #自动化工具# #原理图同步# #引脚扇出#
嘉立创EDA扩展插件 - 自动放置导线工具(逆向神器)
嘉立创EDA
简介 本插件是一个强大的 逆向工程辅助工具,它能够读取现有的 PCB 文档或导入的网表文件,自动在原理图画布上重建元器件。 它不仅仅是简单的放置,还内置了智能匹配算法:优先匹配立创商城编号(C号),其次匹配元器件名称,并自动将匹配结果分区域放置(精确匹配 vs 模糊匹配),极大降低了人工复原原理图的工作量。 使用方法 准备工作:确保一个板子内包含空原理图和待重建的PCB,窗口里只保留原理图和PCB的标签页。 选择模式:在菜单栏选择对应的模式 PCB 模式:直接从当前打开的 PCB 文档获取数据(需要同时打开 PCB 标签页)。 NET 模式:弹出文件选择框,选择外部的网表文件导入。 自动执行: 脚本会自动切换标签页获取数据。 运行过程中屏幕上会出现进度提示文本,不要切换视图,以免中断放置过程。 结果查看:执行完成后,元器件会按置信度分布在画布的四个象限: 第一象限 (右上):C编号精确匹配的器件(最可靠)。 第二象限 (左上):名称精确匹配的器件。 第三象限 (左下):名称模糊匹配的器件(需要人工仔细核对)。 统计信息:画布左侧会生成详细的运行报告(耗时、成功率等)。 建议全部指定 C编号 ,模糊搜索其实并不准 8696999622480171008 解决了哪些痛点 工程恢复:解决了因原理图丢失、损坏,仅存 PCB 文件时的工程重建难题。 整理困难:自动将“确定的元件”和“存疑的元件”分区域放置,便于设计师快速通过,集中精力处理存疑部分。 人工匹配繁琐:通常逆向时需要一个一个去库里搜元件,本工具通过 API 批量自动搜索并利用缓存加速,效率提升百倍。 技术要点 多级匹配策略:采用 C编号(LCSC ID) -> DeviceName精确 -> Name精确 -> DeviceName模糊 -> Name模糊 的降级匹配逻辑,确保尽可能找到对应的库文件。但还是建议全部使用C编号,避免出错。 高性能缓存机制:使用 Map 结构缓存已查询过的元器件 UUID。对于重复使用的电阻电容,只需查询一次 API,后续直接命中缓存,显著提升速度。 并发放置:在放置阶段使用 Promise.all 并行处理多个元器件的创建,比串行放置更流畅。 可视化交互:直接利用原理图的 Text 图元在画布上实时显示进度条、统计报表和区域指示,无需复杂的 UI 插件支持。 跨文档操作:脚本演示了如何通过 dmt_EditorControl 在 PCB 和 原理图 标签页之间自动切换以获取数据。 使用API接口 API接口 描述 eda.pcb_Net.getNetlist('JLCEDA') 获取 PCB 的网表数据,作为逆向的源数据。 eda.sys_FileSystem.openReadFileDialog() 打开文件选择框,读取外部网表文件。 eda.lib_Device.getByLcscIds(...) 根据立创商城编号(Cxxxxx)精确查找元器件库 UUID。 eda.lib_Device.search(...) 根据名称搜索元器件库,支持模糊查找。 eda.sch_PrimitiveComponent.create(...) 在原理图中放置库元件。 eda.dmt_EditorControl.activateDocument(...) 激活指定的文档标签页(用于在 PCB 和 SCH 间切换)。 eda.sch_PrimitiveText.create/modify 在画布上创建和更新进度提示文本。 常见问题 必须打开一个板子,包含原理图和PCB界面 必须合并全部窗口,不能使用分屏,否则无法经行获取数据 建议手动指定C标签,模糊搜索其实并不准,可以导出BOM在Excel里匹配完成后,再使用导入BOM工具导入 适用EDA版本 v2.2.43 v3.2.69 本工具基于 v2.2.43 客户端开发,已适配 v3 版本 #逆向工程# #原理图重建# #PCB转原理图# #自动化脚本# #嘉立创EDA# #扩展API# #扩展插件# #狼黑工具#
嘉立创EDA扩展插件 - PCB/网表 转原理图工具 (逆向神器)
嘉立创EDA
简介 通常我们的工作流是从 EDA 导出 BOM(物料清单)。但在实际工程中,经常存在“逆向同步”的需求:例如采购部门在 Excel 中确认了具体的立创商城编号(C号)或更换了制造商,或者工程师在外部整理好了规范的器件命名。如果此时要手动一个个去 EDA 里修改属性,效率极低且容易出错。 本插件实现了 从 Excel 复制 BOM 数据并批量写入 EDA 的功能。支持在原理图或 PCB 中运行,通过剪贴板一键粘贴 Excel 数据,自动匹配位号并更新器件的名称、供应商编号、制造商等关键信息。 使用方法 准备数据:在 Excel 中整理好数据,列顺序必须固定为: 1. 位号 (如 R1,R2,R3) 2. 名称 (如 10K) 3. 立创编号 (如 C12345) 4. 制造商编号 (料号) 5. 制造商名称 (品牌) 注意:无需表头,直接复制数据行即可。 打开插件:在原理图或 PCB 界面运行本工具,会自动读取当前文档的器件列表。 粘贴数据:复制 Excel 中的内容,点击插件界面右上角的 “粘贴” 按钮。 预览变更: 插件会自动根据“位号”匹配器件。 有变化的属性会以红色文字高亮显示(格式:原始值:xxx -> 修改为:yyy)。 执行导入:勾选需要更新的条目(可全选),点击 “导入” 按钮。插件会将新属性写入 EDA 文档。 8696997515751223296 解决了哪些痛点 器件选型同步:在设计初期只放了通用电阻,后期在 Excel 里批量选好了具体的立创 C 号,使用本工具可一键刷入工程,无需逐个搜索属性。 BOM 整理回溯:在生产前对 BOM 进行了标准化整理(如规范命名、统一厂家),需要将这些修正同步回源文件,保证设计源头的一致性。 批量属性修改:利用 Excel 强大的公式和批量编辑功能处理好属性后,直接“粘贴”回 EDA,比在 EDA 属性面板中操作快得多。 跨环境支持:无论是原理图还是 PCB,只要有网表数据即可操作。 技术要点 剪贴板智能解析:使用 navigator.clipboard API 读取系统剪贴板,自动识别 Excel 复制过来的 TSV(制表符分隔)或 CSV 格式。 多位号匹配算法:支持单行包含多个位号(如 Excel 第一列写着 R1,R2,R5),插件会自动拆分并分别匹配对应的器件。 差异对比可视化:在前端直接对比新旧数据,只高亮显示有变更的字段,让用户在导入前对修改内容一目了然。 智能填充:当识别到“立创编号”以 C 开头时,会自动将属性 Supplier 设置为 LCSC 数据安全:内置了唯一 ID (Unique ID) 的查重和空值检测机制,防止因底层数据异常导致网表错乱。 使用API接口 API接口 描述 eda.pcb_Net.getNetlist('JLCEDA') 获取 PCB 当前网表数据。 eda.sch_Netlist.getNetlist('JLCEDA') 获取原理图当前网表数据。 navigator.clipboard.readText() 读取用户剪贴板中的 Excel 数据。 eda.pcb_Net.setNetlist(...) 将更新后的属性数据写回 PCB。 eda.sch_Netlist.setNetlist(...) 将更新后的属性数据写回原理图。 适用EDA版本 v2.2.43 v3.2.69(待官方修复网表bug后可使用) 本工具基于 v2.2.43 客户端开发,已适配 v3 版本 #BOM管理# #批量修改# #嘉立创EDA# #扩展API# #扩展插件# #狼黑工具#
嘉立创EDA扩展插件 - BOM导入工具
嘉立创EDA
简介 你是否好奇自己完成一个 PCB 项目究竟花了多少时间?是否想知道自己每天有多少时间在全神贯注设计,又有多少时间在“摸鱼”? 本插件是一个基于行为分析的工时统计系统。它包含一个后台运行的记录脚本和一个基于 ECharts 的可视化仪表盘。插件通过监听鼠标在 PCB 和原理图编辑器中的活动,自动区分有效工作时间和闲置(摸鱼)时间,并将数据持久化存储在本地。用户可以通过仪表盘查看每日趋势、项目耗时排行以及详细到每 15 分钟的时间分布。 使用方法 安装扩展插件后,打开EDA软件自动运行 脚本每 2 秒检测一次鼠标活动。 若鼠标在 PCB 或原理图画布上移动,计为工作时间。 若超过 20 秒无操作,计为闲置(摸鱼)时间。 数据每 60 秒自动保存一次到本地存储。 查看报表: 在菜单栏打开 工作时间统计 总趋势:查看近 7 天或 30 天的工作/摸鱼时长对比。 详情分析:点击曲线图的某一天,下方会显示当天的 24 小时时间轴,精确显示哪个时间段在工作。 排行榜:查看所有经手项目的累计耗时排名。 消息提醒:在“消息提醒”页签,可以设置规则(例如:“今日工作满 60 分钟提醒休息”),插件会通过消息吐司提示。 8696875605805658112 解决了哪些痛点 项目管理混乱:同时进行多个项目时,不知道时间都去哪了。排行榜功能帮你理清每个项目的实际投入成本。 健康管理:长时间沉浸式画板容易忘记休息。内置的提醒功能基于实际工作时长触发,比简单的定时闹钟更人性化(摸鱼时间不计入疲劳累积)。 多窗口数据冲突:嘉立创 EDA 允许同时打开多个工程窗口。本插件实现了多窗口并发锁机制,确保多个窗口同时记录数据时不会互相叠加、覆盖或丢失。 技术要点 去中心化存储策略:不依赖外部数据库,利用 sys_Storage 将数据分散存储为按日期的键值对 (STATS_YYYY_MM_DD),既保证了读取速度,又方便进行长周期的数据回溯。 防冲突算法:在写入数据时,采用“读取-计算剩余槽位-合并写入”的逻辑,并配合简单的并发锁,解决了多开 EDA 客户端时的数据竞争问题。 防挂机干扰:引入 SESSION_START_TIME 校验,防止电脑休眠或后台挂机苏醒后,脚本错误地回溯填充休眠期间的时间,确保数据纯净。 可视化图表:前端集成了 ECharts 库,实现了暗色系的高级仪表盘,支持交互式点击(Drill-down),从月度视图下钻到小时视图。 时间切片算法:将全天划分为 96 个 15 分钟的时间片(Slot),每个时间片独立记录各工程的 Work/Idle 占比,实现了极高的时间分辨率。 使用API接口 API接口 描述 eda.sys_Storage.getExtensionUserConfig(key) 读取持久化的统计数据和用户配置。 eda.sys_Storage.setExtensionUserConfig(key, val) 将计算后的工时数据写回存储。 eda.dmt_Project.getCurrentProjectInfo() 获取当前激活工程的 UUID 和名称,用于归类统计数据。 eda.pcb_SelectControl.getCurrentMousePosition() 获取 PCB 画布鼠标位置,用于判定用户是否活跃。 eda.sch_SelectControl.getCurrentMousePosition() 获取原理图画布鼠标位置,用于判定用户是否活跃。 eda.sys_Message.showToastMessage(...) 触发工时达标后的提醒弹窗。 适用EDA版本 v2.2.43 API缺陷,仅支持PCB页面检测 v3.2.69 完全支持 本工具基于 v2.2.43 客户端开发,但对 v3 版本支持更好 #工时统计# #ECharts可视化# #行为分析# #嘉立创EDA# #扩展API# #扩展插件# #狼黑工具#
嘉立创EDA扩展插件 - 工作时间统计工具
嘉立创EDA
简介 本插件专为 EDA 场景定制,不仅能生成标准的二维码,还独创了斜二维码让你的二维码与众不同,同时还兼顾了识别准确率 使用方法 输入内容: 文本输入:在顶部文本框输入任何字符(支持中文)。 逆向识别:点击 从二维码导入 ,上传一张现有的二维码图片,会自动解析其内容并填入文本框。 调整参数: 容错级别 (L/M/Q/H):决定二维码被遮挡多少后仍能识别。 色块大小 & 白边:调整二维码的清晰度和安全边距。 尺寸控制:设定最终在 PCB 上的物理尺寸(mm 或 mil)。 选择模式: 图片模式:生成位图对象,支持自定义前景色/背景色。 矢量模式:生成纯矢量图形,支持 反向(黑白反转),适合制作阻焊开窗或铜皮二维码。 放置到 PCB: 底部提供三个预览窗口:左倾二维码、标准二维码、右倾二维码。 选择目标图层(如顶层丝印、底层阻焊等)。 点击任意一个预览图,插件窗口隐藏,生成的二维码会吸附在鼠标上,移动到合适位置点击即可放置。 8696875244488015872 解决了哪些痛点 矢量化难题:传统方法需要生成二维码图片 -> 转矢量 -> 导入,步骤繁琐且容易失真。本插件直接生成 EDA 矢量对象,边缘锐利,文件体积小。 反色设计:在黑色阻焊油上做白色丝印,或者在铜皮上做镂空二维码时,往往需要“黑白反转”。本插件一键勾选“反向图像”即可实现。 技术要点 高质量模糊算法: 像素级运动模糊:通过双向采样算法模拟 45°/135° 方向的运动模糊。 高斯平滑与二值化:先模糊后锐化(Threshold),消除锯齿的同时保留圆润的转角。 Bicubic 插值:在合成最终图像时使用高质量插值,确保无论缩放多少倍,边缘依然清晰。 前端解码能力:集成了 jsQR 库,纯前端实现二维码图片解析,无需上传服务器。 矢量转换引擎:调用 eda.pcb_MathPolygon.convertImageToComplexPolygon 接口,将 Canvas 生成的像素数据实时转换为 EDA 的多边形轮廓数据。 交互体验:实现了与 EDA 深度集成的“鼠标跟随”放置逻辑,支持多单位(mm/mil)即时切换。 使用API接口 API接口 描述 eda.pcb_MathPolygon.convertImageToComplexPolygon(...) 将图片数据流转换为 PCB 矢量多边形数据。 eda.pcb_PrimitiveObject.create(..., 'img') 创建图片类型的图元(用于图片模式)。 eda.pcb_PrimitiveImage.create(...) 创建矢量类型的图元(用于矢量模式)。 eda.pcb_SelectControl.getCurrentMousePosition() 获取鼠标坐标,实现放置时的实时跟随。 eda.sys_ToastMessage.showMessage(...) 显示操作反馈提示。 适用EDA版本 v2.2.43 v3.2.69 本工具基于 v2.2.43 客户端开发,并兼容 v3 版本 #二维码生成# #矢量二维码# #识别二维码# #嘉立创EDA# #扩展API# #扩展插件# #狼黑工具#
嘉立创EDA扩展插件 - 二维码生成器
嘉立创EDA
简介 嘉立创EDA专业版自带的图片导入功能在处理高分辨率图片时往往存在压缩画质、清晰度不足等问题。本插件是一个增强型的图片导入工具,专为解决 PCB 设计中 LOGO、二维码、参考底图的精确导入需求而开发。 它支持实时预览、DPI 自动换算、毫米/密尔单位切换、多图层选择,并提供了独有的“鼠标跟随放置”功能,让图片导入像放置普通元器件一样自然流畅。 使用方法 菜单栏选择 导入 ⇒ 图片,会自动弹出图片选择窗口,支持 PNG、JPG、BMP 格式,选择图片后进入主界面 调整参数: 尺寸设置:输入期望的宽度或高度,勾选“保持横纵比”可自动计算另一边。支持 mm 和 mil 单位切换。 DPI 控制:提供 300/600/1200/2400 四档常用 DPI 预设,也支持输入自定义 DPI,方便精确还原图片的物理尺寸。 图层选择:选择图片放置的目标层(顶层丝印、底层丝印 或 文档层)。文档层适合放置参考底图,不影响生产。 放置:点击 “放置到画布上”,插件窗口会自动隐藏。此时图片会吸附在鼠标光标上,移动鼠标到合适位置点击左键即可固定(检测到失去焦点会自动结束并关闭)。 8696874464450433024 解决了哪些痛点 尺寸计算麻烦:以往导入图片需要手动算像素和物理尺寸的关系,本插件内置 DPI 换算逻辑,可输入 DPI 快速计算物理尺寸。 清晰度不可控:使用自带的导入图片存在导入限制、自带压缩等问题,画面会糊的一塌糊涂。 解除限制大小:使用自带的导入方式,最大不可超过50M,超过后会自动压缩,使用此工具导入200M的图都不成问题,最大支持 16384 x 16384 px 技术要点 Base64 处理:利用 HTML5 FileReader 将本地图片转换为 Base64 编码,结合 EDA 的 PrimitiveObject 接口直接创建图片图元。 双向尺寸联动:实现了 [宽度/高度] <-> [DPI] 的双向绑定计算。修改尺寸自动更新 DPI,修改 DPI 自动更新尺寸,逻辑严密。 交互优化: 使用 setInterval 定时器实时获取 getCurrentMousePosition,实现流畅的图元拖拽跟随效果。 监听 window.onblur 事件,在用户点击画布(窗口失焦)时自动确认放置并关闭插件,模拟了原生 EDA 的操作体验。 多层级支持:通过 EPCB_LayerId 枚举映射,支持将图片分别导入到丝印层(用于生产)或文档层(用于辅助设计)。 使用API接口 API接口 描述 eda.sys_FileSystem.openReadFileDialog(...) 打开系统文件选择器读取本地图片。 eda.pcb_PrimitiveObject.create(...) 在 PCB 画布上创建图片对象。 eda.pcb_SelectControl.getCurrentMousePosition() 获取当前鼠标在 PCB 坐标系中的位置,用于实现跟随。 eda.pcb_PrimitiveObject.modify(...) 实时更新图元坐标,产生移动动画效果。 eda.sys_IFrame.hideIFrame/closeIFrame 控制插件窗口的显隐和生命周期。 注意事项 使用全在线版本,依然会压缩图片画质 当导入图片较多时,打开文档时会占用大量显存,同时文件体积也会变大 适用EDA版本 v2.2.43(半离线/全离线) v3.2.69(半离线/全离线) 本工具基于 v2.2.43 客户端开发 #图片导入# #嘉立创EDA# #扩展API# #扩展插件# #狼黑工具#
嘉立创EDA扩展插件 - 图片无损导入工具
嘉立创EDA
要实现系统的顺利落地,建议采取“① 统筹规划、② 分步实施、③ 单点突破”的策略。一、 实施准备阶段(第 1 周)在正式上线前,明确“谁来用”和“怎么管”是成功的关键。建立实施小组: 指定一名项目负责人(通常为厂长或骨干),协调采购、仓库、生产、财务各部门。环境准备: 注册嘉立创云ERP账号。由于其支持网页版和小程序,需确保仓库、车间有网络覆盖,并准备好条码打印机(用于库位和物料标签)。流程梳理: 明确当前的业务痛点(如:物料找不着、库存对不上、生产进度靠嘴问)- 有具体的业务痛点,反馈给嘉立创 IT 后,好针对问题做进一步的技术支撑。二、 基础数据初始化(第 2 周)ERP的灵魂是数据,这一步决定了系统能否“跑”起来。物料清单 (BOM) 整理: 导入企业的标准BOM。利用嘉立创ERP的特性,可直接关联嘉立创商城的元件编号,实现实时库存和价格联动。库存盘点: 进行全库盘点,将现有库存数量、批次、存放库位一次性录入系统。供应商与客户: 导入存量的合作伙伴信息。三、 核心模块分步上线(第 3-6 周)建议按照“由易到难、由外到内”的顺序实施:实施阶段核心任务关键动作第一步:仓库与采购解决“料”的问题实施扫码出入库。通过嘉立创下单自动同步采购信息,实现进销存一体化。第二步:销售与订单解决“单”的问题录入客户需求,生成销售订单,建立订单与物料的关联。第三步:生产管理 (MRP)解决“做”的问题运行 MRP 运算,根据订单生成缺料表和生产计划。使用小程序进行车间报工,实时追踪进度。第四步:业财一体化解决“钱”的问题自动生成对账单,实现采购应付与销售应收的闭环管理。 四、 试运行与切换(第 7-8 周)模拟测试: 拿几个典型订单在系统中走完“从采购到发货”的全流程。全员培训: 针对不同角色进行小程序操作培训(如:仓库员学扫码,工人学报工)。正式切系统: 停止手工账,所有业务必须在 ERP 中留痕,做到“无单不出库,无单不生产”。💡 落地实施的 3 个核心技巧善用小程序: 电子制造企业车间环境复杂,鼓励员工使用手机端随时随地扫码、查库存、报进度,降低系统使用的门槛。坚持“一把手”原则: ERP 落地本质上是管理变革,需要管理层强制要求数据必须入库,否则系统很快会沦为“空壳”。#嘉立创云ERP#
💡 嘉立创云ERP - 实施落地方案
嘉立创云ERP
社区数据
今日帖子
-
今日互动量
-
在线人数
-
帖子总量
-
用户总量
-
推荐话题 换一批
#DIY设计#
#嘉立创PCB#
#嘉立创3D打印#
#嘉立创免费3D打印#
#2025年度项目秀#
#ESP8266/32#
#技术干货#
#2025年度踩坑日记#
查看更多热门话题
功能讨论
()
主题
打赏记录
服务时间:周一至周六 9::00-18:00 · 联系地址:中国·深圳(福田区商报路奥林匹克大厦27楼) · 媒体沟通:pr@jlc.com · 集团介绍
移动社区