Automatisation (en masse) de la bounding box (dimension hors tout)

Bonjour à tous

 

Je cherche à récupérer les dimensions hors d'un ensemble de pièces pour pouvoir ensuite les extraire.

Y a t il un moyen d'automatiser la manip pour eviter d'ouvrir chacune des pièce et/ou assemblage pour lancer l'utilitaire "bounding box"

 

Merci par avance de votre aide

Florian 

Bonjour,

Oui il est possible de faire un petit programme qui dans le déroulement permettrait de :

- Charger à partir d'une liste une part ou un ASM dans SW.

- Calculer les dimensions hors tout suivant X, Y et Z.

- Récupérer ces valeurs et le nom du fichier chargé pour les écrire dans un fichier log.

- Fermer la PRT ou l'ASM.

- Passer au fichier suivant.

Cela nécessite par contre d'avoir quelques notions en programmation VB.net ou C# et aussi d'un peu de temps.

Tes fichiers sont-ils dans windows ou dans Epdm car ça change un peu la donne pour le programme ?

La quantité de fichiers à analyser est-elle importante ?

Cordialement,

1 « J'aime »

Voici un petit programme qui permet déjà de donner les dimensions hors-tout d'un fichier ASM ou PRT chargé dans SW.

A dézipper sur le bureau, ensuite démarrer SW, charger un fichier 3D, lancer le programme et cliquer sur le seul bouton qu'il y a.

Ce programme comprend la fonction de calcul des cotes hors-tout mais c'est tout pour le moment, je pourrais fournir les sources si cette piste convient.

Cordialement,


boundingbox.zip

Salut d.roger,

Merci de ton retour.

Pour clairifer mon besoin :

- J'ai environ un peu moins de 1000 pièces à traiter.

- Elles se trouvent sous windows.

- L'ideal serait de lancer un utilitaire qui vient ecrire la valeur X, Y et Z dans les paramètres de la PART ou de l'ASM

Cela me permttrait ensuite de générer une part list avec ces informations mais d'autres également

 

Encore une fois merci de ton aide

Florian

 

Bonjour,

Voici une autre version du programme qui permet de :

- chargement d'un fichier csv contenant la liste des fichiers à analyser, attention cette liste doit être formattée comme le fichier liste.csv joint avec le programme.

- Ouvrir chaque fichier dans Solidworks.

- Calculer les cotes extérieures de chaque 3D chargé.

- Sauvegarder le résultat dans un fichier csv nommé résultat.csv et stocké dans le même répertoire que l'éxécutable joint.

Il est préférable de faire un test sur une petite quantité de copie de fichier 3D pour démarrer.

Je n'ai pas créé la fonction de sauvegarde du résultat dans les paramètres du fichier 3D car en temps que personne externe j'estime que je n'ai pas à intervenir sur ceux-ci en mode modification.

Si tu as des connaissances en programmation, je pourrais par contre te fournir le code source du programme joint pour adaptation à ton besoin.

Cordialement,


boundingbox.zip
1 « J'aime »

Franchement ca marche vraiment bien un grand merci.

Perso je n'ai pas énormément de repère en programmation, mais je veux bien récupérer la source pour info.

C'est vraiment dommage de SW ne permette pas de récupérer ces informations automatiquement.

Encoremerci de ton aide

Florian

 

 

Ci-joint un fichier texte regroupant les fonctions utilisées dans le programme joint dans le précédent post (c'est en C#).

Si le fonctionnement du programme te convient, sujet résolu donc ?

Cordialement,


fonctions.txt
1 « J'aime »

d.roger

Oui un grand merci a toi encore une fois

 

Bonjour à tous,

Suite à une demande d'amélioration et quelques échanges avec froussel, je mets à disposition une nouvelle version de l'utilitaire "boundingbox". Cette nouvelle version permet de relever les cotes d'encombrements ainsi que la masse pour chaque configuration des fichiers Solidworks.

Cordialement,


boundingbox-3.zip
2 « J'aime »

Merci à D. Roger pour sa disponibilité.

La nouvelle version devrait faciliter la vie de ceux qui doivent dimensionner des boites d'emballages / cartons / caisse pour leurs pièces / assemblages

Attention pour les utilisateurs d'EPDM : il faut que les fichiers soient existant localement sur le poste qui lance le programme et que la version des fichiers locaux soient la bonne. si le fichier local n'existe pas le programme renvoie un message d'erreur mais si la version est "mauvaise" il fait le calcul avec la version de la vue locale (mais cela permet aussi de pouvoir faire une comparaison entre 2 versions si on lance 2 x le programme sur 2 versions différentes)

1 « J'aime »

Bonjour, (Bonne année !)

Je suis désolé de déterrer un sujet qui date de 3 ans mais je rencontre un problème ..

J'ai tenté d'exécuter vos programmes un par un mais rien ne marche.. Dans le fichier résultat j'obtiens en face de chaque case : fichiers inexistant

J'ai bien vérifié le chemin, tenter dans un dossier sur le bureau, avec des noms différents (j'avais dans un premier temps une virgule dans chaque nom de pièce donc Excel ne comprenait pas et mettait des points d'interrogation à la place.. ), en utilisant votre fichiers "liste" pour créer ma liste de pièce, ..

J'ai aussi pensé, je suis sous SW20 SP04, votre programme fonctionne t'il sur les nouvelles versions ?

Merci infiniment si vous répondez à nouveau après tout ce temps.. 

Cordialement,

 

Avec un peu de chance @d.roger va passé par là et saura te répondre mieux que personne puisque c'est lui l'auteur.

1 « J'aime »

Bonjour,

l'erreur "fichiers inexistant" indique que les fichiers listés dans le fichier liste.csv ne sont pas trouvés ou n'existent pas, comment est écrit ton fichier liste.csv ? peux-tu le poster ?

Cordialement,

Bonjour,

Je vous joint le fichier liste que j'utilise (j'ai pris votre fichier fourni dans le ZIP et j'ai changé les lignes)

Merci beaucoup pour votre temps ! 

Cordialement


liste.csv

Bonjour,

Voici ce sur quoi je tombe comme nom de fichier en ouvrant le fichier liste dans un éditeur de texte :

Il faudrait faire un essai avec des noms de fichiers plus simples pour voir si cela vient de la version de SW (ce dont je doute) ou du nom de fichier (un peu compliqué). Pour l'essai, il est préférable d'éviter les noms avec accents ou signes particuliers.

Cordialement,

1 « J'aime »

Merci pour votre réponse !

Alors oui j'y ai pensé mais le soucis vient du fait que : c'est le client qui nomme ainsi ses pièces et dans un assemblage type il y en a 700, donc trop compliqué pour tout renommer malheureusement...

(J'ai quand même fais un essai par acquis de conscience, avec des noms classiques "MMPPLATFORM562T1", ça ne fonctionne pas non plus...)

Cordialement,

 

Bonjour,

L'erreur relevée est dans la lecture du chemin du fichier donc avant l'intervention dans Solidworks, ce qui me surprend un peu ... Est-il possible de me faire des copies d'écrans du programme au fur et à mesure de son utilisation et m'envoyer le fichier résultat.csv qui découle du test ?

Je ne peux pas faire de test sur une version 2020 puisque je suis sous 2019.

Cordialement,

Alors,

Vous me demandez les étapes du programme mais il n'y en a aucune qui s'effectue : je clique sur le bouton, le fichier résultat apparait sur le bureau 

Je vous joint quand même les fichiers et une capture 

(Je ne comprend pas comment joindre plusieurs fichiers dans un message ? c'est possible ou je dois obligatoirement faire un ZIP ?)

Merci,

Cordialement 


liste.zip

Est-il possible d'essayer en mettant les extensions de fichiers dans le fichier liste.csv comme par exemple "C:\Users\AA\Desktop\ESSAIS\MMPPLATFORM562T1.sldprt" sinon le fichier est effectivement inexistant (même si les extensions ne sont pas affichées dans Windows, elles sont quand même existantes).

Cordialement,

Bonjour, 

J'ai essaye et ça fonctionne ! 

Alors, j'ai fais un essai en mettant .sldprt, il me sort bien les longueurs mais j'ai des lignes en plus me disant "fichier inexistant", je suppose que c'est pour une autre fonction du programme ?

Donc j'ai essayé avec les noms originaux contenant des virgules et malheureusement ça ne fonctionne pas .. Lors de l'ouverture du document résultat la virgule de chaque ligne apparait comme ça "�" 

Merci pour votre aide ! Si vous avez une idée je suis toujours preneur.. (renommage de masse ou autre ..)

Cordialement,


resultat.csv