Моделирую, печатаю, декорирую статуэтку в стиле Моаи
Полный процесс создания статуэтки от моделинга до финального декора
Полный процесс создания статуэтки от моделинга до финального декора
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command
#[include adxl.cfg]
# [output_pin PW_OFF]
# Define output pin to power supply off
# pin: PB2
# value: 1 # Maintain power supply on
#[gcode_macro PW_OFF_PRINTER]
## enables control of a relay providing 24V power to the printer via a macro button on the mainsail DashBoard
#gcode:
# SET_PIN PIN=PW_OFF VALUE=0
#[gcode_button BUTTON_AUTOSHUTDOWN]
#pin: ^!PA2
#press_gcode: SET_PIN PIN=PW_OFF VALUE=0
#release_gcode: SET_PIN PIN=PW_OFF VALUE=1
# [bltouch]
# sensor_pin: P1.25
# control_pin: P2.0
# pin_move_time: 0.500
# pin_up_reports_not_triggered: True
# pin_up_touch_mode_reports_triggered: false
# x_offset: 5
# y_offset: 50
# z_offset: 0.4
# speed: 1
[stepper_x]
step_pin: PE3
dir_pin: PE2 # !PE2 for A4988, PE2 for TMC22**
enable_pin: !PE4
microsteps: 16
rotation_distance: 40
endstop_pin: !PA15
position_endstop: 0
position_max: 255 # X-axis bed size
homing_speed: 50
[stepper_y]
step_pin: PE0
dir_pin: PB9 # !PB9 for A4988, PB9 for TMC22**
enable_pin: !PE1
microsteps: 16
rotation_distance: 40
endstop_pin: !PA12
position_endstop: 0
position_max: 210 # Y-axis bed size
homing_speed: 50
[stepper_z]
step_pin: PB5
dir_pin: !PB4 # PB4 for A4988, !PB4 for TMC22**
enable_pin: !PB8
microsteps: 16
rotation_distance: 8
endstop_pin: !PA11
position_endstop: 0.5
position_max: 200 # Z-axis print volume size
homing_speed: 20
[extruder]
step_pin: PD6
dir_pin: PD3 # PD3 for A4988, !PD3 for TMC22**
enable_pin: !PB3
microsteps: 16
rotation_distance: 4.514928
nozzle_diameter: 0.400
filament_diameter: 1.750
max_extrude_only_distance: 250
pressure_advance: 0.000
heater_pin: PC3
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC1
control = pid
pid_kp = 22.217
pid_ki = 1.224
pid_kd = 100.811
min_temp: 0
max_temp: 260
[heater_bed]
heater_pin: PA0
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC0
control: pid
pid_kp = 63.818
pid_ki = 1.858
pid_kd = 548.035
min_temp: 0
max_temp: 110
[bed_mesh]
# speed: 100
speed: 5
horizontal_move_z: 5
# mesh_min: 3,28
mesh_min: 45,35
mesh_max: 255,210
probe_count: 3,3
[fan]
pin: PB1
[heater_fan heater_fan]
pin: PB0
[output_pin BEEPER_pin]
pin: PC5
pwm: True
value: 0
shutdown_value: 0
cycle_time: 0.001
scale: 1000
[filament_switch_sensor filament_sensor]
switch_pin: PA4
runout_gcode:
BEEP P=1500
[virtual_sdcard]
path: /home/biqu/printer_data/gcodes
[pause_resume]
[display_status]
[firmware_retraction]
retract_length: 0
retract_speed: 40
[respond]
[bed_screws]
screw1: 25,30
screw1_name: front left screw
screw2: 230,30
screw2_name: front right screw
screw3: 230,180
screw3_name: back right screw
screw4: 25,180
screw4_name: back left screw
speed: 150
# [input_shaper]
# shaper_type_x = mzv
# shaper_freq_x = 104.4
# shaper_type_y = mzv
# shaper_freq_y = 32.4
[printer]
max_accel: 6000 # should not exceed the estimated max_accel for X and Y axes
[printer]
kinematics: cartesian
max_velocity: 250
max_accel: 6000
## max_accel_to_decel: 3000
max_z_velocity: 20
max_z_accel: 100
#MACROS
[gcode_macro START_PRINT]
gcode:
M220 S100 ;reset feedrate
M221 S100 ;reset flowrate
G21 ;set units to millimeters
G90 ;use absolute coordinates
M82 ;absolute extrusion mode
M107 ;turn off colling fan
M140 S[bed_temperature_initial_layer] ;set bed temperature continue without waiting
M104 S[nozzle_temperature_initial_layer] ;set hotend temperature continue without waiting
G28 ;home
G1 Z2 F1500 ;raise z
G92 E0 ;reset extruder
M190 S[bed_temperature_initial_layer] ;wait for bed temperature
M109 S[nozzle_temperature_initial_layer] ;wait for hotend temperature
G1 X20 Y20 F5000 ;start position
G1 Z0.28 F1500 ;lower z
G1 E4 F500 ;prime the filament
G1 X20 Y20.0 Z0.28 F3000.0 ;start position
G1 X20 Y170.0 Z0.28 F1500.0 E12 ;1st line
G1 X20.3 F1500
G1 X20.3 Y20.0 Z0.28 F1500.0 E18 ;2nd line
G92 E0 ;reset extruder
G1 Z2 F1500 ;raise z
G92 E0 ;reset extruder
# variable_retract: 5
# gcode:
# {% set extruder_temp = params.EXTRUDER_TEMP|default(250)|float %}
# {% set bed_temp = params.BED_TEMP|default(80)|float %}
# {% set E = printer["gcode_macro START_PRINT"].retract|float %}
# CLEAR_PAUSE
# M220 S100 # reset feedrate
# M221 S100 # reset flowrate
# SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={bed_temp} # set bed t℃
# TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={bed_temp * 0.75} # wait until bed is partially heated
# SET_HEATER_TEMPERATURE HEATER=extruder TARGET={extruder_temp} # set nozzle t℃
# G90 # absolute positioning
# M82 # absolute extrusion mode
# TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={bed_temp} # wait until
# TEMPERATURE_WAIT SENSOR=extruder MINIMUM={extruder_temp} # wait until
# G28 # home
# G0 Z10 F1500 # raise Z
# G92 E0 # reset extruder
# G1 E{E} F1500 # prime
# G92 E0 # reset extruder
[gcode_macro END_PRINT]
gcode:
# {% set E = printer["gcode_macro START_PRINT"].retract|float %}
# TURN_OFF_HEATERS
# M107 # turn off fan
# G91 # relative positioning
# G1 E-{E} F1500 # retract
# G0 X5 Y5 Z0.2 F5000 # wipe
# G0 Z2 F1500 # raise Z
# G90 # absolute positioning
# PARK
# M84 # turn off all motors
# BEEP P=200 S=250
G91 ;use relative coordinates
G1 E-4 F1500 ;retract the filament
G1 X5 Y5 Z100 F5000 ;wipe
G1 Z5 F1500 ;raise z
G90 ;use absolute coordinates
G1 X10 Y200 F5000 ;park print head
M107 ;turn off fan
M104 S0 ;turn off hotend
M140 S0 ;turn off heatbed
M84 ;disable motors
[gcode_macro PARK]
gcode:
{% set x_park = params.X|default(0)|float %}
{% set y_park = params.Y|default(0)|float %}
{% set z_park = params.Z|default(20)|float + printer.toolhead.position.z|float %}
{% set x_max = printer.toolhead.axis_maximum.x|float %}
{% set y_max = printer.toolhead.axis_maximum.y|float %}
{% set z_max = printer.toolhead.axis_maximum.z|float %}
{% if x_park > x_max %}
{% set x_park = x_max %}
{% endif %}
{% if y_park > y_max %}
{% set y_park = y_max %}
{% endif %}
{% if z_park > z_max %}
{% set z_park = z_max %}
{% endif %}
SAVE_GCODE_STATE NAME=PARK_STATE
G90 # absolute positioning
G1 Z{z_park} F1500
G1 X{x_park} Y{y_park} F5000
RESTORE_GCODE_STATE name=PARK_STATE
[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
gcode:
{% set E = printer["gcode_macro START_PRINT"].retract|float %}
SAVE_GCODE_STATE NAME=PAUSE_STATE
BASE_PAUSE
G91
G1 E-{E} F1500 # retract
G90
PARK
[gcode_macro RESUME]
rename_existing: BASE_RESUME
gcode:
{% set E = printer["gcode_macro START_PRINT"].retract|float %}
G91
G1 E{E} F1500 # unretract
G90
RESTORE_GCODE_STATE NAME=PAUSE_STATE MOVE=1
BASE_RESUME
[gcode_macro CANCEL_PRINT]
rename_existing: BASE_CANCEL_PRINT
gcode:
{% set E = printer["gcode_macro START_PRINT"].retract|float %}
TURN_OFF_HEATERS
M107 # turn off fan
G91
G1 E-{E} F1500 # retract
G90
CLEAR_PAUSE
SDCARD_RESET_FILE
BASE_CANCEL_PRINT
PARK
[gcode_macro BEEP]
gcode:
{% set frequency = params.S|default(1000)|float %}
{% set duration = params.P|default(100)|float %}
SET_PIN PIN=BEEPER_pin VALUE={frequency}
G4 P{duration}
SET_PIN PIN=BEEPER_pin VALUE=0
[gcode_macro FILAMENT_CHANGE]
gcode:
SAVE_GCODE_STATE NAME=FILAMENT_CHANGE_STATE
{% set timer = params.T|default(50)|float %}
{% set unload = params.U|default(150)|float %}
{% set load = params.L|default(150)|float %}
{% if printer.pause_resume.is_paused %}
M118 Already paused
{% else %}
{% if printer.toolhead.homed_axes != "xyz" %}
M118 Homing
G28 # home if not homed
{% else %}
M118 Pausing print
PAUSE
{% endif %}
{% endif %}
M118 Changing filament
SET_IDLE_TIMEOUT TIMEOUT=150
FILAMENT_UNLOAD U={unload}
COUNTDOWN TIME={timer} MSG="Change filament! Time left: "
FILAMENT_LOAD L={load}
RESTORE_GCODE_STATE NAME=FILAMENT_CHANGE_STATE
{% if printer.pause_resume.is_paused %}
M118 Resuming print
RESUME
{% endif %}
[gcode_macro FILAMENT_LOAD]
gcode:
{% set load = params.L|default(150)|float * 0.5 %}
{% set extruder_temp = params.T|default(250)|float %}
SAVE_GCODE_STATE NAME=FILAMENT_LOAD_STATE
LOW_TEMP_CHECK T={extruder_temp}
M118 Loading filament
M83 # relative extrusion
G1 E{load} F1500 # extrude fast
G4 P1000 # wait 1 second
G1 E{load} F200 # extrude slow
BEEP
RESTORE_GCODE_STATE NAME=FILAMENT_LOAD_STATE
[gcode_macro FILAMENT_UNLOAD]
gcode:
{% set unload = params.U|default(150)|float %}
{% set extruder_temp = params.T|default(250)|float %}
SAVE_GCODE_STATE NAME=FILAMENT_UNLOAD_STATE
LOW_TEMP_CHECK T={extruder_temp}
M118 Unloading filament
M83 # relative extrusion
G1 E2 F200 # extrude a little
G1 E-10 F200 # retract a little
G1 E-{unload} F1500 # retract a lot
BEEP
RESTORE_GCODE_STATE NAME=FILAMENT_UNLOAD_STATE
[gcode_macro LOW_TEMP_CHECK]
gcode:
{% set extruder_temp = params.T|default(250)|float %}
{% if printer.extruder.target > extruder_temp %} # if there is a setpoint for extruder
{% set extruder_temp = printer.extruder.target %}
{% endif %}
{% if printer.extruder.temperature < extruder_temp %} # heat to the target
M118 Heating to {extruder_temp}
SET_HEATER_TEMPERATURE HEATER=extruder TARGET={extruder_temp}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={extruder_temp}
{% endif %}
[gcode_macro COUNTDOWN]
gcode:
{% set timer = params.TIME|default(10)|int %}
{% set message = params.MSG|default("Time: ") %}
# countdown
{% if timer > 60 %}
{% for s in range(timer, 60, -10) %}
M118 {message} {s}s
G4 P10000 # dwell 10 seconds
{% endfor %}
{% set timer = 60 %}
{% endif %}
{% if timer > 10 %}
{% for s in range(timer, 10, -5) %}
M118 {message} {s}s
G4 P5000 # dwell 5 seconds
{% endfor %}
{% set timer = 10 %}
{% endif %}
{% if timer > 0 %}
{% for s in range(timer, 0, -1) %}
M118 {message} {s}s
G4 P1000 # dwell 1 second
{% endfor %}
{% endif %}
BEEP
[gcode_macro M0]
gcode:
PAUSE
[gcode_macro M76] # Marlin Compatibility
gcode:
PAUSE
[gcode_macro M601] # Prusa Compatibility
gcode:
PAUSE
[gcode_macro G27] # Marlin Compatibility
gcode:
PARK
[gcode_macro M125] # Marlin Compatibility
gcode:
PARK
[gcode_macro M300] # Marlin Compatibility
gcode:
BEEP
[gcode_macro M600] # Marlin Compatibility
gcode:
FILAMENT_CHANGE
[gcode_macro M701] # Marlin Compatibility
gcode:
FILAMENT_LOAD
[gcode_macro M702] # Marlin Compatibility
gcode:
FILAMENT_UNLOAD
[gcode_macro M92]
gcode:
{% set extruder_steps = params.E|default(0.0025)|float %}
SET_EXTRUDER_STEP_DISTANCE DISTANCE={extruder_steps}
[gcode_macro M500]
gcode:
SAVE_CONFIG
[gcode_macro M204]
rename_existing: M204.1
gcode:
{% set factor = params.F|default(0.5)|float %}
{% if 'S' in params %}
SET_VELOCITY_LIMIT ACCEL={S} ACCEL_TO_DECEL={ S|float * factor }
{% else %}
{% if 'P' in params %}
{% if 'T' in params %}
{% if P|int < T|int %}
SET_VELOCITY_LIMIT ACCEL={P} ACCEL_TO_DECEL={ P|float * factor }
{% else %}
SET_VELOCITY_LIMIT ACCEL={T} ACCEL_TO_DECEL={ T|float * factor }
{% endif %}
{% else %}
SET_VELOCITY_LIMIT ACCEL={P} ACCEL_TO_DECEL={ P|float * factor }
{% endif %}
{% elif 'T' in params %}
SET_VELOCITY_LIMIT ACCEL={T} ACCEL_TO_DECEL={ T|float * factor }
{% endif %}
{% endif %}
[gcode_macro M205]
gcode:
{% if 'J' in params %}
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={J}
{% elif 'X' in params %}
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={X}
{% elif 'Y' in params %}
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={Y}
{% endif %}
[gcode_macro M207]
gcode:
{% set length = params.S|default(0.5)|float %}
{% set speed = params.F|default(25)|float %}
SET_RETRACTION RETRACT_LENGTH={length} RETRACT_SPEED={speed}
[gcode_macro M900]
gcode:
{% if 'K' in params %}
SET_PRESSURE_ADVANCE ADVANCE={ params.K|float }
{% endif %}
[gcode_macro M303]
gcode:
{% if 'E' in params %}
{% set heater = params.E|default(0)|int %}
{% set temp = params.T|default(0)|float %}
{% if heater == 0 %} # extruder
{% if temp >= printer.configfile.settings.extruder.min_extrude_temp|float %}
{% if temp <= printer.configfile.settings.extruder.max_temp|float %}
PID_CALIBRATE HEATER=extruder TARGET={T}
{% endif %}
{% endif %}
{% elif heater == -1 %} # bed
{% if temp <= printer.configfile.settings.heater_bed.max_temp|float %}
PID_CALIBRATE HEATER=heater_bed TARGET={T}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro M486]
gcode:
# Do nothing
[gcode_macro PRIME_LINE]
gcode:
{% set feedrate = params.F|default(10)|float * 60 %}
{% set length = 100.0 %}
{% set width = printer.configfile.settings.extruder.nozzle_diameter|float %}
{% set height = ( (width / 0.04)|int - (width / 0.04 / 4)|int )|float * 0.04 %}
{% set extrude = length * width * height / 1.6 %}
SAVE_GCODE_STATE NAME=PRIME_LINE_STATE
SET_IDLE_TIMEOUT TIMEOUT=7200
{% if 'Y' in params %}
{% set x_start = 1.0 %}
{% set y_start = (printer.toolhead.axis_maximum.y|float - 100) / 2 %}
G0 X{x_start} Y{y_start} F5000 # move to start position
G0 Z{height} F1500
G91 # relative positioning
G1 Y100 E{extrude} F{feedrate} # draw the 1st line
G0 X{width} F5000 # move to the next line
G1 Y-100 E{extrude} F{feedrate} # draw the 2nd line
{% else %}
{% set x_start = (printer.toolhead.axis_maximum.x|float - 100) / 2 %}
{% set y_start = 1.0 %}
G0 X{x_start} Y{y_start} F5000 # move to start position
G0 Z{height} F1500
G91 # relative positioning
G1 E4 F{feedrate} # prime
G1 X100 E{extrude} F{feedrate} # draw the 1st line
G0 Y{width} F5000 # move to the next line
G1 X-100 E{extrude} F{feedrate} # draw the 2nd line
{% endif %}
RESTORE_GCODE_STATE NAME=PRIME_LINE_STATE
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 63.818
#*# pid_ki = 1.858
#*# pid_kd = 548.035
#*#
#*# [input_shaper]
#*#
#*# [extruder]
Чтобы комфортно слушать с компа музыку, усилитель я подвесил под столешницу. На уголках.
И постоянно я об эти уголки коленкой стучусь. Особенно когда вскакиваешь с кресла и мчишь куда-то. Например, срочно помешать овсянку на плите. Ну и ладно. Не страшно. Но тут... Я вошел в него коленкой прямо вот по-взрослому. Кровь кишки, перекись, пластыри, 10 швов, костыли больничный. Шутка. Просто до мяса.
Блэт. Надо что-то делать! Нет, ну реально уже пора. Раньше были звоночки, а тут уже целый гудок. Измеряем наружный диаметр уголка и садимся немножко помоделить...
Скругляю всё что только можно.
Рэжэм!
Хватаю волшебный цианакрилат, обезжыриватель и готово!
Ну и для симметрии. Что уж тут. Вдруг кто рядом подсядет.
Тут бы конечно, лучше всего подошел TPU, но я им пока что печатать не умею. Не пробовал, точнее говоря. Поэтому взял PETG.
Берегите колени!
Купили себе домой принтер Creality K2 pro. 2 месяца он работал нормально. НО! Начался какой то кошмар, после печати во время ретракта пластик обрывается и застревает в сопле. При любом пластике, смене температуры и изменении скорости ретракта всё одно. поменяли сопло, поменяли хотенд, ничего не изменилось. Вот и вопрос, кто дурак мы или принтер. Когда принтер едет в свой домик после печати, он должен полностью вернуть нить, или часть в любом случае остаётся в сопле, если это так, то почему срабатывает датчик на наличии нити в сопле и выдаёт ошибку? При юзании функции выдавить, принтер должен выдавить оставшийся кусок пластика в сопле и работать нормально, но он отказывается это делать выдавая ошибку. Может кто то с таким сталкивался и сможет помочь.
Здравствуй Пикабу!
Сегодня покажем как покрасили настолку по Warhammer 40k- Forbidden Stars. (Запретные Звезды)
Заказчик давно обещал, что будет делать print and play версию игры. Но в начале осени у нас был большой загруз по моделированию и было принято решение купить игру в "Кузне тролля". Сразу скажем: картон и миниатюры выполнены на отлично, приятно посмотреть.
Получилось: 140 (базовая игра)+91(дополнение)+1маркер первого игрока(череп)= 231
По традиции:
ОСТОРОЖНО! МНОГО ФОТО!
Сразу хотим подчеркнуть: миниатюры значительно меньше чем в варгейме.
Также было сложно найти схему покраса кораблей. Battlefleet Gothic как варгейм мертв, а ПК версия- лично у меня глючила и безбожно висла.
Ну начали с самого простого- Адептус Астартес (Его Императорского Высочества Межзвездные Морячки). В частности- Ультрамарины
Дальше- коварные Эльдары (Аельдари, для любителей нового канона) из банды Йанден.
Тут в первый раз впали в ступор. На арте- явно мерзкий ксенос эльдар похожий на Эльдрад Ультрана из Мира-Корабля Ультвэ. На Карточке же написано Йанден.
Вордингу мы больше верим чем картинкам, так что вот:
Продолжаем мясниками на стероидах- Пожиратели Миров.
Хотя учитывая культистов и в целом механику Хаоса в игре- ИМХО больше бы подошли Несущие Слово.
Дальше- самые отбитые грибы в галактике- Орки из Зло(б)Солнц.
Цвет кожи решили сделать прямо зеленым-зеленым. Как в старые времена Вархаммера начала 90х.
Дефиле миниатюр из дополнения Forsaken Voids (Заброшенные Пустоты), открывает команда чирлидерш Императора Человечества- Сестры Битвы из сестринства Священной Розы.
Тут мы опять споткнулись. На Карточке изображена боевая сестра из ордена Эбеновой Чаши (или чего-то похожего), а описание расы говорит- что они из Священной Розы.
В противовес намоленным невестам, естественно идут эльфы -садюги. Тёмные Эльдар (Друкхари на новоязе) из Кабала Черного Сердца.
Дальше- одни из моих любимцев в варгейме. Любители тостеров и чертежей оформленных по ЕСКД- Адептус Механикус
Ну замыкают этот список- заградотряд из Инквизиции. Адская солянка из Ордо ксенос и Ордо Маллеус.
Ну и несколько фото покрашенных моделек на игровом поле:






Строения решили дополнительно не фотографировать, они простые.
В ближайшее время ждем второе фанатское дополнение и будем его красить.
Собственно все)
Всем спасибо за внимание)
Сделал сам, тэг -Моё
Ссылка на мастерскую в ВК https://vk.com/3d_bymarkus
Ссылка на мастерскую на ЯМ https://www.livemaster.ru/3d-bymarkus
Добрый день. Собрал собственную конструкцию, хотел чтобы она была 3Д принтером, коим сейчас не является, так как еще ничего не напечатала. Проблем много, но на данный момент остро стоит проблема не работоспособности экструдера. После нажатия кнопки печать начинается разогрев сопла, затем начинается печать, шестерни экструдера крутят с щелчками, филамент стоит неподвижно, из сопла ничего не выходит. Разбираю экструдер и вижу что пластик заклинивает внутри термобарьера так сильно, что его невозможно сдвинуть не вперед ни назад. Если взять в одну руку за холодную часть разогретый до 200 градусов экструдер внутри которого нет филамента и второй рукой начать толкать в него филамент, то расплав таки выходит из сопла, но если перестать подавать филамент хотя бы на 10 секунд, то он прочно заклинивает внутри термобарьера и его невозможно протолкнуть ни вперед ни назад
