alxG88
Guest
Bom dia a todos.
para me facilitar no meu trabalho estou escrevendo uma série de macros para bordas sólidas que simplificam as operações que trabalho com mais frequência.
o problema que eu quero enviar é o seguinte: Estou tentando escrever uma macro que os indivíduos todos os dfts abertos e, para cada um deles, salva uma cópia em formato pdf e uma em formato dxf dentro de um diretório específico.
Eu já tinha escrito uma macro executando a mesma operação com um dft de cada vez, mas agora não posso estender esse conceito a todos os dfts abertos.
Pus o código que escrevi:
como você pode ver eu tentei criar um do...loop até o ciclo para que ele vai à procura de dfts abertos de tempos em tempos, mas não funciona: o resultado é que ele só me salva o primeiro dft ativo e, em seguida, pára, forçando-me a iniciar a macro novamente para cada arquivo.
Podes ajudar-me? Onde estou errado?
graças a todos com antecedência
Alex
para me facilitar no meu trabalho estou escrevendo uma série de macros para bordas sólidas que simplificam as operações que trabalho com mais frequência.
o problema que eu quero enviar é o seguinte: Estou tentando escrever uma macro que os indivíduos todos os dfts abertos e, para cada um deles, salva uma cópia em formato pdf e uma em formato dxf dentro de um diretório específico.
Eu já tinha escrito uma macro executando a mesma operação com um dft de cada vez, mas agora não posso estender esse conceito a todos os dfts abertos.
Pus o código que escrevi:
Código:
módulo do módulo
dim objapp como solidedgeframework. aplicação
dim objdft como sólidoedgedraft.draftdocumento
dim filename como string
dim pathname_1 como string
dim pathname_2 como string
sub principal()
em resumo de erro em seguida
objapp = getobject(, "solidedge.application") ' cria uma aplicação com certas características
se objapp não é nada então
msgbox (a borda sólida não está aberta! borda sólida aberta.", vbcritical, "atenção"
saída sub
terminar se
se objapp.activedocumenttype < solidedgeframework.documenttypeconstants.igdraftdocument então
msgbox("nenhum rascunho de documento aberto! abrir um rascunho.
saída sub
terminar se
objdft = objapp.activedocument
se objdft não é nada então
msgbox("nenhum documento aberto!", vbinformation, "atenção")
saída sub
terminar se
fazer 'seguir o ciclo desde que haja rascunhos abertos
call objdft.save() ' colocado antes do nome, para novos arquivos é solicitado corretamente para dar o nome
filename = left(objdft.name, len(objdft.name) - 4)' deriva apenas o nome do arquivo
pathname_1 = "s:\ug\dxf\" ' path file dxf
pathname_2 = "s:\ug\dati\" ' file path pdf
objapp.displayalerts = false 'overwrites files automaticamente com o mesmo nome sem pedir
call objdft.saveas(pathname_1 + filename + ". + "dxf") ' salva pelo nome
call objdft.saveas(pathname_2 + filename + ". + "pdf") ' save by name
objapp.displayalerts = verdadeiras 'reativas mensagens de alerta de janelas
call objdft.close() 'closes the draft file it has just created pdf and dxf
não é nada
objapp = nada
loop até objapp.activedocumenttype <> solidedgeframework.documenttypeconstants. Documento de identificação
fim
módulo final
Podes ajudar-me? Onde estou errado?
graças a todos com antecedência
Alex