Create a FeaturePython object part II/pl: Revision history

Diff selection: Mark the radio buttons of the revisions to compare and hit enter or the button at the bottom.
Legend: (cur) = difference with latest revision, (prev) = difference with preceding revision, m = minor edit.

25 May 2024

  • curprev 13:0813:08, 25 May 2024Kaktus talk contribs 16,944 bytes +150 Created page with "Nierzadko można spotkać się z sytuacją, w której wywołania zwrotne Python nie są uruchamiane tak, jak powinny. Początkujący w tej dziedzinie mogą być pewni, że system wywołań zwrotnych FeaturePython nie jest kruchy ani uszkodzony. Niezmiennie, gdy wywołania zwrotne nie są uruchamiane, jest to spowodowane utratą lub niezdefiniowaniem odniesienia w kodzie bazowym. Jeśli jednak wydaje się, że wywołania zwrotne nie działają bez wyjaśnienia, dostarczen..."
  • curprev 13:0713:07, 25 May 2024Kaktus talk contribs 16,794 bytes +48 Created page with "{| class="wikitable" cellpadding="5px" width="100%" |+ Podstawowe wywołania zwrotne ViewProvider |- |style="width:25%" | {{incode|updateData(self, obj, prop)}} |style="width:25%" | Wywoływana po zmianie właściwości danych ''(modelu)'' |style="width:50%" | {{incode|obj}} jest odwołaniem do instancji klasy FeaturePython, a nie instancji ViewProvider. {{incode|prop}} to nazwa właściwości, która ma zostać zmieniona, a nie sam obiekt właściwości. |- | {{incode|..."
  • curprev 13:0513:05, 25 May 2024Kaktus talk contribs 16,746 bytes +15 Created page with "Ponadto w klasie ViewProvider znajdują się dwa wywołania zwrotne, które mogą czasami okazać się przydatne:"
  • curprev 13:0513:05, 25 May 2024Kaktus talk contribs 16,731 bytes +13 Created page with "Aby uzyskać pełną listę dostępnych metod FeaturePython, zobacz stronę metody FeaturePython."
  • curprev 13:0413:04, 25 May 2024Kaktus talk contribs 16,718 bytes +123 Created page with "{| class="wikitable" cellpadding="5px" width="100%" |+ Podstawowe wywołania zwrotne FeaturePython |style="width:25%" | {{incode|execute(self, obj)}} |style="width:25%" | Wywoływany podczas ponownego obliczania dokumentu |style="width:50%" | Nie wywołuj {{incode|recompute()}} z tej metody (lub jakiejkolwiek metody wywołanej z {{incode|execute()}}), ponieważ spowoduje to zagnieżdżone ponowne obliczenie. |- | {{incode|onBeforeChange(self, obj, prop)}} | Wywoływana p..."
  • curprev 13:0113:01, 25 May 2024Kaktus talk contribs 16,595 bytes +31 Created page with "Poniżej znajduje się lista wywołań zwrotnych, które mogą być zaimplementowane w podstawowym obiekcie FeaturePython:"
  • curprev 13:0113:01, 25 May 2024Kaktus talk contribs 16,564 bytes +12 Created page with "Omówiliśmy już pułapkowanie zdarzeń. Prawie każda metoda klasy FeaturePython służy jako wywołanie zwrotne dostępne dla obiektu FeaturePython ''(który uzyskuje dostęp do instancji naszej klasy poprzez atrybut {{incode|Proxy}})''."
  • curprev 13:0013:00, 25 May 2024Kaktus talk contribs 16,552 bytes +82 Created page with "Teraz zapisz zmiany i wróć do FreeCAD. Zaimportuj lub przeładuj moduł prostopadłościanu i wywołaj {{incode|box.create()}}. Powinieneś teraz zobaczyć dwie rzeczy: *Ikona obiektu prostopadłościanu uległa zmianie. *I, co ważniejsze, w widoku 3D pojawia się prostopadłościan. Jeśli go nie widzisz, naciśnij przycisk {{Button|16px Std: Przybliż i dopasuj wszystko}}. Możesz nawet zmienić wymiary prostopadło..."
  • curprev 12:5712:57, 25 May 2024Kaktus talk contribs 16,470 bytes +42 Created page with "Powoduje to instancję niestandardowej klasy ViewProvider i przekazuje do niej wbudowany obiekt ViewObject FeaturePython. Podczas inicjalizacji klasa ViewProvider zapisuje odniesienie do siebie w atrybucie FeaturePython {{incode|ViewObject.Proxy}}. W ten sposób, gdy FreeCAD musi wizualnie wyrenderować nasz prostopadłościan, może znaleźć klasę ViewProvider, aby to zrobić."
  • curprev 12:5612:56, 25 May 2024Kaktus talk contribs 16,428 bytes −14 Created page with "Dodaj kod ViewProvider na końcu {{FileName|box.py}} i w metodzie {{incode|create()}} wstaw następującą linię nad instrukcją {{incode|recompute()}}:"
  • curprev 12:5612:56, 25 May 2024Kaktus talk contribs 16,442 bytes +47 Created page with "W powyższym kodzie definiujemy ikonę XMP dla tego obiektu. Projektowanie ikon wykracza poza zakres tego poradnika, ale podstawowym projektowaniem można zarządzać za pomocą narzędzi open source, takich jak [https://www.gimp.org GIMP], [https://krita.org/en/ Krita] i [https://inkscape.org/ Inkscape]. Metoda {{incode|getIcon()}} jest opcjonalna, FreeCAD użyje domyślnej ikony, jeśli ta metoda nie zostanie podana."
  • curprev 12:5512:55, 25 May 2024Kaktus talk contribs 16,395 bytes +46 Created page with "Nasz obiekt FeaturePython również wymaga tych elementów. Do tej pory skupialiśmy się wyłącznie na części "modelowej" kodu, teraz nadszedł czas na napisanie części "widokowej". Na szczęście większość ViewProviderów jest prosta i nie wymaga wiele wysiłku do napisania, przynajmniej na początek. Oto przykładowy ViewProvider zapożyczony i nieco zmodyfikowany z [https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/TemplatePyMod/FeaturePython.py]:"
  • curprev 12:5312:53, 25 May 2024Kaktus talk contribs 16,349 bytes +43 Created page with "Dostawca widoku jest składnikiem obiektu, który pozwala mu na wizualną reprezentację w widoku 3D. FreeCAD wykorzystuje strukturę aplikacji, która została zaprojektowana w celu oddzielenia danych ("modelu") od ich wizualnej reprezentacji ("widoku"). Jeśli spędziłeś trochę czasu pracując z FreeCAD w Python, prawdopodobnie jesteś już tego świadomy dzięki wykorzystaniu dwóch podstawowych modułów Python: {{incode|FreeCAD}} i {{incode|FreeCADGui}}. ''(częs..."
  • curprev 12:5112:51, 25 May 2024Kaktus talk contribs 16,306 bytes +40 Created page with "==Piszemy ViewProvider=="
  • curprev 12:5112:51, 25 May 2024Kaktus talk contribs 16,266 bytes +16 Created page with "na początek strony"
  • curprev 12:5112:51, 25 May 2024Kaktus talk contribs 16,250 bytes +73 Created page with "Zapisz zmiany, przełącz się z powrotem do FreeCAD, usuń wszystkie istniejące obiekty, przeładuj moduł prostopadłoscianu i utwórz nowy obiekt prostopadłoscianu. Nowy wynik jest nieco rozczarowujący. Nie ma już dodatkowego obiektu w widoku drzewa, a ikona w widoku drzewa zmieniła się, ale nasz prostopadłościan w widoku 3D również zniknął (dlatego ikona jest szara). Co się stało? Chociaż poprawnie utworzyliśmy nasz kształt prostopadłoscianu i przyp..."
  • curprev 12:4112:41, 25 May 2024Kaktus talk contribs 16,177 bytes 0 Created page with "Aby pozbyć się oddzielnego obiektu pudełka, musimy przypisać wynik metody {{incode|makeBox()}} do właściwości {{incode|Shape}} naszego obiektu {{incode|Part::FeaturePython}}. Zmień tę linię w {{incode|execute()}}:"
  • curprev 12:3912:39, 25 May 2024Kaktus talk contribs 16,177 bytes +61 Created page with "Na pierwszy rzut oka wynik może wyglądać dobrze, ale są pewne problemy. Najbardziej oczywistym z nich jest to, że prostopadłościan jest reprezentowany przez zupełnie inny obiekt niż nasz obiekt FeaturePython. {{incode|Part.show()}} po prostu tworzy osobny obiekt prostopadłościanu i dodaje go do dokumentu. Co gorsza, jeśli zmienisz wymiary obiektu FeaturePython, zostanie utworzony inny kształt prostopadłościanu, a stary pozostanie na swoim miejscu. A jeśli..."
  • curprev 12:3712:37, 25 May 2024Kaktus talk contribs 16,116 bytes +35 Created page with "Usuń wszystkie istniejące obiekty, przeładuj moduł box i utwórz nowy obiekt box za pomocą {{incode|box.create()}}. Zauważ, że na ekranie natychmiast pojawia się prostopadłościan. Dzieje się tak, ponieważ wymuszamy ponowne obliczenie dokumentu na końcu {{incode|box.create()}}, co z kolei uruchamia metodę {{incode|execute()}} naszej klasy {{incode|box}}."
  • curprev 12:3612:36, 25 May 2024Kaktus talk contribs 16,081 bytes +21 Created page with "Polecenia te wykonują metody Python, które są domyślnie dostarczane z FreeCAD: *Metoda {{incode|Part.makeBox()}} generuje kształt prostopadłościanu. *Obejmujące wywołanie {{incode|Part.show()}} dodaje kształt do dokumentu i czyni go widocznym."
  • curprev 12:3612:36, 25 May 2024Kaktus talk contribs 16,060 bytes +6 Created page with "Następnie w {{incode|execute()}} usuń instrukcję {{incode|print()}} i dodaj następującą linię w jej miejsce:"
  • curprev 12:3212:32, 25 May 2024Kaktus talk contribs 16,054 bytes +3 Created page with "Najpierw na górze pliku {{FileName|box.py}}, poniżej istniejącego importu, dodaj:"
  • curprev 12:3212:32, 25 May 2024Kaktus talk contribs 16,051 bytes +49 Created page with "==Dodawanie prostopadłościanu=="
  • curprev 12:3112:31, 25 May 2024Kaktus talk contribs 16,002 bytes +72 Created page with "Na stronie Tworzenie obiektów FeaturePython - część I skupiliśmy się na wewnętrznych aspektach klasy Python zbudowanej wokół obiektu FeaturePython, a konkretnie obiektu {{incode|App::FeaturePython}}. Stworzyliśmy obiekt, zdefiniowaliśmy niektóre właściwości i dodaliśmy wywołanie zwrotne zdarzenia na poziomie dokumentu, które pozwala naszemu obiektowi odpowiedzieć na ponowne obliczenie dokumentu za pomocą met..."

19 May 2024

17 May 2024

27 January 2024

24 April 2022

7 July 2021

25 March 2021

23 March 2021

19 February 2021

23 August 2020

9 August 2020

4 August 2020

12 June 2020