• Este fórum é a tradução automática de www.cad3d.it/forum1 - a comunidade italiana de design. Vários termos não foram traduzidos corretamente.

criação automática ipart membros e passo de exportação

3olo

Guest
Olá.
Fiz algumas partes ipart das quais gerarei alguns milhares de componentes cada.
Este não é um problema, já feito, o problema é que eu deveria fazer cada passo para poder compartilhá-lo com outros modeladores.
Atualmente coloco todas as peças geradas em um conjunto e fadiga Construí uma regra ilógica que converte todos os componentes deste em formato de passo.
Pergunto educadamente se alguém é capaz de escrever uma regra que gera todos os membros do ipart e, em seguida, automaticamente expõe cada um desses membros gerados no passo.
Sou um pouco de hardware VB e não posso.
Fazias-me um grande prazer.
Muito obrigado com antecedência
 
você tem sorte porque um dos exemplos no guia de programação faz o que você pede
(ajuda em um alto a dx > recursos comunitários > índice de programação >, pesquisa objeto ipartfactory, na parte inferior da página links para exemplos.
Se você já tem rudimentos ilogic você não deve ter nenhum problema
Código:
público sub addipartoccurrence()
' abrir o documento de fábrica invisível.
dim ofactorydoc como documento de parte
set ofactorydoc = thisapplication.documents.open("c:\temp\ipartfactory.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("c:\temp\ipartfactory.ipt ", opos, irow)
Próximo
end sub
ou melhor, não faz exatamente o que você quer, mas com sua regra já fez você está bem... este programa reúne todos os elementos de um ipart
 
grandissimo! grazie mille! in realtà sono ancora molto neanderthal 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

"defina o documento aberto
dim opendoc como documento
opendoc = thisdoc.document

"defina a pasta para criar arquivos em
ofolder = "c:\temp\igs files"

"Verifique para a pasta de destino e crie-a se não existir
se não system.io.directory.exists(ofolder) então
sistema.io.directory.createdirectory(ofolder)
terminar se

"olhe em todos os arquivos referenciados no documento aberto
dim docfile como documento
para cada docfile em documentos abertos.allreferenced
Nome do arquivo de formato
dim fnamepos longo
'postion of last back slash
fnamepos = instrrev(docfile.fullfilename, "\", -1)
dim docfname como string
Nome do arquivo com extensão
docfname = right(docfile.fullfilename, len(docfile.fullfilename) - fname)
Nome do arquivo sem extensão
shortname = left(docfname, len(docfname) -4)

Arranja o complemento tradutor iges.
dim oigestranslator como tradutoraddin
oigestranslator = esteapplication.applicationaddins.itembyid _
("{90af7f44-0c01-11d5-8e83-0010b541cd80}")
dim ocontexto como traduçãocontexto
ocontexto = esteapplication.transientobjects.createtranslationcontext
dim ooptions as namevaluemap
ooptions = thisapplication.transientobjects.createnamevaluemap
se oigestranslator.hassavecopyasoptions(docfile, ocontext, ooptions) então
Tipo de geometria do conjunto para o wireframe.
0 = superfícies, 1 = sólidos, 2 = wireframe
'ooptions.value("geometrytype") = 1
' para definir outros valores tradutores:
' ooptions.value("solidfacetype") = n
0 = nurbs, 1 = analytic
Ooptions.value("superfícietype") = n
' 0 = 143 (limitado), 1 = 144 (trimmed)
ocontext.type = iomechanismenum.kfilebrowseiomechanism
dim odata as datamedium
odata = thisapplication.transientobjects.createdatamedium
'set file path for igs file
odata.filename = ofolder & "\" & shortname & ".igs"
oigestranslator.savecopyas(docfile, ocontext, ooptions, odata)
terminar se
Próximo


te basta che lo ce la aggiungo 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 fare? non mi piace molto iges perché sono files più pesanti di quelli in Format step. ancoragem
 
Tenho alguns exemplos, acho que funciona. .
Código:
 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
 
Bom dia, eu tentei, mas primeiro inventor me deu uma mensagem de que todas as instruções sub e função devem ser colocadas após sub main(), então eu renomeei sub principal.
Quando eu o reiniciei inventor me deu a mensagem de que as instruções deixadas e definidas não são mais suportadas.... boh! Onde estou errado? Eu crio a regra do menu ilogic do inventor e, em seguida, eu começo, eu tenho que fazê-lo girar de alguma forma?
 
não foi uma regra ilógica, mas um programa vba (que é compatível com ilogic); das mensagens que você acha que pode simplesmente tentar remover a instrução definida (eles são antes de atribuições de variáveis, como "conjunto oposto = ...")
 
Muito obrigado, mas consegui fazê-lo girar usando o editor embutido no inventor. É como uma lasca. Obrigado novamente.
 
Congratulo-vos pelo uso da programação. No entanto, sob as ferramentas do inventor (a partir do menu inicial) há operações de programação.
entre operações programadas você pode usar "converter arquivos", em seguida, selecione os ipts iniciais e como o arquivo de chegada o passo. então dê o caminho e faça tudo.
Olá.
 
oi, o problema é que o ipt é apenas um, mas os membros de tal ipt são milhares, sendo um ipart. Ao converter esse arquivo lá eu não faço nada sobre ele, são todos os seus membros que devem ser gerados e convertidos ao mesmo tempo. a macro publicada acima faz exatamente isso
 
oi, o problema é que o ipt é apenas um, mas os membros de tal ipt são milhares, sendo um ipart. Ao converter esse arquivo lá eu não faço nada sobre ele, são todos os seus membros que devem ser gerados e convertidos ao mesmo tempo. a macro publicada acima faz exatamente isso
abra o ipt e abra a lista ipart no navegador (não insira a janela de edição, mas simplesmente visualize os membros no nó do navegador). então selecione todos os membros > botão dx > gera arquivos. você encontra todos os ipts na subpasta que você cria sob o ipt básico. então faça automaticamente as etapas dessa pasta.
 
são duas estradas, mas a macro faz tudo ao mesmo tempo
Na verdade, o meu não era uma crítica e eu elogiava-te.
Eu simplesmente adicionei uma segunda maneira manual para aqueles que não são programadores e que sabem que virar entre as possibilidades de operações planejadas alguém não encontra a resposta já feita ao seu problema.
 
Nós perderíamos! Obrigado! entre outras coisas planejar operações Eu uso para converter grupos de tabelas geralmente, Eu não achei que poderia voltar útil também para as exportações! pode voltar muito útil seu ponto, então talvez um que tem tantos ipts para converter pode fazer tudo isso. mil, cada ponto é mais do que bem aceito. Obrigado novamente.
 
Eu reabro o thread porque eu gostaria de pedir ajuda para fazer uma pequena melhoria para a macro: atualmente esta macro gera todos os membros do ipart, em seguida, cria um conjunto, coloca todos os membros gerados nesse conjunto, para perguntar onde salvar isso juntos e com que nome, em seguida, gera todos os passos dos membros. Eu queria perguntar se alguém pode salvar automaticamente o axieme definindo um nome padrão, então basta jogar a macro e ele arranja do início ao fim sem bloquear.
Muito obrigado.
 
Olá 3eolo, podes dizer-me como é que fizeste com o editor vba?
com alguma imagem de onde você carrega o programa. Eu indiquei 3eolo porque foi ele escreveu que funcionou através do editor vba
mas quem sabe como me decepcionar e aceitar

Muito obrigado.

Eu tentei carregar este pequeno programa da internet1616566763493.pngMas estou enganado.
e se a carga com ilogic me dá o mesmo erro citado por 3elo mais em
"Bom dia, eu tentei, mas primeiro inventor me deu uma mensagem de que todas as instruções sub e função devem ser colocadas após sub main(), então eu renomeei sub principal."
 
para mim na versão em inglês funciona:
Código:
público sub createsmtest()
dim asmdoc como documento de montagem
set asmdoc = thisapplication.activedocument

dim occ como componente
para cada occ em asmdoc.componentdefinition.occurrences
dim partdoc como documento parcial
set partdoc = occ.definition.document

' tornar o documento de parte visível.
Anúncio grátis para sua empresa

' convertê-lo para um tipo de chapa de metal.
partdoc.subtype = "{9c464203-9bae-11d3-8bad-0060b0ce6bb4}"

dim smdef as sheetmetalcomponentdefinição
set smdef = partdoc.componentdefinition

Desdobra a parte. isso irá ativar o ambiente de padrão plano.
'smdef.unfold (ho tolto)

' sair do ambiente de padrão plano.
'smdef.flatpattern.exitedit (ho tolto)

' Fechar e salvar o documento. isto vai fechar a vista, mas vai
' realmente permanecer aberto porque a montagem ainda está fazendo referência.
call partdoc.close(true)
Próximo
end sub
se você sabe como definir a espessura ok. se não após a macro vba tentar usar a regra ilogic como explicado aqui:
 
abra o ipt e abra a lista ipart no navegador (não insira a janela de edição, mas simplesmente visualize os membros no nó do navegador). então selecione todos os membros > botão dx > gera arquivos. você encontra todos os ipts na subpasta que você cria sob o ipt básico. então faça automaticamente as etapas dessa pasta.
boa noite, mas como você gera automaticamente os arquivos de passo de uma pasta de peças ipt graças
 

Estatísticas do fórum

Tópicos
58,521
Mensagens
499,056
Membros
104,110
Último membro
ChristianR

Membros online

Nenhum membro online agora.
Voltar
Topo