SolidWorks文档管理闲谈
SolidWorks文档不同于AutoCAD、PDF、Word等独立文件,大部分SolidWorks文档都依赖其他文档,由其他文档组合而成。如下图:
上图中,如果最低层的“零件1”更改了文件名或者移动存放路径,而没有做恰当处理的话,“组件1”和“部件1”都将无法正确显示。
SolidWorks文档通常是用“代号+空格+名称”进行命名,如上图“KK.01.01”是代号,“零件1”是名称。为了区分新旧版本,最直观的方式是在文档名称末尾附加版本标记。
列如:“KK.01.01 零件1 版本A”改版后变成“KK.01.01 零件1 版本B”。
这种方式虽然直观,但是造成了“恰当处理”相关文档的困难:
上例中,“KK.01.01 零件1 版本A”变成“KK.01.01 零件1 版本B”,需要把其直接父级组件“KK.01.00 组件1”原本记录的依赖信息“KK.01.01 零件1 版本A”对应变成“KK.01.01 零件1 版本B”。如果“零件1”只有一个直接父级“组件1”,在SolidWorks打开“组件1”的情况下,对“零件1”进行改名,SolidWorks程序会自动记录这个变化。实际情况往往比这个复杂,可能会遇到的困难:
- 如果“零件1”是个通用件,直接父级组件不止一个,需要把他们全都找出来,写程序可以辅助寻找,但是还是比较费时;
- 如果遵循文档需要加上版本标记的原则,“零件1”的直接父级“组件1”也需要改名加上适当的版本标记,并且因为“组件1”改名,其直接父级“部件1”也同样需要改名,如果“部件1”还有直接父级,接着改!另外,“组件1”、“部件1”改名的时候又会遇到困难1。
有专业的产品数据管理软件(PDM)理论上可以解决困难1(在将某个检入文档库的时候,会将该文档被哪些库内文档使用到的信息记录进数据库,改名的时候做相应处理),但是运行起来太慢,不推荐!
建议:
- 提前规划好SolidWorks文档的存放路径,不要轻易移动;
- 版本信息不要体现在SolidWorks文档名称里,只在文档内部内容中体现。前例中,如果“KK.01.01 零件1”的实际内容变更为B版本,文档名称保持不变,则“组件1”和“部件1”的实际内容就会自动变成新版本。至于想保留旧版本备查怎么办,见下文。
推荐两种文档管理的方式:
- 使用gitblit(git的服务器版)。开源、免费、优秀、运行速度快、能妥善保留旧版本、协同编辑方便。 基本使用流程:管理员新建一个服务器端文档库的特殊分支,客户端获取这个分支到本地电脑,编辑完成后提交分支到服务器端,管理员获取这个分支进行审核,合格后合并到主分支。主分支作为正式分支共享使用。自带版本管理功能,需要旧版本,根据修改日志,切换下就可以了。
- 使用FreeFileSync (同步软件)。开源、免费、优秀、运行速度快。 基本使用流程:客户端同步服务器端文档到本地电脑,编辑完成后通知管理员,管理员同步客户端的文档到服务器电脑(同步之后是不能撤销的,所以同步之前要另行想办法确认好文档的正确性)。这种方式,不能完好的保留SolidWorks文档的旧版本(原路径、原名称都要保留,需要时能快速恢复,才算得上完好、才完整可用),替代方式是把旧版本SolidWorks文档转换成AutoCAD、PDF的格式进行保留。
ps:有些公司改版的时候,图省事喜欢把版本标记和代号混合起来用,比如“KK.01.01A 零件1”、“KK.01.01B 零件1”,造成的混淆,谁用谁知道。