Solidworks => STEP => ASM4 => MBdyn : quelle est la bonne approche ?
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Be nice to others! Read the FreeCAD code of conduct!
-
- Posts: 24
- Joined: Fri Mar 19, 2021 12:19 pm
- Location: France
Re: Solidworks => STEP => ASM4 => MBdyn : quelle est la bonne approche ?
Voici un bilan d'étape... et une nouvelle question (à la fin)
J'ai mis en place les LCS en m'accrochant sur des "Datum Point" créés au centre des arcs de cercles de mes guidages en rotation.
Afin de créer un "Datum Point" au milieu d'un segment créé par deux autres "Datum Point" (les centres des arcs de cercles) j'ai utilisé l'accrochage center of mass.
Pour créer les LCS j'ai pris appui sur 3 "Datum Point" (un pour indiqué le centre de centre du repère, un pour donner la direction de l'axe X et un autre pour donner la direction de l'axe Z). L'accrochage est réalisé en utilisant (OXZ) (ce qui correspond à mon plan de symétrie).
J'ai posé les variables et les constantes dont j'aurai besoin. Ici les unités sont en mm. J'espère que cela ne posera pas de problème avec MBdyn.
Remarque : j'ai d’abord appelé la longueur variable "lambda". Cela ne posait pas de problème lors de la création de la variable, mais impossible de l'utiliser dans l'expression de la cote. Aussi j'ai utilisé "Lambda" avec une majuscule à la place. Je me demande si l'interpréteur python n'a pas pris ma variable Variables.lambda pour le mot réservé de déclaration de fonction à la volée "lambda" ?
Ensuite j'ai créé un nouveau fichier d'assemblage dans lequel j'ai créé le sketch maître. Ce mécanisme à 3 barres est piloté par l'allongement de la distance cotée 131mm. Les deux segments à 90 degrés sont fixes. J'ai accroché des LCS sur ce sketch.
Puis j'ai ouvert un à un les sous-assemblages et utilisé "Link Part" pour importer le sous-assemblage dans l'assemblage avec sélection des bons repères pour caler les pièces.
Petit test avec une animation. Je pilote l'angle de rotation de la vis par rapport au stator. Le bras bouge. TOP !
Question : la vis s'incline mais ne tourne pas autour de son axe principal. Faut-il que je rajoute un sketch perpendiculaire à l'axe de la vis pour imposer un angle entre deux segments et y coller un autre LCS pour pouvoir animer la vis ou y a-t-il plus rapide ?
J'ai mis en place les LCS en m'accrochant sur des "Datum Point" créés au centre des arcs de cercles de mes guidages en rotation.
Afin de créer un "Datum Point" au milieu d'un segment créé par deux autres "Datum Point" (les centres des arcs de cercles) j'ai utilisé l'accrochage center of mass.
Pour créer les LCS j'ai pris appui sur 3 "Datum Point" (un pour indiqué le centre de centre du repère, un pour donner la direction de l'axe X et un autre pour donner la direction de l'axe Z). L'accrochage est réalisé en utilisant (OXZ) (ce qui correspond à mon plan de symétrie).
J'ai posé les variables et les constantes dont j'aurai besoin. Ici les unités sont en mm. J'espère que cela ne posera pas de problème avec MBdyn.
Remarque : j'ai d’abord appelé la longueur variable "lambda". Cela ne posait pas de problème lors de la création de la variable, mais impossible de l'utiliser dans l'expression de la cote. Aussi j'ai utilisé "Lambda" avec une majuscule à la place. Je me demande si l'interpréteur python n'a pas pris ma variable Variables.lambda pour le mot réservé de déclaration de fonction à la volée "lambda" ?
Ensuite j'ai créé un nouveau fichier d'assemblage dans lequel j'ai créé le sketch maître. Ce mécanisme à 3 barres est piloté par l'allongement de la distance cotée 131mm. Les deux segments à 90 degrés sont fixes. J'ai accroché des LCS sur ce sketch.
Puis j'ai ouvert un à un les sous-assemblages et utilisé "Link Part" pour importer le sous-assemblage dans l'assemblage avec sélection des bons repères pour caler les pièces.
Petit test avec une animation. Je pilote l'angle de rotation de la vis par rapport au stator. Le bras bouge. TOP !
Question : la vis s'incline mais ne tourne pas autour de son axe principal. Faut-il que je rajoute un sketch perpendiculaire à l'axe de la vis pour imposer un angle entre deux segments et y coller un autre LCS pour pouvoir animer la vis ou y a-t-il plus rapide ?
Last edited by SuperMarty on Sun Mar 28, 2021 8:06 pm, edited 1 time in total.
-
- Posts: 24
- Joined: Fri Mar 19, 2021 12:19 pm
- Location: France
Re: Solidworks => STEP => ASM4 => MBdyn : quelle est la bonne approche ?
Voici la solution utilisée pour faire tourner la vis (sans avoir besoin de rajouter un LCS supplémentaire ni faire un autre sketch) :
Dans l'onglet "Données" partie "Assembly", vérifier/ajuster l'axe de la rotation (dans ce cas c'est x, donc "Axe"=[1,0,0])
Dans la rublique "Angle" saisir la variable correspondant à l'angle de la vis par rapport à l'écrou (Variables.theta)
BINGO !
PS : cette solution est inspirée de la vidéo de Mads Leth Danielsen (https://www.youtube.com/watch?v=XHVnopCW_6w)
Sélectionner la vis dans le "Model" de ASM4Dans l'onglet "Données" partie "Assembly", vérifier/ajuster l'axe de la rotation (dans ce cas c'est x, donc "Axe"=[1,0,0])
Dans la rublique "Angle" saisir la variable correspondant à l'angle de la vis par rapport à l'écrou (Variables.theta)
BINGO !
PS : cette solution est inspirée de la vidéo de Mads Leth Danielsen (https://www.youtube.com/watch?v=XHVnopCW_6w)
-
- Posts: 24
- Joined: Fri Mar 19, 2021 12:19 pm
- Location: France
Re: Solidworks => STEP => ASM4 => MBdyn : quelle est la bonne approche ?
J'ai cherché à associer une couleur différente à chaque classe d'équivalence cinématique.
Malheureusement dans la classe d'équivalence du bâti ainsi que dans celle du bras il y a des "Link Part" vers la même pièce (AxeArticulation, AxeArticulation001 sont des liens vers une seule et même pièce). Aussi lorsque j'affecte une couleur à l'un des axes ce sont tous les axes qui changent de couleur. Afin de mettre en évidence le pb, j'ai peint en rouge la pièce.
Comment dissocier les couleurs de ces "Link Part" tout en gardant le même fichier de définition de la pièce pour toutes les instances ?
Malheureusement dans la classe d'équivalence du bâti ainsi que dans celle du bras il y a des "Link Part" vers la même pièce (AxeArticulation, AxeArticulation001 sont des liens vers une seule et même pièce). Aussi lorsque j'affecte une couleur à l'un des axes ce sont tous les axes qui changent de couleur. Afin de mettre en évidence le pb, j'ai peint en rouge la pièce.
Comment dissocier les couleurs de ces "Link Part" tout en gardant le même fichier de définition de la pièce pour toutes les instances ?
-
- Posts: 24
- Joined: Fri Mar 19, 2021 12:19 pm
- Location: France
Re: Solidworks => STEP => ASM4 => MBdyn : quelle est la bonne approche ?
Pour répondre à ma question précédente...
Je pense avoir compris qu'il y a deux façons d'appliquer une couleur à une pièce :
Méthode 1 : dans le workbench Assembly4 exclusivement Choisir le pièce "Linkée" dans le Model et utiliser "Apparence".
Dans la fenêtre choisir la couleur de la forme souhaitée.
Cette couleur affecte toutes les instances de cette pièce dans l'assemblage
Méthode 2 : Choisir le pièce "Linkée" dans le Model et utiliser "Remplacer les couleurs".
Puis sélectionner les faces à colorier et appliquer la couleur souhaitée
Au final j'ai utilisé un mélange des deux méthodes précédentes pour résoudre mon problème de couleur des classes d'équivalences. J'ai obtenu : Remarque : l'ordre dans lequel on applique ces modifications de couleurs ainsi que l'ordre des "Link part" dans le Model semblent influencer le résultat final (parfois la couleur souhaitée n’apparaît que lorsque la souris passe sur la zone...).
Savez-vous quelle est la règle générale concernant la remarque précédente ?
Je pense avoir compris qu'il y a deux façons d'appliquer une couleur à une pièce :
Méthode 1 : dans le workbench Assembly4 exclusivement Choisir le pièce "Linkée" dans le Model et utiliser "Apparence".
Dans la fenêtre choisir la couleur de la forme souhaitée.
Cette couleur affecte toutes les instances de cette pièce dans l'assemblage
Méthode 2 : Choisir le pièce "Linkée" dans le Model et utiliser "Remplacer les couleurs".
Puis sélectionner les faces à colorier et appliquer la couleur souhaitée
Au final j'ai utilisé un mélange des deux méthodes précédentes pour résoudre mon problème de couleur des classes d'équivalences. J'ai obtenu : Remarque : l'ordre dans lequel on applique ces modifications de couleurs ainsi que l'ordre des "Link part" dans le Model semblent influencer le résultat final (parfois la couleur souhaitée n’apparaît que lorsque la souris passe sur la zone...).
Savez-vous quelle est la règle générale concernant la remarque précédente ?
-
- Posts: 24
- Joined: Fri Mar 19, 2021 12:19 pm
- Location: France
Re: Solidworks => STEP => ASM4 => MBdyn : quelle est la bonne approche ?
Avant de démarrer l'étude dynamique avec MBdyn, j'ai souhaité faire quelques vérifications sur mon assemblage et découvrir les outils disponibles pour déterminer la masse d'un sous-ensemble, la position du centre de masse, l'opérateur d'inertie...
Surprise : la vis a une masse négative (voir https://forum.freecadweb.org/viewtopic. ... 58#p491758)
=> raison : les faces lors de l'export (ou de l'import ?) n'étaient pas bien orientées.
=> solution : ouvrir le fichier de la vis, Atelier Part > Pièce > Inverser les formes. Attention : inverser la pièce nécessite ensuite de retoucher son assemblage pour que le "Link Part" pointe bien vers la vis inversée.
=> Note pour la prochaine fois : vérifier la cohérence du fichier STEP avant de débuter l'assemblage. Malheureusement je n'ai pas trouvé d'outil pour faire facilement ce travail sous Linux. Toutefois Analysis situs (http://quaoar.su/blog/page/analysis-situs) semble être un bon choix sous Windows. Une version pour Linux serait en cours de préparation. (je n'ai pas testé la version 0.4 qu'il faut compiler à la main sous Linux - je tenterai probablement la compilation lorsque la version 1.0 sera ok mais je préfèrerais qu'un AppImage soit dispo).
Déception : je n'ai pas trouvé d'outil capable de déterminer les propriétés d'inertie d'un sous-assemblage de asm4 (classe d'équivalence). FCinfo permet de déterminer la masse, le centre de masse et l'opérateur d'inertie pour une seule pièce.
=> solution bancale : fusionner toutes les pièces du sous-assemblage (Part > Exécuter l'union de plusieurs formes). A partir de là il n'est plus possible d'appliquer des masses volumiques différentes pour les pièces de l'assemblage. Ce qui conduit à des écarts plus ou moins importants en fonction de l'inhomogénéité de l'assemblage. J'ai affecté une densité moyenne pour obtenir la bonne masse de l'ensemble.
Ci-dessous un comparatif SolidWorks / FCinfo : On constate que le calcul des volumes est bon
On constate également que les axes ne sont plus exactement orientés comme sur le fichier original (quelques pouièmes de différence heureusement).
Pour le centre de masse et l'opérateur d'inertie PAS GLOP ! (en raison de la non prise en compte des différentes densités)
Connaissez-vous une macro qui fasse le boulot (masse + centre de masse + opérateur d'inertie d'un assemblage) ? Si en plus il était possible de choisir le centre (G ou autre) et la base pour l'opérateur d'inertie ce serait super.
Ou si quelqu'un est volontaire pour coder cette fonctionnalité dans FCinfo ce serait génial
Surprise : la vis a une masse négative (voir https://forum.freecadweb.org/viewtopic. ... 58#p491758)
=> raison : les faces lors de l'export (ou de l'import ?) n'étaient pas bien orientées.
=> solution : ouvrir le fichier de la vis, Atelier Part > Pièce > Inverser les formes. Attention : inverser la pièce nécessite ensuite de retoucher son assemblage pour que le "Link Part" pointe bien vers la vis inversée.
=> Note pour la prochaine fois : vérifier la cohérence du fichier STEP avant de débuter l'assemblage. Malheureusement je n'ai pas trouvé d'outil pour faire facilement ce travail sous Linux. Toutefois Analysis situs (http://quaoar.su/blog/page/analysis-situs) semble être un bon choix sous Windows. Une version pour Linux serait en cours de préparation. (je n'ai pas testé la version 0.4 qu'il faut compiler à la main sous Linux - je tenterai probablement la compilation lorsque la version 1.0 sera ok mais je préfèrerais qu'un AppImage soit dispo).
Déception : je n'ai pas trouvé d'outil capable de déterminer les propriétés d'inertie d'un sous-assemblage de asm4 (classe d'équivalence). FCinfo permet de déterminer la masse, le centre de masse et l'opérateur d'inertie pour une seule pièce.
=> solution bancale : fusionner toutes les pièces du sous-assemblage (Part > Exécuter l'union de plusieurs formes). A partir de là il n'est plus possible d'appliquer des masses volumiques différentes pour les pièces de l'assemblage. Ce qui conduit à des écarts plus ou moins importants en fonction de l'inhomogénéité de l'assemblage. J'ai affecté une densité moyenne pour obtenir la bonne masse de l'ensemble.
Ci-dessous un comparatif SolidWorks / FCinfo : On constate que le calcul des volumes est bon
On constate également que les axes ne sont plus exactement orientés comme sur le fichier original (quelques pouièmes de différence heureusement).
Pour le centre de masse et l'opérateur d'inertie PAS GLOP ! (en raison de la non prise en compte des différentes densités)
Connaissez-vous une macro qui fasse le boulot (masse + centre de masse + opérateur d'inertie d'un assemblage) ? Si en plus il était possible de choisir le centre (G ou autre) et la base pour l'opérateur d'inertie ce serait super.
Ou si quelqu'un est volontaire pour coder cette fonctionnalité dans FCinfo ce serait génial
Re: Solidworks => STEP => ASM4 => MBdyn : quelle est la bonne approche ?
J'avais fait cette macro : https://wiki.freecadweb.org/Macro_CenterOfMass il y a quelques temps.SuperMarty wrote: ↑Sun Mar 28, 2021 7:56 pm Connaissez-vous une macro qui fasse le boulot (masse + centre de masse + opérateur d'inertie d'un assemblage) ? Si en plus il était possible de choisir le centre (G ou autre) et la base pour l'opérateur d'inertie ce serait super.
Pour les masses et centre de masse c'est bon, mais j'avais pas calculé les moments inerties.
Je suppose que ça doit pouvoir se faire sans trop de mal.
-
- Posts: 24
- Joined: Fri Mar 19, 2021 12:19 pm
- Location: France
Re: Solidworks => STEP => ASM4 => MBdyn : quelle est la bonne approche ?
Bonjour @schupin,
Je te remercie pour ta réponse.
J'ai testé ta macro avec des éléments d'un assemblage asm4. Il semblerait que la macro se perde dans les repères de asm4 car elle me met le centre de masse en dehors de la pièce (en photo ci-dessous le cas de la chaise (bâti) sélectionnée seule avec son centre de masse sous la forme d'une boule rouge en-dehors de la pièce).
Si tu es partant pour faire évoluer ta macro sache que je serais honoré d'être bêta-testeur
Je peux t'envoyer la maquette en privé pour que tu constates/testes (je ne connais pas la licence de la maquette originale, aussi je ne souhaite pas la diffuser ici).
PS : je n'arrive pas à voir ce qu'il y a dans les boutons. Mais ce n'est probablement pas lié à ta macro car j'ai le même bug avec des boutons de FCinfo
PS2 : pour rappel voici ma config
OS: Linux Mint 20 (X-Cinnamon/cinnamon)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 2021.311.24301 +3373 (Git) AppImage
Build type: Release
Branch: LinkStage3
Hash: 91ca94db328bf6126c4a01547b6aa2202d876ebc
Python version: 3.8.8
Qt version: 5.12.9
Coin version: 4.0.1
OCC version: 7.4.0
Locale: French/France (fr_FR)
Je te remercie pour ta réponse.
J'ai testé ta macro avec des éléments d'un assemblage asm4. Il semblerait que la macro se perde dans les repères de asm4 car elle me met le centre de masse en dehors de la pièce (en photo ci-dessous le cas de la chaise (bâti) sélectionnée seule avec son centre de masse sous la forme d'une boule rouge en-dehors de la pièce).
Si tu es partant pour faire évoluer ta macro sache que je serais honoré d'être bêta-testeur
Je peux t'envoyer la maquette en privé pour que tu constates/testes (je ne connais pas la licence de la maquette originale, aussi je ne souhaite pas la diffuser ici).
PS : je n'arrive pas à voir ce qu'il y a dans les boutons. Mais ce n'est probablement pas lié à ta macro car j'ai le même bug avec des boutons de FCinfo
PS2 : pour rappel voici ma config
OS: Linux Mint 20 (X-Cinnamon/cinnamon)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 2021.311.24301 +3373 (Git) AppImage
Build type: Release
Branch: LinkStage3
Hash: 91ca94db328bf6126c4a01547b6aa2202d876ebc
Python version: 3.8.8
Qt version: 5.12.9
Coin version: 4.0.1
OCC version: 7.4.0
Locale: French/France (fr_FR)
-
- Posts: 24
- Joined: Fri Mar 19, 2021 12:19 pm
- Location: France
Re: Solidworks => STEP => ASM4 => MBdyn : quelle est la bonne approche ?
Par contre en éditant le sous-assemblage ta macro marche bien
Re: Solidworks => STEP => ASM4 => MBdyn : quelle est la bonne approche ?
Bonsoir,
Il faut les télécharger à part (https://forum.freecadweb.org/download/file.php?id=84270) et dézipper à coté du fichier macro.
Avec plaisir, quand j'avais fait ça, j'avais pas essayé de trucs venant d'ASM4. Je veux bien essayer de comprendre d'où vient le souci. Si c'est possible, je te laisse envoyer un PM.SuperMarty wrote: ↑Mon Mar 29, 2021 7:29 pm Si tu es partant pour faire évoluer ta macro sache que je serais honoré d'être bêta-testeur
Je peux t'envoyer la maquette en privé pour que tu constates/testes (je ne connais pas la licence de la maquette originale, aussi je ne souhaite pas la diffuser ici).
Je pense que ça vient juste des icones qui ne sont pas à côté de la macro.SuperMarty wrote: ↑Mon Mar 29, 2021 7:29 pm PS : je n'arrive pas à voir ce qu'il y a dans les boutons. Mais ce n'est probablement pas lié à ta macro car j'ai le même bug avec des boutons de FCinfo
Il faut les télécharger à part (https://forum.freecadweb.org/download/file.php?id=84270) et dézipper à coté du fichier macro.
-
- Posts: 24
- Joined: Fri Mar 19, 2021 12:19 pm
- Location: France
Re: Solidworks => STEP => ASM4 => MBdyn : quelle est la bonne approche ?
En effet, c'est nickel à présent !schupin wrote: ↑Mon Mar 29, 2021 8:35 pm Je pense que ça vient juste des icones qui ne sont pas à côté de la macro.
Il faut les télécharger à part (https://forum.freecadweb.org/download/file.php?id=84270) et dézipper à coté du fichier macro.
PS : tu as reçu un PM