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获取最新配置
- 重置操作会清除所有累积的挤出量统计