Lier propriété pièces à une base de donnée

Bonjour,

 

Je vous expose mon problème: dans ma société ils utilisent un logiciel (quadratus) qui regroupe toutes les pièces avec différents champs de propriété inclus.

Ce logiciel était déja présent avant l'intégration de solidworks. J'ai donc intégré à la main ces propriétés (du logiciel quadratus) dans chacune des mes pièces 3D.

Les circonstances font que certaint champs vont être changé ou peuvent être amené à être changé comme les prix.

 

C'est là où vient ma question. Peut on par un fichier excel sortis du logiciel quadratus lier les propriétés des pièces à celle de mes pièces 3D.

 

Je sais qu'il y a solidworks EPDM qui ferait ça bien mais ça impliquerait de changer de logiciel ce qui est peu envisageable.

 

Merci pour votre aide.

 

 

Cordialement

 

Florian HALLUIN

Salut,

J'espère qu tu ne stocke pas les prix de tes pièces dans les propriétés SW des tes pièces ! Auquel cas je me permet de te proposer de tenter de revoir votre organisation.

En revanche tu peux développer quelquechoses si tu pratiques la programmation. Mais sache que dans tous les cas ce sera long et compliqué. Mais intéressant....

1 « J'aime »

Si, les prix sont stockés dans la base de donné de tousles composants (sous quadra tus) et dans mes pièces Solidworks.


Je suis ouvert à tout changement.

A vrai dire mon entreprise à acqui Solidworks il y a presque un an pour mon stage de DUT durant lequel j'ai en partie intégré le logiciel dans la société. Étant seul à cette tache j'ai essayé de faire les choses de la meilleure façon tout en sachant que je pouvais faire des erreurs... Je suis cette année en alternance et je continue d'améliorer l'intégration même si ça deviens de plus en plus compliqué vu le nombre de documents déjà créer.


Faire de la programmation ne me dérange pas non plus j'ai quelques bases à vois en fonction de ce qu'il faudrait faire.

Le problème que veux certainement soulever remrem et que si tu stock le prix de ta pièce dans ta part SW, si tu la partage avec tes fournisseurs ou clients, ils sauront son prix...

A part si c'est ce que tu cherches...

a+

 

De ce coté la il n'y a pas de problème car le prix sert juste pour sortir une nomenclature et avoir une estimation du prix du montage en interne seulement.

AH! ;-)

Nous réalisons depuis plusieurs mois la mise en place de nomenclatures complètes et donc la relation entre notre ERP et SW.

Nos fichiers SW ne comporte que les infos techniques (Matière, épaisseur....) ensuite nous avons mis en place un échange de fichiers (sous forme de txt) ou nous échangeons avec l'ERP. Les infos de vente et achat (Prix, fournisseur...) sont ainsi seulement dans l'ERP et le lien ce fait par une propriété commune (chez nous le code article).

Perso j'ai réalisé une petite application en vb.net qui met à jour les informations dans l'ERP à partir de SW en écrivant directement dans la BDD (MySQL).

C'est un gros projet, aussi je te conseil de bien faire le point sur les besoins des services concernés. De visiter d'autres entreprises pour voir leur fonctionnement. De définir des priorités.

Je te conseil pour l'instant de n'envisager qu'une mise à jour dans un seul sens. Nous avons choisi SW  => ERP. Ainsi si on modifie la révision d'une pièce dans SW elle remonte dans l'ERP. L'avantage est que si on modifie le prix dans l'ERP, nous n'avons pas besoin de le mettre à jour dans SW puisqu'il n'est stocké que dans l'ERP. De même si on modifie l'épaissuer dans une pièce elle ne remonte pas dans l'ERP car elle n'y est pas stockée. D'ou l'intérêt de bien choisir les informations dont vous avez besoin dans l'ERP.

En espérant t'avoir aidé un peu... ;-)

2 « J'aime »

(J'ai l'impression que ma réponse ne s'est pas publié donc je la retape...)

Ce que tu dis est intéressant.

Dans ma société qui fait des traitements d'eau on fait essentiellement de l'assemblage de produits standard: tubes, coudes, tés, vannes etc.

Donc dans cotre cas ce serait plus l'ERP qui communiquerais à SW.

 

Est-ce que ce serait possible d'en savoir un peu plus sur ton programme? Comment l'échange par fichier txt fonctionne. Si c'est automatique, toutes les pièces d'un coup, une par unes?

 

J'ai aussi pensé a voir comment faisait les autres sociétés mais est-ce qu'elles m'ouvriraient les portes si facilement?

En fait j'ai deux applis :

           1. Liaison SW => ERP : Informations directement écrites dans la BDD de l'ERP

Tous les matins (Exemple) une tache se lance automatiquement.

Elle lit les révisions dans les fichiers SW (sans les ouvrir) et compare avec l'ERP. Puis met à jour si nécessaire. Temps de traitement :~10 minutes

Créé une vignette (image), plan pdf et et un Edrawing de chaque élément SW dont le code article est présent dans l'ERP et insère les liens vers ces éléments. Ainsi un utilisateur à accès directement dans l'ERP à une représentation de la pièce, son plan PDF et un 3D edrawing.

 

           2. Création de nomenclatures

A l'ouverture d'un tableau Excel, après de nombreux traitements et vérification des erreurs. Je créé un ou plusieurs fichiers txt que l'ERP sait traiter pour ensuite créer des articles ou créer des gammes et gérer les appros.

 

En ce qui concerne, les entreprises. Nous avons eu la chance de rencontrer plusieurs entreprises qui nous ont acceulli et conseiller dans notre projet.

1 « J'aime »

Ca a l'air d'être une solution plutot pas mal. Est ce que ça serait possible d'avoir accès au code du programme?

Je vais donc voir si j'ai possibilité de rencontrer certaines entreprises pour vois leurs fonctionnement. En esperant qu'elles soient aussi acceuillanttes que celles que tu as rencontrés.

Bonsoir,

Si j'avais ce type de projet à faire, je commencerai par définir un cahier des charges (bien définit) avec mon entreprise.

Puis je regarderais si j'ai accès à la structure de la base de données du logiciel cible.

Si oui, je passe par des requêtes SQL pour modifier ou ajouter les données.

Si non, il faut trouver un autre moyen d'injecter les données (fichier texte avec séparateurs, fichier excel, fichier XML,...)

Ensuite, il faut choisir si l'on créé un logiciel séparé, un add-in SW ou les deux.

J'ai mis en gras les deux, car suivant la fréquence de mise à jour, il faut les deux.

On prend l'exemple suivant : vous modifiez une propriété prix d'une pièce et un commercial fait un devis pour vendre cette même pièce en même temps que vous. Le devis du commercial sera bassé sur l'ancien prix jusqu'à la MAJ du lendemain.(Pas vraiment cool, que ce soit dans un sens ou dans l'autre).

Je verai même mieux un service windows qui écoute SW. Un document est ouvert, modifié et fermé. A la fermeture, le service va vérifier dans le logiciel cible et fait les modifs s'il y en a. Dans ce cas, un seul logiciel à créer : le service.

Après, le code en lui même est pas bien compliqué, récupérer les valeurs des propriétés personnalisées est simple et aller lire des données dans une base de données est aussi simple.

Donc rien de bien méchant à coder par contre un gros travail sur le cahier des charges.

2 « J'aime »

Bonjour,

Merci pour l'aide supplémentaire.

 

Je vais donc comme tout le monde me l'a conseillé, établir un cahier des charges pour ce projet.

 

Par contre j'ai quelques bases en programmation mais pas assez pour sortir un code comme ça.

Tu me dis que récupérer les valeurs des propriétés personnalisées est simple mais est ce que je pourrais avoir une piste sur comment procédé? Quel fonction utilisée?

Sous quel logiciel ce projet serait le plus adapté à développer?

Pour ma part je partirais sur une Macro qui ferait le lien entre ton fichier Excel et tes fichiers Solidworks

 

Ensemble a programmer via VBA dans un fichier Excel tu le fait poiinter sur l'extraction de quadratus et tu boucle sur chaque ligne pour verifier chaque propriete de chaque piece et le cas echeant les modifier

1 « J'aime »

Bonjour, 

je vous ferai un exemple ce soir sous la forme d'une macro.

Pour le logiciel de programmation, j'utilise Visual studio 2017 . Mais il en existe beaucoup d'autres.

Choisissez bien votre langage de programmation, équipez vous d'un bon stylo et d'une rame de papier. Quand vous n'aurez plus de feuilles, votre projet devrait fonctionner. :)

 

1 « J'aime »

Tout les pièces de la base Quadratus ne sont pas représentés en 3D. Je n'arrive pas à voir si cela risque de posser un problème.

Je pense peut etre mettre à jour les propriété SolidWorks des pièces seulement quand on ouvre un assemblage ou une pièce.

 

Je viens de voir certaines ligne de code qui je pense pouront me servir:

" Pour récupérer une propriété, l'instruction est :

                CODE = SWmoddoc.GetCustomInfoValue("", "code")


On récupère la propriété "code" dans la variable VBA "CODE", où SWmoddoc représente ton document actif (Set SWmoddoc = swApp.ActiveDoc). "

Ce n'est pas important si toutes les pièces dans l'ERP n'ont pas de 3D. Il faut juste comparer les deux sur un champ unique.

Pour moi, mettre à jour les données seulement à l'ouverture d'une pièce n'est pas suffisant car ça voudrait dire que les données on été modifiés sur un fichier fermé si le sens de liaison est Sw>>ERP.

Le plus simple pour récupérer les valeurs des propriété personnalisées est de passer par l'objet propertymanager. Il est fait pour ça. L'avantage, c'est qu'il propose une collection d'objets et du coups, on peut faire une MAJ par lot et non propriété par propriété. Faut juste faire un convertisseur de datatable en collection de propriété. Il faut aussi créer un comparateur ou une classe qui implémente ICompare().

 

1 « J'aime »

Dans mon cas la liaison serais ERP => SW uniquement.

Y a t-il une aide pour savoir comment récupérer les valeurs des propriété personnalisées en passant par propertymanager?

J'ai du mal à savoir comment faire tout ce que tu me dit

oui, il y a une aide, celle des api SW ou google.

Si vous avez du mal à comprendre ce que je vous raconte, prennes une feuille et un stylo, écrivez ce que vous voulez faire et ça deviendra plus clair :)

L'idée est simple :

Prendre les données d'un produit dans l'ERP

Chercher le fichier sw correspondant et l'ouvrir 

Mettre à jour les donnés du fichier sw

Enregistrer le fichier sw et le fermer

Faire ça pour tout les produits de l'ERP

Ça c'est le principe de base.

Ce que l'on peut faire en passant par un service c'est :

Écouter la base de données de l'ERP

Sur un changement dans une table "produit"

Ouvrir le fichier sw

Faire la Maj, enregistrer, fermer le fichier sw

Avec des mots, on se rend tout suite que l'un va traiter toutes les données des produits de l'ERP alors que l'autre fera une maj que quand il y en a besoin sur un seul fichier sw.

1 « J'aime »

Je comprend la logique d'éxécution du problème. C'est pour la convertion en fonction de programmation ou j'ai plus de mal

Dans l'exemple que tu me donne est ce que l'ouverture, la modification, l'enregistrement et la fermeture se font en tache de fond et très rapidement? Le temps de traitement de la base seras il rapide (je dirais pour moi que 10min est rapide pour plus de 1000 pièces 3D)?

 

Pour notre cas je pense que cette logique simple pourais aussi fonctionné car je ne sort pas de nomenclature et plans sans ouvrie les assemblages concerné et donc les pièces aussi

 

Quand une pièce est ouverte

Regarder si Ref interne existe => Si non FIN

Si oui

Chercher la réf dans la BDD quadratus

Vérifier si les propriétés de la pièce SW correspondent => Si non les mettre à jours et enregistré

              Si oui FIN

 

Je pense que la référence interne serviras de liaison entre SW et l'ERP.

 

Bonjour,

@f.halluin, je vois dans votre profil que vous êtes client MyCadServices, donc inutile de perdre du temps dans des développement, tous les outils dont vous avez besoin existent déjà dans les outils MyCad Tools et celui qui vous sera le plus utile sera Integration qui vous permettra de faire en masse une récupération de propriété sur toutes votre base CAO par rapport à un fichier Excel ou autre venant de votre ERP.

 

@+

2 « J'aime »

Merci coyote mais il me semble pas avoir l'abonnement qui permet l'utilisation de mycadtool.

Aussi cet outils me permetrait il de remplacer les propriété SW par celle de l'ERP?