3D打印机源代码详解

合集下载

3D打印机G-M代码详解

3D打印机G-M代码详解

G-M指令详解概述众所周知,3D打印机执行的是一堆指令,这一堆指令都来源于一个指令集,即G-M指令集。

而固件就负责解释这些指令,并将命令指派给电子原件,从而完成打印任务。

因此,固件和指令集必须相互配合,否则打印机不会正常工作。

开源的3D打印机使用的固件多种多样,但和这些固件匹配的指令集绝大多数指令都相同,即RepRap G-M指令集。

由于Marlin 固件使用的最为广泛,笔者就以Marlin固件的指令集为例作叙述。

了解G-M指令有什么用?这用处可大了。

帮助使用者更方便地调试打印机,检测打印机的问题,扩展打印机菜单功能…反正好处多多,不管你信不信,反正我是信了。

废话不多说,进入正题。

G-M指令集就是一些以G或M开头的代码,有时候还会掺杂一些以其其他字母以标示参数意义,比如T、S、F、P等。

具体意义见下表,表中nnn表示因此,能够被Marlin固件识别的代码应该是像下面的样子:N3 T0*57N4 G92 E0*67N5 G28*22N6 G1 F1500.0*82N7 G1 X2.0 Y2.0 F3000.0*85N8 G1 X3.0 Y3.0*33详解注释G-Code一行中分号“;”后面的内容为解释性语句,即注释。

固件会忽略其内容。

为了减少通信量,可以把注释信息都去掉。

标记代码N 和*,比如N123 [...G Code 写在这里...] *71。

这是行码和标记码。

RepRap的固件会以一个本地计算的值来对比标记码,如果两者值不同,就会要求重复输入该条指令。

行码和检查码都可以去掉,RepRap仍会工作, 但它不会做检查。

你必须同时使用,或同时放弃使用。

检查码cs 是通过对对应的指令(包括它的的行码)的原始字节数据进行异或位运算得出的。

int cs = 0;for(i = 0; cmd[i] != '*' && cmd[i] != NULL; i++)cs = cs ^ cmd[i];cs &= 0xff; // Defensive programming...检查码cs的值即是其*符号右边的十进制数字,RepRap固件希望每次命令的行代码都是逐次增加1的大小,不然的话,它会返回一个错误。

鸽子的折腾日记②丨Klipper的安装

鸽子的折腾日记②丨Klipper的安装
Instance 1: 192.168.2.235:7125
使用浏览器访问此地址后,显示类似如下内容即表示安装成功:
{"error": {"code": 404, "message": "Not Found", "traceback": "Traceback (most recent call last):\n\n File \"/home/msoushi/moonraker-env/lib/python3.8/site-packages/tornado/w
更换Klipper、Moonraker的源
获取到源代码后,使用 cd kiauh 进入kiauh目录,此时不要急着安装,由于KIAUH脚本使用GitHub来获取代码,在国内可能会导致下载缓慢,所 以需要使用下列命令修改 kiauh.sh 和 scripts/install_moonraker.sh 中的地址,通过代理服务加速源代码的获取:
鸽子的折腾日记②丨Klipper的安装
序言
最近发现3D打印群里的越来越多人想去尝试Klipper固件了,想必它的可扩展性和易于配置吸引了不少人。加上近期百无聊赖,于是就想写出这样 一篇安装教程,供各位参考。
开始
首先,你需要一个装有Debian系操作系统(如Debian、Ubuntu、Raspbian、Armbian等)的设备(电脑、瘦客户机、树莓派、玩客云等 等……)。 在瘦客户机、电脑等安装Debian的方法可以参考本人的这篇教程。
其它系统(Debian、Raspbian等)可参照清华源提供的教程来更换软件源。 更换好软件源后,运行 sudo apt update 和 sudo apt upgrade 来更新系统。

ANDCIV 3D打印机主板GCODE详解15.429

ANDCIV 3D打印机主板GCODE详解15.429
M130: 设置/查询加热 PID 比例 P 参数或积分最大值. M130 [[Sxxxx] P0/P1/P2/P3/P10/P13] P0 -- 第一加热头 P1 -- 第二加热头 P2 -- 第三加热头 P3 -- 热床加热 P10 -- 第一加热头积分最大值 P13 -- 热床积分最大值 Sxxxx -- 设定值 示例: 1.查询热床 PID 之 P 参数. {M130 P3} 返回: {ok M130 : Bed PID-P : 500} 2.设置第一挤出头 P 值为 300 {M130 P0 S300} 返回: {ok M130 : Extruder 1 PID-P Saved.} 3.查询第一加热头 PID 积分最大值: {M130 P10} 返回: {ok M130 : Extruder 1 PID Error Max Limit : 100000} 4.设置热床 PID 积分最大值为 200000 {M130 P13 S200000} 返回:
8 / 23
ANDCIV GCODE 详解
{ok M132 : Extruder 1 PID-D Saved.} M133:
设置/查询最大温度限制值. M132 [[Sxxxx] P0/P1/P2/P3] P0 -- 第一加热头 P1 -- 第二加热头 P2 -- 第三加热头 P3 -- 热床加热 Sxxxx -- 设定值 示例: 1.查询热床最大温度限制. {M132 P3} 返回: {ok M132 100} 2.设置第一挤出头最大温度限制值 {M132 P0 S230} 返回: {ok} M134: 保存当前设置到 flash 中。 示例: 保存当前设置到 flash 中 {M134} 返回 {ok} M136: 查询各个加热通道 PID 值. M136 [P0/1/2/3] 示例: 1.查询第一挤出头 PID 参数. {M136 P0} 返回: {ok M136 extruder_1_pid_p:100 , extruder_1_pid_i:500 , extruder_1_pid_d:3 } 2.查询所有加热通道 PID 参数. {M136} 返回: {ok M136 extruder_1_pid_p:100 , extruder_1_pid_i:500 , extruder_1_pid_d:3

【打印虎】用OpenSCAD修改RepRap Prusa i3 3D打印机打印件设计图解

【打印虎】用OpenSCAD修改RepRap Prusa i3 3D打印机打印件设计图解

【打印虎】用OpenSCAD修改RepRap Prusa i3 3D打印机打印件设计图解玩3D打印机,特别是桌面级3D打印机的朋友都知道,3D打印机里面,有一些关键的部件,是靠3D打印技术设计、制造的。

可以说,3D打印机是目前真正深入应用了3D打印技术的产品,让3D打印技术有了一定的用武之地。

最近打印虎希望改造一台自己的RepRap Prusa i3 3D打印机(搭建过程详见【打印虎】零基础自制RepRap Prusa i3图解全攻略),这时候问题就来了。

3D打印机中使用的大部分标准零件都比较好办,直接到市场上采购就可以了。

用作框架的亚克力板,也可以使用CAD软件进行改进,再利用激光切割机进行切割。

如果对亚克力板的改造比较感兴趣,可以参考【打印虎】用QCAD修改RepRap Prusa i3 3D打印机框架设计图解这篇文章。

还剩下一类零件,就是采用3D打印技术生产的3D打印件。

我们今天要讨论的主要内容,就是如何改进这些3D打印件。

类似于其他的机械零件设计工作,设计、修改、查看Prusa i3的3D打印零件,也需要CAD软件的辅助。

同时,Prusa i3 3D打印机是一个开源硬件、软件设计,它不仅为全世界的技术爱好者提供了一个很好的3D打印机设计方案,而且需要吸引开源社区的回馈,贡献力量帮助其发展、壮大。

因此,Prusa i3的设计者并没有基于售价昂贵的工业级CAD 工具进行开发,而是采用了一个开源、免费的CAD工具,OpenSCAD。

OpenSCAD的官方网址,在/。

在官网的页面上,可以看到它的简单介绍。

简单来说,OpenSCAD开源、免费,是一个面向机械零件设计的CAD软件。

它与其他CAD软件不同点在于它不是一个交互式的CAD建模工具软件,而是采用一种脚本语言定义模型的形状。

这样的好处,是用户可以完全控制3D模型的所有参数,并且特别有利于使用源代码管理工具,对3D模型的历史修改进行记录。

但也是因为这样的特征,它不适合进行3D艺术类型的创作,如果有这方面的需求,还是应该使用一个交互式的建模工具。

【打印虎】RepRap 3D打印机G-code命令专家详解

【打印虎】RepRap 3D打印机G-code命令专家详解

【打印虎】RepRap 3D打印机G-code命令专家详解玩过一段时间3D打印机的朋友,都会接触到G-code文件。

所谓G-code文件,指的是3D模型在进入3D打印机实际打印之前,必须要经过切片器处理而成的一种中间格式文件。

这种中间格式文件的内容,实际上每一行都是3D打印机固件所能理解的命令。

而这些命令,也被称为G-code命令,是3D打印机和电脑之间最重要的命令交互界面。

上面的图,虽然是简化后的线框图,但清晰地表示了G-code命令所处的重要位置。

事实上所有从计算机发送到3D打印机的内容,全部都是G-code命令,没有任何例外。

不论计算机和3D打印机之间是如何连接的,用常见的USB线也好,用SD卡作为G-code文件介质也好,或是用比较新式的TCP/IP连接也可以,这个连接通道中的所有信息,都是G-code命令。

这个特征非常重要,牢牢记住这个特征,可以在我们分析、解决很多3D打印机问题的时候,提供强有力的支撑。

既然所有3D打印机都使用G-code作为对外联系的唯一信息交互方式,那么这种“语言”的标准就很重要了。

不幸的是,虽然所有的3D打印机,都使用G-code作为与计算机的交互语言,但实际上每种3D打印机“说出”的G-code,都多多少少有些不同。

这也可以说,每种3D打印机都有自己的“方言”。

我们要研究G-code,就要从一种最常见的“方言”,也可以说是“普通话”开始,先了解一种,然后再学习其他类似的语言,相互对比,就很容易了。

我们这篇文章,专门研究的是Repetier公司出品的Repetier-firmware固件所使用的G-code语法。

如果这正是你需要的,那么就很方便了。

如果你想研究的是其他3D打印机固件,比如marlin之类,那就不太巧了,有些内容可能不完全一致。

不过,文章中提到的方法,仍然适用,你可以以这篇文章为基础,自己搞定对marlin的研究。

这篇文章主要面向具有一定技术水平的朋友,从第一节开始,我们就开始分门别类解释每一条G-code命令,这对于已经了解如何使用G-code的朋友会比较方便。

Cura 软件的使用说明

Cura 软件的使用说明

Cura 软件的使用说明Cura 软件使用说明一、软件简介Cura 是一款广泛应用于3D 打印领域的开源软件,它提供了用户友好的界面和丰富的功能,帮助用户进行3D 打印模型的准备和切片。

二、安装与配置1. Cura 软件,并按照安装向导进行安装。

2.打开 Cura 软件,进入设置界面,根据实际需要进行配置,如打印机类型、打印材料等。

三、导入模型1.将需要打印的 3D 模型导入到 Cura 软件中,支持的文件格式包括 STL、OBJ 等。

2.对导入的模型进行调整和缩放,可通过移动、旋转和缩放工具进行操作。

四、打印设置1.在打印设置中,用户可以选择打印质量、层高、填充密度、支撑结构等参数。

2.根据实际需求,进行打印设置调整,如打印速度、温度、底座粘合性等。

五、切片与预览1.确定打印设置后,切片按钮,Cura 软件将自动根据设置将模型切片成多层的 G-Code。

2.在预览界面中,可以查看切片后的模型层叠信息,检查是否需要进行调整。

六、保存与导出1.在完成切片和预览后,可以选择保存 G-Code 文件,用于打印。

2.可以导出切片后的模型,保存为 STL 或 G-Code 文件。

七、打印操作1.将保存好的 G-Code 文件导入到对应的 3D 打印机软件中。

2.连接 3D 打印机,并按照软件提示进行操作,开始打印。

附件:1.Cura 软件安装包2.示例模型文件法律名词及注释:1.开源软件:指提供源代码的软件,用户可以自由地查看、使用和修改。

2.切片:指将3D 模型切割成多层的过程,以便打印机逐层打印。

3.G-Code:指数字控制机床等设备所使用的一种控制语言,用于描述打印路径和指令。

marlin固件配置

marlin固件配置
// This determines the communication speed of the printer #define BAUDRATE 250000 //#define BAUDRATE 115200
//波特率的配置,默认配置为 250000,这个需要与你的上位机想匹配,否则无法通讯
//下面开始配置板子的类型,如果你使用的是 ramps1.4 版本,这个参数需要配置为 33 (一个挤出头)或 34(两个挤出头) //// The following define selects which electronics board you have. Please choose the one that matches your setup // 10 = Gen7 custom (Alfons3 Version) "https:///Alfons3/Generation_7_Electronics" // 11 = Gen7 v1.1, v1.2 = 11 // 12 = Gen7 v1.3 // 13 = Gen7 v1.4 // 3 = MEGA/RAMPS up to 1.2 = 3 // 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Bed, Fan) // 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) // 4 = Duemilanove w/ ATMega328P pin assignment // 5 = Gen6 // 51 = Gen6 deluxe // 6 = Sanguinololu < 1.2 // 62 = Sanguinololu 1.2 and above // 63 = Melzi // 64 = STB V1.1 // 7 = Ultimaker // 71 = Ultimaker (Older electronics. Pre 1.5.4. This is rare) // 8 = Teensylu // 80 = Rumba // 81 = Printrboard (AT90USB1286) // 82 = Brainwave (AT90USB646) // 9 = Gen3+ // 70 = Megatronics // 701= Megatronics v2.0 // 702= Minitronics v1.0 // 90 = Alpha OMCA board // 91 = Final OMCA board // 301 = Rambo

3d打印机prusai3diy全过程【分享全部源码电路图】

3d打印机prusai3diy全过程【分享全部源码电路图】

3D打印机Prusa i3 DIY全过程【分享全部源码,电路图】Prusa i3是开源RepRap 3D打印机Prusa Mendel的第三代机型。

相对于Mendel一代和二代的版本,第三代结构更简介,造型更趋向于产品化。

相对于老款i2挤出机和框架结构都进行了升级,打印尺寸和成型效果都有很大的提高。

打印效果图放在了帖子最后。

照片很多,大家慢慢欣赏。

发帖不容易大家多多支持啊。

版主不要删我帖子哦~~~多谢支持啦论坛里面很多DIYer都要求出套件,这里传上套件链接/forum.php?mod ...mp;extra=#pid460820 大家多多支持啊。

完成后的样子prusa i3打印实拍视频(打印iphone5s外壳套):/v_show/id_XNzE1NDM0MjUy.html所需全部材料:1.亚克力件* 1套2.塑料件* 1套3.电子元器件Arduino 2560 * 1RAMPS1.4 * 1A4988驱动模块* 442步进电机* 5(2长3短)升级版J-head * 1MK3热床* 1轻触开关* 34cm风扇* 1开关电源* 1(12V * 30A)导线若干4.五金件2GT同步轮* 22GT同步带* 25mm-5mm弹性联轴器* 2直线轴承* 10605ZZ轴承* 3U型导轮* 1进料齿轮* 1压力弹簧* 5(4小1大)同步带锁紧弹簧* 2螺杆* 1套滑杆导轨* 1套螺母&amp;垫片&amp;螺钉* 1套准备好所有材料就开始组装啦1、Y轴底盘组装先组装Y轴同步带导轮,需用605zz轴承2个,M5-25mm螺钉,M5螺母和垫片各1个。

再安装前侧脚座安装后一侧脚座连接前后侧脚座安装滑杆导轨2、加热床底板安装安装y-belt-holder到亚克力底板上,使用自锁紧M3螺母用扎线带固定底板到Y轴滑杆导轨3、X轴组装塞入LM8UU到x-end塑料件中x-end中加入M5螺母装入滑杆导轨,拼装X轴同步带导轮轴承,M5螺钉正面垫4个M5垫片安装x-carriage 4、亚克力框架安装安装框架板和侧板5、链接X、Y、Z各轴Y轴底座和亚克力框架链接固定Z轴电机,并安装Z轴滑杆导轨,驱动螺杆安装X、Y轴电机安装X、Y轴同步带6、加热床安装焊接热床导线和指示led灯,并贴上高温胶带再热床正面贴上热敏电阻,并固定热床到Y轴底板7、挤出机安装安装ex-base 安装挤出喷嘴安装散热风扇,风扇接线和挤出机加热线并接一起。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3D打印机使用说明三角洲并联臂3D打印机Marlin固件配置详解不同版本可能有些区别只需修改文件夹里Configuration.h的参数就可以了红色字体是配置时可能需要修正的参数软件:arduino-1.0.6(其他版本可能会编译出错)和RepetierHost_1_0_6//===========================================================================//============================= DELTA Printer ===============================//===========================================================================基本设置包括:主板类型,温度传感器类型,轴设置,限位开关配置#define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time#define STRING_CONFIG_H_AUTHOR "(jcrocholl, Mini Kossel)" // Who made the changes.#define SERIAL_PORT 0选择用于和上位机通讯的串口,该值请保持0不动#define BAUDRATE 250000 //波特率配置,该值必须和你的上位机波特率相匹配,否则无法通讯。

常用波特率有115200和250000// This enables the serial port associated to the Bluetooth interface//#define BTENABLED // Enable BT interface on AT90USB devices//// The following define selects which electronics board you have. Please choose the one that matches your setup// 10 = Gen7 custom (Alfons3 Version) "https:///Alfons3/Generation_7_Electronics" // 11 = Gen7 v1.1, v1.2 = 11// 12 = Gen7 v1.3// 13 = Gen7 v1.4// 2 = Cheaptronic v1.0// 20 = Sethi 3D_1// 3 = MEGA/RAMPS up to 1.2 = 3// 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed)// 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed)// 35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan)// 4 = Duemilanove w/ ATMega328P pin assignment// 5 = Gen6// 51 = Gen6 deluxe// 6 = Sanguinololu < 1.2// 62 = Sanguinololu 1.2 and above// 63 = Melzi// 64 = STB V1.1// 65 = Azteeg X1// 66 = Melzi with ATmega1284 (MaKr3d version)// 67 = Azteeg X3// 68 = Azteeg X3 Pro// 7 = Ultimaker// 71 = Ultimaker (Older electronics. Pre 1.5.4. This is rare)// 72 = Ultimainboard 2.x (Uses TEMP_SENSOR 20)// 77 = 3Drag Controller// 8 = Teensylu// 80 = Rumba// 81 = Printrboard (AT90USB1286)// 82 = Brainwave (AT90USB646)// 83 = SAV Mk-I (AT90USB1286)// 9 = Gen3+// 70 = Megatronics// 701= Megatronics v2.0// 702= Minitronics v1.0// 90 = Alpha OMCA board// 91 = Final OMCA board// 301= Rambo// 21 = Elefu Ra Board (v3)#ifndef MOTHERBOARD#define MOTHERBOARD 33//主板类型选择,请按以上各主板相应代号选择你个人的主板类型。

33是ramps1.3/1.4(一个挤出机),34是ramps1.3/1.4(两个挤出机)#endif#define EXTRUDERS 1// 1 = ATX// 2 = X-Box 360 203Watts (the blue wire connected to PS_ON and the red wire to VCC)#define POWER_SUPPLY 1 //选择电源类型// Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it.// #define PS_DEFAULT_OFF//=========================================================================== //============================== Delta Settings =============================//=========================================================================== // Enable DELTA kinematics#define DELTA#define DELTA_SEGMENTS_PER_SECOND 200//防止过多的消耗芯片支援,以及足够的精度,取一个适中的数值#define DELTA_DIAGONAL_ROD 236.9 // mm//推杆孔中心距#define DELTA_SMOOTH_ROD_OFFSET 172.6 // mm //中心到塔柱距离#define DELTA_EFFECTOR_OFFSET 23 // mm//末端执行器上通用关节的水平偏移#define DELTA_CARRIAGE_OFFSET 23// mm//滑车的水平偏移#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_ CARRIAGE_OFFSET)#define DELTA_PRINTABLE_RADIUS 80打印面直径(D/ 2-A)遥不可及的空间(避免与立式塔碰撞)。

#define SIN_60 0.8660254037844386#define COS_60 0.5#define DELTA_TOWER1_X -SIN_60*DELTA_RADIUS // front left tower#define DELTA_TOWER1_Y -COS_60*DELTA_RADIUS#define DELTA_TOWER2_X SIN_60*DELTA_RADIUS // front right tower#define DELTA_TOWER2_Y -COS_60*DELTA_RADIUS#define DELTA_TOWER3_X 0.0 // back middle tower#define DELTA_TOWER3_Y DELTA_RADIUS#define DELTA_DIAGONAL_ROD_2 pow(DELTA_DIAGONAL_ROD,2)//===========================================================================//=============================Thermal Settings ============================//===========================================================================////--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table////// Temperature sensor settings:// -2 is thermocouple with MAX6675 (only for sensor 0)// -1 is thermocouple with AD595// 0 is not used// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)// 3 is Mendel-parts thermistor (4.7k pullup)// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup) // 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)// 10 is 100k RS thermistor 198-961 (4.7k pullup)// 20 is the PT100 circuit found in the Ultimainboard V2.x// 60 is 100k Maker's Tool Works Kapton Bed Thermistor// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k // (but gives greater accuracy and more stable PID)// 51 is 100k thermistor - EPCOS (1k pullup)// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)// 1047 is Pt1000 with 4k7 pullup// 1010 is Pt1000 with 1k pullup (non standard)// 147 is Pt100 with 4k7 pullup// 110 is Pt100 with 1k pullup (non standard)#define TEMP_SENSOR_0 1///上面这些值是温度传感器类型配置,是能否正常读取温度的重要参数。

相关文档
最新文档