Macro Excel

Bonjour à tous.

 

Je vais essayer d'être clair.

 

- J'ai un profil de tôlerie que je dois exporter en dxf (son déplié)

- Ce profil varie en longueur

- J'ai la liste de toutes les longueurs dans un classeur Excel ainsi que leur quantité respective.

 

Est-ce possible via le fichier excel, d'exporter tous les dxf suivant les longueurs, en automatique.

Petit point en plus, entre chaque changement de longueurs, on doit avoir une triple reconstruction car il y a des formules à recalculer suivant la longueur.

Et aussi, si possible, avoir dans le nom du dxf, la quantité se rapportant à telle ou telle longueurs.

 

Il faut passer par une famille de pièce? Par une macro? Ou autre?

 

Je pense que c'est compréhensible =)

 

 

 

2 « J'aime »

Voici un aperçu de ce que j'aimerai au final.

 

De l'excel, arriver à une liste de fichier dxf.

 

Merci ! =)


exemple.png
1 « J'aime »

Salut Bart,

Il va nous en falloir un peu plus. Comment marche ton fichier SW ? Plusieurs configs ou seulement une et on change la longueur ?

Perso je ferais un fichier SW avec une famille de pièces. Ainis on aurait une config par longueur.

Ensuite dans le code :

  1. Ouvre le fichier
  2. Parcours chaque configs en
    1. Sélectionnant une config
    2. Reconstruit
    3. Exporte en dxf (Comment souhaites tu gérer le dossier des dxf ?)
    4. Passe à la suivante si elle existe.
  3. Sauvegarde le fichier SW

J'ai tout compris ? Cela convient ?

2 « J'aime »

Oui @remrem, en gros c'est ça.

 

J'ai un fichier excel avec par exemple 500 longueurs différentes.

Ma pièce possède des perçages réparties sur la longueur.

 

Donc :

  1. je place le fichier excel avec la pièce dans le dossier client.
  2. je balance une macro,
  3. Sw déplie ma pièce pour la première longueur,
  4. exporte en dxf dans le dossier client
  5. Sw inclue (ou pas) la quantit qui se trouve dans excel dans le nom du dxf
  6. Puis ça passe à la ligne d'après
  7. reconstruit 3 fois
  8. puis refait la même combine, export en dxf etc....

Si je résume, je part d'une pièce avec son excel et me retrouve avec une liste de dxf par longueurs.

 

1 « J'aime »

Je vais me répéter mais ta pièce a une famille de pièce ou pas ?

Ensuite comment savoir les configs a tariter : ton fichier Excel contient quoi le nom de la config, la longueur ? Existe il un relation entre la longueur et le nom de la config ?

Voici un exemple de macro qui liste les configurations d'un fichier : http://help.solidworks.com/2015/english/api/sldworksapi/Get_List_Of_Configurations_Example_VB.htm

Ensuite il te faudra comparer la liste obtenu avec celle de ton fichier Excel.

Puis exporter en dxf : http://help.solidworks.com/2015/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ipartdoc~exportflatpatternview.html

 

2 « J'aime »

A priori, ca ne me semble pas être impossible. Je ne connais pas la passerelle pour passer de excel à ouverture pièce dans solidworks ... mais je ne vois pas pourquoi ca ne pourrait pas se faire.

 

Parconter, du coup. Lorsque tu auras résolu @Bart, si tu pouvais nous mettre les grandes lignes de ton code. Ca pourrait en aider dans le futur ;)

2 « J'aime »

J'ai joint une image dasn mon premier post.

 

On voit bien les étapes de ma démarche.

 

Pour le moment, j'ai une pièce qui possède des équations pilotant des fonctions.

Pas de famille de pièces ni de config.

Mon Excel contient le nom de la pièce, sa longueur et sa quantité (au pire pour la qté, je me débrouille)

 

Je sais que c'est possible, mais la question est comment?...

Puis si il faut passer par une macro, je suis une .... en VBA :/

http://www.lynkoa.com/forum/3d/mise-jour-auto-famille-piece

 

J'ai lu en zigzag, mais apparament il a réussi à faire une jointure en SolidWorks et Excel.

2 « J'aime »

J'ai bien compris ta démarche.

Mais je veux savoir si tu peux adapter ta pièce pour rendre la macro plus facile çà réaliser ou si la macro doit complètement s'adapter à ton environnement.

Perso, par expérience pour réaliser ce genre de chose et que cela fonctionne parfaitement. Cela demande pas mal de temps. C'est pourquoi il est nécessaire de bien poser les choses et de déterminer notre objectif clairement. Car sinon on retrouve à coder puis à tout recommencer car cela ne convient plus.

Sans maitrise du VBA. Je te conseil de décomposer ton projet en fonction et de les réaliser une après l'autre. Ex : Ouverture du fichier, liste des configs, export. Et de poser d'essayer puis poser des question sur le forum.

Pour moi, je ne peux réaliser ce projet complètement. Le but étant aussi d'apprendre, car si on te fait tout tes codes tu seras incapables de les faire vivres dans le temps.

Bon code :-)

3 « J'aime »

Je suis entièrement d'accord avec toi Remrem.

 

C'est pour cela que j'ai bien tous détaillé étape par étape.

 

Je ne demande pas une macro clé en mains, mais plus savoir où je dois m'orienter.

Si je dois aller voir du côté des familles de pièces ou pas, si une macro est necessaire etc etc....

 

J'ai posé les choses à plat, il ne reste plus qu'a coder étape par étape

1 « J'aime »

Je vais donc commencer tout seul, et je poserai des questions quand je bloquerai.

 

C'est à dire bientôt ! :p

4 « J'aime »

@KVuilleumier :

Une relation entre Excel et Sw est tout à fait possible.

Perso, j'ai créer une application qui s'intègre dans excel et pilote SW : modification des propriètes, export de nomenclature...

Mais encore une fois Bart doit nous dire ce qu'il veut faire : Piloter SW depuis Excel OU de puis SW lire son fichier Excel et traiter les infos...

Personnellement je pencherais plus pour la seconde.

 

2 « J'aime »

Bonjour à tous,

Je pense que ça sera plus simple de créer ta famille de pièce à partir de ton fichier Excel avant  (lien plus bas) : ça va te prendre 1 ou 2 min, alors que le programme peut être difficile à faire et sera source d'erreurs.

http://help.solidworks.com/2013/french/SolidWorks/sldworks/t_Inserting_an_External_File_as_a_Design_Table.htm

Ensuite il suffit d s'insprier ce cette macro qui créer le DXF pour toutes les configurations :

 https://forum.solidworks.com/thread/27842

Cette vidéo peut-être intéressante aussi :

https://www.youtube.com/watch?v=8SW-UZy1QMA

Edit : voir aussi :

https://www.youtube.com/watch?v=rSeYL77cqBQ

 

2 « J'aime »

Tout commme PL, Je pense que la famille de pièce serait une bonne chose. Et permettrait surtout de garder le maximum d'nformations et de fonctions dans tes fichiers SW. C'est à à dire que si ton code vient à ne plus fonctionner ou qu'un utilisateur n'y est pas accès, une grande partie des informations sont accessibles dans SW.

Au plaisir de t'aider...

:-)

2 « J'aime »

Le truc qui est cool avec le fait de se faire un programme macro, c'est qu'il peut copier son fichier natif dans le dossier spécifique au client, ouvrir son excel et tout piloter.

 

Alors qu'avec la famille de pièce, il va être obligé d'en créer une nouvelle à chaque client (si j'ai bien compris le fonctionnement)

1 « J'aime »

@coin37coin oui mais passer 1 jour à programmer (peut-être moins pour un utilisateur expérimenté en VBA, mais je ne crois pas que ça soit le cas de Bart) la récupération de cotes dans un fichier Excel, est ce que ça vaut le coup ? Et en admettant que le fichier Excel a toujours exactement la même mise en forme, sinon ça plante !

Si la création de la famille de pièce prend maximum 5 min (et je pense que c'est moins de 5 min) à faire dans SolidWorks à la main, alors il faudrait en faire au moins 80 pour que ça soit rentable sur une journée de 7 h...

2 « J'aime »

Certes ... c'est le petit côté sombre de l'histoire

1 « J'aime »

C'est ça le truc,
c'est que je reçois un excel du client, mais j'aimerai éviter de tout retaper.

 

C'est source d'erreur. Il faudrai que je passe par Solidworks et que je balance une macro pour que ça mouline et me sorte ma liste de fichier dxf dans le dossier du client.

 

Dans mon cas, le fichier Excel sera toujours pareil, ça sera toujours la longueur qui changera et tant qu'on y est la longueur des ailes.

 

Et en pasant par Driveworks? je ne peux pas tout récuperer d'un coup?

 

Je veux bien passer 1 jour à programmer, c'est quelque chose qui revient souvent, donc ça me ferai quand même gagner du temps.

1 « J'aime »

Bon j'arrive un peu comme ça, sans avoir lu toute la conversation, donc mea culpa si ça a déja été abordé mais :

Quand tu reçois le fichier Excel du client, celui-ci est toujours mis en forme de la même façon ?

Ches nous, nous procédons avec une "feuille de construction", c'est un fichier excel où les technico-commerciaux rentrent toutes les infos de dimensionnement mais aussi d'autres informations pour d'autres services de l'entreprise.

Ensuite le B.E utilise une feuille qu'on appel le "Recap' ", c'est une feuille avec macro qui ouvre cette feuille de construction, qui copie les informations essentielles pour le BE et qui les colle dans certaines cases. C'est cette feuille qui est en relation avec notre CAO.

Voilà je viens de raconter ma vie :)

2 « J'aime »

@Aurelien (du support Axemble) :p

 

Je reçois des excels différents, mais les mettre en forme ne me prends que 2 minutes.

Trier un Excel va plus vite que de tout taper les côtes dans Sw à la main, puis de tout exporter un par un en dxf =)