285 lines
25 KiB
XML
285 lines
25 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" width="4800" height="7200" viewBox="0 0 4800 7200">
|
||
|
||
<defs>
|
||
<marker id="arrow" markerWidth="18" markerHeight="18" refX="14" refY="6" orient="auto" markerUnits="strokeWidth">
|
||
<path d="M2,2 L14,6 L2,10 Z" fill="#1f3b57"/>
|
||
</marker>
|
||
<style>
|
||
svg { background: #ffffff; }
|
||
text { font-family: Noto Sans CJK SC, DejaVu Sans, sans-serif; fill: #17212b; }
|
||
.title { font-size: 76px; font-weight: 800; }
|
||
.subtitle { font-size: 34px; fill: #52606d; }
|
||
.section-title { font-size: 44px; font-weight: 800; fill: #24415f; }
|
||
.box-title { font-size: 34px; font-weight: 800; }
|
||
.box-text { font-size: 30px; font-weight: 650; }
|
||
.box-small { font-size: 27px; fill: #35495e; }
|
||
.note-title { font-size: 34px; font-weight: 800; fill: #7a4b00; }
|
||
.note-text { font-size: 27px; fill: #5c440b; }
|
||
.arrow-label { font-size: 26px; font-weight: 700; fill: #24415f; }
|
||
.legend { font-size: 28px; fill: #34495e; }
|
||
</style>
|
||
</defs>
|
||
<rect x="0" y="0" width="4800" height="7200" fill="#ffffff"/>
|
||
<text x="2400" y="120" class="title" text-anchor="middle">5axis-xyzbc-trt-sim 执行流程图</text>
|
||
<text x="2400" y="178" class="subtitle" text-anchor="middle">LinuxCNC: xyzbc-trt.ini / switchkins / Vismach / PyVCP / M428-M429-M430</text>
|
||
<rect x="120" y="260" width="4560" height="780" rx="36" fill="#eef6ff" stroke="#b8c7dc" stroke-width="4"/>
|
||
<text x="154" y="330" class="section-title">1. 总体启动链路</text>
|
||
<rect id="s1" x="210" y="390" width="500" height="150" rx="18" fill="#ffffff" stroke="#416788" stroke-width="4"/>
|
||
<text x="460.0" y="434" class="box-title" text-anchor="middle">xyzbc-trt.desktop</text>
|
||
<text x="238" y="484" class="box-small">快捷方式入口</text>
|
||
<rect id="s2" x="820" y="390" width="520" height="150" rx="18" fill="#ffffff" stroke="#416788" stroke-width="4"/>
|
||
<text x="1080.0" y="434" class="box-title" text-anchor="middle">rip-environment</text>
|
||
<text x="848" y="484" class="box-small">设置 RIP 环境</text>
|
||
<rect id="s3" x="1450" y="390" width="560" height="150" rx="18" fill="#ffffff" stroke="#416788" stroke-width="4"/>
|
||
<text x="1730.0" y="434" class="box-title" text-anchor="middle">scripts/linuxcnc</text>
|
||
<text x="1478" y="484" class="box-small">读取 xyzbc-trt.ini</text>
|
||
<rect id="s4" x="2120" y="390" width="520" height="150" rx="18" fill="#ffffff" stroke="#416788" stroke-width="4"/>
|
||
<text x="2380.0" y="434" class="box-title" text-anchor="middle">linuxcncsvr</text>
|
||
<text x="2148" y="484" class="box-small">NML 通道</text>
|
||
<rect id="s5" x="2750" y="390" width="560" height="150" rx="18" fill="#ffffff" stroke="#416788" stroke-width="4"/>
|
||
<text x="3030.0" y="434" class="box-title" text-anchor="middle">realtime / HAL</text>
|
||
<text x="2778" y="484" class="box-small">加载 RTAPI/HAL</text>
|
||
<rect id="s6" x="3420" y="390" width="500" height="150" rx="18" fill="#ffffff" stroke="#416788" stroke-width="4"/>
|
||
<text x="3670.0" y="434" class="box-title" text-anchor="middle">milltask / halui</text>
|
||
<text x="3448" y="484" class="box-small">任务与 MDI</text>
|
||
<rect id="s7" x="4030" y="390" width="520" height="150" rx="18" fill="#ffffff" stroke="#416788" stroke-width="4"/>
|
||
<text x="4290.0" y="434" class="box-title" text-anchor="middle">AXIS GUI</text>
|
||
<text x="4058" y="484" class="box-small">前台显示</text>
|
||
<path d="M 710 465.0 L 820 465.0" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 1340 465.0 L 1450 465.0" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 2010 465.0 L 2120 465.0" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 2640 465.0 L 2750 465.0" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 3310 465.0 L 3420 465.0" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 3920 465.0 L 4030 465.0" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect id="ini" x="450" y="690" width="1050" height="230" rx="18" fill="#ffffff" stroke="#416788" stroke-width="4"/>
|
||
<text x="975.0" y="734" class="box-title" text-anchor="middle">INI 核心项</text>
|
||
<text x="478" y="784" class="box-small">[KINS] xyzbc-trt-kins sparm=identityfirst; [TRAJ]</text>
|
||
<text x="478" y="818" class="box-small">XYZBC; [DISPLAY] axis + PyVCP; [HAL] basic_sim.tcl</text>
|
||
<rect id="halcmd" x="1760" y="690" width="1050" height="230" rx="18" fill="#ffffff" stroke="#416788" stroke-width="4"/>
|
||
<text x="2285.0" y="734" class="box-title" text-anchor="middle">HAL 加载</text>
|
||
<text x="1788" y="784" class="box-small">basic_sim.tcl 建立仿真闭环; HALCMD 启动 Vismach</text>
|
||
<text x="1788" y="818" class="box-small">并连接 pins</text>
|
||
<rect id="postgui" x="3070" y="690" width="1050" height="230" rx="18" fill="#ffffff" stroke="#416788" stroke-width="4"/>
|
||
<text x="3595.0" y="734" class="box-title" text-anchor="middle">GUI 后置 HAL</text>
|
||
<text x="3098" y="784" class="box-small">AXIS 创建 PyVCP 后执行 switchkins_postgui.hal</text>
|
||
<path d="M 1500 805 L 1760 805" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 2810 805 L 3070 805" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect x="120" y="1140" width="2200" height="1490" rx="36" fill="#f2fbf2" stroke="#b8c7dc" stroke-width="4"/>
|
||
<text x="154" y="1210" class="section-title">2. basic_sim.tcl / 仿真 HAL</text>
|
||
<rect id="b1" x="230" y="1280" width="520" height="150" rx="18" fill="#ffffff" stroke="#3f7d4a" stroke-width="4"/>
|
||
<text x="490.0" y="1324" class="box-title" text-anchor="middle">basic_sim.tcl</text>
|
||
<text x="258" y="1374" class="box-small">读取</text>
|
||
<text x="258" y="1408" class="box-small">coordinates/joints/servo</text>
|
||
<text x="258" y="1442" class="box-small">period</text>
|
||
<rect id="b2" x="910" y="1280" width="560" height="150" rx="18" fill="#ffffff" stroke="#3f7d4a" stroke-width="4"/>
|
||
<text x="1190.0" y="1324" class="box-title" text-anchor="middle">setup_kins</text>
|
||
<text x="938" y="1374" class="box-small">loadrt xyzbc-trt-kins</text>
|
||
<text x="938" y="1408" class="box-small">sparm=identityfirst</text>
|
||
<rect id="b3" x="1590" y="1280" width="560" height="150" rx="18" fill="#ffffff" stroke="#3f7d4a" stroke-width="4"/>
|
||
<text x="1870.0" y="1324" class="box-title" text-anchor="middle">motmod</text>
|
||
<text x="1618" y="1374" class="box-small">num_joints=5 servo=1ms</text>
|
||
<path d="M 750 1355 L 910 1355" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 1470 1355 L 1590 1355" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect id="bc0" x="250" y="1600" width="720" height="150" rx="18" fill="#ffffff" stroke="#3f7d4a" stroke-width="4"/>
|
||
<text x="610.0" y="1644" class="box-title" text-anchor="middle">pid J0..J4</text>
|
||
<text x="278" y="1694" class="box-small">basic_sim.tcl 创建/连接</text>
|
||
<rect id="bc1" x="1120" y="1600" width="720" height="150" rx="18" fill="#ffffff" stroke="#3f7d4a" stroke-width="4"/>
|
||
<text x="1480.0" y="1644" class="box-title" text-anchor="middle">mux2 J0..J4</text>
|
||
<text x="1148" y="1694" class="box-small">basic_sim.tcl 创建/连接</text>
|
||
<rect id="bc2" x="250" y="1830" width="720" height="150" rx="18" fill="#ffffff" stroke="#3f7d4a" stroke-width="4"/>
|
||
<text x="610.0" y="1874" class="box-title" text-anchor="middle">sim_home_switch</text>
|
||
<text x="278" y="1924" class="box-small">basic_sim.tcl 创建/连接</text>
|
||
<rect id="bc3" x="1120" y="1830" width="720" height="150" rx="18" fill="#ffffff" stroke="#3f7d4a" stroke-width="4"/>
|
||
<text x="1480.0" y="1874" class="box-title" text-anchor="middle">sim_spindle</text>
|
||
<text x="1148" y="1924" class="box-small">basic_sim.tcl 创建/连接</text>
|
||
<rect id="bc4" x="250" y="2060" width="720" height="150" rx="18" fill="#ffffff" stroke="#3f7d4a" stroke-width="4"/>
|
||
<text x="610.0" y="2104" class="box-title" text-anchor="middle">hal_manualtoolchange</text>
|
||
<text x="278" y="2154" class="box-small">basic_sim.tcl 创建/连接</text>
|
||
<path d="M 1870 1430 L 1870 1530 L 610 1530 L 610 1600" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 1870 1430 L 1870 1530 L 1480 1530 L 1480 1600" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect id="loop" x="250" y="2300" width="1720" height="190" rx="18" fill="#ffffff" stroke="#3f7d4a" stroke-width="4"/>
|
||
<text x="1110.0" y="2344" class="box-title" text-anchor="middle">理想伺服仿真闭环</text>
|
||
<text x="278" y="2394" class="box-small">joint.N.motor-pos-cmd -> JN_pid.command -> JN_mux.in1 -> joint.N.motor-pos-fb</text>
|
||
<path d="M 1110 2210 L 1110 2300" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect x="2480" y="1140" width="2200" height="1490" rx="36" fill="#f9f3ff" stroke="#b8c7dc" stroke-width="4"/>
|
||
<text x="2514" y="1210" class="section-title">3. switchkins 初始化</text>
|
||
<rect id="k1" x="2590" y="1280" width="620" height="150" rx="18" fill="#ffffff" stroke="#7246a3" stroke-width="4"/>
|
||
<text x="2900.0" y="1324" class="box-title" text-anchor="middle">xyzbc-trt-kins</text>
|
||
<text x="2618" y="1374" class="box-small">switchkinsSetup()</text>
|
||
<rect id="k2" x="3350" y="1280" width="620" height="150" rx="18" fill="#ffffff" stroke="#7246a3" stroke-width="4"/>
|
||
<text x="3660.0" y="1324" class="box-title" text-anchor="middle">sparm=identityfirst</text>
|
||
<text x="3378" y="1374" class="box-small">改变 type 顺序</text>
|
||
<path d="M 3210 1355 L 3350 1355" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect id="t0" x="2630" y="1620" width="520" height="150" rx="18" fill="#ffffff" stroke="#7246a3" stroke-width="4"/>
|
||
<text x="2890.0" y="1664" class="box-title" text-anchor="middle">type 0</text>
|
||
<text x="2658" y="1714" class="box-small">identity kinematics</text>
|
||
<rect id="t1" x="3280" y="1620" width="520" height="150" rx="18" fill="#ffffff" stroke="#7246a3" stroke-width="4"/>
|
||
<text x="3540.0" y="1664" class="box-title" text-anchor="middle">type 1</text>
|
||
<text x="3308" y="1714" class="box-small">xyzbc TRT kinematics</text>
|
||
<rect id="t2" x="3930" y="1620" width="520" height="150" rx="18" fill="#ffffff" stroke="#7246a3" stroke-width="4"/>
|
||
<text x="4190.0" y="1664" class="box-title" text-anchor="middle">type 2</text>
|
||
<text x="3958" y="1714" class="box-small">userk kinematics</text>
|
||
<path d="M 3660 1430 L 3660 1530 L 2890 1530 L 2890 1620" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 3660 1430 L 3660 1530 L 3540 1530 L 3540 1620" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 3660 1430 L 3660 1530 L 4190 1530 L 4190 1620" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect id="pins" x="2700" y="1940" width="1560" height="180" rx="18" fill="#ffffff" stroke="#7246a3" stroke-width="4"/>
|
||
<text x="3480.0" y="1984" class="box-title" text-anchor="middle">HAL pins</text>
|
||
<text x="2728" y="2034" class="box-small">kinstype.is-0/1/2; x/y/z-rot-point; x/y/z-offset; tool-offset;</text>
|
||
<text x="2728" y="2068" class="box-small">conventional-directions</text>
|
||
<path d="M 3540 1770 L 3480 1940" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect id="default" x="2920" y="2280" width="1120" height="160" rx="18" fill="#ffffff" stroke="#7246a3" stroke-width="4"/>
|
||
<text x="3480.0" y="2324" class="box-title" text-anchor="middle">启动默认状态</text>
|
||
<text x="2948" y="2374" class="box-small">switchkins_type = 0 -> identity</text>
|
||
<path d="M 3480 2120 L 3480 2280" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect x="120" y="2730" width="4560" height="1400" rx="36" fill="#fff8ee" stroke="#b8c7dc" stroke-width="4"/>
|
||
<text x="154" y="2800" class="section-title">4. PyVCP / M-code / motion.switchkins-type 切换链路</text>
|
||
<rect id="p1" x="240" y="2880" width="680" height="160" rx="18" fill="#ffffff" stroke="#ba7a20" stroke-width="4"/>
|
||
<text x="580.0" y="2924" class="box-title" text-anchor="middle">PyVCP SWITCHKINS 面板</text>
|
||
<text x="268" y="2974" class="box-small">IDENTITY / TCP:XYZBC / userk</text>
|
||
<rect id="p2" x="1100" y="2880" width="620" height="160" rx="18" fill="#ffffff" stroke="#ba7a20" stroke-width="4"/>
|
||
<text x="1410.0" y="2924" class="box-title" text-anchor="middle">switchkins_postgui.hal</text>
|
||
<text x="1128" y="2974" class="box-small">按钮接入 halui.mdi-command</text>
|
||
<rect id="p3" x="1900" y="2880" width="580" height="160" rx="18" fill="#ffffff" stroke="#ba7a20" stroke-width="4"/>
|
||
<text x="2190.0" y="2924" class="box-title" text-anchor="middle">halui MDI</text>
|
||
<text x="1928" y="2974" class="box-small">执行 M429 / M428 / M430</text>
|
||
<rect id="p4" x="2660" y="2880" width="640" height="160" rx="18" fill="#ffffff" stroke="#ba7a20" stroke-width="4"/>
|
||
<text x="2980.0" y="2924" class="box-title" text-anchor="middle">remap 子程序</text>
|
||
<text x="2688" y="2974" class="box-small">429/428/430remap.ngc</text>
|
||
<rect id="p5" x="3480" y="2880" width="520" height="160" rx="18" fill="#ffffff" stroke="#ba7a20" stroke-width="4"/>
|
||
<text x="3740.0" y="2924" class="box-title" text-anchor="middle">M68 E3 Qn</text>
|
||
<text x="3508" y="2974" class="box-small">设置 analog out</text>
|
||
<rect id="p6" x="4160" y="2880" width="420" height="160" rx="18" fill="#ffffff" stroke="#ba7a20" stroke-width="4"/>
|
||
<text x="4370.0" y="2924" class="box-title" text-anchor="middle">M66 E0 L0</text>
|
||
<text x="4188" y="2974" class="box-small">同步解释器与 motion</text>
|
||
<path d="M 920 2960 L 1100 2960" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 1720 2960 L 1900 2960" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 2480 2960 L 2660 2960" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 3300 2960 L 3480 2960" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 4000 2960 L 4160 2960" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect id="m429" x="520" y="3260" width="660" height="150" rx="18" fill="#ffffff" stroke="#ba7a20" stroke-width="4"/>
|
||
<text x="850.0" y="3304" class="box-title" text-anchor="middle">M429</text>
|
||
<text x="548" y="3354" class="box-small">type 0: identity</text>
|
||
<rect id="m428" x="1480" y="3260" width="660" height="150" rx="18" fill="#ffffff" stroke="#ba7a20" stroke-width="4"/>
|
||
<text x="1810.0" y="3304" class="box-title" text-anchor="middle">M428</text>
|
||
<text x="1508" y="3354" class="box-small">type 1: xyzbc TRT</text>
|
||
<rect id="m430" x="2440" y="3260" width="660" height="150" rx="18" fill="#ffffff" stroke="#ba7a20" stroke-width="4"/>
|
||
<text x="2770.0" y="3304" class="box-title" text-anchor="middle">M430</text>
|
||
<text x="2468" y="3354" class="box-small">type 2: userk</text>
|
||
<rect id="aout" x="3400" y="3260" width="720" height="150" rx="18" fill="#ffffff" stroke="#ba7a20" stroke-width="4"/>
|
||
<text x="3760.0" y="3304" class="box-title" text-anchor="middle">motion.analog-out-03</text>
|
||
<text x="3428" y="3354" class="box-small">HAL net :kinstype-select</text>
|
||
<path d="M 850 3040 L 850 3260" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect x="700.0" y="3102.0" width="300" height="46" rx="12" fill="#ffffff" opacity="0.92"/>
|
||
<text x="850.0" y="3134.0" class="arrow-label" text-anchor="middle">M429</text>
|
||
<path d="M 2200 3040 L 1810 3260" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect x="1855.0" y="3102.0" width="300" height="46" rx="12" fill="#ffffff" opacity="0.92"/>
|
||
<text x="2005.0" y="3134.0" class="arrow-label" text-anchor="middle">M428</text>
|
||
<path d="M 2200 3040 L 2770 3260" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect x="2335.0" y="3102.0" width="300" height="46" rx="12" fill="#ffffff" opacity="0.92"/>
|
||
<text x="2485.0" y="3134.0" class="arrow-label" text-anchor="middle">M430</text>
|
||
<path d="M 1180 3335 L 3400 3335" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect x="2140.0" y="3287.0" width="300" height="46" rx="12" fill="#ffffff" opacity="0.92"/>
|
||
<text x="2290.0" y="3319.0" class="arrow-label" text-anchor="middle">Q0</text>
|
||
<path d="M 2140 3335 L 3400 3335" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect x="2620.0" y="3287.0" width="300" height="46" rx="12" fill="#ffffff" opacity="0.92"/>
|
||
<text x="2770.0" y="3319.0" class="arrow-label" text-anchor="middle">Q1</text>
|
||
<path d="M 3100 3335 L 3400 3335" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect x="3100.0" y="3287.0" width="300" height="46" rx="12" fill="#ffffff" opacity="0.92"/>
|
||
<text x="3250.0" y="3319.0" class="arrow-label" text-anchor="middle">Q2</text>
|
||
<rect id="swpin" x="1580" y="3700" width="760" height="170" rx="18" fill="#ffffff" stroke="#ba7a20" stroke-width="4"/>
|
||
<text x="1960.0" y="3744" class="box-title" text-anchor="middle">motion.switchkins-type</text>
|
||
<text x="1608" y="3794" class="box-small">float HAL input, 被截断为整数 type</text>
|
||
<rect id="handle" x="2580" y="3700" width="820" height="170" rx="18" fill="#ffffff" stroke="#ba7a20" stroke-width="4"/>
|
||
<text x="2990.0" y="3744" class="box-title" text-anchor="middle">handle_kinematicsSwitch()</text>
|
||
<text x="2608" y="3794" class="box-small">servo-thread 每周期检测并调用</text>
|
||
<text x="2608" y="3828" class="box-small">kinematicsSwitch(type)</text>
|
||
<path d="M 3760 3410 L 1960 3700" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 2340 3785 L 2580 3785" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect x="120" y="4230" width="4560" height="1520" rx="36" fill="#eef9f8" stroke="#b8c7dc" stroke-width="4"/>
|
||
<text x="154" y="4300" class="section-title">5. 运行时运动数据流与 Vismach 显示</text>
|
||
<rect id="gcode" x="240" y="4390" width="520" height="150" rx="18" fill="#ffffff" stroke="#2b7a78" stroke-width="4"/>
|
||
<text x="500.0" y="4434" class="box-title" text-anchor="middle">G-code XYZBC</text>
|
||
<text x="268" y="4484" class="box-small">程序指令</text>
|
||
<rect id="interp" x="920" y="4390" width="520" height="150" rx="18" fill="#ffffff" stroke="#2b7a78" stroke-width="4"/>
|
||
<text x="1180.0" y="4434" class="box-title" text-anchor="middle">interpreter</text>
|
||
<text x="948" y="4484" class="box-small">RS274NGC</text>
|
||
<rect id="task" x="1600" y="4390" width="520" height="150" rx="18" fill="#ffffff" stroke="#2b7a78" stroke-width="4"/>
|
||
<text x="1860.0" y="4434" class="box-title" text-anchor="middle">milltask</text>
|
||
<text x="1628" y="4484" class="box-small">任务层</text>
|
||
<rect id="tp" x="2280" y="4390" width="620" height="150" rx="18" fill="#ffffff" stroke="#2b7a78" stroke-width="4"/>
|
||
<text x="2590.0" y="4434" class="box-title" text-anchor="middle">trajectory planner</text>
|
||
<text x="2308" y="4484" class="box-small">生成 carte_pos_cmd</text>
|
||
<rect id="inv" x="3060" y="4390" width="760" height="150" rx="18" fill="#ffffff" stroke="#2b7a78" stroke-width="4"/>
|
||
<text x="3440.0" y="4434" class="box-title" text-anchor="middle">kinematicsInverse()</text>
|
||
<text x="3088" y="4484" class="box-small">按当前 type 分派</text>
|
||
<rect id="joint" x="3980" y="4390" width="560" height="150" rx="18" fill="#ffffff" stroke="#2b7a78" stroke-width="4"/>
|
||
<text x="4260.0" y="4434" class="box-title" text-anchor="middle">joint targets</text>
|
||
<text x="4008" y="4484" class="box-small">X/Y/Z/B/C joint 目标</text>
|
||
<path d="M 760 4465 L 920 4465" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 1440 4465 L 1600 4465" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 2120 4465 L 2280 4465" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 2900 4465 L 3060 4465" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 3820 4465 L 3980 4465" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect id="idinv" x="540" y="4840" width="760" height="150" rx="18" fill="#ffffff" stroke="#2b7a78" stroke-width="4"/>
|
||
<text x="920.0" y="4884" class="box-title" text-anchor="middle">type 0: identity</text>
|
||
<text x="568" y="4934" class="box-small">一一映射</text>
|
||
<rect id="trtinv" x="1510" y="4840" width="1040" height="210" rx="18" fill="#ffffff" stroke="#2b7a78" stroke-width="4"/>
|
||
<text x="2030.0" y="4884" class="box-title" text-anchor="middle">type 1: xyzbcKinematicsInverse</text>
|
||
<text x="1538" y="4934" class="box-small">使用 B/C</text>
|
||
<text x="1538" y="4968" class="box-small">角度、x-offset=-20、z-offset=-15、tool-offset、旋转</text>
|
||
<text x="1538" y="5002" class="box-small">中心计算 joint</text>
|
||
<rect id="userkinv" x="2760" y="4840" width="760" height="150" rx="18" fill="#ffffff" stroke="#2b7a78" stroke-width="4"/>
|
||
<text x="3140.0" y="4884" class="box-title" text-anchor="middle">type 2: userk</text>
|
||
<text x="2788" y="4934" class="box-small">模板示例</text>
|
||
<path d="M 3440 4540 L 3440 4720 L 920 4720 L 920 4840" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 3440 4540 L 3440 4720 L 2030 4720 L 2030 4840" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 3440 4540 L 3440 4720 L 3140 4720 L 3140 4840" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect id="fb" x="820" y="5260" width="1000" height="160" rx="18" fill="#ffffff" stroke="#2b7a78" stroke-width="4"/>
|
||
<text x="1320.0" y="5304" class="box-title" text-anchor="middle">仿真反馈闭环</text>
|
||
<text x="848" y="5354" class="box-small">joint.N.motor-pos-cmd -> pid/mux2 -></text>
|
||
<text x="848" y="5388" class="box-small">joint.N.motor-pos-fb</text>
|
||
<rect id="vis" x="2140" y="5260" width="1000" height="160" rx="18" fill="#ffffff" stroke="#2b7a78" stroke-width="4"/>
|
||
<text x="2640.0" y="5304" class="box-title" text-anchor="middle">Vismach</text>
|
||
<text x="2168" y="5354" class="box-small">joint feedback 驱动 table/saddle/spindle/B/C 模型</text>
|
||
<rect id="panel" x="3460" y="5260" width="780" height="160" rx="18" fill="#ffffff" stroke="#2b7a78" stroke-width="4"/>
|
||
<text x="3850.0" y="5304" class="box-title" text-anchor="middle">PyVCP 状态</text>
|
||
<text x="3488" y="5354" class="box-small">kinstype.is-N 显示当前运动学</text>
|
||
<path d="M 4260 4540 L 1320 5260" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 1820 5340 L 2140 5340" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 2980 3870 L 3850 5260" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)" stroke-dasharray="18 12"/>
|
||
<rect x="3265.0" y="4517.0" width="300" height="46" rx="12" fill="#ffffff" opacity="0.92"/>
|
||
<text x="3415.0" y="4549.0" class="arrow-label" text-anchor="middle">kinstype.is-N</text>
|
||
<rect x="120" y="5860" width="4560" height="1060" rx="36" fill="#f7f7f7" stroke="#b8c7dc" stroke-width="4"/>
|
||
<text x="154" y="5930" class="section-title">6. 自动打开的演示 G-code 流程</text>
|
||
<rect id="d1" x="250" y="6020" width="660" height="150" rx="18" fill="#ffffff" stroke="#5b6570" stroke-width="4"/>
|
||
<text x="580.0" y="6064" class="box-title" text-anchor="middle">xyzbc_switchkins.ngc</text>
|
||
<text x="278" y="6114" class="box-small">AXIS OPEN_FILE</text>
|
||
<rect id="d2" x="1080" y="6020" width="760" height="150" rx="18" fill="#ffffff" stroke="#5b6570" stroke-width="4"/>
|
||
<text x="1460.0" y="6064" class="box-title" text-anchor="middle">xyzbc_switchkins_sub</text>
|
||
<text x="1108" y="6114" class="box-small">四个象限重复</text>
|
||
<rect id="d3" x="2010" y="6020" width="620" height="150" rx="18" fill="#ffffff" stroke="#5b6570" stroke-width="4"/>
|
||
<text x="2320.0" y="6064" class="box-title" text-anchor="middle">M429 identity</text>
|
||
<text x="2038" y="6114" class="box-small">安全定位 / 重设 G54</text>
|
||
<rect id="d4" x="2800" y="6020" width="620" height="150" rx="18" fill="#ffffff" stroke="#5b6570" stroke-width="4"/>
|
||
<text x="3110.0" y="6064" class="box-title" text-anchor="middle">helix_bc</text>
|
||
<text x="2828" y="6114" class="box-small">准备螺旋插补</text>
|
||
<rect id="d5" x="3590" y="6020" width="700" height="150" rx="18" fill="#ffffff" stroke="#5b6570" stroke-width="4"/>
|
||
<text x="3940.0" y="6064" class="box-title" text-anchor="middle">M428 xyzbc TRT</text>
|
||
<text x="3618" y="6114" class="box-small">B/C 倾斜后加工</text>
|
||
<path d="M 910 6095 L 1080 6095" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 1840 6095 L 2010 6095" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 2630 6095 L 2800 6095" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<path d="M 3420 6095 L 3590 6095" fill="none" stroke="#1f3b57" stroke-width="6" marker-end="url(#arrow)"/>
|
||
<rect x="360" y="6380" width="1780" height="330" rx="18" fill="#fff7e6" stroke="#d49b32" stroke-width="4"/>
|
||
<text x="388" y="6426" class="note-title">演示循环</text>
|
||
<text x="388" y="6470" class="note-text">每个象限先 M429 切回 identity。</text>
|
||
<text x="388" y="6502" class="note-text">G53 回机床安全位置,G10 L20 P0 重设 G54。</text>
|
||
<text x="388" y="6534" class="note-text">移动到象限中心后调用 helix_bc。</text>
|
||
<rect x="2540" y="6380" width="1780" height="330" rx="18" fill="#fff7e6" stroke="#d49b32" stroke-width="4"/>
|
||
<text x="2568" y="6426" class="note-title">helix_bc 核心</text>
|
||
<text x="2568" y="6470" class="note-text">M428 切换到 xyzbc TRT。</text>
|
||
<text x="2568" y="6502" class="note-text">G0 B#<b> C#<c> 设置转台角度。</text>
|
||
<text x="2568" y="6534" class="note-text">G2 I#<r> Z#<zmin> P#<n> 执行螺旋插补。</text>
|
||
<text x="2400" y="7080" class="legend" text-anchor="middle">输出文件: 项目分析/5axis-xyzbc-trt-sim高清流程图.png;源文件: 项目分析/5axis-xyzbc-trt-sim高清流程图.svg</text>
|
||
</svg>
|