获取CAD的方式

admin | 2026-05-26 21:50 | 阅读 34 次

可以,已经找到了,而且原 VVS 里这段逻辑比现在 BoardImageViewPlugin 里更完整。

最关键的位置在原始 VVS 源码 PanelDisplay.cs,CAD 模式取资源路径的大致流程是:

  1. 先看本地缓存
    PanelDisplay.cs:955
    cacheJobPath = Path.Combine(LocalCadCachePath, job.CADName)
    PanelDisplay.cs:956
    cadPath = ...\CadCache\{job.CADName}\steps\{job.MasterStepName}\layers\{layerInfo.CADName}

  2. 缓存没有时,先去共享目录
    PanelDisplay.cs:968-970
    默认从 shareFolder 下拼
    ...\{job.CADName}\steps\{job.MasterStepName}\layers\{layerInfo.CADName}

  3. 还有一个特殊兜底:直接按 job 名去找 cadjob
    PanelDisplay.cs:974-975
    \\{machine}\CamtekStorage\JobStorages\Storage1\{job.Name}\cadjob\steps\{job.MasterStepName}\layers\{layerInfo.CADName}

  4. 如果上面还没命中,再遍历 JobStorages 下的各个 storage
    PanelDisplay.cs:983-989

  5. 找到后把相关 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 路径。

评论 (42)

发表评论
支持 Markdown 格式
f
fwlfyzexhw 2026-05-31 18:38

gurorfujgjrqhimohpzrolkptppxrj

x
xdhkjguulz 2026-05-31 18:38

wruqrmpyidrtisshqoqzhpfgdrujrk

f
fwlfyzexhw 2026-05-31 18:38

gurorfujgjrqhimohpzrolkptppxrj

x
xdhkjguulz 2026-05-31 18:38

wruqrmpyidrtisshqoqzhpfgdrujrk

f
fwlfyzexhw 2026-05-31 18:38

gurorfujgjrqhimohpzrolkptppxrj

f
fwlfyzexhw 2026-05-31 18:38

gurorfujgjrqhimohpzrolkptppxrj

x
xdhkjguulz 2026-05-31 18:38

wruqrmpyidrtisshqoqzhpfgdrujrk

f
fwlfyzexhw 2026-05-31 18:38

gurorfujgjrqhimohpzrolkptppxrj

x
xdhkjguulz 2026-05-31 18:38

wruqrmpyidrtisshqoqzhpfgdrujrk

f
fwlfyzexhw 2026-05-31 18:38

gurorfujgjrqhimohpzrolkptppxrj

x
xdhkjguulz 2026-05-31 18:38

wruqrmpyidrtisshqoqzhpfgdrujrk

f
fwlfyzexhw 2026-05-31 18:38

gurorfujgjrqhimohpzrolkptppxrj

x
xdhkjguulz 2026-05-31 18:38

wruqrmpyidrtisshqoqzhpfgdrujrk

f
fwlfyzexhw 2026-05-31 18:38

gurorfujgjrqhimohpzrolkptppxrj

x
xdhkjguulz 2026-05-31 18:38

wruqrmpyidrtisshqoqzhpfgdrujrk

f
fwlfyzexhw 2026-05-31 18:38

gurorfujgjrqhimohpzrolkptppxrj

x
xdhkjguulz 2026-05-31 18:38

wruqrmpyidrtisshqoqzhpfgdrujrk

x
xdhkjguulz 2026-05-31 18:38

wruqrmpyidrtisshqoqzhpfgdrujrk

f
fwlfyzexhw 2026-05-31 18:38

gurorfujgjrqhimohpzrolkptppxrj

x
xdhkjguulz 2026-05-31 18:38

wruqrmpyidrtisshqoqzhpfgdrujrk

f
fwlfyzexhw 2026-05-31 18:38

gurorfujgjrqhimohpzrolkptppxrj

x
xdhkjguulz 2026-05-31 18:38

wruqrmpyidrtisshqoqzhpfgdrujrk

f
fwlfyzexhw 2026-05-31 18:38

gurorfujgjrqhimohpzrolkptppxrj

f
fwlfyzexhw 2026-05-31 18:38

gurorfujgjrqhimohpzrolkptppxrj

x
xdhkjguulz 2026-05-31 18:38

wruqrmpyidrtisshqoqzhpfgdrujrk

f
fwlfyzexhw 2026-05-31 18:38

gurorfujgjrqhimohpzrolkptppxrj

f
fwlfyzexhw 2026-05-31 18:38

gurorfujgjrqhimohpzrolkptppxrj

x
xdhkjguulz 2026-05-31 18:38

wruqrmpyidrtisshqoqzhpfgdrujrk

f
fwlfyzexhw 2026-05-31 18:37

gurorfujgjrqhimohpzrolkptppxrj

x
xdhkjguulz 2026-05-31 18:37

wruqrmpyidrtisshqoqzhpfgdrujrk

f
fwlfyzexhw 2026-05-31 18:37

gurorfujgjrqhimohpzrolkptppxrj

x
xdhkjguulz 2026-05-31 18:37

wruqrmpyidrtisshqoqzhpfgdrujrk

x
xdhkjguulz 2026-05-31 18:37

wruqrmpyidrtisshqoqzhpfgdrujrk

f
fwlfyzexhw 2026-05-31 18:37

gurorfujgjrqhimohpzrolkptppxrj

x
xdhkjguulz 2026-05-31 18:37

wruqrmpyidrtisshqoqzhpfgdrujrk

x
xdhkjguulz 2026-05-31 18:37

wruqrmpyidrtisshqoqzhpfgdrujrk

f
fwlfyzexhw 2026-05-31 18:37

gurorfujgjrqhimohpzrolkptppxrj

x
xdhkjguulz 2026-05-31 18:37

wruqrmpyidrtisshqoqzhpfgdrujrk

f
fwlfyzexhw 2026-05-31 18:37

gurorfujgjrqhimohpzrolkptppxrj

x
xdhkjguulz 2026-05-31 18:37

wruqrmpyidrtisshqoqzhpfgdrujrk

f
fwlfyzexhw 2026-05-31 18:37

gurorfujgjrqhimohpzrolkptppxrj

x
xdhkjguulz 2026-05-31 18:37

wruqrmpyidrtisshqoqzhpfgdrujrk