问题描述:
如何对机械历史图纸的标题栏和明细表样式进行更换?
步骤指引:
利用机械版的批量脚本工具进行替换,替换的前提条件是:标题栏和明细表变更前后名称做区分。
- 点击菜单【机械-辅助工具-批量脚本操作】(【ZWMDWGBATCHSCRIPT】命令),选择脚本【ChangeTitleBlock】;
- 默认代码如下:
zoom
e
(setq bOpen(Zwm_DbOpenFile ""))
(setq nFrameCount(Zwm_DbGetFrameCount))
(while (> nFrameCount 0) (progn
(setq nFrameCount (- nFrameCount 1))
(setq FrameName(Zwm_DbGetFrameName nFrameCount))
(Zwm_DbSwitchFrame FrameName)
(setq Frame (Zwm_DbGetFrame))
(setq frame (subst "标题栏4" "标题栏1" frame))
(setq frame (subst "新的标题栏" "旧的标题栏" frame))
(setq frame (subst "新的标题栏1" "旧的标题栏1" frame))
(Zwm_DbSetFrame frame)
(Zwm_DbRefreshFrame)
(Zwm_DbBuildFrame 4)
)
)
qsave
close - 其中 (setq frame (subst "标题栏4" "标题栏1" frame))的代码行,第一个引号内容为新的标题栏名称,第二个引号里面为要替换的标题栏内容,
同理,在第二行中设置替换明细表名称,代码为: (setq frame (subst "新明细表1" "明细表1" frame)) - 代码行(Zwm_DbRefreshFrame)是需要删除代码行,有这一行代码存在,明细表不更新;
- 将代码行(Zwm_DbBuildFrame 4)中的整数4,改为12,即(Zwm_DbBuildFrame 12)
- 更改完成后,示例代码如下:
zoom
e
(setq bOpen(Zwm_DbOpenFile ""))
(setq nFrameCount(Zwm_DbGetFrameCount))
(while (> nFrameCount 0) (progn
(setq nFrameCount (- nFrameCount 1))
(setq FrameName(Zwm_DbGetFrameName nFrameCount))
(Zwm_DbSwitchFrame FrameName)
(setq Frame (Zwm_DbGetFrame))
(setq frame (subst "TJK标题栏" "标题栏1" frame))
(setq frame (subst "TJK明细表" "明细表1" frame))
(Zwm_DbSetFrame frame)
(Zwm_DbBuildFrame 12)
)
)
qsave
close
说明:
函数Zwm_DbBuildFrame 的值可以是下面枚举值的组合
eSwitchType_Frame = 1, //切换图框
eSwitchType_Scale = 2,
eSwitchType_Title = 4,
eSwitchType_Bom = 8,
eSwitchType_Dhl = 16 ,
eSwitchType_Fjl = 32 ,
eSwitchType_Csl = 64 ........
如果同时改变标题栏和明细表,传入的整型值应为 4+8=12,
相关链接:
★中望CAD机械版如何批量更换标题栏和明细表:https://confluence.zwcad.com/pages/viewpage.action?pageId=125209574