> **本文回答**：vjcad 支持通过 URL 参数（前缀 `vcad_`）让页面加载后自动打开图纸 / 激活面板。常量定义在 `MainView.URL_PARAMS`（`MainView` 类静态成员），包括 `MAPID / VERSION / BRANCH / PATCH / READONLY / TILE / PANEL / WORKSPACE`。

## 一、参数表

| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
| `vcad_mapid` | string | 是 | — | 图纸 ID |
| `vcad_version` | string | 否 | 最新 | 版本号 |
| `vcad_branch` | string | 否 | `main` | 分支 |
| `vcad_patch` | string | 否 | `base` | Patch ID |
| `vcad_readonly` | boolean | 否 | false | 只读 |
| `vcad_tile` | boolean | 否 | false | 瓦片模式 |
| `vcad_panel` | string | 否 | — | 初始激活的侧边栏面板名 |
| `vcad_workspace` | string | 否 | 配置/缓存值 | CAD 后端工作区名 |

MCP 参考：`vjcad/doc/file/file-operations.md`。

## 二、示例 URL

```
# 自动打开指定图纸
https://your-domain.com/?vcad_mapid=building_plan

# 打开指定版本，只读
https://your-domain.com/?vcad_mapid=building_plan&vcad_version=v2&vcad_readonly=true

# 瓦片方式打开大图纸
https://your-domain.com/?vcad_mapid=city_map&vcad_tile=true

# 打开图纸并激活 AI 助手面板
https://your-domain.com/?vcad_mapid=building_plan&vcad_panel=ai-assistant

# 仅激活面板，不打开图纸
https://your-domain.com/?vcad_panel=ai-assistant
```

## 三、处理流程

1. 页面加载完成 → 解析 `vcad_*` 参数
2. 有 `vcad_panel` → 激活指定侧边栏面板
3. 有 `vcad_mapid` → 按以下顺序打开图纸：
   1. 先看 `imports` 列表里有没有已转换好的 webcad
   2. 如果没有，再去 `serverMaps` 找原始 DWG → 自动导入 → 打开
   3. 如果 `vcad_tile=true`，则以瓦片方式打开

MCP 参考：`vjcad/doc/file/file-operations.md`。

## 四、代码访问常量

```js
import { MainView } from 'vjcad';

console.log(MainView.URL_PARAMS.MAPID);     // 'vcad_mapid'
console.log(MainView.URL_PARAMS.VERSION);   // 'vcad_version'
console.log(MainView.URL_PARAMS.BRANCH);    // 'vcad_branch'
console.log(MainView.URL_PARAMS.PATCH);     // 'vcad_patch'
console.log(MainView.URL_PARAMS.READONLY);  // 'vcad_readonly'
console.log(MainView.URL_PARAMS.TILE);      // 'vcad_tile'
console.log(MainView.URL_PARAMS.PANEL);     // 'vcad_panel'
console.log(MainView.URL_PARAMS.WORKSPACE); // 'vcad_workspace'
```

MCP 参考：`vjcad/doc/file/file-operations.md`。

## 五、典型场景：在分享链接里嵌入

```js
// 生成分享链接
function buildShareUrl(currentDoc) {
  const src = currentDoc.serverSource;
  const u = new URL(window.location.origin);
  u.searchParams.set(MainView.URL_PARAMS.MAPID, src.mapid);
  u.searchParams.set(MainView.URL_PARAMS.VERSION, src.version);
  u.searchParams.set(MainView.URL_PARAMS.BRANCH, src.branchName);
  u.searchParams.set(MainView.URL_PARAMS.READONLY, 'true');
  return u.toString();
}
```

## 反例

- 直接用 `?mapid=xxx`（漏掉 `vcad_` 前缀）：vjcad 不识别。
- 在 `cadView.onLoad()` 之前手动 open / panel：会被 URL 参数覆盖；建议要么完全交给 URL 参数，要么 `_panel` 不写在 URL 里。
- `vcad_tile=true` 但图纸不大：瓦片模式有性能开销，小图纸反而更慢。

## 参考（官方文档 MCP）

- 文档：`vjcad/doc/file/file-operations.md`
- 示例：`vjcad/example/file/01openfromserver.js`
