Skip to content

Commit 33130d0

Browse files
authored
feat: Improvements to Happy Hare MMU functionality (#1691)
Signed-off-by: Paul Morgan <[email protected]>
1 parent 3131916 commit 33130d0

File tree

3 files changed

+80
-34
lines changed

3 files changed

+80
-34
lines changed

public/img/mmu/mmu_KMS.svg

Lines changed: 9 additions & 0 deletions
Loading

public/img/mmu/mmu_VVD.svg

Lines changed: 18 additions & 0 deletions
Loading

src/components/widgets/mmu/MmuFilamentStatus.vue

Lines changed: 53 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,19 @@
131131
vector-effect="non-scaling-stroke"
132132
/>
133133
</g>
134+
<g
135+
id="filament-grip"
136+
style="stroke-linecap: round; stroke-linejoin: round"
137+
>
138+
<path
139+
fill="rgb(131,148,150)"
140+
d="M368,368 V376 C368,380.41,364.41,384,360,384 H344 V360 H360 C364.41,360,368,363.59,368,368 Z M368,408 V416 C368,420.41,364.41,424,360,424 C293.65,424,340.73,424,312,424 C307.59,424,304,420.41,304,416 V408 C304,403.59,307.59,400,312,400 C326.91,400,345.09,400,360,400 C364.41,400,368,403.59,368,408 Z M248.97,461.66 L242.34,455.03 C237.81,450.5,231.78,448,225.38,448 H160 V368 H193.38 C199.79,368,205.82,365.5,210.35,360.97 L248.97,322.35 C250.49,320.84,252.5,320,254.63,320 H320 C324.42,320,328,323.59,328,328 V384 C322.21,384,317.79,384,312,384 C307.59,384,304,380.42,304,376 V350.61 C304,346.19,300.43,342.61,296,342.61 S288,346.19,288,350.61 V357.2 L262.56,389 C261.04,390.91,258.75,392,256.31,392 H217.05 C212.63,392,209.05,395.58,209.05,400 S212.63,408,217.05,408 H256.31 C263.64,408,270.47,404.72,275.06,399 L288.74,381.9 C289.71,385.74,291.62,389.21,294.2,392.06 C290.39,396.31,288,401.86,288,408 V416 C288,427.06,295.56,436.31,305.76,439.08 C304.65,441.84,304,444.85,304,448.01 V456.01 C304,458.82,304.58,461.49,305.48,464.01 H254.63 C252.49,464.01,250.48,463.17,248.97,461.67 Z M368,456 C368,460.41,364.41,464,360,464 H328 C323.59,464,320,460.41,320,456 V448 C320,443.59,323.59,440,328,440 H360 C364.41,440,368,443.59,368,448 V456 Z M368,328 V336 C368,340.41,364.41,344,360,344 H344 V328 C344,325.18,343.42,322.51,342.53,320 H360 C364.41,320,368,323.59,368,328 Z"
141+
/>
142+
<path
143+
:fill="currentGateColor"
144+
d="M300,250 L350,250 L350,310 L300,310 Z M300,475 L350,475 L350,520 L300,520 Z"
145+
/>
146+
</g>
134147
</defs>
135148

136149
<rect
@@ -338,12 +351,29 @@
338351
{{ temperatureText }}
339352
</text>
340353

341-
<g v-if="hasSyncFeedback">
354+
<g v-if="hasSyncFeedback && filamentPos >= FILAMENT_POS_END_BOWDEN">
342355
<transition name="fade">
343356
<g
344-
v-if="isSensorTriggered('filament_tension')"
357+
v-if="isSensorTriggered('filament_tension') && isSensorTriggered('filament_compression')"
358+
key="neutral"
359+
>
360+
<text
361+
x="288"
362+
y="240"
363+
>Neutral</text>
364+
<use
365+
xlink:href="#sync-feedback"
366+
transform="translate(286, 247.5) scale(1.0,-1.0) rotate(90)"
367+
/>
368+
</g>
369+
<g
370+
v-else-if="isSensorTriggered('filament_tension')"
345371
key="tension"
346372
>
373+
<text
374+
x="288"
375+
y="240"
376+
>Tension</text>
347377
<use
348378
xlink:href="#sync-feedback"
349379
transform="translate(258, 199) scale(1.2)"
@@ -353,12 +383,14 @@
353383
transform="translate(258, 271) scale(1.2,-1.2)"
354384
/>
355385
</g>
356-
</transition>
357-
<transition name="fade">
358386
<g
359-
v-if="isSensorTriggered('filament_compression')"
387+
v-else-if="isSensorTriggered('filament_compression')"
360388
key="compression"
361389
>
390+
<text
391+
x="288"
392+
y="240"
393+
>Compression</text>
362394
<use
363395
xlink:href="#sync-feedback"
364396
transform="translate(258, 235) scale(1.2)"
@@ -369,32 +401,6 @@
369401
/>
370402
</g>
371403
</transition>
372-
<transition name="fade">
373-
<g
374-
v-if="isSensorTriggered('filament_tension') || isSensorTriggered('filament_compression')"
375-
key="feedback"
376-
>
377-
style="font-size: 14px"
378-
<text
379-
v-if="isSensorTriggered('filament_tension') && isSensorTriggered('filament_compression')"
380-
x="288"
381-
y="240"
382-
fill="#FF0000"
383-
>
384-
Error!
385-
</text>
386-
<text
387-
v-else-if="isSensorTriggered('filament_tension')"
388-
x="288"
389-
y="240"
390-
>Tension</text>
391-
<text
392-
v-else-if="isSensorTriggered('filament_compression')"
393-
x="288"
394-
y="240"
395-
>Compression</text>
396-
</g>
397-
</transition>
398404
</g>
399405
<text
400406
x="160"
@@ -412,21 +418,30 @@
412418
/>
413419
</transition>
414420

421+
<transition name="fade">
422+
<use
423+
v-if="isGripped"
424+
ref="grip"
425+
xlink:href="#filament-grip"
426+
transform="scale(.1) translate(1900, 420)"
427+
/>
428+
</transition>
429+
415430
<use
416-
v-if="action == ACTION_CUTTING_FILAMENT"
431+
v-if="action === ACTION_CUTTING_FILAMENT"
417432
ref="cut"
418433
xlink:href="#sissors"
419434
class="cut1-effect"
420435
/>
421436
<use
422-
v-if="action == ACTION_CUTTING_TIP"
437+
v-if="action === ACTION_CUTTING_TIP"
423438
ref="cutTip"
424439
xlink:href="#sissors"
425440
class="cut2-effect"
426441
/>
427442

428443
<use
429-
v-if="action == ACTION_PURGING"
444+
v-if="action === ACTION_PURGING"
430445
ref="poop"
431446
xlink:href="#blob"
432447
class="blob-effect"
@@ -783,6 +798,10 @@ export default class MmuFilamentStatus extends Mixins(StateMixin, MmuMixin) {
783798
return this.fromColorString(color)
784799
}
785800
801+
get isGripped (): boolean {
802+
return (this.grip === 'Gripped' || this.servo === 'Down')
803+
}
804+
786805
mounted () {
787806
this.calcFilamentHeight(this.filamentPos)
788807
}

0 commit comments

Comments
 (0)