• 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.

déconnecter automatiquement les membres ipart, macro

3olo

Guest
Salve,
sbuffando e a fadica sojno riuscito a crearmi una macro in inventeur i per la generazione automatica dei membri di una ipart e la relative conversiojne in formato step. la uso con soddisfazione da un poê e fa tutto da sola. Nello specico:
-Généra tutti i membri di un ipart;
-li mette tutti in un Assieme pilota e lo salva;
-ltutti tali fichiers vengono esportati in step e messi in una cartella .
Spettacolo finora: Il s'agit d'un problème è che ovviamente una volta aperti non trovano il collegamento con l. cio è molto fastidioso.
vorrei quindi modificare la macro in modo che ogni membro dell.
Cercando nella guida di inventeur api ho trovato una funzione che forse fa al caso mio:
ipartmember.breaklinktofactory()
description
méthode qui rompt le lien avec l'usine mère et convertit le membre ipart en une partie dérivée.

dovrebbe essere quest ache mi serve.
però essendo un po-limitato io con vba non sono in grado di inserirla nella mia macro in modo che funzioni.
Qualche buon anime che mi può aiutare? se non riuscite a modificare la macro mi basterebbe averne una nuova in cui magari si scolleghino tutti i componenti inseriti in un Assieme.
Il s'agit d'un programme d'éducation et de formation des adultes. vi ringrazio tanto in anticipo



sous-addition publique()
' ouvrir le document d'usine invisible.
dim ofactorydoc comme document
set ofactorydoc = this application.documents.open("c:\disegni inventeur\prova ipart1.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:\disegni inventeur\prova ipart1.ipt", opos, irow)

suivant

'odoc.save
call odoc.saveas("c:\disegni inventeur\assiemecancella.iam", true)

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

suivant


fin sous

Sous-exportation publique (odoc comme document)

dim exportpath comme chaîne
exportpath = "c:\disegni inventeur\stpcanc\"

' 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
 
Je pense que ça marche. . . .
Code:
dim opart comme document partiel
pour chaque opart dans les documents odoc.referenced
opart.componentdefinition.ipartmember.breaklinktofactory
suivant
 
Merci beaucoup, où l'emmenez-vous ? avant la sous-finale ?
Je dirais avant:
dim orefdoc comme document
pour chaque orefdoc dans les documents odoc.referenced
imemberpart.breaklinktofactory (orefdoc)
téléphoner à l'exporttostep(orefdoc)

suivant

dont il élimine
imemberpart.breaklinktofactory (orefdoc)

faire des tests sur quelque chose de pas vital de toute façon, à partir des tests (juste et rapide) que j'ai fait l'opération semble celui requis, mais je n'ai pas approfondi ce qui arrive aux iparts avec connexion cassée.. .
 
Très gentil ! J'essaie de te le dire ! et si vous voulez faire une macro avec ce code qui m'ouvre un jeu avec dans les membres d'ipart et me déconnecte? Tu pourrais jeter un jet rapide ? Ainsi bypassamdo l'étape de production et d'exportation de la partie.
 
J'ai essayé et travaillé sur certaines iparts, sur d'autres non, dans le sens où il interrompt les liens, mais ensuite pour faire des changements réels je devrais enregistrer l'axième pilote créé (et tous ses composants bien sûr) cependant, quand j'essaie de sauver tous les accidents d'inventeur, probablement pour le grand nombre de composants à enregistrer.
Je pensais alors ajouter la fonction "save2" qui est dans le guide des abeilles inventeurs par rapport au sauvetage des assemblages et des composants connexes, mais je ne comprends pas comment l'écrire, pouvez-vous m'aider?
J'ai essayé.
odoc.save2( vrai, ) mais rien
appeler odoc.save2(vrai,) rien même avec cela
odoc.save2(true,0) rien

Pouvez-vous m'aider ? Je voudrais insérer entre la rupture et l'exportation des composants, je pense qu'il est correct de le mettre là, mais dites-moi
 
Je n'ai pas beaucoup de temps en ce moment, si vous avez de la patience, j'essaie de donner un oeil. Je ne pense pas que les accidents soient dus à la quantité de composants: l'inventeur serait lancé dans ce cas. Mais je ne sais pas ce qui se passe avec les iparts déconnectées, j'utilise les quelques iparts et je ne sais pas comment elles se comportent... Tu dois étudier.
 

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