多年以前,我给一家做非标设备的公司做SolidWorks部署,车间加设计部一共七八十人,只有二十来个浮点许可。当时所有人都把模板存在自己电脑里,你改一版图纸格式,他改一版标题栏,焊件轮廓五花八门,材料库还停留在“普通碳钢”的时代。让我印象最深的是,有个工程师画的钣金件,居然在自己电脑上用的是旧版国标型材库,别人打开他的装配体后,整个特征树全是红色的问号。折腾了几轮之后,我干脆把整个SolidWorks环境做成了统一共享配置:许可证集中管,模板和库走服务器,设置批量推送。从那以后,新同事入职半小时就能进入状态,图纸风格一致,换电脑也不会丢配置。这套方案后来陆续在几十人的设计团队、上百人的制造企业里验证过,今天整理出来的就是一套可以直接抄作业的SolidWorks多人共享配置方案,项目本身不复杂,但每一步背后的参数、权限、端口、服务状态,都值得认真讲一讲。
1. 方案定位:多人共享到底要解决什么问题
1.1 这不是简单“装一个软件”,而是一套环境治理方案
很多人一说多人共享,第一反应就是“装个网络版许可证不就行了”。实际上,网络许可证只是整条链路里最硬的一层,真正让一个团队觉得“好用”的,是后面的模板、标准件库、材料库、设置偏好能保持一致。SolidWorks本身允许每个用户自定义界面、快捷键、模板路径,但如果没有集中管理,这些自定义就是灾难的源头。
我给这套方案的定义是:在公司内部搭建一个统一的SolidWorks运行环境,把“许可证授权”“资源库路径”“用户设置”三层全部集中到服务器端,客户端只负责装上软件、指对路径、连接服务。最终做到任何一个工位,哪怕是新入职的工程师,打开SolidWorks后看到的模板、标准件、材质、焊件轮廓、标注样式都是同一个版本,而且不会因为换电脑、重新装系统而丢失配置。
1.2 需要共享的三类核心资源
先明确一点,SolidWorks共享不是把安装目录共享出去,而是共享以下几类东西。
第一是许可证授权。这是最基础的共享,通过SolidNetWork License Manager把多套许可集中在一台服务器上,客户端在启动时动态借用其中一个授权,用完就释放。用生活里的场景类比,就像公司前台放了几把会议室钥匙,谁要用就登记领一把,用完还回去,而不是每人随身带一把。
第二是资源库,包括工程图模板、图纸格式、Toolbox标准件库、材料库、焊件轮廓、自定义属性文件、表格模板、宏文件。这些文件放在服务器共享目录中,工程师在SolidWorks里只需要指定网络路径,就能直接调用。
第三是用户设置,包括快捷键、菜单布局、选项配置、宏快捷键、保存路径。SolidWorks设置管理器可以把这些打包成.sldsetz文件,由管理员统一配置后下发给所有客户端。
1.3 适用规模与场景
这套方案从几人的小设计组,到上百人的大型制造企业都适用,但重点发力场景是50到200人规模。人数太少的时候,许可和资源直接摊在几台机器上也够用;但超过三五十人,或者分属多个部门,图纸交互频繁,就必须做集中管理。尤其是200人左右的大型企业,往往涉及机械、电气、仿真多个模块,出图标准必须统一,否则下游工艺、采购、加工环节会不断被图纸问题打断。
我落地过的典型场景包括:非标自动化公司,工程师流动率高,需要让新人快速上手;家电制造企业,设计和工艺分属不同办公区,需要共用同一套库和模板;还有外企的分公司,总部要求所有子公司统一图纸格式,这时候共享配置就是从总部推下来的硬性要求。
2. 许可证共享层:浮动许可的部署与关键参数
2.1 浮动许可的运行机制
SolidWorks的专业版、白金版以及各插件,都可以授权为“网络许可”。网络许可由一台专门的许可服务器统一管理,服务器上插一个加密狗或者注册激活码,然后以Windows服务的形式运行一个叫SolidNetWork License Manager的服务,客户端连接这台服务器来获取授权。
它的核心优势在于并发复用。假设公司买了20个SolidWorks Standard网络许可,并不意味着只能有20台电脑能用,而是同一时间最多允许20个人在线使用。如果公司有50个设计人员,平时同时开工的只有20人左右,20个网络许可就够用了,明显比买50套单机版划算。
我见过不少采购踩坑的例子:销售把网络许可和单机许可混着卖,结果许可证管理器里面既有Standalone又有Network类型,客户端连不上也查不出来。建议采购时直接在合同里注明“Network License”,装好后第一时间在SolidNetWork License Manager里确认许可类型。
2.2 服务器端安装步骤
许可证服务器安装并不复杂,但要按顺序来,不然后面排查问题会绕很多弯路。
- 准备工作:给服务器分配固定IP,设置计算机名,安装时避免使用动态IP。原因是客户端指向许可证服务器时,用的是IP或计算机名,一旦IP变化,所有客户端都要改设置。
- 安装SolidNetWork License Manager:在SolidWorks安装包中的管理工具目录下找到安装程序,单独安装到服务器,不要和SolidWorks主程序混装。
- 激活许可:启动SolidNetWork License Manager,用管理员账号登录,填入SolidWorks的序列号,点击“激活”。这里必须保证服务器能访问SolidWorks的授权服务器,企业内网通常需要配置代理或者临时放开外网访问。
- 启动服务:激活完成后,服务管理器中会出现FlexNet Server(Dassault Systemes)或类似名称的服务,手动启动一次,确认状态为“正在运行”。
- 检查信息:在SolidNetWork License Manager界面确认已激活的许可数量、种类、到期时间,生成许可文件。
2.3 客户端指向许可证服务器的设置
客户端装SolidWorks时,安装向导会让你选择“使用网络许可”,并要求填写服务器地址,这时直接填服务器IP或计算机名即可。如果安装时选错了,后续不用重装软件,可以通过修改注册表来修正。
我这里更推荐用环境变量的方式:在每台客户端上新增系统环境变量SW_NETWORK_LICENSE_FILE,值为“25734@服务器IP”。这个做法的好处是,当许可证服务器迁移或换IP时,只需要在域策略里批量改环境变量,不用一台台去翻注册表。
注意:如果客户端同时存在单机许可和网络许可的残留信息,SolidWorks会优先尝试读取本机注册表,再尝试连接网络服务器,这个顺序常常导致启动慢。干净的做法是只保留一种路径配置。
2.4 端口、防火墙与服务状态
SolidWorks网络许可默认使用TCP端口25734作为客户端与许可服务器之间的通信端口,25735用于管理与借用。防火墙中必须开放这两个端口,很多部署失败案例我都见过,其实是Windows防火墙没放行,或者杀毒软件把FlexNet服务给拦掉了。
许可证服务是否正常,不能只看“服务已启动”就算完,正确的检查方式是:在服务器上打开SolidNetWork License Manager,看许可列表是否能正常显示;再从一台客户端上用telnet命令测试端口通不通,命令格式是“telnet 服务器IP 25734”,如果弹出黑窗口且没报错,说明端口正常。
2.5 200人规模下的许可数量规划
200人企业做规划,首先要区分“总人数”和“并发数”。一般设计部不会所有人同时打开SolidWorks,出图高峰可能出现在上午十点和下午三点,按照制造业常见的使用率,并发数通常为总人数的30%到50%。
举例来说,200人的工程团队里,有120人每人一台工作站,建议先按40到50个网络许可起步。上线后观察一个月SolidNetWork License Manager里的历史记录,看峰值使用量是否逼近许可上限。如果每天都有“拒绝排队”的情况,再补购也不晚。这里有个省钱的空间:SolidWorks Standard、Professional、Premium对应不同的价格,很多做结构设计的用Standard足够了,只有需要布线、管道、仿真、PDM的管理岗位才需要跑Professional或Premium,别给所有人都配最高版本。
3. 资源共享层:模板、材质、设计库的集中配置
3.1 共享目录的结构规划
资源库共享,本质上就是把所有设计师用到的公共文件放到一个所有人都能访问的网络目录,然后在SolidWorks里统一指向这些目录。目录规划直接决定后期维护成本,建议按下面这个结构建:
\\fileserver\solidworks_shared\ ├─ templates\ // 零件、装配体、工程图模板 ├─ sheetformat\ // 图纸格式 ├─ toolbox\ // Toolbox标准件库 ├─ materials\ // 材料库(.sldmat) ├─ weld profiles\ // 焊件轮廓 ├─ custom properties\ // 自定义属性模板 ├─ macros\ // 宏程序 └─ settings\ // 设置备份与推送包这个结构建好之后,对各部门只开放只读权限,管理员单独维护一个可写账号。只读权限非常关键,否则某个工程师不小心改了模板文件,全公司图纸格式都会跟着变。
3.2 工程图模板与图纸格式
SolidWorks工程图模板(.drwdot)和图纸格式(.slddrt)是两张不同的东西,很多人总是混淆。模板决定了新建工程图时的默认设置,包括投影类型、标注样式、图层、字体、线型;图纸格式决定图框和标题栏,比如公司Logo、图号框、设计者签字栏。
在服务器上建立模板目录后,必须在每台客户端的“系统选项—默认模板”和“文件位置—模板”中都指向网络路径。特别注意,SolidWorks有些操作还是会尝试读取本地模板,比如从零件直接生成工程图时,如果本地模板空了,会弹窗要求选择。稳妥的兜底方案是:保留一个本地模板最低配置,同时把公司默认模板放在第一位,这样既不报错,又能保证出的是公司统一格式。
3.3 Toolbox标准件与国标件库
Toolbox是SolidWorks自带的标准件库,包含螺栓、螺母、垫圈、销、轴承等。多人共享时,Toolbox数据目录默认在本地,很容易出现每个人调用的螺栓规格不一致的问题。建议把Toolbox数据目录改到服务器共享路径,在“系统选项—异型孔向导/Toolbox”里设置。200人规模下,还要把Toolbox写成库文件夹,只让管理员有写权限,普通用户只读,防止有人误加自定义配置把库搞乱。
国标型材库这类额外库,像铝型材、角钢、槽钢、工字钢的草图轮廓,属于典型的“每个人都想要,但每个人手里版本都不一样”的文件。把这些轮廓文件统一放到“焊件轮廓”目录,并设置为共享路径,以后调用时就能完全一致。
注意:Toolbox放到网络路径后,打开大型装配体时读取速度可能比本地稍慢。如果网络或存储性能跟不上,建议先做一轮压力测试,别直接在生产环境切换。
3.4 材料库、自定义属性与焊件轮廓
材料库文件后缀是.sldmat,可以自定义物理属性、外观、密度等。把自定义材料库放到服务器路径后,在SolidWorks“系统选项—文件位置—材料数据库”中指定该文件即可。
自定义属性通常配合PDM或BOM使用,存放图号、材料、重量、设计人员等参数的模板文件需要统一。我一般建议把属性模板放到共享目录,并建立一套命名规范,属性名不要随便改,否则工程图和ERP对接时,映射关系会乱成一团。
焊件轮廓是经常被忽略的点。SolidWorks默认的焊件轮廓可能不全,很多公司会自己收集型材厂家的轮廓文件,这些文件是标准草图,放到共享路径下后,所有做焊接件设计的工程师就能调用同一个轮廓库,生成的结构构件截面尺寸不会再出现“你看我的对,我看你的错”的问题。
3.5 通过设置管理器批量推送用户配置
SolidWorks设置管理器(SolidWorks Settings Manager)是批量推送配置的利器。它可以收集快捷键、鼠标手势、系统选项、自定义视图等,生成一个.sldsetz文件,再由管理员分发给所有端。
我在200人规模项目里的做法是:先在管理员电脑上把整套配置调好,导出设置包,放到共享目录,然后写一个登录脚本,在用户登录时自动检测本地配置版本,发现版本不一致就自动导入新版配置。这样能避免“老员工懒得跟新标准,新员工又找不到设置”的问题。
4. 设备与网络基础设施方案
4.1 许可证服务器与文件服务器选型
200人企业的共享部署,通常有两台角色不同的服务器:一台跑SolidNetWork License Manager,一台跑共享文件服务。如果公司规模小,可以合并成一台,但我强烈建议拆开,原因是许可服务对稳定性要求极高,而文件服务会受磁盘I/O影响,两者互相干扰时,表现形式就是SolidWorks偶尔启动提示“无法获得许可”,但服务明明在运行。
许可证服务器的硬件要求不高,4核CPU、8GB内存足够应对200个客户端的并发请求,更关键的是网络稳定性。文件服务器则主要吃存储和内存,建议最少8核CPU、16GB内存起步,硬盘全部使用SSD,有条件上RAID10或者NVMe组阵列。200人团队产生的SolidWorks模型文件、模板、库文件数量很大,机械硬盘在多人同时读取时会明显卡顿,别在这上面省预算。
4.2 客户端工作站硬件规格
客户端配置直接决定SolidWorks的日常体验,尤其是处理大型装配体时。这里给出一个针对复杂装配体的参考配置:
| 部件 | 最低参考 | 推荐配置 |
|---|---|---|
| CPU | 8核以上 | 16核以上,主频至少3.0GHz |
| 内存 | 32GB | 64GB |
| 显卡 | 兼容OpenGL 4.5 | 专业显卡或认证游戏卡,显存8GB+ |
| 硬盘 | 256GB SSD | 1TB NVMe SSD |
| 显示器 | 1080P | 2K/4K,色彩管理 |
内存是SolidWorks性能最敏感的指标。打开一个几百兆的大型装配体,内存占用十几个GB很正常,同时开多个模型时更容易吃满。我自己测试过多次,16GB内存做大型装配体会频繁出现卡顿,32GB起步舒适度完全不同。
4.3 网络带宽与存储方案
多人共享部署最常见的瓶颈,不在CPU和内存,而在网络和存储。SolidWorks保存一个完整装配体时,可能一次性写入几百MB甚至几个GB的数据,如果公司内网还在使用百兆交换机,十几个人同时保存,文件服务器必然成为瓶颈。
我的经验是:核心文件服务器到设计部之间,至少跑千兆网络;如果设计人员超过100人,或者经常操作大装配体,建议交换机升级到万兆,服务器网卡使用万兆网卡,客户端可以继续用千兆。存储设备上,不建议用单盘NAS拼便宜,200人团队至少用4盘位以上、支持RAID的存储设备,并且做定期备份。曾经有个客户把共享库放在一个双盘位的家用NAS上,一个磁盘挂了,所有SolidWorks模板和标准件库全没了,教训相当深刻。
4.4 200人团队的典型网络拓扑
拓扑上我习惯分成三块:设计部生产网络、许可服务器区、共享存储区。生产网络里跑SolidWorks客户端,通过交换机连接到中央存储;许可服务器放在单独的VLAN或网段,避免广播流量干扰。客户端和服务器的通信链路不要跨三层NAT,保持二层通联最稳。
5. 部署实操实录:从服务器到客户端的完整流程
5.1 部署前的信息收集与清单
正式动手前,花一天时间收集以下信息,能省后面大量排查时间:
- 公司现有Active Directory域结构,是否统一管理客户端域名
- 设计部门人员名单、客户端计算机数量、SolidWorks版本和使用模块
- 现有服务器、存储设备、交换机型号和网络拓扑
- 采购的SolidWorks序列号、许可类型、许可数量
- 是否需要兼容PDM、模拟仿真、电气设计等模块
我每次都会把检查结果整理成一张表,发到项目群里让相关人员确认。很多人跳过这一步直接开工,结果装到一半发现序列号不对,或者某个部门用的插件版本不兼容,返工成本比预想的高得多。
5.2 服务器端部署流程
在服务器上按以下步骤操作,每步验证通过后再往下走:
- 操作系统准备好固定IP、计算机名、时间同步,建议开启NTP同步,因为客户端和服务器时间差太大会导致许可校验失败。
- 安装SolidNetWork License Manager并激活许可,确认服务启动成功。
- 创建共享目录结构,设置NTFS权限:Users组只读,Administrator和设计部主管可写。
- 复制模板、图纸格式、Toolbox数据、材料库、焊件轮廓等到各自共享目录。
- 设置防火墙入站规则,放行TCP 25734和25735端口。
- 从一台测试客户端连接许可服务器,启动SolidWorks验证许可获取是否正常。
5.3 客户端部署的两种主流方式
客户端部署有三种方式,实际用下来各有优劣:
- 手工安装:适合机器数量少的情况,每台机器通过SolidWorks安装向导指定网络许可,再手动设置资源库路径。
- 管理映像部署:用SolidWorks安装管理器的“管理映像”功能,把安装参数、许可服务器地址、模板路径都固化在映像中,客户端静默安装。200人规模强烈推荐这种方式,能够保证每台客户端的初始配置一致。
- 域策略推送:通过Active Directory把设置管理器生成的.sldsetz文件和注册表配置批量下发。
管理映像部署是我在200人团队里最常用的方案,先在一台标准工作站上测试映像,确认模板、库、许可都没问题后,再通过网络分发。分发时建议分批次,一次性推送200台电脑,既占带宽又容易引发连锁问题。
5.4 验证测试的关键点
部署完成后不能直接宣布完成,至少要做一轮测试。我一般挑三台不同配置的客户端,分别执行这几项验证:
- 启动SolidWorks没有任何许可错误提示,许可信息显示为“网络许可”
- 新建零件、装配体、工程图时,默认模板自动带出公司图框
- 调入Toolbox常用件,确认数据来源于服务器共享目录
- 建立焊件文件,调用共享型材轮廓正常
- 修改材料库中的材料属性,其他客户端同步生效
- 模拟同时保存大装配体,观察文件服务器响应时间
6. 常见问题与排查技巧实录
6.1 无法获得SolidWorks Standard许可
“无法获得下列许可SolidWorks Standard”是出现频率最高的错误。原因通常集中在几个点上:
- SolidNetWork License Manager服务没启动:服务管理器里检查FlexNet Server状态,启动失败看系统事件日志
- 客户端无法访问服务器:ping服务器IP,测端口TCP 25734是否通
- 许可类型不匹配:服务器上是Standard许可证,但客户端请求的是Professional或Premium,就会提示“无法获得许可”
- 服务器时间不同步:FlexLM许可校验会对比客户端和服务器的时间戳,偏差超过一定范围就直接拒绝
- 许可已经被占用:并发数量达到上限,服务器端有日志记录明确的拒绝原因
排查这类问题,我通常会直接在服务器上用SolidNetWork License Manager查看“许可使用历史”,确认是“不被允许”还是“已满”。如果已满,说明要加购许可;如果被拒绝,再逐步查网络和服务状态。还有一个冷门但常见的原因:杀毒软件实时防护把许可证服务器当恶意程序拦截了,需要在杀毒白名单中加入服务进程。
6.2 FlexNet Server服务无法启动
有一段时间,我在客户现场频繁遇到“FlexNet Server服务无法启动”的问题。最常见的两个原因:一是服务器没有安装VC++运行库或.NET组件,服务启动直接报模块错误;二是上一个许可证进程没有完全退出,服务端口被占用,导致新服务启动失败。
处理思路是:先看Windows事件查看器里的详细错误信息,如果提示端口被占用,找到占用进程并结束它,然后重启服务。如果提示缺少组件,去SolidWorks安装目录下的redist文件夹里补装运行库。这里要提醒,SolidNetWork License Manager版本和SolidWorks主程序版本最好保持一致,否则也会出现莫名其妙的服务异常。
6.3 SolidWorks崩溃与“可用的窗口资源极低”
SolidWorks崩溃是很多工程师的个人痛点,多人共享配置下,往往还叠加了网络共享库读写延迟的问题。“可用的窗口资源极低”这个警告,我最早还以为是Windows系统资源不足,后来排查才发现,它和图形句柄、GDI资源、显卡显存占用密切相关。
这类问题在多人环境中会显得特别频繁,主要原因很可能是:
- 显卡驱动版本不是SolidWorks认证的版本,OpenGL渲染不稳定
- 电脑长时间不重启,窗口句柄泄露到接近系统上限
- 使用了大型装配体模式,但显卡显存不足,频繁切换视图导致崩溃
- 共享服务器路径读写延迟,打开零件时超时报错
针对单人工作站,我建议做四件事:安装SolidWorks官网认证的显卡驱动,关闭不必要的UI动画,把图形模式改为“软件”再改回“增强图形性能”看效果,另外养成每天重启一次电脑的习惯。对管理员来说,如果是全员频发崩溃,优先排查显卡驱动基线是否统一,而不是一台台去修。
6.4 SolidWorks Electrical无法连接SQL Server
共享配置方案里如果带SolidWorks Electrical模块,就绕不开SQL Server。常见报错是“无法连接到SQLServer”,原因可能是SQL Server服务没有启动、用户名或密码错误、TCP/IP协议没有启用。
SolidWorks Electrical使用SQL Server存储原理图和元件库,多人共享时,数据库服务器必须能被所有客户端访问,而不是装在某个工程师的本地电脑上。我见过不少小公司为了简化部署,把SQL Server装在一台普通办公电脑上,一旦那台电脑关机,所有电气工程师都没法工作。正确做法是把SQL Server独立部署,并开启SQL Server Browser服务,让客户端通过计算机名自动发现实例。
如果局域网内很多客户端同时连接数据库,性能瓶颈也会很明显。因此,在生产环境里不要图省事用SQL Server Express,它默认只有1GB内存可用,并发稍高就会出现连接超时。
6.5 “保存到先前发行版本需要订阅服务”的提示
多人协作时经常要互存低版本文件,结果SolidWorks提示“保存到先前发行版本需要订阅服务”。这个提示是SolidWorks的常规设置,并不是配置错误。简单说,只有有效订阅服务的用户才能另存为旧版本格式,否则需要安装对应旧版本软件来另存文件。
在共享环境下,我的建议是:统一团队内使用的SolidWorks版本,不要一个部门用2023,另一个部门用2024,不然天天都要在版本转换上纠缠。如果公司确实需要交付旧版本给客户,优先在许可服务器上确认当前订阅状态,再用购买了订阅服务的账号做另存。
6.6 安装出错与插件兼容性问题
部署时还会遇到“安装项目错误: 项目文件不存在(c:\windows\solidworks\im_xxxxx)”这类问题,通常是安装源不完整,或者杀毒软件拦截了解压过程。因为SolidWorks安装包本质是一个自解压包,第一次运行会把文件释放到系统临时目录,再执行真正的安装进程。如果这个释放过程被拦截,就会留下残缺目录。
插件方面,国标型材库、GB材料库等第三方插件,往往需要和SolidWorks版本严格匹配。在共享配置方案里,如果插件安装在每个客户端本地,版本不统一会让模型打开失败。更好的做法是优先使用SolidWorks自带的配置能力,而非依赖插件,或者把插件统一放进管理映像中分发,并锁定版本号,不允许用户自行更新。
写在最后的一个小建议
这套SolidWorks多人共享配置方案,我前前后后在不同规模的企业里落地了好几轮。如果让我总结什么最容易被低估,不是技术难点,而是“统一”这件事在执行层面的阻力。老员工已经习惯了自己的快捷键和模板,新员工拿着公司标准却不知道怎么用,这种情况下,哪怕你服务器配置得再完美,也要在推广期多做一些培训。我在其中一个项目里专门给设计主管开了一次半小时的配置说明会,讲清楚共享目录的结构和权限逻辑,后续维护反而是最轻松的。
另外,所有部署过程中改动的注册表和配置文件,做完之后一定要留档。我在后期维护时靠这些记录快速定位过不少问题。SolidWorks的多人共享部署没有太多玄学,把许可、路径、权限、基线版本管住,剩下就是稳定的日常使用。