Extruder 类文档
概述
Extruder
类用于管理3D打印过程中的挤出机状态,包括挤出量计算、回抽操作、耗材统计等功能。支持多挤出机配置及共享挤出机模式。
头文件
#ifndef slic3r_Extruder_hpp_
#define slic3r_Extruder_hpp_
#endif
成员函数
构造函数
Extruder(unsigned int id, GCodeConfig *config, bool share_extruder)
- 功能:初始化挤出机对象
- 参数:
id
: 挤出机唯一标识
config
: G代码配置指针
share_extruder
: 是否共享挤出机模式
核心方法
reset()
void reset()
- 功能:重置挤出机状态
- 重置内容:
- 共享模式:重置共享E值和回抽量
- 独立模式:重置E值、回抽量、额外重启量
- 始终重置绝对E值
extrude()
double extrude(double dE)
- 功能:执行挤出操作
- 参数:
dE
- 相对挤出量
- 返回值:实际挤出量
- 说明:更新E值和绝对E值
回抽控制
double retract(double length, double restart_extra)
double unretract()
- retract():执行回抽
- 参数:
length
回抽长度,restart_extra
额外重启量
- 返回值:实际回抽量
- unretract():取消回抽
状态获取
方法 |
说明 |
double E() const |
获取当前E值(共享/独立模式自动处理) |
double extruded_volume() const |
计算已挤出耗材体积(mm³) |
double used_filament() const |
计算已使用耗材长度(mm) |
耗材属性
方法 |
说明 |
单位 |
filament_diameter() |
耗材直径 |
mm |
filament_density() |
耗材密度 |
g/cm³ |
filament_cost() |
耗材成本 |
单位长度成本 |
retract_before_wipe() |
擦拭前回抽长度 |
mm |
retraction_length() |
回抽长度 |
mm |
操作符重载
操作符 |
说明 |
== |
ID相等比较 |
!= |
ID不等比较 |
< > |
ID大小比较 |
重要成员变量
变量 |
类型 |
说明 |
m_share_extruder |
bool |
共享挤出机模式标志 |
m_share_E |
static double |
共享模式下的E值 |
m_e_per_mm3 |
double |
每立方毫米耗材对应的E步长 |
使用示例
Extruder extruder(0, &config, false);
extruder.extrude(10.5);
extruder.retract(2.0, 0.5);
double used = extruder.used_filament();
设计说明
- 共享模式支持:通过静态变量实现多实例共享挤出状态
- 单位统一:所有长度单位为毫米,体积为立方毫米
- 状态管理:独立维护绝对E值用于耗材统计
- 配置解耦:通过GCodeConfig指针获取机器参数
注意事项
- 在共享模式下修改E值会影响所有共享该挤出机的实例
- 回抽相关参数应从GCodeConfig获取最新配置
- 重置操作会清除所有累积的挤出量统计