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