当前位置: 首页 > article >正文

BambuStudio学习笔记:Extruder 类

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_extruderbool共享挤出机模式标志
m_share_Estatic double共享模式下的E值
m_e_per_mm3double每立方毫米耗材对应的E步长

使用示例

// 创建挤出机(ID=0,使用配置,非共享模式)
Extruder extruder(0, &config, false);

// 执行挤出
extruder.extrude(10.5);

// 执行回抽
extruder.retract(2.0, 0.5);

// 获取耗材使用量
double used = extruder.used_filament();

设计说明

  1. 共享模式支持:通过静态变量实现多实例共享挤出状态
  2. 单位统一:所有长度单位为毫米,体积为立方毫米
  3. 状态管理:独立维护绝对E值用于耗材统计
  4. 配置解耦:通过GCodeConfig指针获取机器参数

注意事项

  • 在共享模式下修改E值会影响所有共享该挤出机的实例
  • 回抽相关参数应从GCodeConfig获取最新配置
  • 重置操作会清除所有累积的挤出量统计

http://www.kler.cn/a/571582.html

相关文章:

  • AI 外呼产品架构解读:让智能外呼更精准高效
  • Rust编程实战:初探WebAssembly
  • PyCharm 无法识别 Conda 环境的解决方案
  • python-leetcode-不同的二叉搜索树
  • JavaScript 交换变量案例
  • 学习 Wireshark 分析 Android Netlog
  • 【零基础到精通Java合集】第二十二集:CMS收集器详解(低延迟的里程碑)
  • nginx accesslog 打印自定义header
  • 北京航空航天大学计算机复试上机真题
  • 快速高效使用——阿里通义万相2.1的文生图、文生视频功能
  • intra-mart实现logicDesigner与forma联动
  • 第52天:Web开发-JavaEE应用SpringBoot栈SnakeYaml反序列化链JARWAR构建打包
  • 【由技及道】API契约的量子折叠术:Swagger Starter模块的十一维封装哲学【人工智障AI2077的开发日志】
  • 关联封号率降70%!2025最新IP隔离方案实操手册
  • android::IPCThreadState::self使用介绍
  • ASP.NET MVC项目部署到IIS后,w3wp.exe程序报错重启
  • CSS—flex布局、过渡transition属性、2D转换transform属性、3D转换transform属性
  • Python的那些事第三十九篇:MongoDB的Python驱动程序PyMongo
  • 解决android studio(ladybug版本) gradle的一些task突然消失了
  • B3DM转换成PLY