1 / 1
Orchid Pot - Vase-like Mesh — image 1

Orchid Pot - Vase-like Mesh

Order a print of this model

We calculate the final price from your selected file. You review and accept it before payment.

Saved on this device.

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

Rating
0 / 5
Likes
15
Downloads
53
Makes
0
Views
791
Reviews
0

Updated at source:

Model information

Category
Living Room
License
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)

Tags