Prośba o pomoc w animacji

Polish forum

Moderators: PrzemoF, kaktus

Forum rules
Regulamin forum i pomocne informacje

WAŻNE! Przeczytaj zanim poprosisz o pomoc
Post Reply
kosia51
Posts: 13
Joined: Thu Jan 12, 2023 8:16 am

Prośba o pomoc w animacji

Post by kosia51 »

Witam wszystkich.
Proszę o pomoc a raczej dokładne wytłumaczenie, jak spowodować by drzwi w budynku, który sobie narysowałem we FreeCAD 0.20.1 się otwierały i zamykały. Jest to model 3D budynku lokomotywowni w Dynowie w skali 1:87 (H0e) i dobrze by było uruchomić wrota. Jak na razie udało mi się tylko spowodować otwarcie i zamknięcie tych drzwi, ale działa to tylko jako otwarte, lub zamknięte. Nagrałem macro, ale też działa jako otwórz lub zamknij - nie ma płynnego ruchu. Pomocy! Jak to zrobić?
Jestem człowiekiem 72 letnim, nie znam angielskiego a w temacie programowania też jestem zielony, jak szczypiorek na wiosnę i stąd moja prośba o dokładne wytłumaczenie tematu, najlepiej krok po kroku.
Pozdrawiam Tomek.
Chętnie bym dołączył obraz tego obiektu, ale nie wiem jak to zrobić. FreeCAD nie oferuje zapisu w formacie GIF, ani JPEG.
User avatar
bambuko
Veteran
Posts: 2185
Joined: Thu Oct 24, 2019 12:53 pm
Location: UK, England, North Devon

Re: Prośba o pomoc w animacji

Post by bambuko »

1 - Add Files
2 - Place inline
Screenshot_20230425_111657.png
Screenshot_20230425_111657.png (160.25 KiB) Viewed 1453 times
I am using Link branch and Assembly3
you can also download ... and try it here
excellent Assembly3 tutorials here
kosia51
Posts: 13
Joined: Thu Jan 12, 2023 8:16 am

Re: Prośba o pomoc w animacji

Post by kosia51 »

Spróbuję dodać obraz.
Dynów lokomotywownia.FCStd
(988.72 KiB) Downloaded 73 times
kosia51
Posts: 13
Joined: Thu Jan 12, 2023 8:16 am

Re: Prośba o pomoc w animacji

Post by kosia51 »

No i się nie udało
User avatar
bambuko
Veteran
Posts: 2185
Joined: Thu Oct 24, 2019 12:53 pm
Location: UK, England, North Devon

Re: Prośba o pomoc w animacji

Post by bambuko »

Udalo sie... :mrgreen: dolaczyc FreeCAD file.
Zeby dolaczyc obrazek, musisz go najpierw zrobic a potem dolaczyc...
Screenshot_20230425_115013.png
Screenshot_20230425_115013.png (192.95 KiB) Viewed 1422 times
I am using Link branch and Assembly3
you can also download ... and try it here
excellent Assembly3 tutorials here
User avatar
matyk
Posts: 111
Joined: Thu Feb 15, 2018 2:37 pm

Re: Prośba o pomoc w animacji

Post by matyk »

Dla wygody zmniejszyłem i zmodyfikowałem projekt.
Dynow_zmod.FCStd
(782.54 KiB) Downloaded 62 times
Dodałem arkusz kalkulacyjny, w którym można zmieniać stopień otwarcia drzwi w komórce A2.
Przez ciągłą zmianę zawartości tej komórki uzyskujemy efekt animacji.
Można to zrobić za pomocą skryptu.

Code: Select all

import FreeCAD as App, FreeCADGui as Gui, Part, time
from PySide2 import QtGui,QtCore

class Animation(object):
    def __init__(self):
        App.Console.PrintMessage('Animacja wystartowala\n')

        App.ActiveDocument.recompute()

        self.timer = QtCore.QTimer()
        QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"), self.my_update)
        self.timer.start(100) #krok co 0,1 sekundy (100 ms)
        self.val = 50.0 #wartosc poczatkowa
        self.step = 2.0 #wielkosc kroku
        self.end = 0.0 #wartosc koncowa

    def my_update(self):
        App.ActiveDocument.Spreadsheet.set("A2", str(self.val)) #wpisujemy aktualna wartosc w komorke A2
        self.val = self.val - self.step #kolejna wartosc bedzie pomniejszona o krok
        App.ActiveDocument.recompute() #przeliczamy dokument
        if self.val < self.end: #zatrzymanie aktualizacji osiagnela 0
            self.timer.stop()
            App.Console.PrintMessage('Animacja dotarla do konca\n')

    def stop(self):
        self.timer.stop()
        App.Console.PrintMessage('Animacja zatrzymana\n')

animation = Animation()

Wzorowałem się na tym oto skrypcie, napisanym swego czasu przez "kwahoo":
viewtopic.php?p=541101#p541101
kosia51
Posts: 13
Joined: Thu Jan 12, 2023 8:16 am

Re: Prośba o pomoc w animacji

Post by kosia51 »

Dziękuję za odpowiedź. W dalszym ciągu nie rozumiem skąd się wziął arkusz kalkulacyjny i jak uruchomić animację.
Pozdrawiam Tomek
User avatar
NewJoker
Veteran
Posts: 3089
Joined: Sun Oct 11, 2020 7:49 pm

Re: Prośba o pomoc w animacji

Post by NewJoker »

kosia51 wrote: Wed Apr 26, 2023 7:04 am W dalszym ciągu nie rozumiem skąd się wziął arkusz kalkulacyjny i jak uruchomić animację.
Arkusze kalkulacyjne we FreeCAD umożliwiają definiowanie parametrów związanych z modelem, które można łatwo zmienić z poziomu tabelki. Natomiast efekt animacji jest w tym przypadku wywoływany przez uruchomienie załączonego skryptu. Wystarczy go zapisać w pliku tekstowym, zmienić jego rozszerzenie na .py, otworzyć we FreeCAD i kliknąć zieloną strzałkę opisaną jako uruchomienie makra. Animacja zostanie włączona w oknie z modelem 3D.
kosia51
Posts: 13
Joined: Thu Jan 12, 2023 8:16 am

Re: Prośba o pomoc w animacji

Post by kosia51 »

Dziękuję za odpowiedź.
Pozdrawiam Tomek
Post Reply