Rayland-FDM打印机C200介绍

本篇主要介绍Rayland-FDM打印机 C200 App介绍以及软件结构。

Rayland-FDM 打印机 C200

FDM:Fused Deposition Modeling 熔融沉积成型法

FDM打印文件:STL文件,Gcode文件,x3g文件

熔融沉积模型

a) 通过加热的移动头

b) 供给,熔化并挤出,逐层沉积,形成期望的形状

c) 移动平台

e) 在每层沉积之后降低。对于这种3D打印技术,需要额外的垂直支撑结构

d) 来维持悬垂部分

FDM APP源码Git :// 当然保密了

FDM Library源码Git://

APP主要界面

主界面

从左到右,从上到下依次为

X轴当前坐标(mm),Y轴当前坐标(mm),Z轴当前坐标(mm),是否锁住电机(空闲状态)

打印速度设置(%),风扇速度设置(%),灯光亮度设置(%),热床温度设置(°C)

挤出头1温度设置,挤出头2温度设置
(热床、挤出头1、2点击图标设置温度,点击后方条形框查看30s内温度变化)
(最多支持4个挤出头)

移动界面

左侧 控制电机以及挤出头运动,电机-∞+∞ 对应这minmax处碰撞开关。挤出头-∞+∞ 对应着进出料。

右侧 可以控制挤出头到达左上右上左下右下四个位置(挤出头和X,Y轴电机)(移动距离由机器设置中设置的对应轴长运算得出)

HOME可以自动归为起始位置

AUTO自动调零 暂无

在线下载界面

读取本地文件界面

支持 x3g,Gcode,stl文件。支持离线解析stl文件。

摄像头界面

支持外置USB摄像头

机器设置

打印机常用的参数设置

x轴为例 如:驱动电压零点坐标轴长碰撞开关位置

机器设置

包括离线更新APK、WIFI设置、修改用户名密码、还原系统设置、个性logo设置等

APP 目录结构

assets 用于本地切片得默认配置文件fdmprinter.json,默认机器设置文件machine.txt,以及用于gcode预览的js文件和html文件

cn.rayland.pro_3d 应用包,按照UI结构划出多个子目录

  • base.App:FDM打印机异常捕获SharePreference等初始化设置

  • base.MachineStateBroadcastService: 网络状态变化post事件 <EventBus.jar>

  • camera: 摄像头Fragemnt,UVCCamera 使用UVC驱动外置摄像头 <libuvccamera.jar>

  • homepage: 主页Fragment

  • local:本地Fragement,加载本地 stl,gcode,x3g文件,以及 stl切片

本地切片见3dLibrary.jar - cn.rayland.utils.ConvertUtils stlToGcodeByLocal()

  • machine_config: 机器设置Fragment

  • movement: 移动Fragment

  • online: 在线下载Fragment

  • sys_config:系统设置Fragment

  • render.stl: stl模型预览以及相关操作

recyclerview recyclerview相关组件

update 应用更新相关类,U盘、sd卡检测是否有新版本APK,有则更新

Library.jar结构

android_erialport_api 串口通信相关

cn.rayland.api jni相关类

cn.rayland.library.bean 可复用bean

cn.rayland.library.sqlite sqlite数据库相关

cn.rayland.library.stm32 stm32通信相关

cn.rayland.library.utils 工具类

libcore.io stm32通信引用的核心库

libcore.util stm32通信引用的核心库

Library.jar 主要接口


/**
     * machine 对象
     */
    public volatile Machine machine;

    /**
     * 构造函数 初始化
     * @param context Context
     * @return
     */
    MachineManager getInstance(Context context);

    /**
     * 执行FileTask任务
     * @param task FileTask
     * @param ifReset 是否抢占
     */
    void sendTask(final FileTask task, final boolean ifReset);

    /**
     * 执行GcodeTask任务
     * @param task gcode指令
     * @param ifReset 是否抢占
     */
    void sendTask(final GcodeTask task, final boolean ifReset);

    /**
     * 插入Gcode命令
     * @param gcode 通常用于速度等参数的设置
     */
    void insertCommand(String gcode);

    /**
     * 取消打印
     */
    void cancel();

    /**
     * 暂停打印
     */
    void pause();

    /**
     * 恢复打印
     */
    void resume();

    /**
     * 是否有暂停的任务
     */
    hasPausedTask();

    /**
     * 保存上一次执行完的文件,保存为x3g格式
     * @param dirPath
     * @param fileName
     */
    Machine getMachineConfig();

    /**
     * 设置机器参数
     * @param configFilePath 文件路径
     */
    boolean setCustomMachineConfig (String configFilePath);

    /**
     * 获取当前机器状态
     * @return
     */
    MachineState getMachineState();

原文地址:https://www.cnblogs.com/chenjy1225/p/9662440.html