Cookies para estatística e publicidade
Usamos cookies de estatística e de publicidade, ambos enviados ao Google. Recusar não muda nada do que você vê.Ler a página de privacidade
Aqui você converte STL para PLY 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.
Até 100 arquivos de uma vez. Formatos misturados não são problema.
Eles são convertidos um após o outro e baixados juntos em um ZIP.
STL para PLY
Toda outra dupla deste conjunto abre mão de algo. glTF perde os materiais, OBJ perde o MTL, 3MF perde a cor. STL para PLY perde as normais de face, e essas são calculadas a partir da ordem de enrolamento por todo leitor que precisa delas, e costumam estar erradas em arquivos produzidos por exportadores descuidados — motivo de várias fatiadoras ignorarem o valor guardado por completo.
Tudo mais sobrevive porque não havia mais nada. Um STL é uma lista de triângulos sem cor, sem unidade, sem nome, sem peça e sem atributo. Um PLY escrito com x, y e z e uma lista de faces guarda exatamente isso. Os dois formatos concordam sobre o que é um modelo, o que é raro nesta categoria.
CloudCompare, MeshLab, Open3D e trimesh recebem PLY como entrada de primeira classe, porque a Stanford desenhou o formato em 1994 exatamente para esse tipo de trabalho: um cabeçalho autodescritivo listando qualquer propriedade por vértice ou por face que uma ferramenta de pesquisa precise. Escaneamento e fotogrametria se padronizaram nele pelo mesmo motivo.
Também leem STL, e é aí que o problema começa em vez de terminar. Um STL carrega, exibe e parece correto enquanto é topologicamente inútil — veja a próxima seção. Converter não é sobre abrir o arquivo; é sobre conseguir uma malha cuja conectividade os algoritmos possam confiar.
O STL guarda três vértices independentes para cada triângulo. Um cubo são trinta e seis registros de vértice para oito posições. Carregue isso numa ferramenta de malha e pergunte se a superfície está fechada, e ela vai dizer que toda borda é uma borda de fronteira, porque nenhum triângulo compartilha um vértice — mesmo que a forma não tenha buraco nenhum.
A conversão arredonda coordenadas em seis casas decimais, usa isso como chave, e funde todo canto na mesma posição num único vértice compartilhado referenciado por todos os triângulos dele. Seis casas está bem abaixo de qualquer tolerância que uma peça física teria e bem acima do último bit de discordância que dois triângulos vizinhos têm num float. Depois disso, checagens de fechamento, estimativa de normal, curvatura, decimação, suavização e preenchimento de buraco funcionam sobre adjacência real.
O cabeçalho é o conservador: ply, format ascii 1.0, um comentário nomeando quem escreveu, uma declaração de elemento vertex com três linhas de propriedade float para x, y e z, uma declaração de elemento face com uma linha property list uchar int vertex_indices, e end_header. Depois uma linha por vértice e uma por triângulo.
Nada mais é declarado — sem normal, sem cor, sem confiança, sem qualidade, sem propriedade personalizada. É proposital: um cabeçalho que promete uma propriedade que o arquivo não consegue preencher é pior que um curto, e todo leitor que lida com PLY de fato lida com esse dialeto.
Cada registro de triângulo de cinquenta bytes num STL binário começa com doze bytes de normal de face. Esses doze bytes são pulados. A informação que carregam é totalmente determinada pela ordem dos três vértices, então recalcular é exato, não aproximado.
Não é um atalho tomado por conveniência. Normais de STL guardadas discordam da ordem de enrolamento com frequência suficiente para que várias fatiadoras e ferramentas de malha as descartem por política, precisamente porque muitos gravadores erram o sinal ou a normalização. Recalcular a partir da ordem de enrolamento dá uma resposta consistente só.
Toda coordenada é escrita como texto decimal, um vértice por linha, e todo triângulo como um 3 inicial seguido de três índices. Um vértice que eram doze bytes de binário vira vinte a sessenta caracteres. Contra isso, a soldagem já removeu cerca de cinco sextos dos registros de vértice que um STL carregava.
Os dois efeitos parcialmente se cancelam e o resultado depende do modelo. O que é previsível é o lado do STL: exatamente 84 + 50n bytes para n triângulos, então uma malha de dois milhões de triângulos derivada de escaneamento são 100 MB antes de converter e vale a pena decimar primeiro. Se o PLY resultante ficar pesado, salvar de volta do MeshLab como binary_little_endian é uma correção de um passo só.
O motivo mais comum para essa conversão é análise de desvio: uma peça foi impressa ou usinada a partir de um STL, depois escaneada, e alguém precisa da diferença. A distância cloud-to-mesh do CloudCompare quer a referência como uma malha com faces, que é o que isto produz, e o escaneamento como pontos, que é o que o scanner produziu.
Duas questões práticas. Os dois conjuntos de dados precisam ser alinhados primeiro — um pareamento grosseiro de pontos seguido de ICP é a rota padrão — e precisam compartilhar uma escala, que nenhum dos dois formatos declara. Se o escaneamento está em milímetros e o STL foi exportado em polegadas, o alinhamento vai convergir em algo plausível e errado.
O PLY é o formato em que escaneamentos 3D chegam porque carrega cor por vértice, e é isso que faz uma malha de fotogrametria parecer o objeto de onde veio. Nada disso aparece aqui, porque um STL não tinha cor para dar.
A exceção não oficial vale nomear: um punhado de ferramentas codifica uma cor de quinze bits nos dois bytes de atributo no fim de cada registro de triângulo STL, em duas convenções mutuamente incompatíveis. Esses bytes não são lidos. Não há como saber qual convenção um arquivo usou, e chutar colocaria cores erradas numa malha que alguém está prestes a medir.
Se o destino é uma fatiadora ou uma gráfica de impressão 3D, não converta — eles querem STL ou 3MF, e o suporte a PLY nesse mundo é irregular. Se o destino é um visualizador de navegador, glTF é o alvo certo e PLY é o errado.
Converta quando o próximo passo é um algoritmo: um cálculo de distância, uma decimação, um remesh, um preenchimento de buraco, um volume ou área de superfície, um alinhamento contra dado escaneado. Todo o valor do passo é a soldagem e o formato que a ferramenta espera, e roda inteiramente no seu navegador sem envio.
| STL | PLY | |
|---|---|---|
| Nome completo | Stereolithography | Polygon File Format |
| Extensão do arquivo | .stl | .ply |
| Tipo de mídia | model/stl | model/ply |
| Publicado pela primeira vez | 1987 | 1994 |
| Publicado por | 3D Systems | Stanford University |
| Licença | Padrão aberto | Padrão aberto |
| Situação hoje | Atual | Atual |
| Abre no navegador | Nenhum navegador | Nenhum navegador |
| Considerado no lugar | 3MF, OBJ | OBJ |
Blender lê tanto STL quanto PLY, então dá para comparar o resultado com o original sem um segundo programa.
Os dois miram trabalhos diferentes: STL em a impressão 3D, PLY em a digitalização e mover dados entre programas. Vale pesar isso antes, porque o motivo de um existir costuma ser o motivo de o outro ser incômodo.
PLY vem da Stanford University é de 1994. MeshLab, Blender e CloudCompare leem o formato.
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.
É. 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.
STL e PLY 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.
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 Polygon File Format.