Przejdź do treści

Notatka · Eksperymenty · 7 min czytania

Trzy wydruki do działającej części

Model językowy zaprojektował w Blenderze część do druku 3D, nakładkę na telefon, w którą wkręca się filtr, a ja ją drukowałem i przymierzałem. Co zrobił model, co zostało po mojej stronie i gdzie się mylił.

Obraz wygenerowany przez AI: dłonie zakładają pomarańczowy wydrukowany pierścień na telefon, obok okrągły szary filtr i kolejne próbne wydruki, w tle drukarka 3D przy oknie o zmierzchu.

Kiedy mówi się o sztucznej inteligencji, najczęściej chodzi o tekst (mail, streszczenie, odpowiedź na pytanie), czyli o coś, co w razie błędu poprawia się w kilka sekund. Chciałem sprawdzić, jak model językowy poradzi sobie z zadaniem, w którym błąd widać dopiero wtedy, kiedy weźmie się wynik do ręki: z zaprojektowaniem prawdziwej, fizycznej części, którą potem wydrukuję na drukarce 3D i założę na telefon.

Filtr ND 77 mm na iPhone'a 17 Pro

Potrzeba była konkretna: mam filtr ND o średnicy 77 mm (szare szkło, które przyciemnia obraz, dzięki czemu nawet w pełnym słońcu można filmować albo fotografować z dłuższym czasem naświetlania), który wkręca się w gwint na przodzie obiektywu aparatu, a telefon takiego gwintu oczywiście nie ma. Potrzebowałem więc przejściówki, czyli nakładki, którą wsuwa się na górną część telefonu (w moim przypadku iPhone 17 Pro) i w którą można wkręcić filtr tak, żeby zasłaniał wszystkie trzy aparaty.

Dwa zdjęcia obok siebie. Po lewej telefon w czarnym etui od strony ekranu, z pomarańczową nakładką na górnej krawędzi. Po prawej ten sam telefon od tyłu, z dużym szarym filtrem wkręconym w pomarańczowy pierścień nad aparatami.

Wydrukowana nakładka na telefonie: od strony ekranu i od tyłu, z wkręconym filtrem.

Model AI w Blenderze przez serwer MCP

Blendera (darmowego programu do modelowania 3D) wcześniej w ogóle nie używałem, a moje doświadczenie z projektowaniem 3D kończy się na kilku prostych rzeczach zrobionych w nieskomplikowanym programie w przeglądarce, więc samo projektowanie oddałem w całości modelowi. Pracowałem z Claude Code (to prywatna preferencja, nie rekomendacja) i modelem Claude Opus 5, czyli z modelem w chmurze, bo długie, wieloetapowe rozumowanie o geometrii to ta klasa zadań, w której po modele z czołówki sięgam z pełnym przekonaniem. Model obsługiwał Blendera bezpośrednio przez tzw. serwer MCP, czyli dodatek, dzięki któremu model językowy może sam wykonywać operacje w programie: tworzyć bryły, wycinać otwory, mierzyć odległości i zapisywać gotowe pliki do druku.

Podział pracy wyglądał tak, że ja opisałem, co chcę osiągnąć, i podałem, na czym będę drukować (drukarka Bambu Lab P1S, zwykły plastik PLA), a model sięgnął po rysunki techniczne, które Apple publikuje dla producentów akcesoriów (z położeniem każdego aparatu i jego kątem widzenia), zaprojektował część, sprawdził ją i zapisał pliki, które otwierałem w programie drukarki i drukowałem. Moja rola między kolejnymi wersjami sprowadzała się do tego, czego model w tym układzie sam nie zrobi: wydrukować, przymierzyć do telefonu i opisać zwykłymi słowami, co jest nie tak („dotyka obiektywu”, „jest za luźne”, „trochę się chwieje”).

Model trójwymiarowy: szary telefon widziany od tyłu, na jego górnej części zielona nakładka z dużym pierścieniem, przez który widać wszystkie trzy aparaty.

Nakładka w Blenderze, założona na model telefonu: pierścień z gwintem na filtr obejmuje wszystkie trzy aparaty.

Pierwszy wydruk: test gwintu

Najbardziej wymagający element wydawał się oczywisty: gwint. Liczą się w nim ułamki milimetra, a każda drukarka drukuje trochę inaczej, więc zamiast zgadywać, jaki zostawić luz, model zaproponował, żeby pierwszym wydrukiem nie była żadna część, tylko test: cztery pierścienie z gwintem obok siebie, każdy z nieco innym luzem (od 0,10 do 0,25 mm) i każdy opisany numerem. Wkręciłem filtr w każdy z nich, wybrałem ten, w którym szedł najlepiej, i od tej chwili luz nie był już założeniem, tylko liczbą sprawdzoną na mojej drukarce, z moim filtrem. Jeden szybki wydruk zastąpił kilka pełnych części, z których każda mogłaby okazać się niedopasowana, i moim zdaniem był to najrozsądniejszy ruch w całym projekcie.

Drugi i trzeci wydruk

Drugi wydruk to były dwie rzeczy naraz: sam uchwyt bez pierścienia (mały, szybki wydruk, który miał tylko pokazać, czy nakładka dobrze trzyma telefon) i pełna nakładka z gwintem. Wynik był na pierwszy rzut oka sprzeczny, bo sam uchwyt trzymał ciasno, lecz dotykał obiektywu, a pełna nakładka dobrze omijała obiektywy, za to była za luźna. Model znalazł dla obu obserwacji jedną przyczynę, której sam pewnie bym nie zauważył: obiektywy wystają ponad wyspę aparatów bardziej, niż zakładał (tej wysokości nie ma na rysunku Apple), a uchwyt wydawał się ciasny tylko dlatego, że opierał się o obiektyw, który go rozpychał. Po poprawce trzeci wydruk pasował i działał, a od pierwszej wiadomości do działającej części minęła niecała doba (z nocą w środku).

Gdzie model się mylił

Potem zaczęło się dopracowywanie i tu model kilka razy się pomylił. Poprosiłem o przesunięcie filtra wyżej (żeby z tyłu zostało więcej miejsca na trzymanie telefonu) i o połączenie pierścienia z nakładką po drugiej stronie, bo trochę się chwiał. Model policzył, jak wysoko może przesunąć filtr, zanim szerokokątny aparat zacznie widzieć krawędź pierścienia w kadrze, ale wzmocnienie dodał po złej stronie, bo ja patrzyłem na część w programie drukarki, który pokazuje ją odwróconą (tak, jak leży na stole roboczym), więc to, co ja nazywałem prawą stroną, dla modelu było lewą. Kiedy poprosiłem o podpórkę, która oprze pierścień o tył telefonu, podpórka zawisła prawie trzy milimetry nad szkłem, bo model odczytał z rysunku Apple wymiar, który wyglądał na długość wyspy aparatów, a w rzeczywistości opisywał strefę, której ze względu na anteny nie wolno zasłaniać metalem (o 15 mm dłuższą od samej wyspy). Raz zatrzymałem go jeszcze przed drukiem, bo w pliku, który uznał za gotowy, zauważyłem cienką belkę wiszącą w powietrzu obok części (błąd przy wycinaniu, którego jego własne sprawdzenia nie wyłapały). Każdy z tych błędów zauważyłem ja, patrząc na plik albo na wydruk, ale przyczynę za każdym razem znajdował model, i to w kilka minut (w przypadku rysunku odczytał wymiary bezpośrednio z linii w pliku PDF, zamiast z podanej na nim liczby).

Błędy zamienione w sprawdzenia

Najciekawsze wydaje mi się to, co zostało po tych błędach, bo razem z nimi przybywało automatycznych sprawdzeń, które model uruchamia przy każdej kolejnej wersji: czy plik jest jedną spójną bryłą (to po belce w powietrzu), czy część nigdzie nie wchodzi w telefon, czy żaden aparat nie widzi krawędzi pierścienia i, moim zdaniem najważniejsze, czy część w ogóle da się założyć (symulacja nasuwania nakładki na telefon krok po kroku, co dwa milimetry). To ostatnie wyłapało problem, którego nie widać na gotowym projekcie: część, która po założeniu pasuje idealnie, po drodze zahacza o obiektyw. Kiedy chciałem szerszej i głębszej podpórki, właśnie ta symulacja pokazała, że taka część nie wejdzie na telefon, więc model, zamiast spełniać prośbę za wszelką cenę, zaproponował osobny, zatrzaskiwany element, zakładany dopiero po nasunięciu nakładki. Dzisiaj cały projekt buduje się jednym poleceniem w mniej więcej minutę, razem ze wszystkimi sprawdzeniami, więc przy wersji na skórzane etui wystarczyło, że zmierzyłem suwmiarką dwa wymiary, a resztę model przeliczył sam (i ta wersja również pasuje i działa).

Ile kosztuje pomyłka

Nie chciałbym, żeby z tego tekstu wynikało, że model zastępuje projektanta. Doświadczony projektant zrobiłby tę część pewnie szybciej i bez wielu z tych błędów, a znaczenie ma tu też to, ile kosztuje pomyłka: kilkanaście gramów plastiku i trochę czasu drukarki, więc mogłem sobie pozwolić na to, żeby sprawdzianem był wydruk. Gdyby ta sama część miała trafić do produkcji, gdzie jedna pomyłka oznacza na przykład nową formę wtryskową, kontroli musiałoby być znacznie więcej, a projekt, moim zdaniem, powinien przejrzeć ktoś z doświadczeniem, zanim cokolwiek zostanie zamówione.

Sam schemat wydaje mi się przydatny nie tylko przy telefonie i filtrze: model wykonuje pracę w programie, którego ja nie znam, najtańszy test odbywa się na samym początku (cztery pierścienie zamiast czterech pełnych części), człowiek jest tam, gdzie potrzebne są ręce i oczy, a błąd, który raz się prześlizgnął, zostaje w miarę możliwości zamieniony w sprawdzenie, żeby nie prześlizgnął się drugi raz.

W skrócie

  • Model językowy może nie tylko pisać, ale też obsługiwać program (tutaj Blendera, którego wcześniej nie znałem) i oddawać gotowe pliki, w tym przypadku do druku 3D.
  • Od pierwszej wiadomości do działającej części: trzy wydruki i mniej niż doba.
  • Najtańszy krok na początku: jeden wydruk testowy zamiast zgadywania, jaki luz zostawić w gwincie.
  • Model się mylił (zła strona, źle odczytany wymiar, belka w powietrzu): błędy wyłapywałem ja, a przyczyny szybko znajdował model.
  • Błędy zamieniały się w automatyczne sprawdzenia, więc kolejne wersje powstają szybciej i pewniej.
  • Ile kontroli potrzeba, zależy od tego, ile kosztuje pomyłka.