portafilter.svg · 185 lines
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="1400" viewBox="0 0 1000 1400" font-family="Helvetica, Arial, sans-serif">
<title>Espresso Portafilter - Exploded Assembly</title>
<desc>Exploded view of a double-spout portafilter with removable 58 mm basket: handle, screw, body, spring clip, basket.</desc>
<defs>
<linearGradient id="chrome" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#f7f8f9"/><stop offset="0.18" stop-color="#dfe3e7"/>
<stop offset="0.38" stop-color="#aeb4bb"/><stop offset="0.52" stop-color="#eef0f3"/>
<stop offset="0.70" stop-color="#878d95"/><stop offset="0.88" stop-color="#b9bec4"/>
<stop offset="1" stop-color="#d6dade"/>
</linearGradient>
<linearGradient id="chromeDark" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#d9dde0"/><stop offset="0.30" stop-color="#9ba1a8"/>
<stop offset="0.55" stop-color="#cdd1d5"/><stop offset="0.80" stop-color="#7e848c"/>
<stop offset="1" stop-color="#a9aeb5"/>
</linearGradient>
<linearGradient id="steel" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#eceef0"/><stop offset="0.45" stop-color="#b9bec4"/>
<stop offset="0.75" stop-color="#d8dbde"/><stop offset="1" stop-color="#a6acb2"/>
</linearGradient>
<linearGradient id="wood" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#96613a"/><stop offset="0.35" stop-color="#7a4a29"/>
<stop offset="0.75" stop-color="#5b3115"/><stop offset="1" stop-color="#43220c"/>
</linearGradient>
<pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse">
<path d="M40,0 H0 V40" fill="none" stroke="#ebe5d8" stroke-width="1"/>
</pattern>
</defs>
<rect x="0" y="0" width="1000" height="1400" fill="#f6f3ec"/>
<rect x="26" y="26" width="948" height="1348" fill="url(#grid)"/>
<rect x="14" y="14" width="972" height="1372" fill="none" stroke="#2a2d33" stroke-width="2"/>
<rect x="26" y="26" width="948" height="1348" fill="none" stroke="#2a2d33" stroke-width="1"/>
<text x="44" y="72" font-size="26" font-weight="bold" letter-spacing="2" fill="#22252a">ESPRESSO PORTAFILTER</text>
<text x="44" y="96" font-size="13" letter-spacing="3" fill="#6a6f76">EXPLODED ASSEMBLY · DOUBLE-SPOUT · REMOVABLE BASKET</text>
<text x="956" y="66" font-size="13" font-weight="bold" text-anchor="end" fill="#22252a">DWG NO. PF-58-DS</text>
<text x="956" y="90" font-size="11" text-anchor="end" fill="#6a6f76">SCALE 1:1 · REV A · SHEET 1/1</text>
<path d="M28,112 H972" stroke="#2a2d33" stroke-width="1.5"/>
<path d="M500,134 V998" stroke="#8a8f96" stroke-width="1.2" stroke-dasharray="18 5 4 5"/>
<path d="M500,120 L494,134 L506,134 Z" fill="#8a8f96"/>
<path d="M500,1012 L494,998 L506,998 Z" fill="#8a8f96"/>
<text x="514" y="130" font-size="9" letter-spacing="1.5" fill="#8a8f96">ASSEMBLY AXIS</text>
<g>
<ellipse cx="500" cy="155" rx="30" ry="9" fill="url(#chrome)" stroke="#3a3e44" stroke-width="1.4"/>
<path d="M470,155 L470,214 A30,9 0 0 0 530,214 L530,155 Z" fill="url(#chromeDark)" stroke="#3a3e44" stroke-width="1.4"/>
<ellipse cx="500" cy="155" rx="11" ry="3.5" fill="#2c2f34"/>
<path d="M452,164 L452,212 A9,3 0 0 0 470,212 L470,164 Z" fill="url(#chromeDark)" stroke="#3a3e44" stroke-width="1.2"/>
<path d="M452,164 C380,158 300,156 230,163 C190,166.5 176,175 176,186 C176,197 192,205.5 232,207 C300,211 380,209.5 452,210 Z" fill="url(#wood)" stroke="#33200f" stroke-width="1.5"/>
<path d="M446,168 C380,163 305,161 240,166" stroke="#c89a6b" stroke-width="2" opacity="0.55" fill="none"/>
<path d="M440,171 C370,166 300,164.5 240,169" stroke="#3f2410" stroke-width="1" opacity="0.45" fill="none"/>
<path d="M445,186 C370,181 295,180 205,186" stroke="#3f2410" stroke-width="1" opacity="0.4" fill="none"/>
<path d="M445,200 C380,205 300,204 250,201" stroke="#3f2410" stroke-width="1" opacity="0.45" fill="none"/>
<path d="M408,161 C405,176 405,196 408,209" stroke="#33200f" stroke-width="2" fill="none"/>
<path d="M430,161 C427,176 427,196 430,209" stroke="#33200f" stroke-width="2" fill="none"/>
</g>
<g>
<rect x="468" y="266" width="64" height="7" rx="2" fill="#c3c7cc" stroke="#3a3e44" stroke-width="1"/>
<rect x="476" y="244" width="48" height="23" rx="3" fill="url(#steel)" stroke="#3a3e44" stroke-width="1.3"/>
<rect x="484" y="250" width="32" height="7" rx="2" fill="#70767d"/>
<rect x="492" y="267" width="16" height="50" fill="url(#steel)" stroke="#3a3e44" stroke-width="1.2"/>
<path d="M493,273 H507" stroke="#565b61" stroke-width="1.2"/>
<path d="M493,278 H507" stroke="#565b61" stroke-width="1.2"/>
<path d="M493,283 H507" stroke="#565b61" stroke-width="1.2"/>
<path d="M493,288 H507" stroke="#565b61" stroke-width="1.2"/>
<path d="M493,293 H507" stroke="#565b61" stroke-width="1.2"/>
<path d="M493,298 H507" stroke="#565b61" stroke-width="1.2"/>
<path d="M493,303 H507" stroke="#565b61" stroke-width="1.2"/>
<path d="M493,308 H507" stroke="#565b61" stroke-width="1.2"/>
<path d="M493,313 H507" stroke="#565b61" stroke-width="1.2"/>
<path d="M492,317 L508,317 L500,328 Z" fill="url(#steel)" stroke="#3a3e44" stroke-width="1.2"/>
</g>
<g>
<path d="M368,412 C375,446 378,474 384,500 L616,500 C622,474 625,446 632,412 Z" fill="url(#chromeDark)" stroke="#3a3e44" stroke-width="1.5"/>
<rect x="322" y="390" width="46" height="26" rx="3" fill="url(#chromeDark)" stroke="#3a3e44" stroke-width="1.4"/>
<rect x="632" y="390" width="46" height="26" rx="3" fill="url(#chromeDark)" stroke="#3a3e44" stroke-width="1.4"/>
<path d="M360,364 L360,412 A140,15 0 0 0 640,412 L640,364 A140,15 0 0 1 360,364 Z" fill="url(#chromeDark)" stroke="#3a3e44" stroke-width="1.5"/>
<ellipse cx="500" cy="364" rx="140" ry="15" fill="url(#chrome)" stroke="#3a3e44" stroke-width="1.5"/>
<path d="M390,358 A112,11 0 0 1 610,358" stroke="#ffffff" stroke-width="2" opacity="0.7" fill="none"/>
<path d="M360,412 A140,15 0 0 0 640,412" stroke="#6f757c" stroke-width="1.3" fill="none"/>
<path d="M438,416 C444,446 447,474 451,498" stroke="#ffffff" stroke-width="4" opacity="0.75" fill="none" stroke-linecap="round"/>
<path d="M384,500 L384,536 A116,13 0 0 0 616,536 L616,500 Z" fill="url(#chrome)" stroke="#3a3e44" stroke-width="1.5"/>
<path d="M384,500 A116,13 0 0 0 616,500" stroke="#6f757c" stroke-width="1.2" fill="none"/>
<path d="M402,505 V532" stroke="#ffffff" stroke-width="3" opacity="0.55" stroke-linecap="round"/>
<path d="M384,536 C378,552 372,562 368,570 C363,590 361,608 364,622 L366,626 A33,8 0 0 0 432,620 C452,606 478,596 500,590 C522,596 548,606 568,620 A33,8 0 0 0 634,626 C637,608 639,590 632,570 C628,562 622,552 616,536 A116,13 0 0 1 384,536 Z" fill="url(#chromeDark)" stroke="#3a3e44" stroke-width="1.5"/>
<ellipse cx="399" cy="623" rx="32" ry="7.5" fill="#23262b" stroke="#3a3e44" stroke-width="1.2"/>
<ellipse cx="601" cy="623" rx="32" ry="7.5" fill="#23262b" stroke="#3a3e44" stroke-width="1.2"/>
<path d="M384,544 C379,558 375,568 372,576" stroke="#ffffff" stroke-width="2.5" opacity="0.55" fill="none" stroke-linecap="round"/>
<path d="M378,588 C374,602 373,612 375,619" stroke="#ffffff" stroke-width="2" opacity="0.5" fill="none" stroke-linecap="round"/>
</g>
<g>
<path d="M375,750 Q500,718 625,750 Q500,732 375,750 Z" fill="url(#steel)" stroke="#45494f" stroke-width="1.4"/>
<path d="M375,749 L356,743" stroke="#8d939a" stroke-width="5" stroke-linecap="round"/>
<circle cx="630" cy="748" r="9" fill="none" stroke="#9298a0" stroke-width="5"/>
<circle cx="630" cy="748" r="9" fill="none" stroke="#e8eaec" stroke-width="1.2" opacity="0.8"/>
</g>
<g>
<path d="M385,836 A115,16 0 0 0 615,836 L577,968 A78,13 0 0 1 423,968 Z" fill="url(#chromeDark)" stroke="#3a3e44" stroke-width="1.6"/>
<ellipse cx="500" cy="968" rx="30" ry="5" fill="none" stroke="#6d737a" stroke-width="1.4"/>
<circle cx="409" cy="858" r="1.7" fill="#34383e"/><circle cx="422" cy="858" r="1.7" fill="#34383e"/><circle cx="435" cy="858" r="1.7" fill="#34383e"/><circle cx="448" cy="858" r="1.7" fill="#34383e"/><circle cx="461" cy="858" r="1.7" fill="#34383e"/><circle cx="474" cy="858" r="1.7" fill="#34383e"/><circle cx="487" cy="858" r="1.7" fill="#34383e"/><circle cx="500" cy="858" r="1.7" fill="#34383e"/><circle cx="513" cy="858" r="1.7" fill="#34383e"/><circle cx="526" cy="858" r="1.7" fill="#34383e"/><circle cx="539" cy="858" r="1.7" fill="#34383e"/><circle cx="552" cy="858" r="1.7" fill="#34383e"/><circle cx="565" cy="858" r="1.7" fill="#34383e"/><circle cx="578" cy="858" r="1.7" fill="#34383e"/><circle cx="591" cy="858" r="1.7" fill="#34383e"/><circle cx="409" cy="869" r="1.7" fill="#34383e"/><circle cx="422" cy="869" r="1.7" fill="#34383e"/><circle cx="435" cy="869" r="1.7" fill="#34383e"/><circle cx="448" cy="869" r="1.7" fill="#34383e"/><circle cx="461" cy="869" r="1.7" fill="#34383e"/><circle cx="474" cy="869" r="1.7" fill="#34383e"/><circle cx="487" cy="869" r="1.7" fill="#34383e"/><circle cx="500" cy="869" r="1.7" fill="#34383e"/><circle cx="513" cy="869" r="1.7" fill="#34383e"/><circle cx="526" cy="869" r="1.7" fill="#34383e"/><circle cx="539" cy="869" r="1.7" fill="#34383e"/><circle cx="552" cy="869" r="1.7" fill="#34383e"/><circle cx="565" cy="869" r="1.7" fill="#34383e"/><circle cx="578" cy="869" r="1.7" fill="#34383e"/><circle cx="591" cy="869" r="1.7" fill="#34383e"/><circle cx="409" cy="880" r="1.7" fill="#34383e"/><circle cx="422" cy="880" r="1.7" fill="#34383e"/><circle cx="435" cy="880" r="1.7" fill="#34383e"/><circle cx="448" cy="880" r="1.7" fill="#34383e"/><circle cx="461" cy="880" r="1.7" fill="#34383e"/><circle cx="474" cy="880" r="1.7" fill="#34383e"/><circle cx="487" cy="880" r="1.7" fill="#34383e"/><circle cx="500" cy="880" r="1.7" fill="#34383e"/><circle cx="513" cy="880" r="1.7" fill="#34383e"/><circle cx="526" cy="880" r="1.7" fill="#34383e"/><circle cx="539" cy="880" r="1.7" fill="#34383e"/><circle cx="552" cy="880" r="1.7" fill="#34383e"/><circle cx="565" cy="880" r="1.7" fill="#34383e"/><circle cx="578" cy="880" r="1.7" fill="#34383e"/><circle cx="591" cy="880" r="1.7" fill="#34383e"/><circle cx="409" cy="891" r="1.7" fill="#34383e"/><circle cx="422" cy="891" r="1.7" fill="#34383e"/><circle cx="435" cy="891" r="1.7" fill="#34383e"/><circle cx="448" cy="891" r="1.7" fill="#34383e"/><circle cx="461" cy="891" r="1.7" fill="#34383e"/><circle cx="474" cy="891" r="1.7" fill="#34383e"/><circle cx="487" cy="891" r="1.7" fill="#34383e"/><circle cx="500" cy="891" r="1.7" fill="#34383e"/><circle cx="513" cy="891" r="1.7" fill="#34383e"/><circle cx="526" cy="891" r="1.7" fill="#34383e"/><circle cx="539" cy="891" r="1.7" fill="#34383e"/><circle cx="552" cy="891" r="1.7" fill="#34383e"/><circle cx="565" cy="891" r="1.7" fill="#34383e"/><circle cx="578" cy="891" r="1.7" fill="#34383e"/><circle cx="591" cy="891" r="1.7" fill="#34383e"/><circle cx="422" cy="902" r="1.7" fill="#34383e"/><circle cx="435" cy="902" r="1.7" fill="#34383e"/><circle cx="448" cy="902" r="1.7" fill="#34383e"/><circle cx="461" cy="902" r="1.7" fill="#34383e"/><circle cx="474" cy="902" r="1.7" fill="#34383e"/><circle cx="487" cy="902" r="1.7" fill="#34383e"/><circle cx="500" cy="902" r="1.7" fill="#34383e"/><circle cx="513" cy="902" r="1.7" fill="#34383e"/><circle cx="526" cy="902" r="1.7" fill="#34383e"/><circle cx="539" cy="902" r="1.7" fill="#34383e"/><circle cx="552" cy="902" r="1.7" fill="#34383e"/><circle cx="565" cy="902" r="1.7" fill="#34383e"/><circle cx="578" cy="902" r="1.7" fill="#34383e"/><circle cx="422" cy="913" r="1.7" fill="#34383e"/><circle cx="435" cy="913" r="1.7" fill="#34383e"/><circle cx="448" cy="913" r="1.7" fill="#34383e"/><circle cx="461" cy="913" r="1.7" fill="#34383e"/><circle cx="474" cy="913" r="1.7" fill="#34383e"/><circle cx="487" cy="913" r="1.7" fill="#34383e"/><circle cx="500" cy="913" r="1.7" fill="#34383e"/><circle cx="513" cy="913" r="1.7" fill="#34383e"/><circle cx="526" cy="913" r="1.7" fill="#34383e"/><circle cx="539" cy="913" r="1.7" fill="#34383e"/><circle cx="552" cy="913" r="1.7" fill="#34383e"/><circle cx="565" cy="913" r="1.7" fill="#34383e"/><circle cx="578" cy="913" r="1.7" fill="#34383e"/><circle cx="422" cy="924" r="1.7" fill="#34383e"/><circle cx="435" cy="924" r="1.7" fill="#34383e"/><circle cx="448" cy="924" r="1.7" fill="#34383e"/><circle cx="461" cy="924" r="1.7" fill="#34383e"/><circle cx="474" cy="924" r="1.7" fill="#34383e"/><circle cx="487" cy="924" r="1.7" fill="#34383e"/><circle cx="500" cy="924" r="1.7" fill="#34383e"/><circle cx="513" cy="924" r="1.7" fill="#34383e"/><circle cx="526" cy="924" r="1.7" fill="#34383e"/><circle cx="539" cy="924" r="1.7" fill="#34383e"/><circle cx="552" cy="924" r="1.7" fill="#34383e"/><circle cx="565" cy="924" r="1.7" fill="#34383e"/><circle cx="578" cy="924" r="1.7" fill="#34383e"/><circle cx="422" cy="935" r="1.7" fill="#34383e"/><circle cx="435" cy="935" r="1.7" fill="#34383e"/><circle cx="448" cy="935" r="1.7" fill="#34383e"/><circle cx="461" cy="935" r="1.7" fill="#34383e"/><circle cx="474" cy="935" r="1.7" fill="#34383e"/><circle cx="487" cy="935" r="1.7" fill="#34383e"/><circle cx="500" cy="935" r="1.7" fill="#34383e"/><circle cx="513" cy="935" r="1.7" fill="#34383e"/><circle cx="526" cy="935" r="1.7" fill="#34383e"/><circle cx="539" cy="935" r="1.7" fill="#34383e"/><circle cx="552" cy="935" r="1.7" fill="#34383e"/><circle cx="565" cy="935" r="1.7" fill="#34383e"/><circle cx="578" cy="935" r="1.7" fill="#34383e"/>
<ellipse cx="500" cy="836" rx="115" ry="16" fill="url(#chrome)" stroke="#3a3e44" stroke-width="1.6"/>
<path d="M385,841 A115,16 0 0 0 615,841" stroke="#7d838a" stroke-width="1.2" fill="none"/>
<ellipse cx="500" cy="836" rx="99" ry="12.5" fill="#26292e" stroke="#4a4f55" stroke-width="1"/>
</g>
<path d="M385,828 V792" stroke="#55595f" stroke-width="1"/>
<path d="M615,828 V792" stroke="#55595f" stroke-width="1"/>
<path d="M389,802 H611" stroke="#2a2d33" stroke-width="1.2"/>
<path d="M385,802 L396,798.5 L396,805.5 Z" fill="#2a2d33"/>
<path d="M615,802 L604,798.5 L604,805.5 Z" fill="#2a2d33"/>
<text x="500" y="792" font-size="13" font-weight="bold" text-anchor="middle" fill="#2a2d33">58 mm</text>
<g stroke="#2a2d33" stroke-width="1.4">
<path d="M100,190 L206,193" fill="none"/><path d="M100,760 L366,764" fill="none"/>
<path d="M900,280 L534,265" fill="none"/><path d="M900,516 L624,490" fill="none"/>
<path d="M900,880 L621,844" fill="none"/>
</g>
<circle cx="210" cy="193" r="3.5" fill="#2a2d33"/>
<circle cx="370" cy="744" r="3.5" fill="#2a2d33"/>
<circle cx="530" cy="264" r="3.5" fill="#2a2d33"/>
<circle cx="622" cy="489" r="3.5" fill="#2a2d33"/>
<circle cx="617" cy="843" r="3.5" fill="#2a2d33"/>
<circle cx="86" cy="190" r="14" fill="#ffffff" stroke="#2a2d33" stroke-width="2"/>
<text x="86" y="195" font-size="15" font-weight="bold" text-anchor="middle" fill="#22252a">1</text>
<text x="86" y="222" font-size="10" letter-spacing="1" text-anchor="middle" fill="#6a6f76">HANDLE</text>
<circle cx="914" cy="280" r="14" fill="#ffffff" stroke="#2a2d33" stroke-width="2"/>
<text x="914" y="285" font-size="15" font-weight="bold" text-anchor="middle" fill="#22252a">2</text>
<text x="914" y="312" font-size="10" letter-spacing="1" text-anchor="middle" fill="#6a6f76">SCREW</text>
<circle cx="914" cy="516" r="14" fill="#ffffff" stroke="#2a2d33" stroke-width="2"/>
<text x="914" y="521" font-size="15" font-weight="bold" text-anchor="middle" fill="#22252a">3</text>
<text x="914" y="548" font-size="10" letter-spacing="1" text-anchor="middle" fill="#6a6f76">BODY</text>
<circle cx="86" cy="740" r="14" fill="#ffffff" stroke="#2a2d33" stroke-width="2"/>
<text x="86" y="745" font-size="15" font-weight="bold" text-anchor="middle" fill="#22252a">4</text>
<text x="86" y="772" font-size="10" letter-spacing="1" text-anchor="middle" fill="#6a6f76">SPRING CLIP</text>
<circle cx="914" cy="880" r="14" fill="#ffffff" stroke="#2a2d33" stroke-width="2"/>
<text x="914" y="885" font-size="15" font-weight="bold" text-anchor="middle" fill="#22252a">5</text>
<text x="914" y="912" font-size="10" letter-spacing="1" text-anchor="middle" fill="#6a6f76">BASKET</text>
<path d="M28,1072 H972" stroke="#2a2d33" stroke-width="1.5"/>
<text x="384" y="1112" font-size="12" font-weight="bold" letter-spacing="1.5" fill="#22252a">NOTES</text>
<text x="384" y="1136" font-size="11" fill="#5a5f66">1. BASKET IS REMOVABLE AND</text>
<text x="384" y="1158" font-size="11" fill="#5a5f66"> RETAINED BY SPRING CLIP.</text>
<text x="384" y="1180" font-size="11" fill="#5a5f66">2. TWIN SPOUTS FOR TWO-CUP</text>
<text x="384" y="1202" font-size="11" fill="#5a5f66"> DOUBLE SHOTS.</text>
<text x="384" y="1224" font-size="11" fill="#5a5f66">3. ALL PARTS FOOD-SAFE.</text>
<rect x="44" y="1090" width="312" height="216" fill="none" stroke="#2a2d33" stroke-width="1.5"/>
<path d="M44,1126 H356" stroke="#2a2d33" stroke-width="1"/>
<path d="M88,1090 V1306" stroke="#2a2d33" stroke-width="1"/>
<path d="M316,1090 V1306" stroke="#2a2d33" stroke-width="1"/>
<path d="M44,1168 H356" stroke="#ddd6c8" stroke-width="1"/>
<path d="M44,1200 H356" stroke="#ddd6c8" stroke-width="1"/>
<path d="M44,1232 H356" stroke="#ddd6c8" stroke-width="1"/>
<path d="M44,1264 H356" stroke="#ddd6c8" stroke-width="1"/>
<text x="66" y="1114" font-size="10" letter-spacing="1" text-anchor="middle" fill="#6a6f76">ITEM</text>
<text x="202" y="1114" font-size="10" letter-spacing="1" text-anchor="middle" fill="#6a6f76">PART</text>
<text x="336" y="1114" font-size="10" letter-spacing="1" text-anchor="middle" fill="#6a6f76">QTY</text>
<text x="66" y="1152" font-size="12.5" text-anchor="middle" fill="#22252a">1</text>
<text x="100" y="1152" font-size="12.5" fill="#22252a">HANDLE - WALNUT</text>
<text x="336" y="1152" font-size="12.5" text-anchor="middle" fill="#22252a">1</text>
<text x="66" y="1184" font-size="12.5" text-anchor="middle" fill="#22252a">2</text>
<text x="100" y="1184" font-size="12.5" fill="#22252a">SCREW M8 x 20</text>
<text x="336" y="1184" font-size="12.5" text-anchor="middle" fill="#22252a">1</text>
<text x="66" y="1216" font-size="12.5" text-anchor="middle" fill="#22252a">3</text>
<text x="100" y="1216" font-size="12.5" fill="#22252a">BODY - CHROME BRASS</text>
<text x="336" y="1216" font-size="12.5" text-anchor="middle" fill="#22252a">1</text>
<text x="66" y="1248" font-size="12.5" text-anchor="middle" fill="#22252a">4</text>
<text x="100" y="1248" font-size="12.5" fill="#22252a">SPRING CLIP - STEEL</text>
<text x="336" y="1248" font-size="12.5" text-anchor="middle" fill="#22252a">1</text>
<text x="66" y="1280" font-size="12.5" text-anchor="middle" fill="#22252a">5</text>
<text x="100" y="1280" font-size="12.5" fill="#22252a">FILTER BASKET - 58 mm</text>
<text x="336" y="1280" font-size="12.5" text-anchor="middle" fill="#22252a">1</text>
<rect x="600" y="1090" width="356" height="216" fill="none" stroke="#2a2d33" stroke-width="1.5"/>
<path d="M600,1146 H956" stroke="#2a2d33" stroke-width="1"/>
<path d="M600,1230 H956" stroke="#2a2d33" stroke-width="1"/>
<path d="M776,1146 V1230" stroke="#2a2d33" stroke-width="1"/>
<text x="778" y="1120" font-size="15" font-weight="bold" letter-spacing="1" text-anchor="middle" fill="#22252a">PORTAFILTER - EXPLODED VIEW</text>
<text x="778" y="1140" font-size="10" letter-spacing="1.5" text-anchor="middle" fill="#6a6f76">DOUBLE SPOUT · 58 mm</text>
<text x="616" y="1166" font-size="9" letter-spacing="1" fill="#8a8f96">DWG NO.</text>
<text x="616" y="1186" font-size="13" font-weight="bold" fill="#22252a">PF-58-DS</text>
<text x="792" y="1166" font-size="9" letter-spacing="1" fill="#8a8f96">SCALE</text>
<text x="792" y="1186" font-size="13" font-weight="bold" fill="#22252a">1:1</text>
<text x="616" y="1206" font-size="9" letter-spacing="1" fill="#8a8f96">MATERIAL</text>
<text x="616" y="1226" font-size="12" fill="#22252a">CHROME BRASS</text>
<text x="792" y="1206" font-size="9" letter-spacing="1" fill="#8a8f96">UNITS</text>
<text x="792" y="1226" font-size="12" fill="#22252a">MILLIMETRES</text>
<text x="616" y="1264" font-size="12" font-weight="bold" fill="#22252a">REV A    SHEET 1 OF 1</text>
<text x="616" y="1288" font-size="9" letter-spacing="1.5" fill="#8a8f96">DO NOT SCALE DRAWING</text>
<text x="500" y="1344" font-size="11" letter-spacing="1.5" text-anchor="middle" fill="#6a6f76">ASSEMBLY: THREAD HANDLE INTO BODY · SEAT BASKET IN BODY · SNAP SPRING CLIP OVER BASKET RIM</text>
</svg>round 1 of 3

Exploded portafilter: Pareto 26.10 Preview
modelunbiased/pareto-26.10-previewtaskexploded-portafilter@v1, checks c1, harness h1date2026-10-07rounds3 of 8 allowed, 12 minutes on the clockcost$0.1385thinkingmediumtokens110,457 in, 36,466 out, of which 0 reasoningtime3 min 25 sfailedStack order: false, relation transposed, critical, 3 pairs out of order, its note said nothing was wrong · Parts fit: false, geometry distorted, major, its note said nothing was wrong · Two assembly axes: unreadable, geometry inconsistent, minor, its note said nothing was wrong
All five partsdecided by looking · Pass if every listed part is drawn as a separate shape and each has a label naming it. A part only named in a label or a comment, with nothing drawn, fails it. The label must say what the part is, in any words: a name that only says where it sits ("top plate") or what it is made of, or a mention in another part's caption, does not count.pass
Stack orderdecided by a number, from the filefail
Parts fitdecided by looking · Pass if each listed pair of mating parts looks as if it would go together as stated: the right angle, nested inside, or sitting on top. One pair that plainly could not fails it.fail
Two assembly axesdecided by looking · Pass if one line runs through the middle of every part on each listed axis, and every leader line leaves from the same side. One part pushed off its axis fails it.fail
Labels matchdecided by looking · Pass if following each leader line from its label ends on the part that label names. One label pointing at the wrong part, or at nothing, fails it.pass
There is no post about this one, since only some results need one, so the picture, the source and the scoring are here instead.
run 1 · 5r · $0.2351
run 2 · 2r · $0.1517same prompt, other modelsall 22 runs on Exploded portafilter →
Draw an exploded assembly diagram of an espresso machine portafilter, as an SVG. Use a double-spout portafilter with a removable basket rather than a bottomless one.Frozen at v1. This model got this and nothing else.
On a vertical axis, top to bottom: filter basket, retaining spring, portafilter body, double spout. The handle is on a horizontal axis off the body, so this is the one member with two axes. Checked against parts sellers, since no maker's exploded diagram could be fetched: Espresso Parts and Zirkus Coffee on the spring that clips into a groove inside the body and grips the basket rim, Espresso Parts on the spout that screws onto the bottom of the body, and Nepo Coffee on handles that screw onto a stud on its side. How it is scored, and this run's files on GitHub.