Insertion de pièces dans un assemblage suivant une suite

Bonjour à tous,

J'ai mis la question sous "Solidworks" car je sais que beaucoup d'entre vous sont sur ce logiciel, mais cette question pourrait convenir à d'autres logiciels de CAO 3D paramétrique.

Imaginons, j’ai 3 pièces (A, B, C), ces 3 pièces ont la même largeur, la même épaisseur mais des longueurs différentes:

Je souhaite que le logiciel CAO lise un fichier Excel (via une macro mais qui n’est pas l’ordre de ma question) et puisse insérer des pièces dans mon assemblage suivant l’ordre décrit dans Excel.

Par exemple, dans le fichier Excel et via des macros, j’obtiens la suite « C, A, B »

Comment le logiciel CAO pourrait insérer ces blocs les uns derrière les autres ?

J’avais imaginé que toutes les pièces seraient insérés au point d’origine de l’assemblage, C serait inséré en 1er sur l’origine, puis que A aurait son origine décalé de la longueur du bloc C, puis B serait décalé des longueurs « A + B » …. Mais dans ce cas, je n'aurais aucun "lien" entre les pièces, aucune contrainte n'accrocherait la pièce A à la pièce C.

Comme d'habitude, je suis assez flou dans mes explications donc n'hésitez pas à me poser des questions pour comprendre la mienne :)

Merci !

Oups, petit problème de mise en page ! Voici l'image : 

 


suiteinsertion.jpg
Bonjour, quelle est la question exactement ? Automatiser ça par une macro est possible et facile si les longueurs sont connues.

Oui comment automatiser l'insertion de ces pièces ? En sachant que les longueurs de ces pièces seront indiqués dans le même fichier Excel que celui qui renseigne la suite.

Je pense que le problème c'est de créer des contraintes entre les pièces pour que si celles-ci évolue l'assemblage suive.

j'imagine les 3 pièces n'ont aucun rapport entre elle : ce n'est pas un simple changement de dimension qui fait passer de l'une à l'autre.

Non non, imaginons que chaque pièce représente un process spécifique. Elles n'ont pas de liens entre elles à part le fait qu'elles doivent être les unes derrière les autres.

1 « J'aime »

Donc c'est possible avec SolidWorks.

Il faut utiliser AddComponent5 pour insérer une pièce, un exemple est disponible ici :

http://help.solidworks.com/2013/english/api/sldworksapi/Add_Component_and_Mate_Example_VB.htm

Puis AddMate3 pour la contraindre, un exemple est disponible ici :

http://help.solidworks.com/2011/English/api/sldworksapi/Add_Distance_Mates_Example_VB.htm

Edit :

Pour un lien Excel SolidWorks, voir ces liens :

http://www.lynkoa.com/forum/autres/vba-excel-pour-solidworks

http://webcache.googleusercontent.com/search?q=cache:YB6dOOlqCUsJ:www.cadsharp.com/blog/using-microsoft-excel-with-the-solidworks-api/+&cd=1&hl=fr&ct=clnk&gl=fr

Version en cache de Google pour ce dernier lien, car le site renvoie une erreur.

1 « J'aime »

Bonjour,

Si vous passez par une feuille Excel, vous pouvez avoir la longueur de vos "blocs" A, B et C.

Donc via la macro, insérez votre composant nouveau en y mettant une contrainte de coïncidence des plans de DROITE (de l'élément précédent et du nouveau), coIncidence pour les Plans de DESSUS et enfin distance entre les plans de FACE d'une valeur de (A+B)/2.

En supposant que votre origine est centrée dans vos 3D comme tout bon fichier de CAO ! :)

2 « J'aime »

Merci @.PL, je vais regarder tous ces liens sur la programmation en VBA, nous essayons cependant de limiter au maximum les développements de ce type (simplifier plein de programme LISP en passant par un logiciel de type Solidworks ou Inventor).

Néanmoins, ces liens sont très très intérressant pour quand je commencerai ma formation sur ce sujet !

@Benoit.LF, c'est exactement la stratégie que j'ai essayé d'expliqué dans l'image jointe, ça me rassure en tout cas sur la marche à suivre :)

Vouloir automatiser cela par une macro et limiter les développements me semble antinomique !
2 « J'aime »

@.PL, nous nous sommes mal compris, effectivement je veux automatiser l'insertion des pièces mais en limitant l'utilisation des macros tout de même pour avoir de la flexibilité.

Je sais que j'aurai besoin de faire quelques macros et les liens précédents m'aideront précieusement, mais je souhaite simplifier avant la démarche.

Le plus simple n'est-il pas de faire directement l'assemblage des "blocs" sur SW ???

Vos "blocs" représentent des des machines, des pièces unitaires, des schémas ?

Bonjour,

Une autre solution est de positionner les éléments par les Systéme de coordonnées XYZ et de les définir en tant que Référence de contrainte, comme ca chaque élément se pose en un clic dans l'assemblage finale.

Pour les question de longueur il suffit de faire un excel de famille de pièce et de déclarer des varaible avec le "Configuration Publisher" voir aide ci dessous.

http://help.solidworks.com/2015/french/solidworks/sldworks/c_configuration_publisher_top.htm

 

@+

 

 

2 « J'aime »

@Benoit :  Ces "blocs" représentent des pièces usinés où un fluide passe, chaque bloc a des usinages différents en fonction des caractéristiques souhaitées (pression, vitesse, frottements, ...). Les blocs sont mis bout-à-bout afin que le fluide passe d'un bloc à un autre en changeant ces caractéristiques.

@Coyote : Merci pour les références de contraintes que je ne connaissais pas sur Solidworks, cela sera effectivement une partie de la procédure ;) !

est ce que piloy assembly outil mycad ne pourrai pas faire affaire

http://www.mycadblog.fr/wp-content/uploads/2015/03/Pr%C3%A9sentation-des-utilitaires-2015.pdf

@+ ;-))

 

Si je comprends bien, vos blocs sont bien primsatiques, donc les contraintes d'assemblages sont simple.

Donc une macro avec les élèments de .PL devrait bien marcher, puisque vous connaissez le dernier bloc inséré.

Si demain vos bloc évolue en longueur, l'assemblage suivra sans autre manip contrairement à l'assemblage en fonction de leur longueur à l'instant T (à moins que la contrainte appelle la cote de longueur, mais ça va être compllqué).

@gt22 , merci pour l'info, je vais me rapprocher d'Axemble pour avoir plus d'information concernant cet utilitaire !

@stefeno, oui c'est tout à fait ça, je pense donc partir sur cette stratégie :

Soit la suite "A, C, D, A",

La macro insère le bloc A à l'origine, puis insère le bloc C derrière le bloc A (imaginons des plans crée sur chaque bloc, un de début et un de fin), j'ai donc une contrainte entre le plan de fin du bloc A et le plan de début du bloc C. Et ainsi de suite, le bloc D sera quant-à-lui accroché au bloc C via les plans, etc . . .