1 / 1
Orchid Pot - Vase-like Mesh — zdjęcie 1

Orchid Pot - Vase-like Mesh

Zamów wydruk tego modelu

Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.

Zapisane na tym urządzeniu.

Orchid Pot that provides ventilation for the roots. Fully parametric and adjustable for your printer

Ocena
0 / 5
Polubienia
15
Pobrania
53
Wydruki
0
Wyświetlenia
786
Oceny
0

Aktualizacja u źródła:

Informacje o modelu

Źródło
Printables
Kategoria
Living Room
Licencja
Creative Commons — Attribution

This is a model designed with fullcontrol gcode. 

Follow the interacitve tutorial from github or use one of my pre-sliced files (S, M and L available), but be sure to alter the start and end gcode!

#import packages

import fullcontrol as fc from math import sin, cos, pi, tau, log1p

#design parameters

design_name = 'orchid_pot' nozzle_temp = 230 bed_temp = 75 print_speed = 1200 fan_percent = 50 EH = 0.2 # extrusion heigth EW = 0.5 # extrusion width printer_name = 'prusa_i3'

functional parameters

center_x = 125 center_y = 105 pot_heigth = 100 # heigth of the pot in mm pot_diameter = 65 # base diamter of the pot amplitude = 1.2 # amplitude of the ripples in mm waves = int(pipot_diameter/(4amplitude)) # No. of ripples, calculated to match with the amplitude segments = waves * 8 # makes sure each sine-wave consists of 8 points stacked_waves = 5 # No. of ripples before the phase gets inverted layers = int(pot_heigth/EH) # No. of layers calculated from extrusion heigth and pot heigth base_layers = 4 # No. of solid layers

aesthetic parameters

bulges = 7 # No. of bulges bulge_depth = 3 # amplitude of bulges

other parameters used for design generation

clockwise = bool(True) flip = 1

steps = []

for i in range (base_layers): steps.append(fc.Fan(speed_percent = i/base_layers * fan_percent)) current_z = EH + EHi spiral_starting_radius = pot_diameter/2 + log1p(10(i/layers)) + amplitude spiral_turns = int(spiral_starting_radius/EW) steps.extend(fc.spiralXY(fc.Point(x = center_x, y = center_y, z = current_z), spiral_starting_radius, EW/2, tau, spiral_turns, 2000, clockwise)) steps.extend(fc.travel_to(fc.polar_to_point(fc.Point(x = center_x, y = center_y, z = current_z + EH), spiral_starting_radius, tau)))

if (clockwise == True):
    clockwise = False
else:
    clockwise = True

steps.append(fc.Fan(speed_percent = fan_percent))

for layer in range(base_layers, layers): current_z = EH + EH*layer steps.extend(fc.travel_to(fc.Point(z = current_z)))

if ((layer - base_layers) % stacked_waves == 0):
    flip = flip * (-1)
for k in range(segments):
    
    current_ripple = flip*amplitude*sin(tau*waves*k/segments)
    current_bulge = bulge_depth * (layer/layers) * sin(tau * bulges * k/segments + 0.5 * tau * (layer/layers))

    if (layer < layers-3):
        current_radius = (pot_diameter/2 + current_ripple + current_bulge) + 2*bulge_depth*log1p(10*((layer/layers)))
    else:
        steps.append(fc.ExtrusionGeometry(width=1.5))
        steps.append(fc.Printer(print_speed=300))
        current_radius = (pot_diameter/2  + current_bulge) + 2*bulge_depth*log1p(10*((layer/layers)))
    
    current_angle = tau * k / segments
    steps.append(fc.polar_to_point(fc.Point(x=center_x, y =center_y, z = current_z), current_radius, current_angle))

fc.transform(steps, 'plot', fc.PlotControls(color_type='print_sequence')) #fc.transform(steps, 'plot', fc.PlotControls(color_type='print_sequence', style="line"))

gcode_controls = fc.GcodeControls( printer_name=printer_name, save_as=design_name, initialization_data={ 'primer': 'front_lines_then_y', 'print_speed': print_speed, 'nozzle_temp': nozzle_temp, 'bed_temp': bed_temp, 'fan_percent': fan_percent, 'extrusion_width': EW, 'extrusion_height': EH}) gcode = fc.transform(steps, 'gcode', gcode_controls)

Tagi