From: Bas de B. <bde...@lu...> - 2014-01-15 16:02:13
|
On 15 Jan 2014, at 15:52, Charles Steinkuehler <ch...@st...> wrote: > On 1/15/2014 7:55 AM, Bas de Bruijn wrote: >> >> Hi Charles, >> >> I’d like to support you with testing/adding to the lineardeltakins >> types of 3D printer. I recently added rudimentary M109 and M106 in >> the linuxcnc/nc_files directory. > > Yes, there will be an example of a lineardeltakins configuration in the > next release. This is long overdue. > >> During calibrating I noticed that i should add a variable to change >> height of the home position in real time. Now i change >> lineardeltakins.L (rod length) and lineardeltakins.R (radius) via a >> halcmd in the terminal when tuning the printer. This is needed for >> getting straight movement in the plane, instead of convex/concave >> movement. Nice about it is that the position gets adjusted in real >> time. very nifty and fast for calibrating, no homing in between. >> >> The heights of the end positions are still adjusted via the .ini file >> and i’d like to change them in real time to find the correction, and >> then once adjust the values in the .ini file. Because changing them >> means reloading linuxcnc. >> >> in addition to the Pinout/Driver board let’s add BeBoPr++ too. > > I believe the BeBoPr++ uses the same pins as the BeBoPr+ which is the > same as the BeBoPr-Bridge, so hopefully one configuration will work with > all of them, but I don't have details yet. > > As for the end positions, some things cannot be changed at runtime via > HAL (apparently some really old stuff that pre-dates HAL and never got > migrated to HAL signals/parameters). But you may be able to do what you > want using G92 offsets. You should at least be able to use G92 to do a > bit more testing between re-launches of LinuxCNC. I’m not trying to hijack this thread but I’ll try to explain what I have in mind. I use G92 to set the offset the nozzle from the bed. I have not found a way yet to change the homing height, that pin is not writable. The homing height is important and have effect on the delta radius. so when i calibrate a machine i need to do a few iterations. for now it’s not a problem, but in the future i hope to calibrate more machines per day (and I’m a lazy guy) I propose to add calibration functionality in the kinematics module (need to compile and test it though) in lineardeltakins.c something like int kinematicsForward(const double * joints, EmcPose * pos, const KINEMATICS_FORWARD_FLAGS * fflags, KINEMATICS_INVERSE_FLAGS * iflags) { set_geometry(*haldata->r, *haldata->l, *haldata->off_B_wrt_A, *haldata->off_C_wrt_A); return kinematics_forward(joints, pos); } int kinematicsInverse(const EmcPose *pos, double *joints, const KINEMATICS_INVERSE_FLAGS *iflags, KINEMATICS_FORWARD_FLAGS *fflags) { set_geometry(*haldata->r, *haldata->l, *haldata->off_B_wrt_A, *haldata->off_C_wrt_A); return kinematics_inverse(pos, joints); } int rtapi_app_main(void) { ….. ….. if(retval == 0) retval = hal_pin_float_newf(HAL_IN, &haldata->r, comp_id, "lineardeltakins.R"); if(retval == 0) retval = hal_pin_float_newf(HAL_IN, &haldata->l, comp_id, "lineardeltakins.L"); if(retval == 0) retval = hal_pin_float_newf(HAL_IN, &haldata->off_B_wrt_A, comp_id, "lineardeltakins.off_B_wrt_A"); if(retval == 0) retval = hal_pin_float_newf(HAL_IN, &haldata->off_C_wrt_A, comp_id, "lineardeltakins.off_C_wrt_A"); if(retval == 0) { *haldata->r = DELTA_RADIUS; *haldata->l = DELTA_DIAGONAL_ROD; *haldata->off_B_wrt_A = 0; *haldata->off_C_wrt_A = 0; } and then in lineardeltakins-common.h i can take these offset heights to narrow down the offset height during calibration. Then when i have written them down i need to change the .ini file once for everything. radius, rod length and homing heights. that way i could calibrate everything in one go, via Axis and halcmd in a terminal. > > -- > Charles Steinkuehler > ch...@st... > > ------------------------------------------------------------------------------ > CenturyLink Cloud: The Leader in Enterprise Cloud Services. > Learn Why More Businesses Are Choosing CenturyLink Cloud For > Critical Workloads, Development Environments & Everything In Between. > Get a Quote or Start a Free Trial Today. > http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk_______________________________________________ > Emc-developers mailing list > Emc...@li... > https://lists.sourceforge.net/lists/listinfo/emc-developers |