提交当前项目改动
|
After Width: | Height: | Size: 159 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 288 KiB |
@@ -0,0 +1,66 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1600" height="900" viewBox="0 0 1600 900">
|
||||
<defs>
|
||||
<style>
|
||||
text { font-family: "Noto Sans CJK SC", "Microsoft YaHei", Arial, sans-serif; fill: #172033; }
|
||||
.title { font-size: 40px; font-weight: 700; }
|
||||
.sub { font-size: 23px; fill: #475569; }
|
||||
.head { font-size: 27px; font-weight: 700; }
|
||||
.body { font-size: 21px; }
|
||||
.small { font-size: 18px; fill: #475569; }
|
||||
.box { fill: #f8fafc; stroke: #64748b; stroke-width: 2.5; rx: 14; }
|
||||
.native { fill: #eef6ff; stroke: #2563eb; stroke-width: 3; rx: 16; }
|
||||
.web { fill: #f4fbf7; stroke: #16a34a; stroke-width: 3; rx: 16; }
|
||||
.json { fill: #fff7ed; stroke: #f97316; stroke-width: 3; rx: 16; }
|
||||
.ok { fill: #f0fdf4; stroke: #22c55e; stroke-width: 3; rx: 16; }
|
||||
.line { stroke: #334155; stroke-width: 3; fill: none; marker-end: url(#arrow); }
|
||||
</style>
|
||||
<marker id="arrow" markerWidth="14" markerHeight="14" refX="12" refY="7" orient="auto" markerUnits="strokeWidth">
|
||||
<path d="M 0 0 L 14 7 L 0 14 z" fill="#334155"/>
|
||||
</marker>
|
||||
</defs>
|
||||
|
||||
<rect width="1600" height="900" fill="#ffffff"/>
|
||||
<text x="60" y="70" class="title">刀具预览路径与执行路径 JSON 比对流程</text>
|
||||
<text x="60" y="110" class="sub">真实 LinuxCNC 与 Web 仿真统一采用 20 ms 采样周期,便于曲线、姿态和 switchkins 状态逐点对齐。</text>
|
||||
|
||||
<rect x="75" y="170" width="440" height="225" class="native"/>
|
||||
<text x="110" y="220" class="head">LinuxCNC 真实系统</text>
|
||||
<text x="110" y="270" class="body">1. 加载 xyzbc-trt.ini</text>
|
||||
<text x="110" y="310" class="body">2. 预览 xyzbc_switchkins.ngc</text>
|
||||
<text x="110" y="350" class="body">3. 采集 status / HAL / path</text>
|
||||
|
||||
<rect x="75" y="505" width="440" height="225" class="web"/>
|
||||
<text x="110" y="555" class="head">Web 仿真系统</text>
|
||||
<text x="110" y="605" class="body">1. 解析同一组配置和程序</text>
|
||||
<text x="110" y="645" class="body">2. 生成等价预览和执行轨迹</text>
|
||||
<text x="110" y="685" class="body">3. 输出同字段 evidence JSON</text>
|
||||
|
||||
<rect x="620" y="210" width="360" height="145" class="json"/>
|
||||
<text x="660" y="260" class="head">native-evidence.json</text>
|
||||
<text x="660" y="305" class="small">previewPath / executionPath / halPins</text>
|
||||
|
||||
<rect x="620" y="545" width="360" height="145" class="json"/>
|
||||
<text x="678" y="595" class="head">web-evidence.json</text>
|
||||
<text x="660" y="640" class="small">同 sampleIndex / timeMs / 坐标系</text>
|
||||
|
||||
<rect x="1080" y="360" width="410" height="185" class="box"/>
|
||||
<text x="1125" y="410" class="head">逐点对齐和误差计算</text>
|
||||
<text x="1125" y="458" class="body">位置误差:X/Y/Z/B/C</text>
|
||||
<text x="1125" y="498" class="body">TCP 误差:toolTip 与 toolAxis</text>
|
||||
<text x="1125" y="538" class="body">状态误差:kinsType / G-code / HAL</text>
|
||||
|
||||
<rect x="1080" y="645" width="410" height="115" class="ok"/>
|
||||
<text x="1135" y="695" class="head">compare-report.json</text>
|
||||
<text x="1135" y="735" class="small">max / rms / firstMismatch / screenshots</text>
|
||||
|
||||
<path d="M515 282 L620 282" class="line"/>
|
||||
<path d="M515 617 L620 617" class="line"/>
|
||||
<path d="M980 282 C1050 282 1050 405 1080 405" class="line"/>
|
||||
<path d="M980 617 C1050 617 1050 500 1080 500" class="line"/>
|
||||
<path d="M1285 545 L1285 645" class="line"/>
|
||||
|
||||
<rect x="610" y="750" width="385" height="65" class="json"/>
|
||||
<text x="642" y="790" class="head">samplePeriodMs = 20</text>
|
||||
<path d="M805 545 L805 355" class="line"/>
|
||||
<text x="645" y="845" class="small">所有曲线采样周期固定一致,禁止真实系统与 Web 系统使用不同周期。</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 66 KiB |
@@ -0,0 +1,97 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1800" height="1100" viewBox="0 0 1800 1100">
|
||||
<defs>
|
||||
<style>
|
||||
text { font-family: "Noto Sans CJK SC", "Microsoft YaHei", Arial, sans-serif; fill: #172033; }
|
||||
.title { font-size: 42px; font-weight: 700; }
|
||||
.sub { font-size: 24px; fill: #475569; }
|
||||
.box { stroke-width: 3; rx: 18; }
|
||||
.file { fill: #eef6ff; stroke: #2563eb; }
|
||||
.core { fill: #f4fbf7; stroke: #16a34a; }
|
||||
.ui { fill: #fff7ed; stroke: #f97316; }
|
||||
.data { fill: #f8fafc; stroke: #64748b; }
|
||||
.warn { fill: #fef2f2; stroke: #ef4444; }
|
||||
.head { font-size: 28px; font-weight: 700; }
|
||||
.body { font-size: 20px; }
|
||||
.small { font-size: 18px; fill: #475569; }
|
||||
.line { stroke: #334155; stroke-width: 3; fill: none; marker-end: url(#arrow); }
|
||||
.dash { stroke-dasharray: 8 7; }
|
||||
</style>
|
||||
<marker id="arrow" markerWidth="14" markerHeight="14" refX="12" refY="7" orient="auto" markerUnits="strokeWidth">
|
||||
<path d="M 0 0 L 14 7 L 0 14 z" fill="#334155"/>
|
||||
</marker>
|
||||
</defs>
|
||||
<rect width="1800" height="1100" fill="#ffffff"/>
|
||||
<text x="60" y="70" class="title">xyzbc-trt 程序逻辑总图</text>
|
||||
<text x="60" y="112" class="sub">从文件装载、运动学、HAL、界面、执行到证据采样的完整逻辑链路。</text>
|
||||
|
||||
<rect x="60" y="170" width="330" height="170" class="box file"/>
|
||||
<text x="95" y="218" class="head">配置与程序文件</text>
|
||||
<text x="95" y="262" class="body">xyzbc-trt.ini</text>
|
||||
<text x="95" y="298" class="body">xyzbc-trt.xml</text>
|
||||
<text x="95" y="334" class="body">switchkins_postgui.hal</text>
|
||||
|
||||
<rect x="60" y="380" width="330" height="210" class="box file"/>
|
||||
<text x="95" y="428" class="head">演示与参数文件</text>
|
||||
<text x="95" y="472" class="body">xyzbc_switchkins.ngc</text>
|
||||
<text x="95" y="508" class="body">428/429/430 remap</text>
|
||||
<text x="95" y="544" class="body">xyzbc-trt.tbl / xyzbc.var</text>
|
||||
<text x="95" y="580" class="body">remap_subs/*.ngc</text>
|
||||
|
||||
<rect x="470" y="155" width="410" height="230" class="box core"/>
|
||||
<text x="510" y="205" class="head">启动与装载</text>
|
||||
<text x="510" y="250" class="body">rip-environment 设置 RIP 环境</text>
|
||||
<text x="510" y="286" class="body">linuxcnc 读取 xyzbc-trt.ini</text>
|
||||
<text x="510" y="322" class="body">HALFILE / POSTGUI_HALFILE 装配</text>
|
||||
<text x="510" y="358" class="body">open_file = ./demos/xyzbc_switchkins.ngc</text>
|
||||
|
||||
<rect x="470" y="430" width="410" height="240" class="box core"/>
|
||||
<text x="510" y="480" class="head">运动学与 HAL</text>
|
||||
<text x="510" y="524" class="body">xyzbc-trt-kins.c</text>
|
||||
<text x="510" y="560" class="body">switchkins.c / kinstype.is.N</text>
|
||||
<text x="510" y="596" class="body">trtfuncs.c / xyzbc forward-inverse</text>
|
||||
<text x="510" y="632" class="body">motion.switchkins-type <= motion.analog-out-03</text>
|
||||
<text x="510" y="668" class="body">tool-offset / x-offset / z-offset / conventional-directions</text>
|
||||
|
||||
<rect x="965" y="155" width="370" height="230" class="box ui"/>
|
||||
<text x="1000" y="205" class="head">界面与交互</text>
|
||||
<text x="1000" y="249" class="body">AXIS 主界面</text>
|
||||
<text x="1000" y="285" class="body">PyVCP SWITCHKINS 面板</text>
|
||||
<text x="1000" y="321" class="body">MDI / 点动 / DRO / 程序</text>
|
||||
<text x="1000" y="357" class="body">vismach-clear / 相机视图</text>
|
||||
|
||||
<rect x="965" y="430" width="370" height="240" class="box ui"/>
|
||||
<text x="1000" y="480" class="head">三维机床模型</text>
|
||||
<text x="1000" y="524" class="body">xyzbc-trt-gui.py</text>
|
||||
<text x="1000" y="560" class="body">table-x / saddle-y / spindle-z</text>
|
||||
<text x="1000" y="596" class="body">tilt-b / rotate-c / tool-offset</text>
|
||||
<text x="1000" y="632" class="body">Three.js 等价模型</text>
|
||||
<text x="1000" y="668" class="body">显示路径、刀具、工件、姿态</text>
|
||||
|
||||
<rect x="1405" y="205" width="330" height="205" class="box data"/>
|
||||
<text x="1440" y="255" class="head">运行状态</text>
|
||||
<text x="1440" y="299" class="body">task_state / interp_state</text>
|
||||
<text x="1440" y="335" class="body">joint.*.pos-fb / DRO</text>
|
||||
<text x="1440" y="371" class="body">kinstype.is-0/1/2</text>
|
||||
|
||||
<rect x="1405" y="470" width="330" height="205" class="box data"/>
|
||||
<text x="1440" y="520" class="head">路径证据 JSON</text>
|
||||
<text x="1440" y="564" class="body">previewPath / executionPath</text>
|
||||
<text x="1440" y="600" class="body">samplePeriodMs = 20</text>
|
||||
<text x="1440" y="636" class="body">screenshots / compare-report</text>
|
||||
|
||||
<rect x="470" y="760" width="1265" height="220" class="box warn"/>
|
||||
<text x="510" y="812" class="head">关键约束</text>
|
||||
<text x="510" y="856" class="body">1. switchkins 切换前必须同步解释器和 motion,程序中用 M428/M429/M430 或等价 HAL/MDI 触发。</text>
|
||||
<text x="510" y="892" class="body">2. 真实系统与 Web 系统的路径采样周期必须一致,当前统一为 20 ms,禁止一端快一端慢。</text>
|
||||
<text x="510" y="928" class="body">3. UI 只反映 HAL 和状态机,不直接篡改机床内部状态;所有操作必须回到 HAL/任务/运动学层。</text>
|
||||
<text x="510" y="964" class="body">4. 五轴姿态、tooloffset、x/z offset、conventional-directions 与原型系统一致后,才能进入对比验收。</text>
|
||||
|
||||
<path d="M390 255 L470 255" class="line"/>
|
||||
<path d="M390 490 L470 490" class="line"/>
|
||||
<path d="M880 265 L965 265" class="line"/>
|
||||
<path d="M880 545 L965 545" class="line"/>
|
||||
<path d="M1335 255 L1405 255" class="line"/>
|
||||
<path d="M1335 545 L1405 545" class="line"/>
|
||||
<path d="M1130 395 L1130 430" class="line dash"/>
|
||||
<path d="M1550 410 L1550 470" class="line"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 298 KiB |
@@ -0,0 +1,72 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1600" height="900" viewBox="0 0 1600 900">
|
||||
<defs>
|
||||
<style>
|
||||
text { font-family: "Noto Sans CJK SC", "Microsoft YaHei", Arial, sans-serif; fill: #1f2937; }
|
||||
.title { font-size: 40px; font-weight: 700; }
|
||||
.sub { font-size: 24px; fill: #475569; }
|
||||
.box-title { font-size: 28px; font-weight: 700; }
|
||||
.body { font-size: 22px; }
|
||||
.small { font-size: 18px; fill: #475569; }
|
||||
.linux { fill: #eef6ff; stroke: #2563eb; stroke-width: 3; }
|
||||
.web { fill: #f4fbf7; stroke: #16a34a; stroke-width: 3; }
|
||||
.evidence { fill: #fff7ed; stroke: #f97316; stroke-width: 3; }
|
||||
.neutral { fill: #f8fafc; stroke: #64748b; stroke-width: 2; }
|
||||
.line { stroke: #334155; stroke-width: 3; fill: none; marker-end: url(#arrow); }
|
||||
.dash { stroke-dasharray: 8 7; }
|
||||
</style>
|
||||
<marker id="arrow" markerWidth="14" markerHeight="14" refX="12" refY="7" orient="auto" markerUnits="strokeWidth">
|
||||
<path d="M 0 0 L 14 7 L 0 14 z" fill="#334155"/>
|
||||
</marker>
|
||||
</defs>
|
||||
|
||||
<rect width="1600" height="900" fill="#ffffff"/>
|
||||
<text x="60" y="70" class="title">xyzbc-trt 完全对标的 Web 数控仿真架构</text>
|
||||
<text x="60" y="110" class="sub">以 LinuxCNC 真实运行链路为基线,Web 端逐项复刻界面、运动学、HAL 语义和路径证据。</text>
|
||||
|
||||
<rect x="60" y="165" width="520" height="560" rx="16" class="linux"/>
|
||||
<text x="95" y="215" class="box-title">LinuxCNC 原型系统</text>
|
||||
<text x="95" y="265" class="body">rip-environment + linuxcnc</text>
|
||||
<text x="95" y="310" class="body">xyzbc-trt.ini</text>
|
||||
<text x="95" y="355" class="body">AXIS 主界面 + PyVCP 面板</text>
|
||||
<text x="95" y="400" class="body">Vismach 机床模型 xyzbc-trt-gui</text>
|
||||
<text x="95" y="445" class="body">HAL: basic_sim.tcl / postgui HAL</text>
|
||||
<text x="95" y="490" class="body">KINS: xyzbc-trt-kins switchkins</text>
|
||||
<text x="95" y="535" class="body">TASK / motion / tool table / var</text>
|
||||
<text x="95" y="580" class="body">演示程序 xyzbc_switchkins.ngc</text>
|
||||
<text x="95" y="645" class="small">运行路径:/home/mes123456/cnc_wams/linuxcnc</text>
|
||||
|
||||
<rect x="1020" y="165" width="520" height="560" rx="16" class="web"/>
|
||||
<text x="1055" y="215" class="box-title">Web 数控仿真系统</text>
|
||||
<text x="1055" y="265" class="body">浏览器首屏 CNC 工作台</text>
|
||||
<text x="1055" y="310" class="body">INI/XML/HAL/NGC/TBL/VAR 解析器</text>
|
||||
<text x="1055" y="355" class="body">AXIS 等价 UI 与 PyVCP 等价控件</text>
|
||||
<text x="1055" y="400" class="body">Three.js 五轴机床与刀具路径</text>
|
||||
<text x="1055" y="445" class="body">HAL 信号总线与 switchkins 状态机</text>
|
||||
<text x="1055" y="490" class="body">XYZBC 正逆运动学与 TCP 模式</text>
|
||||
<text x="1055" y="535" class="body">预览、执行、MDI、复位、清轨迹</text>
|
||||
<text x="1055" y="580" class="body">证据 JSON 导出和对比报告</text>
|
||||
<text x="1055" y="645" class="small">目标:功能、状态、路径、误差可量化对标</text>
|
||||
|
||||
<rect x="660" y="230" width="280" height="115" rx="12" class="evidence"/>
|
||||
<text x="698" y="278" class="box-title">采集基线 JSON</text>
|
||||
<text x="698" y="316" class="small">状态、引脚、路径、截图</text>
|
||||
|
||||
<rect x="660" y="415" width="280" height="115" rx="12" class="evidence"/>
|
||||
<text x="702" y="463" class="box-title">Web 输出 JSON</text>
|
||||
<text x="704" y="501" class="small">同周期、同字段、同坐标系</text>
|
||||
|
||||
<rect x="660" y="600" width="280" height="115" rx="12" class="neutral"/>
|
||||
<text x="704" y="648" class="box-title">对标验收报告</text>
|
||||
<text x="704" y="686" class="small">误差、缺口、截图、结论</text>
|
||||
|
||||
<path d="M580 290 L660 290" class="line"/>
|
||||
<path d="M940 290 L1020 290" class="line"/>
|
||||
<path d="M1020 475 L940 475" class="line dash"/>
|
||||
<path d="M660 475 L580 475" class="line dash"/>
|
||||
<path d="M800 345 L800 415" class="line"/>
|
||||
<path d="M800 530 L800 600" class="line"/>
|
||||
|
||||
<text x="621" y="205" class="small">真实系统采样</text>
|
||||
<text x="996" y="205" class="small">Web 复刻与回放</text>
|
||||
<text x="1005" y="535" class="small">差异闭环</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.1 KiB |