Idée : Contrôler FreeCAD avec PureData
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Be nice to others! Read the FreeCAD code of conduct!
Re: Idée : Contrôler FreeCAD avec PureData
Un exemple de modélisation procédurale :
Le Générateur de Vase Moche Vous pouvez le récupérer là : https://github.com/FlachyJoe/FCPD/tree/main/Sample
Le Générateur de Vase Moche Vous pouvez le récupérer là : https://github.com/FlachyJoe/FCPD/tree/main/Sample
Re: Idée : Contrôler FreeCAD avec PureData
Salut !
La moulinette continue de tourner, et le projet d'avancer.
Les nouveautés depuis le dernier message :
La moulinette continue de tourner, et le projet d'avancer.
Les nouveautés depuis le dernier message :
- Il y a maintenant un atelier dédié, plus besoin de jouer avec des macros : https://github.com/FlachyJoe/FCPDWorkbench
- La (maigre) doc est en anglais mais l'interface est traduite en français.
- Des objets Pure-Data réagissant à la sélection ou au passage de souris sur un objet FreeCAD sont disponibles : [fc_selObserver] [fc_objObserver]
- Les fonctions des ateliers Part (y compris Part.Shape) et Draft sont accessibles depuis Pure-Data.
- L'objet [fc_controler] (et son pendant PDControler qui est créé dynamiquement par l'objet Pure-Data) permet de transférer facilement des valeurs entre PD et FC. En utilisant des expressions, n'importe quel objet FreeCAD peut être contrôlé très facilement par un flux de données venant de Pure-Data.
- L'objet PDInclude permet de stocker un tissage Pure-Data directement dans un fichier FCStd. Un double-clic sur l'objet ouvre automatique Pure-Data et affiche le tissage.
- Le dépôt https://github.com/FlachyJoe/FCPDWorkbench_Samples contient des exemples pour démarrer.
Re: Idée : Contrôler FreeCAD avec PureData
Ça a l'air de bien avancer!
Je cherche le moyen de changer de positions mon mannequin sans le faire point par point.
Ton atelier pourrait il m'aider? L'idéal serait de bouger ses os via la souris à l'écran.
Je cherche le moyen de changer de positions mon mannequin sans le faire point par point.
Ton atelier pourrait il m'aider? L'idéal serait de bouger ses os via la souris à l'écran.
- Attachments
-
- Capture.JPG (20.75 KiB) Viewed 3325 times
Re: Idée : Contrôler FreeCAD avec PureData
Donc tu as déjà fait une hiérarchie de Std_Part et des clic-droit Transformer, la rotation par joint ne te convient pas.
Tu veux positionner les joints en fonction de l'emplacement de la main par exemple ?
C'est de la cinématique inverse (Inverse Kinematic).
Globalement l'atelier FCPD n'est qu'une surcouche permettant de programmer des macros sans passer par du Python. On peut aussi bénéficier des bibliothèques écrites pour Pure-Data mais je n'en connais pas implémentant de la cinématique inverse. Je vais creuser.
Re: Idée : Contrôler FreeCAD avec PureData
Bonjour,
Pourrait on animer des assemblages A2+, Assm3, Assm4, ...?
Merci.
Pourrait on animer des assemblages A2+, Assm3, Assm4, ...?
Merci.
Fada de 3D.
Linux Mint
Linux Mint
Re: Idée : Contrôler FreeCAD avec PureData
Salut,
on peut facilement animer tout ce qui accepte les expressions avec un objet [fc_controler f]. Il faut faire référence à IncommingData.DataFlow1 dans les expressions et relier l'entrée du [fc_controler] à une chaîne Pure-Data. Voir https://forum.freecadweb.org/viewtopic. ... 20#p537320
Pour faire varier une propriété qui n’accepte pas les expressions, il faut y faire référence par le nom de l'objet et le nom de la propriété, voici un exemple :
Re: Idée : Contrôler FreeCAD avec PureData
Premier fonctionnement de cinématique inverse !
C'est leeeent. Il va falloir passer une partie du calcul en python pur, il y a trop d'aller-retour Pure-Data<->FreeCAD à chaque déplacement.
Ce modèle fonctionne avec la branche dev_ik du dépôt, les autres exemples ont besoin d'une mise à jour pour fonctionner avec cette version.
EDIT : la branche principale inclus maintenant les outils IK et les exemples sont à jour avec cette implémentation
La chaîne cinématique est codée dans le tissage Pure-Data et ce n'est pas très compréhensible pour le moment…
EDIT : voir https://forum.freecadweb.org/viewtopic. ... 35#p563335 pour l'implémentation actuelle
C'est leeeent. Il va falloir passer une partie du calcul en python pur, il y a trop d'aller-retour Pure-Data<->FreeCAD à chaque déplacement.
Ce modèle fonctionne avec la branche dev_ik du dépôt, les autres exemples ont besoin d'une mise à jour pour fonctionner avec cette version.
EDIT : la branche principale inclus maintenant les outils IK et les exemples sont à jour avec cette implémentation
La chaîne cinématique est codée dans le tissage Pure-Data et ce n'est pas très compréhensible pour le moment…
EDIT : voir https://forum.freecadweb.org/viewtopic. ... 35#p563335 pour l'implémentation actuelle
Last edited by flachyjoe on Sat Jan 29, 2022 11:06 am, edited 2 times in total.
Re: Idée : Contrôler FreeCAD avec PureData
Voila une version plus rapide, ça tourne à 3-6 rafraîchissement par seconde chez moi.
(Il faut mettre à jour depuis le dépôt)
EDIT : voir https://forum.freecadweb.org/viewtopic. ... 35#p563335 pour l'implémentation actuelle
Mode d'emploi :
EDIT : bug corrigé
NB² : les modification du fichier *.pd intégré sont enregistrées dans le document *.FCStd mais il faut encore enregistrer celui-ci pour les conserver.
(Il faut mettre à jour depuis le dépôt)
EDIT : voir https://forum.freecadweb.org/viewtopic. ... 35#p563335 pour l'implémentation actuelle
Mode d'emploi :
- Prérequis :
- Installer Pure-Data et les bibliothèques nécessaires (voir le README du dépôt) ou Purr-Data qui les inclus.
- Cloner la branche dev_ik
- Cloner la branche principale du dépôt. https://github.com/FlachyJoe/FCPDWorkbench
- Installer le module python ikpy
Code: Select all
pip3 install ikpy
- Ouvrir le fichier ikpy.FCStd
- Double-cliquer sur l'objet PDInclude pour l'ouvrir dans Pure-Data
- Cocher Auto-Update
- Déplacer l'objet Target (en double-cliquant dessus)
Code: Select all
App.ActiveDocument.PDInclude.Proxy.endEdit()
NB² : les modification du fichier *.pd intégré sont enregistrées dans le document *.FCStd mais il faut encore enregistrer celui-ci pour les conserver.
Last edited by flachyjoe on Sat Jan 29, 2022 11:08 am, edited 3 times in total.
Re: Idée : Contrôler FreeCAD avec PureData
je bloque sur le double clic PDinclude. Et j'ai le message:
Code: Select all
18:21:57 Traceback (most recent call last):
File "C:\Users\vince\AppData\Roaming\FreeCAD\Mod\FCPDWorkbench-dev_ik\pdinclude.py", line 29, in <module>
from PyQt5 import QtCore
<class 'ModuleNotFoundError'>: No module named 'PyQt5'
18:21:57 Traceback (most recent call last):
File "C:\Users\vince\AppData\Roaming\FreeCAD\Mod\FCPDWorkbench-dev_ik\pdinclude.py", line 29, in <module>
from PyQt5 import QtCore
<class 'ModuleNotFoundError'>: No module named 'PyQt5'
Re: Idée : Contrôler FreeCAD avec PureData
@GlouGlou
FreeCAD est sensé utilisé PySide à la place de PyQt5 mais chez moi ça provoque une erreur de segmentation à l'instanciation du QTimer à pdserver.py#65.
Donc je te propose :
Sinon tu peux quand même tenter remplacer PyQt5 par PySide dans pdinclude.py#29 et pdserver.py#34
EDIT : c'est résolu (merci openBrain ), il faut mettre à jour depuis le dépôt.
FreeCAD est sensé utilisé PySide à la place de PyQt5 mais chez moi ça provoque une erreur de segmentation à l'instanciation du QTimer à pdserver.py#65.
Donc je te propose :
Code: Select all
pip3 install pyqt5
EDIT : c'est résolu (merci openBrain ), il faut mettre à jour depuis le dépôt.