Je suis touché par des anomalies dans la reconstruction de modèles 3d avec la gestion de composants suivant des configurations liées aux pièces ou à sous-assemblage. Utilisation de la fonction if statement sous solidworks Equations
Dim swApp As SldWorks.SldWorks
Dim Part As Object
Dim Assembly As Object
Dim CompModel As Object
Sub DeleteComponent()
Set swApp = Application.SldWorks
' Ouvrir l'assemblage actif
Set Assembly = swApp.ActiveDoc
' Vérifier si la condition est vraie (par exemple, si une dimension dépasse une valeur seuil)
If [Nom de votre dimension] > [Valeur seuil] Then
' Parcourir tous les composants de l'assemblage pour trouver celui à supprimer
For Each CompModel In Assembly.GetComponents(False)
If CompModel.Name = "Component2" Then
' Supprimer le composant s'il correspond au nom donné
Assembly.RemoveComponent3 False, 0, 0, CompModel
End If
Next
End If
End Sub
avant en initialisation j’ai ajouté le code suivant :
Dim swApp As SldWorks.SldWorks
Dim Part As Object
Dim Assembly As Object
Dim Component1 As Object
Dim Component2 As Object
Sub DefineComponents()
Set swApp = Application.SldWorks
' Ouvrir l'assemblage actif
Set Assembly = swApp.ActiveDoc
' Définir le premier composant (Component1)
Set Component1 = Assembly.GetComponentByName("NomDuComposant1")
' Définir le deuxième composant (Component2)
Set Component2 = Assembly.GetComponentByName("NomDuComposant2")
End Sub
Maitenant il faut croiser les donnéees avec les valeurs de seuil.
Ma problèmatique est la gestion par paramétrage d’une condition de non arc-boutement sur des colonnes de guidage en intégrant le coefficient d’adhérence et donc de déterminer le bras de levier maxi avec de provoquer le phénomène du blocage;
Par une étude statique j’ai mes valeurs, mais comment les ajouter au niveau du code pour la macro lors de l’initialisation et surtout ce que je ne maitrise pas avoir une boite de dialogue pour des libellés afin de permettre à un non concepteur de mettre à jour le modèle sans formation dédiée.
Je ne sais pas si dans les utilisateurs du forum une approche identique a été évoquée auparavant, merci pour les éclaircissements éventuels.
Besoin de clarifications…
Ce que j’ai compris de votre message :
vous avez deux ébauches de macros qui permettent d’identifier deux composants d’un assemblage pour l’une, et de supprimer un composant d’assemblage pour l’autre;
vous disposez par ailleurs d’une relation entre des paramètres géométriques qui valide ou non une condition de non arc-boutement.
Ce qui m’échappe, c’est le lien entre ces éléments. Je suppose que le but est de créer une macro qui teste la propriété de non arc-boutement entre deux pièces liées, utilisable par un non spécialiste.
Question: qu’est-ce qui doit être pris en entrée de la macro ? Les deux pièces liées ? Les paramètres de la condition de non arc-boutement (dimensions du guidage entre les deux pièces) ? Le coefficient de frottement ?
Que doit effectuer la macro en sortie ? Renvoyer un simple booléen indiquant arc-bouté ou non ? Ou davantage…
Je reprends le fil de la discussion, vous avez raison le but est de faire comprendre à un commercial dans mon cas la relation de base :
longueur du guidage de la bague (H), longueur du bras de levier maxi avant arc boutement(L),
Diamètre de l’axe support (D).
Je cherche à vérifier par statique graphique L = H/ 2 x tan (phi)
le coefficient d’adhérence phi. (0.2 pour mon exemple) ANNEXE Non arc Boutement validé-1.pdf (1.5 MB)
Alors avoir un booléen c’est suffisant car l’application concrète est d’avoir l’information.
Je vous remercie pour la démarche à suivre ou m’orienter sur les étapes à ajouter.
De mon coté l’idée est d’avoir des équations et me permettre de reconstruire sans passer par des configurations dérivées car je perds des relations de géométrie violentes …
une tangence est OK à l’enregistrement mais à l’ouverture celle ci est à 180° (avec la case cochée dans la boite de dialogue sans mon intervention, c’est satanique…).
Idem avec une orientation de perpendicularité j’ai un bug à l’ouverture.
J’ai un peu de mal à voir le lien qui existe entre le risque d’arc-boutement du guidage et les contraintes de tangence/perpendicularité évoquées dans votre message.
Le relation que vous utilisez dans votre étude théorique est celle dite du « serre-joint », qui valide le fait qu’il reste bloqué sous l’effet de l’effort de serrage.
A en juger par l’illustration du document pdf, il s’agit plutôt d’un mécanisme dans lequel un coulisseau guidé en translation doit probablement se déplacer dans les deux sens. Si le poids contribue au mouvement de descente du coulisseau, il doit exister un élément « moteur » pour le remonter. Le risque d’arc-boutement concerne aussi cet élément…
Le document joint (SW 2021) et la macro qui l’accompagne permettent d’illustrer la « relation du serre-joint » en agissant sur la longueur de guidage, sur la distance de l’effort à l’axe du guidage, et sur le coefficient de frottement. Avec un guidage sur une seule colonne…
Pour l’adapter à votre modèle, il faudra modifier les noms des cotes et des pièces qui interviennent dans la macro…
C’est exactement ce que je voulais pouvoir mettre en évidence, pour les contraintes c’est une instabilité du logiciel solidworks qui avec mon utilisation inadaptée à l’ouverture j’ai des contraintes de tangences qui s’inversent entre deux éléments contraints*.Aucune relation avec le cas analysé ici.*
Je vous remercie pour le travail effectué , je vais prendre mon temps demain d’analyser et de comprendre la structure de la macro.
Ce qui est très chouette c’est d’avoir des curseurs, la semaine dernière nous nous posions la question comment avoir un pilotage sous solidworks autrement qu’avec des équations.
J’ai travaillé en groupe sur le pilotage de modèle 3D à partir des esquisses en introduisant des équations avec des if, c’est pas mal cela évite de passer par des configurations ou de passer par la création d’une famille de pièces, des inconvénients subsistent mais c’est la mise en pratique à voir sur des modèles dans l’avenir.
Très bonne fin de journée, j’ai du travail pour analyser calment le fonctionnement du curseur.
Cordialement.