Język skryptowy Foremki: dokumentacja
Wszystko o języku, którym Foremka buduje modele z kodu: w konsoli skryptów i w odpowiedziach asystenta. Strona powstaje z tego samego katalogu funkcji co podpowiedzi w konsoli, więc zawsze opisuje aktualną wersję programu.
Skrypt buduje model tak samo, jak robi to interfejs: każda funkcja odpowiada jednej operacji z historii. Uruchomiony na pustym dokumencie odtwarza model od zera, uruchomiony na istniejącym dopisuje operacje na końcu historii.
Podstawy
# komentarz do końca linii
grubosc = 12 # zmienna
param("bok", 40) # parametr dokumentu, widoczny w panelu parametrów
b = box([80, 20, 40]) # wywołanie z argumentem pozycyjnym
fillet(edges(b), radius: 3) # argument nazwany po dwukropkuLiczby wolno pisać z jednostką: 12mm, 2.5cm, 1in, 30deg, 1.57rad.
Bez jednostki długość znaczy milimetry, a kąt stopnie. Wewnątrz skryptu wszystko
jest już przeliczone na milimetry i stopnie.
Punkt w szkicu zapisuje się jako [x, y], punkt i wektor w przestrzeni jako
[x, y, z]. Wektory dodaje się i mnoży przez liczbę: [10, 0, 0] * 2.
Układ świata
Pionem jest oś Y, a nie Z. Stała up to [0, 1, 0], down to
[0, -1, 0], a osie mają nazwy x_axis, y_axis, z_axis.
Płaszczyzny bazowe to plane.xy (leży poziomo, normalna w górę),
plane.yz i plane.xz (obie pionowe). Szkic na plane.xy wyciąga
się więc do góry, a box([80, 20, 40]) ma 20 milimetrów wysokości.
Sterowanie
if grubosc > 10 {
print("gruby")
} else {
print("cienki")
}
for i in range(0, 5) {
hole(face(b, "top"), at: [10 + i * 15, 20], diameter: 5)
}
def wysokosc_zebra(dlugosc) {
return dlugosc / 3
}Dostępne operatory: + - * / % ^, porównania < > <= >= == != oraz
and, or, not.
Trzy rzeczy, które warto wiedzieć
Bryły są wynikiem operacji.
b = extrude(sk, 10)daje bryłę, ab = fillet(edges(b), 2)zastępuje ją zaokrągloną. Stara zmienna też zadziała: odwołania nadążają za aktualną postacią bryły.Geometrię wybiera się opisem, nie numerem. Zamiast pamiętać, że chodzi o krawędź numer siedem, pisze się
edges(b, dir: up)albofaces(b, kind: "cylinder", diameter: 6). Taki zapis przeżywa zmianę wymiarów, numer nie przeżywa.Szkic ma własny układ współrzędnych.
[0, 0]to jego początek, także gdy leży on na ścianie bryły. Wyciągnięcie idzie prostopadle do szkicu.
Przykład
grubosc = param("grubosc", 12)
plyta = sketch(plane.xy) {
rect(center: [0, 0], width: 120, height: 80)
}
b = extrude(plyta, grubosc)
b = fillet(edges(b, dir: up), 8)
b = shell(b, 2, openings: faces(b, side: "top"))
for i in range(0, 4) {
b = hole(face(b, "bottom"), at: [-45 + i * 30, 0], diameter: 5, depth: 6)
}
name(b, "Podstawa")Funkcje
Parametry
param
Zapisuje parametr dokumentu i zwraca jego wartość. Wymiary zbudowane z tej wartości, także przeliczonej (w / 2 + 3), wiążą się z parametrem i przeliczają po jego zmianie w panelu parametrów: rozmiary i położenia prymitywów, odległości wyciągnięć, kąty obrotów, promienie zaokrągleń, grubości, wzory, wymiary szkicu oraz punkty linii, prostokątów, okręgów i łamanych.
| parametr | typ | opis |
|---|---|---|
name (wymagany) |
tekst | Nazwa parametru, bez spacji. |
value (wymagany) |
dowolny | Liczba albo wyrażenie w tekście, na przykład "grubosc * 2". |
unit |
tekst | Jednostka parametru. Wartości: "mm", "deg", "unitless". Domyślnie mm. |
Zwraca: liczba: wyliczona wartość parametru.
grubosc = param("grubosc", 12)
kat = param("pochylenie", 3, unit: "deg")
bok = param("bok", "grubosc * 4")Szkic
arc
Łuk przez trzy punkty: początek, koniec i punkt leżący na łuku.
| parametr | typ | opis |
|---|---|---|
p1 (wymagany) |
[x, y] | Początek łuku. |
p2 (wymagany) |
[x, y] | Koniec łuku. |
through (wymagany) |
[x, y] | Punkt na łuku. |
construction |
prawda/fałsz | Geometria konstrukcyjna: rysowana przerywaną linią, nie zamyka obszarów i nie bierze udziału w operacjach. |
Zwraca: encja szkicu.
arc([0, 0], [20, 0], [10, 6])arc_center
Łuk o zadanym środku, od punktu początkowego do końcowego, przeciwnie do ruchu wskazówek zegara.
| parametr | typ | opis |
|---|---|---|
center (wymagany) |
[x, y] | Środek łuku. |
start (wymagany) |
[x, y] | Punkt początkowy. |
end (wymagany) |
[x, y] | Punkt końcowy. |
large |
prawda/fałsz | Weź łuk dłuższy niż półokrąg. Łuk zawsze biegnie przeciwnie do ruchu wskazówek zegara, więc przy dłuższej stronie początek i koniec zamieniają się rolami. Domyślnie false. |
construction |
prawda/fałsz | Geometria konstrukcyjna: rysowana przerywaną linią, nie zamyka obszarów i nie bierze udziału w operacjach. |
Zwraca: encja szkicu.
center
Środek okręgu albo łuku.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
entity (wymagany) |
encja szkicu | Okrąg albo łuk. |
Zwraca: punkt szkicu.
chamfer_2d
Ścina narożnik między dwiema liniami szkicu.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
a (wymagany) |
encja szkicu | Pierwsza linia. |
b (wymagany) |
encja szkicu | Druga linia. |
size (wymagany) |
liczba | Odległość ścięcia od narożnika. |
Zwraca: nic.
circle
Okrąg o zadanym środku. Rozmiar podaje się promieniem albo średnicą.
| parametr | typ | opis |
|---|---|---|
center (wymagany) |
[x, y] | Środek okręgu. |
radius |
liczba | Promień. |
diameter |
liczba | Średnica. |
construction |
prawda/fałsz | Geometria konstrukcyjna: rysowana przerywaną linią, nie zamyka obszarów i nie bierze udziału w operacjach. |
Zwraca: encja szkicu.
circle([0, 0], diameter: 20)
circle([10, 10], 5)circle_2pt
Okrąg przez dwa punkty leżące na końcach średnicy.
| parametr | typ | opis |
|---|---|---|
p1 (wymagany) |
[x, y] | Pierwszy punkt. |
p2 (wymagany) |
[x, y] | Drugi punkt. |
construction |
prawda/fałsz | Geometria konstrukcyjna: rysowana przerywaną linią, nie zamyka obszarów i nie bierze udziału w operacjach. |
Zwraca: encja szkicu.
circle_3pt
Okrąg przechodzący przez trzy punkty.
| parametr | typ | opis |
|---|---|---|
p1 (wymagany) |
[x, y] | Pierwszy punkt. |
p2 (wymagany) |
[x, y] | Drugi punkt. |
p3 (wymagany) |
[x, y] | Trzeci punkt. |
construction |
prawda/fałsz | Geometria konstrukcyjna: rysowana przerywaną linią, nie zamyka obszarów i nie bierze udziału w operacjach. |
Zwraca: encja szkicu.
construction
Przełącza rysowanie na geometrię konstrukcyjną i z powrotem. Działa do końca bloku szkicu.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
on |
prawda/fałsz | Prawda włącza tryb konstrukcyjny. Domyślnie true. |
Zwraca: nic.
construction(true)
line([0,0], [50,0])
construction(false)end
Punkt końcowy linii, łuku albo krzywej.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
entity (wymagany) |
encja szkicu | Encja szkicu. |
Zwraca: punkt szkicu.
fillet_2d
Zaokrągla narożnik między dwiema encjami szkicu.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
a (wymagany) |
encja szkicu | Pierwsze ramię narożnika. |
b (wymagany) |
encja szkicu | Drugie ramię narożnika. |
radius (wymagany) |
liczba | Promień zaokrąglenia. |
Zwraca: nic.
intersect_curves
Wstawia krzywe i punkty powstałe z przecięcia wskazanej geometrii z płaszczyzną szkicu.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
target (wymagany) |
dowolny | Bryła, ściany, krawędzie, inny szkic, oś albo płaszczyzna przecinająca płaszczyznę szkicu. |
Zwraca: lista encji.
intersect_curves(b)
intersect_curves(faces(b, kind: "cylinder"))Ściana i bryła dają krzywe przekroju, krawędź i oś punkt przebicia, płaszczyzna linię wspólną. Geometria, która płaszczyzny szkicu nie dotyka, jest błędem, bo cichy brak wyniku ukryłby pomyłkę w skrypcie.
line
Odcinek między dwoma punktami szkicu.
| parametr | typ | opis |
|---|---|---|
p1 (wymagany) |
[x, y] | Punkt początkowy [x, y]. |
p2 (wymagany) |
[x, y] | Punkt końcowy [x, y]. |
construction |
prawda/fałsz | Geometria konstrukcyjna: rysowana przerywaną linią, nie zamyka obszarów i nie bierze udziału w operacjach. |
Zwraca: encja szkicu.
a = line([0, 0], [80, 0])mirror_curves
Odbija wskazane encje względem linii szkicu i wiąże kopie symetrią.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
entities (wymagany) |
encje szkicu | Encje do odbicia. |
line (wymagany) |
encja szkicu | Linia będąca osią odbicia. |
Zwraca: liczba: ile encji odbito.
offset_curves
Odsuwa wskazane krzywe o zadaną odległość, tworząc równoległy kontur.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
entities (wymagany) |
encje szkicu | Encje do odsunięcia. |
distance (wymagany) |
liczba | Odległość; dodatnia odsuwa na zewnątrz konturu. |
Zwraca: lista encji.
offset_curves(kontur, 3)pattern_rect
Wzór siatkowy w szkicu: kopie encji w rzędach i kolumnach.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
entities (wymagany) |
encje szkicu | Encje do powielenia. |
cols (wymagany) |
liczba | Liczba kolumn łącznie z oryginałem. |
rows |
liczba | Liczba rzędów łącznie z oryginałem. Domyślnie 1. |
dx |
liczba | Odstęp kolumn w milimetrach. Domyślnie 0. |
dy |
liczba | Odstęp rzędów w milimetrach. Domyślnie 0. |
Zwraca: nic.
pattern_rect(otwor, cols: 4, rows: 2, dx: 20, dy: 15)pattern_ring
Wzór kołowy w szkicu: kopie encji rozłożone wokół punktu.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
entities (wymagany) |
encje szkicu | Encje do powielenia. |
center (wymagany) |
[x, y] | Środek obrotu w układzie szkicu. |
count (wymagany) |
liczba | Liczba kopii łącznie z oryginałem. |
angle |
liczba | Rozpiętość kątowa w stopniach. Domyślnie 360. |
Zwraca: nic.
pattern_ring(otwor, [0, 0], count: 6)point
Samodzielny punkt szkicu. Nie tworzy obszaru, służy jako odniesienie dla wiązań i wzorów.
| parametr | typ | opis |
|---|---|---|
at (wymagany) |
[x, y] | Położenie punktu. |
construction |
prawda/fałsz | Geometria konstrukcyjna: rysowana przerywaną linią, nie zamyka obszarów i nie bierze udziału w operacjach. |
Zwraca: encja szkicu.
polygon
Wielokąt foremny wpisany w okrąg albo opisany na nim.
| parametr | typ | opis |
|---|---|---|
center (wymagany) |
[x, y] | Środek wielokąta. |
sides (wymagany) |
liczba | Liczba boków, co najmniej trzy. |
radius |
liczba | Promień okręgu odniesienia. |
diameter |
liczba | Średnica okręgu odniesienia. |
inscribed |
prawda/fałsz | Prawda wpisuje wielokąt w okrąg (wierzchołki na okręgu), fałsz opisuje go na okręgu (boki styczne). Domyślnie true. |
angle |
liczba | Obrót wielokąta w stopniach. Domyślnie 0. |
construction |
prawda/fałsz | Geometria konstrukcyjna: rysowana przerywaną linią, nie zamyka obszarów i nie bierze udziału w operacjach. |
Zwraca: lista encji.
polygon([0, 0], sides: 6, diameter: 20)polyline
Łamana przez kolejne punkty. Z opcją domknięcia daje zamknięty kontur.
| parametr | typ | opis |
|---|---|---|
points (wymagany) |
lista | Lista punktów [[x, y], ...]. |
closed |
prawda/fałsz | Domknij łamaną odcinkiem od końca do początku. Domyślnie false. |
construction |
prawda/fałsz | Geometria konstrukcyjna: rysowana przerywaną linią, nie zamyka obszarów i nie bierze udziału w operacjach. |
Zwraca: lista encji.
polyline([[0,0], [40,0], [40,20], [0,20]], closed: true)project
Rzutuje geometrię na płaszczyznę szkicu wzdłuż jej normalnej. Rzut jest powiązany ze źródłem.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
target (wymagany) |
dowolny | Krawędzie, ściany, bryła, inny szkic (cały, jego encja albo punkt), oś, płaszczyzna albo punkt [x, y, z]. |
Zwraca: lista encji.
project(faces(b, side: "top"))
project(edges(b, dir: up))
project(sk1)Rzut spłaszcza źródło wzdłuż normalnej szkicu, więc powstaje zawsze. Gdy potrzebny jest ślad geometrii dokładnie na płaszczyźnie, użyj intersect_curves.
rect
Prostokąt. Podaje się dwa przeciwległe narożniki albo środek z szerokością i wysokością.
| parametr | typ | opis |
|---|---|---|
p1 |
[x, y] | Pierwszy narożnik. |
p2 |
[x, y] | Narożnik przeciwległy. |
center |
[x, y] | Środek prostokąta. |
width |
liczba | Szerokość wzdłuż osi X szkicu. |
height |
liczba | Wysokość wzdłuż osi Y szkicu. |
construction |
prawda/fałsz | Geometria konstrukcyjna: rysowana przerywaną linią, nie zamyka obszarów i nie bierze udziału w operacjach. |
Zwraca: lista czterech encji.
rect([0, 0], [80, 40])
rect(center: [0, 0], width: 80, height: 40)rect_3pt
Prostokąt obrócony: dwa punkty wyznaczają bok, trzeci wysokość.
| parametr | typ | opis |
|---|---|---|
p1 (wymagany) |
[x, y] | Początek boku. |
p2 (wymagany) |
[x, y] | Koniec boku. |
p3 (wymagany) |
[x, y] | Punkt wyznaczający wysokość. |
construction |
prawda/fałsz | Geometria konstrukcyjna: rysowana przerywaną linią, nie zamyka obszarów i nie bierze udziału w operacjach. |
Zwraca: lista czterech encji.
sketch
Tworzy szkic na płaszczyźnie i wypełnia go geometrią z bloku albo z listy encji.
| parametr | typ | opis |
|---|---|---|
plane (wymagany) |
płaszczyzna | Płaszczyzna bazowa, konstrukcyjna albo płaska ściana bryły. |
entities |
lista | Lista encji, gdy nie używa się bloku. |
name |
tekst | Nazwa szkicu w drzewie. |
Zwraca: szkic.
sk = sketch(plane.xy) {
rect([0, 0], [80, 40])
circle([40, 20], diameter: 10)
}
sk = sketch(face(b, "top"), [circle([0, 0], diameter: 6)])Wiązania działają tylko w formie z blokiem, bo tylko tam encje mają nazwy.
spline
Krzywa swobodna przechodząca przez podane punkty.
| parametr | typ | opis |
|---|---|---|
points (wymagany) |
lista | Lista punktów [[x, y], ...], co najmniej dwa. |
closed |
prawda/fałsz | Domknij krzywą w pętlę. Domyślnie false. |
control |
prawda/fałsz | Prawda traktuje punkty jako bieguny, przez które krzywa nie przechodzi. Domyślnie false. |
construction |
prawda/fałsz | Geometria konstrukcyjna: rysowana przerywaną linią, nie zamyka obszarów i nie bierze udziału w operacjach. |
Zwraca: encja szkicu.
spline([[0,0], [20,15], [40,0]], closed: false)start
Punkt początkowy linii, łuku albo krzywej.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
entity (wymagany) |
encja szkicu | Encja szkicu. |
Zwraca: punkt szkicu.
text
Napis z fontu: w punkcie, w ramce z dwóch narożników albo wzdłuż krzywej szkicu. Litery są zamkniętymi konturami, więc napis się wyciąga i wycina jak każdy profil.
| parametr | typ | opis |
|---|---|---|
content (wymagany) |
tekst | Treść; kolejne wiersze rozdziela "\n". |
at |
[x, y] | Punkt, w którym stoi napis (według halign i valign), albo pierwszy narożnik ramki, gdy podano parametr to. Domyślnie [0, 0]. |
to |
[x, y] | Narożnik ramki przeciwległy do at; napis wyrównuje się w ramce. |
height |
liczba | Wysokość wielkich liter w milimetrach. Bez niej napis wypełnia ramkę albo zajmuje część krzywej, a w punkcie ma 5 mm. |
font |
tekst | Font po nazwie, na przykład "Roboto", "Liberation Serif", "Black Ops One"; "Arial", "Times New Roman" i "Courier New" dają fonty o tych samych szerokościach znaków. Domyślnie Liberation Sans. |
font_file |
tekst | Plik fontu TTF, OTF albo WOFF zamiast fontu po nazwie. |
bold |
prawda/fałsz | Pogrubienie, gdy font ma taką odmianę. Domyślnie false. |
italic |
prawda/fałsz | Kursywa; font bez odmiany pochyłej dostaje pochylenie 12°. Domyślnie false. |
halign |
tekst | Wyrównanie w poziomie. Wartości: "left", "center", "right". Domyślnie center. |
valign |
tekst | Wyrównanie w pionie (w punkcie i w ramce). Wartości: "top", "middle", "bottom". Domyślnie middle. |
angle |
liczba | Obrót napisu w stopniach wokół at. Domyślnie 0. |
spacing |
liczba | Odstęp znaków w procentach szerokości z fontu (0 jak w foncie, ujemny zagęszcza). Domyślnie 0. |
flip_h |
prawda/fałsz | Odbicie w poziomie (napis lustrzany, na przykład do stempla). Domyślnie false. |
flip_v |
prawda/fałsz | Odbicie w pionie. Domyślnie false. |
path |
encja szkicu | Krzywa szkicu (odcinek, łuk, okrąg, splajn), po której biegnie napis. |
side |
tekst | Napis nad krzywą (na okręgu na zewnątrz) albo pod nią. Wartości: "above", "below". Domyślnie above. |
fit |
prawda/fałsz | Rozłóż znaki na całej długości krzywej. Domyślnie false. |
Zwraca: encja szkicu.
text("FOREMKA", at: [0, 0], height: 8, font: "Roboto", bold: true)
text("Pokrywa\nrev. 2", [-30, -10], [30, 10], font: "Liberation Serif")
c = circle([0, 0], 20)
text("NA OKRĘGU", path: c, height: 4)Napis w ramce i na krzywej da się potem edytować w szkicu dwuklikiem, tak jak napis z narzędzia Tekst. Obszary liter wyciąga extrude(sk, ...); w szkicu z prostokątem wokół napisu litery są dziurami w płytce.
trim
Usuwa kawałek krzywej wskazany punktem, tnąc ją w miejscach przecięcia z innymi krzywymi.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
entity (wymagany) |
encja szkicu | Krzywa do przycięcia. |
at (wymagany) |
[x, y] | Punkt na kawałku, który ma zniknąć. |
Zwraca: nic.
Wiązania
angle
Wymiar kąta między dwiema liniami.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
a (wymagany) |
encja szkicu | Pierwsza linia. |
b (wymagany) |
encja szkicu | Druga linia. |
value (wymagany) |
liczba | Kąt w stopniach. |
Zwraca: nic.
circle_line_distance
Wymiar odległości obwodu okręgu od prostej. Wymiar do środka daje point_line_distance.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
circle (wymagany) |
encja szkicu | Okrąg albo łuk. |
line (wymagany) |
encja szkicu | Linia. |
value (wymagany) |
liczba | Odległość obwodu od prostej w milimetrach. |
Zwraca: nic.
coincident
Skleja dwa punkty szkicu w jeden. To najsilniejsze wiązanie: punkty przestają istnieć osobno.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
a (wymagany) |
punkt | Pierwszy punkt. |
b (wymagany) |
punkt | Drugi punkt. |
Zwraca: nic.
coincident(end(a), start(b))diameter
Wymiar średnicy okręgu.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
circle (wymagany) |
encja szkicu | Okrąg. |
value (wymagany) |
liczba | Średnica w milimetrach. |
Zwraca: nic.
distance
Wymiar odległości między dwoma punktami. Wpisana wartość steruje geometrią.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
a (wymagany) |
punkt | Pierwszy punkt. |
b (wymagany) |
punkt | Drugi punkt. |
value (wymagany) |
liczba | Odległość w milimetrach. |
Zwraca: nic.
distance(start(a), end(a), 80)equal
Wymusza równą długość dwóch linii albo równy promień dwóch okręgów.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
a (wymagany) |
encja szkicu | Pierwsza encja. |
b (wymagany) |
encja szkicu | Druga encja. |
Zwraca: nic.
equal(a, b)h_distance
Wymiar odległości poziomej między dwoma punktami.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
a (wymagany) |
punkt | Pierwszy punkt. |
b (wymagany) |
punkt | Drugi punkt. |
value (wymagany) |
liczba | Odległość w milimetrach. |
Zwraca: nic.
horizontal
Wymusza poziome ułożenie linii albo poziomą prostą przez dwa punkty. Poziom liczy się w układzie szkicu.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
a (wymagany) |
dowolny | Linia albo pierwszy punkt. |
b |
punkt | Drugi punkt, gdy pierwszym argumentem był punkt. |
Zwraca: nic.
horizontal(a)
horizontal(center(c1), center(c2))midpoint
Wymusza, żeby punkt leżał w połowie odległości między dwoma innymi.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
mid (wymagany) |
punkt | Punkt środkowy. |
a (wymagany) |
punkt | Pierwszy punkt skrajny. |
b (wymagany) |
punkt | Drugi punkt skrajny. |
Zwraca: nic.
parallel
Wymusza równoległość dwóch linii.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
a (wymagany) |
encja szkicu | Pierwsza encja. |
b (wymagany) |
encja szkicu | Druga encja. |
Zwraca: nic.
parallel(a, b)perpendicular
Wymusza prostopadłość dwóch linii.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
a (wymagany) |
encja szkicu | Pierwsza encja. |
b (wymagany) |
encja szkicu | Druga encja. |
Zwraca: nic.
perpendicular(a, b)point_line_distance
Wymiar odległości punktu od prostej.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
point (wymagany) |
punkt | Punkt. |
line (wymagany) |
encja szkicu | Linia. |
value (wymagany) |
liczba | Odległość w milimetrach. |
Zwraca: nic.
point_on
Wymusza, żeby punkt leżał na linii albo na okręgu.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
point (wymagany) |
punkt | Punkt. |
curve (wymagany) |
encja szkicu | Linia albo okrąg. |
Zwraca: nic.
radius
Wymiar promienia okręgu albo łuku.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
circle (wymagany) |
encja szkicu | Okrąg albo łuk. |
value (wymagany) |
liczba | Promień w milimetrach. |
Zwraca: nic.
symmetric
Wymusza symetrię dwóch punktów względem linii.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
a (wymagany) |
punkt | Pierwszy punkt. |
b (wymagany) |
punkt | Drugi punkt. |
line (wymagany) |
encja szkicu | Oś symetrii. |
Zwraca: nic.
tangent
Wymusza styczność linii do okręgu albo dwóch okręgów do siebie.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
a (wymagany) |
encja szkicu | Pierwsza encja. |
b (wymagany) |
encja szkicu | Druga encja. |
Zwraca: nic.
tangent(l, c)v_distance
Wymiar odległości pionowej między dwoma punktami.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
a (wymagany) |
punkt | Pierwszy punkt. |
b (wymagany) |
punkt | Drugi punkt. |
value (wymagany) |
liczba | Odległość w milimetrach. |
Zwraca: nic.
vertical
Wymusza pionowe ułożenie linii albo pionową prostą przez dwa punkty.
Działa tylko wewnątrz bloku szkicu.
| parametr | typ | opis |
|---|---|---|
a (wymagany) |
dowolny | Linia albo pierwszy punkt. |
b |
punkt | Drugi punkt, gdy pierwszym argumentem był punkt. |
Zwraca: nic.
Wybór
axis
Oś podana punktem i kierunkiem. Do obrotu i wzoru kołowego.
| parametr | typ | opis |
|---|---|---|
origin (wymagany) |
[x, y, z] | Punkt na osi. |
direction (wymagany) |
[x, y, z] | Kierunek osi. |
Zwraca: oś.
revolve(sk, axis([0,0,0], up), 360)axis_of
Oś wyprowadzona z geometrii: z krawędzi prostej jej kierunek, z okrągłej albo ze ściany walcowej oś obrotu.
| parametr | typ | opis |
|---|---|---|
geometry (wymagany) |
dowolny | Krawędź albo ściana. |
Zwraca: oś.
pattern_circular(b, axis_of(face(b, kind: "cylinder")), count: 6)bodies
Lista wszystkich widocznych brył dokumentu.
Zwraca: lista brył.
for b in bodies() { print(b.name) }body
Bryła po nazwie z drzewa. Bez argumentu daje ostatnio utworzoną.
| parametr | typ | opis |
|---|---|---|
name |
tekst | Nazwa bryły, na przykład "Bryła 1". |
Zwraca: bryła.
b = body("Bryła 1")edges
Krawędzie bryły spełniające wszystkie podane warunki. Bez warunków daje wszystkie krawędzie.
| parametr | typ | opis |
|---|---|---|
body (wymagany) |
bryła | Bryła. |
kind |
tekst | Rodzaj krawędzi. Wartości: "line", "circle", "arc", "curve". |
dir |
[x, y, z] | Kierunek; zostają krawędzie proste równoległe do niego. |
perpendicular |
[x, y, z] | Kierunek; zostają krawędzie do niego prostopadłe. |
length |
liczba | Dokładna długość w milimetrach. |
min_length |
liczba | Najmniejsza długość. |
max_length |
liczba | Największa długość. |
radius |
liczba | Promień okręgu albo łuku. |
diameter |
liczba | Średnica okręgu albo łuku. |
near |
[x, y, z] | Punkt w przestrzeni; zostają elementy leżące blisko niego. |
within |
liczba | Promień wyszukiwania dla „near”, w milimetrach. Domyślnie 1. |
index |
dowolny | Numer albo lista numerów w BREP. Zapis kruchy, przeżywa tylko do najbliższej zmiany modelu. |
where |
funkcja | Własny warunek: funkcja biorąca cechy elementu i zwracająca prawdę albo fałsz. |
sort |
tekst | Porządek wyniku, na przykład "z" albo "-area". Minus odwraca. |
limit |
liczba | Zostaw najwyżej tyle elementów. |
Zwraca: zbiór krawędzi.
fillet(edges(b, dir: up), radius: 3)
chamfer(edges(b, kind: "circle", diameter: 6), 0.5)
edges(b, where: def(e) { return e.length > 20 and e.mid.z > 0 })Krawędzie styczne, szwy i zdegenerowane są pomijane, tak jak przy zaznaczaniu myszą.
face
Jedna ściana. Skrót na faces(...) z wymogiem, żeby wynik był dokładnie jeden; przy większej liczbie skrypt się zatrzymuje, zamiast po cichu wybrać pierwszą lepszą.
| parametr | typ | opis |
|---|---|---|
body (wymagany) |
bryła | Bryła. |
side |
tekst | Strona bryły. Wartości: "top", "bottom", "front", "back", "left", "right". |
kind |
tekst | Rodzaj powierzchni. Wartości: "plane", "cylinder", "cone", "sphere", "torus", "spline", "surface". |
normal |
[x, y, z] | Kierunek normalnej. |
diameter |
liczba | Średnica walca albo kuli. |
internal |
prawda/fałsz | Prawda wybiera ściany otworów. |
near |
[x, y, z] | Punkt w przestrzeni; zostają elementy leżące blisko niego. |
within |
liczba | Promień wyszukiwania dla „near”, w milimetrach. Domyślnie 1. |
index |
dowolny | Numer albo lista numerów w BREP. Zapis kruchy, przeżywa tylko do najbliższej zmiany modelu. |
where |
funkcja | Własny warunek: funkcja biorąca cechy elementu i zwracająca prawdę albo fałsz. |
sort |
tekst | Porządek wyniku, na przykład "z" albo "-area". Minus odwraca. |
limit |
liczba | Zostaw najwyżej tyle elementów. |
Zwraca: zbiór ścian z jedną ścianą.
sk = sketch(face(b, "top"))
hole(face(b, "top"), at: [10, 10], diameter: 5)faces
Ściany bryły spełniające wszystkie podane warunki.
| parametr | typ | opis |
|---|---|---|
body (wymagany) |
bryła | Bryła. |
kind |
tekst | Rodzaj powierzchni. Wartości: "plane", "cylinder", "cone", "sphere", "torus", "spline", "surface". |
normal |
[x, y, z] | Kierunek normalnej; zostają ściany zwrócone w tę stronę. |
side |
tekst | Skrajna ściana z danej strony bryły. Wartości: "top", "bottom", "front", "back", "left", "right". |
area |
liczba | Dokładne pole w milimetrach kwadratowych. |
min_area |
liczba | Najmniejsze pole. |
max_area |
liczba | Największe pole. |
radius |
liczba | Promień walca, stożka albo kuli. |
diameter |
liczba | Średnica walca albo kuli. |
internal |
prawda/fałsz | Prawda wybiera ściany otworów, fałsz powierzchnie zewnętrzne. |
near |
[x, y, z] | Punkt w przestrzeni; zostają elementy leżące blisko niego. |
within |
liczba | Promień wyszukiwania dla „near”, w milimetrach. Domyślnie 1. |
index |
dowolny | Numer albo lista numerów w BREP. Zapis kruchy, przeżywa tylko do najbliższej zmiany modelu. |
where |
funkcja | Własny warunek: funkcja biorąca cechy elementu i zwracająca prawdę albo fałsz. |
sort |
tekst | Porządek wyniku, na przykład "z" albo "-area". Minus odwraca. |
limit |
liczba | Zostaw najwyżej tyle elementów. |
Zwraca: zbiór ścian.
shell(b, 2, openings: faces(b, side: "top"))
faces(b, kind: "cylinder", diameter: 6, internal: true)
faces(b, normal: up, min_area: 100)find_sketch
Szkic po nazwie z drzewa. Bez argumentu daje ostatnio utworzony.
| parametr | typ | opis |
|---|---|---|
name |
tekst | Nazwa szkicu, na przykład "Sketch1". |
Zwraca: szkic.
sk = find_sketch("Sketch1")
b = extrude(find_sketch(), 10)Odpowiednik „body” dla szkiców: pozwala sięgnąć po szkic z wcześniejszego uruchomienia skryptu, gdzie zmienna z nim już nie istnieje.
plane_from
Płaszczyzna podana punktem i normalną.
| parametr | typ | opis |
|---|---|---|
origin (wymagany) |
[x, y, z] | Punkt na płaszczyźnie. |
normal (wymagany) |
[x, y, z] | Normalna płaszczyzny. |
Zwraca: płaszczyzna.
mirror(b, plane_from([0,0,0], x_axis))profile
Obszary szkicu do wyciągnięcia albo obrotu. Bez dodatkowych warunków bierze wszystkie zamknięte obszary szkicu.
| parametr | typ | opis |
|---|---|---|
sketch (wymagany) |
szkic | Szkic. |
near |
[x, y] | Punkt w układzie szkicu; zostaje obszar, w którym ten punkt leży. |
index |
dowolny | Numer albo lista numerów obszarów, licząc od zera. |
min_area |
liczba | Najmniejsze pole obszaru. |
max_area |
liczba | Największe pole obszaru. |
Zwraca: profil.
extrude(profile(sk, index: 0), 10)Zwykle wystarczy podać sam szkic: extrude(sk, 10) bierze wszystkie jego obszary.
sketches
Lista wszystkich szkiców dokumentu.
Zwraca: lista szkiców.
print(count(sketches()))Prymitywy
box
Prostopadłościan o zadanych wymiarach.
| parametr | typ | opis |
|---|---|---|
size (wymagany) |
[x, y, z] | Wymiary [x, y, z] w milimetrach. |
at |
[x, y, z] | Narożnik początkowy. Domyślnie [0, 0, 0]. |
Zwraca: bryła.
b = box([80, 40, 20])cylinder
Walec o osi pionowej.
| parametr | typ | opis |
|---|---|---|
radius |
liczba | Promień. |
height (wymagany) |
liczba | Wysokość. |
diameter |
liczba | Średnica, zamiast promienia. |
at |
[x, y, z] | Środek podstawy. Domyślnie [0, 0, 0]. |
Zwraca: bryła.
b = cylinder(diameter: 30, height: 50)gear_rack
Zębatka (listwa zębata) o zębach prostych, do pary z kołem spur_gear o tym samym module i kącie przyporu. Leży na płaszczyźnie poziomej: listwa biegnie wzdłuż +X, zęby patrzą w -Z, szerokość rośnie w górę.
| parametr | typ | opis |
|---|---|---|
teeth (wymagany) |
liczba | Liczba zębów, od 1 do 1000; długość listwy to teeth * pi * moduł. |
module |
liczba | Moduł w mm: podziałka zębów przez pi. |
diametral_pitch |
liczba | Podziałka średnicowa (zęby na cal) zamiast modułu, dla zębatki calowej. |
thickness |
liczba | Szerokość listwy (w górę, wzdłuż osi koła). Domyślnie 10. |
height |
liczba | Wysokość od spodu do linii podziałowej; brak = 2,5 modułu + 10 mm. |
pressure_angle |
liczba | Kąt przyporu w stopniach, zwykle 20 (bywa 14.5 albo 25). Domyślnie 20. |
backlash |
liczba | Luz międzyzębny pary po linii podziałowej; zębatka oddaje połowę. Domyślnie 0. |
fillet |
liczba | Promień zaokrąglenia u stopy zęba; brak = 0.375 modułu. |
at |
[x, y, z] | Początek linii podziałowej na spodniej ścianie. Domyślnie [0, 0, 0]. |
Zwraca: bryła.
r = gear_rack(24, 2, thickness: 10, at: [-75.4, 0, 20])
p = spur_gear(20, 2, thickness: 10, hole: 8)Koło o promieniu podziałowym r zazębia się z listwą, gdy jego środek leży r od linii podziałowej po stronie zębów: listwa z at: [x, 0, r] pasuje do koła w początku układu. Ząb numer k ma oś w x + (k + 1/2) * pi * moduł, więc oba końce listwy wypadają w połowie wrębu. Obrót koła o kąt a (w radianach) przesuwa listwę o a * r.
sphere
Kula.
| parametr | typ | opis |
|---|---|---|
radius |
liczba | Promień. |
diameter |
liczba | Średnica, zamiast promienia. |
at |
[x, y, z] | Środek kuli. Domyślnie [0, 0, 0]. |
Zwraca: bryła.
spur_gear
Koło zębate walcowe o zębach prostych, z zarysem ewolwentowym (zarys odniesienia ISO 53). Leży na płaszczyźnie poziomej z osią pionową, ząb numer 0 patrzy w +X.
| parametr | typ | opis |
|---|---|---|
teeth (wymagany) |
liczba | Liczba zębów, od 3 do 300. |
module |
liczba | Moduł w mm: średnica podziałowa przez liczbę zębów. |
diametral_pitch |
liczba | Podziałka średnicowa (zęby na cal średnicy podziałowej) zamiast modułu, dla koła calowego. |
thickness |
liczba | Grubość koła. Domyślnie 10. |
pressure_angle |
liczba | Kąt przyporu w stopniach, zwykle 20 (bywa 14.5 albo 25). Domyślnie 20. |
backlash |
liczba | Luz międzyzębny pary kół po okręgu podziałowym; każde koło oddaje połowę. Domyślnie 0. |
fillet |
liczba | Promień zaokrąglenia u stopy zęba; brak = 0.375 modułu. Za duży zmniejsza się do takiego, który mieści się we wrębie. |
hole |
liczba | Średnica otworu na wałek; 0 = bez otworu. Domyślnie 0. |
at |
[x, y, z] | Środek dolnej podstawy. Domyślnie [0, 0, 0]. |
Zwraca: bryła.
g = spur_gear(24, 2, thickness: 8, hole: 8)
p = spur_gear(13, 2, thickness: 8, at: [37, 0, 0])Para kół zazębia się przy odległości osi moduł * (z1 + z2) / 2. Koło stojące w +X od drugiego ma naprzeciw wrąb, gdy liczba jego zębów jest nieparzysta; przy parzystej obróć je o pół podziałki: move(p, rotate: 180 / z, axis: up) przed przesunięciem na miejsce. Przy mniej niż 17 zębach (kąt 20°) zęby nie mają podcięcia, więc mała zębatka styka się z dużym kołem także pod okręgiem zasadniczym.
torus
Torus o osi pionowej.
| parametr | typ | opis |
|---|---|---|
radius (wymagany) |
liczba | Promień większy, od osi do środka przekroju. |
tube (wymagany) |
liczba | Promień przekroju. |
at |
[x, y, z] | Środek torusa. Domyślnie [0, 0, 0]. |
Zwraca: bryła.
Bryły
emboss
Wytłacza albo wgłębia profil szkicu na ścianie bryły, także zakrzywionej (napis albo logo na walcu).
| parametr | typ | opis |
|---|---|---|
face (wymagany) |
dowolny | Ściana, na której leży profil (ze zbioru ścian liczy się pierwsza) albo bryła razem z punktem "at". |
profile (wymagany) |
profil | Szkic albo jego obszary. |
depth (wymagany) |
liczba | Głębokość. |
deboss |
prawda/fałsz | Wgłębienie w ścianę zamiast wytłoczenia nad nią. Domyślnie false. |
wrap |
prawda/fałsz | Owinięcie po powierzchni bez rozciągania; fałsz rzutuje profil wzdłuż normalnej szkicu. Domyślnie true. |
offset_x |
liczba | Przesunięcie wzdłuż osi X szkicu, przy owinięciu po powierzchni. Domyślnie 0. |
offset_y |
liczba | Przesunięcie wzdłuż osi Y szkicu. Domyślnie 0. |
angle |
liczba | Obrót profilu wokół jego środka, w stopniach. Domyślnie 0. |
at |
[x, y, z] | Punkt leżący na ścianie, gdy zamiast ściany podana jest bryła; wskazuje ścianę najbliższą. |
Zwraca: bryła.
emboss(face(walec, kind: "cylinder"), napis, 1)
emboss(walec, napis, 1, at: [0, 20, 20])
emboss(face(b, "top"), logo, 0.5, deboss: true)Punktem odniesienia jest środek profilu rzucony wzdłuż normalnej szkicu na ścianę, więc szkic rysuje się na płaszczyźnie zwróconej do ściany (dla walca: przez jego oś albo stycznej).
extrude
Wyciąga profil prostopadle do jego płaszczyzny. Profilem jest szkic, jego wybrane obszary albo ściana bryły (wtedy działa jak wyciąganie ściany).
| parametr | typ | opis |
|---|---|---|
profile (wymagany) |
profil | Szkic, obszary szkicu albo ściana. |
distance (wymagany) |
liczba | Długość wyciągnięcia; ujemna wyciąga w drugą stronę. |
direction |
tekst | "one" wyciąga w jedną stronę, "symmetric" po połowie w obie, "two" osobno w każdą. Wartości: "one", "symmetric", "two". Domyślnie one. |
distance2 |
liczba | Druga długość przy direction: "two". |
op |
tekst | Co zrobić z bryłami docelowymi: "new" tworzy osobną bryłę, "join" dokłada materiał, "cut" go odbiera, "intersect" zostawia część wspólną. Wartości: "new", "join", "cut", "intersect", "auto". Domyślnie new. |
target |
bryła lub lista brył | Bryła albo bryły, na których wykonuje się operacja logiczna. Wymagane dla "join", "cut" i "intersect". |
to |
płaszczyzna | Zamiast długości: płaszczyzna albo ściana, na której wyciągnięcie ma się skończyć. |
offset |
liczba | Odsunięcie od obiektu docelowego. Domyślnie 0. |
through_all |
prawda/fałsz | Zamiast długości: przez całe bryły docelowe, w stronę znaku odległości albo w obie przy direction: "symmetric". Tylko z op: "cut" albo "intersect". Domyślnie false. |
solid |
prawda/fałsz | Fałsz daje powierzchnię zamiast bryły; profil może być wtedy otwarty. Domyślnie true. |
Zwraca: bryła albo lista brył.
b = extrude(sk, 20)
extrude(sk, -10, op: "cut", target: b)
extrude(sk, -1, op: "cut", target: b, through_all: true)
extrude(face(b, "top"), 5, op: "join", target: b)
extrude(sk, 0, to: face(other, "bottom"), offset: 1)Wyciągnięcie ze szkicu założonego na ścianie bryły domyślnie dokłada albo odbiera materiał, zależnie od znaku odległości.
loft
Rozpina bryłę między profilami z różnych płaszczyzn, w podanej kolejności.
| parametr | typ | opis |
|---|---|---|
profiles (wymagany) |
lista | Lista profili, co najmniej dwa. |
closed |
prawda/fałsz | Zamknij w pętlę: ostatni profil łączy się z pierwszym. Domyślnie false. |
ruled |
prawda/fałsz | Prawda łączy profile odcinkami prostymi zamiast gładko. Domyślnie false. |
solid |
prawda/fałsz | Fałsz daje powierzchnię. Domyślnie true. |
twist |
liczba | Skręt: przekroje między profilami obracają się wokół własnego środka, łącznie o tyle stopni od pierwszego do ostatniego profilu. Nie łączy się z closed. Domyślnie 0. |
op |
tekst | Co zrobić z bryłami docelowymi: "new" tworzy osobną bryłę, "join" dokłada materiał, "cut" go odbiera, "intersect" zostawia część wspólną. Wartości: "new", "join", "cut", "intersect", "auto". Domyślnie new. |
target |
bryła lub lista brył | Bryła albo bryły, na których wykonuje się operacja logiczna. Wymagane dla "join", "cut" i "intersect". |
Zwraca: bryła albo lista brył.
b = loft([dol, srodek, gora])
b = loft([dol, gora], twist: 90)pipe
Rura o przekroju kołowym wzdłuż ścieżki ze szkicu.
| parametr | typ | opis |
|---|---|---|
path (wymagany) |
szkic | Szkic ze ścieżką. |
diameter |
liczba | Średnica rury. |
radius |
liczba | Promień, zamiast średnicy. |
Zwraca: bryła.
b = pipe(sciezka, diameter: 12)project_to_surface
Kładzie krzywe szkicu na ścianach bryły, także zakrzywionych. Wynikiem jest bryła z samych krzywych, na przykład linia podziału ściany.
| parametr | typ | opis |
|---|---|---|
faces (wymagany) |
dowolny | Ściany jednej bryły albo bryła razem z punktami "at". |
curves (wymagany) |
profil | Szkic, jego obszary (obrysy, także liter napisu) albo wybrane krzywe. Szkic bez obszarów daje swoje otwarte krzywe. |
mode |
tekst | "vector" rzutuje wzdłuż normalnej szkicu, "closest" do najbliższego punktu ściany. Wartości: "vector", "closest". Domyślnie vector. |
at |
dowolny | Punkt albo lista punktów leżących na ścianach, gdy zamiast ścian podana jest bryła. |
Zwraca: bryła krzywych.
k = project_to_surface(face(walec, kind: "cylinder"), napis)
split_face(face(walec, kind: "cylinder"), k)Krzywe nie dokładają materiału. Służą jako narzędzie podziału ściany albo odniesienie; materiał na ścianie daje emboss.
revolve
Obraca profil wokół osi.
| parametr | typ | opis |
|---|---|---|
profile (wymagany) |
profil | Szkic albo jego obszary. |
axis (wymagany) |
oś | Oś obrotu: oś, krawędź albo kierunek. |
angle |
liczba | Kąt obrotu w stopniach; 360 daje pełną bryłę obrotową. Domyślnie 360. |
start_angle |
liczba | Obrót profilu przed rozpoczęciem, w stopniach. Domyślnie 0. |
pitch |
liczba | Skok: podany robi gwint z profilu, czyli obrót śrubowy, w którym profil przesuwa się wzdłuż osi o tyle na każdy obrót. Kąt jest wtedy pomijany. |
length |
liczba | Długość gwintu z profilu wzdłuż osi; ujemna idzie w przeciwną stronę. Wymagana razem z pitch. |
left_hand |
prawda/fałsz | Gwint z profilu lewoskrętny. Domyślnie false. |
trim |
prawda/fałsz | Gwint z profilu z op: "join": ząb przycięty równo z czołami bryły docelowej; fałsz zostawia go wystającego poza nią. Domyślnie true. |
solid |
prawda/fałsz | Fałsz daje powierzchnię obrotową z krzywych szkicu; profil może być wtedy otwarty. Domyślnie true. |
op |
tekst | Co zrobić z bryłami docelowymi: "new" tworzy osobną bryłę, "join" dokłada materiał, "cut" go odbiera, "intersect" zostawia część wspólną. Wartości: "new", "join", "cut", "intersect", "auto". Domyślnie new. |
target |
bryła lub lista brył | Bryła albo bryły, na których wykonuje się operacja logiczna. Wymagane dla "join", "cut" i "intersect". |
Zwraca: bryła albo lista brył.
b = revolve(sk, axis([0,0,0], up), 360)
gwint = revolve(trapez, axis([0,0,0], up), pitch: 4, length: 30, op: "join", target: pret)
czasza = revolve(luk, axis([0,0,0], up), 360, solid: false)rib
Żebro z otwartego profilu: rośnie do bryły i kończy się tam, gdzie do niej dolega.
| parametr | typ | opis |
|---|---|---|
body (wymagany) |
bryła | Bryła, do której dokleja się żebro. |
profile (wymagany) |
szkic | Szkic z otwartym profilem żebra. |
thickness (wymagany) |
liczba | Grubość żebra. |
direction |
[x, y, z] | Kierunek, w którym profil rośnie. Bez tego liczony z geometrii. |
Zwraca: bryła.
sweep
Przeciąga profil wzdłuż ścieżki z innego szkicu.
| parametr | typ | opis |
|---|---|---|
profile (wymagany) |
profil | Szkic profilu albo jego obszar. |
path (wymagany) |
szkic | Szkic ze ścieżką. |
solid |
prawda/fałsz | Fałsz daje powierzchnię z otwartego profilu. Domyślnie true. |
frenet |
prawda/fałsz | Profil obraca się razem ze skrętem ścieżki (tryb Frenet); potrzebne na helisie, inaczej profil wychodzi z płaszczyzny osi. Domyślnie false. |
rail |
szkic | Szkic z prowadnicą: jej odległość od ścieżki skaluje profil, a kierunek do niej obraca go wokół ścieżki. |
scale |
tekst | Jak prowadnica zmienia profil: "scale" skaluje jednolicie, "stretch" rozciąga tylko w jej stronę, "none" tylko obraca. Wartości: "scale", "stretch", "none". Domyślnie scale. |
twist |
liczba | Obrót profilu wokół ścieżki na całej jej długości, w stopniach. Domyślnie 0. |
spin |
liczba | Obrót profilu wokół jego własnego środka na całej długości ścieżki, w stopniach. Domyślnie 0. |
orientation |
tekst | "perpendicular" trzyma profil prostopadle do ścieżki, "parallel" przesuwa go bez obracania. Wartości: "perpendicular", "parallel". Domyślnie perpendicular. |
Zwraca: bryła albo lista brył.
b = sweep(profil, sciezka)
filar = sweep(kwadrat, os, rail: sylwetka, twist: 120, spin: 180)web
Ścianka z otwartego profilu: w odróżnieniu od żebra wchodzi w bryłę na całej długości.
| parametr | typ | opis |
|---|---|---|
body (wymagany) |
bryła | Bryła. |
profile (wymagany) |
szkic | Szkic z profilem ścianki. |
thickness (wymagany) |
liczba | Grubość ścianki. |
direction |
[x, y, z] | Kierunek, w którym profil rośnie. |
Zwraca: bryła.
Modyfikacje
chamfer
Ścina wskazane krawędzie.
| parametr | typ | opis |
|---|---|---|
edges (wymagany) |
krawędzie | Krawędzie do ścięcia. |
distance (wymagany) |
liczba | Odległość ścięcia. |
distance2 |
liczba | Druga odległość; podana daje ścięcie niesymetryczne. |
Zwraca: bryła.
b = chamfer(edges(b, kind: "circle", diameter: 8), 0.5)copy
Kopia bryły w tym samym miejscu. Oryginał zostaje.
| parametr | typ | opis |
|---|---|---|
body (wymagany) |
bryła | Bryła do skopiowania. |
Zwraca: bryła.
druga = move(copy(b), [40, 0, 0])draft
Pochyla wskazane ściany względem kierunku wyciągania. Do form odlewniczych i wtryskowych.
| parametr | typ | opis |
|---|---|---|
faces (wymagany) |
ściany | Ściany do pochylenia. |
angle (wymagany) |
liczba | Kąt pochylenia w stopniach; ujemny odwraca zbieżność. |
neutral (wymagany) |
płaszczyzna | Płaszczyzna neutralna: przekrój, którego wymiar się nie zmienia. |
pull |
[x, y, z] | Kierunek wyciągania. Bez tego brany z normalnej płaszczyzny neutralnej. |
Zwraca: bryła.
b = draft(faces(b, kind: "plane", normal: x_axis), 3, neutral: face(b, "bottom"))fillet
Zaokrągla wskazane krawędzie.
| parametr | typ | opis |
|---|---|---|
edges (wymagany) |
krawędzie | Krawędzie do zaokrąglenia. |
radius (wymagany) |
liczba | Promień zaokrąglenia. |
radius2 |
liczba | Drugi promień: przy trybie "variable" promień na końcu krawędzi, przy "elliptic" zasięg na drugiej ścianie. |
mode |
tekst | Znaczenie drugiego promienia. Wartości: "variable", "elliptic". Domyślnie variable. |
Zwraca: bryła.
b = fillet(edges(b, dir: up), 3)
fillet(edges(b, kind: "circle"), radius: 1)Zaokrąglenie zastępuje bryłę źródłową, tak jak przy pracy myszą. Gdy promień jest za duży dla geometrii, operacja nie powstaje i skrypt zgłasza błąd.
hole
Wierci otwór w ścianie bryły: prosty, z pogłębieniem walcowym albo stożkowym, z opcjonalnym gwintem.
| parametr | typ | opis |
|---|---|---|
face (wymagany) |
ściany | Ściana, w której zaczyna się otwór. |
at (wymagany) |
dowolny | Środek otworu: punkt [x, y] w układzie tej ściany albo punkt [x, y, z] w przestrzeni. |
diameter |
liczba | Średnica otworu. |
depth |
liczba | Głębokość; bez niej otwór idzie na wylot. |
type |
tekst | Rodzaj otworu. Wartości: "simple", "counterbore", "countersink". Domyślnie simple. |
drill_point |
prawda/fałsz | Stożek wiertła na dnie otworu nieprzelotowego. Domyślnie false. |
cb_diameter |
liczba | Średnica pogłębienia walcowego. |
cb_depth |
liczba | Głębokość pogłębienia walcowego. |
cs_diameter |
liczba | Średnica wejścia pogłębienia stożkowego. |
cs_angle |
liczba | Kąt stożka w stopniach. Domyślnie 90. |
thread |
tekst | Oznaczenie gwintu, na przykład "M6". Średnica otworu bierze się wtedy z normy. |
thread_length |
liczba | Długość gwintu od wejścia; bez tego gwint na całej głębokości. |
Zwraca: bryła.
b = hole(face(b, "top"), at: [10, 10], diameter: 6, depth: 12)
b = hole(face(b, "top"), at: [0, 0], thread: "M8")
b = hole(face(b, "top"), at: [20, 0], diameter: 5, type: "countersink", cs_diameter: 10)move
Przesuwa i obraca bryłę.
| parametr | typ | opis |
|---|---|---|
body (wymagany) |
bryła | Bryła. |
by |
[x, y, z] | Przesunięcie [x, y, z]. Domyślnie [0, 0, 0]. |
rotate |
liczba | Kąt obrotu w stopniach. |
axis |
oś | Oś obrotu. |
around |
[x, y, z] | Punkt, wokół którego następuje obrót. Bez tego środek osi. |
Zwraca: bryła.
move(b, [0, 0, 25])
move(b, rotate: 45, axis: up)offset_body
Odsuwa wszystkie ściany bryły naraz, razem z zaokrągleniami i otworami. Ujemna odległość zmniejsza bryłę i powiększa otwory: kompensacja rozlewania się druku 3D.
| parametr | typ | opis |
|---|---|---|
body (wymagany) |
bryła | Bryła do odsunięcia. |
distance (wymagany) |
liczba | Odsunięcie; dodatnie powiększa bryłę, ujemne ją zmniejsza. |
corners |
tekst | Narożniki, w których odsunięte ściany się rozchodzą: "sharp" przedłuża ściany do przecięcia, "round" zaokrągla je promieniem równym odsunięciu. Wartości: "sharp", "round". Domyślnie sharp. |
Zwraca: bryła.
b = offset_body(b, -0.1)
b = offset_body(b, 0.5, corners: "round")scale
Skaluje bryłę; osobne współczynniki dla osi dają skalowanie nierównomierne.
| parametr | typ | opis |
|---|---|---|
body (wymagany) |
bryła | Bryła. |
factor (wymagany) |
dowolny | Współczynnik: jedna liczba albo [sx, sy, sz]. |
center |
[x, y, z] | Punkt nieruchomy. Domyślnie [0, 0, 0]. |
Zwraca: bryła.
scale(b, 2)
scale(b, [2, 1, 1])shell
Wydrąża bryłę, zostawiając ściankę o zadanej grubości. Wskazane ściany są usuwane i tworzą otwarcia; bez nich skorupa jest zamknięta, z pustką w środku.
| parametr | typ | opis |
|---|---|---|
body (wymagany) |
bryła | Bryła do wydrążenia. |
thickness (wymagany) |
liczba | Grubość ścianki. |
openings |
ściany | Ściany do usunięcia. Bez nich skorupa zostaje zamknięta. |
corners |
tekst | Narożniki wewnętrzne: "round" zaokrągla je promieniem równym grubości, "sharp" przedłuża ściany do przecięcia. Wartości: "round", "sharp". Domyślnie round. |
Zwraca: bryła.
b = shell(b, 2, openings: faces(b, side: "top"))
b = shell(b, 2)thicken
Nadaje grubość powierzchni albo wskazanym ścianom, zamieniając je w bryłę.
| parametr | typ | opis |
|---|---|---|
target (wymagany) |
dowolny | Bryła powierzchniowa albo zbiór ścian. |
thickness (wymagany) |
liczba | Grubość. |
thickness2 |
liczba | Grubość po przeciwnej stronie. |
flip |
prawda/fałsz | Odwraca stronę pogrubienia. Domyślnie false. |
Zwraca: bryła.
b = thicken(powierzchnia, 2)thread
Nacina gwint na ścianie walcowej: na wałku od zewnątrz, w otworze od wewnątrz.
| parametr | typ | opis |
|---|---|---|
face (wymagany) |
ściany | Ściana walcowa. |
standard (wymagany) |
tekst | Oznaczenie z biblioteki gwintów, na przykład "M10x1.5". |
length |
liczba | Długość gwintu; bez tego na całej ścianie. |
offset |
liczba | Odsunięcie początku gwintu wzdłuż osi. Domyślnie 0. |
modeled |
prawda/fałsz | Prawda tnie prawdziwy zarys, fałsz rysuje gwint tylko na podglądzie. Domyślnie true. |
fit |
prawda/fałsz | Prawda bierze z normy tylko zarys (krok, kąt, głębokość) i kładzie go na średnicy walca. Fałsz dopasowuje walec do średnicy normy. Domyślnie false. |
chamfer |
tekst | Faza 45° na końcu gwintu: "start", "end" albo "both". Początek to koniec ściany o mniejszej współrzędnej wzdłuż osi. |
chamfer_size |
liczba | Wielkość fazy; bez tego równa głębokości gwintu (krawędź schodzi do średnicy rdzenia). |
Zwraca: bryła.
b = thread(face(b, kind: "cylinder", diameter: 10), "M10")
b = thread(face(b, kind: "cylinder", diameter: 75), "M75x2", fit: true)
b = thread(face(b, kind: "cylinder", diameter: 10), "M10", chamfer: "end")Operacje logiczne
cut
Odejmuje bryły narzędzia od bryły docelowej.
| parametr | typ | opis |
|---|---|---|
target (wymagany) |
bryła | Bryła, z której odbiera się materiał. |
tools (wymagany) |
bryła lub lista brył | Bryła albo bryły odejmowane. |
keep |
prawda/fałsz | Zostaw narzędzia po operacji. Domyślnie false. |
Zwraca: bryła albo lista brył.
b = cut(korpus, wiertlo)intersect
Zostawia część wspólną brył.
| parametr | typ | opis |
|---|---|---|
target (wymagany) |
bryła | Pierwsza bryła. |
tools (wymagany) |
bryła lub lista brył | Druga bryła albo ich lista. |
keep |
prawda/fałsz | Zostaw bryły źródłowe. Domyślnie false. |
Zwraca: bryła albo lista brył.
mirror
Odbija bryły względem płaszczyzny. Oryginały zostają.
| parametr | typ | opis |
|---|---|---|
bodies (wymagany) |
bryła lub lista brył | Bryła albo lista brył. |
plane (wymagany) |
płaszczyzna | Płaszczyzna odbicia. |
features |
lista | Zamiast całej bryły odbij te operacje historii, na przykład wycięcie; wynik trafia na podaną bryłę. |
Zwraca: bryła albo lista brył.
mirror(b, plane.yz)
mirror(b, plane.yz, features: [wyciecie])split_body
Dzieli bryłę płaszczyzną albo narzędziem (powierzchnią, też zagiętą, lub inną bryłą) na osobne bryły.
| parametr | typ | opis |
|---|---|---|
body (wymagany) |
bryła | Bryła do podziału. |
plane |
płaszczyzna | Płaszczyzna cięcia; pomiń, gdy podajesz narzędzie. |
tool |
bryła | Zamiast płaszczyzny: powierzchnia albo bryła, która tnie całym swoim kształtem i zostaje nietknięta. Powierzchnia musi przechodzić przez bryłę na wylot. |
Zwraca: lista brył.
czesci = split_body(b, plane.xy)
czesci = split_body(b, tool: zagieta)union
Łączy bryły w jedną.
| parametr | typ | opis |
|---|---|---|
target (wymagany) |
bryła | Bryła, która przejmuje nazwę i kolor wyniku. |
tools (wymagany) |
bryła lub lista brył | Bryła albo bryły dołączane do niej. |
keep |
prawda/fałsz | Zostaw bryły źródłowe obok wyniku. Domyślnie false. |
Zwraca: bryła albo lista brył.
b = union(podstawa, wspornik)Wzory
pattern_circular
Powiela bryłę wokół osi.
| parametr | typ | opis |
|---|---|---|
body (wymagany) |
bryła | Bryła do powielenia. |
axis (wymagany) |
oś | Oś wzoru. |
count (wymagany) |
liczba | Liczba egzemplarzy łącznie z oryginałem. |
angle |
liczba | Rozpiętość kątowa w stopniach. Domyślnie 360. |
features |
lista | Zamiast całej bryły powiel te operacje historii. |
Zwraca: bryła albo lista brył.
pattern_circular(b, axis([0,0,0], up), count: 6)pattern_linear
Powiela bryłę wzdłuż kierunku.
| parametr | typ | opis |
|---|---|---|
body (wymagany) |
bryła | Bryła do powielenia. |
direction (wymagany) |
oś | Kierunek wzoru. |
count (wymagany) |
liczba | Liczba egzemplarzy łącznie z oryginałem. |
distance (wymagany) |
liczba | Rozstaw albo rozpiętość, zależnie od "spacing". |
spacing |
prawda/fałsz | Prawda traktuje odległość jako rozstaw sąsiednich egzemplarzy, fałsz jako rozpiętość całego wzoru. Domyślnie true. |
features |
lista | Zamiast całej bryły powiel te operacje historii, na przykład otwór. |
direction2 |
oś | Drugi kierunek: cały rząd powielony także wzdłuż niego, co daje siatkę. |
count2 |
liczba | Liczba rzędów wzdłuż drugiego kierunku. Domyślnie 2. |
distance2 |
liczba | Rozstaw albo rozpiętość wzdłuż drugiego kierunku, według tego samego "spacing". |
Zwraca: bryła albo lista brył.
pattern_linear(b, x_axis, count: 5, distance: 20)
pattern_linear(b, x_axis, count: 4, distance: 15, direction2: y_axis, count2: 3, distance2: 10)pattern_path
Powiela bryłę wzdłuż ścieżki ze szkicu.
| parametr | typ | opis |
|---|---|---|
body (wymagany) |
bryła | Bryła do powielenia. |
path (wymagany) |
szkic | Szkic ze ścieżką. |
count (wymagany) |
liczba | Liczba egzemplarzy. |
distance (wymagany) |
liczba | Rozstaw albo rozpiętość. |
spacing |
prawda/fałsz | Prawda traktuje odległość jako rozstaw. Domyślnie true. |
follow |
prawda/fałsz | Prawda obraca kopie razem ze styczną ścieżki. Domyślnie true. |
Zwraca: bryła albo lista brył.
Ściany
delete_face
Usuwa wskazane ściany, domykając bryłę sąsiednimi. Do zdejmowania zaokrągleń i faz.
| parametr | typ | opis |
|---|---|---|
faces (wymagany) |
ściany | Ściany do usunięcia. |
Zwraca: bryła.
offset_face
Odsuwa wskazane ściany o zadaną odległość, zmieniając wymiar bryły.
| parametr | typ | opis |
|---|---|---|
faces (wymagany) |
ściany | Ściany do odsunięcia. |
distance (wymagany) |
liczba | Odsunięcie; dodatnie dokłada materiał. |
Zwraca: bryła.
replace_face
Zastępuje wskazane ściany inną powierzchnią.
| parametr | typ | opis |
|---|---|---|
faces (wymagany) |
ściany | Ściany do zastąpienia. |
tool (wymagany) |
bryła | Powierzchnia wchodząca na ich miejsce; musi przecinać bryłę na wylot. |
Zwraca: bryła.
split_face
Dzieli ściany innym kształtem, bez zmiany objętości.
| parametr | typ | opis |
|---|---|---|
faces (wymagany) |
ściany | Ściany do podziału. |
tool (wymagany) |
bryła | Bryła, powierzchnia albo krzywe z project_to_surface; narzędzie zostaje nietknięte. |
Zwraca: bryła.
Powierzchnie
boundary_fill
Rozpina powierzchnię na wskazanych krawędziach brył.
| parametr | typ | opis |
|---|---|---|
edges (wymagany) |
krawędzie | Krawędzie brzegowe, co najmniej dwie. |
Zwraca: bryła powierzchniowa.
extend_surface
Przedłuża powierzchnię przy wskazanych krawędziach.
| parametr | typ | opis |
|---|---|---|
edges (wymagany) |
krawędzie | Krawędzie do przedłużenia. |
length (wymagany) |
liczba | Długość przedłużenia. |
natural |
prawda/fałsz | Prawda przedłuża zgodnie z krzywizną, fałsz liniowo wzdłuż stycznej. Domyślnie true. |
Zwraca: bryła powierzchniowa.
offset_surface
Tworzy powierzchnię odsuniętą od wskazanej. Źródło zostaje.
| parametr | typ | opis |
|---|---|---|
surface (wymagany) |
bryła | Powierzchnia źródłowa. |
distance (wymagany) |
liczba | Odległość; znak decyduje o stronie. |
mode |
tekst | "simple" odsuwa każdą ścianę osobno i jest odporniejszy, "join" domyka sąsiadów. Wartości: "simple", "join". Domyślnie simple. |
join_type |
tekst | Sposób domykania w trybie "join". Wartości: "arc", "intersection". Domyślnie arc. |
Zwraca: bryła powierzchniowa.
patch
Wypełnia zamknięty kontur szkicu powierzchnią.
| parametr | typ | opis |
|---|---|---|
boundary (wymagany) |
szkic | Szkic z zamkniętym konturem. |
Zwraca: bryła powierzchniowa.
stitch
Zszywa powierzchnie w powłokę, a przy szczelnym wyniku w bryłę.
| parametr | typ | opis |
|---|---|---|
surfaces (wymagany) |
bryła lub lista brył | Powierzchnie do zszycia, co najmniej dwie. |
tolerance |
liczba | Tolerancja zszycia; zero bierze domyślną. Domyślnie 0. |
solid |
prawda/fałsz | Domknij do bryły, gdy powłoka wyszła szczelna. Domyślnie true. |
Zwraca: bryła.
trim_surface
Przycina powierzchnię innym kształtem, zostawiając kawałek wskazany punktem.
| parametr | typ | opis |
|---|---|---|
surface (wymagany) |
bryła | Przycinana powierzchnia. |
tool (wymagany) |
bryła | Narzędzie tnące; zostaje nietknięte. |
keep (wymagany) |
[x, y, z] | Punkt wewnątrz kawałka, który ma zostać. |
invert |
prawda/fałsz | Zachowaj wszystko poza wskazanym kawałkiem. Domyślnie false. |
Zwraca: bryła powierzchniowa.
unstitch
Rozkłada kształt na osobne ściany.
| parametr | typ | opis |
|---|---|---|
target (wymagany) |
dowolny | Bryła albo wybrane ściany. |
Zwraca: lista brył powierzchniowych.
Geometria konstrukcyjna
construction_axis
Oś konstrukcyjna w drzewie, widoczna w scenie.
| parametr | typ | opis |
|---|---|---|
origin (wymagany) |
[x, y, z] | Punkt na osi. |
direction (wymagany) |
[x, y, z] | Kierunek osi. |
name |
tekst | Nazwa w drzewie. Domyślnie Oś. |
Zwraca: oś konstrukcyjna.
construction_point
Punkt konstrukcyjny w drzewie.
| parametr | typ | opis |
|---|---|---|
position (wymagany) |
[x, y, z] | Położenie punktu. |
name |
tekst | Nazwa w drzewie. Domyślnie Punkt. |
Zwraca: punkt konstrukcyjny.
offset_plane
Płaszczyzna konstrukcyjna odsunięta równolegle od podanej. Trafia do drzewa i można na niej szkicować.
| parametr | typ | opis |
|---|---|---|
base (wymagany) |
płaszczyzna | Płaszczyzna bazowa albo ściana. |
distance (wymagany) |
liczba | Odsunięcie wzdłuż normalnej, w milimetrach. |
Zwraca: płaszczyzna konstrukcyjna.
p = offset_plane(plane.xy, 25)
sk = sketch(p)plane_along_path
Płaszczyzna konstrukcyjna prostopadła do krzywej szkicu we wskazanym miejscu jej długości.
| parametr | typ | opis |
|---|---|---|
path (wymagany) |
encja szkicu | Krzywa szkicu. |
at |
liczba | Położenie wzdłuż krzywej: 0 to początek, 1 to koniec. Domyślnie 0. |
Zwraca: płaszczyzna konstrukcyjna.
przekroj = plane_along_path(sciezka, 0.5)Przydaje się przed przeciągnięciem: profil rysuje się na płaszczyźnie prostopadłej do ścieżki.
plane_at_angle
Płaszczyzna konstrukcyjna zawierająca linię szkicu, obrócona wokół niej o zadany kąt.
| parametr | typ | opis |
|---|---|---|
line (wymagany) |
encja szkicu | Linia szkicu, wokół której obraca się płaszczyzna. |
angle (wymagany) |
liczba | Kąt w stopniach, liczony od płaszczyzny szkicu. |
Zwraca: płaszczyzna konstrukcyjna.
skos = plane_at_angle(krawedz, 30)Pomiary
measure
Właściwości bryły: objętość, pole, środek masy, zasięg.
| parametr | typ | opis |
|---|---|---|
body (wymagany) |
bryła | Bryła. |
Zwraca: rekord z polami volume, area, center, min, max, size.
m = measure(b)
print("objętość " + round(m.volume / 1000, 2) + " cm3")Dokument
color
Ustawia kolor bryły.
| parametr | typ | opis |
|---|---|---|
body (wymagany) |
bryła | Bryła. |
value (wymagany) |
tekst | Kolor w zapisie szesnastkowym, na przykład "#c0392b". |
Zwraca: ta sama bryła.
color(b, "#3498db")hide
Ukrywa bryłę, szkic albo płaszczyznę.
| parametr | typ | opis |
|---|---|---|
target (wymagany) |
dowolny | Bryła, szkic albo płaszczyzna. |
Zwraca: nic.
material
Przypisuje bryle materiał z biblioteki wyglądów. Materiał z gęstością pozwala policzyć masę.
| parametr | typ | opis |
|---|---|---|
body (wymagany) |
bryła | Bryła. |
value (wymagany) |
tekst | Nazwa materiału, na przykład "Aluminium". |
Zwraca: ta sama bryła.
name
Nadaje nazwę bryle albo szkicowi. Ta sama nazwa pozwala odnaleźć obiekt później przez body("...").
| parametr | typ | opis |
|---|---|---|
target (wymagany) |
dowolny | Bryła albo szkic. |
label (wymagany) |
tekst | Nowa nazwa. |
Zwraca: ten sam obiekt.
name(b, "Korpus")remove
Usuwa bryłę, szkic albo operację z historii.
| parametr | typ | opis |
|---|---|---|
target (wymagany) |
dowolny | Obiekt do usunięcia. |
Zwraca: nic.
Usunięcie operacji usuwa też wszystko, co z niej wynika.
show
Pokazuje ukrytą bryłę, szkic albo płaszczyznę.
| parametr | typ | opis |
|---|---|---|
target (wymagany) |
dowolny | Bryła, szkic albo płaszczyzna. |
Zwraca: nic.
Wymiana
export_file
Zapisuje bryły do pliku w podanym formacie.
| parametr | typ | opis |
|---|---|---|
bodies (wymagany) |
bryła lub lista brył | Bryła albo lista brył. |
file (wymagany) |
tekst | Nazwa pliku wraz z rozszerzeniem. |
format |
tekst | Format zapisu. Bez tego brany z rozszerzenia nazwy pliku. Wartości: "step", "iges", "brep", "stl", "obj", "ply", "3mf", "glb", "dxf". |
Zwraca: nic.
export_file(b, "korpus.step")import_file
Wczytuje plik CAD i wstawia jego zawartość jako bryły.
| parametr | typ | opis |
|---|---|---|
file (wymagany) |
tekst | Nazwa pliku do wczytania. |
Zwraca: bryła albo lista brył.
Plik musi być dostępny dla aplikacji: w przeglądarce z katalogu wskazanego w ustawieniach biblioteki modeli.
Widok
fit
Dopasowuje widok tak, żeby cały model był widoczny.
Zwraca: nic.
section
Włącza analizę przekroju: model jest pokazywany przecięty wskazaną płaszczyzną. Nie zmienia geometrii.
| parametr | typ | opis |
|---|---|---|
plane (wymagany) |
płaszczyzna | Płaszczyzna cięcia. |
flip |
prawda/fałsz | Pokaż drugą stronę. Domyślnie false. |
Zwraca: nic.
section(plane.yz)section_off
Wyłącza analizę przekroju.
Zwraca: nic.
view
Ustawia kamerę na widok standardowy.
| parametr | typ | opis |
|---|---|---|
name |
tekst | Nazwa widoku (ściana, narożnik albo izometria). Wartości: "home", "top", "bottom", "front", "back", "left", "right", "iso", "top-front-left", "top-front-right", "top-back-left", "top-back-right", "bottom-front-left", "bottom-front-right", "bottom-back-left", "bottom-back-right". Domyślnie home. |
Zwraca: nic.
Matematyka
abs
Wartość bezwzględna.
| parametr | typ | opis |
|---|---|---|
x (wymagany) |
liczba | Liczba. |
Zwraca: liczba.
acos
Arcus cosinus, wynik w stopniach.
| parametr | typ | opis |
|---|---|---|
x (wymagany) |
liczba | Liczba. |
Zwraca: liczba.
asin
Arcus sinus, wynik w stopniach.
| parametr | typ | opis |
|---|---|---|
x (wymagany) |
liczba | Liczba. |
Zwraca: liczba.
atan
Arcus tangens, wynik w stopniach.
| parametr | typ | opis |
|---|---|---|
x (wymagany) |
liczba | Liczba. |
Zwraca: liczba.
atan2
Kąt w stopniach wektora (x, y) względem osi X.
| parametr | typ | opis |
|---|---|---|
y (wymagany) |
liczba | Składowa Y. |
x (wymagany) |
liczba | Składowa X. |
Zwraca: liczba: kąt w stopniach.
ceil
Zaokrąglenie w górę.
| parametr | typ | opis |
|---|---|---|
x (wymagany) |
liczba | Liczba. |
Zwraca: liczba.
clamp
Wartość przycięta do przedziału.
| parametr | typ | opis |
|---|---|---|
x (wymagany) |
liczba | Wartość. |
low (wymagany) |
liczba | Dolna granica. |
high (wymagany) |
liczba | Górna granica. |
Zwraca: liczba.
cos
Cosinus kąta podanego w stopniach.
| parametr | typ | opis |
|---|---|---|
x (wymagany) |
liczba | Kąt w stopniach. |
Zwraca: liczba.
cross
Iloczyn wektorowy: wektor prostopadły do obu podanych.
| parametr | typ | opis |
|---|---|---|
a (wymagany) |
[x, y, z] | Pierwszy wektor. |
b (wymagany) |
[x, y, z] | Drugi wektor. |
Zwraca: wektor.
deg
Zamienia radiany na stopnie.
| parametr | typ | opis |
|---|---|---|
x (wymagany) |
liczba | Kąt w radianach. |
Zwraca: liczba: kąt w stopniach.
dot
Iloczyn skalarny dwóch wektorów.
| parametr | typ | opis |
|---|---|---|
a (wymagany) |
[x, y, z] | Pierwszy wektor. |
b (wymagany) |
[x, y, z] | Drugi wektor. |
Zwraca: liczba.
floor
Zaokrąglenie w dół.
| parametr | typ | opis |
|---|---|---|
x (wymagany) |
liczba | Liczba. |
Zwraca: liczba.
length_of
Długość wektora.
| parametr | typ | opis |
|---|---|---|
v (wymagany) |
[x, y, z] | Wektor. |
Zwraca: liczba.
max
Większa z dwóch liczb.
| parametr | typ | opis |
|---|---|---|
a (wymagany) |
liczba | Pierwsza liczba. |
b (wymagany) |
liczba | Druga liczba. |
Zwraca: liczba.
min
Mniejsza z dwóch liczb.
| parametr | typ | opis |
|---|---|---|
a (wymagany) |
liczba | Pierwsza liczba. |
b (wymagany) |
liczba | Druga liczba. |
Zwraca: liczba.
normalized
Wektor o długości jeden, zgodny kierunkiem z podanym.
| parametr | typ | opis |
|---|---|---|
v (wymagany) |
[x, y, z] | Wektor. |
Zwraca: wektor.
pow
Potęga. To samo co operator ^.
| parametr | typ | opis |
|---|---|---|
x (wymagany) |
liczba | Podstawa. |
y (wymagany) |
liczba | Wykładnik. |
Zwraca: liczba.
rad
Zamienia stopnie na radiany. Rzadko potrzebne, bo cały język liczy w stopniach.
| parametr | typ | opis |
|---|---|---|
x (wymagany) |
liczba | Kąt w stopniach. |
Zwraca: liczba: kąt w radianach.
round
Zaokrąglenie do zadanej liczby miejsc po przecinku.
| parametr | typ | opis |
|---|---|---|
x (wymagany) |
liczba | Liczba. |
digits |
liczba | Liczba miejsc po przecinku. Domyślnie 0. |
Zwraca: liczba.
sin
Sinus kąta podanego w stopniach.
| parametr | typ | opis |
|---|---|---|
x (wymagany) |
liczba | Kąt w stopniach. |
Zwraca: liczba.
sqrt
Pierwiastek kwadratowy.
| parametr | typ | opis |
|---|---|---|
x (wymagany) |
liczba | Liczba. |
Zwraca: liczba.
tan
Tangens kąta podanego w stopniach.
| parametr | typ | opis |
|---|---|---|
x (wymagany) |
liczba | Kąt w stopniach. |
Zwraca: liczba.
vec
Wektor albo punkt w przestrzeni. To samo co zapis [x, y, z], wygodne przy liczeniu.
| parametr | typ | opis |
|---|---|---|
x (wymagany) |
liczba | Składowa X. |
y (wymagany) |
liczba | Składowa Y. |
z |
liczba | Składowa Z. Domyślnie 0. |
Zwraca: wektor [x, y, z].
Listy
count
Liczba elementów listy albo zbioru krawędzi lub ścian.
| parametr | typ | opis |
|---|---|---|
value (wymagany) |
dowolny | Lista albo zbiór. |
Zwraca: liczba.
item
Element listy po numerze, licząc od zera. Numer ujemny liczy od końca.
| parametr | typ | opis |
|---|---|---|
list (wymagany) |
dowolny | Lista albo zbiór. |
index (wymagany) |
liczba | Numer elementu. |
Zwraca: element.
range
Lista liczb od początku do końca, bez wartości końcowej. Do pętli.
| parametr | typ | opis |
|---|---|---|
start (wymagany) |
liczba | Wartość początkowa. |
end |
liczba | Wartość końcowa, nie należy do listy. |
step |
liczba | Krok. Domyślnie 1. |
Zwraca: lista liczb.
for i in range(0, 5) { print(i) }
range(0, 100, 25)Diagnostyka
assert
Przerywa skrypt, gdy warunek nie jest spełniony. Do sprawdzania założeń, na przykład czy selektor trafił w tyle krawędzi, ile powinien.
| parametr | typ | opis |
|---|---|---|
condition (wymagany) |
dowolny | Warunek. |
message |
tekst | Komunikat błędu. Domyślnie Warunek nie jest spełniony. |
Zwraca: nic.
assert(edges(b, kind: "circle").count == 4, "spodziewam się czterech otworów")print
Wypisuje wartość w konsoli skryptu.
| parametr | typ | opis |
|---|---|---|
value (wymagany) |
dowolny | Co wypisać. |
Zwraca: nic.
print("wysokość: " + h)