public override void home(Homing homing_state) { // Always home XY together var homing_axes = homing_state.get_axes(); var home_xy = homing_axes.Contains(0) || homing_axes.Contains(1); var home_z = homing_axes.Contains(2); var updated_axes = new List <int>(); if (home_xy) { updated_axes.Add(0); updated_axes.Add(1); } if (home_z) { updated_axes.Add(2); } homing_state.set_axes(updated_axes); // Do actual homing if (home_xy) { this._home_axis(homing_state, 0, this.rails[0]); } if (home_z) { this._home_axis(homing_state, 2, this.rails[1]); } }
public override void home(Homing homing_state) { // Each axis is homed independently and in order foreach (var axis in homing_state.get_axes()) { if (axis == this.dual_carriage_axis) { var dc1 = this.dual_carriage_rails[0]; var dc2 = this.dual_carriage_rails[1]; var altc = this.rails[axis] == dc2; this._activate_carriage(0); this._home_axis(homing_state, axis, dc1); this._activate_carriage(1); this._home_axis(homing_state, axis, dc2); this._activate_carriage(altc ? 1 : 0); } else { this._home_axis(homing_state, axis, this.rails[axis]); } } }
public override void home(Homing homing_state) { // Each axis is homed independently and in order foreach (var axis in homing_state.get_axes()) { var rail = this.rails[axis]; // Determine movement var _tup_1 = rail.get_range(); var position_min = _tup_1.X; var position_max = _tup_1.Y; var hi = rail.get_homing_info(); var homepos = new List <double?> { null, null, null, null }; homepos[axis] = hi.position_endstop; var forcepos = homepos.ToList(); if ((bool)hi.positive_dir) { forcepos[axis] -= 1.5 * (hi.position_endstop - position_min); } else { forcepos[axis] += 1.5 * (position_max - hi.position_endstop); } // Perform homing double?limit_speed = null; if (axis == 2) { limit_speed = this.max_z_velocity; } homing_state.home_rails(new List <PrinterRail> { rail }, (forcepos[0], forcepos[1], forcepos[2], forcepos[3]), (homepos[0], homepos[1], homepos[2], homepos[3]), limit_speed); } }
public void cmd_G28(Dictionary <string, object> parameters) { // Move to origin var axes = new List <int>(); foreach (var axis in "XYZ") { if (parameters.ContainsKey(axis.ToString())) { axes.Add(axis2pos[axis.ToString()]); } } if (axes.Count == 0) { axes.Add(0); axes.Add(1); axes.Add(2); } var homing_state = new Homing(this.printer); if (this.is_fileinput) { homing_state.set_no_verify_retract(); } try { homing_state.home_axes(axes); } catch (Exception ex) { throw new GCodeException("", ex); } foreach (var axis in homing_state.get_axes()) { this.base_position.Set(axis, this.homing_position.Get(axis)); } this.reset_last_position(); }