público sub addipartoccurrence()
' abrir o documento de fábrica invisível.
dim ofactorydoc como documento de parte
set ofactorydoc = thisapplication.documents.open("w:\commesse\aia\15030_modifica zona lavatrici\assieme2.c02.ipt", false)
'defina uma referência à definição do componente.
dim ocompdef como partecomponentedefinição
set ocompdef = ofactorydoc.componentdefinição
Certifica-te que temos uma fábrica ipart.
se ocompdef.isipartfactory = false então
msgbox "documento escolhido não é uma fábrica.", vbexclamation
saída sub
terminar se
Definir uma referência à fábrica.
dim oipartfactory como ipartfactory
set oipartfactory = ocompdef.ipartfactory
Arranja o número de linhas na fábrica.
dim inumrows como inteiro
inumrows = oipartfactory.tablerows.count
' criar um novo documento de montagem
dim odoc como documento de montagem
set odoc = thisapplication.documents.add (kassemblydocumentobject, , true)
dim ooccs como componenteocorrências
set ooccs = odoc.componentdefinition.occurrences
dim opos como matriz
set opos = thisapplication.transientgeometry.creatematrix
dim ostep as double
ostep = 0#
dim irow como longo
' Adicione uma ocorrência para cada membro na fábrica.
para irow = 1 para inumrows
ostep = ostep + 10
' adicione uma tradução ao longo do eixo x
opos.settranslation thisapplication.transientgeometry.createvector(ostep, ostep, 0)
dim oocc como componente
set oocc = ooccs.addipartmember("w:\commesse\aia\15030_modifica zona lavatrici\assieme2.c02.ipt", opos, irow)
Próximo
odoc.save
dim orefdoc como documento
para cada orefdoc em documentos odoc.referenced
call exporttostep (orefdoc)
Próximo
end sub
sub exporttostep público (odoc como documento)
dim exportpath como string
exportpath = "c:\stp\"
Arranja o complemento de tradutores.
dim osteptranslator como tradutoraddin
set osteptranslator = thisapplication.applicationaddins.itembyid("{90af7f40-0c01-11d5-8e83-0010b541cd80}")
se osteptranslator não é nada então
msgbox "não poderia acessar tradutor passo".
saída sub
terminar se
dim ocontexto como traduçãocontexto
set ocontext = thisapplication.transientobjects.createtranslationcontext
dim ooptions as namevaluemap
set ooptions = thisapplication.transientobjects.createnamevaluemap
se osteptranslator.hassavecopyasoptions(thisapplication.activedocument, ocontext, ooptions) então
Definir protocolo de aplicação.
2 = ap 203 - design controlado por configuração
3 = ap 214 - projeto automotivo
ooptions.value("applicationprotocoltype") = 3
Outras opções...
"ooptions.value("author") = "
"ooptions.value("authorization") = ""
'ooptions.value("description") = "
"ooptions.value("organization") = ""
ocontext.type = kfilebrowseiomecanismo
dim odata as datamedium
set odata = thisapplication.transientobjects.createdatamedium
Nome do arquivo de formato
dim fnamepos longo
'postion of last back slash
fnamepos = instrrev(odoc.fullfilename, "\", -1)
dim docfname como string
Nome do arquivo com extensão
docfname = strings.right(odoc.fullfilename, len(odoc.fullfilename) - fname)
Nome do arquivo sem extensão
dim shortname como string
shortname = strings.left(docfname, len(docfname) - 4)
odata.filename = exportpath & shortname & ".stp"
call osteptranslator.savecopyas(odoc, ocontext, ooptions, odata)
terminar se
end sub