Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions print-ut-denne.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,77 @@
# Trykk på "Edit this file" og lim inn koden din.
# Lag så en PR med å trykke på "Propose changes".
# Du vil videre få mer instruksjoner om hva du må gjøre inne på PR-siden.

from solid import *
from solid.utils import *
from math import *
from numpy import *

mm = 1 # Gjøre om til millimeter (f.eks. er 5*mm = 5mm)
cm = 10 # Gjøre om til centimeter (f.eks. er 5*cm = 5cm)
deg2rad = pi / 180
rad2deg = 180 / pi
z = 0.05 # Fikse z-fighting
fn = 32 # Punkter i en sirkel (jo fler punkter jo finere, men krever mer CPU)

# Konstanter og funksjoner
r = 2.5*cm # Radius på julekula
r_hanke = 0.25*cm # Radius på hanken
b_hanke = r_hanke * 0.4 # Bredden på hanken


def torus(radius, bredde, detaljer=10):
return rotate_extrude(360, segments=detaljer)(translate([radius, 0, 0])(circle(bredde, segments=detaljer)))


""" ⬇ SKRIV KODE HER ⬇ """

# 1. Lage hanke å tre tråd gjennom
hanke = torus(r_hanke, b_hanke)
hanke = rotate([0, 90, 0])(hanke) # Rotere 90 grader om y-aksen
hanke = translate([0, 0, r + r_hanke])(hanke) # Flytte langs z-aksen

# 2. Lage en kube med kanter
kube = cube(r*2)
kube = translate([-r, -r, -r])(kube)

w = .5*cm # Kube-kant-bredde
kube_hull = cube([r*2 - w*2, r*2 - w*2, r*2 + z*2])
kube_hull = translate([w - r, w - r, -z - r])(kube_hull)

kube -= kube_hull
kube -= rotate([90, 0, 0])(kube_hull)
kube -= rotate([0, 90, 0])(kube_hull)

kube = rotate([45, atan(1 / sqrt(2)) * rad2deg, 0])(kube)
kube_topp = sqrt(3*r**2) - r - b_hanke
kube = translate([0, 0, -r*5])(kube)

kuber = []
kuber.append(kube)

for i in range(1, 10):
tmp_kube = translate([-r/2, -r/10, r*1.1])(kuber[i-1])
tmp_kube = rotate([0, 0, 45])(tmp_kube)
kuber.append(tmp_kube)

julekule = kube

for i in range(0, len(kuber)):
julekule += kuber[i]

# 3. Lage en kule som er plassert inni kuben
ball = sphere(r)
ball = translate([0, 0, -kube_topp])(ball)


""" ⬆ SKRIV KODE HER ⬆ """


# Sette sammen hanken og julekula
#julekule = hanke + kube + ball
#julekule = kube + kube2 + kube3 + kube4 + kube5

# Skrive ut til en .scad-fil
scad_render_to_file(julekule, __file__[:-3] + ".scad",
file_header='$fn = %d;' % fn)