CAD机械版用脚本批量更新标题栏和明细表样式的操作

在企业标准化推进过程中,标题栏和明细表的样式往往需要统一调整。如果逐张图纸手动更换,面对几十上百张旧图纸时,工作量巨大且容易遗漏。中望CAD机械版提供了批量脚本操作功能,可以通过加载指定的脚本文件,自动将旧图纸中的标题栏和明细表替换为新样式。脚本支持两种场景:一是标题栏名称未变但样式改变,只需删除部分代码重新构造;二是名称也发生变化,直接替换对应的名称字符串。下面说明脚本的调用入口和核心代码的调整逻辑。

问题描述

图幅的标题栏或明细表样式发生了变化,如何让旧图纸能够更新样式,是否可以通过脚本实现?

操作步骤

  1. 在【机械】菜单下点击【辅助工具】-【批量脚本操作】,加载对应的脚本文件。
  2. 根据实际情况,在【脚本编辑窗口】中打开脚本并调整代码。
  3. 如果标题栏名称前后未变更、但是样式变更了,则删除代码中的两行替换语句,即 (setq frame (subst “TJK明细表” “明细表1” frame)) 与 (setq frame (subst “TJK标题栏” “标题栏1” frame)),重新构造标题栏。
  4. 如果标题栏名称前后发生变化,则直接用标题栏名称进行替换,其中【标题栏1】是旧图纸标题栏名称,【TJK标题栏】是新图幅中标题栏名称。
  5. 脚本中,用【Zwm_DbOpenFile】打开当前图纸(此语句为脚本必写语句);用【ssget】读取旧的明细表、标题栏和附加栏;用【Zwm_DbGetFrameCount】统计图纸中的图框数量;用【Zwm_DbSwitchFrame】逐个切换图框。
  6. 通过【Zwm_DbSetFrame】与【Zwm_DbBuildFrame】按照读取的标题栏数据重新构造并生成标题栏(标题栏样式发生变化、附加栏取消)。
  7. 用【ERASE】删除旧的附加栏、明细表和标题栏,再用【ZWMPARTLIST】生成新的明细表。
  8. 用【Zwm_TitleSetItem】把版本号、第几页、总页数等空白项补齐为默认值(如版本号填 V01、页数填 1),并清空数量数据(内码为 MTSL)。
  9. 用【Zwm_DbRefreshTitle】刷新标题栏,最后【zoom】缩放到最大窗口,【qsave】保存图纸,【close】关闭图纸,以便逐个替换。

说明

使用该脚本前,建议先用一份旧图纸做测试,确认替换效果符合预期后再批量处理。如果新旧图纸的标题栏名称相同但样式不同,需要删除代码中那两行 subst 语句,让脚本直接按照新样式重新构造标题栏。

脚本末尾的【close】语句用于关闭当前图纸,有此语句方可实现逐个替换,否则会停留在当前处理图纸的窗口。对于不熟悉脚本编辑的用户,只需关注代码中带中文注释的部分,其他部分保持默认即可。

评论