Logo Hardware.com.br
apimente.br
apimente.br Cyber Highlander Moderador
51.2K Mensagens 3.8K Curtidas

[Tutorial] Mini tutorial de OpenSCAD

#1 Por apimente.br 01/10/2019 - 19:48
Tem coisas que a primeira vista parecem muito complicadas, mas quando olhamos com mais atenção acabamos por descobrir que são muito mais fáceis do que parecem. O OpenSCAD é uma dessas coisas que parecem complicadas, mas no fim não é nada disso.

Por definição, o OpenSCAD é um software do tipo CAD (Computer Aided Design) para criação de objetos sólidos 3D, na verdade é um interpretador de scripts que lê um script que descreve o objeto e rederiza o objeto 3D a partir desse script. É OpenSource, e está disponível para Linux, Windows e Mac. Tudo que será descrito a seguir foi testado na versão 2015-03.3 que é a mais recente disponibilizada nos repositórios da distribuição que eu uso (Mageia). Não estou capacitado para responder sobre instalação no Windows ou no Mac por absoluta falta de experiência, acredito que depois de instalado o uso seja igual - independente do Sistema Operacional utilizado. OpenSCAD para Windows e Mac pode ser baixado de http://openscad.org/. Para instalar na sua distribuição Linux, recomendo utilizar o instalador padrão da distribuição. No Mageia, basta
urpmi openscad
.

Anexo do post

Como pode-se ver a tela é dividida em 3 áreas: à esquerda temos o Editor de Script é a área onde você digitará a descrição do objeto 3D; à direita em cima temos a área de preview, onde veremos a representação do objeto e abaixo temos o console de mensagens. Podemos mudar a visualização utilizando o mouse: com o botão esquerdo pressionado podemos girar o objeto, a roda do mouse permite aumentar ou diminuir o zoom e com o botão direito pressionado podemos arrastar a visualização.
Vamos criar um objeto simples para testar isso, digite:
cube(5);
pressionando F5 você deverá ver:

Anexo do post

Experimente as funções do mouse.

Objetos mais complexos são obtidos pela adição e/ou subtração de sólidos básicos como cubos, cilindros, esferas e poliedros.

Vamos desenhar uma caixa de 100mm por 50mm e 30 mm de altura com paredes de 3mm:
difference(){
cube([100,50,30]);
translate([3,3,3])
cube([94,44,30]);
}

Confira se obteve um objeto como o da figura:

Anexo do post

Detalhamento do código:
Primeira linha: O objeto será obtido pela diferença entre os dois sólidos
Segunda linha: um cubo (na verdade um paralelepípedo) com as dimensões (x,y,z)
Terceira linha: deslocamos a origem para os pontos (x,y,z)
Quarta linha: um cubo com as dimensões (x,y,z) que será subtraído do primeiro cubo

Para exemplificar a união de objetos vamos colocar uma divisão na caixa, para isso, nosso código ficará assim:
union(){
difference(){
cube([100,50,30]);
translate([3,3,3])
cube([94,44,30]);
}
translate([48.5,3,3])
cube([3,44,27]);
}

Ou seja, adicionamos um cubo de dimensão (x,y,z) na posição determinada pelo segundo translate

Vamos transformar nossa caixa em um Porta Joias, para isso, vamos adicionar na primeira caixa um pino. Nosso código ficará assim:
union(){
difference(){
cube([100,50,30]);
translate([3,3,3])
cube([94,44,30]);
}
translate([48.5,3,3])
cube([3,44,27]);
translate([24,25,0])
cylinder(r=6,h=26,$fn=50);
}
Novamente o translate determina a posição do pino e o objeto adicionado é um cilindro de raio igual a 6 e altura igual a 26. $fn=50 determina o número de "faces" do nosso pino, na verdade o cilindro é um objeto com 50 faces, o que é uma boa aproximação de um cilindro. Podemos aumentar o número de faces, mas não é recomendado aumentar muito pois isso só aumentaria o "trabalho" para renderizar o objeto e não teria muito efeito prático.

Anexo do post

Como "lição de casa" fica para vocês a tarefa de colocar um segundo pino na outra caixa e criar uma tampa para nossa caixa.

Vamos ver quem será o primeiro a apresentar a tarefa concluída.

Anexos

apimente.br
apimente.br Cyber Highlander Moderador
51.2K Mensagens 3.8K Curtidas
#2 Por apimente.br
10/10/2019 - 12:54
Bem, como ninguém fez a lição de casa vou deixar aqui a solução da tarefa para que fique completo:

union(){
difference(){
cube([100,50,30]);
translate([3,3,3])
cube([94,44,30]);
}
translate([48.5,3,3])
cube([3,44,27]);
translate([24,25,0])
cylinder(r=6,h=26,$fn=50);
translate([74,25,0])
cylinder(r=6,h=26,$fn=50);
}

Anexo do post

A tampa poderia ser assim:

union(){
cube([100,50,3]);
translate([3.5,3.5,3])
cube([45,43.5,3]);
translate([52,3.5,3])
cube([45,43.5,3]);
}

Anexo do post

Anexos

O Linux não é o Windows
Como fazer perguntas inteligentes? Clique aqui!
Ao pedir ajuda, informe sua configuração completa e forneça detalhes suficientes para alguém te ajudar.

imhotep
imhotep Cyber Highlander Moderador
30.6K Mensagens 4.3K Curtidas
#3 Por imhotep
10/10/2019 - 13:09
Pergunta (se for boba, desculpe): qual a vantagem de usar esse cad com scripts quando vc tem opções de criação real-time diversas outras versões de cad?

Sei q os comandos podem ser utilizados, por exemplo, pra impressão 3D e para a própria construção da peça.
Mas pra ficar só na tela, teria alguma vantagem?
Tomem cuidado ao responder as perguntas dos colegas. Tenham 100% de certeza da informação que estão passando.
Ensinar significa aprender 2 vezes. Porque você tem que aprender de novo para ensinar corretamente.
Genética e Data Science - loading...
Is OneDrive a backup?
E a cantilena continua!
apimente.br
apimente.br Cyber Highlander Moderador
51.2K Mensagens 3.8K Curtidas
#4 Por apimente.br
10/10/2019 - 18:50
Só para a tela só tem função didática.

Para, por exemplo, criar peças para serem impressas eu penso que seja uma forma mais simples de criar a peça (desde que ela seja formada por sólidos geométricos) do que usar um CAD que para mim é extremamente complicado de usar.

Além disso, é um software livre e assim não custa uma pequena fortuna como o AutoCAD.
O Linux não é o Windows
Como fazer perguntas inteligentes? Clique aqui!
Ao pedir ajuda, informe sua configuração completa e forneça detalhes suficientes para alguém te ajudar.

imhotep
imhotep Cyber Highlander Moderador
30.6K Mensagens 4.3K Curtidas
#5 Por imhotep
11/10/2019 - 09:29
Entendi.
CAD já é uma tecnologia obsoleta.
Mas existe o Draftsight, q é um CAD para Windows e Linux gratuito. Funciona bem.
Tem tb o BricsCAD, q custa 1/10 do AutoCAD.

Mas a tecnologia atual é paramétrica - BIM - Building Information Modeling.
Tomem cuidado ao responder as perguntas dos colegas. Tenham 100% de certeza da informação que estão passando.
Ensinar significa aprender 2 vezes. Porque você tem que aprender de novo para ensinar corretamente.
Genética e Data Science - loading...
Is OneDrive a backup?
E a cantilena continua!
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal