Temat |
---|
Programowanie |
Poziom trudności |
programista średnio zaawansowany |
Czas wykonania |
15 minut |
Autorzy |
Mario52 |
Wersja FreeCAD |
wszystkie |
Pliki z przykładami |
Nie dołączono |
Zobacz również |
- |
Od wersji v0.17 można łatwo dodać makrodefinicje za pomocą Menadżera dodatków. Użytkownik nie musi robić nic więcej niż używać tego narzędzia. Czytaj dalej, aby uzyskać więcej informacji na temat instalacji makrodefinicji.
Makrodefinicje to sekwencje poleceń, które służą do wykonania złożonej operacji rysunkowej. Makra są skryptami środowiska Python, co oznacza, że są to pliki tekstowe, które można pisać i edytować za pomocą edytora tekstu.
Podczas gdy skrypty Pythona zwykle mają rozszerzenie .py
, makra FreeCAD powinny mieć rozszerzenie .FCMacro
. Zbiór makr napisanych przez doświadczonych użytkowników znajduje się na stronie przepisy na makra.
Zobacz Wprowadzenie do Pythona, aby zapoznać się z językiem programowania Python, a następnie Poradnik do pisania skryptów Python i Podstawy skryptów FreeCAD, które pomogą Ci nauczyć się pisania makr.
Tutaj jest filmik o instalowaniu makrodefinicji FreeCAD w Ubuntu.
Oprócz narzędzi na pasku dostępne są następujące funkcje w menu Makrodefinicje.
Makra są tworzone w określonym folderze w katalogu FreeCAD użytkownika. Katalog ten można skonfigurować w oknie dialogowym Wykonaj makrodefinicję lub w Edytorze preferencji, poprzez menu Edycja → Preferencje → Python → Makropolecenia → Ustawienia ogólne dla makrodefinicji.
Pobrane makra również powinny zostać umieszczone w tym katalogu.
Makra można po prostu skopiować do
$ROOT_DIR/
gdzie $ROOT_DIR
to ścieżka najwyższego poziomu sprawdzana przez FreeCAD przy uruchamianiu.
Katalog $ROOT_DIR
może być katalogiem dostępnym systemowo, w takim przypadku makro będzie zainstalowane dla wszystkich użytkowników.
/usr/share/freecad/
C:\Program Files\FreeCAD\
/Applications/FreeCAD/
Katalog $ROOT_DIR
może być katalogiem przypisanym do konkretnego użytkownika.
/home/username/.local/share/FreeCAD/
(version 0.20 and above) lub /home/username/.FreeCAD/
(version 0.19 and below).C:\Users\username\AppData\FreeCAD\
/Users/username/Library/Preferences/FreeCAD/
1. Otwórz menu Makrodefinicje → Makra..., aby otworzyć okno wykonania makra.
Otwieranie okna uruchamiania makra
2. Ustaw odpowiednią Lokalizację makr użytkownika
.
/home/username/.local/share/FreeCAD/
(version 0.20 and above) lub /home/username/.FreeCAD/
(version 0.19 and below)C:\Users\username\AppData\Roaming\FreeCAD\
/Users/username/Library/Preferences/FreeCAD/
Ustawianie lokalizacji makr
3. Przejdź do tego katalogu na swoim komputerze.
.FreeCAD/
.file:///
dla pliku na dysku.Otwieraie ścieżki makr w systemie operacyjnym
4. Dodaj pliki makr do tego katalogu.
Ścieżka makr
Poczynając od FreeCAD 0.17, użyj Menadżera dodatków w menu głównym Narzędzia → Menadżer dodatków aby zainstalować makrodefinicje, która została dołączone do repozytorium FreeCAD-macros.
W poprzednich wersjach FreeCAD można było korzystać z dwóch automatycznych sposobów instalacji makr i innych dodatków:
Zalecaną metodą instalacji dodatków, czyli zewnętrznych środowisk pracy i makr, jest Menedżer dodatków. Można jednak nadal dodawać makra do systemu za pomocą metod ręcznych opisanych w poniższych sekcjach; jest to przydatne, jeśli rozwijasz i testujesz własny kod.
W przypadku makr, które są stosunkowo małe, 300 linii lub mniej, kod można skopiować i wkleić bezpośrednio do edytora makr FreeCAD.
Użyjemy Macro Apothem Based Prism GUI jako przykładu.
1. Przejdź do strony wiki makra, która powinna być wymieniona w Przepisy na makra.
Jeśli masz niestandardową ikonę, pobierz ją; kliknij na nią prawym przyciskiem myszy i wybierz Zapisz obraz jako...
; umieść ikonę w katalogu makr. Ta ikona może być używana jako skrót do makra w niestandardowym pasku narzędzi. Domyślną ikoną jest .
Pobieranie ikony ze strony makra
2. Na stronie makra wybierz kod znajdujący się w sekcjach Skrypt lub Makro, a następnie skopiuj go.
3. We FreeCAD otwórz menu Makrodefinicje → Makrodefinicje..., aby otworzyć okno wykonania makra.
Otwieranie okna uruchamiania makra
4. Kliknij Utwórz.
Tworzenie nowego makra
5. Wprowadź nazwę makra, tutaj Macro_Apothem_Based_Prism_GUI
i kliknij OK.
Wprowadzanie nazwy makra
6. Zostanie otwarty edytor makra, pokazując pełną ścieżkę nowego makra.
Edytor makra
7. Wklej kod w oknie edytora, a następnie kliknij krzyżyk na karcie, aby zamknąć okno.
Zamykanie edytora makr
8. Pojawi się okno z prośbą o potwierdzenie zapisania kodu; kliknij Tak. Możesz również użyć Ctrl+S, aby zapisać plik.
Zrestartuj program FreeCAD aby poprawnie zarejestrować nowe makro.
Pytanie o potwierdzenie zapisania kodu
9. Otwórz ponownie menu Makrodefinicje → Makrodefinicje..., wybierz nowo dodane makro i naciśnij Wykonaj.
Wybieranie makra aby je uruchomić
10. Makro zostanie teraz uruchomione. Wypełnij pola swoimi wartościami i kliknij przycisk OK.
Makro w działaniu; wypełnij informacje i naciśnij OK, gdy będziesz gotowy
11. To makro powinno zwrócić błąd, jeśli żaden dokument nie jest aktywny; inne makra otwierają nowy dokument, jeśli żaden nie istnieje.
Utwórz nowy dokument za pomocą Plik → Nowy, a następnie powtórz poprzednie kroki, aby uruchomić makro.
Makro zwracające błąd gdy żaden dokument nie jest aktywny
12. Gdy aktywny dokument jest dostępny, makro uruchomi się i utworzy obiekt.
Obiekt utworzony przez makro
13. Możesz ponownie otworzyć makro w edytorze, aby je uruchomić lub zmodyfikować. Przejdź do Makrodefinicje → Makrodefinicje..., wybierz makro i naciśnij Edycja.
Otwieranie makra w edytorze
14. Makro można teraz uruchomić za pomocą Makrodefinicje → Wykonaj makrodefinicję, lub klikając przycisk
Wykonaj makrodefinicję na pasku narzędzi.
Uruchamianie makra załadowanego w edytorze
Niektóre makra są zbyt duże, aby wygodnie kopiować je i wklejać do edytora makr, lub nie mogą być hostowane na wiki. W takim przypadku kod może być hostowany gdzie indziej, na przykład w repozytorium Github lub na forum FreeCAD. Kod może być również skompresowany w pliku .zip
, archiwum tarball .tar.xz
lub innym typie archiwum, jeśli zawiera kilka plików. Jeśli kod jest dystrybuowany w ten sposób, archiwum należy wyodrębnić, a pliki umieścić w katalogu makr.
Skorzystamy z Macro screw maker jako przykładu.
1. Pobierz skompresowany kod z forum, Screw Maker.
Aby uzyskać pliki wewnętrzne, musisz użyć narzędzia do dekompresji.
unzip your_file.zip -d your_directory
2. Pobierz skompresowane archiwum z kodem makra do lokalnego folderu.
Pobieranie skompresowanego archiwum do ścieżki lokalnej
3. Zdekompresuj plik w folderze.
Dekompresowanie pliku w folderze
4. Dekompresor tworzy nową ścieżkę z rozpakowanymi plikami.
Nowa ścieżka utworzona po rozpakowaniu archiwum
5. Przejdź do nowej ścieżki i skopiuj lub wytnij plik makra.
Wprowadzanie nowo utworzonej ścieżki ze zdekompresowanym plikiem makra
6. Przejdź do ścieżki makr i wklej tam plik.
Umieszczanie pliku makra w ścieżce makr
7. We FreeCAD, otwórz menu Makrodefinicje → Makrodefinicje... aby otworzyć okno uruchamiania makra.
Otwieranie okna uruchamiania makra
8. Wybierz nowe makro i wciśnij Wykonaj.
Wybieranie makra do uruchomienia go
9. Makro jest teraz uruchomione. Wybierz odpowiednie opcje i wciśnij przycisk Utwórz.
Makro w działaniu: wybierz odpowiednie opcje i wciśnij Utwórz gdy gotowe
Obiekt utworzony przez makro
Uruchamianie makra z linii poleceń (.FCMacro lub .py)
na Windows
"C:\Program Files\FreeCAD\bin\FreeCAD.exe" "C:\Users\userName\AppData\Roaming\FreeCAD\Mod\WorkFeature\start_WF.FCMacro"
na Linux
todo
W języku programowania Python biała spacja na początku linii (wcięcie) jest bardzo ważna i stanowi integralną część kodu. Nieodpowiednie wcięcia mogą spowodować, że kod nie będzie działał lub wywoła błędy.
Ta sekcja opisuje niektóre błędy, które mogą wystąpić podczas kopiowania i wklejania oraz pisania kodu makr.
Typowy błąd wcięcia wygląda następująco:
<unknown exception traceback><type 'exceptions.IndentationError'>: ('expected an indented block', ('C:/Users/d/AppData/Roaming/FreeCAD/Macro_Apothem_Based_Prism_GUI.FCMacro', 21, 3, 'def priSm(self):\n'))
Jeśli kod nie zawiera wcięć, nie będzie działał. Definicje klas (class
) i funkcji (def()
), a także struktury kontrolne (if
, while
, for
) powinny być następnie śledzone przez blok kodu z wcięciem.
Ten błąd może wystąpić, jeśli użytkownik nie skopiuje kodu poprawnie i wszystkie spacje zostaną przypadkowo usunięte.
Kod Pythona, któremu brakuje wcięcia; wywoła to błąd przy uruchamianiu kodu
Problem wcięcia rozwiązany.
Kod Pythona z odpowiednim wcięciem
Jeśli kod jest zaznaczony, wszystkie linie powinny być wyróżnione aż do lewej krawędzi, co wskazuje, że linie są wyrównane.
Podświetlenie kodu Pythona pokazujące, że wszystkie linie zaczynają się od lewej krawędzi
Jeśli na początku wszystkich linii zostanie dodana dodatkowa spacja, interpreter Pythona zgłosi błąd i narzeka na niepotrzebne wcięcia. W takim przypadku należy usunąć początkową spację ze wszystkich linii.
Kod Pythona z dodatkową spacją w każdej linii
Oto kod skopiowany z wątku na forum przy użyciu przycisku Wybierz wszystko. Wygląda na to, że zaznaczenie jest poprawne.
Kod Pythona skopiowany z forum
Jednakże, po wklejeniu zaznaczenia do edytora makr, wydaje się, że pojawia się niepożądane wcięcie.
Kod Pythona skopiowany z forum do edytora makr; zbędne wcięcie jest dodane
W takim przypadku należy usunąć początkowe wcięcia. Można to zrobić za pomocą specjalistycznego edytora tekstu, aby szybko zmniejszyć wcięcia w liniach.
W systemie Windows, Notepad++ umożliwia zaznaczenie tekstu przy użyciu Alt + przeciąganie myszą, a następnie użycie opcji Edycja → Wcięcie → Zmniejsz wcięcie.
Kod Pythona z odpowiednim wcięciem
Tutaj zaznaczenie obejmuje także numery linii w przykładzie kodu. Jeśli to zaznaczenie zostanie wklejone do edytora makr, kod nie będzie działał. Wszystkie numery linii muszą zostać usunięte, a spacje dostosowane, aby kod Pythona miał odpowiednie wcięcia.
Zaznaczenie, które obejmuje także numery linii; jeśli ten kod zostanie wklejony do edytora makr, nie będzie działał
Kod Pythona z odpowiednim wcięciem
Makra mogą wyświetlać informacje w widoku raportu, aby szczegółowo opisać, co kod robi podczas jego wykonywania.
Jeśli żadna informacja nie jest wyświetlana, upewnij się, że widok raportu i konsola Pythona są widoczne, a wyjście jest kierowane do widoku raportu.
Makra FreeCAD mają dwa sposoby drukowania informacji w widoku raportu:
Funkcje FreeCAD
FreeCAD.Console.PrintMessage("Hello World! \n")
FreeCAD.Console.PrintError("Hello World! \n")
FreeCAD.Console.PrintWarning("Hello World! \n")
Prosta funkcja Pythona
print("Hello World!")
Aby zobaczyć informacje wyświetlane w konsoli powinieneś:
1. Przejść do menu Widok → Panele.
Uwidacznianie paneli w menu Widok → Panel
2. Włącz Widok raportu
i konsolę Pythona
.
Włączanie widoku raportu i konsoli Pythona
3. Panele są teraz widoczne i polecenia takie jak FreeCAD.Console.PrintMessage()
pokazują informacje, które pojawiają się w widoku raportu
.
Główne okno programu FreeCAD z widokiem raportu i konsolą Pythona
FreeCAD może wymagać konfiguracji, aby funkcja print()
w Pythonie poprawnie przekierowywała swoje wyjście do widoku raportu.
1. Przejdź do Edytora preferencji z menu Edycja → Preferencje.
Przechodzenie do edytora preferencji
2. Przejdź do sekcji Python a następnie Okno wyników → Interpreter Pythona.
Preferencje okna wyników
3. Zaznacz oba pola:
a następnie wciśnij przycisk OK.
Przekierowywanie wyników Pythona do widoku raportu
Polecenia Pythona wyświetlające informacje do widoku raportu