ForemkaCAD

Modelowanie 3D skryptem i z asystentem AI

Model w Foremce zbudujesz nie tylko myszą, ale też krótkim programem. Skrypt woła te same operacje, które są na wstążce, więc każda trafia na oś czasu jako zwykły krok historii i później zmienisz ją tak samo jak wyklikaną. To wygodne przy częściach, które różnią się tylko wymiarami, przy powtarzalnych otworach i wtedy, gdy łatwiej opisać kształt liczbami, niż go narysować. W konsoli działa też asystent, który pisze takie skrypty na podstawie zwykłego opisu.

Jak wygląda skrypt

Konsolę otwiera przycisk Konsola w zakładce NARZĘDZIA, a Ctrl+Enter uruchamia skrypt. Ten przykład robi płytkę 120 na 80 mm z zaokrąglonymi narożnikami i czterema otworami:

# Podstawka 120 x 80 mm z czterema otworami
grubosc = param("grubosc", 8)

plyta = sketch(plane.xy) {
  rect(center: [0, 0], width: 120, height: 80)
}
b = extrude(plyta, grubosc)
b = fillet(edges(b, dir: up), 8)

for i in range(0, 4) {
  b = hole(face(b, "top"), at: [-45 + i * 30, 0], diameter: 5)
}
name(b, "Podstawka")

param zapisuje grubość jako parametr projektu. Widać go w panelu Parametry, a po zmianie wartości cały model przelicza się sam. Krawędzie wybierasz opisem, a nie numerem: edges(b, dir: up) to krawędzie pionowe, więc wybór działa także po zmianie wymiarów. Liczby możesz pisać z jednostką, na przykład 12mm, 1in albo 30deg.

Co umie język

  • zmienne, warunki, pętle i własne funkcje;
  • ponad 140 funkcji: szkic z wiązaniami, napisy dowolnym z dołączonych fontów (w punkcie, w ramce albo po krzywej), proste bryły i koła zębate, wyciąganie, obrót, przeciąganie, wyciągnięcie złożone, zaokrąglenia, fazy, skorupa, otwory z gwintem, operacje logiczne, powielanie elementów w rzędach i po okręgu, powierzchnie, pomiary, materiały i zapis do pliku (STEP, STL, 3MF i inne);
  • podpowiedzi nazw i argumentów w edytorze, opis funkcji pod kursorem i błąd wskazany numerem linii;
  • Zapisz model jako skrypt: model, także wyklikany myszą, zamienia się w skrypt, który zapiszesz do pliku i uruchomisz w innym projekcie (czego język nie wyrazi, na przykład bryły siatkowe, zostaje opisane w komentarzu);
  • skrypty CadQuery: konsola rozpoznaje je sama i wykonuje własnym interpreterem, więc one też zostawiają w drzewie pełną historię. text() bierze font po nazwie (font="Arial" daje font o tych samych szerokościach znaków) albo z pliku (fontPath), a napis zostaje w szkicu tekstem, który poprawisz dwuklikiem.

Pełny opis składni i wszystkich funkcji jest w dokumentacji języka skryptowego.

Asystent

Druga karta konsoli to Asystent. Piszesz zwykłymi słowami, co ma powstać, na przykład „kostka 40x40x20 z otworem 8 mm na wylot”, i możesz dołączyć rysunek, zdjęcie albo PDF jako wzór. Asystent pisze skrypt w CadQuery i uruchamia go w otwartym projekcie. Potem ogląda model z sześciu kierunków, sprawdza wymiary i poprawia to, co nie wyszło, najwyżej pięć razy na jedno pytanie. Nieudane podejścia sprząta po sobie.

Wszystko, co zbuduje, leży w historii projektu, więc zmienisz to albo usuniesz tak samo jak własną pracę, a skrypt każdej próby możesz rozwinąć i przeczytać. Asystent zajmuje się wyłącznie budowaną częścią i nie odpowiada na pytania niezwiązane z modelem. Działa po zalogowaniu: każde konto dostaje bezpłatną pulę na miesiąc, a licznik na pasku aplikacji pokazuje, ile z niej zostało.

Na co uważać

  • Skrypt dopisuje operacje na końcu historii, więc uruchomiony dwa razy zbuduje model dwa razy. Zbędne kroki usuwasz z osi czasu albo z drzewa.
  • W skrypcie pion to oś Y: płaszczyzna plane.xy leży poziomo, a box([80, 20, 40]) ma 20 mm wysokości.
  • Język obejmuje modelowanie części. Złożenia, rzeźbienie, siatki i rozkład na arkuszu robisz myszą.
  • Nie każdy skrypt CadQuery przejdzie bez zmian, bo Foremka obsługuje najczęściej używane polecenia, a nie całego Pythona.