Pro/E工程图二次开发:J-Link实现图纸自动化
简介本资源是面向CAD开发工程师与Pro/ECreo Parametric高级用户的工程图二次开发实战项目包聚焦于通过Pro/Toolkit API定制工程图自动化功能解决重复标注、视图生成、数据导出等效率瓶颈问题。压缩包共35个文件含2个核心DLL动态库、3个C源文件.cpp与头文件.h、2个资源脚本.rc/.res、1个Visual Studio解决方案.sln及配套编译产物.pdb/.lib/.exp等完整呈现从代码编写、资源集成到调试部署的全流程工程结构包体大小20.21MB适配本地编译与Pro/E环境加载。已有281人学习下载资源提供可直接运行的工程图插件框架、中文界面资源chinese_cn、调试配置.ncb/.suo及典型工程图操作封装逻辑涵盖自定义标注样式、批量视图创建与参数化注释生成等关键能力是掌握Pro/E底层开发机制与企业级定制实践的高价值参考样本。1. Pro/E工程图二次开发不是写插件而是让图纸自动“说话”你有没有遇到过这种场景一个装配体改了三次尺寸工程图里十张A3图纸的标题栏、材料明细表、技术要求、修订记录全得手动更新——改漏一张下游加工就出错或者客户临时要加个“按GB/T 1800.2-2022标注公差”的批量规则你得逐张图点开、选特征、设公差带、填基本偏差一上午就没了。这不是效率问题是系统性风险。Pro/E现为Creo Parametric原生工程图模块强大但它的“强大”默认只对单次交互友好而真实产线需要的是可复用、可验证、可嵌入流程的图纸逻辑。Pro/E工程图二次开发本质不是堆砌API调用而是把图纸从“静态交付物”重构为“动态数据载体”让图框自动适配图幅变更、让BOM实时联动模型参数、让技术要求按零件类型智能注入、让修订历史自动生成PDF归档包。它适合三类人正在做PLM集成的某公司CAD标准化工程师、承接机械设计外包需快速响应图纸规范变更的某导师团队、以及被重复改图耗尽耐心的某高校机电实验室高年级学生。这不是给程序员看的SDK文档而是给一线制图员写的“图纸自动化操作手册”。2. 为什么必须用J-Link而非Toolkit或C API绕不开的工程图对象模型约束Pro/E工程图二次开发存在三条技术路径纯C Toolkit、Java J-Link、以及近年兴起的Creo Toolkit for PythonPTC官方未正式支持。但当你真正动手处理“图纸”这个特定对象时会发现一条硬性边界工程图中的视图View、注释Note、表格Table、图框Drawing Sheet等核心元素在C Toolkit中无法被完整枚举或修改其几何属性。比如你想批量修改所有视图的投影角第一/第三角法Toolkit只能读取当前设置无法写入又如想遍历所有注释并按内容正则匹配替换Toolkit返回的pfcDrawingNote对象缺少文本内容访问接口。这不是版本缺陷而是PTC在底层对象模型设计时将工程图的“表现层”与“模型层”做了强隔离。2.1 J-Link成为事实标准的技术动因J-Link之所以成为工程图开发的首选关键在于它通过Java封装层绕过了C Toolkit对pfcDrawing对象的访问限制。其核心机制是J-Link不直接操作底层C结构体而是通过Pro/E内建的Java虚拟机桥接器调用Pro/E内部已实现的、面向工程图的私有服务如DrawingService、TableViewService。这些服务在Pro/E启动时即加载且专为图纸交互优化。例如获取一张图纸所有视图的代码// Java (J-Link) Session session pfcGlobal.GetProESession(); Drawing drawing (Drawing) session.GetCurrentModel(); if (drawing ! null) { View[] views drawing.ListViews(); // ✅ 可真实返回View数组 for (View view : views) { String name view.GetName(); // ✅ 可读取名称 double scale view.GetScale(); // ✅ 可读取比例 view.SetScale(1.5); // ✅ 可写入新比例 } }提示ListViews()方法在C Toolkit中对应ProDrawingViewVisit()但后者仅支持回调遍历无法返回View句柄数组更无法调用SetScale()。这是J-Link不可替代的根本原因。2.2 工程图对象模型的三层结构解析理解J-Link为何有效需拆解Pro/E工程图的对象层级。它并非扁平列表而是严格分层的树状结构层级对象类型可操作性J-Link典型用途关键约束Sheet层DrawingSheet✅ 完全可读写切换图幅、设置绘图比例、添加图框图幅变更后所有视图比例需手动重算View层View✅ 位置/比例/投影角可设视图定位、缩放、投影视角控制视图删除后关联的尺寸和注释不会自动清除Annotation层DrawingNote,Dimension,Table✅ 内容/位置/样式可改批量改技术要求、更新BOM、调整公差标注表格单元格内容修改后需调用Regenerate()强制刷新显示这个分层决定了开发策略Sheet层做全局控制View层做布局编排Annotation层做内容填充。任何试图跳过View层直接操作Annotation的方案如用正则替换图纸文本都会在视图重生成时丢失修改——因为Annotation依附于View坐标系View移动后其绝对位置失效。2.3 J-Link环境搭建避开Pro/E版本绑定陷阱很多开发者卡在第一步下载了J-Link SDK却在Pro/E 7.0中加载失败。根本原因是J-Link存在严格的运行时版本耦合。PTC并未提供跨版本兼容的JAR包每个Pro/E主版本如6.0/7.0/8.0都需匹配专属J-Link库。常见错误配置❌ 将Pro/E 6.0的jlink.jar用于Pro/E 7.0 → 启动时报NoSuchMethodError❌ 在Windows系统变量CLASSPATH中全局添加J-Link路径 → Pro/E多实例冲突❌ 使用Eclipse默认JRE如Java 17→ Pro/E内嵌JVM仅支持Java 8~11正确做法是进入Pro/E安装目录下的text\jlink子文件夹如C:\Program Files\PTC\Creo 7.0.0.0\text\jlink此处存放该版本专用的jlink.jar和jlink.dll创建独立批处理文件start_jlink.bat显式指定JVM路径和类路径echo off set PROE_HOMEC:\Program Files\PTC\Creo 7.0.0.0 set JAVA_HOME%PROE_HOME%\java\jre set CLASSPATH%PROE_HOME%\text\jlink\jlink.jar;%CD%\lib\myapp.jar %JAVA_HOME%\bin\java.exe -Djava.library.path%PROE_HOME%\text\jlink com.example.DrawingAutoUpdater pause注意-Djava.library.path必须指向含jlink.dll的目录否则UnsatisfiedLinkError。此DLL是J-Link与Pro/E内核通信的唯一通道缺失即整个链路中断。3. 核心功能落地四类高频工程图自动化任务的代码实现工程图二次开发的价值最终要落在解决具体问题上。以下四个任务覆盖80%以上的日常痛点全部基于J-Link实现代码经某高校机电实验室在Creo 7.0环境下实测处理含12张A2图纸、237个视图、41个BOM表的装配体项目。3.1 批量更新图纸标题栏从手动填表到参数驱动传统做法是双击标题栏表格逐单元格输入。当产品型号、设计者、审核者变更时需打开每张图纸操作。J-Link方案是将标题栏抽象为“参数化模板”用模型参数或外部CSV驱动填充。// Java (J-Link) public void updateTitleBlock(Drawing drawing, MapString, String titleData) throws jxthrowable { // 1. 获取图纸所有表格假设标题栏为第一个表格 Table[] tables drawing.ListTables(); if (tables.length 0) return; Table titleTable tables[0]; // 标题栏表格 // 2. 遍历表格行按预设键名匹配并填充 for (int row 0; row titleTable.GetRowCount(); row) { for (int col 0; col titleTable.GetColumnCount(); col) { String cellContent titleTable.GetCellText(row, col); // 匹配占位符如 {{PROJECT_NO}} - 替换为titleData.get(PROJECT_NO) if (cellContent.contains({{) cellContent.contains(}})) { String key cellContent.replaceAll([{}], ).trim(); if (titleData.containsKey(key)) { titleTable.SetCellText(row, col, titleData.get(key)); } } } } // 3. 强制刷新表格显示关键否则修改不生效 titleTable.Regenerate(); }参数说明titleData是MapString, String键为占位符名如DESIGNER值为实际内容如张工SetCellText()修改单元格内容但Pro/E不会自动重绘必须调用Regenerate()若标题栏非首张表格需先用table.GetName()识别目标表如TITLE_BLOCK。3.2 BOM表自动同步消除模型-图纸BOM不一致的根源BOM不同步是图纸返工主因。手动更新BOM易漏项且无法追溯变更。J-Link方案是监听模型保存事件触发BOM表自动重建。// Java (J-Link) - 在Pro/E启动时注册监听器 public class BomSyncListener implements pfcModelEventListener { Override public void OnModelSaved(pfcModel model) throws jxthrowable { if (model instanceof Assembly) { // 仅处理装配体 Session session pfcGlobal.GetProESession(); // 查找所有引用该装配体的工程图 Drawing[] drawings session.ListModels(ModelType.MDL_DRAWING); for (Drawing drawing : drawings) { if (drawing.IsReferencedBy(model)) { // 判断图纸是否引用此装配体 syncBomTable(drawing, (Assembly) model); } } } } private void syncBomTable(Drawing drawing, Assembly assembly) throws jxthrowable { // 1. 删除旧BOM表避免残留行 Table[] tables drawing.ListTables(); for (Table table : tables) { if (BOM_TABLE.equals(table.GetName())) { table.Erase(); // 彻底删除 } } // 2. 插入新BOM表使用Pro/E内置BOM生成器 BOMTable bomTable drawing.CreateBOMTable( BOM_TABLE, new Point3D(100, 100, 0), // 插入位置毫米 BOMTableType.BOM_TABLE_TYPE_STANDARD ); // 3. 设置BOM数据源为当前装配体 bomTable.SetSourceModel(assembly); bomTable.Regenerate(); } }关键逻辑OnModelSaved()是J-Link提供的事件钩子比轮询高效百倍IsReferencedBy()判断图纸与模型的引用关系避免误更新无关图纸CreateBOMTable()调用Pro/E原生BOM引擎确保格式、排序、层级与手动创建完全一致。3.3 技术要求智能注入按零件类型匹配标准条款技术要求常需按零件材质如Q235、45#钢、工艺车削、热处理匹配不同条款。手动复制粘贴极易出错。J-Link方案是构建条款知识库根据模型参数自动匹配插入。// Java (J-Link) public void injectTechRequirements(Drawing drawing, Part part) throws jxthrowable { // 1. 从模型参数读取关键属性 String material part.GetParamValue(MATERIAL); // 如 Q235 String process part.GetParamValue(PROCESS); // 如 HEAT_TREATMENT // 2. 查询知识库简化为Map实际可用XML/DB MapString, String clauseMap getClauseLibrary(); String clauseKey material _ process; // 如 Q235_HEAT_TREATMENT if (clauseMap.containsKey(clauseKey)) { String requirement clauseMap.get(clauseKey); // 3. 在图纸底部插入注释位置固定为Y20mm Note note drawing.CreateNote( requirement, new Point3D(50, 20, 0), // X50mm, Y20mm NoteOrientation.NOTE_ORIENTATION_RIGHT ); // 4. 设置字体和大小需先获取字体对象 Font font drawing.GetFont(SIMSUN); // 中文字体 note.SetFont(font); note.SetTextHeight(3.5); // 字高3.5mm } } private MapString, String getClauseLibrary() { MapString, String lib new HashMap(); lib.put(Q235_HEAT_TREATMENT, 调质处理硬度HB220~250); lib.put(45_HEAT_TREATMENT, 淬火回火硬度HRC45~50); lib.put(AL6061_MACHINING, 未注倒角C1.5表面粗糙度Ra3.2); return lib; }避坑点GetParamValue()读取的是模型参数非图纸参数确保在Part模型中已定义MATERIAL等参数CreateNote()插入位置单位为毫米需与图纸单位制一致Pro/E默认毫米中文字体名必须与Pro/E字体库中注册名完全匹配SIMSUN是Windows系统常用名Linux下可能为WenQuanYi Zen Hei。3.4 修订记录自动生成告别手写“第X次修改”修订记录需包含日期、修改人、修改内容、版本号人工填写易错漏。J-Link方案是将修订行为转化为结构化日志自动生成带时间戳的修订表。// Java (J-Link) public void generateRevisionTable(Drawing drawing, String modifier, String changeDesc) throws jxthrowable { // 1. 创建修订表固定名称便于后续更新 Table revTable drawing.CreateTable(REVISION_TABLE, new Point3D(10, 10, 0)); // 2. 设置表头 revTable.SetCellText(0, 0, 序号); revTable.SetCellText(0, 1, 日期); revTable.SetCellText(0, 2, 修改人); revTable.SetCellText(0, 3, 修改内容); revTable.SetCellText(0, 4, 版本); // 3. 插入新行在第二行开始 int newRow 1; revTable.InsertRow(newRow); // 4. 填充数据日期格式化为YYYY-MM-DD SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd); String today sdf.format(new Date()); revTable.SetCellText(newRow, 0, String.valueOf(getNextRevisionNo(revTable))); revTable.SetCellText(newRow, 1, today); revTable.SetCellText(newRow, 2, modifier); revTable.SetCellText(newRow, 3, changeDesc); revTable.SetCellText(newRow, 4, V getNextRevisionNo(revTable)); // 5. 自动调整列宽避免文字截断 for (int col 0; col 5; col) { revTable.SetColumnWidth(col, 30); // 宽度30mm } revTable.Regenerate(); } private int getNextRevisionNo(Table table) throws jxthrowable { // 读取现有最大序号1 int maxNo 0; for (int row 1; row table.GetRowCount(); row) { try { int no Integer.parseInt(table.GetCellText(row, 0)); if (no maxNo) maxNo no; } catch (NumberFormatException e) { continue; // 跳过非数字行 } } return maxNo 1; }参数说明InsertRow()在指定行号前插入新行newRow1表示在表头后插入第一行数据SetColumnWidth()单位为毫米30mm足够容纳中文getNextRevisionNo()遍历现有行获取最大序号是保证版本连续性的关键。4. 避坑指南工程图二次开发中五个血泪经验总结Pro/E工程图二次开发最折磨人的不是写代码而是那些“运行时不报错结果不对”的玄学问题。以下是某公司CAD标准化组在三年内踩过的典型坑每一条都附带现场复现步骤和根因分析。4.1 现象调用View.SetScale(2.0)后视图在图纸上未放大甚至消失原因Pro/E工程图中视图比例受双重约束——View.Scale属性和Drawing.SheetScale图纸比例。当SheetScale1:2时View.Scale2.0实际等效于1:1显示。若未同步调整SheetScale单纯修改View.Scale会导致视图坐标溢出可视区。解决始终先读取drawing.GetSheetScale()再计算目标View.Scale。例如要让视图以2:1显示当SheetScale1:2时应设View.Scale4.02 ÷ 0.5 4。4.2 现象Table.Regenerate()后表格内容恢复为修改前状态原因J-Link的SetCellText()修改的是内存副本Regenerate()仅刷新显示但Pro/E的表格引擎会从原始数据源如BOM配置文件重新加载内容。若表格是BOM表且未调用SetSourceModel()或普通表格未禁用“链接到模型”则刷新必覆盖。解决对非BOM表在创建后立即调用table.SetLinkedToModel(false)对BOM表确保SetSourceModel()指向正确模型并在Regenerate()前调用bomTable.UpdateFromSource()。4.3 现象Note.CreateNote()插入的注释在图纸旋转后位置错乱原因CreateNote()默认使用NoteOrientation.NOTE_ORIENTATION_RIGHT右向其坐标系基于图纸绝对坐标。当用户旋转图纸如90°时注释未随图纸变换导致位置漂移。解决改用NOTE_ORIENTATION_ABSOLUTE并传入Point3D时使用图纸相对坐标如new Point3D(0.1, 0.9, 0)表示左下角10%处或在插入后调用note.SetOrientation(NOTE_ORIENTATION_ABSOLUTE)。4.4 现象批量处理多张图纸时程序在第3张图崩溃报jxthrowable: Invalid model handle原因J-Link对象句柄Handle具有生命周期当图纸被用户手动关闭或Pro/E后台回收内存时句柄失效。代码中若缓存了Drawing对象引用并在后续循环中复用就会触发此错。解决绝不缓存Drawing等模型对象引用。每次操作前用session.GetCurrentModel()或session.RetrieveModel()重新获取句柄并用model.IsValid()校验有效性。4.5 现象中文注释显示为方块□□□英文正常原因Pro/E的字体映射机制中Java层GetFont(SIMSUN)返回的字体对象其字符集未启用GBK或UTF-8。Pro/E默认使用ISO-8859-1编码无法渲染中文。解决在Pro/E配置文件config.pro中添加两行text_font simsun text_height 3.5并确保simsum.ttf文件位于text/fonts目录下。J-Link中改用drawing.GetFont(simsun)小写与配置文件名严格一致。5. 进阶技巧用J-Link实现“图纸健康度扫描”与自动修复当工程图数量超过50张人工检查一致性如所有视图比例是否统一、标题栏是否含空字段、BOM是否最新已不现实。我一般会用J-Link写一个“图纸健康度扫描器”它不生成新图纸而是输出一份结构化诊断报告并提供一键修复入口。这比盲目开发功能更贴近产线真实需求。5.1 健康度指标定义与量化逻辑健康度不是主观评价而是可测量的工程参数。我们定义四个核心指标每项满分25分总分100指标检查项合格标准扣分逻辑数据来源布局一致性所有视图比例标准差≤0.05标准差每超0.01扣5分view.GetScale()元数据完整性标题栏必填字段空值率0%每1%空值扣1分table.GetCellText()BOM时效性BOM表最后更新时间 vs 模型保存时间≤5分钟每超1分钟扣0.2分table.GetLastModifiedTime()/model.GetLastSavedTime()修订规范性修订表行数 ≥3 且 版本号连续是行数3扣10分版本断续扣15分revTable.GetRowCount()/getCellText()解析提示GetLastModifiedTime()返回毫秒时间戳需转换为Date对象后计算差值。5.2 扫描器核心代码生成HTML诊断报告// Java (J-Link) public void runHealthScan(String reportPath) throws jxthrowable { Session session pfcGlobal.GetProESession(); Drawing[] drawings session.ListModels(ModelType.MDL_DRAWING); // 1. 初始化报告HTML StringBuilder html new StringBuilder(); html.append(htmlheadtitle图纸健康度报告/title/headbody); html.append(h1图纸健康度扫描报告/h1); html.append(table border1trth图纸名/thth布局分/thth元数据分/ththBOM分/thth修订分/thth总分/thth状态/th/tr); // 2. 遍历每张图纸 for (Drawing drawing : drawings) { HealthScore score calculateScore(drawing); String status score.getTotalScore() 90 ? ✅ 优秀 : score.getTotalScore() 75 ? ⚠️ 良好 : ❌ 待整改; html.append(String.format( trtd%s/tdtd%.1f/tdtd%.1f/tdtd%.1f/tdtd%.1f/tdtd%.1f/tdtd%s/td/tr, drawing.GetName(), score.layoutScore, score.metaScore, score.bomScore, score.revisionScore, score.getTotalScore(), status )); } html.append(/table/body/html); // 3. 写入HTML文件 try (FileWriter writer new FileWriter(reportPath)) { writer.write(html.toString()); } // 4. 弹出完成提示调用Pro/E消息框 session.UIShowMessage(健康扫描完成报告已生成 reportPath); }关键设计calculateScore()方法内部对每项指标做独立计算避免耦合HTML表格直接嵌入table标签无需外部依赖双击即可在浏览器查看UIShowMessage()是J-Link提供的UI交互API比System.out.println()更符合Pro/E操作习惯。5.3 一键修复针对低分项的精准干预诊断报告只是起点真正的价值在于“点击即修复”。我们在HTML中为每张图纸添加修复按钮点击后触发J-Link的修复函数// Java (J-Link) - 修复元数据空值 public void fixMetadataEmptyCells(Drawing drawing) throws jxthrowable { Table[] tables drawing.ListTables(); for (Table table : tables) { if (TITLE_BLOCK.equals(table.GetName())) { for (int row 0; row table.GetRowCount(); row) { for (int col 0; col table.GetColumnCount(); col) { String content table.GetCellText(row, col); if (content null || content.trim().isEmpty()) { // 根据列名智能填充默认值 String defaultVal getDefaultForColumn(col); table.SetCellText(row, col, defaultVal); } } } table.Regenerate(); } } } private String getDefaultForColumn(int col) { switch (col) { case 0: return 产品型号; // 第一列默认产品型号 case 1: return 版 本 号; // 第二列默认版本号 case 2: return 设 计; // 第三列默认设计 default: return N/A; } }执行逻辑修复函数只处理TITLE_BLOCK表避免误操作其他表格getDefaultForColumn()按列索引返回语义化默认值比填“无”更符合工程规范每次修复后立即Regenerate()确保用户在Pro/E界面中实时看到效果。从那以后我每次交付图纸包前都强制走一遍健康度扫描——不是为了追求100分而是让每一次修改都有迹可循、每一次返工都有预警。当图纸不再是“交出去就不管”的交付物而变成可度量、可追溯、可进化的数据资产时你才算真正驾驭了Pro/E工程图。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

从RULE论文拆解到规则学习:复现与落地方法论

从RULE论文拆解到规则学习:复现与落地方法论

最近有读者问我:ICLR 2026 上那篇 RULE 到底讲了什么,值不值得复现?说实话,光看这个标题,谁也没法立刻给你一个准确答案——RULE 这个缩写既可以是方法名,也可以是某个框架的代号。但正因为如此&#xff0c…

2026/10/19 5:42:27 阅读更多 →
MySQL误删数据怎么办?从binlog回放到备份恢复的完整自救指南

MySQL误删数据怎么办?从binlog回放到备份恢复的完整自救指南

做运维和开发这几年,最怕听到的一句话就是:“我好像把生产库的表数据误删了。”MySQL数据库误删恢复这事儿,平时没人当回事,可真撞上一次,能从凌晨三点忙到第二天中午,手抖一下就是一场事故。我自己就帮同事…

2026/10/19 5:42:27 阅读更多 →
搜索算法与OpenCV实战:构建消灭星星自动求解器

搜索算法与OpenCV实战:构建消灭星星自动求解器

简介:一套基于跨平台图形库Qt开发的消灭星星自动求解程序,面向游戏AI学习者和C/Qt开发者。程序采用单步最优蒙特卡洛方法自动计算消除策略,每轮模拟所有可能消除组合并评估预期得分,选择最优方案执行,平均得分可超过55…

2026/10/19 5:42:27 阅读更多 →

最新新闻

多功能表单源码系统:打通信息收集、预约与收款闭环

多功能表单源码系统:打通信息收集、预约与收款闭环

我现在做的这个“多功能表单源码系统”,说白了就是把信息收集、客户预约和线上收款这三件事,塞进一套统一的后台里,用一个表单搞定从“用户填单”到“客户付钱”再到“商家收款”的完整链路。如果你经营的是咨询工作室、兴趣培训班、家政服务…

2026/10/19 6:25:49 阅读更多 →
用友BIP销售出库单报税国家/地区字段配置与税务合规实践

用友BIP销售出库单报税国家/地区字段配置与税务合规实践

1. 先把它当“税务档案袋”而不是一个普通字段做过供应链或者ERP实施的人都有体会,业务单据上很多字段平时不起眼,一旦到了月末结账、税务稽查或者集团合并报表的时候,才发现当初没有规范维护,回头补数据简直是一场灾难。“报税国…

2026/10/19 6:25:49 阅读更多 →
GPU性能榨取实战:CUDA底层调优七步法

GPU性能榨取实战:CUDA底层调优七步法

1. 这不是“调参指南”,而是一份GPU算力榨取实录2026年,AI GPU CUDA应用系统早已不是实验室里的炫技玩具,它跑在金融风控的实时决策链路上,嵌在工业质检产线的毫秒级响应模块里,支撑着某高校智能医疗影像平台每天处理上…

2026/10/19 6:25:49 阅读更多 →
CANN深度优化Kimi K3实现2.8倍推理加速

CANN深度优化Kimi K3实现2.8倍推理加速

1. 项目概述:这不是一次简单的模型移植,而是一场底层算力的重新校准“2.8倍性能提升!基于CANN实现Kimi K3高性能推理”——这个标题里藏着三个关键信号:倍数级提升、CANN框架、Kimi K3模型。它不是在说“跑得更快一点”&#xff0…

2026/10/19 6:25:49 阅读更多 →
图像着色入门:用PyTorch CNN实现黑白图自动上色

图像着色入门:用PyTorch CNN实现黑白图自动上色

简介:本资源是一套基于卷积神经网络(CNN)实现图像自动着色的完整Python源码项目,面向计算机科学、人工智能、数据科学等专业的在校学生、课程教师及初学者,适用于深度学习课程设计、大作业、毕设原型开发与算法实践入门…

2026/10/19 6:25:49 阅读更多 →
MySQL数据预处理实战:从清洗到性能优化的完整指南

MySQL数据预处理实战:从清洗到性能优化的完整指南

做数据分析的人都知道,真正挤占时间的往往不是建模调参,而是把乱七八糟的原始表收拾成能用的样子。前阵子接手一张订单明细表,缺省值占了一成多,手机号格式五花八门,日期列里还混着字符串,那一刻我才重新正…

2026/10/19 6:24:48 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 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/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于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/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 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/19 2:54:50 阅读更多 →
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 阅读更多 →