# 小阳CAD轮盘插件 2.2.0.45

小阳CAD轮盘插件是面向 Autodesk AutoCAD 2014–2026 x64 的全局命令轮盘插件。模型空间、布局空间和块编辑器共用一个轮盘，命令通过 AutoCAD 原生命令上下文或命令队列执行，不使用 `SendKeys` 或轮盘文本框。

## 2.2.0.45 更新

- 修复 AutoCAD 2026 Mechanical / Windows 10 高 DPI 下设置页字体、数值框和按钮被固定行高裁切的问题；窗口初始尺寸及拖动缩放后的侧栏、内容区和预览区均按当前 DPI 换算。
- 启动即读取当前主 CUI、全部已加载局部 CUIX 和当前 PGP，Mechanical 与其他专业版放在局部 CUIX 中的命令不再只显示少量。
- PGP 独有命令目标会按 CAD 原生命令识别结果分类，`DAL`、`DLI`、`DDI` 等别名可随对应标注命令显示，不再统一落入“第三方命令”。
- `XYRESTORELOCALCMDS` 改为只读地重新建立本地命令快照，绝不再删除、改写或重载用户 `acad.pgp`；用户轮盘、自定义命令和第三方文件同样保持不变。

## 2.2.0.43 更新

- 从 CAD 轮盘中移除旧钣金展开命令、反射桥接和功能 DLL 载荷；轮盘不再注册或占用 `XYUNFOLD`。
- 独立纯 LISP 展开工具单独加载和部署，轮盘原有配置、其他命令及用户数据格式保持不变。

## 2.2.0.40 更新

- 修复微信输入法在普通命令结束或命令行焦点刚建立时，因输入上下文尚未就绪而仍保持中文的问题；英文切换失败时会短时有界补设，成功立即停止，不持续锁定用户手动切换。

## 2.2.0.36 更新

- 输入法列表改为优先使用 Windows TSF 官方接口读取已启用的具体输入法，兼容搜狗、微信和微软拼音；旧注册表读取仅作为兼容后备。
- 修复具体输入法被漏识别后“命令行直接输入首选英文”不生效的问题；继续只切换所选输入法的内部中英文状态，不改用美式键盘、不影响 CAD 外软件。

## 2.2.0.34 更新

- 明确产品边界：图纸并合改为 XYCAD 工具箱自带模块，小阳 CAD 轮盘不再注册 `XYMERGEDWG`。
- 轮盘继续保持独立，只提供轮盘、菜单、命令目录和输入法相关功能。

## 2.2.0.33 更新

- 修复 XYCAD 工具箱通过 `APPLOAD` 加载时的路径解析错误。
- 工具箱新增“图纸并合”入口，并按 AutoCAD 版本加载兼容的 `XYMERGEDWG` 模块。

## 2.2.0.32 更新

- 新增 `XYMERGEDWG` 图纸并合：可一次选择多个 DWG，将模型空间内容并入当前图纸，并按选择顺序横向自动排开；源图纸不修改，整次并合可用一次 UNDO 撤销。

## 2.2.0.30 更新

- 设置页预览改为严格跟随右侧面板尺寸，窗口缩放时重排并裁剪，避免轮盘越出预览区域。
- “无特效”使用单色纯平面文字渲染；新增“普通文字”按钮，可统一清除所有格子的彩色、加粗与特效覆盖。

## 2.2.0.29 更新

- 轮盘文字默认恢复为普通平面显示，不再自动叠加阴影或光晕；文字继续自动换行、缩放并限制在所属格子内。
- “轮盘设置”新增文字样式：可按当前格或全部格设置加粗、阴影、描边和艺术字；恢复按钮可让当前格重新继承全局默认样式。

## 2.2.0.28 更新

- 顶部菜单加载增加“启动时立即温和尝试”：插件加载后会立刻尝试注册本插件自己的 `XYCADMENU`；如果 CAD 还不空闲，再继续走 Idle/切换图纸/切换工作空间重试。
- `XYLPMENU` 继续作为手动强制修复命令，只重建本插件菜单组，不碰其他 LSP/CUI，不修改用户变量。

- 恢复并强化 `XYLPMENU`“修复顶部小阳CAD轮盘菜单”逻辑：手动执行时只卸载并重建本插件自己的 `XYCADMENU` 菜单组，不处理其他 LSP/CUI，不修改 `MENUBAR`。
- 启动和空闲自动检查继续采用温和模式：只在 CAD 空闲时补充本插件菜单，不强制重排、不清理用户菜单、不写启动组。
- 安装包自检脚本改为等待真实 AutoCAD 空闲后执行 `XYLPZJ`，避免 CoreConsole 或 CAD 忙碌状态造成误判。

- 自检脚本改为直接验证已安装的 AutoCAD Applications loader，不再通过临时目录重复 `.NETLOAD` 同一插件，避免 Core Console 双重加载导致崩溃。
- 保持 2.2.0.25 的温和加载策略：安装、启动和菜单修复均不写入 `TRUSTEDPATHS`、启动组、主 CUI、`MENUBAR` 或用户工作空间。
- “本地命令恢复”仍只在用户手动执行时处理命令别名，先备份当前 `acad.pgp`，再移除指向非 CAD 原生命令的 PGP 映射。

## 2.2.0.25 更新

- 安装、启动和菜单加载改为温和模式：只注册本插件自己的 AutoCAD Applications loader，不再写入 `TRUSTEDPATHS`、不再加入启动组、不再重排或清理用户菜单缓存，也不修改 `MENUBAR`。
- 顶部菜单和轮盘命令宏不再发送 `Ctrl+C`；当 CAD/LISP/第三方命令正在运行时，右键触发和轮盘提交都会让行，不取消当前命令，避免挤掉燕秀等其他 LSP/CUI 命令流程。
- “本地命令恢复”现在会在用户手动执行时备份当前 `acad.pgp`，并移除指向非 CAD 原生命令的 PGP 别名映射，例如 `Q/QD -> YX_Q/YX_QD`；不删除、不改写第三方 LSP/CUI/FAS/VLX 本体，不改系统变量和轮盘配置。

## 2.2.0.24 更新

- 修复设置窗口在约 1215×710 工作区中超出屏幕、左侧导航被裁切以及命令搜索框被操作按钮挤成细线的问题；窗口、侧栏、预览和命令工具栏会按可用屏幕宽度自适应。
- 纠正“本地命令恢复”语义：只恢复本插件命令树中的 CAD 自带命令并清理外部注入项，不再读取或合并运行时 LISP/第三方命令；不会删除或修改第三方 CUI/LISP/FAS/VLX、系统变量、轮盘配置和自定义命令。
- 燕秀及 `YX_Q` 明确按第三方命令处理，即使被写入 ACAD 主 CUI 或存在旧分类覆盖也不会误判为 CAD 自带功能；显示名可为 `QD`，加入轮盘后实际执行值仍保持 `YX_Q`。

## 2.2.0.23 更新

- “燕秀工具箱”“燕秀自动出图”等非 CAD 核心命令统一归入“第三方命令”，不再为单个插件自动创建顶级分类；用户手工设置的归属分类仍优先生效。
- 命令分类增加“本地命令恢复”和 `XYRESTORELOCALCMDS`。仅在用户点击或执行命令时，读取当前 CAD 已加载的 LISP/FAS/VLX `C:` 命令并合并到本次会话，可用于恢复燕秀等写入 CAD 运行环境但未出现在 CUI/PGP 中的命令。
- 本地命令恢复不会在启动、自检、轮盘点击或后台定时执行，不修改 CAD 命令、系统变量和用户配置；恢复出的命令加入轮盘后，其轮盘配置会正常保存。

## 2.2.0.22 更新

- 输入法中英文模式改为当前 CAD 输入线程的 TSF 状态优先，微信、搜狗、微软拼音等现代输入法不再只依赖旧式 IMM 兼容状态；IMM 仅保留给旧输入法兼容。
- 用户选择的具体输入法可用时只使用该项；配置项不可用时不再任选同布局或安装列表中的输入法，而是直接沿用 Windows 当前输入法，且不会自动改写配置。
- 所有 LISP/第三方命令统一识别 `C:命令名`、全局/本地前缀和命令行变体；不是对 `YX_Q` 单独写特例。输入法错误继续写日志，可选非阻塞文本报告默认关闭，并可在报告中选择不再显示。

## 2.2.0.21 更新

- 修复燕秀 `YX_Q` 等已勾选第三方命令进入子级原生命令后又被切回英文；已选父命令的中文偏好会由其子命令继承，当前 PGP 别名与实际命令也按同一命令匹配。
- `XYREFRESHCMDS` 现在读取当前主 CUI、已加载的局部 CUIX 和当前生效的 PGP 快照；燕秀工具箱、燕秀自动出图分别进入独立分类。启动和手动刷新之外不实时读取。
- 修复轮盘右键钩子干扰燕秀自动出图：只在当前启用且位于前台的 MDI 绘图区识别，普通右键长按在已有 CAD 命令运行时完全让行；短右键始终成对交付，抑制轮盘长按前仍把消息传给其他插件钩子。
- 顶部菜单增加“输入法设置”并加入不重复的单字母助记键；升级后会刷新本插件自己的局部菜单缓存，不修改 CAD 主 CUI，也不改写用户的 `MENUBAR`。

## 2.2.0.20 更新

- 输入法设置继续只使用下方“需要中文输入的命令”名单统一控制 `TEXT`、`DTEXT`、`MT`、`MTEXT` 等新建文字命令，不增加重复开关。
- 完成 AutoCAD 2024 升级前后实机功能检测、安装包版本审计与用户配置保留验证。

## 2.2.0.19 更新

- 输入法切换新增现有文字内容识别：编辑中文或中英混合文字时首选中文，编辑纯数字/英文文字时首选英文；新建文字继续由“需要中文输入的命令”名单决定。
- 内容识别只在 `TEXTEDIT`、`DDEDIT`、`MTEDIT` 等文字编辑命令开始时读取一次当前预选文字，不轮询图形、不持续锁定输入法，也不影响 CAD 外的软件。
- 自检新增中文、混合文字、纯数字、纯英文、空内容和非编辑命令的判定校验，并记录实际内容识别次数。

## 2.2.0.18 更新

- 删除“进入 MT / MTEXT 等勾选文字命令时首选中文”独立开关，避免开关与命令列表出现两套互相冲突的状态。
- “需要中文输入的命令”列表现在直接决定切换逻辑：勾选命令进入中文，未勾选命令按普通命令处理；空列表会持久保存且全部按英文规则处理。
- 普通命令行继续使用当前所选输入法自身的英文/关闭状态，不切换美式键盘、不修改 CAD 系统变量，也不在后台持续锁定。

## 2.2.0.17 更新

- 修复清空“需要中文输入的命令”后保存时又自动勾选系统推荐项；现在空列表是有效配置，会原样保存，全部命令按普通命令规则处理。
- 修复微信输入法在 CAD 命令行直接输入时仍显示中文状态；英文改为所选中文输入法自身的关闭状态，中文命令再开启同一输入法，不切换到“英语（美国）”键盘。
- 保持事件触发一次的策略，不持续锁定输入法；用户在切换完成后仍可手动改变中英文状态。

## 2.2.0.16 更新

- 输入法切换改为同类工具常用的“事件触发一次”逻辑：仅在进入命令、文字编辑焦点建立、命令结束或切换图纸时设置首选状态，取消 350 ms 周期纠正；用户随后手动切换不会被锁回英文。
- 英文与中文继续共用设置中选择的微软拼音、搜狗、微信等现有中文输入法，只切换该输入法的内部中英文状态，不调用“英语（美国）”键盘，也不影响其他软件。
- 进入 `MT`、`MTEXT` 等已勾选的文字命令及其编辑框时首选中文；设置界面明确提供该选项，启用功能却未勾选任何文字命令时会提示恢复系统推荐列表。
- 输入法焦点补设改为有界重试，首次成功即停止；失败时不再每 100 ms 无限重试，减少 CAD 空闲回调和右键轮盘偶发卡顿。
- 自检增加同一输入法内部模式、保留其他转换位和“无持续模式纠正”策略校验。

## 2.2.0.15 更新

- 输入法改为“一个现有中文输入法、两种内部模式”：设置中只选择微软拼音、搜狗、微信等一个输入法；命令行使用该输入法的英文模式，已勾选的文字命令使用它的中文模式，完全取消“英语（美国）”键盘。
- 输入法切换会先读取当前中英文状态，已经正确时不重复操作；仅修改经过 CAD 主窗口子树验证的输入上下文，TSF 输入法只按当前 CAD 进程激活。
- 旧配置会优先沿用当前正在使用的微软拼音、搜狗、微信等真实输入法；基础“中文（简体）-美式键盘”与“英语（美国）”都不会进入候选。激活后会再次核对具体输入法，并在 CAD 前台每 350 ms 低频检查一次模式，离开 CAD 立即停止干预。
- 修复设置窗口保存、Alt+Tab 和异步延迟消息造成的跨软件干预竞态；删除独立英文布局 setter、会话级激活和异步 `PostMessage` 兜底。
- 修复 Windows 7 / PowerShell 2 升级时无法解析目录链接目标而丢失生效配置的问题；升级会先快照并逐项校验 Data/Logs，恢复验证成功后才清理临时快照。
- 自检新增单输入法迁移、进程作用域、CAD 窗口树、Windows 输入隔离设置、真实模式检测/变化及竞态拦截统计。

## 2.2.0.11 更新

- 安装、自检和卸载脚本兼容 Windows 7 自带的 PowerShell 2.0；移除 `-in/-notin`、`ConvertFrom-Json`、`Get-FileHash` 等高版本 PowerShell 依赖，并在打包时自动拦截回归。
- 修复输入法自动切换在 CAD 退到后台后仍持续把微信、浏览器、表格等其他软件切回英文的问题；现在只有 CAD 位于前台时才允许切换。
- 修复 Windows 7/旧显卡环境中轮盘透明窗口显示成黑色矩形的问题；Win7 自动使用单层圆形兼容渲染，Win8–Win11 保持原双层透明样式。

## 2.2.0.7 更新

- “需要中文输入的命令”增加“全选”和“反选”；顶部规则改为明确表示只有列表中勾选的命令才切换中文，避免 `MTEXT` 未勾选时产生误解。
- 修复微信、搜狗等 TSF 输入法在 MTEXT 原位编辑器中新建焦点后仍停留英文的问题：同步完成输入语言请求后再激活具体输入法，并对新编辑上下文补设开启状态和中文转换模式。
- 右键触发路径不再读取配置文件；文字布局改为后台 STA 线程预热并写入跨窗口共享缓存，不再占用轮盘界面线程，重复弹出沿用缓存，消除右键偶发卡顿。
- 保留直接输入英文、文字命令中文、焦点变化检测和命令结束恢复英文；不使用 SendKeys，也不修改 AutoCAD 系统变量。

## 主要功能

- 启动及手动刷新都会读取当前运行 AutoCAD 的主 CUI、已加载局部 CUIX 和当前 PGP，并建立只读缓存；轮盘点击只使用缓存，不做实时扫描。命令名称优先还原当前语言 CUI 中的中文功能名，同名命令会避开旧工具栏、TABLET 宏和带预置参数的名称；已知外部命令显示在“第三方命令”。`XYRESTORELOCALCMDS` 只重新建立当前命令快照，不修改或重载 PGP/CUI/LSP/FAS/VLX 及用户配置。
- 轮盘中的无参数 CAD 命令通过 AutoCAD 原生交互队列启动，效果等同点击功能区命令：保留对象捕捉、动态输入、当前选择与后续交互提示。
- 命令分类中的内置命令和自定义命令都可自由修改显示名称；改名会同步已有轮盘格，但不会改变 `SUN-017` 等实际执行命令。
- 自定义命令包含功能描述、归属分类和英文执行命令，可直接加到所选轮盘格。
- 只使用固定的 `批量导入CAD快捷键模板.xlsx` 批量导入命令，第一行固定为 `执行命令 | 功能描述 | 归属分类`。
- “基础”页的重复/占用查询检查全部自定义命令的重名、插件保留命令、当前 AutoCAD CUI 命令和当前版本 `acad.pgp` 别名。没有命中的未知命令直接忽略，不在报告中显示。
- 命令分类支持批量操作模式。进入后才显示复选框，可全选、反选、批量分类和删除自定义项目。
- “基础”页管理触发、透明度、背景、完整设置备份与恢复；“轮盘设置”使用以鼠标位置为共同圆心的真实像素直径，并可分别设置每一圈的外边界直径、格数、每格独立字号/自动适配、当前格或全部格的字体与文字颜色，以及清空轮盘；最外圈直径与总轮盘直径同步。
- AutoCAD 启动后只通过本插件自己的 Applications loader 加载；顶部菜单在 CAD 空闲后补充独立的 `XYCADMENU` 局部 CUIX，并在换图纸和切换工作空间时温和检查。插件不把动态菜单写入 ACAD 主菜单组，不修改 `TRUSTEDPATHS`、启动组、`MENUBAR` 或用户工作空间。
- 设置窗口增加“感谢支持”页，功能说明中包含版本号、固定模板、兼容范围和故障排查。
- 命令分类中的“小阳轮盘 → 输入法自动切换设置 [XYLPIME]”可添加到轮盘格；“基础”页也可直接打开设置。命令行待命首选英文，MT / MTEXT 等勾选的文字命令首选中文；现代输入法使用 CAD 输入线程的 TSF 状态，异常文本报告默认关闭且不抢焦点。

## 安装

1. 完整解压 `dist\小阳CAD轮盘插件-2.2.0.30.zip` 到一个长期保留的本地文件夹。
2. 保存所有图纸，双击 `小阳CAD轮盘插件一键安装.cmd`。
3. 若 AutoCAD 正在运行，安装器会询问是否强制关闭；选择“是”会结束 AutoCAD，未保存图纸会丢失。
4. 安装器会验证包版本、DLL 版本、SHA256、目录权限和受支持的 AutoCAD 版本，并只建立 `%APPDATA%\Autodesk\ApplicationPlugins\小阳CAD轮盘插件.bundle` 到解压目录的链接。
5. 安装器只注册本插件自己的 AutoCAD Applications loader；不写 `TRUSTEDPATHS`，不加入启动组，不替换或修改 CAD 原有 LSP/CUI 文件。启动受支持的 AutoCAD 后插件会加载，顶部“小阳CAD轮盘”菜单会在 CAD 空闲时补充；执行 `XYLPZJ` 可完成实机自检。
6. 兼容 DLL 按 `Contents\NetFramework48` 与 `Contents\Net8` 分组；安装器会检测本机实际安装的 CAD 年份，并删除不需要的版本 DLL。安装了多个 CAD 版本时会同时保留对应 DLL。

插件主体、配置和日志都保留在解压目录的 `小阳CAD轮盘插件.bundle`。安装器只在 `%APPDATA%\Autodesk\ApplicationPlugins\小阳CAD轮盘插件.bundle` 建立指向该目录的目录链接，让 AutoCAD 自动加载；覆盖安装或升级只更新程序文件，已有 `Data` 配置和 `Logs` 日志会原样保留，并会自动迁移旧 `XY-CAD-H.bundle` 中的数据。首次安装且没有配置文件时创建空轮盘，不预放示例命令。安装后不要移动或删除解压文件夹。

详细说明见安装包内的 `功能介绍及使用说明.txt`。

## 命令

- `XYLP`：在鼠标位置打开轮盘。
- `XYLPSZ`：打开命令和轮盘设置。
- `XYLPZJ`：重新运行插件自检。
- `XYREFRESHCMDS`：重新读取当前 AutoCAD 主 CUI、已加载局部 CUIX 和当前 PGP 快捷键快照。
- `XYRESTORELOCALCMDS`：只读地重新读取当前主 CUI、已加载局部 CUIX 和 PGP 命令快照；不删除、改写或重载快捷键文件，也不修改第三方插件、系统变量和用户轮盘配置。
- `XYLPMENU`：立即修复顶部“小阳CAD轮盘”菜单。
- `XYLPIME`：打开 CAD 输入法自动切换设置弹窗（可作为一个轮盘格功能）。

默认触发方式为 `Shift + 右键长按`：按住后滑向目标格，松开立即执行。

## 固定模板批量导入

第一行前三列必须依次为 `执行命令`、`功能描述`、`归属分类`。从第 2 行开始填写；只支持 `.xlsx` 固定模板，不直接导入 CSV 或 TXT。TXT 数据可先粘贴到新建 Excel 表格，使用“数据 → 分列”拆成三列，再复制到固定模板。

## 文件位置

- 插件：`<解压目录>\小阳CAD轮盘插件.bundle`
- 配置：`<解压目录>\小阳CAD轮盘插件.bundle\Data\autocad-<当前CAD年份>.json`
- 运行日志：`<解压目录>\小阳CAD轮盘插件.bundle\Logs\autocad-plugin.log`
- 错误日志：`<解压目录>\小阳CAD轮盘插件.bundle\Logs\errors.log`
- 安装报告：`<解压目录>\小阳CAD轮盘插件.bundle\Logs\install-report.json`
- 自检报告：`<解压目录>\小阳CAD轮盘插件.bundle\Logs\self-test.json`

## 兼容范围

- AutoCAD 2014–2017 x64（R19.1–R21.0 / .NET Framework 4.8）：每个 API 系列使用独立编译 DLL；2014 使用旧版应用上下文兼容路径。
- AutoCAD 2018–2020 x64（R22.0–R23.1 / .NET Framework 4.8）：安装包分别内置按 2018、2019、2020 API 编译的 DLL，按系列精确加载。
- AutoCAD 2021–2024 x64（R24.0–R24.3 / .NET Framework 4.8）：同一安装包内置独立兼容 DLL，由 AutoCAD 自动选择。
- AutoCAD 2025 x64（R25.0 / .NET 8）：安装包内置按 AutoCAD 2025 SDK 25.0 单独编译的 DLL，由清单只映射到 R25.0。
- AutoCAD 2026 x64（R25.1 / .NET 8）：安装包内置按 AutoCAD 2026 SDK 25.1 单独编译的 DLL，由清单只映射到 R25.1。

所有 .NET Framework 4.8 DLL 放在 `Contents\NetFramework48`，所有 .NET 8 DLL 放在 `Contents\Net8`。安装后只保留本机已安装 CAD 年份对应的 DLL。

顶部菜单使用独立 `XYCADMENU` 菜单组。每个 AutoCAD 年份会在插件 `Data\Menu\<年份>` 中生成自己的 CUIX，避免不同 CAD 版本共用同一个编译结果；不会替换或改写 CAD 安装目录内的原始 CUI/LSP 文件。

轮盘命令对 AutoCAD 系统变量只读不写，不会临时修改或恢复 `ORTHOMODE`、`OSMODE`、`FILEDIA`、`CMDDIA`、`CMDECHO`、`NOMUTT`、`MENUBAR` 等值；所有命令沿用用户当前设置。

使用 Shift/Alt 组合键触发轮盘时，插件会等物理修饰键释放并让 CAD 处理完按键抬起消息后再启动所选命令，避免把临时正交覆盖误带入 `RECTANG` 等交互命令。

轮盘发送用户配置的命令名本身，不附加 `.` 或 `_` 前缀；因此不会强制绕过当前 CAD 中的命令重定义，而是由当前已加载的 PGP、LISP、第三方插件和文档环境按正常输入命令的路径解析。

CUI 使用当前运行 AutoCAD 的 `MENUNAME`，PGP 使用当前运行 AutoCAD 的 `ROAMABLEROOTPREFIX`、`ACADPREFIX` 和 CUI 支持目录，不跨版本混读快捷键。
