NEW: add print sequence setting to plate
Change-Id: Ic4acb68743442a49dee04702e7a8073b6641bc39
|
@ -1,10 +0,0 @@
|
|||
<svg width="40" height="41" viewBox="0 0 40 41" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M35.9905 39.6718H3.79051C2.19051 39.6718 0.890549 38.3718 0.890549 36.7718V4.57181C0.890549 2.97181 2.19051 1.6718 3.79051 1.6718H35.9905C37.5905 1.6718 38.8905 2.97181 38.8905 4.57181V36.7718C38.8905 38.3718 37.5905 39.6718 35.9905 39.6718Z" fill="#E9E9E9"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.79051 2.56235C2.68237 2.56235 1.7811 3.46363 1.7811 4.57181V36.7718C1.7811 37.88 2.68236 38.7812 3.79051 38.7812H35.9905C37.0987 38.7812 38 37.88 38 36.7718V4.57181C38 3.46365 37.0987 2.56235 35.9905 2.56235H3.79051ZM0 4.57181C0 2.47999 1.69866 0.78125 3.79051 0.78125H35.9905C38.0824 0.78125 39.7811 2.47997 39.7811 4.57181V36.7718C39.7811 38.8637 38.0823 40.5623 35.9905 40.5623H3.79051C1.69866 40.5623 0 38.8636 0 36.7718V4.57181Z" fill="#545454"/>
|
||||
<path d="M19.3542 30.9082H8.43512C7.41277 30.9082 6.58398 31.737 6.58398 32.7593V32.7593C6.58398 33.7817 7.41277 34.6105 8.43512 34.6105H21.6319" stroke="#545454" stroke-width="1.8" stroke-linecap="round"/>
|
||||
<path d="M11.0792 7.71875L8.18941 10.5289C7.75263 10.9536 7.79395 11.6669 8.27686 12.0384L11.2082 14.2933C11.7285 14.6936 11.7285 15.4782 11.2082 15.8785L8.39172 18.0451C7.87134 18.4454 7.87134 19.23 8.39172 19.6303L11.2711 21.8452C11.7715 22.2301 11.7943 22.9767 11.3185 23.3916L8.32213 26.0039" stroke="#545454" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M19.6944 7.71875L16.8046 10.5289C16.3679 10.9536 16.4092 11.6669 16.8921 12.0384L19.8234 14.2933C20.3438 14.6936 20.3438 15.4782 19.8234 15.8785L17.007 18.0451C16.4866 18.4454 16.4866 19.23 17.007 19.6303L19.8863 21.8452C20.3867 22.2301 20.4096 22.9767 19.9337 23.3916L16.9374 26.0039" stroke="#545454" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M28.3077 7.71875L25.4179 10.5289C24.9811 10.9536 25.0225 11.6669 25.5054 12.0384L28.4367 14.2933C28.9571 14.6936 28.9571 15.4782 28.4367 15.8785L24.5898 18.8377" stroke="#545454" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M36.0003 28.176L32.4922 34.2522C32.4743 34.2831 32.4413 34.3022 32.4056 34.3022L25.3894 34.3022C25.3536 34.3022 25.3206 34.2831 25.3028 34.2522L21.7947 28.176C21.7768 28.145 21.7768 28.1069 21.7947 28.076L25.3028 21.9998C25.3206 21.9688 25.3536 21.9498 25.3894 21.9498L32.4056 21.9498C32.4413 21.9498 32.4743 21.9688 32.4922 21.9998L36.0003 28.076C36.0182 28.1069 36.0182 28.145 36.0003 28.176Z" stroke="#545454" stroke-width="1.8" stroke-linejoin="round"/>
|
||||
<circle cx="28.8972" cy="28.1263" r="2.32605" transform="rotate(90 28.8972 28.1263)" stroke="#545454" stroke-width="1.8" stroke-linejoin="round"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.7 KiB |
|
@ -1,10 +0,0 @@
|
|||
<svg width="40" height="41" viewBox="0 0 40 41" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M35.9906 39.6719H3.79059C2.19059 39.6719 0.890625 38.3719 0.890625 36.7719V4.57188C0.890625 2.97188 2.19059 1.67188 3.79059 1.67188H35.9906C37.5906 1.67188 38.8906 2.97188 38.8906 4.57188V36.7719C38.8906 38.3719 37.5906 39.6719 35.9906 39.6719Z" fill="#E9E9E9"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.79051 2.56235C2.68237 2.56235 1.7811 3.46363 1.7811 4.57181V36.7718C1.7811 37.88 2.68236 38.7812 3.79051 38.7812H35.9905C37.0987 38.7812 38 37.88 38 36.7718V4.57181C38 3.46365 37.0987 2.56235 35.9905 2.56235H3.79051ZM0 4.57181C0 2.47999 1.69866 0.78125 3.79051 0.78125H35.9905C38.0824 0.78125 39.7811 2.47997 39.7811 4.57181V36.7718C39.7811 38.8637 38.0823 40.5623 35.9905 40.5623H3.79051C1.69866 40.5623 0 38.8636 0 36.7718V4.57181Z" fill="#545454"/>
|
||||
<path d="M19.3542 30.9082H8.43512C7.41277 30.9082 6.58398 31.737 6.58398 32.7593V32.7593C6.58398 33.7817 7.41277 34.6105 8.43512 34.6105H21.6319" stroke="#FF6F00" stroke-width="1.8" stroke-linecap="round"/>
|
||||
<path d="M11.0792 7.71875L8.18941 10.5289C7.75263 10.9536 7.79395 11.6669 8.27686 12.0384L11.2082 14.2933C11.7285 14.6936 11.7285 15.4782 11.2082 15.8785L8.39172 18.0451C7.87134 18.4454 7.87134 19.23 8.39172 19.6303L11.2711 21.8452C11.7715 22.2301 11.7943 22.9767 11.3185 23.3916L8.32213 26.0039" stroke="#FF6F00" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M19.6944 7.71875L16.8046 10.5289C16.3679 10.9536 16.4092 11.6669 16.8921 12.0384L19.8234 14.2933C20.3438 14.6936 20.3438 15.4782 19.8234 15.8785L17.007 18.0451C16.4866 18.4454 16.4866 19.23 17.007 19.6303L19.8863 21.8452C20.3867 22.2301 20.4096 22.9767 19.9337 23.3916L16.9374 26.0039" stroke="#FF6F00" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M28.3077 7.71875L25.4179 10.5289C24.9811 10.9536 25.0225 11.6669 25.5054 12.0384L28.4367 14.2933C28.9571 14.6936 28.9571 15.4782 28.4367 15.8785L24.5898 18.8377" stroke="#FF6F00" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M36.0003 28.176L32.4922 34.2522C32.4743 34.2831 32.4413 34.3022 32.4056 34.3022L25.3893 34.3022C25.3536 34.3022 25.3206 34.2831 25.3027 34.2522L21.7946 28.176C21.7768 28.145 21.7768 28.1069 21.7946 28.076L25.3027 21.9998C25.3206 21.9688 25.3536 21.9498 25.3893 21.9498L32.4056 21.9498C32.4413 21.9498 32.4743 21.9688 32.4922 21.9998L36.0003 28.076C36.0181 28.1069 36.0181 28.145 36.0003 28.176Z" stroke="#545454" stroke-width="1.8" stroke-linejoin="round"/>
|
||||
<circle cx="28.897" cy="28.1264" r="2.32605" transform="rotate(90 28.897 28.1264)" stroke="#545454" stroke-width="1.8" stroke-linejoin="round"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.7 KiB |
|
@ -1,9 +0,0 @@
|
|||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M36.9473 39.2H3.05259C1.81022 39.2 0.8 38.1898 0.8 36.9474V3.05264C0.8 1.81024 1.81023 0.8 3.05259 0.8H36.9473C38.1897 0.8 39.2 1.81026 39.2 3.05264V36.9474C39.2 38.1897 38.1897 39.2 36.9473 39.2Z" fill="#54545A" stroke="#98989C" stroke-width="1.6" stroke-miterlimit="10"/>
|
||||
<path d="M17.7295 30H7C5.89543 30 5 30.8954 5 32V32C5 33.1046 5.89543 34 7 34H20" stroke="#D15B00" stroke-width="1.6" stroke-linecap="round"/>
|
||||
<path d="M20.8114 6L17.8789 8.73829C17.4219 9.16509 17.4643 9.90198 17.9673 10.2735L20.911 12.4479C21.4522 12.8477 21.4522 13.6569 20.911 14.0567L18.089 16.1412C17.5478 16.5409 17.5478 17.3502 18.089 17.7499L20.9776 19.8836C21.4984 20.2684 21.5219 21.0391 21.0253 21.4548L17.985 24" stroke="#D15B00" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M9.81141 6L6.87895 8.73829C6.42188 9.16509 6.46429 9.90198 6.9673 10.2735L9.91105 12.4479C10.4522 12.8477 10.4522 13.6569 9.91105 14.0567L7.08895 16.1412C6.54781 16.5409 6.54781 17.3502 7.08895 17.7499L9.97758 19.8836C10.4984 20.2684 10.5219 21.0391 10.0253 21.4548L6.98498 24" stroke="#D15B00" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M31.8114 6L28.8726 8.75785C28.418 9.18444 28.4603 9.91843 28.9609 10.29L31.9742 12.5269C32.4958 12.914 32.5155 13.688 32.0144 14.1013L28.5 17" stroke="#D15B00" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M35.0185 28.4C35.0542 28.4619 35.0542 28.5381 35.0185 28.6L31.8459 34.0952C31.8101 34.1571 31.7441 34.1952 31.6726 34.1952L25.3274 34.1952C25.2559 34.1952 25.1899 34.1571 25.1541 34.0952L21.9815 28.6C21.9458 28.5381 21.9458 28.4619 21.9815 28.4L25.1541 22.9048C25.1899 22.8429 25.2559 22.8048 25.3274 22.8048L31.6727 22.8048C31.7441 22.8048 31.8101 22.8429 31.8459 22.9048L35.0185 28.4Z" stroke="#98989C" stroke-width="1.6" stroke-linejoin="round"/>
|
||||
<circle cx="28.5" cy="28.5" r="1.7" transform="rotate(90 28.5 28.5)" stroke="#98989C" stroke-width="1.6" stroke-linejoin="round"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.0 KiB |
|
@ -1,10 +0,0 @@
|
|||
<svg width="40" height="41" viewBox="0 0 40 41" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M35.9906 39.6719H3.79059C2.19059 39.6719 0.890625 38.3719 0.890625 36.7719V4.57188C0.890625 2.97188 2.19059 1.67188 3.79059 1.67188H35.9906C37.5906 1.67188 38.8906 2.97188 38.8906 4.57188V36.7719C38.8906 38.3719 37.5906 39.6719 35.9906 39.6719Z" fill="#D6D6D6"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.79051 2.56235C2.68237 2.56235 1.7811 3.46363 1.7811 4.57181V36.7718C1.7811 37.88 2.68236 38.7812 3.79051 38.7812H35.9905C37.0987 38.7812 38 37.88 38 36.7718V4.57181C38 3.46365 37.0987 2.56235 35.9905 2.56235H3.79051ZM0 4.57181C0 2.47999 1.69866 0.78125 3.79051 0.78125H35.9905C38.0824 0.78125 39.7811 2.47997 39.7811 4.57181V36.7718C39.7811 38.8637 38.0823 40.5623 35.9905 40.5623H3.79051C1.69866 40.5623 0 38.8636 0 36.7718V4.57181Z" fill="#545454"/>
|
||||
<path d="M19.3542 30.9082H8.43512C7.41277 30.9082 6.58398 31.737 6.58398 32.7593V32.7593C6.58398 33.7817 7.41277 34.6105 8.43512 34.6105H21.6319" stroke="#FF6F00" stroke-width="1.8" stroke-linecap="round"/>
|
||||
<path d="M11.0792 7.71875L8.18941 10.5289C7.75263 10.9536 7.79395 11.6669 8.27686 12.0384L11.2082 14.2933C11.7285 14.6936 11.7285 15.4782 11.2082 15.8785L8.39172 18.0451C7.87134 18.4454 7.87134 19.23 8.39172 19.6303L11.2711 21.8452C11.7715 22.2301 11.7943 22.9767 11.3185 23.3916L8.32213 26.0039" stroke="#FF6F00" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M19.6944 7.71875L16.8046 10.5289C16.3679 10.9536 16.4092 11.6669 16.8921 12.0384L19.8234 14.2933C20.3438 14.6936 20.3438 15.4782 19.8234 15.8785L17.007 18.0451C16.4866 18.4454 16.4866 19.23 17.007 19.6303L19.8863 21.8452C20.3867 22.2301 20.4096 22.9767 19.9337 23.3916L16.9374 26.0039" stroke="#FF6F00" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M28.3077 7.71875L25.4179 10.5289C24.9811 10.9536 25.0225 11.6669 25.5054 12.0384L28.4367 14.2933C28.9571 14.6936 28.9571 15.4782 28.4367 15.8785L24.5898 18.8377" stroke="#FF6F00" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M36.0003 28.176L32.4922 34.2522C32.4743 34.2831 32.4413 34.3022 32.4056 34.3022L25.3893 34.3022C25.3536 34.3022 25.3206 34.2831 25.3027 34.2522L21.7946 28.176C21.7768 28.145 21.7768 28.1069 21.7946 28.076L25.3027 21.9998C25.3206 21.9688 25.3536 21.9498 25.3893 21.9498L32.4056 21.9498C32.4413 21.9498 32.4743 21.9688 32.4922 21.9998L36.0003 28.076C36.0181 28.1069 36.0181 28.145 36.0003 28.176Z" stroke="#545454" stroke-width="1.8" stroke-linejoin="round"/>
|
||||
<circle cx="28.897" cy="28.1264" r="2.32605" transform="rotate(90 28.897 28.1264)" stroke="#545454" stroke-width="1.8" stroke-linejoin="round"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.7 KiB |
|
@ -1,9 +0,0 @@
|
|||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M36.9473 39.2H3.05259C1.81022 39.2 0.8 38.1898 0.8 36.9474V3.05264C0.8 1.81024 1.81023 0.8 3.05259 0.8H36.9473C38.1897 0.8 39.2 1.81026 39.2 3.05264V36.9474C39.2 38.1897 38.1897 39.2 36.9473 39.2Z" fill="#4C4C55" stroke="#98989C" stroke-width="1.6" stroke-miterlimit="10"/>
|
||||
<path d="M17.7295 30H7C5.89543 30 5 30.8954 5 32V32C5 33.1046 5.89543 34 7 34H20" stroke="#D15B00" stroke-width="1.6" stroke-linecap="round"/>
|
||||
<path d="M20.8114 6L17.8789 8.73829C17.4219 9.16509 17.4643 9.90198 17.9673 10.2735L20.911 12.4479C21.4522 12.8477 21.4522 13.6569 20.911 14.0567L18.089 16.1412C17.5478 16.5409 17.5478 17.3502 18.089 17.7499L20.9776 19.8836C21.4984 20.2684 21.5219 21.0391 21.0253 21.4548L17.985 24" stroke="#D15B00" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M9.81141 6L6.87895 8.73829C6.42188 9.16509 6.46429 9.90198 6.9673 10.2735L9.91105 12.4479C10.4522 12.8477 10.4522 13.6569 9.91105 14.0567L7.08895 16.1412C6.54781 16.5409 6.54781 17.3502 7.08895 17.7499L9.97758 19.8836C10.4984 20.2684 10.5219 21.0391 10.0253 21.4548L6.98498 24" stroke="#D15B00" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M31.8114 6L28.8726 8.75785C28.418 9.18444 28.4603 9.91843 28.9609 10.29L31.9742 12.5269C32.4958 12.914 32.5155 13.688 32.0144 14.1013L28.5 17" stroke="#D15B00" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M35.0185 28.4C35.0542 28.4619 35.0542 28.5381 35.0185 28.6L31.8459 34.0952C31.8101 34.1571 31.7441 34.1952 31.6726 34.1952L25.3274 34.1952C25.2559 34.1952 25.1899 34.1571 25.1541 34.0952L21.9815 28.6C21.9458 28.5381 21.9458 28.4619 21.9815 28.4L25.1541 22.9048C25.1899 22.8429 25.2559 22.8048 25.3274 22.8048L31.6727 22.8048C31.7441 22.8048 31.8101 22.8429 31.8459 22.9048L35.0185 28.4Z" stroke="#98989C" stroke-width="1.6" stroke-linejoin="round"/>
|
||||
<circle cx="28.5" cy="28.5" r="1.7" transform="rotate(90 28.5 28.5)" stroke="#98989C" stroke-width="1.6" stroke-linejoin="round"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.0 KiB |
|
@ -1,9 +0,0 @@
|
|||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M36.9473 39.2H3.05259C1.81022 39.2 0.8 38.1898 0.8 36.9474V3.05264C0.8 1.81024 1.81023 0.8 3.05259 0.8H36.9473C38.1897 0.8 39.2 1.81026 39.2 3.05264V36.9474C39.2 38.1897 38.1897 39.2 36.9473 39.2Z" fill="#54545A" stroke="#98989C" stroke-width="1.6" stroke-miterlimit="10"/>
|
||||
<path d="M17.7295 30H7C5.89543 30 5 30.8954 5 32V32C5 33.1046 5.89543 34 7 34H20" stroke="#98989C" stroke-width="1.6" stroke-linecap="round"/>
|
||||
<path d="M20.8114 6L17.8789 8.73829C17.4219 9.16509 17.4643 9.90198 17.9673 10.2735L20.911 12.4479C21.4522 12.8477 21.4522 13.6569 20.911 14.0567L18.089 16.1412C17.5478 16.5409 17.5478 17.3502 18.089 17.7499L20.9776 19.8836C21.4984 20.2684 21.5219 21.0391 21.0253 21.4548L17.985 24" stroke="#98989C" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M9.81141 6L6.87895 8.73829C6.42188 9.16509 6.46429 9.90198 6.9673 10.2735L9.91105 12.4479C10.4522 12.8477 10.4522 13.6569 9.91105 14.0567L7.08895 16.1412C6.54781 16.5409 6.54781 17.3502 7.08895 17.7499L9.97758 19.8836C10.4984 20.2684 10.5219 21.0391 10.0253 21.4548L6.98498 24" stroke="#98989C" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M31.8114 6L28.8726 8.75785C28.418 9.18444 28.4603 9.91843 28.9609 10.29L31.9742 12.5269C32.4958 12.914 32.5155 13.688 32.0144 14.1013L28.5 17" stroke="#98989C" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M35.0185 28.4C35.0542 28.4619 35.0542 28.5381 35.0185 28.6L31.8459 34.0952C31.8101 34.1571 31.7441 34.1952 31.6726 34.1952L25.3274 34.1952C25.2559 34.1952 25.1899 34.1571 25.1541 34.0952L21.9815 28.6C21.9458 28.5381 21.9458 28.4619 21.9815 28.4L25.1541 22.9048C25.1899 22.8429 25.2559 22.8048 25.3274 22.8048L31.6727 22.8048C31.7441 22.8048 31.8101 22.8429 31.8459 22.9048L35.0185 28.4Z" stroke="#98989C" stroke-width="1.6" stroke-linejoin="round"/>
|
||||
<circle cx="28.5" cy="28.5" r="1.7" transform="rotate(90 28.5 28.5)" stroke="#98989C" stroke-width="1.6" stroke-linejoin="round"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.0 KiB |
|
@ -1,10 +0,0 @@
|
|||
<svg width="40" height="41" viewBox="0 0 40 41" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M35.9905 39.6718H3.79051C2.19051 39.6718 0.890549 38.3718 0.890549 36.7718V4.57181C0.890549 2.97181 2.19051 1.6718 3.79051 1.6718H35.9905C37.5905 1.6718 38.8905 2.97181 38.8905 4.57181V36.7718C38.8905 38.3718 37.5905 39.6718 35.9905 39.6718Z" fill="#D6D6D6"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.79051 2.56235C2.68237 2.56235 1.7811 3.46363 1.7811 4.57181V36.7718C1.7811 37.88 2.68236 38.7812 3.79051 38.7812H35.9905C37.0987 38.7812 38 37.88 38 36.7718V4.57181C38 3.46365 37.0987 2.56235 35.9905 2.56235H3.79051ZM0 4.57181C0 2.47999 1.69866 0.78125 3.79051 0.78125H35.9905C38.0824 0.78125 39.7811 2.47997 39.7811 4.57181V36.7718C39.7811 38.8637 38.0823 40.5623 35.9905 40.5623H3.79051C1.69866 40.5623 0 38.8636 0 36.7718V4.57181Z" fill="#545454"/>
|
||||
<path d="M19.3542 30.9082H8.43512C7.41277 30.9082 6.58398 31.737 6.58398 32.7593V32.7593C6.58398 33.7817 7.41277 34.6105 8.43512 34.6105H21.6319" stroke="#545454" stroke-width="1.8" stroke-linecap="round"/>
|
||||
<path d="M11.0792 7.71875L8.18941 10.5289C7.75263 10.9536 7.79395 11.6669 8.27686 12.0384L11.2082 14.2933C11.7285 14.6936 11.7285 15.4782 11.2082 15.8785L8.39172 18.0451C7.87134 18.4454 7.87134 19.23 8.39172 19.6303L11.2711 21.8452C11.7715 22.2301 11.7943 22.9767 11.3185 23.3916L8.32213 26.0039" stroke="#545454" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M19.6944 7.71875L16.8046 10.5289C16.3679 10.9536 16.4092 11.6669 16.8921 12.0384L19.8234 14.2933C20.3438 14.6936 20.3438 15.4782 19.8234 15.8785L17.007 18.0451C16.4866 18.4454 16.4866 19.23 17.007 19.6303L19.8863 21.8452C20.3867 22.2301 20.4096 22.9767 19.9337 23.3916L16.9374 26.0039" stroke="#545454" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M28.3077 7.71875L25.4179 10.5289C24.9811 10.9536 25.0225 11.6669 25.5054 12.0384L28.4367 14.2933C28.9571 14.6936 28.9571 15.4782 28.4367 15.8785L24.5898 18.8377" stroke="#545454" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M36.0003 28.176L32.4922 34.2522C32.4743 34.2831 32.4413 34.3022 32.4056 34.3022L25.3894 34.3022C25.3536 34.3022 25.3206 34.2831 25.3028 34.2522L21.7947 28.176C21.7768 28.145 21.7768 28.1069 21.7947 28.076L25.3028 21.9998C25.3206 21.9688 25.3536 21.9498 25.3894 21.9498L32.4056 21.9498C32.4413 21.9498 32.4743 21.9688 32.4922 21.9998L36.0003 28.076C36.0181 28.1069 36.0181 28.145 36.0003 28.176Z" stroke="#545454" stroke-width="1.8" stroke-linejoin="round"/>
|
||||
<circle cx="28.8972" cy="28.1263" r="2.32605" transform="rotate(90 28.8972 28.1263)" stroke="#545454" stroke-width="1.8" stroke-linejoin="round"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.7 KiB |
|
@ -1,9 +0,0 @@
|
|||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M36.9473 39.2H3.05259C1.81022 39.2 0.8 38.1898 0.8 36.9474V3.05264C0.8 1.81024 1.81023 0.8 3.05259 0.8H36.9473C38.1897 0.8 39.2 1.81026 39.2 3.05264V36.9474C39.2 38.1897 38.1897 39.2 36.9473 39.2Z" fill="#4C4C55" stroke="#98989C" stroke-width="1.6" stroke-miterlimit="10"/>
|
||||
<path d="M17.7295 30H7C5.89543 30 5 30.8954 5 32V32C5 33.1046 5.89543 34 7 34H20" stroke="#98989C" stroke-width="1.6" stroke-linecap="round"/>
|
||||
<path d="M20.8114 6L17.8789 8.73829C17.4219 9.16509 17.4643 9.90198 17.9673 10.2735L20.911 12.4479C21.4522 12.8477 21.4522 13.6569 20.911 14.0567L18.089 16.1412C17.5478 16.5409 17.5478 17.3502 18.089 17.7499L20.9776 19.8836C21.4984 20.2684 21.5219 21.0391 21.0253 21.4548L17.985 24" stroke="#98989C" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M9.81141 6L6.87895 8.73829C6.42188 9.16509 6.46429 9.90198 6.9673 10.2735L9.91105 12.4479C10.4522 12.8477 10.4522 13.6569 9.91105 14.0567L7.08895 16.1412C6.54781 16.5409 6.54781 17.3502 7.08895 17.7499L9.97758 19.8836C10.4984 20.2684 10.5219 21.0391 10.0253 21.4548L6.98498 24" stroke="#98989C" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M31.8114 6L28.8726 8.75785C28.418 9.18444 28.4603 9.91843 28.9609 10.29L31.9742 12.5269C32.4958 12.914 32.5155 13.688 32.0144 14.1013L28.5 17" stroke="#98989C" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M35.0185 28.4C35.0542 28.4619 35.0542 28.5381 35.0185 28.6L31.8459 34.0952C31.8101 34.1571 31.7441 34.1952 31.6726 34.1952L25.3274 34.1952C25.2559 34.1952 25.1899 34.1571 25.1541 34.0952L21.9815 28.6C21.9458 28.5381 21.9458 28.4619 21.9815 28.4L25.1541 22.9048C25.1899 22.8429 25.2559 22.8048 25.3274 22.8048L31.6727 22.8048C31.7441 22.8048 31.8101 22.8429 31.8459 22.9048L35.0185 28.4Z" stroke="#98989C" stroke-width="1.6" stroke-linejoin="round"/>
|
||||
<circle cx="28.5" cy="28.5" r="1.7" transform="rotate(90 28.5 28.5)" stroke="#98989C" stroke-width="1.6" stroke-linejoin="round"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.0 KiB |
|
@ -0,0 +1,6 @@
|
|||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M35.9905 38.8906H3.79051C2.19051 38.8906 0.890551 37.5906 0.890551 35.9906V3.79056C0.890551 2.19056 2.19051 0.890551 3.79051 0.890551H35.9905C37.5905 0.890551 38.8906 2.19056 38.8906 3.79056V35.9906C38.8906 37.5906 37.5905 38.8906 35.9905 38.8906Z" fill="#E9E9E9"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.79051 1.7811C2.68237 1.7811 1.7811 2.68238 1.7811 3.79056V35.9906C1.7811 37.0987 2.68236 38 3.79051 38H35.9905C37.0987 38 38 37.0987 38 35.9906V3.79056C38 2.6824 37.0987 1.7811 35.9905 1.7811H3.79051ZM0 3.79056C0 1.69874 1.69866 0 3.79051 0H35.9905C38.0824 0 39.7811 1.69872 39.7811 3.79056V35.9906C39.7811 38.0824 38.0823 39.7811 35.9905 39.7811H3.79051C1.69866 39.7811 0 38.0824 0 35.9906V3.79056Z" fill="#545454"/>
|
||||
<path d="M6.55753 19.9513L13.0001 8.39394C13.0178 8.36226 13.0512 8.34263 13.0874 8.34263L25.9126 8.34263C25.9488 8.34263 25.9823 8.36226 25.9999 8.39394L32.4425 19.9513C32.4593 19.9816 32.4593 20.0184 32.4425 20.0487L25.9999 31.6061C25.9823 31.6377 25.9488 31.6574 25.9126 31.6574L13.0874 31.6574C13.0512 31.6574 13.0177 31.6377 13.0001 31.6061L6.55753 20.0487C6.54066 20.0184 6.54066 19.9816 6.55753 19.9513Z" fill="#D9D9D9" stroke="#545454" stroke-width="1.8" stroke-linejoin="round"/>
|
||||
<path d="M19.5003 15.1748C22.0265 15.1748 24.1278 17.3049 24.1278 19.9997C24.1278 22.6945 22.0265 24.8246 19.5003 24.8246C16.9741 24.8246 14.8728 22.6945 14.8728 19.9997C14.8728 17.3049 16.9741 15.1748 19.5003 15.1748Z" stroke="#545454" stroke-width="1.8" stroke-linejoin="round"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
|
@ -0,0 +1,6 @@
|
|||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M35.9905 38.8906H3.79051C2.19051 38.8906 0.89055 37.5906 0.89055 35.9906V3.79056C0.89055 2.19056 2.19051 0.89055 3.79051 0.89055H35.9905C37.5905 0.89055 38.8905 2.19056 38.8905 3.79056V35.9906C38.8905 37.5906 37.5905 38.8906 35.9905 38.8906Z" fill="#E9E9E9"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.79051 1.7811C2.68237 1.7811 1.7811 2.68238 1.7811 3.79056V35.9906C1.7811 37.0987 2.68236 38 3.79051 38H35.9905C37.0987 38 38 37.0987 38 35.9906V3.79056C38 2.6824 37.0987 1.7811 35.9905 1.7811H3.79051ZM0 3.79056C0 1.69874 1.69866 0 3.79051 0H35.9905C38.0824 0 39.7811 1.69872 39.7811 3.79056V35.9906C39.7811 38.0824 38.0823 39.7811 35.9905 39.7811H3.79051C1.69866 39.7811 0 38.0824 0 35.9906V3.79056Z" fill="#545454"/>
|
||||
<path d="M6.55753 19.9513L13.0001 8.39394C13.0178 8.36226 13.0512 8.34263 13.0874 8.34263L25.9126 8.34263C25.9488 8.34263 25.9823 8.36226 25.9999 8.39394L32.4425 19.9513C32.4593 19.9816 32.4593 20.0184 32.4425 20.0487L25.9999 31.6061C25.9823 31.6377 25.9488 31.6574 25.9126 31.6574L13.0874 31.6574C13.0512 31.6574 13.0177 31.6377 13.0001 31.6061L6.55753 20.0487C6.54066 20.0184 6.54066 19.9816 6.55753 19.9513Z" stroke="#FF6F00" stroke-width="1.8" stroke-linejoin="round"/>
|
||||
<path d="M19.5003 15.1748C22.0265 15.1748 24.1278 17.3049 24.1278 19.9997C24.1278 22.6945 22.0265 24.8246 19.5003 24.8246C16.9741 24.8246 14.8728 22.6945 14.8728 19.9997C14.8728 17.3049 16.9741 15.1748 19.5003 15.1748Z" stroke="#FF6F00" stroke-width="1.8" stroke-linejoin="round"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
|
@ -0,0 +1,6 @@
|
|||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M36.1886 39.1046H3.81143C2.20262 39.1046 0.895508 37.7975 0.895508 36.1887V3.81147C0.895508 2.20267 2.20262 0.895508 3.81143 0.895508H36.1886C37.7974 0.895508 39.1046 2.20267 39.1046 3.81147V36.1887C39.1046 37.7975 37.7974 39.1046 36.1886 39.1046Z" fill="#54545A"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.81137 1.7909C2.69713 1.7909 1.7909 2.69714 1.7909 3.81142V36.1886C1.7909 37.3029 2.69712 38.2091 3.81137 38.2091H36.1886C37.3028 38.2091 38.2091 37.3028 38.2091 36.1886V3.81142C38.2091 2.69716 37.3028 1.7909 36.1886 1.7909H3.81137ZM0 3.81142C0 1.70809 1.70801 0 3.81137 0H36.1886C38.2919 0 40 1.70806 40 3.81142V36.1886C40 38.292 38.2919 40 36.1886 40H3.81137C1.70801 40 0 38.2919 0 36.1886V3.81142Z" fill="#98989C"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.59071 20.1099L13.6258 30.9363L25.5881 30.9363L31.6232 20.1099L25.5881 9.28339L13.6258 9.28339L7.59071 20.1099ZM5.80135 19.623C5.63263 19.9256 5.63263 20.2941 5.80135 20.5968L12.2824 32.2232C12.459 32.54 12.7932 32.7363 13.1559 32.7363L26.0581 32.7363C26.4207 32.7363 26.7549 32.54 26.9315 32.2232L33.4126 20.5968C33.5813 20.2941 33.5813 19.9256 33.4126 19.623L26.9315 7.99649C26.7549 7.67973 26.4207 7.48339 26.0581 7.48339L13.1559 7.48339C12.7932 7.48339 12.459 7.67973 12.2824 7.99649L5.80135 19.623Z" fill="#D15B00"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M23.3647 20.1098C23.3647 17.8647 21.6232 16.1534 19.6068 16.1534C17.5903 16.1534 15.8488 17.8647 15.8488 20.1098C15.8488 22.3549 17.5903 24.0662 19.6067 24.0662C21.6232 24.0662 23.3647 22.3549 23.3647 20.1098ZM25.1647 20.1098C25.1647 16.9306 22.6763 14.3534 19.6068 14.3534C16.5372 14.3534 14.0488 16.9306 14.0488 20.1098C14.0488 23.289 16.5372 25.8662 19.6067 25.8662C22.6763 25.8662 25.1647 23.289 25.1647 20.1098Z" fill="#D15B00"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
|
@ -0,0 +1,6 @@
|
|||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M35.9905 38.8906H3.79051C2.19051 38.8906 0.89055 37.5906 0.89055 35.9906V3.79056C0.89055 2.19056 2.19051 0.89055 3.79051 0.89055H35.9905C37.5905 0.89055 38.8905 2.19056 38.8905 3.79056V35.9906C38.8905 37.5906 37.5905 38.8906 35.9905 38.8906Z" fill="#D6D6D6"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.79051 1.7811C2.68237 1.7811 1.7811 2.68238 1.7811 3.79056V35.9906C1.7811 37.0987 2.68236 38 3.79051 38H35.9905C37.0987 38 38 37.0987 38 35.9906V3.79056C38 2.6824 37.0987 1.7811 35.9905 1.7811H3.79051ZM0 3.79056C0 1.69874 1.69866 0 3.79051 0H35.9905C38.0824 0 39.7811 1.69872 39.7811 3.79056V35.9906C39.7811 38.0824 38.0823 39.7811 35.9905 39.7811H3.79051C1.69866 39.7811 0 38.0824 0 35.9906V3.79056Z" fill="#545454"/>
|
||||
<path d="M6.55753 19.9513L13.0001 8.39394C13.0178 8.36226 13.0512 8.34263 13.0874 8.34263L25.9126 8.34263C25.9488 8.34263 25.9823 8.36226 25.9999 8.39394L32.4425 19.9513C32.4593 19.9816 32.4593 20.0184 32.4425 20.0487L25.9999 31.6061C25.9823 31.6377 25.9488 31.6574 25.9126 31.6574L13.0874 31.6574C13.0512 31.6574 13.0177 31.6377 13.0001 31.6061L6.55753 20.0487C6.54066 20.0184 6.54066 19.9816 6.55753 19.9513Z" stroke="#FF6F00" stroke-width="1.8" stroke-linejoin="round"/>
|
||||
<path d="M19.5003 15.1748C22.0265 15.1748 24.1278 17.3049 24.1278 19.9997C24.1278 22.6945 22.0265 24.8246 19.5003 24.8246C16.9741 24.8246 14.8728 22.6945 14.8728 19.9997C14.8728 17.3049 16.9741 15.1748 19.5003 15.1748Z" stroke="#FF6F00" stroke-width="1.8" stroke-linejoin="round"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
|
@ -0,0 +1,6 @@
|
|||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M36.1886 39.1046H3.81143C2.20262 39.1046 0.895508 37.7975 0.895508 36.1887V3.81147C0.895508 2.20267 2.20262 0.895508 3.81143 0.895508H36.1886C37.7974 0.895508 39.1046 2.20267 39.1046 3.81147V36.1887C39.1046 37.7975 37.7974 39.1046 36.1886 39.1046Z" fill="#4C4C55"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.81137 1.7909C2.69713 1.7909 1.7909 2.69714 1.7909 3.81142V36.1886C1.7909 37.3029 2.69712 38.2091 3.81137 38.2091H36.1886C37.3028 38.2091 38.2091 37.3028 38.2091 36.1886V3.81142C38.2091 2.69716 37.3028 1.7909 36.1886 1.7909H3.81137ZM0 3.81142C0 1.70809 1.70801 0 3.81137 0H36.1886C38.2919 0 40 1.70806 40 3.81142V36.1886C40 38.292 38.2919 40 36.1886 40H3.81137C1.70801 40 0 38.2919 0 36.1886V3.81142Z" fill="#98989C"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.59071 20.1099L13.6258 30.9363L25.5881 30.9363L31.6232 20.1099L25.5881 9.28339L13.6258 9.28339L7.59071 20.1099ZM5.80135 19.623C5.63263 19.9256 5.63263 20.2941 5.80135 20.5968L12.2824 32.2232C12.459 32.54 12.7932 32.7363 13.1559 32.7363L26.0581 32.7363C26.4207 32.7363 26.7549 32.54 26.9315 32.2232L33.4126 20.5968C33.5813 20.2941 33.5813 19.9256 33.4126 19.623L26.9315 7.99649C26.7549 7.67973 26.4207 7.48339 26.0581 7.48339L13.1559 7.48339C12.7932 7.48339 12.459 7.67973 12.2824 7.99649L5.80135 19.623Z" fill="#D15B00"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M23.3647 20.1098C23.3647 17.8647 21.6232 16.1534 19.6068 16.1534C17.5903 16.1534 15.8488 17.8647 15.8488 20.1098C15.8488 22.3549 17.5903 24.0662 19.6067 24.0662C21.6232 24.0662 23.3647 22.3549 23.3647 20.1098ZM25.1647 20.1098C25.1647 16.9306 22.6763 14.3534 19.6068 14.3534C16.5372 14.3534 14.0488 16.9306 14.0488 20.1098C14.0488 23.289 16.5372 25.8662 19.6067 25.8662C22.6763 25.8662 25.1647 23.289 25.1647 20.1098Z" fill="#D15B00"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
|
@ -0,0 +1,6 @@
|
|||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M36.1886 39.1046H3.81143C2.20262 39.1046 0.895508 37.7975 0.895508 36.1887V3.81147C0.895508 2.20267 2.20262 0.895508 3.81143 0.895508H36.1886C37.7974 0.895508 39.1046 2.20267 39.1046 3.81147V36.1887C39.1046 37.7975 37.7974 39.1046 36.1886 39.1046Z" fill="#54545A"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.81137 1.7909C2.69713 1.7909 1.7909 2.69714 1.7909 3.81142V36.1886C1.7909 37.3029 2.69712 38.2091 3.81137 38.2091H36.1886C37.3028 38.2091 38.2091 37.3028 38.2091 36.1886V3.81142C38.2091 2.69716 37.3028 1.7909 36.1886 1.7909H3.81137ZM0 3.81142C0 1.70809 1.70801 0 3.81137 0H36.1886C38.2919 0 40 1.70806 40 3.81142V36.1886C40 38.292 38.2919 40 36.1886 40H3.81137C1.70801 40 0 38.2919 0 36.1886V3.81142Z" fill="#98989C"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.59071 20.1099L13.6258 30.9363L25.5881 30.9363L31.6232 20.1099L25.5881 9.28339L13.6258 9.28339L7.59071 20.1099ZM5.80135 19.623C5.63263 19.9256 5.63263 20.2941 5.80135 20.5968L12.2824 32.2232C12.459 32.54 12.7932 32.7363 13.1559 32.7363L26.0581 32.7363C26.4207 32.7363 26.7549 32.54 26.9315 32.2232L33.4126 20.5968C33.5813 20.2941 33.5813 19.9256 33.4126 19.623L26.9315 7.99649C26.7549 7.67973 26.4207 7.48339 26.0581 7.48339L13.1559 7.48339C12.7932 7.48339 12.459 7.67973 12.2824 7.99649L5.80135 19.623Z" fill="#98989C"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M23.3647 20.1098C23.3647 17.8647 21.6232 16.1534 19.6068 16.1534C17.5903 16.1534 15.8488 17.8647 15.8488 20.1098C15.8488 22.3549 17.5903 24.0662 19.6067 24.0662C21.6232 24.0662 23.3647 22.3549 23.3647 20.1098ZM25.1647 20.1098C25.1647 16.9306 22.6763 14.3534 19.6068 14.3534C16.5372 14.3534 14.0488 16.9306 14.0488 20.1098C14.0488 23.289 16.5372 25.8662 19.6067 25.8662C22.6763 25.8662 25.1647 23.289 25.1647 20.1098Z" fill="#98989C"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
|
@ -0,0 +1,6 @@
|
|||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M35.9905 38.8906H3.79051C2.19051 38.8906 0.89055 37.5906 0.89055 35.9906V3.79056C0.89055 2.19056 2.19051 0.89055 3.79051 0.89055H35.9905C37.5905 0.89055 38.8906 2.19056 38.8906 3.79056V35.9906C38.8906 37.5906 37.5905 38.8906 35.9905 38.8906Z" fill="#D6D6D6"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.79051 1.7811C2.68237 1.7811 1.7811 2.68238 1.7811 3.79056V35.9906C1.7811 37.0987 2.68236 38 3.79051 38H35.9905C37.0987 38 38 37.0987 38 35.9906V3.79056C38 2.6824 37.0987 1.7811 35.9905 1.7811H3.79051ZM0 3.79056C0 1.69874 1.69866 0 3.79051 0H35.9905C38.0824 0 39.7811 1.69872 39.7811 3.79056V35.9906C39.7811 38.0824 38.0823 39.7811 35.9905 39.7811H3.79051C1.69866 39.7811 0 38.0824 0 35.9906V3.79056Z" fill="#545454"/>
|
||||
<path d="M6.55753 19.9513L13.0001 8.39394C13.0178 8.36226 13.0512 8.34263 13.0874 8.34263L25.9126 8.34263C25.9488 8.34263 25.9823 8.36226 25.9999 8.39394L32.4425 19.9513C32.4593 19.9816 32.4593 20.0184 32.4425 20.0487L25.9999 31.6061C25.9823 31.6377 25.9488 31.6574 25.9126 31.6574L13.0874 31.6574C13.0512 31.6574 13.0177 31.6377 13.0001 31.6061L6.55753 20.0487C6.54066 20.0184 6.54066 19.9816 6.55753 19.9513Z" stroke="#545454" stroke-width="1.8" stroke-linejoin="round"/>
|
||||
<path d="M19.5003 15.1748C22.0265 15.1748 24.1278 17.3049 24.1278 19.9997C24.1278 22.6945 22.0265 24.8246 19.5003 24.8246C16.9741 24.8246 14.8728 22.6945 14.8728 19.9997C14.8728 17.3049 16.9741 15.1748 19.5003 15.1748Z" stroke="#545454" stroke-width="1.8" stroke-linejoin="round"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
|
@ -0,0 +1,6 @@
|
|||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M36.1886 39.1046H3.81143C2.20262 39.1046 0.895508 37.7975 0.895508 36.1887V3.81147C0.895508 2.20267 2.20262 0.895508 3.81143 0.895508H36.1886C37.7974 0.895508 39.1046 2.20267 39.1046 3.81147V36.1887C39.1046 37.7975 37.7974 39.1046 36.1886 39.1046Z" fill="#4C4C55"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.81137 1.7909C2.69713 1.7909 1.7909 2.69714 1.7909 3.81142V36.1886C1.7909 37.3029 2.69712 38.2091 3.81137 38.2091H36.1886C37.3028 38.2091 38.2091 37.3028 38.2091 36.1886V3.81142C38.2091 2.69716 37.3028 1.7909 36.1886 1.7909H3.81137ZM0 3.81142C0 1.70809 1.70801 0 3.81137 0H36.1886C38.2919 0 40 1.70806 40 3.81142V36.1886C40 38.292 38.2919 40 36.1886 40H3.81137C1.70801 40 0 38.2919 0 36.1886V3.81142Z" fill="#98989C"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.59071 20.1099L13.6258 30.9363L25.5881 30.9363L31.6232 20.1099L25.5881 9.28339L13.6258 9.28339L7.59071 20.1099ZM5.80135 19.623C5.63263 19.9256 5.63263 20.2941 5.80135 20.5968L12.2824 32.2232C12.459 32.54 12.7932 32.7363 13.1559 32.7363L26.0581 32.7363C26.4207 32.7363 26.7549 32.54 26.9315 32.2232L33.4126 20.5968C33.5813 20.2941 33.5813 19.9256 33.4126 19.623L26.9315 7.99649C26.7549 7.67973 26.4207 7.48339 26.0581 7.48339L13.1559 7.48339C12.7932 7.48339 12.459 7.67973 12.2824 7.99649L5.80135 19.623Z" fill="#98989C"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M23.3647 20.1098C23.3647 17.8647 21.6232 16.1534 19.6068 16.1534C17.5903 16.1534 15.8488 17.8647 15.8488 20.1098C15.8488 22.3549 17.5903 24.0662 19.6067 24.0662C21.6232 24.0662 23.3647 22.3549 23.3647 20.1098ZM25.1647 20.1098C25.1647 16.9306 22.6763 14.3534 19.6068 14.3534C16.5372 14.3534 14.0488 16.9306 14.0488 20.1098C14.0488 23.289 16.5372 25.8662 19.6067 25.8662C22.6763 25.8662 25.1647 23.289 25.1647 20.1098Z" fill="#98989C"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
|
@ -240,6 +240,7 @@ static constexpr const char* LAST_TRIANGLE_ID_ATTR = "lastid";
|
|||
static constexpr const char* SUBTYPE_ATTR = "subtype";
|
||||
static constexpr const char* LOCK_ATTR = "locked";
|
||||
static constexpr const char* BED_TYPE_ATTR = "bed_type";
|
||||
static constexpr const char* PRINT_SEQUENCE_ATTR = "print_sequence";
|
||||
static constexpr const char* GCODE_FILE_ATTR = "gcode_file";
|
||||
static constexpr const char* THUMBNAIL_FILE_ATTR = "thumbnail_file";
|
||||
static constexpr const char* PATTERN_FILE_ATTR = "pattern_file";
|
||||
|
@ -3444,6 +3445,12 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
|||
ConfigOptionEnum<BedType>::from_string(value, bed_type);
|
||||
m_curr_plater->config.set_key_value("curr_bed_type", new ConfigOptionEnum<BedType>(bed_type));
|
||||
}
|
||||
else if (key == PRINT_SEQUENCE_ATTR)
|
||||
{
|
||||
PrintSequence print_sequence = PrintSequence::ByLayer;
|
||||
ConfigOptionEnum<PrintSequence>::from_string(value, print_sequence);
|
||||
m_curr_plater->config.set_key_value("print_sequence", new ConfigOptionEnum<PrintSequence>(print_sequence));
|
||||
}
|
||||
else if (key == GCODE_FILE_ATTR)
|
||||
{
|
||||
m_curr_plater->gcode_file = value;
|
||||
|
@ -6390,6 +6397,11 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
|||
if (bed_type_opt != nullptr && bed_type_names.size() > bed_type_opt->getInt())
|
||||
stream << " <" << METADATA_TAG << " " << KEY_ATTR << "=\"" << BED_TYPE_ATTR << "\" " << VALUE_ATTR << "=\"" << bed_type_names[bed_type_opt->getInt()] << "\"/>\n";
|
||||
|
||||
ConfigOption* print_sequence_opt = plate_data->config.option("print_sequence");
|
||||
t_config_enum_names print_sequence_names = ConfigOptionEnum<PrintSequence>::get_enum_names();
|
||||
if (print_sequence_opt != nullptr && print_sequence_names.size() > print_sequence_opt->getInt())
|
||||
stream << " <" << METADATA_TAG << " " << KEY_ATTR << "=\"" << PRINT_SEQUENCE_ATTR << "\" " << VALUE_ATTR << "=\"" << print_sequence_names[print_sequence_opt->getInt()] << "\"/>\n";
|
||||
|
||||
if (save_gcode)
|
||||
stream << " <" << METADATA_TAG << " " << KEY_ATTR << "=\"" << GCODE_FILE_ATTR << "\" " << VALUE_ATTR << "=\"" << std::boolalpha << xml_escape(plate_data->gcode_file) << "\"/>\n";
|
||||
if (!plate_data->gcode_file.empty()) {
|
||||
|
|
|
@ -78,6 +78,7 @@ enum class WallInfillOrder {
|
|||
enum class PrintSequence {
|
||||
ByLayer,
|
||||
ByObject,
|
||||
ByDefault,
|
||||
Count,
|
||||
};
|
||||
|
||||
|
|
|
@ -267,8 +267,8 @@ set(SLIC3R_GUI_SOURCES
|
|||
GUI/RemovableDriveManager.hpp
|
||||
GUI/SendSystemInfoDialog.cpp
|
||||
GUI/SendSystemInfoDialog.hpp
|
||||
GUI/SetBedTypeDialog.cpp
|
||||
GUI/SetBedTypeDialog.hpp
|
||||
GUI/PlateSettingsDialog.cpp
|
||||
GUI/PlateSettingsDialog.hpp
|
||||
GUI/ImGuiWrapper.hpp
|
||||
GUI/ImGuiWrapper.cpp
|
||||
GUI/DeviceManager.hpp
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
|
||||
#include "slic3r/Utils/FixModelByWin10.hpp"
|
||||
#include "libslic3r/Format/bbs_3mf.hpp"
|
||||
#include "libslic3r/PrintConfig.hpp"
|
||||
|
||||
#ifdef __WXMSW__
|
||||
#include "wx/uiaction.h"
|
||||
|
@ -1397,8 +1398,21 @@ void ObjectList::key_event(wxKeyEvent& event)
|
|||
|
||||
void ObjectList::OnBeginDrag(wxDataViewEvent &event)
|
||||
{
|
||||
bool sequential_print = (wxGetApp().preset_bundle->prints.get_edited_preset().config.opt_enum<PrintSequence>("print_sequence") == PrintSequence::ByObject);
|
||||
if (!sequential_print) {
|
||||
int curr_obj_id = m_objects_model->GetIdByItem(event.GetItem());
|
||||
PartPlateList& partplate_list = wxGetApp().plater()->get_partplate_list();
|
||||
int from_plate = partplate_list.find_instance(curr_obj_id, 0);
|
||||
if (from_plate == -1) {
|
||||
event.Veto();
|
||||
return;
|
||||
}
|
||||
auto curr_plate_seq = partplate_list.get_plate(from_plate)->get_print_seq();
|
||||
if (curr_plate_seq == PrintSequence::ByDefault) {
|
||||
auto curr_preset_config = wxGetApp().preset_bundle->prints.get_edited_preset().config;
|
||||
if (curr_preset_config.has("print_sequence"))
|
||||
curr_plate_seq = curr_preset_config.option<ConfigOptionEnum<PrintSequence>>("print_sequence")->value;
|
||||
}
|
||||
|
||||
if (curr_plate_seq != PrintSequence::ByObject) {
|
||||
//drag forbidden under bylayer mode
|
||||
event.Veto();
|
||||
return;
|
||||
|
|
|
@ -582,7 +582,9 @@ void Preview::update_layers_slider(const std::vector<double>& layers_z, bool kee
|
|||
m_layers_slider->SetSelectionSpan(idx_low, idx_high);
|
||||
m_layers_slider->SetTicksValues(ticks_info_from_model);
|
||||
|
||||
bool sequential_print = (wxGetApp().preset_bundle->prints.get_edited_preset().config.opt_enum<PrintSequence>("print_sequence") == PrintSequence::ByObject);
|
||||
auto curr_plate = wxGetApp().plater()->get_partplate_list().get_curr_plate();
|
||||
auto curr_print_seq = curr_plate->get_real_print_seq();
|
||||
bool sequential_print = (curr_print_seq == PrintSequence::ByObject);
|
||||
m_layers_slider->SetDrawMode(sequential_print);
|
||||
|
||||
auto print_mode_stat = m_gcode_result->print_statistics.modes.front();
|
||||
|
|
|
@ -597,8 +597,10 @@ void IMSlider::SetModeAndOnlyExtruder(const bool is_one_extruder_printed_model,
|
|||
|
||||
UseDefaultColors(m_mode == SingleExtruder);
|
||||
|
||||
DynamicPrintConfig config = wxGetApp().preset_bundle->full_config();
|
||||
if (config.opt_enum<PrintSequence>("print_sequence") == PrintSequence::ByObject)
|
||||
auto curr_plate = wxGetApp().plater()->get_partplate_list().get_curr_plate();
|
||||
auto curr_print_seq = curr_plate->get_real_print_seq();
|
||||
|
||||
if (curr_print_seq == PrintSequence::ByObject)
|
||||
m_is_wipe_tower = false;
|
||||
else
|
||||
m_is_wipe_tower = m_mode != SingleExtruder;
|
||||
|
|
|
@ -335,6 +335,7 @@ void ArrangeJob::prepare_partplate() {
|
|||
return;
|
||||
}
|
||||
|
||||
params.is_seq_print = plate->get_real_print_seq() == PrintSequence::ByObject;
|
||||
Model& model = m_plater->model();
|
||||
|
||||
// Go through the objects and check if inside the selection
|
||||
|
|
|
@ -133,7 +133,7 @@ void PartPlate::init()
|
|||
m_print = nullptr;
|
||||
}
|
||||
|
||||
BedType PartPlate::get_bed_type(bool check_global/*= true*/) const
|
||||
BedType PartPlate::get_bed_type() const
|
||||
{
|
||||
std::string bed_type_key = "curr_bed_type";
|
||||
|
||||
|
@ -141,32 +141,26 @@ BedType PartPlate::get_bed_type(bool check_global/*= true*/) const
|
|||
assert(m_plater != nullptr);
|
||||
if (m_config.has(bed_type_key)) {
|
||||
BedType bed_type = m_config.opt_enum<BedType>(bed_type_key);
|
||||
if (bed_type != btDefault)
|
||||
return bed_type;
|
||||
return bed_type;
|
||||
}
|
||||
|
||||
if (!check_global)
|
||||
return btDefault;
|
||||
|
||||
if (m_plater) {
|
||||
// In GUI mode
|
||||
DynamicConfig& proj_cfg = wxGetApp().preset_bundle->project_config;
|
||||
if (proj_cfg.has(bed_type_key))
|
||||
return proj_cfg.opt_enum<BedType>(bed_type_key);
|
||||
}
|
||||
|
||||
return BedType::btPC;
|
||||
return btDefault;
|
||||
}
|
||||
|
||||
void PartPlate::set_bed_type(BedType bed_type)
|
||||
{
|
||||
std::string bed_type_key = "curr_bed_type";
|
||||
std::string bed_type_key = "curr_bed_type";
|
||||
|
||||
// should be called in GUI context
|
||||
assert(m_plater != nullptr);
|
||||
// should be called in GUI context
|
||||
assert(m_plater != nullptr);
|
||||
|
||||
// update slice state
|
||||
BedType old_real_bed_type = get_bed_type();
|
||||
if (old_real_bed_type == btDefault) {
|
||||
DynamicConfig& proj_cfg = wxGetApp().preset_bundle->project_config;
|
||||
if (proj_cfg.has(bed_type_key))
|
||||
old_real_bed_type = proj_cfg.opt_enum<BedType>(bed_type_key);
|
||||
}
|
||||
BedType new_real_bed_type = bed_type;
|
||||
if (bed_type == BedType::btDefault) {
|
||||
DynamicConfig& proj_cfg = wxGetApp().preset_bundle->project_config;
|
||||
|
@ -177,18 +171,74 @@ void PartPlate::set_bed_type(BedType bed_type)
|
|||
update_slice_result_valid_state(false);
|
||||
}
|
||||
|
||||
if (bed_type == BedType::btDefault)
|
||||
m_config.erase(bed_type_key);
|
||||
else
|
||||
m_config.set_key_value("curr_bed_type", new ConfigOptionEnum<BedType>(bed_type));
|
||||
|
||||
if (m_plater)
|
||||
m_plater->update_project_dirty_from_presets();
|
||||
if (bed_type == BedType::btDefault)
|
||||
m_config.erase(bed_type_key);
|
||||
else
|
||||
m_config.set_key_value("curr_bed_type", new ConfigOptionEnum<BedType>(bed_type));
|
||||
}
|
||||
|
||||
void PartPlate::reset_bed_type()
|
||||
{
|
||||
m_config.erase("curr_bed_type");
|
||||
m_config.erase("curr_bed_type");
|
||||
}
|
||||
|
||||
void PartPlate::set_print_seq(PrintSequence print_seq)
|
||||
{
|
||||
std::string print_seq_key = "print_sequence";
|
||||
|
||||
// should be called in GUI context
|
||||
assert(m_plater != nullptr);
|
||||
|
||||
// update slice state
|
||||
PrintSequence old_real_print_seq = get_print_seq();
|
||||
if (old_real_print_seq == PrintSequence::ByDefault) {
|
||||
auto curr_preset_config = wxGetApp().preset_bundle->prints.get_edited_preset().config;
|
||||
if (curr_preset_config.has(print_seq_key))
|
||||
old_real_print_seq = curr_preset_config.option<ConfigOptionEnum<PrintSequence>>(print_seq_key)->value;
|
||||
}
|
||||
|
||||
PrintSequence new_real_print_seq = print_seq;
|
||||
|
||||
if (print_seq == PrintSequence::ByDefault) {
|
||||
auto curr_preset_config = wxGetApp().preset_bundle->prints.get_edited_preset().config;
|
||||
if (curr_preset_config.has(print_seq_key))
|
||||
new_real_print_seq = curr_preset_config.option<ConfigOptionEnum<PrintSequence>>(print_seq_key)->value;
|
||||
}
|
||||
|
||||
if (old_real_print_seq != new_real_print_seq) {
|
||||
update_slice_result_valid_state(false);
|
||||
}
|
||||
|
||||
//print_seq_same_global = same_global;
|
||||
if (print_seq == PrintSequence::ByDefault)
|
||||
m_config.erase(print_seq_key);
|
||||
else
|
||||
m_config.set_key_value(print_seq_key, new ConfigOptionEnum<PrintSequence>(print_seq));
|
||||
}
|
||||
|
||||
PrintSequence PartPlate::get_print_seq() const
|
||||
{
|
||||
std::string print_seq_key = "print_sequence";
|
||||
|
||||
// should be called in GUI context
|
||||
assert(m_plater != nullptr);
|
||||
|
||||
if (m_config.has(print_seq_key)) {
|
||||
PrintSequence print_seq = m_config.opt_enum<PrintSequence>(print_seq_key);
|
||||
return print_seq;
|
||||
}
|
||||
|
||||
return PrintSequence::ByDefault;
|
||||
}
|
||||
|
||||
PrintSequence PartPlate::get_real_print_seq() const
|
||||
{
|
||||
PrintSequence curr_plate_seq = get_print_seq();
|
||||
if (curr_plate_seq == PrintSequence::ByDefault) {
|
||||
auto curr_preset_config = wxGetApp().preset_bundle->prints.get_edited_preset().config;
|
||||
if (curr_preset_config.has("print_sequence")) curr_plate_seq = curr_preset_config.option<ConfigOptionEnum<PrintSequence>>("print_sequence")->value;
|
||||
}
|
||||
return curr_plate_seq;
|
||||
}
|
||||
|
||||
bool PartPlate::valid_instance(int obj_id, int instance_id)
|
||||
|
@ -561,7 +611,13 @@ void PartPlate::render_logo(bool bottom) const
|
|||
m_partplate_list->load_bedtype_textures();
|
||||
|
||||
// btDefault should be skipped
|
||||
int bed_type_idx = (int)get_bed_type();
|
||||
auto curr_bed_type = get_bed_type();
|
||||
if (curr_bed_type == btDefault) {
|
||||
DynamicConfig& proj_cfg = wxGetApp().preset_bundle->project_config;
|
||||
if (proj_cfg.has(std::string("curr_bed_type")))
|
||||
curr_bed_type = proj_cfg.opt_enum<BedType>(std::string("curr_bed_type"));
|
||||
}
|
||||
int bed_type_idx = (int)curr_bed_type;
|
||||
for (auto &part : m_partplate_list->bed_texture_info[bed_type_idx].parts) {
|
||||
if (part.texture) {
|
||||
if (part.buffer && part.buffer->get_vertices_count() > 0
|
||||
|
@ -739,18 +795,18 @@ void PartPlate::render_icons(bool bottom, int hover_id) const
|
|||
render_icon_texture(position_id, tex_coords_id, m_lock_icon, m_partplate_list->m_lockopen_texture, m_lock_vbo_id);
|
||||
}
|
||||
|
||||
if (m_partplate_list->render_bedtype_setting) {
|
||||
if (m_partplate_list->render_plate_settings) {
|
||||
if (hover_id == 5) {
|
||||
if (get_bed_type(false) == BedType::btDefault)
|
||||
render_icon_texture(position_id, tex_coords_id, m_bedtype_icon, m_partplate_list->m_bedtype_hovered_texture, m_bedtype_vbo_id);
|
||||
if (get_bed_type() == BedType::btDefault && get_print_seq() == PrintSequence::ByDefault)
|
||||
render_icon_texture(position_id, tex_coords_id, m_plate_settings_icon, m_partplate_list->m_plate_settings_hovered_texture, m_plate_settings_vbo_id);
|
||||
else
|
||||
render_icon_texture(position_id, tex_coords_id, m_bedtype_icon, m_partplate_list->m_bedtype_changed_hovered_texture, m_bedtype_vbo_id);
|
||||
render_icon_texture(position_id, tex_coords_id, m_plate_settings_icon, m_partplate_list->m_plate_settings_changed_hovered_texture, m_plate_settings_vbo_id);
|
||||
}
|
||||
else {
|
||||
if (get_bed_type(false) == BedType::btDefault)
|
||||
render_icon_texture(position_id, tex_coords_id, m_bedtype_icon, m_partplate_list->m_bedtype_texture, m_bedtype_vbo_id);
|
||||
if (get_bed_type() == BedType::btDefault && get_print_seq() == PrintSequence::ByDefault)
|
||||
render_icon_texture(position_id, tex_coords_id, m_plate_settings_icon, m_partplate_list->m_plate_settings_texture, m_plate_settings_vbo_id);
|
||||
else
|
||||
render_icon_texture(position_id, tex_coords_id, m_bedtype_icon, m_partplate_list->m_bedtype_changed_texture, m_bedtype_vbo_id);
|
||||
render_icon_texture(position_id, tex_coords_id, m_plate_settings_icon, m_partplate_list->m_plate_settings_changed_texture, m_plate_settings_vbo_id);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1088,8 +1144,8 @@ void PartPlate::on_render_for_picking() const {
|
|||
m_grabber_color[1] = color[1];
|
||||
m_grabber_color[2] = color[2];
|
||||
m_grabber_color[3] = color[3];
|
||||
if (m_partplate_list->render_bedtype_setting)
|
||||
render_rectangle_for_picking(m_bedtype_icon, m_grabber_color);
|
||||
if (m_partplate_list->render_plate_settings)
|
||||
render_rectangle_for_picking(m_plate_settings_icon, m_grabber_color);
|
||||
}
|
||||
|
||||
std::array<float, 4> PartPlate::picking_color_component(int idx) const
|
||||
|
@ -1126,9 +1182,9 @@ void PartPlate::release_opengl_resource()
|
|||
glsafe(::glDeleteBuffers(1, &m_lock_vbo_id));
|
||||
m_lock_vbo_id = 0;
|
||||
}
|
||||
if (m_bedtype_vbo_id > 0) {
|
||||
glsafe(::glDeleteBuffers(1, &m_bedtype_vbo_id));
|
||||
m_bedtype_vbo_id = 0;
|
||||
if (m_plate_settings_vbo_id > 0) {
|
||||
glsafe(::glDeleteBuffers(1, &m_plate_settings_vbo_id));
|
||||
m_plate_settings_vbo_id = 0;
|
||||
}
|
||||
if (m_plate_idx_vbo_id > 0) {
|
||||
glsafe(::glDeleteBuffers(1, &m_plate_idx_vbo_id));
|
||||
|
@ -2003,7 +2059,7 @@ bool PartPlate::set_shape(const Pointfs& shape, const Pointfs& exclude_areas, Ve
|
|||
calc_vertex_for_icons(1, m_orient_icon);
|
||||
calc_vertex_for_icons(2, m_arrange_icon);
|
||||
calc_vertex_for_icons(3, m_lock_icon);
|
||||
calc_vertex_for_icons(4, m_bedtype_icon);
|
||||
calc_vertex_for_icons(4, m_plate_settings_icon);
|
||||
//calc_vertex_for_number(0, (m_plate_index < 9), m_plate_idx_icon);
|
||||
calc_vertex_for_number(0, false, m_plate_idx_icon);
|
||||
}
|
||||
|
@ -2221,10 +2277,13 @@ int PartPlate::load_gcode_from_file(const std::string& filename)
|
|||
int ret = 0;
|
||||
|
||||
// process gcode
|
||||
m_print->apply(*m_model, wxGetApp().preset_bundle->full_config());
|
||||
DynamicPrintConfig full_config = wxGetApp().preset_bundle->full_config();
|
||||
full_config.apply(m_config, true);
|
||||
m_print->apply(*m_model, full_config);
|
||||
//BBS: need to apply two times, for after the first apply, the m_print got its object,
|
||||
//which will affect the config when new_full_config.normalize_fdm(used_filaments);
|
||||
m_print->apply(*m_model, wxGetApp().preset_bundle->full_config());
|
||||
m_print->apply(*m_model, full_config);
|
||||
|
||||
// BBS: use backup path to save temp gcode
|
||||
// auto path = get_tmp_gcode_path();
|
||||
// if (boost::filesystem::exists(boost::filesystem::path(path))) {
|
||||
|
@ -2522,32 +2581,32 @@ void PartPlateList::generate_icon_textures()
|
|||
|
||||
//if (m_bedtype_texture.get_id() == 0)
|
||||
{
|
||||
file_name = path + (m_is_dark ? "plate_set_bedtype_dark.svg" : "plate_set_bedtype.svg");
|
||||
if (!m_bedtype_texture.load_from_svg_file(file_name, true, false, false, icon_size)) {
|
||||
file_name = path + (m_is_dark ? "plate_settings_dark.svg" : "plate_settings.svg");
|
||||
if (!m_plate_settings_texture.load_from_svg_file(file_name, true, false, false, icon_size)) {
|
||||
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(":load file %1% failed") % file_name;
|
||||
}
|
||||
}
|
||||
|
||||
//if (m_bedtype_changed_texture.get_id() == 0)
|
||||
{
|
||||
file_name = path + (m_is_dark ? "plate_set_bedtype_changed_dark.svg" : "plate_set_bedtype_changed.svg");
|
||||
if (!m_bedtype_changed_texture.load_from_svg_file(file_name, true, false, false, icon_size)) {
|
||||
file_name = path + (m_is_dark ? "plate_settings_changed_dark.svg" : "plate_settings_changed.svg");
|
||||
if (!m_plate_settings_changed_texture.load_from_svg_file(file_name, true, false, false, icon_size)) {
|
||||
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(":load file %1% failed") % file_name;
|
||||
}
|
||||
}
|
||||
|
||||
//if (m_bedtype_hovered_texture.get_id() == 0)
|
||||
{
|
||||
file_name = path + (m_is_dark ? "plate_set_bedtype_hover_dark.svg" : "plate_set_bedtype_hover.svg");
|
||||
if (!m_bedtype_hovered_texture.load_from_svg_file(file_name, true, false, false, icon_size)) {
|
||||
file_name = path + (m_is_dark ? "plate_settings_hover_dark.svg" : "plate_settings_hover.svg");
|
||||
if (!m_plate_settings_hovered_texture.load_from_svg_file(file_name, true, false, false, icon_size)) {
|
||||
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(":load file %1% failed") % file_name;
|
||||
}
|
||||
}
|
||||
|
||||
//if (m_bedtype_changed_hovered_texture.get_id() == 0)
|
||||
{
|
||||
file_name = path + (m_is_dark ? "plate_set_bedtype_changed_hover_dark.svg" : "plate_set_bedtype_changed_hover.svg");
|
||||
if (!m_bedtype_changed_hovered_texture.load_from_svg_file(file_name, true, false, false, icon_size)) {
|
||||
file_name = path + (m_is_dark ? "plate_settings_changed_hover_dark.svg" : "plate_settings_changed_hover.svg");
|
||||
if (!m_plate_settings_changed_hovered_texture.load_from_svg_file(file_name, true, false, false, icon_size)) {
|
||||
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(":load file %1% failed") % file_name;
|
||||
}
|
||||
}
|
||||
|
@ -2608,10 +2667,10 @@ void PartPlateList::release_icon_textures()
|
|||
m_locked_hovered_texture.reset();
|
||||
m_lockopen_texture.reset();
|
||||
m_lockopen_hovered_texture.reset();
|
||||
m_bedtype_texture.reset();
|
||||
m_bedtype_changed_texture.reset();
|
||||
m_bedtype_hovered_texture.reset();
|
||||
m_bedtype_changed_hovered_texture.reset();
|
||||
m_plate_settings_texture.reset();
|
||||
m_plate_settings_texture.reset();
|
||||
m_plate_settings_texture.reset();
|
||||
m_plate_settings_hovered_texture.reset();
|
||||
|
||||
for (int i = 0;i < MAX_PLATE_COUNT; i++) {
|
||||
m_idx_textures[i].reset();
|
||||
|
@ -3919,10 +3978,10 @@ void PartPlateList::render_for_picking_pass()
|
|||
return 0;
|
||||
}*/
|
||||
|
||||
void PartPlateList::set_render_option(bool bedtype_texture, bool bedtype_setting)
|
||||
void PartPlateList::set_render_option(bool bedtype_texture, bool plate_settings)
|
||||
{
|
||||
render_bedtype_logo = bedtype_texture;
|
||||
render_bedtype_setting = bedtype_setting;
|
||||
render_bedtype_logo = bedtype_texture;
|
||||
render_plate_settings = plate_settings;
|
||||
}
|
||||
|
||||
int PartPlateList::select_plate_by_obj(int obj_index, int instance_index)
|
||||
|
|
|
@ -133,15 +133,12 @@ private:
|
|||
mutable unsigned int m_orient_vbo_id{ 0 };
|
||||
GeometryBuffer m_lock_icon;
|
||||
mutable unsigned int m_lock_vbo_id{ 0 };
|
||||
GeometryBuffer m_bedtype_icon;
|
||||
mutable unsigned int m_bedtype_vbo_id{ 0 };
|
||||
GeometryBuffer m_plate_settings_icon;
|
||||
mutable unsigned int m_plate_settings_vbo_id{ 0 };
|
||||
GeometryBuffer m_plate_idx_icon;
|
||||
mutable unsigned int m_plate_idx_vbo_id{ 0 };
|
||||
GLTexture m_texture;
|
||||
|
||||
// plate render option
|
||||
bool is_same_bedtype_with_global = true;
|
||||
|
||||
mutable float m_grabber_color[4];
|
||||
float m_scale_factor{ 1.0f };
|
||||
GLUquadricObject* m_quadric;
|
||||
|
@ -213,11 +210,21 @@ public:
|
|||
//clear alll the instances in plate
|
||||
void clear(bool clear_sliced_result = true);
|
||||
|
||||
BedType get_bed_type(bool check_global = true) const;
|
||||
BedType get_bed_type() const;
|
||||
void set_bed_type(BedType bed_type);
|
||||
void reset_bed_type();
|
||||
DynamicPrintConfig* config() { return &m_config; }
|
||||
|
||||
// set print sequence per plate
|
||||
//bool print_seq_same_global = true;
|
||||
void set_print_seq(PrintSequence print_seq = PrintSequence::ByDefault);
|
||||
PrintSequence get_print_seq() const;
|
||||
// Get the real effective print sequence of current plate.
|
||||
// If curr_plate's print_seq is ByDefault, use the global sequence
|
||||
// @return PrintSequence::{ByLayer,ByObject}
|
||||
PrintSequence get_real_print_seq() const;
|
||||
|
||||
|
||||
//static const int plate_x_offset = 20; //mm
|
||||
//static const double plate_x_gap = 0.2;
|
||||
ThumbnailData thumbnail_data;
|
||||
|
@ -484,14 +491,14 @@ class PartPlateList : public ObjectBase
|
|||
GLTexture m_locked_hovered_texture;
|
||||
GLTexture m_lockopen_texture;
|
||||
GLTexture m_lockopen_hovered_texture;
|
||||
GLTexture m_bedtype_texture;
|
||||
GLTexture m_bedtype_changed_texture;
|
||||
GLTexture m_bedtype_hovered_texture;
|
||||
GLTexture m_bedtype_changed_hovered_texture;
|
||||
GLTexture m_plate_settings_texture;
|
||||
GLTexture m_plate_settings_changed_texture;
|
||||
GLTexture m_plate_settings_hovered_texture;
|
||||
GLTexture m_plate_settings_changed_hovered_texture;
|
||||
GLTexture m_idx_textures[MAX_PLATE_COUNT];
|
||||
// set render option
|
||||
bool render_bedtype_logo = true;
|
||||
bool render_bedtype_setting = true;
|
||||
bool render_plate_settings = true;
|
||||
|
||||
bool m_is_dark = false;
|
||||
|
||||
|
@ -685,7 +692,7 @@ public:
|
|||
void on_change_color_mode(bool is_dark) { m_is_dark = is_dark; }
|
||||
void render(bool bottom, bool only_current = false, bool only_body = false, int hover_id = -1);
|
||||
void render_for_picking_pass();
|
||||
void set_render_option(bool bedtype_texture, bool bedtype_settings);
|
||||
void set_render_option(bool bedtype_texture, bool plate_settings);
|
||||
BoundingBoxf3& get_bounding_box() { return m_bounding_box; }
|
||||
//int select_plate_by_hover_id(int hover_id);
|
||||
int select_plate_by_obj(int obj_index, int instance_index);
|
||||
|
|
|
@ -0,0 +1,158 @@
|
|||
#include "PlateSettingsDialog.hpp"
|
||||
|
||||
|
||||
namespace Slic3r { namespace GUI {
|
||||
|
||||
wxDEFINE_EVENT(EVT_SET_BED_TYPE_CONFIRM, wxCommandEvent);
|
||||
|
||||
PlateSettingsDialog::PlateSettingsDialog(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
|
||||
:DPIDialog(parent, id, title, pos, size, style)
|
||||
{
|
||||
std::string icon_path = (boost::format("%1%/images/BambuStudioTitle.ico") % resources_dir()).str();
|
||||
SetIcon(wxIcon(encode_path(icon_path.c_str()), wxBITMAP_TYPE_ICO));
|
||||
|
||||
SetBackgroundColour(*wxWHITE);
|
||||
wxBoxSizer* m_sizer_main = new wxBoxSizer(wxVERTICAL);
|
||||
auto m_line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(400), -1));
|
||||
m_line_top->SetBackgroundColour(wxColour(166, 169, 170));
|
||||
m_sizer_main->Add(m_line_top, 0, wxEXPAND, 0);
|
||||
m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(5));
|
||||
|
||||
wxFlexGridSizer* top_sizer = new wxFlexGridSizer(0, 2, FromDIP(5), 0);
|
||||
top_sizer->AddGrowableCol(0,1);
|
||||
top_sizer->SetFlexibleDirection(wxBOTH);
|
||||
top_sizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
|
||||
|
||||
m_bed_type_choice = new ComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(FromDIP(240),-1), 0, NULL, wxCB_READONLY );
|
||||
for (BedType i = btDefault; i < btCount; i = BedType(int(i) + 1)) {
|
||||
m_bed_type_choice->Append(to_bed_type_name(i));
|
||||
}
|
||||
wxStaticText* m_bed_type_txt = new wxStaticText(this, wxID_ANY, _L("Bed type"));
|
||||
m_bed_type_txt->SetFont(Label::Body_14);
|
||||
top_sizer->Add(m_bed_type_txt, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT | wxALL, FromDIP(5));
|
||||
top_sizer->Add(m_bed_type_choice, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT |wxALL, FromDIP(5));
|
||||
|
||||
wxBoxSizer* m_sizer_selectbox = new wxBoxSizer(wxHORIZONTAL);
|
||||
m_print_seq_choice = new ComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(FromDIP(240),-1), 0, NULL, wxCB_READONLY );
|
||||
m_print_seq_choice->Append(_L("Same as Global Print Sequence"));
|
||||
for (auto i = PrintSequence::ByLayer; i < PrintSequence::ByDefault; i = PrintSequence(int(i) + 1)) {
|
||||
m_print_seq_choice->Append(to_print_sequence_name(i));
|
||||
}
|
||||
wxStaticText* m_print_seq_txt = new wxStaticText(this, wxID_ANY, _L("Print sequence"));
|
||||
m_print_seq_txt->SetFont(Label::Body_14);
|
||||
top_sizer->Add(m_print_seq_txt, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT |wxALL, FromDIP(5));
|
||||
top_sizer->Add(m_print_seq_choice, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT |wxALL, FromDIP(5));
|
||||
|
||||
m_sizer_main->Add(top_sizer, 0, wxEXPAND | wxALL, FromDIP(30));
|
||||
|
||||
auto sizer_button = new wxBoxSizer(wxHORIZONTAL);
|
||||
StateColor btn_bg_green(std::pair<wxColour, int>(wxColour(27, 136, 68), StateColor::Pressed), std::pair<wxColour, int>(wxColour(61, 203, 115), StateColor::Hovered),
|
||||
std::pair<wxColour, int>(wxColour(0, 174, 66), StateColor::Normal));
|
||||
|
||||
StateColor btn_bg_white(std::pair<wxColour, int>(wxColour(206, 206, 206), StateColor::Pressed), std::pair<wxColour, int>(wxColour(238, 238, 238), StateColor::Hovered),
|
||||
std::pair<wxColour, int>(*wxWHITE, StateColor::Normal));
|
||||
|
||||
m_button_ok = new Button(this, _L("OK"));
|
||||
m_button_ok->SetBackgroundColor(btn_bg_green);
|
||||
m_button_ok->SetBorderColor(*wxWHITE);
|
||||
m_button_ok->SetTextColor(wxColour("#FFFFFE"));
|
||||
m_button_ok->SetFont(Label::Body_12);
|
||||
m_button_ok->SetSize(wxSize(FromDIP(58), FromDIP(24)));
|
||||
m_button_ok->SetMinSize(wxSize(FromDIP(58), FromDIP(24)));
|
||||
m_button_ok->SetCornerRadius(FromDIP(12));
|
||||
m_button_ok->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent& e) {
|
||||
wxCommandEvent evt(EVT_SET_BED_TYPE_CONFIRM, GetId());
|
||||
e.SetEventObject(this);
|
||||
GetEventHandler()->ProcessEvent(evt);
|
||||
if (this->IsModal())
|
||||
EndModal(wxID_YES);
|
||||
else
|
||||
this->Close();
|
||||
});
|
||||
|
||||
m_button_cancel = new Button(this, _L("Cancel"));
|
||||
m_button_cancel->SetBackgroundColor(btn_bg_white);
|
||||
m_button_cancel->SetBorderColor(wxColour(38, 46, 48));
|
||||
m_button_cancel->SetFont(Label::Body_12);
|
||||
m_button_cancel->SetSize(wxSize(FromDIP(58), FromDIP(24)));
|
||||
m_button_cancel->SetMinSize(wxSize(FromDIP(58), FromDIP(24)));
|
||||
m_button_cancel->SetCornerRadius(FromDIP(12));
|
||||
m_button_cancel->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent& e) {
|
||||
if (this->IsModal())
|
||||
EndModal(wxID_NO);
|
||||
else
|
||||
this->Close();
|
||||
});
|
||||
|
||||
sizer_button->AddStretchSpacer();
|
||||
sizer_button->Add(m_button_ok, 0, wxALL, FromDIP(5));
|
||||
sizer_button->Add(m_button_cancel, 0, wxALL, FromDIP(5));
|
||||
sizer_button->Add(FromDIP(30),0, 0, 0);
|
||||
|
||||
m_sizer_main->Add(sizer_button, 0, wxEXPAND, FromDIP(20));
|
||||
|
||||
SetSizer(m_sizer_main);
|
||||
Layout();
|
||||
m_sizer_main->Fit(this);
|
||||
|
||||
CenterOnParent();
|
||||
|
||||
wxGetApp().UpdateDlgDarkUI(this);
|
||||
}
|
||||
|
||||
PlateSettingsDialog::~PlateSettingsDialog()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void PlateSettingsDialog::sync_bed_type(BedType type)
|
||||
{
|
||||
if (m_bed_type_choice != nullptr) {
|
||||
m_bed_type_choice->SetSelection(int(type));
|
||||
}
|
||||
}
|
||||
|
||||
void PlateSettingsDialog::sync_print_seq(int print_seq)
|
||||
{
|
||||
if (m_print_seq_choice != nullptr) {
|
||||
m_print_seq_choice->SetSelection(print_seq);
|
||||
}
|
||||
}
|
||||
|
||||
wxString PlateSettingsDialog::to_bed_type_name(BedType bed_type) {
|
||||
switch (bed_type) {
|
||||
case btDefault:
|
||||
return _L("Same as Global Bed Type");
|
||||
case btPC:
|
||||
return _L("Cool Plate");
|
||||
case btEP:
|
||||
return _L("Engineering Plate");
|
||||
case btPEI:
|
||||
return _L("High Temp Plate");
|
||||
case btPTE:
|
||||
return _L("Textured PEI Plate");
|
||||
default:
|
||||
return _L("Same as Global Bed Type");
|
||||
}
|
||||
return _L("Same as Global Bed Type");
|
||||
}
|
||||
|
||||
wxString PlateSettingsDialog::to_print_sequence_name(PrintSequence print_seq) {
|
||||
switch (print_seq) {
|
||||
case PrintSequence::ByLayer:
|
||||
return _L("By Layer");
|
||||
case PrintSequence::ByObject:
|
||||
return _L("By Object");
|
||||
default:
|
||||
return _L("By Layer");
|
||||
}
|
||||
return _L("By Layer");
|
||||
}
|
||||
|
||||
void PlateSettingsDialog::on_dpi_changed(const wxRect& suggested_rect)
|
||||
{
|
||||
m_button_ok->Rescale();
|
||||
m_button_cancel->Rescale();
|
||||
}
|
||||
|
||||
}} // namespace Slic3r::GUI
|
|
@ -0,0 +1,61 @@
|
|||
#ifndef slic3r_GUI_PlateSettingsDialog_hpp_
|
||||
#define slic3r_GUI_PlateSettingsDialog_hpp_
|
||||
|
||||
#include "Plater.hpp"
|
||||
#include "PartPlate.hpp"
|
||||
#include "Widgets/Button.hpp"
|
||||
#include "Widgets/RadioBox.hpp"
|
||||
#include "Widgets/ComboBox.hpp"
|
||||
|
||||
namespace Slic3r { namespace GUI {
|
||||
|
||||
wxDECLARE_EVENT(EVT_SET_BED_TYPE_CONFIRM, wxCommandEvent);
|
||||
|
||||
class PlateSettingsDialog : public DPIDialog
|
||||
{
|
||||
public:
|
||||
enum ButtonStyle {
|
||||
ONLY_CONFIRM = 0,
|
||||
CONFIRM_AND_CANCEL = 1,
|
||||
MAX_STYLE_NUM = 2
|
||||
};
|
||||
PlateSettingsDialog(
|
||||
wxWindow* parent,
|
||||
wxWindowID id = wxID_ANY,
|
||||
const wxString& title = wxEmptyString,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = wxCLOSE_BOX | wxCAPTION
|
||||
);
|
||||
|
||||
~PlateSettingsDialog();
|
||||
void sync_bed_type(BedType type);
|
||||
void sync_print_seq(int print_seq = 0);
|
||||
wxString to_bed_type_name(BedType bed_type);
|
||||
wxString to_print_sequence_name(PrintSequence print_seq);
|
||||
void on_dpi_changed(const wxRect& suggested_rect) override;
|
||||
|
||||
int get_print_seq_choice() {
|
||||
int choice = 0;
|
||||
if (m_print_seq_choice != nullptr)
|
||||
choice = m_print_seq_choice->GetSelection();
|
||||
return choice;
|
||||
};
|
||||
|
||||
int get_bed_type_choice() {
|
||||
int choice = 0;
|
||||
if (m_bed_type_choice != nullptr)
|
||||
choice = m_bed_type_choice->GetSelection();
|
||||
return choice;
|
||||
};
|
||||
|
||||
protected:
|
||||
ComboBox* m_print_seq_choice { nullptr };
|
||||
ComboBox* m_bed_type_choice { nullptr };
|
||||
Button* m_button_ok;
|
||||
Button* m_button_cancel;
|
||||
};
|
||||
|
||||
}} // namespace Slic3r::GUI
|
||||
|
||||
#endif
|
|
@ -128,7 +128,7 @@
|
|||
|
||||
#include "PhysicalPrinterDialog.hpp"
|
||||
#include "PrintHostDialogs.hpp"
|
||||
#include "SetBedTypeDialog.hpp"
|
||||
#include "PlateSettingsDialog.hpp"
|
||||
|
||||
using boost::optional;
|
||||
namespace fs = boost::filesystem;
|
||||
|
@ -5487,7 +5487,7 @@ void Plater::priv::on_select_bed_type(wxCommandEvent &evt)
|
|||
//update slice status
|
||||
auto plate_list = partplate_list.get_plate_list();
|
||||
for (auto plate : plate_list) {
|
||||
if (plate->get_bed_type(false) == btDefault) {
|
||||
if (plate->get_bed_type() == btDefault) {
|
||||
plate->update_slice_result_valid_state(false);
|
||||
}
|
||||
}
|
||||
|
@ -5570,12 +5570,9 @@ void Plater::priv::on_select_preset(wxCommandEvent &evt)
|
|||
Slic3r::put_other_changes();
|
||||
|
||||
// update slice state and set bedtype default for 3rd-party printer
|
||||
bool is_bbl_vendor_preset = wxGetApp().preset_bundle->printers.get_edited_preset().is_bbl_vendor_preset(wxGetApp().preset_bundle);
|
||||
auto plate_list = partplate_list.get_plate_list();
|
||||
for (auto plate : plate_list) {
|
||||
plate->update_slice_result_valid_state(false);
|
||||
if (!is_bbl_vendor_preset)
|
||||
plate->set_bed_type(btDefault);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6415,7 +6412,9 @@ PlateBBoxData Plater::priv::generate_first_layer_bbox()
|
|||
std::vector<BBoxData>& id_bboxes = bboxdata.bbox_objs;
|
||||
BoundingBoxf bbox_all;
|
||||
auto print = this->background_process.m_fff_print;
|
||||
bboxdata.is_seq_print = (print->config().print_sequence == PrintSequence::ByObject);
|
||||
auto curr_plate = this->partplate_list.get_curr_plate();
|
||||
auto curr_plate_seq = curr_plate->get_real_print_seq();
|
||||
bboxdata.is_seq_print = (curr_plate_seq == PrintSequence::ByObject);
|
||||
bboxdata.first_extruder = print->get_tool_ordering().first_extruder();
|
||||
bboxdata.bed_type = bed_type_to_gcode_string(print->config().curr_bed_type.value);
|
||||
// get nozzle diameter
|
||||
|
@ -10071,6 +10070,24 @@ bool Plater::update_filament_colors_in_full_config()
|
|||
return true;
|
||||
}
|
||||
|
||||
void Plater::config_change_notification(const DynamicPrintConfig &config, const std::string& key)
|
||||
{
|
||||
GLCanvas3D* view3d_canvas = get_view3D_canvas3D();
|
||||
if (key == std::string("print_sequence")) {
|
||||
auto seq_print = config.option<ConfigOptionEnum<PrintSequence>>("print_sequence");
|
||||
if (seq_print && view3d_canvas && view3d_canvas->is_initialized() && view3d_canvas->is_rendering_enabled()) {
|
||||
NotificationManager* notify_manager = get_notification_manager();
|
||||
if (seq_print->value == PrintSequence::ByObject) {
|
||||
std::string info_text = _u8L("Print By Object: \nSuggest to use auto-arrange to avoid collisions when printing.");
|
||||
notify_manager->bbl_show_seqprintinfo_notification(info_text);
|
||||
}
|
||||
else
|
||||
notify_manager->bbl_close_seqprintinfo_notification();
|
||||
}
|
||||
}
|
||||
// notification for more options
|
||||
}
|
||||
|
||||
void Plater::on_config_change(const DynamicPrintConfig &config)
|
||||
{
|
||||
bool update_scheduled = false;
|
||||
|
@ -10148,20 +10165,7 @@ void Plater::on_config_change(const DynamicPrintConfig &config)
|
|||
if (bed_shape_changed)
|
||||
set_bed_shape();
|
||||
|
||||
GLCanvas3D* view3d_canvas = get_view3D_canvas3D();
|
||||
auto seq_print = config.option<ConfigOptionEnum<PrintSequence>>("print_sequence");
|
||||
if ( seq_print && view3d_canvas && view3d_canvas->is_initialized() && view3d_canvas->is_rendering_enabled() ) {
|
||||
NotificationManager *notify_manager = get_notification_manager();
|
||||
if (seq_print->value == PrintSequence::ByObject) {
|
||||
std::string info_text = _u8L("Print By Object: \nSuggest to use auto-arrange to avoid collisions when printing.");
|
||||
notify_manager->bbl_show_seqprintinfo_notification(info_text);
|
||||
//always show label when switch to sequence print
|
||||
//if (print_sequence_changed)
|
||||
// this->show_view3D_labels(true);
|
||||
}
|
||||
else
|
||||
notify_manager->bbl_close_seqprintinfo_notification();
|
||||
}
|
||||
config_change_notification(config, std::string("print_sequence"));
|
||||
|
||||
if (update_scheduled)
|
||||
update();
|
||||
|
@ -11034,18 +11038,38 @@ int Plater::select_plate_by_hover_id(int hover_id, bool right_click)
|
|||
//set the plate type
|
||||
ret = select_plate(plate_index);
|
||||
if (!ret) {
|
||||
SetBedTypeDialog dlg(this, wxID_ANY, _L("Select Bed Type"));
|
||||
PlateSettingsDialog dlg(this, wxID_ANY, _L("Plate Settings"));
|
||||
PartPlate* curr_plate = p->partplate_list.get_curr_plate();
|
||||
dlg.sync_bed_type(curr_plate->get_bed_type(false));
|
||||
dlg.Bind(EVT_SET_BED_TYPE_CONFIRM, [this, plate_index](wxCommandEvent& e) {
|
||||
dlg.sync_bed_type(curr_plate->get_bed_type());
|
||||
|
||||
auto curr_print_seq = curr_plate->get_print_seq();
|
||||
if (curr_print_seq != PrintSequence::ByDefault) {
|
||||
dlg.sync_print_seq(int(curr_print_seq) + 1);
|
||||
}
|
||||
else
|
||||
dlg.sync_print_seq(0);
|
||||
|
||||
dlg.Bind(EVT_SET_BED_TYPE_CONFIRM, [this, plate_index, &dlg](wxCommandEvent& e) {
|
||||
PartPlate *curr_plate = p->partplate_list.get_curr_plate();
|
||||
BedType old_bed_type = curr_plate->get_bed_type(false);
|
||||
auto type = (BedType)(e.GetInt());
|
||||
if (old_bed_type != type) {
|
||||
curr_plate->set_bed_type(type);
|
||||
BedType old_bed_type = curr_plate->get_bed_type();
|
||||
auto bt_sel = BedType(dlg.get_bed_type_choice());
|
||||
if (old_bed_type != bt_sel) {
|
||||
curr_plate->set_bed_type(bt_sel);
|
||||
update_project_dirty_from_presets();
|
||||
set_plater_dirty(true);
|
||||
}
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("select bed type %1% for plate %2% at plate side")%type %plate_index;
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("select bed type %1% for plate %2% at plate side")%bt_sel %plate_index;
|
||||
|
||||
int ps_sel = dlg.get_print_seq_choice();
|
||||
if (ps_sel != 0)
|
||||
curr_plate->set_print_seq(PrintSequence(ps_sel - 1));
|
||||
else
|
||||
curr_plate->set_print_seq(PrintSequence::ByDefault);
|
||||
update_project_dirty_from_presets();
|
||||
set_plater_dirty(true);
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("select print sequence %1% for plate %2% at plate side")%ps_sel %plate_index;
|
||||
auto plate_config = *(curr_plate->config());
|
||||
wxGetApp().plater()->config_change_notification(plate_config, std::string("print_sequence"));
|
||||
});
|
||||
dlg.ShowModal();
|
||||
|
||||
|
|
|
@ -381,6 +381,7 @@ public:
|
|||
// BBS
|
||||
void on_bed_type_change(BedType bed_type);
|
||||
bool update_filament_colors_in_full_config();
|
||||
void config_change_notification(const DynamicPrintConfig &config, const std::string& key);
|
||||
void on_config_change(const DynamicPrintConfig &config);
|
||||
void force_filament_colors_update();
|
||||
void force_print_bed_update();
|
||||
|
|
|
@ -1,154 +0,0 @@
|
|||
#include "SetBedTypeDialog.hpp"
|
||||
|
||||
|
||||
namespace Slic3r { namespace GUI {
|
||||
|
||||
wxDEFINE_EVENT(EVT_SET_BED_TYPE_CONFIRM, wxCommandEvent);
|
||||
|
||||
SetBedTypeDialog::SetBedTypeDialog(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
|
||||
:DPIDialog(parent, id, title, pos, size, style)
|
||||
{
|
||||
std::string icon_path = (boost::format("%1%/images/BambuStudioTitle.ico") % resources_dir()).str();
|
||||
SetIcon(wxIcon(encode_path(icon_path.c_str()), wxBITMAP_TYPE_ICO));
|
||||
|
||||
SetBackgroundColour(*wxWHITE);
|
||||
wxBoxSizer* m_sizer_main = new wxBoxSizer(wxVERTICAL);
|
||||
auto m_line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(300), -1));
|
||||
m_line_top->SetBackgroundColour(wxColour(166, 169, 170));
|
||||
m_sizer_main->Add(m_line_top, 0, wxEXPAND, 0);
|
||||
m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(5));
|
||||
|
||||
wxBoxSizer* m_sizer_radiobutton = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
m_rb_default_plate = create_item_radiobox(_L("Same as Global Bed Type"), this, wxEmptyString, FromDIP(5), btDefault);
|
||||
m_sizer_radiobutton->Add(m_rb_default_plate->GetParent(), 1, wxALL, FromDIP(5));
|
||||
m_rb_cool_plate = create_item_radiobox(_L("Cool Plate"), this, wxEmptyString, FromDIP(5), btPC);
|
||||
m_sizer_radiobutton->Add(m_rb_cool_plate->GetParent(), 1, wxALL, FromDIP(5));
|
||||
m_rb_eng_plate = create_item_radiobox(_L("Engineering Plate"), this, wxEmptyString, FromDIP(5), btEP);
|
||||
m_sizer_radiobutton->Add(m_rb_eng_plate->GetParent(), 1, wxALL, FromDIP(5) );
|
||||
m_rb_high_temp_plate = create_item_radiobox(_L("High Temp Plate"), this, wxEmptyString, FromDIP(5), btPEI);
|
||||
m_sizer_radiobutton->Add(m_rb_high_temp_plate->GetParent(), 1, wxALL, FromDIP(5));
|
||||
m_rb_texture_pei_plate = create_item_radiobox(_L("Textured PEI Plate"), this, wxEmptyString, FromDIP(5), btPTE);
|
||||
m_sizer_radiobutton->Add(m_rb_texture_pei_plate->GetParent(), 1, wxALL, FromDIP(5));
|
||||
|
||||
m_sizer_main->Add(m_sizer_radiobutton, 0, wxEXPAND | wxALL, FromDIP(10));
|
||||
|
||||
auto sizer_button = new wxBoxSizer(wxHORIZONTAL);
|
||||
StateColor btn_bg_green(std::pair<wxColour, int>(wxColour(27, 136, 68), StateColor::Pressed), std::pair<wxColour, int>(wxColour(61, 203, 115), StateColor::Hovered),
|
||||
std::pair<wxColour, int>(wxColour(0, 174, 66), StateColor::Normal));
|
||||
|
||||
StateColor btn_bg_white(std::pair<wxColour, int>(wxColour(206, 206, 206), StateColor::Pressed), std::pair<wxColour, int>(wxColour(238, 238, 238), StateColor::Hovered),
|
||||
std::pair<wxColour, int>(*wxWHITE, StateColor::Normal));
|
||||
|
||||
m_button_ok = new Button(this, _L("OK"));
|
||||
m_button_ok->SetBackgroundColor(btn_bg_green);
|
||||
m_button_ok->SetBorderColor(*wxWHITE);
|
||||
m_button_ok->SetTextColor(wxColour("#FFFFFE"));
|
||||
m_button_ok->SetFont(Label::Body_12);
|
||||
m_button_ok->SetSize(wxSize(FromDIP(58), FromDIP(24)));
|
||||
m_button_ok->SetMinSize(wxSize(FromDIP(58), FromDIP(24)));
|
||||
m_button_ok->SetCornerRadius(FromDIP(12));
|
||||
m_button_ok->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent& e) {
|
||||
int len = radio_buttons.size();
|
||||
for (int i = 0; i < len; ++i) {
|
||||
if (radio_buttons[i]->GetValue()) {
|
||||
wxCommandEvent evt(EVT_SET_BED_TYPE_CONFIRM, GetId());
|
||||
evt.SetInt(radio_buttons[i]->GetBedType());
|
||||
e.SetEventObject(this);
|
||||
GetEventHandler()->ProcessEvent(evt);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (this->IsModal())
|
||||
EndModal(wxID_YES);
|
||||
else
|
||||
this->Close();
|
||||
});
|
||||
|
||||
m_button_cancel = new Button(this, _L("Cancel"));
|
||||
m_button_cancel->SetBackgroundColor(btn_bg_white);
|
||||
m_button_cancel->SetBorderColor(wxColour(38, 46, 48));
|
||||
m_button_cancel->SetFont(Label::Body_12);
|
||||
m_button_cancel->SetSize(wxSize(FromDIP(58), FromDIP(24)));
|
||||
m_button_cancel->SetMinSize(wxSize(FromDIP(58), FromDIP(24)));
|
||||
m_button_cancel->SetCornerRadius(FromDIP(12));
|
||||
m_button_cancel->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent& e) {
|
||||
if (this->IsModal())
|
||||
EndModal(wxID_NO);
|
||||
else
|
||||
this->Close();
|
||||
});
|
||||
|
||||
sizer_button->AddStretchSpacer();
|
||||
sizer_button->Add(m_button_ok, 0, wxALL, FromDIP(5));
|
||||
sizer_button->Add(m_button_cancel, 0, wxALL, FromDIP(5));
|
||||
|
||||
m_sizer_main->Add(sizer_button, 0, wxEXPAND, FromDIP(20));
|
||||
|
||||
SetSizer(m_sizer_main);
|
||||
Layout();
|
||||
m_sizer_main->Fit(this);
|
||||
|
||||
CenterOnParent();
|
||||
|
||||
wxGetApp().UpdateDlgDarkUI(this);
|
||||
}
|
||||
|
||||
SetBedTypeDialog::~SetBedTypeDialog()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
BedTypeRadioBox* SetBedTypeDialog::create_item_radiobox(wxString title, wxWindow* parent, wxString tooltip, int padding_left, BedType bed_type)
|
||||
{
|
||||
wxWindow *item = new wxWindow(parent, wxID_ANY, wxDefaultPosition, wxSize(-1, FromDIP(28)));
|
||||
item->SetBackgroundColour(*wxWHITE);
|
||||
|
||||
BedTypeRadioBox* radiobox = new BedTypeRadioBox(item, bed_type);
|
||||
radiobox->SetPosition(wxPoint(padding_left, (item->GetSize().GetHeight() - radiobox->GetSize().GetHeight()) / 2));
|
||||
radio_buttons.push_back(radiobox);
|
||||
int btn_idx = radio_buttons.size() - 1;
|
||||
radiobox->Bind(wxEVT_LEFT_DOWN, [this, btn_idx](wxMouseEvent &e) {
|
||||
SetBedTypeDialog::select_curr_radiobox(btn_idx);
|
||||
});
|
||||
|
||||
wxStaticText *text = new wxStaticText(item, wxID_ANY, title, wxDefaultPosition, wxDefaultSize);
|
||||
text->SetPosition(wxPoint(padding_left + radiobox->GetSize().GetWidth() + 10, (item->GetSize().GetHeight() - text->GetSize().GetHeight()) / 2));
|
||||
text->SetFont(Label::Body_14);
|
||||
text->SetForegroundColour(0x686868);
|
||||
text->Bind(wxEVT_LEFT_DOWN, [this, btn_idx](wxMouseEvent &e) {
|
||||
SetBedTypeDialog::select_curr_radiobox(btn_idx);
|
||||
});
|
||||
|
||||
radiobox->SetToolTip(tooltip);
|
||||
text->SetToolTip(tooltip);
|
||||
return radiobox;
|
||||
}
|
||||
|
||||
void SetBedTypeDialog::select_curr_radiobox(int btn_idx)
|
||||
{
|
||||
int len = radio_buttons.size();
|
||||
for (int i = 0; i < len; ++i) {
|
||||
if (i == btn_idx)
|
||||
radio_buttons[i]->SetValue(true);
|
||||
else
|
||||
radio_buttons[i]->SetValue(false);
|
||||
}
|
||||
}
|
||||
|
||||
void SetBedTypeDialog::sync_bed_type(BedType type)
|
||||
{
|
||||
for (auto radio_box : radio_buttons) {
|
||||
if (radio_box->GetBedType() == type)
|
||||
radio_box->SetValue(true);
|
||||
else
|
||||
radio_box->SetValue(false);
|
||||
}
|
||||
}
|
||||
|
||||
void SetBedTypeDialog::on_dpi_changed(const wxRect& suggested_rect)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}} // namespace Slic3r::GUI
|
|
@ -1,62 +0,0 @@
|
|||
#ifndef slic3r_GUI_SetBedTypeDialog_hpp_
|
||||
#define slic3r_GUI_SetBedTypeDialog_hpp_
|
||||
|
||||
#include "Plater.hpp"
|
||||
#include "PartPlate.hpp"
|
||||
#include "Widgets/Button.hpp"
|
||||
#include "Widgets/RadioBox.hpp"
|
||||
|
||||
namespace Slic3r { namespace GUI {
|
||||
|
||||
wxDECLARE_EVENT(EVT_SET_BED_TYPE_CONFIRM, wxCommandEvent);
|
||||
|
||||
class BedTypeRadioBox : public RadioBox
|
||||
{
|
||||
public:
|
||||
BedTypeRadioBox(wxWindow* parent, BedType bed_type) : RadioBox(parent), m_bed_type(bed_type) {}
|
||||
|
||||
void SetBedType(BedType bed_type) { m_bed_type = bed_type; }
|
||||
BedType GetBedType() { return m_bed_type; }
|
||||
|
||||
private:
|
||||
BedType m_bed_type{ BedType::btCount };
|
||||
};
|
||||
|
||||
class SetBedTypeDialog : public DPIDialog
|
||||
{
|
||||
public:
|
||||
enum ButtonStyle {
|
||||
ONLY_CONFIRM = 0,
|
||||
CONFIRM_AND_CANCEL = 1,
|
||||
MAX_STYLE_NUM = 2
|
||||
};
|
||||
SetBedTypeDialog(
|
||||
wxWindow* parent,
|
||||
wxWindowID id = wxID_ANY,
|
||||
const wxString& title = wxEmptyString,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = wxCLOSE_BOX | wxCAPTION
|
||||
);
|
||||
|
||||
~SetBedTypeDialog();
|
||||
void sync_bed_type(BedType type);
|
||||
void on_dpi_changed(const wxRect& suggested_rect) override;
|
||||
|
||||
protected:
|
||||
BedTypeRadioBox* m_rb_default_plate{ nullptr };
|
||||
BedTypeRadioBox* m_rb_cool_plate{ nullptr };
|
||||
BedTypeRadioBox* m_rb_eng_plate{ nullptr };
|
||||
BedTypeRadioBox* m_rb_high_temp_plate{ nullptr };
|
||||
BedTypeRadioBox* m_rb_texture_pei_plate{ nullptr };
|
||||
Button* m_button_ok;
|
||||
Button* m_button_cancel;
|
||||
std::vector<BedTypeRadioBox*> radio_buttons;
|
||||
|
||||
BedTypeRadioBox* create_item_radiobox(wxString title, wxWindow* parent, wxString tooltip, int padding_left, BedType bed_type);
|
||||
void select_curr_radiobox(int btn_idx);
|
||||
};
|
||||
|
||||
}} // namespace Slic3r::GUI
|
||||
|
||||
#endif
|