获取CAD的方式
可以,已经找到了,而且原 VVS 里这段逻辑比现在 BoardImageViewPlugin 里更完整。
最关键的位置在原始 VVS 源码 PanelDisplay.cs,CAD 模式取资源路径的大致流程是:
先看本地缓存
PanelDisplay.cs:955
cacheJobPath = Path.Combine(LocalCadCachePath, job.CADName)
PanelDisplay.cs:956
cadPath = ...\CadCache\{job.CADName}\steps\{job.MasterStepName}\layers\{layerInfo.CADName}缓存没有时,先去共享目录
PanelDisplay.cs:968-970
默认从shareFolder下拼
...\{job.CADName}\steps\{job.MasterStepName}\layers\{layerInfo.CADName}还有一个特殊兜底:直接按 job 名去找
cadjob
PanelDisplay.cs:974-975
\\{machine}\CamtekStorage\JobStorages\Storage1\{job.Name}\cadjob\steps\{job.MasterStepName}\layers\{layerInfo.CADName}如果上面还没命中,再遍历
JobStorages下的各个 storage
PanelDisplay.cs:983-989找到后把相关 CAD 文件复制到本地缓存,再真正加载
PanelDisplay.cs:998-1006
最终真正喂给FromCADJob(...)的不是网络路径,而是本地缓存根目录CadCache\{job.CADName}
然后用layerInfo.CADName + job.MasterStepName去开层。
另外,原 VVS 自己的 PanelDisplay 也在 D:\Csharp\Sources\Tools\VVS\PanelDisplay.cs,但“取 CAD 资源路径”的完整实现明显是在 CDB_SDK.Controls.PanelDisplay 这份里。
和你现在插件里的差别也很明确:
- 现在插件在 CadCacheService.cs 里是直接固定拼
\\{host}\CamtekStorage\JobStorages\Storage1\{jobName}\cadjob - 原 VVS 不是只走这一条,它是
本地缓存 -> shareFolder/job.CADName -> job.Name/cadjob -> 遍历 JobStorages
这一整套回退链
所以答案是:能找到,而且原 VVS 的 CAD 路径获取逻辑就在 CDB_SDK\Controls\PanelDisplay.cs,不是只有你现在插件里这条固定 UNC 路径。
评论 0
发表评论
暂无评论,快来发表第一条评论吧!