• Ce forum est la traduction générée par la machine de www.cad3d.it/forum1 - la communauté italienne du design. Plusieurs termes ne sont pas traduits correctement.

création automatique ipart membres et étape d'exportation

3olo

Guest
Bonjour.
J'ai fait des pièces ipart dont je vais générer quelques milliers de composants chacun.
Ce n'est pas un problème, déjà fait, le problème est que je devrais faire chaque étape pour pouvoir le partager avec d'autres modélistes.
J'ai actuellement mis toutes les pièces générées dans un ensemble et la fatigue j'ai construit une règle logique qui convertit tous les composants de ce ensemble en format étape.
Je demande poliment si quelqu'un est en mesure d'écrire une règle qui génère tous les membres de l'ipart et expose automatiquement chacun de ces membres générés par étapes.
Je suis un petit matériel VB et je ne peux pas.
Tu me ferais un grand plaisir.
Merci beaucoup à l'avance
 
vous êtes chanceux parce que l'un des exemples dans le guide de programmation fait ce que vous demandez
(aide ina alto a dx > ressources communautaires > guide de programmation > index, recherche objet ipartfactory, au bas de la page liens vers des exemples.
Si vous avez déjà des rudiments biologiques, vous ne devriez pas avoir de problème
Code:
sous-addition publique()
' ouvrir le document d'usine invisible.
dim ofactorydoc comme document
set ofactorydoc = this application.documents.open("c:\temp\ipartfactory.ipt", false)

' référence à la définition de l'élément.
dim ocompdef comme partcomponentdefinition
set ocompdef = ofactorydoc.componentdefinition

Assurez-vous que nous avons une usine d'ipart.
si ocompdef.isipartfactory = faux alors
msgbox "le document choisi n'est pas une usine."
sortie sous
fin si

' fait référence à l'usine.
dim oipartfactory comme ipartfactory
set oipartfactory = ocompdef.ipartfactory

' obtenir le nombre de lignes dans l'usine.
Dim inumrows comme entier
inumrows = oipartfactory.tablerows.count

' créer un nouveau document de montage
dim odoc comme document de montage
set odoc = thisapplication.documents.add(kassemblydocumentobjet, , true)

dim ooccs en tant que composants
set ooccs = odoc.componentdefinition.occurrences

dim opos comme matrice
set opos = cette application.transientgeométrie.creatematrix

dim ostep double
oétape = 0#
Dim irow aussi longtemps

' ajouter un événement pour chaque membre de l'usine.
pour irow = 1 pour inumrows

ostep = ostep + 10

' ajouter une traduction le long de l'axe x
opos.settraduction cette application.transientgeométrie.createvector(ostep, ostep, 0)

dim oocc en tant que composant
set oocc = ooccs.addipartmember("c:\temp\ipartfactory.ipt ", opos, irow)
suivant
fin sous
ou mieux, il ne fait pas exactement ce que vous voulez mais avec votre règle déjà fait vous êtes bien... ce programme rassemble tous les éléments d'une ipart
 
Grandissimo ! C'est du mille ! in realtà sono ancora molto neandertal con ilogic e uso questa regola per esportare tutte le parti di un assieme in iges ,l'ho trovata su un forum che non mi ricordo al momento,ma funziona alla perfezione

'définir le document ouvert
dim opendoc comme document
opendoc = cedoc.document

'définir le dossier pour créer des fichiers dans
ofolder = "c:\temp\igs fichiers"

«Vérifiez le dossier de destination et créez-le s'il n'existe pas
si pas system.io.directory.exists(ofolder) alors
system.io.directory.createdirectory(ofolder)
fin si

'regardez tous les fichiers référencés dans le document ouvert
dim docfile comme document
pour chaque docfile dans opendoc.allreferenceddocuments
Nom du fichier 'format
dim fnamepos aussi longtemps
'postion de la dernière barre oblique
fnamepos = instrrev(docfile.fullfilename, "\", -1)
dim docfname comme chaîne
'nom du fichier avec extension
docfname = right(docfile.fullfilename, len(docfile.fullfilename) - fnamepos)
'nom du fichier sans extension
shortname = left(docfname, len(docfname) -4)

' obtenir l'ajout de traducteur iges.
dim oigestraducteur comme traducteuraddin
oigestraducteur = cette application.applicationaddins.itembyid _
({90af7f44-0c01-11d5-8e83-0010b541cd80})
dim ocontext comme translationcontext
ocontext = thisapplication.transientobjets.createtranslationcontext
dim ooptions comme namevaluemap
ooptions = thisapplication.transientobjets.createnamevaluemap
si oigestranslatator.hassavecopyasoptions(docfile, ocontext, ooptions) alors
' set geometric type for wireframe.
' 0 = surfaces, 1 = solides, 2 = trame filaire
'ooptions.value("géométrietype") = 1
' pour définir d'autres valeurs de traducteur:
' ooptions.value("solidfacetype") = n
' 0 = nurbs, 1 = analytique
' ooptions.value("type de surface") = n
' 0 = 143(bounded), 1 = 144(trimmed)
ocontext.type = iomechanisme.kfilebrowseiomechanism
dim odata comme datamedium
odata = thisapplication.transientobjets.createdatamedium
'set chemin de fichier pour le fichier igs
odata.filename = ofolder & "\" & shortname & ".igs"
oigestranslatator.savecopyas(docfile, ocontexte, ooptions, odata)
fin si
suivant


secondo te basta che lo ce la aggiongo sotto nella stessa regola che hai postato tu per fare quello che chiedo? al momento mi esporta in iges, ma se volessi esportare in step come potrei farty? non mi piace molto iges perché sono fichiers più pesanti di quelli en formato step. TA ringrazio ancora
 
J'ai quelques exemples, je pense que ça marche. . . .
Code:
 sous-addition publique()
' ouvrir le document d'usine invisible.
dim ofactorydoc comme document
set ofactorydoc = this application.documents.open("w:\commesse\aia\15030_modifica zona lavatri\assieme2.c02.ipt", false)

' référence à la définition de l'élément.
dim ocompdef comme partcomponentdefinition
set ocompdef = ofactorydoc.componentdefinition

Assurez-vous que nous avons une usine d'ipart.
si ocompdef.isipartfactory = faux alors
msgbox "le document choisi n'est pas une usine."
sortie sous
fin si

' fait référence à l'usine.
dim oipartfactory comme ipartfactory
set oipartfactory = ocompdef.ipartfactory

' obtenir le nombre de lignes dans l'usine.
Dim inumrows comme entier
inumrows = oipartfactory.tablerows.count

' créer un nouveau document de montage
dim odoc comme document de montage
set odoc = thisapplication.documents.add(kassemblydocumentobjet, , true)

dim ooccs en tant que composants
set ooccs = odoc.componentdefinition.occurrences

dim opos comme matrice
set opos = cette application.transientgeométrie.creatematrix

dim ostep double
oétape = 0#
Dim irow aussi longtemps

' ajouter un événement pour chaque membre de l'usine.
pour irow = 1 pour inumrows

ostep = ostep + 10

' ajouter une traduction le long de l'axe x
opos.settraduction cette application.transientgeométrie.createvector(ostep, ostep, 0)

dim oocc en tant que composant
set oocc = ooccs.addipartmember("w:\commesse\aia\15030_modifica zona lavatri\assieme2.c02.ipt", opos, irow)

suivant

odoc.save

dim orefdoc comme document
pour chaque orefdoc dans les documents odoc.referenced
téléphoner à l'exporttostep(orefdoc)
suivant


fin sous

Sous-exportation publique (odoc comme document)

dim exportpath comme chaîne
chemin d'exportation = "c:\stp\"

' obtenir l'ajout de traducteur étape.
dim osteptraducteur comme traducteuraddin
ensemble osteptraducteur = cette application.applicationaddins.itembyid("{90af7f40-0c01-11d5-8e83-00100b541cd80}")

si osteptraducteur n'est rien alors
msgbox "ne pouvait pas accéder au traducteur étape."
sortie sous
fin si

dim ocontext comme translationcontext
set ocontext = thisapplication.transientobjets.createtranslationcontext
dim ooptions comme namevaluemap
set ooptions = thisapplication.transientobjects.createnamevaluemap
si osteptranslator.hassavecopyasoptions (cette application.activedocument, ocontext, ooptions) alors
' définir le protocole d'application.
' 2 = ap 203 - configuration contrôlée
' 3 = ap 214 - conception automobile
ooptions.value("applicationprotocoltype") = 3

' autres options...
'ooptions.value("auteur") = ""
'ooptions.value("autorisation") = ""
'ooptions.value("description") = ""
'ooptions.value("organisation") = ""

ocontext.type = kfilebrowseiomechanism

dim odata comme datamedium
set odata = thisapplication.transientobjets.createdatamedium


Nom du fichier 'format
dim fnamepos aussi longtemps
'postion de la dernière barre oblique
fnamepos = instrrev(odoc.fullfilename, "\", -1)
dim docfname comme chaîne
'nom du fichier avec extension
docfname = strings.right(odoc.fullfilename, len(odoc.fullfilename) - fnamepos)
'nom du fichier sans extension
dim shortname comme chaîne
shortname = strings.left(docfname, len(docfname) - 4)

odata.filename = exportpath & shortname & ".stp"

call osteptranslator.savecopyas(odoc, ocontext, ooptions, odata)
fin si
fin sous
 
Merci beaucoup, très aimable, je suis au bureau et je vous le ferai savoir. Merci beaucoup pour votre aide
 
Bonjour, je l'ai essayé, mais le premier inventeur m'a donné un message que toutes les instructions sous et fonctions devraient être placées après le sous-main(), puis je l'ai renommé sous-main.
Quand je l'ai redémarré inventeur m'a donné le message que les instructions let et set ne sont plus pris en charge.... boh! Où ai-je tort ? Je crée la règle à partir du menu logique de l'inventeur et puis je commence, je dois le faire tourner d'une façon ou d'une autre ?
 
n'était pas une règle logique, mais un programme vba (qui est compatible avec ilogic); à partir des messages que vous pensez pouvoir simplement essayer de supprimer l'instruction définie (ils sont avant l'attribution de variables, comme "set opposé = ...")
 
Merci beaucoup, mais j'ai réussi à le faire tourner en utilisant l'éditeur intégré dans l'inventeur. C'est comme un éclat. Merci encore.
 
Je vous félicite pour l'utilisation de la programmation. Cependant, sous les outils de l'inventeur (à partir du menu de démarrage), il y a des opérations de programmation.
entre les opérations programmées vous pouvez utiliser "convertir des fichiers", puis sélectionner les ipts de départ et comme fichier d'arrivée l'étape. Alors, laisse tomber et fais-le.
Bonjour.
 
Salut, le problème est que l'ipt n'est qu'un, mais les membres de tels ipt sont des milliers, étant une partie. En convertissant ce fichier là-bas, je ne fais rien à ce sujet, ce sont tous ses membres qui doivent être générés et convertis en même temps. la macro publiée ci-dessus fait juste que
 
Salut, le problème est que l'ipt n'est qu'un, mais les membres de tels ipt sont des milliers, étant une partie. En convertissant ce fichier là-bas, je ne fais rien à ce sujet, ce sont tous ses membres qui doivent être générés et convertis en même temps. la macro publiée ci-dessus fait juste que
ouvrir l'ipt et ouvrir la liste ipart sur le navigateur (ne pas entrer dans la fenêtre d'édition mais simplement afficher les membres sur le nœud du navigateur). puis sélectionnez tous les membres > bouton dx > génère des fichiers. vous trouvez tous les ipts dans le sous-dossier que vous créez sous l'ipt de base. puis automatiquement faire les étapes de ce dossier.
 
sont deux routes, mais la macro fait tout à la fois
En fait, la mienne n'était pas une critique et je vous ai complimenté.
J'ai simplement ajouté une deuxième façon manuelle pour ceux qui ne sont pas programmateurs et qui savent que se tourner entre les possibilités d'opérations planifiées quelqu'un ne trouve pas la réponse déjà faite à son problème.
 
Ça nous manquerait ! Je vous remercie ! Entre autres, planifier les opérations J'utilise pour convertir des groupes de tables en général, je ne pensais pas qu'il pourrait revenir utile aussi pour les exportations! peut revenir très utile votre point, donc peut-être quelqu'un qui a tant d'ipts à convertir peut tout faire ainsi. mille, chaque point est plus que bien accepté. Merci encore.
 
Je rouvre le thread parce que je voudrais demander de l'aide pour faire une petite amélioration à la macro: actuellement cette macro génère tous les membres de l'ipart puis crée un ensemble, met tous les membres générés dans cet ensemble, cesse de vous demander où enregistrer ceci ensemble et avec quel nom, puis génère toutes les étapes des membres. Je voulais demander si quelqu'un peut enregistrer automatiquement l'axième en définissant un nom par défaut, alors jetez simplement la macro et il arrange du début à la fin sans bloquer.
Merci beaucoup.
 
Salut 3eolo, pourriez-vous me dire comment vous avez réussi à faire fonctionner vba editor???
avec une certaine image de l'endroit où vous téléchargez le programme. J'ai indiqué 3eolo parce qu'il a écrit qu'il a travaillé par l'éditeur vba
Mais quiconque sait me décevoir et accepter

Merci beaucoup.

J'ai essayé de charger ce petit programme depuis Internet1616566763493.pngMais j'ai tort
et si la charge avec ilogic me donne la même erreur citée par 3elo plus sur
"Bonjour, j'ai essayé, mais le premier inventeur m'a donné un message que toutes les instructions de sous et de fonction devraient être placées après le sous-main(), puis je l'ai renommé sous-main."
 
pour moi dans la version anglaise fonctionne:
Code:
sous-création publiquemtest()
dim asmdoc comme document de montage
définir asmdoc = cette application.activedocument

dim occ en tant que composant
pour chaque occ dans asmdoc.componentdefinition.occurrences
dim partdoc comme document
set partdoc = oct.definition.document

' rendre la pièce visible.
Partiedoc.views.add

' la convertir en tôle.
sous-type = "{9c464203-9bae-11d3-8bad-0060b0ce6bb4}"

dim smdef en tant que composant de tôle
set smdef = partdoc.componentdéfinition

Dépliez la partie. cela va activer l'environnement de motif plat.
'smdef.unfold (ho tolto)

' sortie de l'environnement plat.
'smdef.flatpattern.exitedit (ho tolto)

' fermer et enregistrer le document. ceci fermera la vue, mais il
' reste en fait ouvert parce que l'assemblée le référencie encore.
call partdoc.close(true)
suivant
fin sous
si vous savez comment régler l'épaisseur ok. si ce n'est pas après la macro vba essayer d'utiliser la règle logique comme expliqué ici:
 
ouvrir l'ipt et ouvrir la liste ipart sur le navigateur (ne pas entrer dans la fenêtre d'édition mais simplement afficher les membres sur le nœud du navigateur). puis sélectionnez tous les membres > bouton dx > génère des fichiers. vous trouvez tous les ipts dans le sous-dossier que vous créez sous l'ipt de base. puis automatiquement faire les étapes de ce dossier.
bonsoir mais comment générer automatiquement les fichiers étape d'un dossier de pièces ipt merci
 

Statistiques du forum

Sujets
58 521
Messages
499 056
Membres
104 110
Dernier membre
ChristianR

Membres en ligne

Aucun membre en ligne actuellement.
Retour
Haut