OpenSCAD - Notas
... para um seminário dirigido a alunos.
O OpenSCAD é um software livre de CAD 3D disponível para GNU/Linux/UNIX, MS Windows e Mac OS X. Permite a construção de ficheiros STL de grande qualidade usando uma linguagem funcional simples. Veja-se o seguinte exemplo:
$fn=100; difference(){ difference(){ sphere(r=10,center=true); cylinder(r=5,h=30,center=true);} rotate([0,90,90]){ cylinder(r=5,h=30,center=true);}} rotate([0,90,0]){ cylinder(r=5,h=15*1.57,center=true);}
Não é um software "gráfico" no sentido usual deste tipo de programas, todos os sólidos são gerados por um script construído num qualquer editor de texto (o GUI (graphical user interface) contém um editor mas pode ser usado outro qualquer). Tem um extensa documentação on-line e tutoriais.
Conteúdo
- Software Livre
- OpenSCAD: exemplos, referências on-line, instalação
- Comandos básicos
- Realização de exemplos práticos
- Projecto final
- Outro software CAD útil: MeshLab, etc.
Duração: 60m
Resumo de instruções (última versão estável - OpenSCAD 2014.03)
Sintaxe
var = value; module name(…) { … } name(); function name(…) = … name(); include <….scad> use <….scad>
2D
circle(radius | d=diameter) square(size,center) square([width,height],center) polygon([points]) polygon([points],[paths])
3D
sphere(radius | d=diameter) cube(size) cube([width,depth,height]) cylinder(h,r|d,center) cylinder(h,r1|d1,r2|d2,center) polyhedron(points, triangles, convexity)
Transformações
translate([x,y,z]) rotate([x,y,z]) scale([x,y,z]) resize([x,y,z],auto) mirror([x,y,z]) multmatrix(m) color("colorname") color([r, g, b, a]) hull() minkowski()
Operadores Booleanos
union() difference() intersection()
Caracteres modificadores
* disable ! show only # highlight % transparent
Funções matemáticas
abs sign sin cos tan acos asin atan atan2 floor round ceil ln len log pow sqrt exp rands min max
Funções
lookup str chr search version version_num norm cross parent_module(idx)
Outras
echo(...) for (i = [start:end]) { ... } for (i = [start:step:end]) { ... } for (i = [...,...,...]) { ... } intersection_for(i = [start:end]) { ... } intersection_for(i = [start:step:end]) { ... } intersection_for(i = [...,...,...]) { ... } if (...) { ... } assign (...) { ... } import("....stl") linear_extrude(height,center,convexity,twist,slices) rotate_extrude(convexity) surface(file = "....dat",center,convexity) projection(cut) render(convexity) children([idx])
Variáveis especiais
$fa ângulo mínimo $fs tamanho mínimo $fn número de fragmentos $t passo de animaçãoPalavras chave/keywords: openscad, ISEL
Criado/Created: 14-11-2014 [10:55]
Última actualização/Last updated: 10-10-2022 [14:26]
(c) Tiago Charters de Azevedo