MarkEzd.dll二次开发全攻略:激光打标机与自动化产线集成
简介一套面向激光打标行业开发者与 C# 工程师的 EZCAD 二次开发资源包。EZCAD 是工业激光标记场景下的常用上位机软件支持图形编辑、文字处理、条形码/二维码生成与序列号递增EZCAD2 在界面友好度、图形处理能力与自动化流程上进一步升级。资源内含 EZCAD2 源代码、MarkEzd.dll 动态链接库以及基于 MFC 的调用测试项目开发者可借此深入理解打标指令下发的完整链路并通过 C# 调用 DLL 实现自定义标记算法、对接业务系统数据等扩展功能适合已有编程基础、希望定制专属打标方案的技术人员。整个压缩包约 97.75MB共 211 个文件除了 dll、h、cpp、vcxproj 等源代码与工程文件外还包含大量 bmp 图标资源、ini 配置、日志及可执行程序兼顾源码阅读、二次编译与直接运行测试。已有 1731 人学习/下载这份资源为深度定制 EZCAD 打标功能提供了完整的代码级参考可显著降低从零探索底层接口的成本。1. 为什么要把打标机交给MarkEzd.dll而不是让操作员一直按F1当一台光纤激光打标机摆在产线边上EZCAD激光打标软件看起来够用导入LOGO、排一排版、调好速度功率按一下打标好活。但稍微往深处想你会发现它只是一个给人操作的面板。订单号、序列号、二维码内容每天在变人工输入不仅慢而且容易错更关键的当这台设备需要和MES握手、根据PLC信号自动打标时EZCAD2本身没有给外部程序留出像样的接口。这时就得靠随控制卡提供的二次开发动态链接库MarkEzd.dll。通过它打标控制被拆成了一组可被调用的函数初始化、加载打标文件、更新文本、启动打标、查询状态。整台打标机的复杂度会被压进一个DLL里变成车间自动化里的一个听话执行单元。这篇笔记写给做设备集成的工控工程师、上位机软件工程师也写给想把打标工位改造成黑匣子的产线项目。2. MarkEzd.dll二次开发的整体架构EZCAD2、DLL与控制卡的边界2.1 先分清成员EZCAD2、控制卡与DLL各自负责什么激光打标系统看起来是一台设备实际是三层结构。最上层是EZCAD2人机界面负责排版、导入图片、设置打标参数、人工打样调试中间层是MarkEzd.dll它把控制卡的能力封装成一组导出函数供外部程序调用最底层是控制卡和振镜场镜负责把轨迹数据变成模拟信号驱动激光器出光。做二次开发时别把EZCAD2和DLL当成两个可以互相替代的东西它们更像是同一套系统里的两个剖面EZCAD2是设计端DLL是运行端。选型时要先确认控制卡型号。常见的有USB接口卡、以太网接口卡和PCIe插卡三类USB卡适合单机工位一工位一卡部署简单以太网卡适合多个工位由同一套上位机统一调度PCIe卡响应更快但对整机结构要求高。第一原则是SDK版本必须与控制卡驱动严格配套选择EZCAD2还是更早的版本主要看控制卡出厂时配的固件。二次开发最怕的是底层驱动不对版上层写再多代码也白搭。2.2 MarkEzd.dll的调用顺序初始化、加载、执行、关闭MarkEzd.dll导出的函数数量不少但调用顺序相当固定核心链路是“初始化 → 加载打标文件 → 更新内容或参数 → 执行打标 → 查询状态 → 关闭”。很多人翻车就翻在顺序上比如没初始化就执行打标或者打标刚启动就关DLL振镜还在摆动连接先断了最终结果是设备异常或打样残缺。接口环节典型函数名称以SDK头文件为准职责初始化lj_init分配资源、建立与打标卡的连接加载工程lj_load_file读入 .ezd 模板文件更新内容lj_update_text修改文本或条码对象内容参数写入lj_set_pen修改速度、功率、频率等打标参数执行打标lj_start启动一轮打标通常是异步的状态查询lj_get_status查询当前是忙还是闲、是否出光完成停止/关闭lj_stop / lj_close急停或释放连接这里最需要建立认知的是“异步”这一点。lj_start把指令送给控制卡后往往立刻返回控制卡自己慢慢执行振镜轨迹所以后面必须靠状态查询去轮询不能想当然地认为返回0就代表打完了。这是整个接口模型里和普通函数调用最大的区别也是后面几次踩坑的根源。顺带说一句和源码有关的事如果你手里的.zip解压后能看到示例源码先别急着梭哈全部代码优先读头文件和示例工程。市面渠道里拿到完整EZCAD2软件源代码的情况极少绝大多数做产线集成的项目实际需要的只是MarkEzd.dll提供的接口和示例工程。与其纠结底层实现不如把精力放在调用链路上。2.3 资源包里的东西不只有一个DLL解压.zip后SDK目录里通常会混着几类文件动态库、头文件、说明文档、示例源码。很多人只把MarkEzd.dll复制到exe目录忽略了依赖的配套运行库程序启动时就会报“找不到指定的模块”而不是“找不到DLL”排查起来很困惑。正确习惯是先把SDK包完整解压放一个固定目录看清楚哪些是运行时需要的哪些只是给开发看的。文件类型在二次开发中的用途部署目标MarkEzd.dll核心导出库程序运行时必须加载与exe同目录或用绝对路径指定依赖运行库MarkEzd.dll内部依赖的DLL同样放到exe目录缺一个都不行头文件/API手册函数声明、参数说明、错误码定义开发期参考不参与部署示例源码参考调用顺序和写法开发期阅读不必放进产品提示先确认DLL位数。SDK包可能同时提供x86和x64两套也可能只有一套。程序一启动就报BadImageFormat基本就是进程位数和DLL位数没对上详见第5章。3. 用MarkEzd.dll在本地跑通第一个打标命令环境搭建与关键参数3.1 把.zip解压后的文件摆对位置部署清单拿到SDK压缩包后第一步不是写代码而是把目录结构理清楚。我习惯在解决方案下建一个LaserSDK目录把解压出来的dll、头文件、文档按子目录放好再在项目里引用DLL。直接把DLL丢到桌面再拖进bin目录的做法不是不行但项目一迁移就容易缺文件后期维护很被动。具体文件怎么摆可以参考下面这张清单。核心就一句话运行时要加载的DLL必须出现在exe同目录或者出现在系统搜索路径里开发参考用的文件不要混进输出目录。文件处理方式MarkEzd.dll加到项目根目录属性“复制到输出目录”设为“如果较新则复制”依赖运行库同样加入项目一并复制到输出目录MarkEzd.h加入项目只作查看不参与编译API手册PDF放文档目录方便随时查错误码提示不要把DLL当成普通引用添加成.NET程序集MarkEzd.dll是原生动态库C#里必须用DllImport方式声明函数入口。加引用会直接报错。3.2 最小可运行的工程初始化、加载、出光、关闭下面用C#写一个最简流程。这里用的函数名是SDK里常见的一种命名风格不同版本前缀可能不一样以你手里的头文件为准但调用顺序基本就是这个样子。using System; using System.Runtime.InteropServices; using System.Threading; namespace LmkDemo { class Program { // 声明MarkEzd.dll导出函数注意函数名以头文件为准 [DllImport(MarkEzd.dll, CallingConvention CallingConvention.StdCall)] static extern int lj_init(); [DllImport(MarkEzd.dll, CallingConvention CallingConvention.StdCall)] static extern int lj_load_file(string path); [DllImport(MarkEzd.dll, CallingConvention CallingConvention.StdCall)] static extern int lj_start(); [DllImport(MarkEzd.dll, CallingConvention CallingConvention.StdCall)] static extern int lj_close(); static void Main(string[] args) { // 第一步初始化连接打标卡 int ret lj_init(); if (ret ! 0) { Console.WriteLine(初始化失败错误码 ret); return; } // 第二步加载在EZCAD2里排好的模板文件 ret lj_load_file(D:\jobs\panel_a.ezd); if (ret ! 0) { Console.WriteLine(模板加载失败); lj_close(); return; } // 第三步启动打标。这是异步操作生产环境必须轮询状态 ret lj_start(); if (ret ! 0) { Console.WriteLine(打标启动失败); lj_close(); return; } // 这里先用Sleep演示正式代码请用状态查询替代 Thread.Sleep(2000); // 第四步释放连接 lj_close(); } } }代码逻辑本身不复杂但有几个细节值得说。第一调用约定用的是StdCall如果SDK文档里写的是CdeclDllImport里的CallingConvention也要跟着改否则函数参数栈会被破坏轻则返回乱码重则进程崩溃。第二返回值0一般是成功非0值对应文档里的错误码表调试时别只看“失败”两个字要把错误码查出来。第三Sleep(2000)是演示用的定死等待真按这样写到产线里节拍一快就会出问题后面会专门讲状态轮询。3.3 打标质量相关的三个核心参数速度、功率、频率在EZCAD2里新建对象时每个对象都带一套笔参数最核心的三个是速度、功率、频率。很多做上位机的同事第一次接触打标时习惯性地把参数写死在代码里这是个不小的坑材料一变参数就要调改代码远不如改EZCAD2工程方便。参数单位/范围对效果的影响调整习惯速度mm/s 或百分比决定打标节拍和熔深先求质量再提节拍从低速往上加功率百分比决定能量密度影响深度和颜色钢、铝、塑料分别建档不通用频率kHz影响光斑重叠率和表面粗糙度光纤机常用30-200kHz按出光状态微调参数调整的常见做法是先拿废料在EZCAD2里打样把效果调到合格再把这组参数存进模板。程序侧如果不是特殊需求没必要在每次打标前去改参数。只有在批量生产中发现温度变化导致色差才考虑在程序里做参数补偿。4. 在自有上位机里用MarkEzd.dll实现动态内容流水号、日期与二维码4.1 动态内容的实现方式模板法优先实时创建对象慎用打标内容几乎不可能全是固定图案订单号、生产日期、二维码数据都是变化的。实现动态内容有两条路。第一条是模板法在EZCAD2里建好模板把可变对象命名清楚程序运行时只替换对象内容这是我一贯推荐的做法。第二条是实时创建对象法程序通过DLL在运行时新增文本或条码对象位置、大小、参数全部由代码控制非常灵活但排版不可视化出了问题要翻代码维护成本高。做现场项目时我基本都选模板法。它的最大好处是视觉样式完全在EZCAD2里调整操作工自己也能微调程序只需要关心“哪几个对象要换成什么内容”。可靠性也更高因为模板一旦跑通打标位置基本不会乱跑。4.2 修改文本对象内容命名规范是省事的关键模板法落地时最重要的一步是给可变对象起一个稳定的名字。EZCAD2里的每个文本对象都有“对象名”属性二次开发时就是靠这个名字去定位。我的习惯是把名字全部用ASCII字符比如TXT_SN、TXT_DATE、BARCODE_01不要用中文也不要带空格否则有些SDK版本处理起来会有兼容问题。下面是一段典型的内容替换代码函数名同样以头文件为准。// 声明文本更新接口 [DllImport(MarkEzd.dll, CallingConvention CallingConvention.StdCall)] static extern int lj_update_text(string objName, string newText); // 生成订单号日期组合 string sn SN DateTime.Now.ToString(yyyyMMddHHmm); string date DateTime.Now.ToString(yyyy-MM-dd); // 分别更新两个文本对象 int ret1 lj_update_text(TXT_SN, sn); int ret2 lj_update_text(TXT_DATE, date); if (ret1 ! 0 || ret2 ! 0) { // 返回非0一般表示对象名不存在或当前状态不允许修改 Console.WriteLine(文本更新失败需检查模板中的对象命名); }这里有几个容易出错的点。一是对象名必须和EZCAD2里设置的完全一致区分大小写二是更新动作必须在加载模板之后、启动打标之前顺序错了无效三是某些SDK版本在更新文本后还需要调用一次同步或刷新接口把新内容下载到控制卡内存里否则打出来的还是旧内容。这个问题很典型第5章会单独展开。二维码对象的处理略有不同。有些SDK专门提供条码数据接口有些版本则复用普通文本更新接口区别在于二维码对象内部会有一个数据字段。如果代码里调文本对象更新二维码没反应去文档里找找“条码数据设置”相关的函数多半是走另一个入口。4.3 打标完成状态别让程序猜轮询才算数打完标之后什么时候允许下一个工件进来很多第一次做上位机集成的人以为lj_start返回成功就等于打完了这是一场误会。前面说过这个启动调用是异步的返回成功只代表指令已经交给控制卡振镜可能还在跑最后一段轨迹。正规做法是轮询状态接口。下面这段代码演示了如何等打标完全结束再放行// 状态查询接口busy1表示忙0表示空闲 [DllImport(MarkEzd.dll, CallingConvention CallingConvention.StdCall)] static extern int lj_get_status(ref int busy); // 等待打标完成 int busy 1; int safeCount 0; while (busy ! 0) { lj_get_status(ref busy); Thread.Sleep(30); // 30ms一次避免CPU空转 safeCount; if (safeCount 1000) // 30秒超时保护 { throw new TimeoutException(打标超时请检查激光器或控制卡状态); } } // 到这里才认为一次打标真正结束轮询间隔我一般取20到50毫秒太快没意义太慢会拖节奏。加超时保护是必须的否则设备卡死时程序会在while里死等现场工人只能重启电脑。这段逻辑一定要放在后台线程里跑别把UI线程堵住否则操作界面会卡成假死。5. MarkEzd.dll二次开发避坑五问现象、原因与排查思路5.1 初始化返回失败但EZCAD2却一切正常现象自己写的上位机调用初始化接口返回非0同一台电脑上打开EZCAD2却能正常打标。原因最常见的是加密狗或授权句柄没有在当前进程里建立连接。EZCAD2运行时会自动识别并绑定授权设备而你的程序不会另一个原因是DLL没有被正确加载程序实际调用的是目录下另一个版本的文件。解决先用EZCAD2确认控制卡和加密狗都正常再用进程监控工具看程序加载的MarkEzd.dll完整路径确认不是从临时目录或其他目录误加载最后检查初始化函数是否需要在调用前做一些准备动作。还不行就试着重启控制卡驱动服务USB卡尤其容易在多次插拔后出现初始化失败。5.2 64位系统下程序报错DLL加载失败现象C#项目用的是AnyCPU在64位Windows上运行程序一启动就提示DllNotFoundException或BadImageFormatException。原因AnyCPU在64位系统上会以64位进程运行如果SDK包里给的是32位MarkEzd.dll进程和DLL位数不匹配加载必然失败。这个错误和文件路径无关纯粹是位数问题。解决确认SDK包提供了哪一版DLL。如果只有x86就把项目的“目标平台”明确设为x86别用AnyCPU如果有x64版本就改用x64。改完平台后顺便检查一下依赖的运行库是不是同一位数混合位数一样崩溃。5.3 打出来的尺寸与设计尺寸差一倍或偏移一段距离现象在EZCAD2里排的版是10mm实际打到产品上是14mm或8mm有时整体位置还偏出几毫米。原因打标幅面和尺寸比例由场镜校正参数控制这是设备装机时就标定好的参数。如果你的软件和EZCAD2共用同一套设备配置一般不会差差别出现通常是模板文件里的设定尺寸比例与控制卡里的比例系数不一致或者换过场镜没重标定。解决先在EZCAD2里画一条标准长度的线段实际打出来量一下修正场镜校正里的比例系数误差矫正后保存。程序侧不要自己乘比例系数那是在给现场挖坑。位置偏移的问题则要检查模板的定位原点看是相对原点还是绝对坐标。5.4 文本内容明明更新了打出来的还是旧内容现象上位机调用文本更新接口成功但实际打出来的内容还是上一次的值没有任何变化。原因这在原理上不算玄学而是模板对象存在缓存。部分SDK版本里更新文本只是改了软件侧的数据还没下载到控制卡缓存需要额外调用一次同步或重载动作。另一个常见原因是对象名写错返回码恰好掩盖了错误。解决先确认对象名完全一致再检查文档里有没有“同步”、“下载”、“刷新”类的接口在更新文本后补一次调用。常见做法是把“更新内容”和“同步到设备”打包成一个封装函数避免漏调。5.5 状态查询返回空闲但下一工序还是撞上了振镜现象上位机用状态接口查询到空闲立刻启动后续传送机构结果产品被振镜撞到或打标位置错动。原因状态接口的“空闲”含义可能只是“控制卡指令队列空了”并不代表“硬件所有动作都收尾”。振镜归位、激光关断都有延迟状态位和物理状态不是严格同步的。解决不要只依赖DLL状态把打标完成信号从控制卡的IO输出接出来让PLC或上位机读取IO信号作为最终判据。这是设备集成的规范做法DLL状态可以看但互锁一定要落在硬件信号上。6. 把EZCAD2当参数编辑器让程序只做调度验证与进阶做打标二次开发越久我越认同一个工作习惯EZCAD2负责一切视觉效果和参数调优MarkEzd.dll只负责执行。模板文件里排好版、调好速度功率程序里只做“加载模板、替换数据、启动打标、等待完成”四件事。参数想改回EZCAD2改模板程序不用动。这个习惯帮我少改了很多版本。新项目上线前我会按这份清单做验证。第一轮是空打标测试把激光功率调到最小验证模板加载和数据替换是否正常第二轮在测试板上打一串连续顺序号确认动态内容没有错位和漏打第三轮连续跑50次观察节拍稳定性和偶发报错最后做断电恢复测试确认设备重启后程序可以重新初始化并继续使用。进阶方向有两个。一个是通过IO信号联动PLC把打标完成状态输出给产线实现自动流转另一个是维护一个模板对照表让程序根据产品型号自动切换.ezd文件一台打标机对应多种产品。数据量不大时用配置文件就能管理数据量大再考虑接数据库不急着上MES。这几年做打标集成最深的教训就是别在代码里埋“没验证过的假设”。状态就轮询、完成就看IO、内容更新就做同步每一步都按最稳妥的方式做现场就会少很多麻烦。希望这篇文章能帮你少走几步弯路。本文还有配套的精品资源点击获取

相关新闻

STM32F407固件库LWIP以太网移植:从PHY配置到TCP通信的排坑指南

STM32F407固件库LWIP以太网移植:从PHY配置到TCP通信的排坑指南

简介:一份面向STM32F407开发者的以太网与LWIP协议栈实战资源包,涵盖固件库驱动到网络协议栈的完整代码,适合嵌入式初学者及希望在ARM平台实现联网功能的中级开发者。压缩包内共2000个文件,包括1041个头文件、881个C源文件和78个文…

2026/10/18 19:17:19 阅读更多 →
SpringBoot+Vue毕业设计实战:抗疫物资管理系统从数据库设计到部署答辩

SpringBoot+Vue毕业设计实战:抗疫物资管理系统从数据库设计到部署答辩

每到毕业设计季,我后台总能收到一堆高相似度的问题:SpringBoot 和 Vue 到底怎么连起来?物资管理系统的数据库表要建几张才够?论文里的测试数据怎么造才不像编的?部署文档写到什么程度才算完整?这些问题背后…

2026/10/18 19:17:19 阅读更多 →
JavaScript鼠标事件总结:从点击到拖拽的完整实战指南

JavaScript鼠标事件总结:从点击到拖拽的完整实战指南

平时接需求的时候,最常见的前端交互就是鼠标点击、拖拽、右键菜单这一类。很多人项目做多了,click用得很顺,但真要把「按住拖动」「滚轮缩放」「自定义右键菜单」做稳,就会发现鼠标事件这套东西比想象中复杂不少。javascript鼠标事…

2026/10/18 19:17:19 阅读更多 →

最新新闻

LiteLLM Proxy 启动方式与 Python 环境管理:用 uv 与虚拟环境把 TaoToken 接入本地代理

LiteLLM Proxy 启动方式与 Python 环境管理:用 uv 与虚拟环境把 TaoToken 接入本地代理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 20:04:40 阅读更多 →
基于Go语言的区块链学历认证系统:从存证到验真全流程实践

基于Go语言的区块链学历认证系统:从存证到验真全流程实践

简介:一套基于Hyperledger Fabric的学历学位认证管理系统完整源码及部署文档,面向高校计算机相关专业学生、教师及区块链开发者,适用于毕业设计、课程设计或学历认证类项目前期调研与二次开发。压缩包共723个文件,整体约15.56MB&a…

2026/10/18 20:04:40 阅读更多 →
研华IPC-510工控机搭建工业数据采集与自动化监控方案

研华IPC-510工控机搭建工业数据采集与自动化监控方案

做自动化项目的老工程师估计都遇到过这种场景:产线上设备明明都有通讯口,但数据就是拿不上来,老板要的报表靠人工拿着纸笔去抄,设备报警只能等操作员发现再跑过去看。这背后缺的往往不是采集模块,而是一个能常年7x24小…

2026/10/18 20:04:40 阅读更多 →
安全审计不是扫漏洞:构建可信交付的工程闭环

安全审计不是扫漏洞:构建可信交付的工程闭环

1. 安全审计不是“扫漏洞”,而是构建可信交付的工程闭环最近帮一家做SaaS工具的团队做代码健康度复盘,他们刚上线一个新模块,CI流水线里跑着SonarQube和ESLint,但安全团队突然发来一份报告:三个高危SQL注入点、两个硬编…

2026/10/18 20:04:40 阅读更多 →
无监督学习实战指南:聚类、降维与异常检测全解析

无监督学习实战指南:聚类、降维与异常检测全解析

接手一批新数据时,我最先问自己的不是“能不能建模预测”,而是“这批数据里到底藏着几类模式”。这个问题往里挖,核心就是无监督学习。无监督学习说的是:在没有任何标签、没有标准答案的情况下,靠数据本身的结构去找分…

2026/10/18 20:04:40 阅读更多 →
华为IGMP组播原理与实战:从精准调度到排障精要

华为IGMP组播原理与实战:从精准调度到排障精要

1. 为什么组播不是“群发”,而是一场精准的流量调度革命?很多人第一次听说IGMP,下意识就把它和微信群发、邮件群抄送划等号——“不就是让一台设备把数据同时发给多台设备吗?”这个理解方向错了,而且错得挺关键。我刚接…

2026/10/18 20:03:40 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →