Wyrażenia

From FreeCAD Documentation
Jump to navigation Jump to search
This page is a translated version of the page Expressions and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎русский

Informacje ogólne

Możliwe jest definiowanie właściwości za pomocą wyrażeń matematycznych. W GUI, pola wyboru lub pola wejściowe, które są powiązane z właściwościami zawierają niebieską ikonę Sketcher Expressions.png. Kliknięcie na ikonę lub wpisanie znaku równości = powoduje wyświetlenie edytora wyrażeń dla danej właściwości.

Wyrażenie FreeCAD jest wyrażeniem matematycznym zgodnym z notacją dla standardowych operatorów matematycznych i funkcji opisanych poniżej. Dodatkowo, wyrażenie może odwoływać się do innych właściwości, a także używać warunków. Liczby w wyrażeniu mogą mieć opcjonalnie dołączoną jednostkę.

W liczbach można używać przecinka , lub kropki dziesiętnej . oddzielającej całe cyfry od części dziesiętnych. Gdy używany jest przecinek, po nim musi następować co najmniej jedna cyfra. Zatem wyrażenia 1.+2. i 1,+2, są nieprawidłowe, ale 1.0 + 2.0 i 1,0 + 2,0 są już poprawne.

Operatory i funkcje są świadome jednostek i wymagają poprawnych kombinacji jednostek, jeśli zostały podane. Na przykład, 2mm + 4mm jest poprawnym wyrażeniem, podczas gdy 2mm + 4 nie jest (powodem tego jest to, że wyrażenie takie jak 1in + 4 będzie najprawdopodobniej interpretowane jako 1in + 4in przez ludzi, ale wszystkie jednostki są konwertowane do układu SI wewnętrznie, a system nie jest w stanie tego odgadnąć). Obecnie rozpoznawane są następujące jednostki.

Możesz użyć stałych predefiniowanych i funkcji.

Argumenty funkcji

Wiele argumentów funkcji może być oddzielonych średnikiem ; albo przecinkiem, po którym następuje spacja , . W tym drugim przypadku, po wprowadzeniu przecinek jest konwertowany na średnik. Gdy używany jest średnik, spacja nie jest wymagana.

Argumenty mogą zawierać odwołania do komórek w arkuszu kalkulacyjnym. Odwołanie do komórki składa się z wielkiej litery wiersza, po której następuje numer kolumny, na przykład A1. Można też odwołać się do komórki, używając jej aliasu, na przykład Arkusz_kalkulacyjny.DługośćCzęści.

Odwołania do obiektów

Możesz odwołać się do obiektu przez jego właściwość DANENazwa lub DANEEtykieta. W przypadku właściwości DANEEtykieta, musi ona być zamknięta w podwójnych symbolach << i >>, na przykład <<Etykieta>>.

Możesz odwołać się do dowolnej właściwości numerycznej obiektu. Na przykład, aby odwołać się do wysokości bryły walca, możesz użyć właściwości Cylinder.Height lub <<Etykieta_walca>>.Height.

Aby odwołać się do obiektów listy, użyj właściwości <<Etykieta_obiektu>>.lista[index_listy] lub Nazwa_obiektu.lista[index_listy]. Jeśli chcesz na przykład odwołać się do wiązania w szkicu, użyj właściwości <<Nazwa_szkicu>>.Wiązanie[16]. Jeśli znajdujesz się w tym samym szkicu, możesz pominąć jego nazwę i po prostu użyć właściwości Wiązanie[16].
Uwaga: Numeracja indeksów zaczyna się od 0, dlatego wiązanie 17 ma indeks 16.

Więcej informacji na temat odwoływania się do obiektów znajdziesz w akapicie Odwołanie do danych CAD.

Obsługiwane stałe

Obsługiwane są następujące stałe:

Nazwa stałej Opis
e Liczba Eulera
pi Pi

Obsługiwane operatory

Obsługiwane są następujące operatory:

Operator Opis
+ Dodawanie
- Odejmowanie
* Mnożenie
/ Dzielenie zmiennoprzecinkowe
% Modulo
^ Potęgowanie

Obsługiwane funkcje

Ogólne funkcje matematyczne

Dostępne są funkcje matematyczne wymienione poniżej.

Funkcje trygonometryczne używają stopnia jako domyślnej jednostki. W przypadku miary radianowej, dodaj nazwę jednostki rad za pierwszą wartością w wyrażeniu. Tak więc np. cos(45) jest tym samym co cos(pi rad / 4). W wyrażeniach w stopniach można używać albo nazwę jednostki deg albo symbol jednostki °, np. 360deg - atan2(3; 4) lub 360° - atan2(3; 4). Jeśli wyrażenie nie ma jednostek i musi być przeliczone na stopnie lub radiany dla zgodności, pomnóż je przez 1 deg, 1 ° lub 1 rad, odpowiednio, np. (360 - X) * 1deg; (360 - X) * 1°; (0,5 + pi / 2) * 1rad.
Obsługiwane są następujące funkcje trygonometryczne:

Funkcja Opis Zakres wartości
acos(x) Arc cosine -1 <= x <= 1
asin(x) Arc sine -1 <= x <= 1
atan(x) Arc tangent cały
atan2(x; y) Arc tangent do x/y cały, wyjątek y = 0
cos(x) Cosine cały
cosh(x) Hyperbolic cosine cały
sin(x) Sine cały
sinh(x) Hyperbolic sine cały
tan(x) Tangent cały, z wyjątkiem x = n*90 przy n = nieparzysta liczba całkowita
tanh(x) Hyperbolic tangent cały hypot(x; y) dodatek Pitagorejski (hypotenuse). Np. hypot(4; 3) = 5. x and y > 0
cath(x; y) Biorąc pod uwagę przeciwprostokątną i jeden bok, zwraca drugi bok trójkąta. Np. cath(5; 3) = 4. x and y > 0, x >= y

These functions for exponentiation and logarithmization are supported:

Function Description Value range
exp(x) Funkcja wykładnicza cały
log(x) Logarytm naturalny x > 0
log10(x) Logarytm dziesiętny x > 0
pow(x; y) Potęgowanie cały
sqrt(x) Pierwiastek kwadratowy x >= 0

These functions for rounding, truncation and remainder are supported:

Function Description Value range
abs(x) Wartość bezwzględna cały
ceil(x) Funkcja sufitu, najmniejsza wartość całkowita większa lub równa x cały
floor(x) Funkcja podłogi, największa wartość całkowita mniejsza lub równa x cały
mod(x; y) Reszta po podzieleniu "'x'" przez "'y' cały, z wyjątkiem y = 0
round(x) Zaokrąglanie do najbliższej liczby całkowitej cały
trunc(x) Obcinanie do najbliższej liczby całkowitej w kierunku zera cały

Funkcje statystyczne / agregujące

Funkcje agregujące przyjmują jeden lub więcej argumentów.

Poszczególne argumenty funkcji agregujących mogą składać się z zakresów komórek. Zakres komórek jest wyrażony jako dwa odwołania do komórek oddzielone dwukropkiem :, na przykład average(B1:B8) lub sum(A1:A4; B1:B4). Odwołania do komórek mogą również wykorzystywać aliasy komórek, na przykład average(StartTemp:KoniecTemp).

Obsługiwane są następujące funkcje agregacji:

Funkcja Opis Zakres wartości
average(a; b; c; ...) Średnia wartość argumentów, tak samo jak sum(a; b; c; ...) / count(a; b; c; ...) cały
count(a; b; c; ...) Zlicz wartość argumentów, zwykle używane dla zakresów komórek cały
max(a; b; c; ...) Maksimum wartość argumentów cały
min(a; b; c; ...) Minimum wartość argumentów cały
stddev(a; b; c; ...) Odchylenie standardowe wartości argumentów cały
sum(a; b; c; ...) Suma wartości argumentów, typowo stosowane dla zakresów komórek cały

Operacje na ciągach znaków

Rozpoznawanie łańcucha znaków

Łańcuchy są identyfikowane w wyrażeniach przez otoczenie ich podwójnymi daszkami otwierającymi/zamykającymi (podobnie jak etykiety).

W poniższym przykładzie "TEXT" jest rozpoznawany jako ciąg znaków : <<TEXT>>.

Łączenie łańcuchów znaków

Łańcuchy mogą być sumowane przy użyciu znaku +.

Na przykład <<Mój>> + <<TEKST>> będzie złączone do "MójTEKST".

Formatowanie łańcucha znaków

Formatowanie ciągów jest obsługiwane za pomocą (starego) sposobu środowiska Python w %-styl.

Wszystkie specyfikatory % są zdefiniowane w dokumentacji środowiska Python.

Na przykład, zakładając, że masz sześcian o domyślnej długości boków 10 mm o nazwie "Sześcian" --domyślne nazewnictwo FreeCAD--, następujące wyrażenie <<Długość sześcianu : %s>> % Box.Length zostanie rozwinięte do "Długość sześcianu : 10.0 mm".

Ograniczeniem jest to, że tylko jeden %-specyfikator jest dozwolony w łańcuchu, więc musisz użyć łączenia łańcuchów, jeżeli potrzebujesz więcej niż jeden. W powyższej sytuacji, wyrażenie <<Długość sześcianu wynosi %s>> % Box.Length + << a szerokość wynosi %s>> % Box.Width zostanie rozwinięte do "Długość sześcianu wynosi 10.0 mm a szerokość 10.0 mm".

Na forum dostępny jest przykładowy plik FreeCAD wykorzystujący formatowanie ciągów znaków.

Tworzenie funkcji

W wyrażeniach można tworzyć następujące obiekty za pomocą funkcji create:

  • Wektor (Vector)
  • Macierz (Matrix)
  • Obrót (Rotation)
  • Umiejscowienie (Placement)

Funkcja create przekazuje kolejne argumenty do bazowego konstruktora Python podczas tworzenia obiektu.

Różne operacje matematyczne takie jak mnożenie, dodawanie i odejmowanie są obsługiwane przez standardowe operatory matematyczne (np. *, +, -).

Wektor

Gdy do funkcji create zostanie przekazany <<vector>>jako pierwszy argument, to kolejne 3 argumenty, to odpowiednio współrzędne X, Y i Z obiektu Vector.

Przykład:

create(<<vector>>; 2; 1; 2)

Macierz

Gdy do funkcji create zostanie przekazany <<matrix>> jako pierwszy argument, następne 16 argumentów to elementy Matrix w kolejności wiersz - w kolejności.

Przykład:

create(<<matrix>>; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16)

Obrót

Kiedy do funkcji create zostanie przekazany <<rotation>> jako pierwszy argument, istnieją dwa sposoby na utworzenie Rotation:

1. Określ wektor osi i kąt obrotu.

Przykład:

create(<<rotation>>; create(<<vector>>; 0; 1; 0); 45)

2. Określ 3 obroty wokół osi X, Y i Z jako kąty Eulera.

Przykład:

create(<<rotation>>; 30; 30; 30)

Umiejscowienie

Kiedy do funkcji create zostanie przekazany <<placement>> jako pierwszy argument, istnieje pięć sposobów na utworzenie Umiejscowienia.

Te możliwe kombinacje są udokumentowane w poniższej tabeli i są opracowane na podstawie strony API Umiejscowienie.

Ilość argumentów Opis
2 create(<<placement>>; Umiejscowienie)
2 create(<<placement>>; Macierz)
3 create(<<placement>>; Podstawa; Obrót)
4 create(<<placement>>; Podstawa; Obrót; Środek)
4 create(<<placement>>; Podstawa; Oś; Kąt)

Poniższy przykład pokazuje składnię tworzenia obiektu Umiejscowienie z argumentów Podstawa (wektor) i Obrót:

create(<<placement>>; create(<<vector>>; 2; 1; 2); create(<<rotation>>; create(<<vector>>; 0; 1; 0); 45))

Dla czytelności możesz zdefiniować wektory i obroty w osobnych komórkach, a następnie odwołać się do nich w swoim wyrażeniu.

Funkcje macierzy

mscale

Skaluje Macierz za pomocą danego Wektora.

mscale(Matrix; Vector)

mscale(Matrix; x; y; z)

minvert

Odwróć podaną Macierz, Obrót lub Umiejscowienie.

minvert(Matrix)

minvert(Rotation)

minvert(Placement)

Tupla & lista

Możesz tworzyć obiekty Python tupla lub lista za pomocą ich odpowiednich funkcji.

tuple(2; 1; 2)

list(2; 1; 2)

Wyrażenia warunkowe

Wyrażenia warunkowe mają postać condition ? resultTrue : resultFalse. Warunek jest zdefiniowany jako wyrażenie, które oblicza się albo jako 0 (Fałsz) lub niezerowe (Prawda). Zauważ, że zamknięcie wyrażenia warunkowego w nawiasach jest obecnie uważane za błąd.

Zdefiniowane są następujące operatory relacyjne:

Operator Opis
== jest równy
!= nie jest równy
> większy niż
< mniejszy niż
>= większy lub równy
<= mniejszy lub równy

Jednostki

Jednostki mogą być używane bezpośrednio w wyrażeniach. Parser łączy je z poprzedzającą wartością. Tak więc wartość 2mm lub 2 mm jest zapisana poprawne, podczas gdy mm jest niepoprawna, ponieważ nie ma poprzedzającego określenia wielkości / ilości.

Wszystkie wartości muszą mieć swoją jednostkę. Dlatego musisz generalnie używać jednostki dla wartości w arkuszach kalkulacyjnych.
W niektórych przypadkach działa to nawet bez jednostki, na przykład jeśli masz np. w komórce B1 arkusza kalkulacyjnego tylko liczbę 1.5 i odnosisz się do niej jako do wysokości wyciągnięcia. Działa to tylko dlatego, że wysokość wyciągnięcia określa wstępnie jednostkę mm, która jest używana, jeśli nie podano jednostki. Nie powiedzie się jednak, jeśli jako wysokości wyciągnięcia użyjesz np. Szkic1.Constraints.Width - Arkusz_kalkulacyjny.B1, ponieważ Szkic1.Constraints.Width ma określoną jednostkę, a Arkusz_kalkulacyjny.B1 nie.

Jednostki z wykładnikami mogą być wprowadzane bezpośrednio. Tak więc np. mm^3 zostanie rozpoznane jako mm³, a m^3 jako .

Jeśli masz zmienną, której nazwa jest jednostką, musisz umieścić ją pomiędzy << >>, aby zapobiec rozpoznaniu jej jako jednostki. Na przykład, jeśli masz wymiar Szkic.Constraints.A to zostałby on rozpoznany jako jednostka ampera. Dlatego musisz zapisać go w wyrażeniu jako Szkic.Constraints.<<A>>.

Parser wyrażeń rozpoznaje następujące jednostki:

Ilość materii:

Jednostka Opis
mol Mol

Kąt:

Jednostka Opis
° Stopień; alternatywa dla jednostki deg
deg Stopień; alternatywa dla jednostki °
rad Radian
gon Gradian
S Sekunda kątowa, alternatywa dla jednostki ″
Sekunda kątowa, alternatywa dla jednostki S
M Minuta kątowa, alternatywa dla jednostki '
Minuta kątowa; alternatywa dla jednostki M

Prąd:

Jednostka Opis
mA Milliamper
A Amper
kA Kiloamper
MA Megaamper

Energia / praca:

Jednostka Opis
J Dżul
Ws Watosekunda, alternatywa dla jednostki Dżul
VAs Woltoamperosekunda, alternatywa dla jednostki Dżul
CV Kulomb-wolt, alternatywa dla jednostki Dżul

Siła:

Jednostka Opis
mN Milliniuton
N Niuton
kN Kiloniuton
MN Meganiuton
lbf Funt-siła

Długość:

Jednostka Opis
nm Nanometr
mu Micrometr, alternatywa dla jednostki µm
µm Micrometr, alternatywa dla jednostki mu
mm Millimetr
cm Centimetr
dm Decimetr
m Metr
km Kilometr
mil Tysięczne części cala, alternatywa dla jednostki thou
thou Tysięczne części cala, alternatywa dla jednostki mil
in Cal, alternatywa dla jednostki "
" Cal, alternatywa dla jednostki in
ft Stopa, alternatywa dla jednostki '
' Stopa, alternatywa dla jednostki ft
yd Jard
mi Mila

Natężenie światła:

Jednostka Opis
cd Kandela

Masa:

Jednostka Opis
ug Microgram, alternatywa dla jednostki µg
µg Microgram, alternatywa dla jednostki ug
mg Milligram
g Gram
kg Kilogram
t Tona
oz Uncja
lb Funt, alternatywa dla jednostki lbm
lbm Funt, alternatywa dla jednostki lb
st Kamień
cwt Waga stu-kilowa (kwintał)

Siła:

Jednostka Opis
W Wat
VA Voltamper

Ciśnienie:

Jednostka Opis
Pa Paskal
kPa Kilopaskal
MPa Megapaskal
GPa Gigapaskal
uTorr Microtor, alternatywa dla jednostki µTorr
µTorr Microtor, alternatywa dla jednostki uTorr
mTorr Millitor
Torr Tor; 1 Torr = 133.32 Pa
psi Funt na cal kwadratowy; 1 psi = 6.895 kPa
kpsi KiloFunt na cal kwadratowy

Temperatura:

Jednostka Opis
uK Microkelwin, alternatywa dla jednostki µK
µK Microkelwin, alternatywa dla jednostki uK
mK Millikelwin
K Kelwin

Czas:

Jednostka Opis
s Second
min Minuta
h Godzina

Objętość:

Jednostka Opis
l Litr

Poniższe popularnie używane jednostki nie są jeszcze obsługiwane:

Jednostka Opis Zamiennik
°C Celsjusz [°C] + 273.15 K
°F Fahrenheit; ([°F] + 459.67) × ​5/9
u Jednostka masy atomowej, alternatywa dla jednostki Da 1.66053906660e-27 kg
Da Dalton, alternatywa dla jednostki u 1.66053906660e-27 kg
sr Steradian nie bezpośrednio
lm Lumen nie bezpośrednio
lx Luks nie bezpośrednio
px Piksel nie bezpośrednio

Nieprawidłowe znaki i nazwy

Funkcja wyrażeń jest bardzo potężna, ale aby osiągnąć tę moc, ma pewne ograniczenia dotyczące niektórych znaków. Aby temu zaradzić, FreeCAD oferuje możliwość używania etykiet i odwoływania się do nich zamiast do nazw obiektów. W etykietach można używać prawie wszystkich znaków specjalnych.

W przypadkach, w których nie można użyć etykiety, takich jak nazwa wiązań szkicu, należy być świadomym, których znaków nie wolno używać.

Etykiety

Dla etykiet nie ma nieprawidłowych znaków, jednak niektóre znaki muszą być wyprowadzone:

Znak Opis
', \, " Wymaga wyprowadzenia poprzez dodanie znaku poprzedzającego \.

Na przykład etykieta Sketch\002 musi być określona jako <<Sketch\\002>>.

Nazwy

Nazwy obiektów takich jak wymiary, szkice itp. nie mogą posiadać znaków lub sekwencji znaków wymienionych poniżej, w przeciwnym razie nazwa jest niepoprawna:

Znak / Ciąg znaków Opis
+, -, *, /, ^, _, <, >, (, ), {, }, [, ], ., ,, = Znaki, które są operatorami matematycznymi lub częścią konstrukcji matematycznych
A, kA, mA, MA, C, G, F, mF, µF, J, K, ' , ft , °, i wiele więcej! Znaki i ich ciągi, które są jednostkami
#, !, ?, §, $, %, &, :, ;, \, |, ~, , ¿, i wiele więcej! Znaki używane jako symbol listy lub wyzwalają specjalne operacje
pi, e Stałe matematyczne
´, `, ' , " Znaki używane do akcentowania
spacja Spacja określa koniec nazwy i dlatego nie może być użyta

Na przykład, prawidłowa jest następująca nazwa: <<Sketch>>.Constraints.T2üßµ@. Natomiast następujące nazwy są niepoprawne: <<Sketch>>.Constraints.test\result_2 (\r oznacza "powrót karetki") lub <<Sketch>>.Constraints.mol (mol to jednostka).

Ponieważ krótsze nazwy (zwłaszcza jeśli mają tylko jeden lub dwa znaki) mogą łatwo doprowadzić do nieprawidłowych nazw, rozważ użycie dłuższych nazw i / lub ustalenie odpowiedniej konwencji nazewnictwa.

Przypisania do komórek

Dla aliasów komórek arkusza kalkulacyjnego dozwolone są tylko znaki alfanumeryczne i podkreślenia (A do Z, a do z, 0 do 9 oraz _).

Odwołanie do danych CAD

Możliwe jest użycie danych zawartych w samym modelu w wyrażeniu. Aby odwołać się do właściwości użyjobject.property. Jeśli właściwość jest złożeniem pól, poszczególne pola mogą być dostępne jako object.property.field.

Poniższa tabela przedstawia kilka przykładów:

dane CAD Odwołanie do wyrażenia Wynik
Parametr długości sześcianu środowiska pracy Część Cube.Length Długość w mm
Objętość sześcianu Cube.Shape.Volume Objętość w mm³ bez jednostek
Typ kształtu sześcianu Cube.Shape.ShapeType String: Bryła
Etykieta sześcianu Cube.Label String: Etykieta
Współrzędna x środka masy sześcianu Cube.Shape.CenterOfMass.x Współrzędna x w mm, bez jednostek
Wartość wiązania w szkicu Constraints.Width Wartość numeryczna nazwanego wiązania Width w szkicu, jeśli wyrażenie jest używane w samym szkicu.
Wartość wiązania w szkicu MySketch.Constraints.Width Wartość numeryczna nazwanego wiązania Width w szkicu, jeśli wyrażenie jest używane poza szkicem.
Wartość aliasu arkusza kalkulacyjnego Spreadsheet.Depth Wartość aliasu Depth w arkuszu kalkulacyjnym Spreadsheet
Wartość lokalnej właściwości Length Wartość właściwości DANELength np. w obiekcie Pad, jeżeli wyrażenie jest użyte np. w DANELength2 w tym samym obiekcie.

Zmienne globalne w obrębie dokumentu

W tej chwili w programie FreeCAD nie ma koncepcji zmiennych globalnych. Zamiast tego zmienne mogą być definiowane jako komórki w arkuszu kalkulacyjnym za pomocą środowiska roboczego Arkusz kalkulacyjny, a następnie można im nadać nazwę za pomocą właściwości aliasu dla komórki (kliknij prawym przyciskiem myszy na komórkę). Następnie można się do nich odwoływać z dowolnego wyrażenia, tak jak do innych właściwości obiektu.

Powiązania między dokumentami

Możliwe jest (z ograniczeniami) zdefiniowanie właściwości obiektu w bieżącym dokumencie (plik ".FCstd") za pomocą Wyrażenia odwołującego się do właściwości obiektu znajdującego się w innym dokumencie (plik ".FCstd"). Na przykład, komórka w arkuszu kalkulacyjnym lub właściwość DANEDługość sześcianu środowiska Część itp. w jednym dokumencie mogą być zdefiniowane przez Wyrażenie, które odwołuje się do wartości X Umiejscowienia lub innej właściwości obiektu znajdującego się w innym dokumencie.

Nazwa dokumentu jest używana do odwoływania się do jego zawartości z innych dokumentów. Przy pierwszym zapisie dokumentu wybieramy nazwę pliku, która zazwyczaj różni się od początkowej domyślnej nazwy "Nienazwany1". Aby uniknąć utraty linków w przypadku zmiany nazwy dokumentu głównego przy zapisie, zaleca się najpierw utworzenie dokumentu głównego, utworzenie w nim arkusza kalkulacyjnego i zapisanie go. Następnie można nadal wprowadzać zmiany w pliku i jego arkuszu kalkulacyjnym, ale nie należy modyfikować jego nazwy.

Po utworzeniu i zapisaniu (nazwaniu) dokumentu głównego z arkuszem kalkulacyjnym można bezpiecznie tworzyć dokumenty zależne. Na przykład, zakładając, że nazwiesz dokument główny master, arkusz kalkulacyjny modelConstants i nadasz komórce alias nazwy Length, możesz następnie uzyskać dostęp do wartości jako:

master#modelConstants.Length

Uwaga:, Dokument źródłowy musi być wczytany, aby wartości z dokumentu źródłowego były dostępne dla dokumentu powiązanego.

Niestety, zintegrowany program sprawdzający czasami twierdzi, że prawidłowa nazwa nie istnieje. Mimo to kontynuuj wpisywanie. Po wprowadzeniu kompletnego odwołania, przycisk OK stanie się aktywny.

Oczywiście, to do Ciebie zależy, czy wczytasz odpowiednie dokumenty później, gdy będziesz chciał coś zmienić.

Znane problemy / niezrealizowane zadania

  • Graf zależności oparty jest na relacjach pomiędzy obiektami dokumentu, a nie na właściwościach. Oznacza to, że nie można dostarczać danych do obiektu i odpytywać tego samego obiektu o wyniki. Na przykład, nawet jeśli nie ma cyklicznych zależności, gdy brane są pod uwagę same właściwości, nie można mieć obiektu, który pobiera swoje wymiary z arkusza kalkulacyjnego, a następnie wyświetlać objętość tego obiektu w tym samym arkuszu kalkulacyjnym. Aby obejść ten problem, należy użyć wielu arkuszy kalkulacyjnych, jednego do napędzania modelu, a drugiego do raportowania.
  • Parser wyrażeń nie radzi sobie dobrze z nawiasami i nie jest w stanie poprawnie przetworzyć niektórych wyrażeń. Na przykład: = (A1 > A2) ? 1 : 0 skutkuje błędem, podczas gdy = A1 > A2 ? 1 : 0 jest akceptowane. Wyrażenie = 5 + ((A1>A2) ? 1 : 0) nie może być wprowadzone w żadnej formie.
  • Jak wspomniano powyżej, niestety zintegrowany moduł sprawdzający czasami twierdzi, że prawidłowa nazwa nie istnieje. Mimo to kontynuuj wpisywanie. Po wpisaniu pełnego odwołania, przycisk OK stanie się aktywny.
  • FreeCAD nie ma zaimplementowanego menedżera wyrażeń, w którym wszystkie wyrażenia w dokumencie byłyby wymienione i mogłyby być tworzone, usuwane, wyszukiwane itd. Ale jest dostępny odpowiedni dodatek: fcxref.
  • Otwarte błędy/tickety dotyczące wyrażeń można znaleźć w FreeCAD Bugtracker kategoria Wyrażenia