SFX28 Posté(e) le 22 mars 2012 Posté(e) le 22 mars 2012 Bonjour, Avant de poster une requête sur le forum, je tenais d'abord à tous vous remercier pour vos différentes contributions et réponses ... ça m'a beaucoup aider sur quelques points. Voilà, c'est dit ! Aujourd'hui, j'ai un petit problème à vous poser : (Inventor 2009 SP2 sur XP SP3 32 bits) --> Comment lire, modifier, supprimer des ipropriétés sans ouvrir un seul fichier Inventor (ipt, iam, idw ...) ? Sachant que je peux utiliser un module VBA inventor pour programmerMon traitement se fera en lot (plusieurs répertoires) Il me manque donc les codes de connexion module / iprop du fichier inventor. Je sais le faire à partir d'un module VB inventor MAIS en ouvrant chaque fichier !! .. pas intéressant car les temps de traitement sont long et lourd (risques de saturations mémoire sur les gros fichiers et pb des mises à jour) Merci d'avance Autodesk Inventor 2014 SP1Autodesk AutoCAD 2014Windows 7 PRO 64 bits SP1-------------------------------------------------------------------Station Dell Precision T3610Intel Xeon E5-1620 v2 3.70 GHz + RAM de 16 GoNvidia Quadro K4000 + 2 écrans Dell U2212HM full HD
SFX28 Posté(e) le 26 mars 2012 Auteur Posté(e) le 26 mars 2012 apparemment, cela n'inspire personne ? :blink: Autodesk Inventor 2014 SP1Autodesk AutoCAD 2014Windows 7 PRO 64 bits SP1-------------------------------------------------------------------Station Dell Precision T3610Intel Xeon E5-1620 v2 3.70 GHz + RAM de 16 GoNvidia Quadro K4000 + 2 écrans Dell U2212HM full HD
nomutt Posté(e) le 28 mars 2012 Posté(e) le 28 mars 2012 apparemment, cela n'inspire personne ? :blink:Ce n'est pas que cela n'inspire personne, c'est que la demande est assez pointue.Pour information, VBA ne s'exécute que dans un processus 32 bits. Donc avec un OS 32 bits, VBA et Inventor vont tourner dans le même processus. il n'y a pas de problème de performances contrairement à un Inventor en 64 bits.Mais l'OS 32 bits limite la quantité de mémoire. Et la, je n'ai pas de réponse pour les risques de saturation dans un tel contexte.Mais il est possible depuis Inventor de lancer via VBA des tâches en ayant recours à l'Apprentice Server. Il n'ouvre pas les documents dans l'espace graphique et a pour principale fonction de travailler sur les iPropriétés, les liens entre fichiers et un peu sur les nomenclatures. Je dis bien Nomenclature (Inventor BOM), pas liste de pièces.Ou cette solution donne de bon résultats ou bien il faudra en passer par une version 64 bits et un code compilé en .Net avec le poste de traitement disposant d'assez de mémoire vive.Bonne chance pour ce projet. Nomutt,Consultant, Responsable Projets CAD/PLM'Add-ins pour Inventor + Trucs et Astuces.Disponible pour un poste administrateur CAO/PLM.
SFX28 Posté(e) le 28 mars 2012 Auteur Posté(e) le 28 mars 2012 Je crois que j'ai trouvé mon bonheur ApprenticeServer (postérieur de 2 messages) En ce qui concerne le 32 bits, tu as raison et je le sais. C'est pour cette raison que je souhaite appliquer des traitement hors chargement des fichiers, sachant qu'on peut le faire. Encore merci à Guillaume et à Nomutt Autodesk Inventor 2014 SP1Autodesk AutoCAD 2014Windows 7 PRO 64 bits SP1-------------------------------------------------------------------Station Dell Precision T3610Intel Xeon E5-1620 v2 3.70 GHz + RAM de 16 GoNvidia Quadro K4000 + 2 écrans Dell U2212HM full HD
SFX28 Posté(e) le 30 mars 2012 Auteur Posté(e) le 30 mars 2012 [résolu] Après quelques heures de prog, j'ai atteind le but désiré : faire une macro modifiant les ipropriétés de tous les fichiers IV d'un répertoire. Pourquoi ? copie d'une affaire vers une nouvelle avec mise à jour des infos Pour faire simple : PREPARATION liste fichiers (*.IPT *.IAM *.IDW) > liste.txtdans feuille Excel, colonne 1 liste des anciens n° de plan, colonne 2 liste des nouveaux plans correspondantsMACRO bouclage sur liste.txtMAJ des infos en fonction du type de fichierMAJ des ipropriétés perso avec comparaison des n° de plan (feuille Excel)suppression d'iprop. perso non nécessaires ("le ménage !!")RESULTAT fichiers traités = 1900temps en manuel (estimation 30s/fichier + fatigue !) = 16 heurestemps macro = 6 minutes !!!!!!!!!rapport de 1/160 ; je crois que c'est pas mal Autodesk Inventor 2014 SP1Autodesk AutoCAD 2014Windows 7 PRO 64 bits SP1-------------------------------------------------------------------Station Dell Precision T3610Intel Xeon E5-1620 v2 3.70 GHz + RAM de 16 GoNvidia Quadro K4000 + 2 écrans Dell U2212HM full HD
jul Posté(e) le 28 février 2014 Posté(e) le 28 février 2014 Salut, Je suis en train de travailler sur une macro pour modifier certains champs des ipropriétés.J'ai déjà fait toute la partie excel pour générer les nouveaux noms (suite à un prét à emporter), le renommage des fichiers, mais je n'arrive pas à renommer les ipropriétés de ces nouveaux fichiers. Exemple :-Fichier original:IS100000 valeur ipropriétés "nom de pièce" = IS100000-Fichier renommé: IS200000 valeur ipropriétés "nom de pièce" = IS100000 Il faudrait que l'ipropriété "nom de pièce" prenne la valeur du nom de fichier renommé (ici IS200000). Pour faire ca, il serait préférable de ne pas ouvir les fichiers avec inventor.(trop long)Donc je suis à la recherche d'une astuce pour modifier les ipropriétés sans l'ouverture dans inventor.J'ai environ 1000 fichiers à traiter.Merci pour ta réponse.
SFX28 Posté(e) le 10 mars 2014 Auteur Posté(e) le 10 mars 2014 Salut Jul, s'il n'est pas trop tard .. et pour te donner quelques détails de plus si tu ne les as pas ... Voici comment je fais et cela n'engage que moi. Si par-contre tu avais une autre solution pour modifier les ipropriétés, n'hésites pas .. toujours intéressant. 1 - déclaration pour connexion fichiers inventor Dim oIV As New ApprenticeServerComponentDim oIVDoc As ApprenticeServerDocument 2 - déclaration variables pour ipropriétés ' Onglet Inventor Summary Information (ongle Résumé)Dim ISIpropSet As PropertySetDim ISITitle, ISISubject, ISIAuthor, ISICommentIPT, ISICommentIAM, ISICommentIDW, ISIRevisionNumber As String ' Onglet Inventor Document Summary Information (ongle Résumé suite)Dim IDSIpropSet As PropertySetDim IDSIonglet As StringDim IDSICategory, IDSIManager, IDSICompany As String ' Onglet Design Tracking Properties (ongle Projet / Etat)Dim DTPpropSet As PropertySetDim DTPonglet As StringDim DTPPartNumber, DTPProject, DTPDesigner As StringDim DTPCreationTime, DTPDateChecked, DTPEngrDateApproved, DTPMfgDateApproved, DateUnique As Date ' Onglet Inventor User Defined Properties ((ongle Personnalisation)Dim IUDPmapropriété As String ...... (mes propres ipropriétés avec les formats voulus) 3 - suite déclarations des variables des onglets Set oIVDoc = oIV.Open("mon_fichier_inventor")Set ISIpropSet = oIVDoc.PropertySets.Item(ISIonglet)Set IDSIpropSet = oIVDoc.PropertySets.Item(IDSIonglet)Set DTPpropSet = oIVDoc.PropertySets.Item(DTPonglet)Set IUDPpropSet = oIVDoc.PropertySets.Item(IUDPonglet) 4 - remplissageune fois la déclaration des ipropriétés effectuée, il faut faire le "remplissage" ; dans ton cas : DTPPartNumber = "IS200000"ouDTPPartNumber = strNomFichier 'si variable (je pense que oui ;-)) DTPpropSet.Item("Part Number").Value = DTPPartNumber 5 - enregistrement oIVDoc.PropertySets.FlushToFile ... pas besoin de te dire qu'il n'est pas nécessaire de tout déclarer si tu ne modifies qu'une ou quelques ipropriétés ; je le fais souvent car un jour, tu ne fais que quelques modifs et le lendemain, tu modifies tout.C'est une question de praticité et modulabilité. J'espère avoir répondu à ta question. Personnelement, j'adore les traitement de "lots" .. incroyable le temps gagné ;-) Au plaisir de te lire Autodesk Inventor 2014 SP1Autodesk AutoCAD 2014Windows 7 PRO 64 bits SP1-------------------------------------------------------------------Station Dell Precision T3610Intel Xeon E5-1620 v2 3.70 GHz + RAM de 16 GoNvidia Quadro K4000 + 2 écrans Dell U2212HM full HD
jul Posté(e) le 13 mars 2014 Posté(e) le 13 mars 2014 Salut SFX28 !!! Excuse mon temps de réaction, mais j'avais pas mal de choses à faire... J'ai bien testé ce que tu m'as envoyé, mais j'ai un souci ici : Set ISIpropSet = oIVDoc.PropertySets.Item(ISIonglet) Il me renvoi un "nothing" .... Peut-être un souci de référence ? Merci d'avance pour ta réponse et encore merci pour celle d'avant !!! Salut Jul, s'il n'est pas trop tard .. et pour te donner quelques détails de plus si tu ne les as pas ... Voici comment je fais et cela n'engage que moi. Si par-contre tu avais une autre solution pour modifier les ipropriétés, n'hésites pas .. toujours intéressant. 1 - déclaration pour connexion fichiers inventor Dim oIV As New ApprenticeServerComponentDim oIVDoc As ApprenticeServerDocument 2 - déclaration variables pour ipropriétés ' Onglet Inventor Summary Information (ongle Résumé)Dim ISIpropSet As PropertySetDim ISITitle, ISISubject, ISIAuthor, ISICommentIPT, ISICommentIAM, ISICommentIDW, ISIRevisionNumber As String ' Onglet Inventor Document Summary Information (ongle Résumé suite)Dim IDSIpropSet As PropertySetDim IDSIonglet As StringDim IDSICategory, IDSIManager, IDSICompany As String ' Onglet Design Tracking Properties (ongle Projet / Etat)Dim DTPpropSet As PropertySetDim DTPonglet As StringDim DTPPartNumber, DTPProject, DTPDesigner As StringDim DTPCreationTime, DTPDateChecked, DTPEngrDateApproved, DTPMfgDateApproved, DateUnique As Date ' Onglet Inventor User Defined Properties ((ongle Personnalisation)Dim IUDPmapropriété As String ...... (mes propres ipropriétés avec les formats voulus) 3 - suite déclarations des variables des onglets Set oIVDoc = oIV.Open("mon_fichier_inventor")Set ISIpropSet = oIVDoc.PropertySets.Item(ISIonglet)Set IDSIpropSet = oIVDoc.PropertySets.Item(IDSIonglet)Set DTPpropSet = oIVDoc.PropertySets.Item(DTPonglet)Set IUDPpropSet = oIVDoc.PropertySets.Item(IUDPonglet) 4 - remplissageune fois la déclaration des ipropriétés effectuée, il faut faire le "remplissage" ; dans ton cas : DTPPartNumber = "IS200000"ouDTPPartNumber = strNomFichier 'si variable (je pense que oui ;-)) DTPpropSet.Item("Part Number").Value = DTPPartNumber 5 - enregistrement oIVDoc.PropertySets.FlushToFile ... pas besoin de te dire qu'il n'est pas nécessaire de tout déclarer si tu ne modifies qu'une ou quelques ipropriétés ; je le fais souvent car un jour, tu ne fais que quelques modifs et le lendemain, tu modifies tout.C'est une question de praticité et modulabilité. J'espère avoir répondu à ta question. Personnelement, j'adore les traitement de "lots" .. incroyable le temps gagné ;-) Au plaisir de te lire
SFX28 Posté(e) le 19 mars 2014 Auteur Posté(e) le 19 mars 2014 Salut Jul, Désolé ! Je crois que j'ai oublié ... il faut initialiser les variables des onglets : ' Onglet Inventor Summary Information (onglet Résumé)ISIonglet = "Inventor Summary Information" ' Onglet Inventor Document Summary Information (onglet Résumé suite)IDSIonglet = "Inventor Document Summary Information" ' Onglet Design Tracking Properties (onglet Projet / Etat)DTPonglet = "Design Tracking Properties" ' Onglet Inventor User Defined Properties ((onglet Personnalisation)IUDPonglet = "Inventor User Defined Properties" De plus, je joint à ce message un fichier excel GenerateAllPropertiesList qui te permettra de lister toutes les ipropriétés d'un fichier suivant son type ; ouvre le fichier xlsm, lance la macro GenerateAllPropertiesList, sélectionne un fichier IAM ou IPT ou IDW et il affiche dans l'onglet concerné les informations. Simple : toutes les infos nécessaires sont dedans. Tu pourras constater que beaucoup d'ipropriétés sont communes suivant le type de fichiers mais que d'autres sont propres. A toi de faire le tri ! De plus, toutes ne sont pas modifiables. Et encore, pour les iprop utilisateur, il faut les déclarer (créer) avant de les remplir si elles n'existent pas !! (parait évident mais pas pour tout le monde). J'espère avoir répondu à tes attentes.GenerateAllPropertiesList.zip Autodesk Inventor 2014 SP1Autodesk AutoCAD 2014Windows 7 PRO 64 bits SP1-------------------------------------------------------------------Station Dell Precision T3610Intel Xeon E5-1620 v2 3.70 GHz + RAM de 16 GoNvidia Quadro K4000 + 2 écrans Dell U2212HM full HD
jul Posté(e) le 8 avril 2014 Posté(e) le 8 avril 2014 Merci beaucoup pour tes réponses !!!! Ca fonctionne bien !!!
Polobe36 Posté(e) le 20 avril 2018 Posté(e) le 20 avril 2018 Bonjour à tous, je me permet de solliciter votre aide sur un sujet similaire: je cherche à récupérer par VBA Excel les infos du cartouche d'un plan de pièce sachant qu'elles ne sont pas toutes définies depuis iPropriété Nouveau sur le forum, je ne savais pas si je pouvais poster directement ici, donc j'ai ouvert une nouvelle discussion:http://cadxp.com/topic/45647-export-donnees-du-cartouche-inventor-par-vba-excel/ Merci par avance de votre aide. Salutations.
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant