How to install macros/pl

Ćwiczenie
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ż
-

Opis

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.

Menu i pasek narzędziowy Makrodefinicji

Pasek narzędzi

Menu

Oprócz narzędzi na pasku dostępne są następujące funkcje w menu Makrodefinicje.

Katalog z makrodefinicjami

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.

Katalog domyślny

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.

  • W systemie Linux zazwyczaj jest to /usr/share/freecad/
  • W systemie Windows zazwyczaj jest to C:\Program Files\FreeCAD\
  • W systemie macOS zazwyczaj jest to /Applications/FreeCAD/

Katalog $ROOT_DIR może być katalogiem przypisanym do konkretnego użytkownika.

  • W systemie Linux zazwyczaj jest to /home/username/.local/share/FreeCAD/ (version 0.20 and above) lub /home/username/.FreeCAD/ (version 0.19 and below).
  • W systemie Windows zazwyczaj jest to C:\Users\username\AppData\FreeCAD\
  • W systemie macOS zazwyczaj jest to /Users/username/Library/Preferences/FreeCAD/

Konfiguracja katalogu użytkownika

1. Otwórz menu Makrodefinicje → Makra..., aby otworzyć okno wykonania makra.

Otwieranie okna uruchamiania makra

2. Ustaw odpowiednią Lokalizację makr użytkownika.

  • Linux: zazwyczaj /home/username/.local/share/FreeCAD/ (version 0.20 and above) lub /home/username/.FreeCAD/ (version 0.19 and below)
  • Windows: zazwyczaj C:\Users\username\AppData\Roaming\FreeCAD\
  • MacOS: zazwyczaj /Users/username/Library/Preferences/FreeCAD/

Ustawianie lokalizacji makr

3. Przejdź do tego katalogu na swoim komputerze.

  • Linux: wklej adres do menedżera plików, takiego jak "Nautilus" lub inny. Możesz potrzebować nacisnąć Ctrl+H, aby wyświetlić ukryty katalog .FreeCAD/.
  • Windows: wklej adres do "Eksploratora plików" i potwierdź.
  • MacOS: zlokalizuj folder w "Finderze" lub wklej adres do "Eksploratora plików"; pamiętaj o prefiksie file:/// dla pliku na dysku.

Otwieraie ścieżki makr w systemie operacyjnym

4. Dodaj pliki makr do tego katalogu.

  • Linux: pozostaw menedżera plików otwartego i dodaj lokalizację do zakładek dla szybszego dostępu.
  • Windows: pozostaw otwarty "Eksplorator plików".
  • MacOS: możesz pozostawić otwarte okno "Findera", dodać lokalizację do zakładek w "Eksploratorze plików", utworzyć "Alias", który będzie wskazywał na ten katalog, lub przeciągnąć folder do "Pasek boczny" w "Finderze", aby mieć do niego dostęp z innych programów, takich jak edytory tekstu.

Ścieżka makr

Instalacja makropoleceń

Metoda automatyczna

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:

  • addons_installer.FCMacro: to makro, które było poprzednikiem Menedżera dodatków i jest hostowane w repozytorium FreeCAD-addons. W nowych instalacjach FreeCAD nie trzeba już korzystać z tego narzędzia.
  • freecad-pluginloader: także makro, które można było używać do instalowania nowych komponentów w FreeCAD. Obecnie nie jest już rozwijane.

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.

Metoda manualna 1. Skopiuj kod do edytora makrodefinicji

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

Metoda manualna 2. Dodanie pliku zawierającego makroinstrukcje ze skompresowanego pliku .zip

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.

  • Dla Windows możesz użyć aplikacji takich jak 7-zip, L-Zarc lub quickzip.
  • Dla Linux możesz użyć polecenia z terminala:
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

Wykonanie makrodefinicji w wierszu poleceń

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

Błędy w makrodefinicjach

Błędy wcięć

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'))

Przykład 1

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

Przykład 2

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

Przykład 3

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

Przykład 4

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ł

Dobry kod

Kod Pythona z odpowiednim wcięciem

Brak wyjścia tekstu z makrodefinicji

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.

Informacje dotyczące drukowania

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!")

Uaktywnienie widoku raportu

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

Włączenie polecenia print()

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:

  • Przekieruj wewnętrzne wyniki Pythona do widoku raportu
  • Przekieruj wewnętrzne błędy Pythona do widoku raportu

a następnie wciśnij przycisk OK.

Przekierowywanie wyników Pythona do widoku raportu

Polecenia Pythona wyświetlające informacje do widoku raportu