FIX:fixed the display issue of multiple AMS

jira:[for ams]

Change-Id: Icb8ce708b0e65870d627dfbe8932e012fc36c6f9
(cherry picked from commit 2cdfc21b93e37b92deabb3ab8e7b39de2578f0b2)
(cherry picked from commit afbf3cf1976623c9a443f3471ec7ddcfb737d031)
This commit is contained in:
tao wang 2024-12-14 17:51:28 +08:00 committed by Noisyfox
parent cdec42e361
commit 079dca6b07
19 changed files with 3332 additions and 1728 deletions

View file

@ -0,0 +1,5 @@
<svg width="27" height="26" viewBox="0 0 27 26" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M25.5392 5.44511L14.3271 1.08594L3.87256 5.44511M25.5392 5.44511L14.3271 11.4578M25.5392 5.44511V9.83594M14.3271 11.4578L3.87256 5.44511M14.3271 11.4578V14.8359M3.87256 5.44511V18.9736L14.3271 24.8359M14.3271 24.8359L25.5392 18.9736V9.83594M14.3271 24.8359V14.8359M14.3271 14.8359L25.5392 9.83594" stroke="#323A3D" stroke-linecap="round"/>
<ellipse cx="4.4974" cy="12.5436" rx="2.70833" ry="3.54167" stroke="#00AE42"/>
<ellipse cx="3.2474" cy="12.5436" rx="2.70833" ry="3.54167" fill="white" stroke="#00AE42"/>
</svg>

After

Width:  |  Height:  |  Size: 623 B

View file

@ -0,0 +1,3 @@
<svg width="17" height="25" viewBox="0 0 17 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.9106 0.0214844H0.910583V24.0215H16.9106V0.0214844ZM8.91058 5.02148C7.25373 5.02148 5.91058 6.36463 5.91058 8.02148V14.0215C5.91058 15.6783 7.25373 17.0215 8.91058 17.0215C10.5674 17.0215 11.9106 15.6783 11.9106 14.0215V8.02148C11.9106 6.36463 10.5674 5.02148 8.91058 5.02148Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 448 B

View file

@ -0,0 +1,7 @@
<svg width="99" height="101" viewBox="0 0 99 101" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M97.2412 19.5068L51.022 1.53711L7.92566 19.5068M97.2412 19.5068L51.022 44.2925M97.2412 19.5068V37.6069M51.022 44.2925L7.92566 19.5068M51.022 44.2925V58.2182M7.92566 19.5068V75.2747L51.022 99.4407M51.022 99.4407L97.2412 75.2747V37.6069M51.022 99.4407V58.2182M51.022 58.2182L97.2412 37.6069" stroke="#323A3D" stroke-width="2" stroke-linecap="round"/>
<ellipse cx="10.9947" cy="41.3381" rx="6.9975" ry="9.15057" stroke="#00AE42"/>
<ellipse cx="7.76507" cy="41.3381" rx="6.9975" ry="9.15057" fill="white" stroke="#00AE42"/>
<ellipse cx="10.9946" cy="63.3713" rx="6.9975" ry="9.15057" stroke="#909090"/>
<ellipse cx="7.76495" cy="63.3713" rx="6.9975" ry="9.15057" fill="white" stroke="#909090"/>
</svg>

After

Width:  |  Height:  |  Size: 805 B

View file

@ -0,0 +1,7 @@
<svg width="99" height="101" viewBox="0 0 99 101" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M97.9571 19.499L51.7378 1.5293L8.64151 19.499M97.9571 19.499L51.7378 44.2847M97.9571 19.499V37.5991M51.7378 44.2847L8.64151 19.499M51.7378 44.2847V58.2103M8.64151 19.499V75.2668L51.7378 99.4329M51.7378 99.4329L97.9571 75.2668V37.5991M51.7378 99.4329V58.2103M51.7378 58.2103L97.9571 37.5991" stroke="#323A3D" stroke-width="2" stroke-linecap="round"/>
<ellipse cx="11.7105" cy="41.3303" rx="6.9975" ry="9.15057" stroke="#909090"/>
<ellipse cx="8.48089" cy="41.3303" rx="6.9975" ry="9.15057" fill="white" stroke="#909090"/>
<ellipse cx="11.7104" cy="63.3635" rx="6.9975" ry="9.15057" stroke="#00AE42"/>
<ellipse cx="8.48077" cy="63.3635" rx="6.9975" ry="9.15057" fill="white" stroke="#00AE42"/>
</svg>

After

Width:  |  Height:  |  Size: 806 B

View file

@ -0,0 +1,5 @@
<svg width="99" height="101" viewBox="0 0 99 101" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M97.2412 19.5556L51.022 1.58594L7.92566 19.5556M97.2412 19.5556L51.022 44.3413M97.2412 19.5556V37.6557M51.022 44.3413L7.92566 19.5556M51.022 44.3413V58.267M7.92566 19.5556V75.3235L51.022 99.4896M51.022 99.4896L97.2412 75.3235V37.6557M51.022 99.4896V58.267M51.022 58.267L97.2412 37.6557" stroke="#323A3D" stroke-width="2" stroke-linecap="round"/>
<ellipse cx="10.9947" cy="41.3869" rx="6.9975" ry="9.15057" stroke="#00AE42"/>
<ellipse cx="7.76507" cy="41.3869" rx="6.9975" ry="9.15057" fill="white" stroke="#00AE42"/>
</svg>

After

Width:  |  Height:  |  Size: 631 B

View file

@ -0,0 +1,7 @@
<svg width="53" height="76" viewBox="0 0 53 76" fill="none" xmlns="http://www.w3.org/2000/svg">
<ellipse cx="9.67253" cy="38.1605" rx="7.85417" ry="36.3636" fill="#F8F8F8" stroke="#ACACAC" stroke-width="2"/>
<ellipse cx="9.06844" cy="38.767" rx="1.20833" ry="5.45455" fill="#ACACAC"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M43.5058 74.5241C47.8436 74.5241 51.36 58.2436 51.36 38.1605C51.36 18.0774 47.8436 1.79688 43.5058 1.79688C41.7373 1.79688 40.1052 4.50326 38.7924 9.07031H41.1907C41.2357 9.07031 41.2749 9.09921 41.2867 9.1426C43.0924 15.7359 44.11 26.5477 44.11 38.7673C44.11 50.2633 42.9144 60.5134 41.2853 67.177C41.2744 67.2217 41.2345 67.2521 41.1885 67.2521H38.7928C40.1055 71.8183 41.7374 74.5241 43.5058 74.5241Z" fill="#F8F8F8"/>
<path d="M38.7924 9.07031L37.8313 8.79404L37.4644 10.0703H38.7924V9.07031ZM41.2867 9.1426L40.3222 9.40673L40.3223 9.40673L41.2867 9.1426ZM41.2853 67.177L40.3139 66.9395L40.3139 66.9396L41.2853 67.177ZM38.7928 67.2521V66.2521H37.4648L37.8317 67.5284L38.7928 67.2521ZM50.36 38.1605C50.36 48.153 49.4844 57.1698 48.0821 63.6624C47.3792 66.9168 46.5551 69.4832 45.6724 71.2117C45.2304 72.0774 44.7986 72.6827 44.401 73.0594C44.0079 73.4319 43.7122 73.5241 43.5058 73.5241V75.5241C44.3839 75.5241 45.147 75.1077 45.7765 74.5113C46.4014 73.9193 46.956 73.0957 47.4536 72.1213C48.4503 70.1696 49.3186 67.4107 50.037 64.0846C51.4773 57.4161 52.36 48.2511 52.36 38.1605H50.36ZM43.5058 2.79688C43.7122 2.79688 44.0079 2.88917 44.401 3.26159C44.7986 3.63834 45.2304 4.24363 45.6724 5.1093C46.5551 6.83777 47.3792 9.4042 48.0821 12.6587C49.4844 19.1512 50.36 28.168 50.36 38.1605H52.36C52.36 28.0699 51.4773 18.9049 50.037 12.2364C49.3186 8.91035 48.4503 6.15145 47.4536 4.19972C46.956 3.22529 46.4014 2.40176 45.7765 1.80972C45.147 1.21335 44.3839 0.796875 43.5058 0.796875V2.79688ZM39.7534 9.34659C40.3985 7.10251 41.103 5.38844 41.8221 4.25751C42.5744 3.07423 43.164 2.79688 43.5058 2.79688V0.796875C42.079 0.796875 40.9683 1.87271 40.1343 3.18439C39.267 4.54842 38.499 6.47106 37.8313 8.79404L39.7534 9.34659ZM38.7924 10.0703H41.1907V8.07031H38.7924V10.0703ZM41.1907 10.0703C40.8005 10.0703 40.4334 9.81256 40.3222 9.40673L42.2512 8.87847C42.1163 8.38586 41.6709 8.07031 41.1907 8.07031V10.0703ZM40.3223 9.40673C42.0925 15.8708 43.11 26.577 43.11 38.7673H45.11C45.11 26.5185 44.0923 15.6011 42.2512 8.87846L40.3223 9.40673ZM43.11 38.7673C43.11 50.2066 41.9192 60.3734 40.3139 66.9395L42.2567 67.4145C43.9097 60.6533 45.11 50.32 45.11 38.7673H43.11ZM40.3139 66.9396C40.4156 66.5236 40.7872 66.2521 41.1885 66.2521V68.2521C41.6818 68.2521 42.1331 67.9199 42.2567 67.4145L40.3139 66.9396ZM41.1885 66.2521H38.7928V68.2521H41.1885V66.2521ZM43.5058 73.5241C43.1641 73.5241 42.5746 73.2469 41.8223 72.0639C41.1033 70.9332 40.3989 69.2195 39.7538 66.9758L37.8317 67.5284C38.4994 69.851 39.2674 71.7733 40.1346 73.1371C40.9686 74.4485 42.0792 75.5241 43.5058 75.5241V73.5241Z" fill="#ACACAC"/>
<path d="M14.3856 67.2521L13.4246 66.9758L13.0576 68.2521H14.3856V67.2521ZM14.386 9.07031V8.07031H13.0581L13.425 9.34659L14.386 9.07031ZM41.2868 9.1426L40.3223 9.40673L40.3223 9.40673L41.2868 9.1426ZM41.2854 67.177L40.314 66.9395L40.314 66.9395L41.2854 67.177ZM16.5267 38.1605C16.5267 50.0076 15.2961 60.4661 13.4246 66.9758L15.3467 67.5284C17.2899 60.7695 18.5267 50.1048 18.5267 38.1605H16.5267ZM13.425 9.34659C15.2963 15.8564 16.5267 26.3143 16.5267 38.1605H18.5267C18.5267 26.217 17.2901 15.5531 15.3471 8.79404L13.425 9.34659ZM41.1908 8.07031H14.386V10.0703H41.1908V8.07031ZM42.2513 8.87847C42.1164 8.38586 41.671 8.07031 41.1908 8.07031V10.0703C40.8006 10.0703 40.4335 9.81256 40.3223 9.40673L42.2513 8.87847ZM45.11 38.7673C45.11 26.5185 44.0924 15.6011 42.2513 8.87846L40.3223 9.40673C42.0926 15.8708 43.11 26.577 43.11 38.7673H45.11ZM42.2567 67.4145C43.9097 60.6533 45.11 50.32 45.11 38.7673H43.11C43.11 50.2066 41.9193 60.3734 40.314 66.9395L42.2567 67.4145ZM41.1886 68.2521C41.6818 68.2521 42.1332 67.9199 42.2567 67.4145L40.314 66.9395C40.4157 66.5235 40.7874 66.2521 41.1886 66.2521V68.2521ZM14.3856 68.2521H41.1886V66.2521H14.3856V68.2521Z" fill="#ACACAC"/>
</svg>

After

Width:  |  Height:  |  Size: 4 KiB

View file

@ -0,0 +1,7 @@
<svg width="53" height="76" viewBox="0 0 53 76" fill="none" xmlns="http://www.w3.org/2000/svg">
<ellipse cx="9.80827" cy="38.1605" rx="7.85417" ry="36.3636" fill="#F8F8F8" stroke="#909090" stroke-width="2"/>
<ellipse cx="9.20418" cy="38.767" rx="1.20833" ry="5.45455" fill="#909090"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M43.6416 74.5241C47.9793 74.5241 51.4957 58.2436 51.4957 38.1605C51.4957 18.0774 47.9793 1.79688 43.6416 1.79688C41.873 1.79688 40.2409 4.50326 38.9281 9.07031H41.3265C41.3715 9.07031 41.4106 9.09921 41.4225 9.1426C43.2281 15.7359 44.2457 26.5477 44.2457 38.7673C44.2457 50.2633 43.0502 60.5134 41.421 67.177C41.4101 67.2217 41.3702 67.2521 41.3242 67.2521H38.9285C40.2413 71.8183 41.8732 74.5241 43.6416 74.5241Z" fill="#F8F8F8"/>
<path d="M38.9281 9.07031L37.967 8.79404L37.6001 10.0703H38.9281V9.07031ZM41.4225 9.1426L40.458 9.40673L40.458 9.40673L41.4225 9.1426ZM41.421 67.177L40.4496 66.9395L40.4496 66.9396L41.421 67.177ZM38.9285 67.2521V66.2521H37.6005L37.9674 67.5284L38.9285 67.2521ZM50.4957 38.1605C50.4957 48.153 49.6202 57.1698 48.2178 63.6624C47.5149 66.9168 46.6908 69.4832 45.8082 71.2117C45.3661 72.0774 44.9344 72.6827 44.5367 73.0594C44.1436 73.4319 43.8479 73.5241 43.6416 73.5241V75.5241C44.5196 75.5241 45.2827 75.1077 45.9122 74.5113C46.5371 73.9193 47.0918 73.0957 47.5894 72.1213C48.586 70.1696 49.4544 67.4107 50.1728 64.0846C51.6131 57.4161 52.4957 48.2511 52.4957 38.1605H50.4957ZM43.6416 2.79688C43.8479 2.79688 44.1436 2.88917 44.5367 3.26159C44.9344 3.63834 45.3661 4.24363 45.8082 5.1093C46.6908 6.83777 47.5149 9.4042 48.2178 12.6587C49.6202 19.1512 50.4957 28.168 50.4957 38.1605H52.4957C52.4957 28.0699 51.6131 18.9049 50.1728 12.2364C49.4544 8.91035 48.586 6.15145 47.5894 4.19972C47.0918 3.22529 46.5371 2.40176 45.9122 1.80972C45.2827 1.21335 44.5196 0.796875 43.6416 0.796875V2.79688ZM39.8892 9.34659C40.5343 7.10251 41.2387 5.38844 41.9578 4.25751C42.7102 3.07423 43.2998 2.79688 43.6416 2.79688V0.796875C42.2148 0.796875 41.1041 1.87271 40.2701 3.18439C39.4028 4.54842 38.6348 6.47106 37.967 8.79404L39.8892 9.34659ZM38.9281 10.0703H41.3265V8.07031H38.9281V10.0703ZM41.3265 10.0703C40.9363 10.0703 40.5691 9.81256 40.458 9.40673L42.387 8.87847C42.2521 8.38586 41.8066 8.07031 41.3265 8.07031V10.0703ZM40.458 9.40673C42.2283 15.8708 43.2457 26.577 43.2457 38.7673H45.2457C45.2457 26.5185 44.228 15.6011 42.387 8.87846L40.458 9.40673ZM43.2457 38.7673C43.2457 50.2066 42.0549 60.3734 40.4496 66.9395L42.3924 67.4145C44.0454 60.6533 45.2457 50.32 45.2457 38.7673H43.2457ZM40.4496 66.9396C40.5513 66.5236 40.923 66.2521 41.3242 66.2521V68.2521C41.8175 68.2521 42.2689 67.9199 42.3924 67.4145L40.4496 66.9396ZM41.3242 66.2521H38.9285V68.2521H41.3242V66.2521ZM43.6416 73.5241C43.2998 73.5241 42.7103 73.2469 41.958 72.0639C41.239 70.9332 40.5346 69.2195 39.8896 66.9758L37.9674 67.5284C38.6352 69.851 39.4031 71.7733 40.2703 73.1371C41.1043 74.4485 42.2149 75.5241 43.6416 75.5241V73.5241Z" fill="#909090"/>
<path d="M14.5214 67.2521L13.5603 66.9758L13.1934 68.2521H14.5214V67.2521ZM14.5218 9.07031V8.07031H13.1938L13.5607 9.34659L14.5218 9.07031ZM41.4226 9.1426L40.4581 9.40673L40.4581 9.40673L41.4226 9.1426ZM41.4211 67.177L40.4497 66.9395L40.4497 66.9395L41.4211 67.177ZM16.6625 38.1605C16.6625 50.0076 15.4318 60.4661 13.5603 66.9758L15.4824 67.5284C17.4256 60.7695 18.6625 50.1048 18.6625 38.1605H16.6625ZM13.5607 9.34659C15.432 15.8564 16.6625 26.3143 16.6625 38.1605H18.6625C18.6625 26.217 17.4258 15.5531 15.4829 8.79404L13.5607 9.34659ZM41.3265 8.07031H14.5218V10.0703H41.3265V8.07031ZM42.387 8.87847C42.2521 8.38586 41.8067 8.07031 41.3265 8.07031V10.0703C40.9363 10.0703 40.5692 9.81256 40.4581 9.40673L42.387 8.87847ZM45.2458 38.7673C45.2458 26.5185 44.2281 15.6011 42.387 8.87846L40.4581 9.40673C42.2283 15.8708 43.2458 26.577 43.2458 38.7673H45.2458ZM42.3925 67.4145C44.0455 60.6533 45.2458 50.32 45.2458 38.7673H43.2458C43.2458 50.2066 42.055 60.3734 40.4497 66.9395L42.3925 67.4145ZM41.3243 68.2521C41.8175 68.2521 42.2689 67.9199 42.3925 67.4145L40.4497 66.9395C40.5514 66.5235 40.9231 66.2521 41.3243 66.2521V68.2521ZM14.5214 68.2521H41.3243V66.2521H14.5214V68.2521Z" fill="#909090"/>
</svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

View file

@ -0,0 +1,7 @@
<svg width="52" height="76" viewBox="0 0 52 76" fill="none" xmlns="http://www.w3.org/2000/svg">
<ellipse cx="8.86503" cy="38.1605" rx="7.85417" ry="36.3636" fill="#F8F8F8" stroke="#6B6B6B" stroke-width="2"/>
<ellipse cx="8.26082" cy="38.767" rx="1.20833" ry="5.45455" fill="#6B6B6B"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M42.6983 74.5241C47.0361 74.5241 50.5525 58.2436 50.5525 38.1605C50.5525 18.0774 47.0361 1.79688 42.6983 1.79688C40.9298 1.79688 39.2977 4.50326 37.9849 9.07031H40.3832C40.4282 9.07031 40.4674 9.09921 40.4792 9.1426C42.2849 15.7359 43.3025 26.5477 43.3025 38.7673C43.3025 50.2633 42.1069 60.5134 40.4778 67.177C40.4669 67.2217 40.427 67.2521 40.381 67.2521H37.9853C39.2981 71.8183 40.9299 74.5241 42.6983 74.5241Z" fill="#F8F8F8"/>
<path d="M37.9849 9.07031L37.0238 8.79404L36.6569 10.0703H37.9849V9.07031ZM40.4792 9.1426L39.5148 9.40673L39.5148 9.40673L40.4792 9.1426ZM40.4778 67.177L39.5064 66.9395L39.5064 66.9396L40.4778 67.177ZM37.9853 67.2521V66.2521H36.6573L37.0242 67.5284L37.9853 67.2521ZM49.5525 38.1605C49.5525 48.153 48.6769 57.1698 47.2746 63.6624C46.5717 66.9168 45.7476 69.4832 44.8649 71.2117C44.4229 72.0774 43.9911 72.6827 43.5935 73.0594C43.2004 73.4319 42.9047 73.5241 42.6983 73.5241V75.5241C43.5764 75.5241 44.3395 75.1077 44.969 74.5113C45.5939 73.9193 46.1485 73.0957 46.6461 72.1213C47.6428 70.1696 48.5111 67.4107 49.2295 64.0846C50.6698 57.4161 51.5525 48.2511 51.5525 38.1605H49.5525ZM42.6983 2.79688C42.9047 2.79688 43.2004 2.88917 43.5935 3.26159C43.9911 3.63834 44.4229 4.24363 44.8649 5.1093C45.7476 6.83777 46.5717 9.4042 47.2746 12.6587C48.6769 19.1512 49.5525 28.168 49.5525 38.1605H51.5525C51.5525 28.0699 50.6698 18.9049 49.2295 12.2364C48.5111 8.91035 47.6428 6.15145 46.6461 4.19972C46.1485 3.22529 45.5939 2.40176 44.969 1.80972C44.3395 1.21335 43.5764 0.796875 42.6983 0.796875V2.79688ZM38.9459 9.34659C39.591 7.10251 40.2955 5.38844 41.0146 4.25751C41.7669 3.07423 42.3565 2.79688 42.6983 2.79688V0.796875C41.2715 0.796875 40.1608 1.87271 39.3268 3.18439C38.4595 4.54842 37.6915 6.47106 37.0238 8.79404L38.9459 9.34659ZM37.9849 10.0703H40.3832V8.07031H37.9849V10.0703ZM40.3832 10.0703C39.993 10.0703 39.6259 9.81256 39.5148 9.40673L41.4437 8.87847C41.3088 8.38586 40.8634 8.07031 40.3832 8.07031V10.0703ZM39.5148 9.40673C41.285 15.8708 42.3025 26.577 42.3025 38.7673H44.3025C44.3025 26.5185 43.2848 15.6011 41.4437 8.87846L39.5148 9.40673ZM42.3025 38.7673C42.3025 50.2066 41.1117 60.3734 39.5064 66.9395L41.4492 67.4145C43.1022 60.6533 44.3025 50.32 44.3025 38.7673H42.3025ZM39.5064 66.9396C39.6081 66.5236 39.9797 66.2521 40.381 66.2521V68.2521C40.8743 68.2521 41.3256 67.9199 41.4492 67.4145L39.5064 66.9396ZM40.381 66.2521H37.9853V68.2521H40.381V66.2521ZM42.6983 73.5241C42.3566 73.5241 41.7671 73.2469 41.0148 72.0639C40.2958 70.9332 39.5914 69.2195 38.9463 66.9758L37.0242 67.5284C37.6919 69.851 38.4599 71.7733 39.3271 73.1371C40.1611 74.4485 41.2717 75.5241 42.6983 75.5241V73.5241Z" fill="#6B6B6B"/>
<path d="M13.5781 67.2521L12.6171 66.9758L12.2501 68.2521H13.5781V67.2521ZM13.5785 9.07031V8.07031H12.2506L12.6175 9.34659L13.5785 9.07031ZM40.4793 9.1426L39.5148 9.40673L39.5148 9.40673L40.4793 9.1426ZM40.4779 67.177L39.5065 66.9395L39.5065 66.9395L40.4779 67.177ZM15.7192 38.1605C15.7192 50.0076 14.4886 60.4661 12.6171 66.9758L14.5392 67.5284C16.4824 60.7695 17.7192 50.1048 17.7192 38.1605H15.7192ZM12.6175 9.34659C14.4888 15.8564 15.7192 26.3143 15.7192 38.1605H17.7192C17.7192 26.217 16.4826 15.5531 14.5396 8.79404L12.6175 9.34659ZM40.3833 8.07031H13.5785V10.0703H40.3833V8.07031ZM41.4438 8.87847C41.3089 8.38586 40.8635 8.07031 40.3833 8.07031V10.0703C39.9931 10.0703 39.626 9.81256 39.5148 9.40673L41.4438 8.87847ZM44.3025 38.7673C44.3025 26.5185 43.2849 15.6011 41.4438 8.87846L39.5148 9.40673C41.2851 15.8708 42.3025 26.577 42.3025 38.7673H44.3025ZM41.4492 67.4145C43.1022 60.6533 44.3025 50.32 44.3025 38.7673H42.3025C42.3025 50.2066 41.1118 60.3734 39.5065 66.9395L41.4492 67.4145ZM40.3811 68.2521C40.8743 68.2521 41.3257 67.9199 41.4493 67.4145L39.5065 66.9395C39.6082 66.5235 39.9799 66.2521 40.3811 66.2521V68.2521ZM13.5781 68.2521H40.3811V66.2521H13.5781V68.2521Z" fill="#6B6B6B"/>
</svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

View file

@ -0,0 +1,5 @@
<svg width="52" height="32" viewBox="0 0 52 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 0C1.79086 0 0 1.79086 0 4V28C0 30.2091 1.79086 32 4 32H48C50.2091 32 52 30.2091 52 28V4C52 1.79086 50.2091 0 48 0H4ZM44 8H8V24H44V8Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M36.5 16H33.5V18.2617C33.5 19.9186 32.1569 21.2617 30.5 21.2617C28.8431 21.2617 27.5 19.9186 27.5 18.2617V16H24.5V18.2617C24.5 19.9186 23.1569 21.2617 21.5 21.2617C19.8431 21.2617 18.5 19.9186 18.5 18.2617V16H15.5V18.2617C15.5 19.9186 14.1569 21.2617 12.5 21.2617C10.8432 21.2617 9.5 19.9186 9.5 18.2617V16H4V28H48V16H42.5V18.2617C42.5 19.9186 41.1569 21.2617 39.5 21.2617C37.8431 21.2617 36.5 19.9186 36.5 18.2617V16Z" fill="#CECECE"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 9.18382C6 6.32088 8.32088 4 11.1838 4H40.8162C43.6791 4 46 6.32088 46 9.18382V16H42.5V12.2617C42.5 10.6049 41.1569 9.26172 39.5 9.26172C37.8431 9.26172 36.5 10.6049 36.5 12.2617V16H33.5V12.2617C33.5 10.6049 32.1569 9.26172 30.5 9.26172C28.8431 9.26172 27.5 10.6049 27.5 12.2617V16H24.5V12.2617C24.5 10.6049 23.1569 9.26172 21.5 9.26172C19.8431 9.26172 18.5 10.6049 18.5 12.2617V16H15.5V12.2617C15.5 10.6049 14.1569 9.26172 12.5 9.26172C10.8432 9.26172 9.5 10.6049 9.5 12.2617V16H6V9.18382Z" fill="#EEEEEE"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1,16 @@
<svg width="14" height="37" viewBox="0 0 14 37" fill="none" xmlns="http://www.w3.org/2000/svg">
<ellipse cx="3.76332" cy="0.530725" rx="3.76332" ry="0.530725" transform="matrix(-1 0 0 1 11.7084 4.24609)" fill="#6F6F6F"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.12828 0H10.4539V4.63809V4.6386H10.4539C10.4513 4.78906 9.26009 4.91095 7.7911 4.91095C6.3221 4.91095 5.13094 4.78906 5.12828 4.6386H5.12828V4.63809V0Z" fill="#C7C7C7"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.42848 4.59961H13.381V26.1824H0.83657V7.19152C0.83657 5.76005 1.99701 4.59961 3.42848 4.59961ZM7.94506 22.1618C5.63569 22.1618 3.76359 20.2897 3.76359 17.9803C3.76359 15.6709 5.63569 13.7988 7.94506 13.7988C10.2544 13.7988 12.1265 15.6709 12.1265 17.9803C12.1265 20.2897 10.2544 22.1618 7.94506 22.1618Z" fill="#B9B9B9"/>
<rect width="3.76332" height="3.89198" rx="1.88166" transform="matrix(-1 0 0 1 9.6178 0.707031)" fill="#AAAAAA"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.381 6.28872C10.0637 6.28872 7.60823 7.10403 6.79517 7.51168L3.86814 5.58989C3.54291 5.47342 2.79489 5.31036 2.40462 5.58989C2.01435 5.86942 2.0794 6.40519 2.1607 6.63814L3.86814 8.55993V13.4518L1.91678 14.8494L1.67286 22.0124V23.4101V24.4584C2.32332 24.4584 3.673 24.5282 3.86814 24.8078C4.06327 25.0873 3.94944 25.3901 3.86814 25.5066H5.81949V24.9825H13.381V6.28872ZM7.94506 22.1618C5.63569 22.1618 3.76359 20.2897 3.76359 17.9803C3.76359 15.6709 5.63569 13.7988 7.94506 13.7988C10.2544 13.7988 12.1265 15.6709 12.1265 17.9803C12.1265 20.2897 10.2544 22.1618 7.94506 22.1618Z" fill="#DDDDDD"/>
<path d="M11.7086 10.4368V7.7832L7.52715 8.84465L9.74087 10.9676L11.7086 10.4368Z" fill="#818181"/>
<path d="M8.78137 11.2287L6.52338 9.55273H6.27249V12.7371H6.77427L8.78137 11.2287Z" fill="#818181"/>
<rect width="7.52665" height="4.59962" rx="1.03676" transform="matrix(-1 0 0 1 12.5446 29.3672)" fill="#5F5F5F"/>
<rect width="3.76332" height="9.19924" transform="matrix(-1 0 0 1 6.27258 26.1816)" fill="#696969"/>
<rect width="5.85406" height="3.53817" transform="matrix(-1 0 0 1 11.7086 25.8281)" fill="#919191"/>
<path d="M11.7086 35.7359V33.9668H6.27271V35.7359L7.26105 36.4435H10.7203L11.7086 35.7359Z" fill="#6C6C6C"/>
<path d="M9.30419 36.7972L9.6178 36.4434H8.36336L8.67697 36.7972H9.30419Z" fill="#CFCFCF"/>
<rect width="3.76332" height="9.90687" rx="1.03676" transform="matrix(-1 0 0 1 3.76379 26.1816)" fill="#797979"/>
<path d="M4.28197 17.9803C4.28197 20.0034 5.92199 21.6434 7.94506 21.6434C9.96812 21.6434 11.6081 20.0034 11.6081 17.9803C11.6081 15.9572 9.96812 14.3172 7.94506 14.3172C5.92199 14.3172 4.28197 15.9572 4.28197 17.9803Z" stroke="#00AE42" stroke-width="1.03676"/>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View file

@ -0,0 +1,16 @@
<svg width="15" height="38" viewBox="0 0 15 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<ellipse cx="6.13826" cy="5.07369" rx="3.76332" ry="0.530725" fill="#6F6F6F"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.95504 0.296875H3.62939V4.93497V4.93547H3.6294C3.63205 5.08594 4.82322 5.20783 6.29222 5.20783C7.76121 5.20783 8.95238 5.08594 8.95503 4.93547H8.95504V4.93497V0.296875Z" fill="#C7C7C7"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.6548 4.89648H0.702332V26.4793H13.2467V7.4884C13.2467 6.05692 12.0863 4.89648 10.6548 4.89648ZM6.13826 22.4586C8.44762 22.4586 10.3197 20.5865 10.3197 18.2772C10.3197 15.9678 8.44762 14.0957 6.13826 14.0957C3.8289 14.0957 1.95679 15.9678 1.95679 18.2772C1.95679 20.5865 3.8289 22.4586 6.13826 22.4586Z" fill="#B9B9B9"/>
<rect x="4.46552" y="1.00391" width="3.76332" height="3.89198" rx="1.88166" fill="#AAAAAA"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.702332 6.5856C4.01963 6.5856 6.47508 7.4009 7.28815 7.80855L10.2152 5.88677C10.5404 5.77029 11.2884 5.60723 11.6787 5.88677C12.069 6.1663 12.0039 6.70207 11.9226 6.93501L10.2152 8.8568V13.7486L12.1665 15.1463L12.4104 22.3093V23.707V24.7552C11.76 24.7552 10.4103 24.8251 10.2152 25.1046C10.02 25.3842 10.1339 25.687 10.2152 25.8035H8.26382V25.2794H0.702332V6.5856ZM6.13826 22.4586C8.44762 22.4586 10.3197 20.5865 10.3197 18.2772C10.3197 15.9678 8.44762 14.0957 6.13826 14.0957C3.8289 14.0957 1.95679 15.9678 1.95679 18.2772C1.95679 20.5865 3.8289 22.4586 6.13826 22.4586Z" fill="#DDDDDD"/>
<path d="M2.37469 10.7337V8.08008L6.55616 9.14153L4.34245 11.2644L2.37469 10.7337Z" fill="#818181"/>
<path d="M5.30194 11.5256L7.55993 9.84961H7.81082V13.034H7.30905L5.30194 11.5256Z" fill="#818181"/>
<rect x="1.53876" y="29.6641" width="7.52665" height="4.59962" rx="1.03676" fill="#5F5F5F"/>
<rect x="7.81073" y="26.4785" width="3.76332" height="9.19924" fill="#696969"/>
<rect x="2.37469" y="26.125" width="5.85406" height="3.53817" fill="#919191"/>
<path d="M2.37469 36.0328V34.2637H7.81061V36.0328L6.82226 36.7404H3.36304L2.37469 36.0328Z" fill="#6C6C6C"/>
<path d="M4.77913 37.0941L4.46552 36.7402H5.71996L5.40635 37.0941H4.77913Z" fill="#CFCFCF"/>
<rect x="10.3195" y="26.4785" width="3.76332" height="9.90687" rx="1.03676" fill="#797979"/>
<path d="M9.80135 18.2772C9.80135 20.3002 8.16132 21.9403 6.13826 21.9403C4.11519 21.9403 2.47517 20.3002 2.47517 18.2772C2.47517 16.2541 4.11519 14.6141 6.13826 14.6141C8.16132 14.6141 9.80135 16.2541 9.80135 18.2772Z" stroke="#00AE42" stroke-width="1.03676"/>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -0,0 +1,14 @@
<svg width="19" height="37" viewBox="0 0 19 37" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="11.2701" y="27.3223" width="5.68421" height="8.52632" fill="#404040"/>
<rect width="5.68421" height="8.52632" transform="matrix(-1 0 0 1 7.48071 27.3223)" fill="#404040"/>
<rect x="14.1122" y="26.8496" width="4.26316" height="9.94737" rx="2" fill="#515151"/>
<rect width="4.26316" height="9.94737" rx="2" transform="matrix(-1 0 0 1 4.63861 26.8496)" fill="#515151"/>
<path d="M6.53333 35.1722V33.4805H12.6912V35.1722L11.5716 35.8489H7.65294L6.53333 35.1722Z" fill="#333333"/>
<path d="M9.257 36.3233L8.90173 35.8496H10.3228L9.96752 36.3233H9.257Z" fill="#CFCFCF"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.37543 5.5332C1.71857 5.5332 0.375427 6.87635 0.375427 8.5332V25.7437C0.375427 27.4006 1.71857 28.7437 3.37543 28.7437H15.3754C17.0323 28.7437 18.3754 27.4006 18.3754 25.7437V8.5332C18.3754 6.87635 17.0323 5.5332 15.3754 5.5332H3.37543ZM11.2702 19.2714C13.6247 19.2714 15.5333 17.4687 15.5333 15.2451C15.5333 13.0214 13.6247 11.2188 11.2702 11.2188C8.9157 11.2188 7.00702 13.0214 7.00702 15.2451C7.00702 17.4687 8.9157 19.2714 11.2702 19.2714Z" fill="#D9D9D9"/>
<path d="M11.2702 20.2714C14.1223 20.2714 16.5333 18.0741 16.5333 15.2451C16.5333 12.416 14.1223 10.2188 11.2702 10.2188C8.41804 10.2188 6.00702 12.416 6.00702 15.2451C6.00702 18.0741 8.41804 20.2714 11.2702 20.2714Z" stroke="#00AE42" stroke-width="2"/>
<rect x="5.11224" y="28.7441" width="8.52632" height="4.73684" fill="#1D1C1C"/>
<ellipse cx="9.3754" cy="6.20864" rx="4.26316" ry="0.601214" fill="#383938"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.5663 0.796875H6.53333V6.05156L6.53346 6.05156C6.53346 6.22227 7.88399 6.36066 9.54995 6.36066C11.2159 6.36066 12.5664 6.22227 12.5664 6.05156C12.5664 6.05057 12.5664 6.04958 12.5663 6.04859V0.796875Z" fill="#9C9C9C"/>
<rect x="7.48071" y="1.59766" width="4.26316" height="4.40891" rx="2.13158" fill="#848484"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1,12 @@
<svg width="29" height="33" viewBox="0 0 29 33" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.77881 0.447754C2.56967 0.447754 0.778809 2.23861 0.778809 4.44775V28.4478C0.778809 30.6569 2.56967 32.4478 4.77881 32.4478H24.7788C26.9879 32.4478 28.7788 30.6569 28.7788 28.4478V4.44775C28.7788 2.23861 26.9879 0.447754 24.7788 0.447754H4.77881ZM21.125 8.44775H9.41602V24.4478H21.125V8.44775Z" fill="white"/>
<g clip-path="url(#clip0_20951_60572)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.7788 16.7349H4.77881V28.7349H24.7788V16.7349H17.7788V18.9966C17.7788 20.6535 16.4357 21.9966 14.7788 21.9966C13.122 21.9966 11.7788 20.6535 11.7788 18.9966V16.7349Z" fill="#CECECE"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.9626 4.73486C9.09969 4.73486 6.77881 7.05574 6.77881 9.91868V16.7349H11.7788V12.9966C11.7788 11.3397 13.122 9.99658 14.7788 9.99658C16.4357 9.99658 17.7788 11.3397 17.7788 12.9966V16.7349H22.7788V9.91868C22.7788 7.05574 20.4579 4.73486 17.595 4.73486H11.9626Z" fill="#EEEEEE"/>
</g>
<defs>
<clipPath id="clip0_20951_60572">
<rect width="20" height="25" fill="white" transform="translate(4.77881 3.94775)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -2256,6 +2256,7 @@ StatusPanel::StatusPanel(wxWindow *parent, wxWindowID id, const wxPoint &pos, co
Bind(EVT_AMS_EXTRUSION_CALI, &StatusPanel::on_filament_extrusion_cali, this);
Bind(EVT_AMS_LOAD, &StatusPanel::on_ams_load, this);
Bind(EVT_AMS_UNLOAD, &StatusPanel::on_ams_unload, this);
Bind(EVT_AMS_SWITCH, &StatusPanel::on_ams_switch, this);
Bind(EVT_AMS_FILAMENT_BACKUP, &StatusPanel::on_ams_filament_backup, this);
Bind(EVT_AMS_SETTINGS, &StatusPanel::on_ams_setting_click, this);
Bind(EVT_AMS_REFRESH_RFID, &StatusPanel::on_ams_refresh_rfid, this);
@ -3025,23 +3026,6 @@ void StatusPanel::update_misc_ctrl(MachineObject *obj)
void StatusPanel::update_extruder_status(MachineObject* obj)
{
if (!obj) return;
//wait add
/*if (obj->is_filament_at_extruder()) {
if (obj->extruder_axis_status == MachineObject::ExtruderAxisStatus::LOAD) {
tmp = m_bitmap_extruder_filled_load;
}
else {
tmp = m_bitmap_extruder_filled_unload;
}
}
else {
if (obj->extruder_axis_status == MachineObject::ExtruderAxisStatus::LOAD) {
m_bitmap_extruder_img->SetBitmap(m_bitmap_extruder_empty_load);
} else {
m_bitmap_extruder_img->SetBitmap(m_bitmap_extruder_empty_unload);
}
}*/
}
void StatusPanel::update_ams(MachineObject *obj)
@ -3125,14 +3109,14 @@ void StatusPanel::update_ams(MachineObject *obj)
for (auto slot : obj->vt_slot) {
AMSinfo info;
info.parse_ext_info(obj, slot);
//if (ams_mode == AMSModel::AMS_LITE) info.ext_type = AMSModelOriginType::LITE_EXT; TODO: Orca hack
if (ams_mode == AMSModel::AMS_LITE) info.ext_type = AMSModelOriginType::LITE_EXT;
ext_info.push_back(info);
}
std::string dev_id = obj->dev_id;
ExtderData data = obj->m_extder_data;
// must select a current can
m_ams_control->UpdateAms(ams_info, false);
m_ams_control->UpdateAms(ams_info, ext_info, data, dev_id, false);
last_tray_exist_bits = obj->tray_exist_bits;
last_ams_exist_bits = obj->ams_exist_bits;
@ -3147,57 +3131,57 @@ void StatusPanel::update_ams(MachineObject *obj)
if (obj->m_tray_tar == std::to_string(VIRTUAL_TRAY_MAIN_ID)) is_vt_tray = true;
// set segment 1, 2
if (!obj->is_enable_np) {
if (obj->m_tray_now == std::to_string(255) || obj->m_tray_now == std::to_string(254)) {
m_ams_control->SetAmsStep(obj->m_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
} else {
if (obj->m_tray_now != "255" && obj->is_filament_at_extruder() && !obj->m_tray_id.empty()) {
m_ams_control->SetAmsStep(obj->m_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
} else if (obj->m_tray_now != "255") {
m_ams_control->SetAmsStep(obj->m_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP1);
} else {
m_ams_control->SetAmsStep(obj->m_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
}
}
//if (!obj->is_enable_np) {
// if (obj->m_tray_now == std::to_string(255) || obj->m_tray_now == std::to_string(254)) {
// m_ams_control->SetAmsStep(obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id, obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
// } else {
// /*if (obj->m_tray_now != "255" && obj->is_filament_at_extruder() && !obj->m_tray_id.empty()) {
// m_ams_control->SetAmsStep(obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id, obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id,
// AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
// } else if (obj->m_tray_now != "255") {
// m_ams_control->SetAmsStep(obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id, obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id,
// AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP1);
// } else {
// m_ams_control->SetAmsStep(obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id, obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id,
// AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
// }*/
// if () {
if (obj->m_tray_now == std::to_string(255) || obj->m_tray_now == std::to_string(254)) {
m_ams_control->SetExtruder(obj->is_filament_at_extruder(), true, obj->m_ams_id, obj->vt_slot[0].get_color());
} else {
m_ams_control->SetExtruder(obj->is_filament_at_extruder(), false, obj->m_ams_id, m_ams_control->GetCanColour(obj->m_ams_id, obj->m_tray_id));
}
} else {
// }
// }
// m_ams_control->SetExtruder(obj->is_filament_at_extruder(), obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id, obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id);
//} else {
/*right*/
if (obj->m_extder_data.extders.size() > 0) {
auto ext = obj->m_extder_data.extders[MAIN_NOZZLE_ID];
if (ext.ext_has_filament) {
if (ext.snow.slot_id == std::to_string(MAIN_NOZZLE_ID) || ext.snow.slot_id == std::to_string(MAIN_NOZZLE_ID)) {
m_ams_control->SetAmsStep(ext.star.ams_id, "0", AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP3);
if (ext.snow.ams_id == std::to_string(VIRTUAL_TRAY_MAIN_ID) || ext.snow.ams_id == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) {
m_ams_control->SetAmsStep(ext.snow.ams_id, "0", AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP3);
} else {
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
}
m_ams_control->SetExtruder(true, true, ext.snow.ams_id, m_ams_control->GetCanColour(ext.snow.ams_id, ext.snow.slot_id));
} else {
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
m_ams_control->SetExtruder(false, true, ext.snow.ams_id, m_ams_control->GetCanColour(ext.snow.ams_id, ext.snow.slot_id));
}
m_ams_control->SetExtruder(ext.ext_has_filament, ext.snow.ams_id, ext.snow.slot_id);
}
/*left*/
if (obj->m_extder_data.extders.size() > 1) {
auto ext = obj->m_extder_data.extders[DEPUTY_NOZZLE_ID];
if (ext.ext_has_filament) {
if (ext.snow.slot_id == std::to_string(VIRTUAL_TRAY_MAIN_ID) || ext.snow.slot_id == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) {
if (ext.snow.ams_id == std::to_string(VIRTUAL_TRAY_MAIN_ID) || ext.snow.ams_id == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) {
m_ams_control->SetAmsStep(ext.snow.ams_id, "0", AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP3);
} else {
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
}
m_ams_control->SetExtruder(true, true, ext.snow.ams_id, m_ams_control->GetCanColour(ext.snow.ams_id, ext.snow.slot_id));
} else {
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
m_ams_control->SetExtruder(false, true, ext.snow.ams_id, m_ams_control->GetCanColour(ext.snow.ams_id, ext.snow.slot_id));
}
m_ams_control->SetExtruder(ext.ext_has_filament, ext.snow.ams_id, ext.snow.slot_id);
}
}
//}
bool ams_loading_state = false;
auto ams_status_sub = obj->ams_status_sub;
@ -4180,6 +4164,40 @@ void StatusPanel::on_ams_load_vams(wxCommandEvent& event) {
}
}
void StatusPanel::on_ams_switch(SimpleEvent &event)
{
if(obj){
if (obj->m_extder_data.extders.size() > 0) {
auto ext = obj->m_extder_data.extders[MAIN_NOZZLE_ID];
if (ext.ext_has_filament) {
if (ext.snow.ams_id == std::to_string(VIRTUAL_TRAY_MAIN_ID) || ext.snow.ams_id == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) {
m_ams_control->SetAmsStep(ext.snow.ams_id, "0", AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP3);
} else {
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
}
} else {
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
}
m_ams_control->SetExtruder(ext.ext_has_filament, ext.snow.ams_id, ext.snow.slot_id);
}
/*left*/
if (obj->m_extder_data.extders.size() > 1) {
auto ext = obj->m_extder_data.extders[DEPUTY_NOZZLE_ID];
if (ext.ext_has_filament) {
if (ext.snow.ams_id == std::to_string(VIRTUAL_TRAY_MAIN_ID) || ext.snow.ams_id == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) {
m_ams_control->SetAmsStep(ext.snow.ams_id, "0", AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP3);
} else {
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
}
} else {
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
}
m_ams_control->SetExtruder(ext.ext_has_filament, ext.snow.ams_id, ext.snow.slot_id);
}
}
}
void StatusPanel::on_ams_unload(SimpleEvent &event)
{
if (obj) {

View file

@ -636,6 +636,7 @@ protected:
void update_filament_step();
void on_ams_load_curr();
void on_ams_load_vams(wxCommandEvent& event);
void on_ams_switch(SimpleEvent &event);
void on_ams_unload(SimpleEvent &event);
void on_ams_filament_backup(SimpleEvent& event);
void on_ams_setting_click(SimpleEvent& event);

File diff suppressed because it is too large Load diff

View file

@ -17,99 +17,124 @@
namespace Slic3r { namespace GUI {
//Previous definitions
class uiAmsPercentHumidityDryPopup;
class AMSControl : public wxSimplebook
{
public:
AMSControl(wxWindow *parent, wxWindowID id = wxID_ANY, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize);
~AMSControl();
void on_retry();
void init_scaled_buttons();
protected:
std::string m_current_ams;
std::string m_current_show_ams;
std::string m_current_slot_left;
std::string m_current_slot_right;
std::string m_current_show_ams_left;
std::string m_current_show_ams_right;
std::map<std::string, int> m_ams_selection;
std::map<std::string, AMSPreview*> m_ams_preview_list;
std::vector<AMSinfo> m_ams_info;
std::map<std::string, AmsItem*> m_ams_item_list;
std::map<std::string, AmsItem*> m_ams_generic_item_list;
std::map<std::string, AmsItem*> m_ams_extra_item_list;
std::vector<AMSinfo> m_ext_info;
std::map<std::string, AmsItem*> m_ams_item_list;
std::map<std::string, AMSExtImage*> m_ext_image_list;
ExtderData m_extder_data;
std::string m_dev_id;
std::vector<std::vector<std::string>> m_item_ids{ {}, {} };
std::vector<std::pair<string, string>> pair_id;
AMSextruder *m_extruder{nullptr};
AMSRoadDownPart* m_down_road{ nullptr };
/*items*/
wxBoxSizer* m_sizer_ams_items{nullptr};
wxWindow* m_panel_prv_left {nullptr};
wxWindow* m_panel_prv_right{nullptr};
wxBoxSizer* m_sizer_prv_left{nullptr};
wxBoxSizer* m_sizer_prv_right{nullptr};
/*ams */
wxBoxSizer *m_sizer_ams_body{nullptr};
wxBoxSizer* m_sizer_ams_area_left{nullptr};
wxBoxSizer* m_sizer_ams_area_right{nullptr};
wxBoxSizer* m_sizer_down_road{ nullptr };
/*option*/
wxBoxSizer *m_sizer_ams_option{nullptr};
wxBoxSizer* m_sizer_option_left{nullptr};
wxBoxSizer* m_sizer_option_mid{nullptr};
wxBoxSizer* m_sizer_option_right{nullptr};
AmsIntroducePopup m_ams_introduce_popup;
wxSimplebook *m_simplebook_right = {nullptr};
wxSimplebook *m_simplebook_calibration = {nullptr};
wxSimplebook *m_simplebook_amsprvs = {nullptr};
wxSimplebook *m_simplebook_ams = {nullptr};
wxSimplebook* m_simplebook_generic_ams = {nullptr};
wxSimplebook* m_simplebook_extra_ams = {nullptr};
//wxSimplebook *m_simplebook_right{nullptr};
wxSimplebook *m_simplebook_ams_left{nullptr};
wxSimplebook *m_simplebook_ams_right{ nullptr };
wxSimplebook *m_simplebook_bottom{nullptr};
wxPanel *m_panel_down_road{ nullptr };
int m_left_page_index = 0;
int m_right_page_index = 0;
wxSimplebook *m_simplebook_bottom = {nullptr};
wxStaticText *m_tip_right_top = {nullptr};
Label *m_tip_load_info = {nullptr};
wxStaticText *m_text_calibration_percent = {nullptr};
wxWindow * m_none_ams_panel = {nullptr};
wxWindow* m_panel_prv = {nullptr};
wxWindow * m_amswin = {nullptr};
wxBoxSizer* m_vams_sizer = {nullptr};
wxBoxSizer* m_sizer_vams_tips = {nullptr};
wxStaticText *m_tip_right_top{nullptr};
Label *m_tip_load_info{nullptr};
wxWindow * m_amswin{nullptr};
wxBoxSizer* m_vams_sizer{nullptr};
wxBoxSizer* m_sizer_vams_tips{nullptr};
Label* m_ams_backup_tip = {nullptr};
Label* m_ams_tip = {nullptr};
Label* m_ams_tip {nullptr};
Caninfo m_vams_info;
StaticBox* m_panel_virtual = {nullptr};
AMSLib* m_vams_lib = {nullptr};
AMSRoad* m_vams_road = {nullptr};
AMSVirtualRoad* m_vams_extra_road = {nullptr};
StaticBox* m_panel_virtual {nullptr};
AMSLib* m_vams_lib {nullptr};
AMSRoad* m_vams_road {nullptr};
AMSVirtualRoad* m_vams_extra_road {nullptr};
StaticBox * m_panel_can = {nullptr};
wxBoxSizer* m_sizer_prv = {nullptr};
wxBoxSizer *m_sizer_cans = {nullptr};
wxBoxSizer *m_sizer_right_tip = {nullptr};
wxBoxSizer* m_sizer_ams_tips = {nullptr};
::StepIndicator *m_filament_load_step = {nullptr};
::StepIndicator *m_filament_unload_step = {nullptr};
::StepIndicator *m_filament_vt_load_step = {nullptr};
Button *m_button_extruder_feed = {nullptr};
Button *m_button_extruder_back = {nullptr};
wxStaticBitmap* m_button_ams_setting = {nullptr};
wxStaticBitmap* m_img_ams_backup = {nullptr};
wxStaticBitmap* m_img_amsmapping_tip = {nullptr};
wxStaticBitmap* m_img_vams_tip = {nullptr};
wxBoxSizer *m_sizer_right_tip {nullptr};
wxBoxSizer* m_sizer_ams_tips {nullptr};
::StepIndicator *m_filament_load_step {nullptr};
::StepIndicator *m_filament_unload_step {nullptr};
::StepIndicator *m_filament_vt_load_step {nullptr};
Button *m_button_extruder_feed {nullptr};
Button *m_button_extruder_back {nullptr};
Button *m_button_auto_refill{ nullptr };
wxStaticBitmap* m_button_ams_setting {nullptr};
wxStaticBitmap* m_img_ams_backup {nullptr};
wxStaticBitmap* m_img_amsmapping_tip {nullptr};
wxStaticBitmap* m_img_vams_tip {nullptr};
ScalableBitmap m_button_ams_setting_normal;
ScalableBitmap m_button_ams_setting_hover;
ScalableBitmap m_button_ams_setting_press;
Button *m_button_guide = {nullptr};
Button *m_button_retry = {nullptr};
wxWindow* m_button_area = {nullptr};
Button *m_button_guide {nullptr};
Button *m_button_retry {nullptr};
wxHyperlinkCtrl *m_hyperlink = {nullptr};
AmsHumidityTipPopup m_Humidity_tip_popup;
uiAmsPercentHumidityDryPopup* m_percent_humidity_dry_popup;
std::string m_last_ams_id;
std::string m_last_tray_id;
std::string m_last_ams_id = "";
std::string m_last_tray_id = "";
public:
std::string GetCurentAms();
std::string GetCurentShowAms();
std::string GetCurentShowAms(AMSPanelPos pos = AMSPanelPos::RIGHT_PANEL);
std::string GetCurrentCan(std::string amsid);
bool IsAmsInRightPanel(std::string ams_id);
wxColour GetCanColour(std::string amsid, std::string canid);
void createAms(wxSimplebook* parent, int& idx, AMSinfo info, AMSPanelPos pos);
void createAmsPanel(wxSimplebook* parent, int& idx, std::vector<AMSinfo>infos, AMSPanelPos pos);
AMSRoadShowMode findFirstMode(AMSPanelPos pos);
AMSModel m_ams_model{AMSModel::EXT_AMS};
AMSModel m_ext_model{AMSModel::EXT_AMS};
AMSModel m_is_none_ams_mode{AMSModel::EXT_AMS};
bool m_single_nozzle_no_ams = { true };
void SetAmsModel(AMSModel mode, AMSModel ext_mode) {m_ams_model = mode; m_ext_model = ext_mode;};
void AmsSelectedSwitch(wxCommandEvent& event);
@ -119,33 +144,36 @@ public:
void EnterGenericAMSMode();
void EnterExtraAMSMode();
void EnterCalibrationMode(bool read_to_calibration);
void ExitcClibrationMode();
void SetClibrationpercent(int percent);
void SetClibrationLink(wxString link);
void PlayRridLoading(wxString amsid, wxString canid);
void StopRridLoading(wxString amsid, wxString canid);
void SetFilamentStep(int item_idx, FilamentStepType f_type);
void ShowFilamentTip(bool hasams = true);
void UpdateStepCtrl(bool is_extrusion_exist);
void UpdatePassRoad(string ams_id, AMSPassRoadType type, AMSPassRoadSTEP step);
void CreateAms();
void CreateAmsDoubleNozzle();
void CreateAmsSingleNozzle();
void ClearAms();
void UpdateAms(std::vector<AMSinfo> info, bool is_reset = true);
void AddAms(AMSinfo info);
void AddAmsPreview(AMSinfo info);
void AddExtraAms(AMSinfo info);
void SetExtruder(bool on_off, bool is_vams, std::string ams_now, wxColour col);
void UpdateAms(std::vector<AMSinfo> ams_info, std::vector<AMSinfo> ext_info, ExtderData data, std::string dev_id, bool is_reset = true, bool test = false);
std::vector<AMSinfo> GenerateSimulateData();
void AddAms(AMSinfo info, AMSPanelPos pos = AMSPanelPos::LEFT_PANEL);
//void AddExtAms(int ams_id);
void AddAmsPreview(AMSinfo info, AMSModel type);
//void AddExtraAms(AMSinfo info);
void AddAms(std::vector<AMSinfo>single_info, AMSPanelPos pos = AMSPanelPos::LEFT_PANEL);
void AddAmsPreview(std::vector<AMSinfo>single_info, AMSPanelPos pos);
//void AddExtraAms(std::vector<AMSinfo>single_info);
void SetExtruder(bool on_off, std::string ams_id, std::string slot_id);
void SetAmsStep(std::string ams_id, std::string canid, AMSPassRoadType type, AMSPassRoadSTEP step);
void SwitchAms(std::string ams_id);
void msw_rescale();
void on_filament_load(wxCommandEvent &event);
void on_filament_unload(wxCommandEvent &event);
void auto_refill(wxCommandEvent& event);
void on_ams_setting_click(wxMouseEvent &event);
void on_extrusion_cali(wxCommandEvent &event);
void on_ams_setting_click(wxCommandEvent &event);
@ -164,6 +192,7 @@ public:
void post_event(wxEvent&& event);
virtual bool Enable(bool enable = true);
void parse_object(MachineObject* obj);
public:
std::string m_current_select;

File diff suppressed because it is too large Load diff

View file

@ -14,7 +14,7 @@
#include <wx/dynarray.h>
#define AMS_CONTROL_BRAND_COLOUR wxColour(0, 150, 136)
#define AMS_CONTROL_BRAND_COLOUR wxColour(0, 174, 66)
#define AMS_CONTROL_GRAY700 wxColour(107, 107, 107)
#define AMS_CONTROL_GRAY800 wxColour(50, 58, 61)
#define AMS_CONTROL_GRAY500 wxColour(172, 172, 172)
@ -27,6 +27,7 @@
#define AMS_EXTRUDER_DEF_COLOUR wxColour(234, 234, 234)
#define AMS_CONTROL_MAX_COUNT 4
#define AMS_CONTRO_CALIBRATION_BUTTON_SIZE wxSize(FromDIP(150), FromDIP(28))
#define AMS_CONTROL_DEF_HUMIDITY_BK_COLOUR wxColour(238, 238, 238)
namespace Slic3r { namespace GUI {
@ -39,6 +40,11 @@ enum AMSModel {
N3S_AMS = 4 //n3s single_ams
};
enum AMSModelOriginType {
GENERIC_EXT,
LITE_EXT
};
enum ActionButton {
ACTION_BTN_CALI = 0,
ACTION_BTN_LOAD = 1,
@ -56,6 +62,20 @@ enum class AMSRoadMode : int {
AMS_ROAD_MODE_VIRTUAL_TRAY
};
enum class AMSPanelPos : int {
SINGLE_PANEL,
LEFT_PANEL,
RIGHT_PANEL,
};
enum class AMSRoadShowMode : int {
AMS_ROAD_MODE_FOUR,
AMS_ROAD_MODE_DOUBLE,
AMS_ROAD_MODE_SINGLE,
AMS_ROAD_MODE_AMS_LITE,
AMS_ROAD_MODE_NONE
};
enum class AMSPassRoadMode : int {
AMS_ROAD_MODE_NONE,
AMS_ROAD_MODE_LEFT,
@ -76,10 +96,10 @@ enum class AMSAction : int {
};
enum class AMSPassRoadSTEP : int {
AMS_ROAD_STEP_NONE,
AMS_ROAD_STEP_1, // lib -> extrusion
AMS_ROAD_STEP_2, // extrusion->buffer
AMS_ROAD_STEP_3, // extrusion
AMS_ROAD_STEP_NONE = 0,
AMS_ROAD_STEP_1 = 1, // lib -> extrusion
AMS_ROAD_STEP_2 = 2, // extrusion->buffer
AMS_ROAD_STEP_3 = 4, // extrusion
AMS_ROAD_STEP_COMBO_LOAD_STEP1,
AMS_ROAD_STEP_COMBO_LOAD_STEP2,
@ -120,24 +140,30 @@ enum FilamentStepType {
STEP_TYPE_VT_LOAD = 2,
};
#define AMS_ITEM_CUBE_SIZE wxSize(FromDIP(14), FromDIP(14))
#define AMS_ITEM_SIZE wxSize(FromDIP(82), FromDIP(27))
#define AMS_ITEM_CUBE_SIZE wxSize(FromDIP(8), FromDIP(14))
#define AMS_PREVIEW_SIZE wxSize(FromDIP(82), FromDIP(27))
#define AMS_ITEM_SIZE wxSize(FromDIP(78), FromDIP(184))
#define AMS_PREV_FOUR_SIZE wxSize(FromDIP(52), FromDIP(32))
#define AMS_PREV_SINGLE_SIZE wxSize(FromDIP(28), FromDIP(32))
#define AMS_ITEM_HUMIDITY_SIZE wxSize(FromDIP(120), FromDIP(27))
#define AMS_CAN_LIB_SIZE wxSize(FromDIP(58), FromDIP(80))
#define AMS_CAN_ROAD_SIZE wxSize(FromDIP(66), FromDIP(70))
#define AMS_CAN_ITEM_HEIGHT_SIZE FromDIP(27)
//#define AMS_CANS_SIZE wxSize(FromDIP(284), FromDIP(196))
#define AMS_CAN_LIB_SIZE wxSize(FromDIP(52), FromDIP(80))
#define AMS_LITE_CAN_LIB_SIZE wxSize(FromDIP(49), FromDIP(72))
#define AMS_CAN_ROAD_SIZE wxSize(FromDIP(264), FromDIP(50))
#define AMS_ITEMS_PANEL_SIZE wxSize(FromDIP(264), FromDIP(44))
//#define AMS_CANS_SIZE wxSize(FromDIP(284), FromDIP(184))
//#define AMS_CANS_WINDOW_SIZE wxSize(FromDIP(264), FromDIP(196))
#define AMS_STEP_SIZE wxSize(FromDIP(172), FromDIP(196))
#define AMS_REFRESH_SIZE wxSize(FromDIP(30), FromDIP(30))
#define AMS_EXTRUDER_SIZE wxSize(FromDIP(86), FromDIP(72))
#define AMS_EXTRUDER_BITMAP_SIZE wxSize(FromDIP(36), FromDIP(55))
#define AMS_REFRESH_SIZE wxSize(FromDIP(28), FromDIP(28))
#define AMS_EXTRUDER_SIZE wxSize(FromDIP(29), FromDIP(37))
#define AMS_EXTRUDER_DOUBLE_NOZZLE_BITMAP_SIZE wxSize(FromDIP(13), FromDIP(36))
#define AMS_EXTRUDER_SINGLE_NOZZLE_BITMAP_SIZE wxSize(FromDIP(18), FromDIP(36))
#define AMS_BODY_SIZE wxSize(FromDIP(36), FromDIP(55))
#define AMS_DOWN_ROAD_SIZE wxSize(FromDIP(568), FromDIP(10))
#define AMS_HUMIDITY_SIZE wxSize(FromDIP(93), FromDIP(26))
#define AMS_HUMIDITY_NO_PERCENT_SIZE wxSize(FromDIP(60), FromDIP(26))
#define AMS_HUMIDITY_DRY_WIDTH FromDIP(35)
#define AMS_PANEL_SIZE wxSize(FromDIP(264), FromDIP(150))
#define GENERIC_AMS_SLOT_NUM 4
#define MAX_AMS_NUM_IN_PANEL 2
struct Caninfo
{
@ -152,25 +178,6 @@ struct Caninfo
float k = 0.0f;
float n = 0.0f;
std::vector<wxColour> material_cols;
public:
bool operator==(const Caninfo& other) const
{
if (can_id == other.can_id &&
material_name == other.material_name &&
material_colour == other.material_colour &&
material_state == other.material_state &&
ctype == other.ctype &&
material_remain == other.material_remain &&
k == other.k &&
n == other.n &&
material_cols == other.material_cols)
{
return true;
}
return false;
};
};
struct AMSinfo
@ -180,51 +187,34 @@ public:
std::vector<Caninfo> cans;
int nozzle_id = 0;
std::string current_can_id;
AMSPassRoadSTEP current_step;
AMSPassRoadSTEP current_step = AMSPassRoadSTEP::AMS_ROAD_STEP_NONE;
AMSAction current_action;
int curreent_filamentstep;
int ams_humidity = 0;
int humidity_raw = -1;
int left_dray_time = 0;
float current_temperature = INVALID_AMS_TEMPERATURE;
AMSModel ams_type = AMSModel::GENERIC_AMS;
public:
bool operator== (const AMSinfo& other) const
{
if (ams_id == other.ams_id &&
cans == other.cans &&
nozzle_id == other.nozzle_id &&
current_can_id == other.current_can_id &&
current_step == other.current_step &&
current_action == other.current_action &&
curreent_filamentstep == other.curreent_filamentstep &&
ams_humidity == other.ams_humidity &&
left_dray_time == other.left_dray_time &&
current_temperature == other.current_temperature &&
ams_type == other.ams_type)
{
return true;
}
return false;
};
bool operator!=(const AMSinfo &other) const
{
if (operator==(other))
{
return false;
}
return true;
};
AMSModelOriginType ext_type = AMSModelOriginType::GENERIC_EXT;
bool parse_ams_info(MachineObject* obj, Ams *ams, bool remain_flag = false, bool humidity_flag = false);
void parse_ext_info(MachineObject* obj, AmsTray tray);
bool support_drying() const { return (ams_type == AMSModel::N3S_AMS) || (ams_type == AMSModel::N3F_AMS); };
};
/*************************************************
Description:AMSExtText
**************************************************/
class AMSExtText : public wxWindow
{
public:
void msw_rescale();
void paintEvent(wxPaintEvent& evt);
void render(wxDC& dc);
void doRender(wxDC& dc);
AMSExtText(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
~AMSExtText();
};
/*************************************************
Description:AMSrefresh
**************************************************/
@ -236,26 +226,20 @@ public:
AMSrefresh(wxWindow *parent, wxString number, Caninfo info, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize);
AMSrefresh(wxWindow *parent, int number, Caninfo info, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize);
~AMSrefresh();
public:
void Update(std::string ams_id, Caninfo info);
std::string GetCanId() const { return m_info.can_id; };
void PlayLoading();
void StopLoading();
void create(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size);
void on_timer(wxTimerEvent &event);
void OnEnterWindow(wxMouseEvent &evt);
void OnLeaveWindow(wxMouseEvent &evt);
void OnClick(wxMouseEvent &evt);
void post_event(wxCommandEvent &&event);
void paintEvent(wxPaintEvent &evt);
void Update(std::string ams_id, Caninfo info);
void msw_rescale();
void set_disable_mode(bool disable) { m_disable_mode = disable; }
Caninfo m_info;
protected:
void create(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size);
void on_timer(wxTimerEvent &event);
void OnEnterWindow(wxMouseEvent &evt);
void OnLeaveWindow(wxMouseEvent &evt);
void OnClick(wxMouseEvent &evt);
void post_event(wxCommandEvent &&event);
void paintEvent(wxPaintEvent &evt);
protected:
wxTimer *m_playing_timer= {nullptr};
@ -265,7 +249,6 @@ protected:
std::string m_ams_id;
std::string m_can_id;
Caninfo m_info;
ScalableBitmap m_bitmap_normal;
ScalableBitmap m_bitmap_selected;
@ -292,47 +275,78 @@ Description:AMSextruder
class AMSextruderImage: public wxWindow
{
public:
void TurnOn(wxColour col);
void OnAmsLoading(bool load, wxColour col);
void TurnOff();
void setShowState(bool show_state) { m_show_state = show_state; };
void msw_rescale();
void paintEvent(wxPaintEvent &evt);
void render(wxDC &dc);
bool m_turn_on = {false};
bool m_show_state = {false};
wxColour m_colour;
ScalableBitmap m_ams_extruder;
string m_file_name;
bool m_ams_loading{ false };
void doRender(wxDC &dc);
AMSextruderImage(wxWindow *parent, wxWindowID id, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize);
AMSextruderImage(wxWindow *parent, wxWindowID id, string file_name, const wxSize& size, const wxPoint &pos = wxDefaultPosition);
~AMSextruderImage();
};
//AMSExtImage upon ext lib
class AMSExtImage : public wxWindow
{
private:
bool m_ext_show = true;
ExtderData* m_extder_data = nullptr;
AMSPanelPos m_ext_pos;
public:
void msw_rescale();
void paintEvent(wxPaintEvent& evt);
void setShowState(bool show) { m_ext_show = show; };
void render(wxDC& dc);
ScalableBitmap m_ams_ext;
ScalableBitmap m_ams_ext_left;
ScalableBitmap m_ams_ext_right;
ScalableBitmap m_ams_ext_single_nozzle;
void doRender(wxDC& dc);
AMSExtImage(wxWindow* parent, AMSPanelPos ext_pos = AMSPanelPos::RIGHT_PANEL, ExtderData *data = nullptr,
wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition);
~AMSExtImage();
};
class AMSextruder : public wxWindow
{
private:
int m_nozzle_num{ 1 };
public:
void TurnOn(wxColour col);
void TurnOff();
void create(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size);
void OnVamsLoading(bool load, wxColour col = AMS_CONTROL_GRAY500);
void OnAmsLoading(bool load, wxColour col = AMS_CONTROL_GRAY500);
void OnAmsLoading(bool load, int nozzle_id = 0, wxColour col = AMS_CONTROL_GRAY500);
void paintEvent(wxPaintEvent& evt);
void render(wxDC& dc);
void doRender(wxDC& dc);
void msw_rescale();
void has_ams(bool hams) {m_has_vams = hams; Refresh();};
void no_ams_mode(bool mode) {m_none_ams_mode = mode; Refresh();};
void updateNozzleNum(int nozzle_num);
bool m_none_ams_mode{true};
bool m_has_vams{false};
bool m_vams_loading{false};
bool m_ams_loading{false};
wxColour m_current_colur;
wxColour m_current_colur_deputy;
wxBoxSizer * m_bitmap_sizer{nullptr};
wxPanel * m_bitmap_panel{nullptr};
AMSextruderImage *m_amsSextruder{nullptr};
ScalableBitmap monitor_ams_extruder;
AMSextruder(wxWindow *parent, wxWindowID id, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize);
//AMSextruderImage *m_amsSextruder{nullptr};
AMSextruderImage* m_left_extruder = nullptr;
AMSextruderImage* m_right_extruder = nullptr;
AMSextruder(wxWindow *parent, wxWindowID id, int nozzle_num, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize);
~AMSextruder();
};
@ -363,7 +377,7 @@ Description:AMSLib
class AMSLib : public wxWindow
{
public:
AMSLib(wxWindow *parent, std::string ams_idx, Caninfo info);
AMSLib(wxWindow *parent, std::string ams_idx, Caninfo info, AMSModelOriginType ext_type = AMSModelOriginType::GENERIC_EXT);
~AMSLib();
void create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
public:
@ -375,7 +389,9 @@ public:
std::string m_slot_id;
int m_can_index = 0;
bool transparent_changed = { false };
AMSModel m_ams_model;
AMSModelOriginType m_ext_type = { AMSModelOriginType::GENERIC_EXT };
void Update(Caninfo info, std::string ams_idx, bool refresh = true);
void UnableSelected() { m_unable_selected = true; };
@ -399,15 +415,19 @@ protected:
ScalableBitmap m_bitmap_readonly;
ScalableBitmap m_bitmap_readonly_light;
ScalableBitmap m_bitmap_transparent;
ScalableBitmap m_bitmap_transparent_def;
ScalableBitmap m_bitmap_extra_tray_left;
ScalableBitmap m_bitmap_extra_tray_right;
ScalableBitmap m_bitmap_extra_tray_mid;
ScalableBitmap m_bitmap_extra_tray_left_hover;
ScalableBitmap m_bitmap_extra_tray_right_hover;
ScalableBitmap m_bitmap_extra_tray_mid_hover;
ScalableBitmap m_bitmap_extra_tray_left_selected;
ScalableBitmap m_bitmap_extra_tray_right_selected;
ScalableBitmap m_bitmap_extra_tray_mid_selected;
bool m_unable_selected = {false};
bool m_enable = {false};
@ -415,7 +435,7 @@ protected:
bool m_hover = {false};
bool m_show_kn = {false};
bool m_support_cali = {false};
bool transparent_changed = {false};
double m_radius = {4};
wxColour m_border_color;
@ -459,6 +479,11 @@ public:
wxColour m_road_color;
void Update(AMSinfo amsinfo, Caninfo info, int canindex, int maxcan);
std::vector<ScalableBitmap> ams_humidity_img;
int m_humidity = { 0 };
bool m_show_humidity = { false };
bool m_vams_loading{false};
AMSModel m_ams_model;
@ -470,12 +495,110 @@ public:
void paintEvent(wxPaintEvent &evt);
void render(wxDC &dc);
void doRender(wxDC &dc);
};
/*************************************************
Description:AMSRoadUpPart
**************************************************/
class AMSRoadUpPart : public wxWindow
{
public:
AMSRoadUpPart();
AMSRoadUpPart(wxWindow* parent, wxWindowID id, AMSinfo info, AMSModel mode, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
void create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
public:
AMSinfo m_amsinfo;
//Caninfo m_info;
int m_load_slot_index = { 0 };
int m_load_ams_index = { 0 };
//AMSRoadMode m_rode_mode = { AMSRoadMode::AMS_ROAD_MODE_LEFT_RIGHT };
std::vector<AMSPassRoadMode> m_pass_rode_mode = { AMSPassRoadMode::AMS_ROAD_MODE_NONE };
AMSRoadShowMode m_road_mode = { AMSRoadShowMode::AMS_ROAD_MODE_FOUR };
AMSPassRoadSTEP m_load_step = { AMSPassRoadSTEP::AMS_ROAD_STEP_NONE };
bool m_selected = { false };
int m_passroad_width = { 6 };
double m_radius = { 4 };
wxColour m_road_def_color;
wxColour m_road_color;
void Update(AMSinfo amsinfo);
std::vector<ScalableBitmap> ams_humidity_img;
int m_humidity = { 0 };
bool m_show_humidity = { false };
bool m_vams_loading{ false };
AMSModel m_ams_model;
void OnVamsLoading(bool load, wxColour col = AMS_CONTROL_GRAY500);
void SetPassRoadColour(wxColour col);
void SetMode(AMSRoadShowMode mode);
void OnPassRoad(std::vector<AMSPassRoadMode> prord_list);
void UpdatePassRoad(std::string ams_index, std::string slot_index, AMSPassRoadType type, AMSPassRoadSTEP step);
void paintEvent(wxPaintEvent& evt);
void render(wxDC& dc);
void doRender(wxDC& dc);
void msw_rescale();
};
/*************************************************
Description:AMSRoadDownPart
**************************************************/
class AMSRoadDownPart : public wxWindow
{
public:
AMSRoadDownPart();
AMSRoadDownPart(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
void create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
public:
int m_nozzle_num = { 1 };
AMSRoadShowMode m_single_ext_rode_mode = { AMSRoadShowMode::AMS_ROAD_MODE_FOUR };
AMSRoadShowMode m_left_rode_mode = { AMSRoadShowMode::AMS_ROAD_MODE_FOUR };
AMSRoadShowMode m_right_rode_mode = { AMSRoadShowMode::AMS_ROAD_MODE_FOUR };
bool m_selected = { false };
int m_left_road_length = { -1 };
int m_right_road_length = { -1 };
int m_passroad_width = { 6 };
double m_radius = { 4 };
AMSPassRoadType m_pass_road_type = { AMSPassRoadType::AMS_ROAD_TYPE_NONE };
AMSPassRoadSTEP m_pass_road_left_step = { AMSPassRoadSTEP::AMS_ROAD_STEP_NONE };
AMSPassRoadSTEP m_pass_road_right_step = { AMSPassRoadSTEP::AMS_ROAD_STEP_NONE };
std::map<int, wxColour> m_road_color;
//void Update(AMSRoadDownPartMode nozzle, AMSRoadShowMode left_mode, AMSRoadShowMode right_mode, int left_len, int right_len);
void UpdateLeft(int nozzle_num, AMSRoadShowMode mode);
void UpdateRight(int nozzle_num, AMSRoadShowMode mode);
bool m_vams_loading{ false };
AMSModel m_ams_model;
void OnVamsLoading(bool load, wxColour col = AMS_CONTROL_GRAY500);
void SetPassRoadColour(bool left, wxColour col);
void SetShowMode(AMSRoadShowMode left_mode, AMSRoadShowMode right_mode);
void UpdatePassRoad(AMSPanelPos pos, int len, AMSPassRoadSTEP step);
void paintEvent(wxPaintEvent& evt);
void render(wxDC& dc);
void doRender(wxDC& dc);
void msw_rescale();
};
/*************************************************
Description:AMSPreview
**************************************************/
class AMSPreview : public wxWindow
{
public:
@ -493,22 +616,27 @@ public:
void OnSelected();
void UnSelected();
virtual bool Enable(bool enable = true);
void msw_rescale();
std::string get_ams_id() const { return m_amsinfo.ams_id; };
int get_nozzle_id() const { return m_amsinfo.nozzle_id; };
protected:
AMSinfo m_amsinfo;
wxSize m_cube_size;
wxColour m_background_colour = {AMS_CONTROL_DEF_LIB_BK_COLOUR};
int m_padding = {7};
int m_space = {5};
wxColour m_background_colour = { AMS_CONTROL_DEF_LIB_BK_COLOUR };
float m_padding;
float m_space;
bool m_hover = {false};
bool m_selected = {false};
AMSModel m_ams_item_type = AMSModel::GENERIC_AMS;
ScalableBitmap* m_ts_bitmap_cube;
ScalableBitmap m_ts_bitmap_cube;
ScalableBitmap m_four_slot_bitmap;
ScalableBitmap m_single_slot_bitmap;
ScalableBitmap m_ext_bitmap;
void paintEvent(wxPaintEvent &evt);
void render(wxDC &dc);
@ -529,28 +657,24 @@ public:
public:
AMSinfo m_amsinfo;
int m_canindex = { 0 };
bool m_selected = { false };
double m_radius = { 12 };
void Update(AMSinfo amsinfo);
std::vector<ScalableBitmap> ams_humidity_imgs;
std::vector<ScalableBitmap> ams_humidity_dark_imgs;
std::vector<ScalableBitmap> ams_humidity_no_num_imgs;
std::vector<ScalableBitmap> ams_humidity_no_num_dark_imgs;
ScalableBitmap ams_sun_img;
ScalableBitmap ams_drying_img;
std::vector<ScalableBitmap> ams_humidity_img;
ScalableBitmap ams_sun_img;
int m_humidity = { 0 };
bool m_show_humidity = { false };
bool m_vams_loading{ false };
AMSModel m_ams_model;
void paintEvent(wxPaintEvent& evt);
void render(wxDC& dc);
void doRender(wxDC& dc);
void msw_rescale();
private:
void update_size();
};
@ -561,11 +685,13 @@ class AmsItem : public wxWindow
{
public:
AmsItem();
AmsItem(wxWindow *parent, AMSinfo info, AMSModel model);
AmsItem(wxWindow *parent, AMSinfo info, AMSModel model, AMSPanelPos pos);
~AmsItem();
void Update(AMSinfo info);
void create(wxWindow *parent);
void AddCan(Caninfo caninfo, int canindex, int maxcan, wxBoxSizer* sizer);
void AddLiteCan(Caninfo caninfo, int canindex, wxGridSizer* sizer);
void SetDefSelectCan();
void SelectCan(std::string canid);
void PlayRridLoading(wxString canid);
@ -573,7 +699,7 @@ public:
void msw_rescale();
void show_sn_value(bool show);
void SetAmsStepExtra(wxString canid, AMSPassRoadType type, AMSPassRoadSTEP step);
void SetAmsStep(wxString canid, AMSPassRoadType type, AMSPassRoadSTEP step);
void SetAmsStep(std::string amsid, std::string canid, AMSPassRoadType type, AMSPassRoadSTEP step);
void SetAmsStep(std::string can_id);
void paintEvent(wxPaintEvent& evt);
void render(wxDC& dc);
@ -586,35 +712,49 @@ public:
AMSinfo get_ams_info() const { return m_info; };
std::string get_ams_id() const { return m_info.ams_id; };
AMSModel get_ams_model() const { return m_info.ams_type; };
AMSModelOriginType get_ext_type() const { return m_info.ext_type; };
AMSExtImage *get_ext_image() const { return m_ext_image; };
size_t get_can_count() const { return m_info.cans.size(); };
std::map<std::string, AMSLib*> get_can_lib_list() const { return m_can_lib_list; };
int get_selection() const { return m_selection; };
void set_selection(int selection) { m_selection = selection; };
AMSPanelPos get_panel_pos() const { return m_panel_pos; };
int get_nozzle_id() const { return m_info.nozzle_id; };
private:
ScalableBitmap m_bitmap_extra_framework;
int m_canlib_selection = { -1 };
int m_selection = { 0 };
int m_can_count = { 0 };
AMSModel m_ams_model;
AMSPanelPos m_panel_pos;
std::string m_canlib_id;
std::string m_road_canid;
wxColour m_road_colour;
std::map<std::string, AMSLib*> m_can_lib_list;
std::map<std::string, AMSRoad*> m_can_road_list;
std::map<std::string, AMSrefresh*> m_can_refresh_list;
AMSHumidity* m_humidity = { nullptr };
std::map<std::string, AMSLib*> m_can_lib_list;
//std::map<std::string, AMSRoad*> m_can_road_list;
AMSRoadUpPart* m_panel_road = { nullptr };
std::map<std::string, AMSrefresh*> m_can_refresh_list;
AMSHumidity* m_humidity = { nullptr };
AMSinfo m_info;
wxBoxSizer * sizer_can = {nullptr};
wxGridSizer* sizer_can_extra = { nullptr };
wxBoxSizer * sizer_humidity = { nullptr };
wxBoxSizer * sizer_item = { nullptr };
wxBoxSizer * sizer_can_middle = {nullptr};
wxBoxSizer * sizer_can_left = {nullptr};
wxBoxSizer * sizer_can_right = {nullptr};
AMSPassRoadSTEP m_step = {AMSPassRoadSTEP ::AMS_ROAD_STEP_NONE};
AMSExtImage* m_ext_image = { nullptr }; //the ext image upon the ext ams
AMSExtText* m_ext_text = { nullptr }; //the ext text upon the ext ams
};
wxDECLARE_EVENT(EVT_AMS_EXTRUSION_CALI, wxCommandEvent);
@ -625,14 +765,16 @@ wxDECLARE_EVENT(EVT_AMS_FILAMENT_BACKUP, SimpleEvent);
wxDECLARE_EVENT(EVT_AMS_REFRESH_RFID, wxCommandEvent);
wxDECLARE_EVENT(EVT_AMS_ON_SELECTED, wxCommandEvent);
wxDECLARE_EVENT(EVT_AMS_ON_FILAMENT_EDIT, wxCommandEvent);
wxDECLARE_EVENT(EVT_VAMS_ON_FILAMENT_EDIT, wxCommandEvent);
wxDECLARE_EVENT(EVT_AMS_CLIBRATION_AGAIN, wxCommandEvent);
wxDECLARE_EVENT(EVT_AMS_CLIBRATION_CANCEL, wxCommandEvent);
wxDECLARE_EVENT(EVT_AMS_GUIDE_WIKI, wxCommandEvent);
wxDECLARE_EVENT(EVT_AMS_RETRY, wxCommandEvent);
wxDECLARE_EVENT(EVT_AMS_SHOW_HUMIDITY_TIPS, wxCommandEvent);
wxDECLARE_EVENT(EVT_AMS_UNSELETED_VAMS, wxCommandEvent);
wxDECLARE_EVENT(EVT_AMS_UNSELETED_AMS, wxCommandEvent);
wxDECLARE_EVENT(EVT_CLEAR_SPEED_CONTROL, wxCommandEvent);
wxDECLARE_EVENT(EVT_VAMS_ON_FILAMENT_EDIT, wxCommandEvent);
wxDECLARE_EVENT(EVT_AMS_SWITCH, SimpleEvent);
}} // namespace Slic3r::GUI