Guia do iniciante ao OpenSCAD: Programação de modelos impressos em 3D

O software de modelagem 3D pode ser difícil de usar se você não é artístico. O OpenSCAD oferece uma maneira de projetar modelos especificamente para impressão 3D, usando nada além de código.

O software de modelagem 3D pode ser difícil de usar se você não é artístico.  O OpenSCAD oferece uma maneira de projetar modelos especificamente para impressão 3D, usando nada além de código.
Propaganda

Você sempre quis projetar seus próprios modelos 3D? Que tal imprimir em 3D uma peça que você projetou? Existem muitos programas de modelagem 3D ao redor, mas estes podem ser difíceis de usar se você não for artístico (como eu). O OpenSCAD oferece uma maneira de projetar modelos especificamente para impressão 3D, usando nada além de código . Não se preocupe se você não sabe como codificar, hoje eu vou guiá-lo através do básico.

O que é o OpenSCAD?

O OpenSCAD é um modelador de projeto assistido por computador sólido . Está disponível para Windows, Mac e Linux. O que o torna diferente de muitos outros programas é que você projeta peças usando código em vez de mouse. Isso torna muito fácil fazer cálculos matemáticos, armazenar dimensões em variáveis, redimensionar partes e muito mais.

Existem alguns fatores que você precisa levar em conta quando modelos de impressão 3D, mas muitos deles se aplicam a modelos CAD de impressão 3D em geral, não apenas a projetos OpenSCAD. Se você quiser saber mais sobre impressão 3D, confira nosso Guia para iniciantes finais Guia para iniciantes para impressão em 3D Guia para iniciantes em 3D para impressão em 3D A impressão em 3D deveria ser a nova "Revolução Industrial". Ainda não dominou o mundo, mas estou aqui para falar sobre tudo que você precisa saber para começar. Consulte Mais informação . Se você está procurando um modelador mais interativo, leia o guia para criar objetos no Sketchup Design e Construir Edifícios e Objetos Virtuais em 3D com o Google SketchUp O Google SketchUp é o programa de modelagem de backbone para o Google O BuildingMaker, que permite que designers gráficos enviem projetos de construção ao Google para serem adicionados às imagens oficiais do Google Earth. Consulte Mais informação .

Preparando-se

Primeiro, vá para a página de downloads e encontre uma versão do OpenSCAD adequada ao seu sistema operacional. Estou usando o Mac OS, mas esses princípios do OpenSCAD se aplicam a todos os sistemas.

Uma vez instalado, vá em frente e abra-o. Você será presenteado com este menu de inicialização:

Menu Inicial do OpenSCAD

Isso mostra os arquivos que você abriu por último e oferece a opção de carregar alguns exemplos. Sinta-se à vontade para dar uma olhada em alguns exemplos, no entanto, descobri que isso tornava as coisas mais confusas ao começar. Para este tutorial, crie um novo arquivo clicando no novo botão.

Uma vez aberto, você será presenteado com esta interface simples:

Interface OpenSCAD

Isso é dividido em três áreas principais. À esquerda está o seu editor e menu. É aqui que você vai escrever seu código. Isso não terá nenhum código ainda, já que você está criando um novo arquivo. Na parte superior, há alguns botões de menu para executar tarefas básicas, como carregar, salvar, desfazer e assim por diante.

Editor OpenSCAD

O canto inferior direito é o console . Isso mostrará todos os erros na construção do modelo.

Console OpenSCAD

A seção final é a interface principal no canto superior direito. Aqui você pode interagir com o seu modelo, mas você não poderá editá-lo aqui (você estará escrevendo código para fazer isso).

Interface OpenSCAD

Existem vários botões na parte inferior desta interface principal. Isso permite principalmente que você visualize seu design de maneiras diferentes.

Vá em frente e salve um novo arquivo pressionando o botão Salvar no menu do editor ou indo em Arquivo > Salvar .

O básico

A maneira como o OpenSCAD trabalha a maior parte do tempo é através da adição e subtração de formas simples. Você pode construir modelos muito complexos dessa maneira, então vamos pular direto.

Aqui está a primeira forma, uma caixa simples:

OpenSCAD Simple Box

E aqui está o código para produzir isso:

cube(); // create a cube 

Para obter seu código para executar e construir o modelo, você precisa visualizá-lo. O OpenSCAD fará isso por padrão toda vez que você salvar, ou você pode pressionar F5 para forçar uma atualização. Experimente mover-se no espaço 3D mantendo pressionados os botões esquerdo ou direito do mouse.

Agora, isso produz um belo cubo, mas não é muito útil sem nenhuma dimensão. O OpenSCAD não funciona em nenhum sistema de medição específico, ao contrário, as unidades são todas relacionadas entre si. Você pode criar uma caixa de 20 x 10, e cabe a qualquer outro programa (como o cortador de impressão 3D) para interpretá-los, seja métrico ou imperial. Na verdade, fornece grande flexibilidade.

Vamos adicionar algumas dimensões ao seu cubo. Você faz isso passando parâmetros para o método do cubo :

 cube(size = [10, 20, 30]); // rectangle 

Os valores 10, 20 e 30 representam o tamanho do cubo no eixo X, Y e Z. Observe como isso produziu um retângulo muito maior:

Retângulo OpenSCAD

Por padrão, o OpenSCAD desenha componentes do canto inferior esquerdo. Você pode ajustar isso definindo o parâmetro center como true . Aqui está o código para fazer isso no retângulo:

 cube(size = [10, 20, 30], center = true); // rectangle centered 

E aqui está o que parece:

Retângulo OpenSCAD Centrado

Os objetos de centralização funcionam bem para formas simples, mas tornam as coisas complicadas para objetos não simétricos. Você precisará decidir qual método funciona melhor para você.

Passando para uma forma mais complexa, aqui está um cilindro :

Cilindro OpenSCAD

Aqui está o código para criá-lo:

 cylinder(d = 10, h = 10, center = true); // cylinder 

Ao contrário dos cubos, os cilindros são automaticamente desenhados no centro dos eixos X e Y. O parâmetro d significa diâmetro (você pode passar no raio se preferir). O parâmetro h é a altura. Algo está errado aqui embora. Este cilindro parece bastante "blocky". Você precisa aumentar o número de faces desenhadas na circunferência. Isso é fácil de fazer - adicione o seguinte parâmetro ao seu código de cilindro.

 $fn = 100 

Então a definição do cilindro se torna:

 cylinder(d = 10, h = 10, center = true, $fn = 100); 

Aqui está o que parece:
Cilindro de Alta Resolução OpenSCAD

Isso aumenta o número de faces necessárias para fazer círculos - 100 é um bom ponto de partida. Lembre-se de que isso aumentará muito os tempos de renderização, principalmente em modelos complexos. Portanto, é melhor deixar isso de lado até que você tenha terminado o design.

É fácil aplicar transformações em formas. Você precisa chamar métodos especiais antes de criar suas formas. Veja como girar o cilindro usando o método de rotação :

 rotate(a = [0, 90, 0]) cylinder(d = 10, h = 10, center = true); // rotated cylinder 

Os valores passados ​​para o parâmetro a representam o ângulo de rotação do eixo X, Y e Z. Aqui está o resultado:

Rotação OpenSCAD

Outra função muito útil é traduzir . Isso permite mover objetos pelo espaço 3D. Mais uma vez, você precisará passar a quantidade de movimento para cada eixo. Aqui está o resultado:

OpenSCAD Traduzir

Aqui está o código:

 translate(v = [0, 25, 0]) cylinder(d = 10, h = 10, center = true); // translated cylinder 

Entender o método de tradução é uma das coisas mais importantes que você pode fazer. É necessário para projetar projetos mais complexos.

Finalmente, outra forma útil é uma esfera :

Esfera OpenSCAD

Aqui está o código:

 sphere(d = 100); 

Assim como o cilindro, você pode suavizar isso usando o código $ fn acima.

Codificação Avançada

Agora que você conhece o básico, vamos ver algumas habilidades mais avançadas. Ao projetar uma peça, é útil pensar em como ela pode ser feita a partir de formas e objetos menores. Você não tem que fazer isso, e você pode "fazer as coisas" como você vai, mas ajuda a ter um plano difícil - mesmo que seja apenas em sua cabeça.

Vamos criar uma forma avançada: um cubo com um interior de esfera oca. Crie um cubo e uma esfera com o centro configurado como true. Subtraia um do outro usando o método da diferença :

 difference() { // subtraction cube(size = [50, 50, 50], center = true); // outer cube sphere(d = 65, center = true); // inner sphere } 

Aqui está o resultado:

Cubo Avançado OpenSCAD

Experimente o diâmetro (parâmetro d ) da esfera e veja o que acontece.

No OpenSCAD, geralmente há muitas maneiras de realizar a mesma tarefa. Se você quisesse um groove em um cubo, você poderia subtrair outro cubo dele, ou adicionar mais dois acima dele. Geralmente, não importa de que maneira as coisas são feitas, mas dependendo da complexidade da peça, pode ser mais fácil fazer certas manipulações primeiro.

Veja como criar um canal em um cubo. Em vez de usar outro cubo, usar um cilindro criará um canal arredondado. Observe como o método de diferença é usado novamente e como os métodos de conversão e rotação são usados ​​para manipular as formas. Usar o método de rotação muitas vezes dificulta as transformações, portanto, dispare com os parâmetros até obter o resultado desejado. Aqui está o código:

 difference() { // subtraction cube(size = [50, 150, 50]); // outer cube translate(v = [25, 150, 50]) rotate(a = [90, 0, 0]) cylinder(d = 40, h = 150); // cylinder channel } 

Aqui está o que parece:

Cubo de Canal OpenSCAD

Você pode estar se perguntando o que é todo esse material verde. Isso está aqui porque o modelo 3D é apenas uma prévia agora. Para corrigir isso, pressione F6 para renderizar totalmente o modelo. Isso pode levar algum tempo, dependendo da complexidade. A pré-visualização ( F5 ) costuma ser boa o suficiente durante o trabalho. Aqui está a aparência final da renderização (com $ fn definido como 100):

Cubo de Canal de Alta Resolução OpenSCAD

Aqui está outro exemplo avançado. Digamos que você queria montar algo usando um parafuso. Criar um furo é bastante simples usando o cilindro, mas e se você quisesse que a cabeça do parafuso fosse embutida para parafusos escareados? Você poderia simplesmente criar um grande cilindro para a cabeça do parafuso sentar-se, mas isso não pareceria muito bonito. A solução é um chanfro, que você pode criar com o método do cilindro . O truque aqui é especificar dois diâmetros - d1 e d2 . Faça esses tamanhos diferentes e o OpenSCAD fará o resto.

Como sou britânico, usarei dimensões métricas aqui, para um parafuso com cabeça M5. Você pode facilmente ajustar isso para se adequar às fixações que você deseja usar. Aqui está o código:

 $fn = 100; // bolt settings m5_clearance_diameter = 5.5; m5_head_clearance_diameter = 11; m5_head_depth = 5; difference() { // subtract cube(20, 20, 20); bolt_hole(10, 10, 20); bolt_bevel(10, 10, 15); } module bolt_hole(x, y, height) { /* M5 hole at 90 deg. */ translate(v = [x, y, 0]) cylinder(d = m5_clearance_diameter, h = height); } module bolt_bevel(x, y, z) { // M5 bevel translate(v = [x, y, z]) cylinder(d2 = m5_head_clearance_diameter, d1 = m5_clearance_diameter, h = m5_head_depth); } 

Observe como as dimensões dos parafusos são armazenadas em variáveis? Isso facilita muito a codificação e a manutenção. Um método que você ainda não conhece é o módulo . Isso permite que você defina um bloco de código para ser executado sempre que desejar. Na realidade, esta é uma função . Você deve usar módulos e variáveis para qualquer forma complexa, pois eles facilitam a leitura e agilizam as alterações. Aqui está o que o chanfro se parece:

OpenSCAD Chanfro

Vamos dar uma olhada em um exemplo final. Digamos que você queira produzir uma série de buracos ao redor de um círculo. Você poderia medir, traduzir e girar manualmente todos eles, mas mesmo com os módulos isso seria tedioso. Aqui está o resultado final, 10 cilindros distribuídos em torno de um círculo:

Distribuição do Círculo OpenSCAD

Aqui está o código:

 $fn = 100; number_of_holes = 10; for(i = [1 : 360 / number_of_holes : 360]) { // number_of_holes defines number of times this code runs make_cylinder(i); } module make_cylinder(i) { // make cylinder and even distribute rotate([0, 0, i]) translate([10, 0, 0]) cylinder(h = 2, r = 2); } 

Este código é mais simples do que você esperaria. Um loop for é usado para chamar o módulo make_cylinder dez vezes. Como existem 360 graus em um círculo e 360/10 = 36, cada cilindro precisa ser girado em incrementos de 36 graus. Cada iteração desse loop incrementará a variável i por 36. Esse loop chama o módulo make_cylinder, que simplesmente desenha um cilindro e o posiciona de acordo com os graus passados ​​para ele pelo loop. Você pode desenhar mais ou menos cilindros, modificando a variável number_of_holes - embora você queira ajustar o espaçamento se fizer isso. Veja como são os 100 cilindros, eles se sobrepõem ligeiramente:

Distribuição do Círculo OpenSCAD 100

Exportador

Agora que você sabe codificar no OpenScad, é necessário executar uma última etapa antes de imprimir seus modelos em 3D. Você precisa exportar seu design do OpenSCAD para o formato STL padrão usado pela maioria das impressoras 3D. Felizmente, há uma exportação para o botão STL: Editor Menu > Top Right :

OpenSCAD Export STL

Por hoje é isso. Agora você deve ter um excelente conhecimento prático do OpenSCAD - todas as coisas complexas se baseiam nessas fundações, e muitas formas complexas são, na verdade, muitas formas simples combinadas.

Para um desafio, por que não examinar alguns dos nossos projetos de impressão 3D e tentar recriar as partes no OpenSCAD:

  • Printables 3D para RPGs de Mesa Fantasy Os Melhores Printables 3D para RPGs de Mesa Fantasy Os Melhores Printables 3D para RPGs Mesa Fantasy Se você preferir uma experiência imersiva para RPGs, há uma nova maneira de fazê-lo: usar impressão 3D para criar terreno físico e miniaturas. consulte Mais informação
  • Botões de atalho personalizados Faça seus próprios botões de atalho personalizados com um Arduino Faça seus próprios botões de atalhos personalizados com um Arduino O humilde Arduino pode fazer um monte de coisas, mas você sabia que pode emular um teclado USB? Você pode combinar atalhos de teclado longos em uma única tecla de atalho personalizada, com este circuito simples. consulte Mais informação
  • Rolo eletrônico D20 em estilo com este DIY eletrônico D20 Rolo em estilo com este DIY eletrônico D20 Die Quer algo um pouco original em seu próximo encontro de jogo? Confira este DIY D20 eletrônico, com gráficos personalizados para acertos e erros críticos. consulte Mais informação
  • Jogos que você pode imprimir em 3D 6 Jogos mais legais que você pode imprimir em 3D 6 Jogos mais legais que você pode imprimir em 3D Todos sabem sobre impressoras 3D, mas o que você pode não saber é como a impressão 3D é divertida e divertida toda a sua família. Estamos falando de jogos de mesa impressos em 3D. consulte Mais informação

Você aprendeu algum truque novo hoje? Qual é o seu recurso favorito do OpenSCAD? Você estará mudando de outra ferramenta CAD em breve? Deixe-nos saber nos comentários abaixo!

In this article