✍ 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

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ção
Palavras chave/keywords: openscad, ISEL

Criado/Created: 14-11-2014 [10:55]

Última actualização/Last updated: 23-01-2017 [09:19]


GNU/Emacs

1999-2017 (ç) Tiago Charters de Azevedo

São permitidas cópias textuais parciais/integrais em qualquer meio com/sem alterações desde que se mantenha este aviso.

Verbatim copying and redistribution of this entire page are permitted provided this notice is preserved.