> **本文回答**：透明度走 `entity.transpMgr.setTp100(0~90)`（0 不透明；>90 一律钳为 90，**没有全透明**，要完全看不见用 `visible=false`），随层用 `entity.transpMgr.setValue(-1)`；可见性用 `entity.visible = false / true`，对应 DXF 60，**修改后必须 `Engine.regen()`**。

## 一、透明度

```js
const c = new CircleEnt([30, 50], 25);
c.setDefaults();
c.color = 1;
c.transpMgr.setTp100(50);     // 50% 透明
Engine.addEntities(c);

// 随层透明度
c.transpMgr.setValue(-1);
```

MCP 参考：`vjcad/example/property/05transparency.js`。

| 值 | 含义 |
|---|---|
| `setTp100(0)` | 不透明 |
| `setTp100(50)` | 半透明 |
| `setTp100(90)` | 最大透明度（`setTp100(100)` 也被钳为 90，仍看得见） |
| `setValue(-1)` | ByLayer（随层） |

## 二、可见性（实体级）

```js
const line = new LineEnt([0, 0], [100, 0]);
line.setDefaults();
line.color = 5;
line.visible = false;          // 隐藏
Engine.addEntities(line);
Engine.regen();                // ★ 必须重绘

// 切换
line.visible = true;
Engine.regen();
```

MCP 参考：`vjcad/example/property/08visibility.js`。

特点（DXF Group Code 60）：

- 不渲染、不可框选/点选、不提供捕捉点
- **`Ctrl + A` 全选可以选中**
- 数据序列化时保留（DWG 导出 / 重新打开仍然 invisible）

## 三、实体可见性 vs 图层可见性

| 概念 | 控制范围 | 属性 |
|---|---|---|
| 实体可见性 | 单个实体 | `entity.visible` |
| 图层可见性 | 整个图层 | `layer.layerOn` |
| 图层冻结 | 整个图层 + 重生成性能 | `layer.isFrozen` |
| 图层锁定 | 整个图层（可见但不可选） | `layer.isLocked` |

参见 [layer/visibility-frozen-locked](../layer/visibility-frozen-locked.md)。

## 反例

- `entity.transpMgr.setTp100(0.5)` 把 0~100 当 0~1：实际是 **百分比**，有效范围 0~90（>90 钳为 90）；想"全透明隐藏"用 `visible = false`。
- `entity.visible = false` 后没 `Engine.regen()`：屏幕仍能看到。
- 用 `entity.visible` 做"批量隐藏"：图层级 `layer.layerOn = false` 性能更好；冻结 `isFrozen = true` 更省。

## 参考（官方文档 MCP）

- 文档：`vjcad/doc/property/index.md`
- 示例：`vjcad/example/property/05transparency.js`、`vjcad/example/property/08visibility.js`
