怎么创建免费的个人网站godaddy上传网站

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

怎么创建免费的个人网站,godaddy上传网站,百度站长推送,网站背景动图怎么做切片软件对模型进行切片后会生成.gcode文件#xff0c;这就是我们常说的G代码。G代码是用于指导3D打印机怎么动作的文件#xff0c;其实最主要就是指导打印机的3轴电机和挤出机如何动作#xff0c;比如某个电机正转多少、速度多少。 3D打印机本质就是gcode的执行器#xff…        切片软件对模型进行切片后会生成.gcode文件这就是我们常说的G代码。G代码是用于指导3D打印机怎么动作的文件其实最主要就是指导打印机的3轴电机和挤出机如何动作比如某个电机正转多少、速度多少。 3D打印机本质就是gcode的执行器同样的雕刻机、激光雕刻机也是。我们把一张平面图形通过软件生成G代码G代码就可以控制激光雕刻机的x、y电机先运动到哪儿、再运动到哪儿、接着运动到哪儿…..一系列运动之后就把平面图形雕刻出来了。我们把3D模型经过切片软件处理后就是把3D模型切成一层一层的平面图形同样的道理控制电机经过一系列运动就可以把模型打印出来了。 因此3D打印机的控制固件、切片软件并不复杂只要知道了G代码的语法就可以自己写一个G代码的执行固件、G代码的生成上位机。甚至不需要G代码你可以自己定义一种代码然后自己根据定义的代码来设计执行固件和代码生成上位机。 M92 E92.640000 M190 S60.000000 M109 S210.000000 ;Sliced at: Wed 04-12-2019 20:39:58 ;Basic settings: Layer height: 0.2 Walls: 0.8 Fill: 20 ;Print time: 59 minutes ;Filament used: 2.708m 8.0g ;Filament cost: None ;M190 S60 ;Uncomment to add your own bed temperature line ;M109 S210 ;Uncomment to add your own temperature line G21 ;metric values G90 ;absolute positioning M82 ;set extruder to absolute mode M107 ;start with the fan off G28 X0 Y0 ;move X/Y to min endstops G28 Z0 ;move Z to min endstops G1 Z15.0 F9000 ;move the platform down 15mm G92 E0 ;zero the extruded length G1 F200 E3 ;extrude 3mm of feed stock G92 E0 ;zero the extruded length again G1 F9000 ;Put printing message on LCD screen M117 Printing…;Layer count: 250 ;LAYER:-2 ;RAFT G0 F9000 X70.699 Y72.424 Z0.300 ;TYPE:SUPPORT G1 F1200 X71.320 Y71.910 E0.10054 G1 X72.120 Y71.371 E0.22086 G1 X72.666 Y71.071 E0.29856 G1 X73.699 Y70.614 E0.43945 G1 X74.884 Y70.287 E0.59277 G1 X75.607 Y70.181 E0.68391 ……. 上面是Cura输出的打印模型的G代码第1行到第3行分别是M92、M190、M109命令后面跟着的是命令的参数。第4行到第10行是“;”后面跟着模型的属性信息“;”是G代码的注释符。再后面又是命令号跟着命令参数……当开始打印时打印机会按照这个G代码文件一行一行的执行。 了解了G代码文件的组成现在来说一下G代码文件中用到的命令。命令只需要看一下就行读G代码的时候遇到什么命令再回来查就可以了。 G代码的命令分为延时的G命令、即时的G命令、即时的M和T命令。延时和即时的区别在于收到命令后对命令的回应处理不同。控制器收到命令后都会把命令放入循环队列中只要把延时命令成功放入队列控制器就会给出应答可是对于即时命令只有执行该命令后才会给出应答。 一、延时的G命令 RepRap固件接收到这些命令后会先存储在一个循环队列缓存里再执行。这意味着固件在接收到一条命令后马上可以传输下一条。另一方面这也意味着一组线段可以没有间断的情况下连续打印。为了实现命令流的控制当接受到可缓存的命令时如果固件把它成功放到本地缓存里就立即给出应答如果本地缓存已满则会延时等到缓存有空出的位置时才给出应答。 G0/G1: 直线移动 G0和G1命令完全等价作用就是让喷头线性移动到一个特定的位置。参数完整形式为 G0 Xnnn Ynnn Znnn Ennn Fnnn Snnn 或者 G1 Xnnn Ynnn Znnn Ennn Fnnn Snnn 使用时不需要所有的参数全部存在但至少要有一个参数。其中 Xnnn表示X轴的移动位置 Ynnn表示Y轴的移动位置 Znnn表示Z轴的移动位置 Ennn表示E轴挤出头步进电机的移动位置 Fnnn表示移动速度单位是毫米/每分钟 Snnn表示是否检查限位开关S0不检查S1检查缺省值是S0 如 G1 F1500 G1 X50 Y25.3 E22.4 这两行G-code表示首先将移动速度设置为1500mm/min然后将挤出头移动至x50mm, y25.3mm的位置上z轴高度不变并且将挤出头步进电机移动至22.4mm的位置上。注意命令是将挤出头移动到某个位置而不是移动多少距离。比如前一个位置是X40 Y20 E20那么执行这条命令后挤出头往X正方向移动10mm往Y正方向移动5.3mm挤出机挤出2.4mm长度的耗材。 G28复位 打印机复位命令。执行时会让3个轴依次往限位开关的方向运行碰到限位开关后还会减速做一次1mm左右的往返运动来保证复位的准确性。如果在命令后面加上坐标值则只会复位坐标值对应的坐标轴。坐标值的数字会被忽略 如 G28 X0 Y72.3 只会复位x轴和y轴。 一般G代码文件开头都会用此命令来复位3轴。(如上面的示例) G29Z轴高度三点测试 这条命令会测试打印平面上三个点的Z轴高度并在串口上输出结果。参数为Snnn表示对测试结果的处理方式。S1表示更新内存中的Z轴高度值重置系统会丢失S2表示更新内存以及EEPROM中的Z轴高度值重置系统不会丢失。 无参数时G29命令表示只从串口上输出结果不更新内存或EEPROM中的Z轴高度值。 一般来说只有使用高位限位开关也就是说Z轴的限位开关位于Z轴坐标最大处且在挤出头上附带有Z轴高度测试微动开关的机型适合使用G29命令测试Z轴高度。其他机械配置的机型不适合使用G29命令。G29命令由固件配置 #define FEATURE_Z_PROBE 1 决定是否开启。如果这个配置项定义为0则编译时会去除对G29命令的支持节省内存的使用。 命令执行时打印平面上的三个点其XY坐标由以下固件配置参数决定 #define Z_PROBE_X1 -52 #define Z_PROBE_Y1 -30 #define Z_PROBE_X2 52 #define Z_PROBE_Y2 -30 #define Z_PROBE_X3 0 #define Z_PROBE_Y3 60 在命令执行的开始和结束处会分别执行一段预定义的G-code。缺省的预定义内容为 #define Z_PROBE_START_SCRIPT “G28” #define Z_PROBE_FINISHED_SCRIPT “” 可以看出在缺省状态下开始执行G29时系统会自动对挤出头进行复位G28命令。结束执行G29时没有特殊的动作。 G29命令的Z轴高度测试通常由一个微动开关控制触发。这个开关的端口号由Z_PROBE_PIN单独指定。 G29命令的输出格式为 X:0.00Y:0.00Z:200.00E:0.00Z-probe:5.01X:-52.00Y:-30.00Z-probe:13.04X:52.00Y:-30.00Z-probe:12.77X:0.00Y:60.00X:0.00Y:60.00Z:-98.48E:0.00 从以上例子的输出可以看出G29命令一共测试了三个坐标点分别在(-52, -30), (53, 30)以及(0, 60)的位置形成一个正三角形。三个点的Z轴高度相差比较悬殊在第一个点正好是5mm的情况下后两个点分别是13.04mm以及12.77mm。第一行和最后一行是测试开始时以及测试结束时的挤出头坐标位置。 G30Z轴高度单点测试单步 这条命令作为一个完整Z轴高度测试过程的一步测试打印平面上一个点的Z轴高度并在串口上输出结果。这个完整的Z轴高度测试过程通常是由3D打印机控制软件连续发出的通过参数控制G30的执行状态。因此在手动工作方式下G30命令只适合不带参数运行等价于G30 P3见下面的参数说明。 命令参数为Pnnn表示测试的状态P1表示当前这步是整个Z轴高度测试过程的第一步P2表示当前这步是整个Z轴高度测试过程的最后一步P3表示当前这步是Z轴高度测试过程的唯一一步也就是说既是第一步也是最后一步P0表示当前这步是Z轴高度测试过程中的中间一步。无参数情况下P的缺省值是3。 与G29命令类似G30命令同样由固件配置 #define FEATURE_Z_PROBE 1 决定是否开启。 G30命令的输出与上面的G29输出格式一致但只有其中的一行需要上位机软件多次发出G30命令再综合处理所有的输出结果。 G31输出Z轴高度测试微动开关状态 这条命令非常简单没有参数。执行后会输出当前Z轴高度测试微动开关的当前状态 Z-probestate:L 其中L表示微动开关没有触发。如果是处于触发状态这里会输出H。 G29命令、G30命令、G31命令只进行Z轴的高度测试并不进行自动调平。有些上位机3D打印机控制软件会通过这一组命令配合自动跳屏算法实现上位机热床自动调平功能。如果希望不通过上位机只由3D打印机自身完成自动调平功能需要使用G32命令。 G32热床自动调平 这条命令在G29命令的基础上不仅测试打印平面上三个点的Z轴高度而且还会根据测试的结果对3D打印机的机械参数进行调整实现热床自动调平。G32命令使用的参数与G29命令是一致的Snnn表示测试结果的处理方式。S1表示更新内存中的相关参数值重置系统会丢失S2表示更新内存以及EEPROM中的相关参数值重置系统不会丢失。 G32命令执行完成时不仅Z轴高度参数发生了改变而且还会根据3D打印机的硬件配置对热床进行相应的调平处理。 如果热床本身是使用步进电机进行高度控制的那么程序会自动调整步进电机的位置使热床自动调整为平整的状态如果热床本身不能移动这个应该是更常见的情况那么G32命令会在3D打印机内存中构建一个转换矩阵Transformation matrix让未来3D打印机所处理的所有三维空间位置都先经过这个矩阵的变换保证在Z0的情况下正好与热床平面完全吻合。由于这里涉及到高深的计算机图形学知识我们就不详细介绍了。 G32命令由固件配置 #define FEATURE_AUTOLEVEL 1 决定是否开启。 G32命令的输出格式与G29命令类似 X:0.00Y:0.00Z:200.00E:0.00Z-probe:5.00X:-52.00Y:-30.00Z-probe:12.97X:52.00Y:-30.00Z-probe:12.76X:0.00Y:60.00Info: 0.99709-0.00319-0.076280.000000.99912-0.41910.076340.0041790.99621Info:AutolevelingenabledX:7.32Y:64.08Z:-95.66E:0.00X:0.00Y:0.00Z:200.00E:0.00 除了与G29命令相似的测量信息之外G32命令还输出了计算得到的自动调平矩阵并且打开了自动调平功能。需要注意的一点是G32命令虽然生成了自动调平矩阵但并没将其保存在EEPROM中因此下次开机这个信息将会丢失。可以配合M320 S1命令将自动调平矩阵保存在EEPROM中。 二、即时的G命令 以下命令也可以被缓存, 但是直到所有之前缓存的命令被执行完并且该命令执行后才会给出应答。 因此主机会等待命令执行完毕才收到的应答。这些命令导致的短暂停顿不会影响机器的正常性能。 G4: 暂停移动 让喷头在当前位置停留一段时间。参数可以为G4 Pnnn或G4 Snnn。Pnnn表示以毫秒为单位Snnn表示以秒为单位。 如G4 P2000与G4 S2完全等价都表示停顿2秒。 在停顿过程中机器仍可以被控制如挤出头温度。 G20:使用英寸作为单位 执行这条命令后后面的命令都以英寸作为单位。 G21: 使用毫米作为单位 执行这条命令后后面的命令都以毫米作为单位。 G90/G91设置坐标模式 这两条命令用于设置当前坐标模式为绝对坐标模式(G90)或者相对坐标模式(G91)。没有参数。 未设置时缺省值是绝对坐标模式。我们在这篇教程中所有的例子也都是以绝对坐标模式给出的。 在相对坐标模式下每次步进电机XYZE移动之后当前位置都会重置为0。对于以下两条G-code命令 G0 X1 G0 X-1 如果3D打印机当前处于相对坐标模式下那么X轴步进电机会先向正方向移动一个单位再向反方向移动一个单位。第二条语句实际移动距离是1个单位向X轴反方向。 而如果3D打印机当前处于绝对坐标模式下那么X轴步进电机会先移动到X1的位置处再移动到X-1的位置处。第二条语句实际移动距离是2个单位向X轴反方向。 G92:设置当前位置为某个坐标值 把当前位置设定为某个坐标值可以用来设置零点如果参数为空表示把当前位置设置为所有轴的的零点。 如G92 X10 E90       ;表示把当前位置设置为x10喷头坐标90 再如G92 E0             表示把当前喷头坐标设置为0 G94/G95:进给速率单位 使用了G94指令之后所有的进给都是以mm/min为单位即F100指刀具每分钟移动100毫米默认的 使用了G95指令之后所有的进给都是以mm/r为单位即F100指主轴每转一转刀具移动100毫米 G17/G18/G19选择加工平面 三、即时的M和T命令 M0:打印机停止 打印机会终止任何动作然后关机。所有的电机和加热器都会被关掉这个时候只能通过reset按钮来重启控制器。 M1: 打印机休眠 打印机会终止任何动作然后休眠。所有的马达和加热器都会被关掉但是接收到G或M命令时打印机可以被唤醒并进入工作状态。 M3:主轴开启顺时针旋转(CNC专用) 如M3 S4000         ;主轴以4000RPM速度顺时针旋转 M4:主轴开启逆时针旋转(CNC专用) 如M4 S4000         ;主轴以4000RPM速度逆时针旋转 M5:主轴关闭(CNC专用) M7:气雾冷却系统开启(CNC专用) M8:水冷系统开启(CNC专用) M9:所有的冷却系统关闭(CNC专用) M10:吸尘系统开启(CNC专用) M11:吸尘系统关闭(CNC专用) M17:启动所有步进电机 M18:关闭所有步进电机 M20:读取SD卡根目录中的文件 读取SD卡根目录的文件并通过串口输出文件名。 M21:初始化SD卡 初始化SD卡。如果在机器通电时插入SD卡会默认初始化SD卡。开始其他SD卡功能时SD卡一定要先初始化。本命令相当于文件系统中执行Mount动作。 M22:卸载SD卡 卸载SD卡也就是执行Unmount动作。没有相关的参数。 M23:选择SD卡中的文件 选择一个SD卡上的文件。文件选择之后可以执行打印、删除等动作。 如M23 filename.gcode     ;选中filename.gcode文件 M24:开始打印SD卡中选中的文件 开始打印通过M23命令选中的文件。 M25:暂停SD卡打印 暂停打印通过M23命令选定的文件。 M26:设置当前文件的当前位置 设置当前文件的当前位置。参数为Snnn表示当前位置的字节数。 比如我要从当前文件的100字节开始写入数据那么就要先用本命令跳到100字节处。 M27:报告SD卡打印进度 获取SD卡打印进度。没有相关参数。 M27命令的输出格式为 SD printing byte 115181127578 这条命令供上位机获取当前的3D打印进度信息用于显示在电脑界面上。 M28:开始往SD卡文件中写入数据 接收到此命令后后续接收到的命令除了M29都会被当成数据写入该文件。 命令后面会跟着文件名如果文件不存在则会被创建如果存在则会被覆盖。接收到这条命令后后续接收到的命令都会被写入该文件中直到接收到M29命令。 如M28 filename.gcode    M29:停止往SD卡文件中写入数据 接收到此命令后后续接收到的命令要开始正常执行。 M30:删除SD卡中的文件 如M30 filename.gcode         ;删除filename.gcode文件 M32创建子目录 在SD卡上创建一个子目录。参数为filename表示待创建的子目录包含目录名以/分隔 以上所有SD卡相关指令都由固件配置 define SDSUPPORT 1 决定是否开启。如果固件不需要支持SD卡关闭这项固件配置可以节省不少内存空间。 M42直接读写端口 此命令直接读/写一个Arduino端口为3D打印控制软件上位机扩展程序功能提供基础。参数包括 Pnnn表示Arduino的输入/输出端口输出时固件程序会同时输出到数字端口和模拟端口输入时固件程序会从数字端口输入 Snnn表示写入输出端口的值0到255之间是合法的数字当S参数不存在的时候M42指令起输入作用 Repetier-firmware固件中预先定义了一个表格称为“敏感端口表格”所有位于这个表格内的端口也就是当前已经被步进电机、限位开关以及热敏电阻占用的端口都不能被M42命令影响。其他当前未占用的端口可以由这条命令进行IO操作。 M43: Stand by on material exhausted M82/M83设置挤出头步进电机坐标模式 与G90/G91命令类似这两条命令用于设置挤出头当前坐标模式为绝对坐标模式(M82)或者相对坐标模式(M83)。没有参数。 未设置时缺省值是绝对坐标模式。 需要注意的是G90/G91设置的坐标模式同时对XYZE四个轴起作用但M82/M83设置的坐标模式只对E轴挤出头步进电机起作用。 M84设置步进电机自动关闭时间 当3D打印机一段时间没有接收到步进电机运动指令之后3D打印机为了节能会自动关闭步进电机。使用M84指令可以设置这个自动关闭步进电机的时间。参数包括Snnn表示步进电机关闭的时间以秒为单位。 如果使用M84时没有指定S参数则步进电机会立即关闭。 M84命令的缺省值是360秒。在固件配置中缺省值由 #define STEPPER_INACTIVE_TIME 360L 控制。 M85设置3D打印机自动关闭时间 当3D打印机一段时间没有接收到指令之后3D打印机为了节能会自动关闭步进电机以及挤出头、热床等设备。使用M85指令可以设置这个自动关闭3D打印机的时间。参数包括Snnn表示在关闭步进电机之前步进电机没有活动的时间以秒为单位。 如果使用M85时没有指定S参数或者使用了S0参数则代表取消3D打印机自动关闭功能挤出头、热床等在工作完成之后一直会处于当前状态而不会被自动关闭。 M85命令的缺省值是0不自动关闭。在固件配置中缺省值由 #define MAX_INACTIVE_TIME 0L 控制。 M92: 设置AXIS_STEPS_PER_UNIT参数Sprinter和Marlin固件 设置步进电机移动1mm对应的脉冲数可脱机保存.。在校准的时候非常有用不用每次都修改程序然后重新下载。 参数包括 Xnnn表示X轴的分辨率 Ynnn表示Y轴的分辨率 Znnn表示Z轴的分辨率 Ennn表示E轴挤出机步进电机的分辨率 M98: 获取 axis_hysteresis_mm 参数 M99: 设置 axis_hysteresis_mm 参数Marlin固件 Example: M99 Xmm Ymm Zmm Emm 重新设置hysteresis值.。我们知道齿轮等机械结构在转换方向时候都会有滞后现象。你可以测量在他们在转换方向的时候有多长的距离是丢失掉的然后把它写入hysteresis值这样之后的转向运动机器将会进补偿运动来弥补这些误差。 M99暂时关闭步进电机其他 M99命令可以暂时关闭XYZ轴步进电机一段时间。命令参数包括 Snnn表示所需暂时关闭步进电机的时间以秒为单位 X表示暂时关闭X轴步进电机 Y表示暂时关闭Y轴步进电机 Z表示暂时关闭Z轴步进电机 如果S参数没有指定则暂时关闭10秒钟时间。暂时关闭时间到达之后重新打开相应轴的步进电机。 M104:设置挤出机喷头温度 设置挤出头的目标温度。执行这条命令后不需要等待达到这个温度控制板继续执行下一条G-code语句。相关参数包括 Snnn表示目标温度 Tnnn表示对应的挤出头 P表示要等待前面的指令完成之后再开始设置挤出头温度 Fnnn表示到达目标温度之后是否触发蜂鸣器。F1表示要触发 如果执行命令时没有带T参数则针对当前挤出头设置目标温度。 如M104 S190         ;将挤出机的温度设置为190度  M105: 获取当前温度单位℃ 获取当前温度值包括挤出头和热床的温度。相关参数包括 X表示输出ADC测量的原始值 M105命令的输出格式为 T:18.97 /0 B:18.75 /0 B:0 :0 可以看到T:之后的部分代表挤出头的当前温度/目标温度B:之后的部分代表热床的当前温度/目标温度。 在PID温度控制模式下B:后面的数字代表热床当前的输出强度是一个0~255的值:后面的数字代表挤出头当前的输出强度也是一个0~255的值。例子中挤出头、热床都处于关闭状态所以这个位置的值都是0。 M106: 打开风扇 如M106 S127        ;打开风扇半速。S表示 PWM值 (0-255). 可简单理解为风扇有0-255级强度可选其中 M106 S0 意味着风扇将被关掉。 在固件配置中定义 #define FEATURE_FAN_CONTROL 1 表示支持风扇控制功能在编译中会包含相关的代码。 M107: 关闭风扇 不推荐. 请用M106 S0 代替。 M108: 设置挤出机速度 设置挤出机电机的转速 (不推荐请使用 M113) M109: 等待挤出头加热达到目标温度 设置挤出头的目标温度并等待达到这个温度。相关参数包括 Snnn表示目标温度 Tnnn表示对应的挤出头 Fnnn表示到达目标温度之后是否触发蜂鸣器。F1表示要触发 如果执行命令时没有带T参数则针对当前挤出头设置目标温度。 如 M109 S185      ;等待挤出头加热到185度 M110: 设置当前的行码 设置当前行为第123行. 然后接下来会执行第124行的命令。 M111允许/禁止运行时调试标志 运行时调试标志是一组布尔值一共有6个不同的标志使用位域Bit Field的表示方式。用户可以利用M111指令修改这些标志的值。相关参数包括 Snnn表示直接将调试标志设置为S值 Pnnn表示以位操作的方式将P值与当前调试标志做某种操作。如果P值是正数则进行按位或操作增加P参数所带的标志位如果P值是负数则忽略P的符号进行取反后按位与操作去除P参数所带的标志位 调试标志的位域由以下6个布尔值组成 第1位值为1表示是否回显Echo由上位机发送至下位机的命令 第2位值为2表示是否输出信息Info实际在固件代码中并未使用 第3位值为4表示是否输出错误Error在固件出错时会将出错信息发送回上位机 第4位值为8表示是否进入模拟执行模式Dry run在模拟执行模式下3D打印机不实际执行上位机发送的命令只修改3D打印机的内存状态 第5位值为16表示是否进入调试通讯模式Communication实际在固件代码中似乎并未使用 第6位值为32表示是否进入禁止移动模式No Move在这个模式下所有对步进电机的移动命令都会被忽略 M112: 紧急停止 所有进行中的动作都会被立即终止然后关掉Reprap. 所有电机和加热器都会被关掉. 可以按Reset按钮板上以重启.  M113: 设置挤出机的 PWM M114: 获取挤出头当前位置 输出挤出头当前位置。没有相关的参数。 M114命令的输出格式为 X:20.00Y:30.00Z:10.000E:0.0000 M115: 获取3D打印机信息 输出3D打印机信息。没有相关的参数。 M115命令的输出格式为 FIRMWARE_NAME:Repetier_0.92.3FIRMWARE_URL:…Printedfilament:0.00mPrintingtime:0days0hours0minSpeedMultiply:100FlowMultiply:100 第一行是固件的版本信息很长没有列完整。第二行是已经打印了多少米耗材打印时间是几天几小时几分钟。第三行是速度系数参考M220命令。第四行是流率系数参考M221命令。 M116: 等待温度达到目标温度 等待所有挤出头/热床到达由之前的M104/M140指令所指定的目标温度。没有相关参数。 M117: 在液晶上显示消息 如M117 Hello World        ;在液晶上显示Hello World M118: Negotiate Features M119: 输出限位开关状态 将当前限位开关状态输出。没有相关的参数。 M119命令的输出格式为 endstopshit:x_min:Ly_min:Lz_min:L 列出了XYZ三个轴的低位限位开关的当前状态。L代表限位开关没有触发。H代表限位开关被触发了。 M120测试蜂鸣器 使蜂鸣器发出蜂鸣声。参数为 Snnn表示发出声音/不发出声音的时间以毫秒为单位 Pnnn表示重复的次数 如果3D打印机有蜂鸣器而且是无源蜂鸣器那么通过S参数和P参数的组合可以得到不同频率的声音。比如 M120 S24 P8 可以得到一个较长的蜂鸣声。如果3D打印机的蜂鸣器是有源蜂鸣器那么M120指令只能控制蜂鸣时间不能控制蜂鸣器的声音频率。M121: Pop M126: Open Valve M127: Close Valve M128: Extruder Pressure PWM M129: Extruder pressure off M130: 设置 PID P 值 M131: 设置 PID I 值 M132: 设置 PID D 值 M133: Set PID I limit value M134: Write PID values to EEPROM M136: Print PID settings to host M140 设置热床目标温度 设置热床的目标温度。执行这条命令后不需要等待达到这个温度立即开始执行下一条G-code语句。相关参数包括 Snnn表示目标温度 Fnnn表示到达目标温度之后是否触发蜂鸣器。F1表示要触发 M141: Chamber Temperature (Fast) M142: Holding Pressure M143: 设置最大热头温度 M160: Number of mixed materials M190: 等待热床加热达到目标温度 设置热床的目标温度并等待达到这个温度。相关参数包括 Snnn表示目标温度 Fnnn表示到达目标温度之后是否触发蜂鸣器。F1表示要触发 M200设置体积挤出模式 将3D打印机设置为“体积挤出模式”同时设定挤出头直径参数。相关参数包括 Tnnn表示对应的挤出头无T参数表示使用当前挤出头 Dnnn表示挤出头的实际直径无D参数表示关闭体积挤出模式 体积挤出模式是相对于缺省的“长度挤出模式”而言的另一种挤出模式。在常见的“长度挤出模式”下G-code中的使E轴运动的G0/G1命令其参数都是以长度单位mm作为单位的。这样确实比较简单但问题是我们在切片的时候就必须知道要使用的喷头直径否则无法计算出耗材前进的实际长度。 为了使G-code在生成之后适用于多种不同喷头直径的3D打印机机型我们可以在上位机切片时将E轴参数变为以体积单位mm3作为单位然后在下位机固件中再设定正在使用的喷头直径以达到最终正确输出的目的。为了以体积单位mm3作为E轴的参数单位上位机需要将喷头直径设定为1.128mm这样耗材每前进1mm会喷出1mmπ(1.128mm/2)2约等于1mm3的耗材。同时下位机要使用下面的语句 M200 T0 D0.4 将实际的挤出头喷头直径设置为0.4mm。同时在上位机和下位机进行这样的操作之后3D打印机可以在E轴参数单位为mm3的情况下正确完成打印操作。 M201/M202设置最大加速度 这两条命令设置打印加速度。包括挤出头工作时打印中的运动加速度M201以及挤出头不工作时移动中的运动加速度M202。参数为 Xnnn表示X轴的加速度 Ynnn表示Y轴的加速度 Znnn表示Z轴的加速度 Ennn表示E轴的加速度 在固件配置中定义 #define RAMP_ACCELERATION 1 表示支持加速度功能在编译中会包含相关的代码。 M203监控温度 使用串口输出监控3D打印机的温度。参数为 Snnn表示是否监控S0关闭监控S1打开监控 当监控处于打开状态可以从串口定时获取当前的温度信息。 监控输出格式与M105命令的输出结果完全一致。 M204设置PID参数 设置挤出头温度控制的PID参数命令参数为 Snnn表示对应的挤出头无S参数表示使用当前挤出头 Xnnn表示P参数 Ynnn表示I参数 Znnn表示D参数   M207修改抖动(Jerk)值 修改当前的最大抖动值。命令参数为 Xnnn表示XY轴的最大抖动值 Znnn表示Z轴的最大抖动值 Ennn表示E轴的最大抖动值 XY轴抖动指的是3D打印机同时在X轴和Y轴上移动时产生的和速度最大值。比如3D打印机加热头正在向X轴正方向全速移动下一条指令变为向Y轴正方向移动。如果同时在X轴和Y轴上改变速度那么实际产生的速度是X方向的速度和Y方向的速度的向量和这个比较大的速度变化值会对3D打印机的机械部件产生不利的影响而且会造成比较大的噪音。这里的设置就限制了这个XY轴上和速度的最大值。当然这个值也不能设置的太小太小的话首先打印速度会变得很慢而且打印会产生更多的瑕疵。 Z轴抖动与XY轴抖动意义类似不同点是Z-Jerk是Z轴方向不为0的抖动速度值。因为这项涉及到Z轴的运动因此最大速度就低多了。 M207命令的输出格式为 Jerk:20.00ZJerk:0.30 这个输出意义很简单表示XY轴抖动速度为20mm/sZ轴抖动速度为0.3mm/s。 M208: 设置XYZ轴行程的限制 M209开启/关闭自动回抽 开启/关闭自动回抽功能。命令参数为 Snnn表示是否开启自动回抽功能1表示开启0表示关闭 通常上位机切片器负责在合适的位置处加入回抽指令。如果你的切片器功能比较弱不能加入合适的回抽指令那么可以打开这个特性由固件自动回抽。 在固件配置中定义 #define FEATURE_RETRACTION 1 表示支持自动回抽功能在编译中会包含相关的代码。 M220设置速度 设置3D打印机运行速度系数。命令参数为 Snnn表示系数是一个百分数如果S参数不存在则使用缺省值100 3D打印机运行速度系数是一个在25%到500%范围内变化的值。这个系数值在3D打印机运行过程中与切片器给出的3D打印机运动速度基础值相乘得到最终的3D打印机实际运动速度值。 M220命令的输出格式为SpeedMultiply:100 M221设置流率 设置3D打印机的流率系数Flow rate。命令参数为 Snnn表示系数是一个百分数如果S参数不存在则使用缺省值100 3D打印机流率系数是在上位机切片软件通过耗材直径、喷头直径、层高以及3D打印速度等因素综合计算得到的E轴运动速度的基础上叠加的一个E轴运动速度系数。简单地说就是控制挤出头耗材挤出量的多少。这个系数可以在25%到500%范围内变化。 M221命令的输出格式为FlowMultiply:100 M226: Gcode Initiated Pause M227: Enable Automatic Reverse and Prime M228: Disable Automatic Reverse and Prime M229: Enable Automatic Reverse and Prime M230: Disable / Enable Wait for Temperature Change M240: Start conveyor belt motor / Echo off M241: Stop conveyor belt motor / echo on M245: 打开风扇 M246: 关闭风扇 M251将当前Z轴位置保存为Z轴高度值 这条命令可以将当前的Z轴位置保存为Z轴高度值以使前面的Z轴高度手动/自动测量的结果起作用。通常M251命令只工作在三角洲机型上并且应该与G29命令联合使用自动测量Z轴高度。这条命令没有相关的参数。 当3D打印机打开EEPROM支持时这条命令还会将Z轴高度值同时保存在EEPROM中。 只有当固件配置定义 #define Z_HOME_DIR -1 也就是Z轴向正方向归位并且定义 #define MAX_HARDWARE_ENDSTOP_Z true 也就是存在硬件的Z轴高位限位开关时M251命令才会在编译中包含相关的代码。 通常只有三角洲类型的3D打印机才能满足这两个条件限制。 M280多头重复打印模式设置 有些特殊配置的3D打印机允许2~4个挤出头同时工作并且这些挤出头动作完全一致同时打印出多件完全一样的打印件这种工作模式叫做多头重复打印模式Ditto mode。M280命令对这个模式进行设置。命令参数为 Snnn表示这个模式下的挤出头个数S0表示关闭多头重复打印模式S1S3表示工作在多头重复打印模式下并且3D打印机拥有额外的13个挤出头。 在固件配置中定义 #define FEATURE_DITTO_PRINTING 1 表示支持多头重复打印模式功能在编译中会包含相关的代码。 M281测试硬件看门狗功能 这条命令用于测试CPU硬件中的看门狗功能。实际上就是造成一个死循环不再执行“喂狗”动作从而触发CPU硬件看门狗最终故意地造成3D打印机重启。这条命令只是用于3D打印机固件开发测试。 M300: 播放提示音 M301: Set PID parameters - Hot End M302设置是否允许冷挤出 为了保护3D打印机的挤出头通常设置下E轴的运动必须在挤出头加热到一定温度之后才被允许。在挤出头冷却的情况下所有的E轴运动命令是被3D打印机固件忽略的。但有些情况下我们需要在挤出头冷却的情况下运动E轴这时可以通过M302命令进行设置。命令参数为 Snnn表示是否允许冷挤出S0表示不允许S1表示允许没有S参数缺省表示允许 M302命令的输出为当前是否允许冷挤出。允许时会输出Cold extrusion allowed 不允许时会输出Code extrusion disallowed M303自动测试PID参数 自动测试PID参数值。命令参数为 Pnnn表示待测试的挤出头编号从0开始P挤出头个数代表待测试的是热床 Snnn表示打印温度 Rnnn代表重复测试次数 X代表是否保存于EEPROM中 由于加热、散热需要较多时间这条命令执行时间很长。 M304: Set PID parameters - Bed M320/M321开启/关闭自动调平 开启(M320)或者关闭(M321)自动调平功能使自动调平转换矩阵起作用或不起作用。命令参数为Snnn表示是否保存于EEPROM没有S参数或者S0表示不保存于EEPROMS1表示保存于EEPROM在关闭自动调平(M321)命令中S3表示将自动调平矩阵清零且保存于EEPROM中 M320的输出结果为 Info:Autolevelingenabled 表示自动调平已经打开。 M321的输出结果为 Info:Autolevelingdisabled 表示自动调平已经关闭。 M322清零自动调平转换矩阵 清零(M322)自动调平转换矩阵。显然清零这个动作的同时自动调平功能也关闭了。命令参数为Snnn表示是否保存于EEPROMS0表示不保存于EEPROMS1表示保存于EEPROM 也就是说M321 S3命令等价于M322 S1命令两者都是清零自动调平矩阵关闭自动调平功能并且将这个设置保存于EEPROM之中。 以上三条命令与G32命令相同由固件配置 #define FEATURE_AUTOLEVEL 1 决定是否开启。 M322的输出结果为 Info:Autolevelmatrixreset 表示自动调平转换矩阵已经被清零。 M330测试蜂鸣器 测试无源蜂鸣器产生一个特定频率的声音。命令参数为 Snnn表示声音的频率 Pnnn表示声音持续的时间以毫秒为单位 如果命令没有包含S参数或者P参数则会使用缺省值S1以及P1000。 M400等待当前所有移动指令完成 等待在3D打印机内存中待处理的移动命令执行完成。没有相关的参数。 执行这条语句之后可以保证在下一条G-code命令执行时所有步进电机都不处于运动状态中。 M401保存当前的位置 将当前位置包括XYZE步进电机保存于内存的一组专用变量中。未来可以用M402命令恢复这组位置。没有相关的参数。 M402恢复之前保存的位置 恢复之前由M401命令保存的位置值。命令参数为 X表示恢复X位置 Y表示恢复Y位置 Z表示恢复Z位置 E表示恢复E位置 Fnnn表示使用参数给定的速度无F参数时使用当前速度值 M600更换耗材 在拥有显示屏的3D打印机上启动更换耗材向导界面。没有相关的参数。 通常这个向导界面是从显示屏界面上触发的。M600命令提供一个接口使更换耗材向导界面可以从上位机软件触发。 M601暂停/恢复挤出头 暂停或者恢复挤出头。命令参数为 Snnn表示暂停或者恢复S1表示暂停挤出头S0表示恢复挤出头工作 暂停挤出头包括停止挤出头加温以及停止挤出头步进电机工作。恢复则相反加热挤出头到原来的温度。 T: 设置当前挤出头 对于拥有多个挤出头的3D打印机来说需要使用T命令选择当前工作的挤出头。这条命令的参数值直接跟在T后面即可。例如 T0表示选择第一个挤出头 T1表示选择第二个挤出头 参数是T命令最特殊的一点。这与其他所有的G-code命令都不相同。 四、辅助步进电机命令 一些3D打印机的机械设计会在XYZE四个步进电机轴之外使用更多的辅助步进电机。Repetier-firmware提供了一套辅助步进电机指令让用户以及上位机软件可以操作这些辅助步进电机。由于辅助步进电机的用途、参数各异为了让这套指令更加通用这些指令被设计为非常简单的形式。 G201移动步进电机位置 将步进电机P的位置移动到X位置处。参数包括 Pnnn表示第P个辅助步进电机 Xnnn表示这个步进电机的目标位置 这条命令与G1命令非常类似。 G202设置当前位置 将X位置设置为步进电机P的当前位置。不实际移动步进电机。参数包括 Pnnn表示第P个辅助步进电机 Xnnn表示这个步进电机的当前位置 这条命令与G92命令非常类似。 G203报告当前位置 报告步进电机P的当前位置。参数包括 Pnnn表示第P个辅助步进电机 这条命令与M114命令非常类似。 G203 开启/关闭步进电机 用于开启/关闭步进电机P。参数包括 Pnnn表示第P个辅助步进电机 Snnn表示开闭标志S0表示关闭步进电机S1表示开启步进电机 步进电机开启后有两种可能的状态。一种是“运动”状态也就是正在进行正向或反向的旋转。另一种是“保持位置”状态也就是保持当前的位置不变。虽然步进电机关闭也不会主动移动位置但“保持位置”状态与步进电机关闭状态仍有显著的区别。“保持位置”状态下当步进电机受力时会产生一个反向的力矩使步进电机位置保持不变。 这条命令与“节能管理”一节中的M84命令有关。M84命令用于关闭XYZE步进电机但不能打开这些步进电机。 五、设置与EEPROM管理 固件的设置是一个比较有趣的话题很多玩3D打印机的朋友在遇到设置相关的问题时都会犯迷糊。实际上对于某一项特定的设置比如说X轴的步进电机分辨率在3D打印机主板上有三个不同的位置也是三种不同的存储器保存了这项内容而它们的值还有可能不同。让我们先来了解一下这些保存设置内容的位置以方便大家的理解。 首先是固件配置文件configuration.h中的设置值。配置文件中的值会跟随固件一起编译之后在刷机过程中保存在了3D打印机的静态存储区Flash ROM中。除了刷机之外静态存储区的内容不会发生变动可以认为是只读的。每次开机的时候都是一样的值在等待着我们。 第二份设置值保存在电可擦写静态存储区EEPROM。EEPROM的读写代价比静态存储区要小。因此3D打印机允许在刷机之后修改设置值而这些修改之后的设置值就存储在EEPROM之中。每次开机程序会先检查EEPROM如果EEPROM中是空白的则将静态存储区的第一份设置值复制到EEPROM之中。而如果EEPROM中已经有保存好的设置值则程序会直接使用EEPROM中的值。有些朋友在玩3D打印机过程中可能会有这样的经验就是明明修改了固件配置文件中的设置值但刷机之后竟然没有发生变化。这种情况往往就是EEPROM在捣鬼了。我们完全可以使用G-code M502 M500两条指令指令的具体含义可以参考下面重写EEPROM解决这样的问题。 第三份设置保存在内存RAM中。实际用户使用的值就是内存中的值。由于内存只在加电情况下能够保持其中的内容因此每次开机时3D打印机会根据上面描述的逻辑重建内存中的设置值。如果某条指令修改的是内存中的设置值那么这也代表着这次修改是一个临时修改下次开机这个值就会消失了。 总的来说三份固件设置使用的优先级是 内存 EEPROM 配置文件 但设置的持久性就要反过来了。明确了解了这些特别有助于我们解决一些与设置相关的问题自然看下面这些命令描述的时候也就不会迷糊了。 M205输出EEPROM设置 输出EEPROM的当前设置值表格。没有相关的参数。 M205命令的输出格式为 EPR:275 115200BaudrateEPR:3129 0.000Filamentprinted[m]EPR:2125 0Printeractive[s]… 这是一个很长的输出我们这里只截取了前三行。每行中EPR:后面的第一个数字是这个设置项值的类型。0代表8bit整数类型1代表16bit整数类型2代表32bit整数类型3代表32bit浮点类型。第二个数字是设置项值的位置即EEPROM中的地址。第三个数字是设置项的值。最后是设置项的意义。 以第一行为例第一行设置的是通讯波特率Baudrate当前值是115200。波特率设置项在EEPROM中的位置地址是75这个值是一个32bit整数类型因此占据了从位置75开始的连续4个字节也就是位置75, 76, 77, 78。 M206修改EEPROM设置 修改EEPROM中的某个值。命令参数为 Pnnn表示待修改的值的位置即EEPROM中的地址 Tnnn表示值的类型0代表8bit整数类型1代表16bit整数类型2代表32bit整数类型3代表32bit浮点类型 Snnn表示值只能带整数用于T为0, 1, 2的情况 Xnnn表示值只能带浮点数用于T为3的情况 可以看出M206指令的使用是很复杂的需要了解EEPROM中数值的存储位置以及数值类型才能进行有效的修改。因此小编建议除非你完全理解M206指令的含义否则不要使用这个指令。 M360输出固件配置信息 输出固件配置信息。没有相关参数。 M360命令的输出格式为 Config:Baudrate:115200Config:InputBuffer:127Config:NumExtruder:1… 这是一个很长的输出我们这里只截取了前三行。每行中都有一项配置信息的名称以及对应的值。 M500保存内存中的设置值到EEPROM 将3D打印机内存中的设置值保存到EEPROM中。没有相关的参数。 M501读取EEPROM的设置值到内存 将EEPROM中的设置值读取到3D打印机内存中。没有相关的参数。 M502将内存中的设置值重置 将内存中的设置值重置为固件配置configuration.h中的值。没有相关的参数。 由于每次系统掉电后内存中的值都会消失重新启动时从EEPROM中读取因此单独使用M502命令将只对3D打印机掉电重启之前起作用。如果想起长期作用需要配合M500将设置值保存到EEPROM中。 六、步进电机参考电压调节 目前市面上支持软件设置步进电机参考电压的3D打印机主板很少。大部分3D打印机主板只能通过调整微调电位器来控制步进电机参考电压。在这些3D打印机上这一组命令是无效的。 M907设置步进电机参考电压百分比值 设置步进电机参考电压。命令参数为 Snnn表示对所有步进电机进行统一设置 Xnnn表示对X轴步进电机进行设置 Ynnn表示对Y轴步进电机进行设置 Znnn表示对Z轴步进电机进行设置 Ennn表示对E轴步进电机进行设置 所有的参数值都是一个0~100之间的百分比数值。 M908设置步进电机参考电压 与M907命令类似设置步进电机参考电压。命令参数为 Pnnn表示步进电机编号 Snnn表示步进电机参考电压设置值要求为0~255之间的一个数值 这个命令与M907命令类似同样要求3D打印机主板支持。在不支持软件调整参考电压的3D打印机主板上M908命令无效。 M909输出步进电机参考电压值 输出当前的步进电机参考电压值。没有相关的参数。 M910将步进电机参考电压值保存至EEPROM 将M907/M908命令设置的步进电机参考电压值保存至EEPROM。没有相关的参数。 七、需要辅助硬件支持的指令 M80/M81打开/关闭ATX电源 在配置了ATX电源的3D打印机上打开(M80)或者关闭(M81)ATX电源。没有相关的参数。 M340伺服电机控制 伺服电机控制功能。命令参数为 Pnnn表示伺服电机编号从0开始最大为3可以控制4个伺服电机 Snnn为控制时间单位为毫秒应该是一个500到2500之间的数值 Rnnn为自动关闭时间单位为毫秒 M350设置步进电机细分数 在支持细分数设置的3D打印机主板上这类主板很少见设置步进电机细分数。命令参数为 Snnn表示将细分数的每一位bit都设置为相同的值S0表示所有都设置为0S1表示所有都设置为1 Xnnn表示设置细分数第0位 Ynnn表示设置细分数第1位 Znnn表示设置细分数第2位 Ennn表示设置细分数第3位 Pnnn表示设置细分数第4位 需要注意的是在大多数3D打印机主板上细分数设置是主板硬件设计时就固定的不能通过软件调整。这种情况下M350命令无效。 M355设置照明灯开关 设置照明灯的开关。命令参数为 Snnn表示照明灯的开关状态S0表示关闭照明灯S1表示打开照明灯 无参数时输出当前照明灯的状态。 在固件配置中定义 #defineCASE_LIGHTS_PIN -1 表示照明灯的电路硬件连接pin值-1代表照明灯未连接。 M355命令的输出为当前是否打开了照明灯。打开时会输出 Caselights on 关闭时会输出 Caselights off 参考 1、https://www.baidu.com/link?urlbszFzxZ32hnxvH9RulYAwVGtKAyoMFRhnC53ipsvZs5DopdZ_2W3P7glJ2TjzHOpwdeqidb24f850900187bb3000000035de9b34d 2、Gcode命令【转】 - 3D入魔 - 博客园 3、G Codes