Convertir en tolerie dans une bibliothèque de fonction ou une macro

Bonjour,

je cherche à intégrer la fonction de conversion de volume en tolerie dans une fonction de bibliothèque, mais cela ne semble pas possible en SW2016 en tout cas. Y aurait-il ue astuce à connaitre ou une solution alternative type macro, qui permettrait en un seul clic de combiner plusieurs corps et convertir en tolerie le coprs résultant, en faisant une recherche automatique des plis pré-existants ?  Merci d'avance.

Bonjour,

Peux-tu nous faire un imprimé écran de ta pièce car là je ne suis pas trop sûr de ce que tu veux dire. Mais essaie la fonction insérer des plis; en un clic cette fonction reconnais les plis.

1 « J'aime »

Déjà pour combiner des corps il faut qu'il soit

De la même matiere

qui s'entrecroisent

tes pièce sont en multicorps ou il sont fabriquer indépendamment ?

Ta macro doit être aussi capable de faire le café ?

@+ ;-)

4 « J'aime »

Bonjour,

Voilà l'instruction à utiliser pour convertir en tôlerie :

InsertConvertToSheetMetal2

La page d'aide :

http://help.solidworks.com/2015/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IFeatureManager~InsertConvertToSheetMetal2.html

Un exemple : 

http://help.solidworks.com/2013/English/api/sldworksapi/Insert_Convert_to_Sheet_Metal_Example_VB.htm

Pour combiner les corps en VBA, voir ici :

InsertCombineFeature

http://help.solidworks.com/2015/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IFeatureManager~InsertCombineFeature.html

http://help.solidworks.com/2016/English/api/sldworksapi/Combine_Bodies_Example_VB.htm

ouah, 3 réponses des 3 top contributeurs ...  Désolé, je ne les avais pas vues, j'ai oublié de m'abonner à ma propre question (c'est d'ailleurs dommage qu'en tant que posteur de question on ne soit pas automatiquement abonné, mais ce n'est pas le débat). Donc pour illustrer, voici les étapes de ce que j'essaye de faire avec une assistance (car besoin en grande quantité sur pusieurs projets) :

je pars d'un corps central type poteau. J'ai également deux profilés de même épaissuer situés à des endroits un peu aléatoire dans l'espace. L'objectif est de les relier entre eux puis au poteau, pour au final en sortir le déplié de la tole qui remplit toutes ces conditions.

Donc, par des bibliothèques de fonction, je fais la liaison entre tous les corps comme il faut. Reste à les combiner (car si je fusionne pendant les liaisons, SW me fusionne le poteau aussi), puis convertir en tolerie.

Après, j'ai encore du boulot, il faut que je renomme le corps en tolerie afin de l'extraire en automatique et en faire une mise à plat en dxf. Donc ma question initiale n'est pas encore au niveau de faire le café, mais elle est quand même loin de l'objectif final. ;-)

Voilà l'explication complète. Pour aller plus vite (j'ai une vingtaine de corps comme ça à créer et mettre à plat sur chaque fichier), j'ai opté pour la bibliothèque de fonction qui me fait les liaisons. Maintenant, je maitrise à peu près ça. Mais une fois le corps fusionné, impossible de le convertir en tolerie dans la même bibliothèque de fonction. Et comme il me reste plein d'actions à effectuer derrière, si la bibliothèque de fonction ne le permet pas, pourquoi pas passer par une macro. L'inconvénient des macros, c'est que je ne vois pas dans le code comment elle peut gérer la mise à plat sans que je lui indique les arètes unitairement, ce que je veux absolument éviter (trop long). Je ne retrouve pas dans son codage la recherche automatique des plis pré-existants.

J'espère vous avoir éclairé sur l'objectif et les problèmes, maintenant je m'abonne à mon sujet pour répondre plus vite à vos nombreux conseils éclairés ;-)).


2016-04-08_13h38_27.png
1 « J'aime »

Un lien qui peut t'aider pour l'esport de la mise à plat :

http://gupta9665.com/export-sheet-metal-part-configurations-as-dwg/

Sinon, il faudra savoir où tu bloques exactement dans la macro.

Si tu fusionne pendant les liaisons, SW te fusionne le poteau aussi . Puis tu crée une config sans le poteau  et après tu converti en tolerie.. Ça ne fontionne pas mieu?

L'idée est à tester, mais comme j'ai des erreurs de "fonction de bibliothèque impossible à appliquer" 1 fois sur 2 quand je fusionne, j'ai abandonné l'idée. Il faut dire qu'en fonction des profils, comme mes raccords sont tangents au poteau, j'ai des fusions très délicates et aléatoires.

1 « J'aime »

Et si tu laisse un petit jeu entre ta futur pièce de tôlerie et le poteau, du style 0.01 (en faisant un plan pour que tu puisses dire jusqu'au et le selectionner au lieu de la surface) pour ne pas qu'il puisse fusionner.

je ne peux pas faire un plan décalé, l'esquisse de ma fonction s'accroche sur le point de rencontre entre le plan d'esquisse et les arètes du poteau. Sachant que ce poteau est une construction soudée sur une esquisse 3D, donc délicate à décaler ... Et je voudrais bien sur limiter au maximum le nombre de références à cliquer pour ma bibliothèque de fonctions.

La partie "combiner" me parait moins problématique que la conversion en tolerie que je n'arrive pas à paramétrer :

Y a-t-il une astuce pour remplacer les références utilisées dans la fonction conversion par des références que je désigne, en me limitant si possible au plan de base de la fonction tolerie, et que la recherche de plis pré-existants soient automatiquement activée ? J'ai essayé en utilisant la macro de sélection de corps combinée à la fonction de conversion, mais je rame un peu trop niveau programmation pour y arriver. Cette macro suppose que le corps ou une face soit sélectionné avant d'appliquer la macro, je voudrais plutôt que la macro me demande de sélectionner le plan avant d'appliquer la conversion et si indispensable, sélectionner la face et les arêtes pour faire cette conversion. Et au top, qu'elle me demande de sélectionner au préalable tous les corps à fusionner pour faire tout sauf le café ;-).

Je trouve bien les tutos pour remplir les paramètres de feature par des userform, mais pas pour faire des sélections de corps, faces, arètes ou autre nécessaires aux fonctions type conversion en tolerie ou combiner.

Merci encore pour vos conseils.

En faite tu recherche une façon rapide de convertir en tôlerie sans sélectionner les pli mais juste la face. Essai voir la fonction inséré des plies, cette fonction reconnais les arrêtes vive et les converties en tôlerie juste en sélectionnant la face. Pour créer cette macro tu fait enregistré une nouvelle macro et tu fais toutes les opérations manuellement et tu fini de l'enregistrer. Puis tu verras ce que ça donne.

1 « J'aime »

Intéressante, cette dernière proposition, j'avais toujours utilisé (à tort donc) la fonction "convertir en tôlerie" au lieu d'"insérer des plis". La bonne nouvelle, c'est que ça a fonctionné de cette manière. La première mauvaise c'est qu'en appliquant la méthode deux fois de suite avec exactement les mêmes paramètres, la première fois ça a marché, la seconde, SW m'a dit que les plis ne pouvaient pas être créés. Peut-être qu'en SP3... J'ai lu qu'un uatre utilisateur se plaignait de la tolerie sous SW2016 en SP1 et dans une moindre mesure en SP2. La seconde mauvaise nouvelle pour moi, c'est que "insérer des plis"  ne peut toujours pas rentrer en fonction de bibliothèque. Grrrr. Donc obligé de passer par une macro.

Voilà ce que ça donnerait :


Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("", "FACE", 1.71659798004902, 0.356239999999957, -0.21627010114517, False, 0, Nothing, 0)
boolstatus = Part.InsertBends2(0.001, "", 0.5, -1, True, 0.5, True)
Part.ClearSelection2 True
End Sub
 

reste à trouver comment remplacer le "face" et tous ses arguments de positionnement par une interaction "sélectionner la face".

A suivre ... Merci Manu pour cette première idée, reste à ce que SW rende la fonction stable (je prendrai le temps de faire une video et envoyer au support dans le week-end), ce sera déjà une avancée.

OK ça marche, j'espère que tu vas réussir et content d'avoir pu t'aider un peut dans la démarche. ;-)