Converter STL para OBJ

Aqui você converte STL para OBJ de graça e sem conta: solte o arquivo acima e em poucos segundos o resultado está pronto para baixar. A conversão acontece dentro do seu próprio navegador, então o arquivo nunca é enviado. Funciona igual no Windows, no macOS e no Linux e também no iPhone e no Android, e continua funcionando mesmo se você cortar a conexão.

  • Onde roda No seu navegador. O arquivo nunca é enviado.
  • Reconstruído OBJ funciona de um jeito diferente de STL. Não é a degradação gradual de um codec com perda: o que OBJ consegue expressar é reproduzido fielmente, e o que não tem equivalente ali não sobrevive de jeito nenhum.
  • Limite de tamanho Até 100 MB por arquivo, de graça e sem conta.
  • Vale saber Só a geometria. Materiais, cores, texturas e animação não vão junto, e um modelo colocado várias vezes volta com cada cópia fixada na sua própria posição.

Até 100 arquivos de uma vez. Formatos misturados não são problema.

Tirando um STL do mundo da impressão para poder mudá-lo

STL existe para ser fatiado. Carrega triângulos e nada mais, exatamente o que um fatiador quer e exatamente o que um programa de modelagem não quer — sem grupos para isolar, sem materiais para atribuir, sem nomes para buscar e, principalmente, sem vértices compartilhados. Tudo que um modelador faz começa selecionando parte de uma malha, e um STL não dá nada para selecionar.

OBJ é o tipo oposto de arquivo: texto, indexado, agrupado, importado universalmente, e antigo o bastante para até um pacote de 1998 conseguir ler. Não é um formato melhor que o STL em abstrato; é o formato que toda ferramenta de um pipeline de modelagem trata como padrão.

Soldar é o que torna a malha selecionável

Um cubo num STL são doze triângulos com trinta e seis vértices, porque cada triângulo carrega seus três cantos de forma independente e os oito cantos reais são escritos quatro ou cinco vezes cada. Importe isso sem alteração e todo triângulo é sua própria ilha: Selecionar Vinculado pega uma face só, seleção de loop não encontra loop nenhum, subdivisão produz buracos.

O leitor aqui funde vértices coincidentes antes de escrever qualquer coisa. A chave de comparação é arredondada a seis casas decimais, porque dois triângulos que se encontram numa aresta costumam discordar no último bit de um float — seis casas está bem abaixo de qualquer tolerância imprimível. O cubo sai com oito vértices e doze faces, uma malha no sentido que um modelador quer dizer.

O que o arquivo OBJ realmente contém

Uma linha de comentário, uma linha o nomeando o grupo único, depois uma linha v por vértice e uma linha f por triângulo. É o arquivo inteiro. Os índices são baseados em um, como o OBJ exige.

Não há linhas vt porque um STL não tem coordenadas de textura, não há linhas vn porque as normais são deriváveis, não há usemtl porque não há material, e não há referência mtllib porque não há biblioteca de material. Qualquer coisa que abra OBJ vai ler; não há nada incomum no arquivo para um importador discordar.

O grupo único, e separando as partes depois

Um STL não tem conceito de objeto, então o OBJ tem um grupo só, chamado mesh_1. Um modelo montado a partir de um corpo, uma tampa e uma alça chega como um grupo contendo três cascas desconectadas.

Todo programa de modelagem consegue dividir isso. O Blender faz com Separar por Partes Soltas no modo de edição; o MeshLab tem Split em Componentes Conectados. O que nenhum deles consegue fazer é recuperar os nomes, porque o STL nunca os teve. Se os nomes importam, 3MF e OBJ os mantêm e STL nunca vai manter.

Nenhuma normal é escrita, e essa é a decisão certa

Um STL guarda uma normal de face por triângulo. Ela não é escrita no OBJ, e nada se perde: uma normal de face é totalmente determinada pela ordem de enrolamento dos três cantos, e todo programa recalcula na importação.

A ausência de normais de vértice é mais interessante. Sem elas o importador calcula as suas, o que para uma malha soldada significa fazer a média entre os vértices compartilhados — então o modelo chega pronto para ser sombreado suave ou plano como você escolher, com a decisão vivendo no seu programa em vez de embutida no arquivo.

Como o leitor decide se o seu STL é binário ou texto

Os dois dialetos convertem e o arquivo não diz qual é. O teste comum — o arquivo começa com a palavra "solid"? — está errado, porque um STL binário pode ter qualquer coisa em seus oitenta bytes de cabeçalho e vários escritores colocam "solid" ali.

O teste confiável é aritmético: um STL binário tem exatamente 84 + 50n bytes para a contagem de triângulos declarada no cabeçalho, e nada mais é. É isso que é conferido. Se a aritmética não bater, o arquivo é decodificado como texto e cada linha vertex é lida.

O tamanho do OBJ comparado ao STL de origem

Dois efeitos puxam em direções opostas. Soldar remove a maior parte da duplicação: uma malha típica tem cada vértice compartilhado por cinco ou seis triângulos, então a lista de vértices encolhe por aproximadamente esse fator. Texto expande o que sobra: um float de quatro bytes vira dez a quinze caracteres decimais.

O resultado costuma ficar na mesma faixa, com o OBJ um pouco à frente do STL binário — um aumento, não uma multiplicação. O teto gratuito aqui é 100 MB, cerca de dois milhões de triângulos STL, uma malha densa além do que a maioria das sessões de modelagem quer de qualquer forma.

Onde o STL é convertido

Nesta aba do navegador, por JavaScript comum. Nenhum módulo WebAssembly é baixado, nada é enviado a servidor, não há cadastro nem limite diário. Abrir o painel de rede e converter algo é como confirmar isso.

Arquivos STL frequentemente são desenho de outra pessoa — a peça de um cliente, a geometria de um fornecedor, um componente sob acordo — e o trabalho de modelagem desta página é exatamente a situação em que isso é verdade. Uma conversão que nunca envia o arquivo evita a questão em vez de precisar respondê-la.

Como converter STL para OBJ

  1. Solte o seu arquivo STL nesta página, ou clique para escolher um.
  2. Escolha OBJ como destino. A conversão acontece no seu navegador e o arquivo não é enviado.
  3. Baixe o arquivo OBJ pronto.

STL ou OBJ: o que muda

STL comparado com OBJ
STLOBJ
Nome completoStereolithographyObjeto Wavefront
Extensão do arquivo.stl.obj
Tipo de mídiamodel/stlmodel/obj
Publicado pela primeira vez19871992
Publicado por3D SystemsWavefront Technologies
LicençaPadrão abertoPadrão aberto
Situação hojeAtualAtual
Abre no navegadorNenhum navegadorNenhum navegador
Considerado no lugar3MF, PLYGLTF, PLY

Abrir o resultado

Blender lê tanto STL quanto OBJ, então dá para comparar o resultado com o original sem um segundo programa.

Para que serve cada formato

Os dois miram trabalhos diferentes: STL em a impressão 3D, OBJ em mover dados entre programas e a edição. Vale pesar isso antes, porque o motivo de um existir costuma ser o motivo de o outro ser incômodo.

OBJ vem da Wavefront Technologies é de 1992. Blender, MeshLab e Maya leem o formato.

De STL para OBJ: perguntas frequentes

Meu arquivo STL é enviado para algum lugar?

Não. Esta conversão acontece inteiramente no seu navegador, então o arquivo não sai do seu aparelho. Você mesmo pode conferir: abra a aba de rede das ferramentas de desenvolvedor e converta alguma coisa. Você verá a própria página e as requisições de estatística e de publicidade com que este serviço é pago, e nenhuma que leve o seu arquivo.

Converter STL para OBJ é grátis?

É. Sem conta, sem marca d’água e sem cota diária para gastar: roda no seu próprio aparelho, então você pode voltar quantas vezes quiser. O navegador processa arquivos de até 100 MB, 100 por vez.

Perde qualidade ao converter STL para OBJ?

STL e OBJ descrevem o conteúdo de maneiras radicalmente diferentes. A conversão é, portanto, uma reconstrução e não uma cópia: fiel, mas não idêntica byte a byte. Só a geometria. Materiais, cores, texturas e animação não vão junto, e um modelo colocado várias vezes volta com cada cópia fixada na sua própria posição.

Preciso instalar alguma coisa para abrir um arquivo OBJ?

Para a conversão, não: ela acontece no navegador que você já tem aberto. Para abrir o resultado você precisa depois do programa com que o seu aparelho normalmente exibe Wavefront Object.

Mais sobre esses formatos