On Monday 05 March 2018 09:17:00 Mark wrote: > On 03/05/2018 08:56 AM, andy pugh wrote: > > On 5 March 2018 at 13:07, Mark <wendt.m...@gmail.com> wrote: > >> I'm leaning towards lincurve. In order to utilize that, I've got > >> to upgrade linuxcnc to a bit new version. > > > > That's not strictly necessary, the file is a standalone module, you > > could just download the comp file and > > sudo comp --install lincurve.comp > > https://github.com/LinuxCNC/linuxcnc/blob/master/src/hal/components/ > >lincurve.comp Right-Click the "Raw" button and "Download file as..." > > Probably better to upgrade to the current version anyway. v2.5.5 is > getting pretty long in the tooth, and the improvements added to the > newer version might well be welcome. > > > But: To use the external offsets you need to run the experimental > > external-offsets branch, and it isn't a standard LinuxCNC version. > > You might be able to get it from the buildbot. But you would need > > someone else who knows their way around the buildbot to find the > > .deb if it exists (I just build from source) > > When I built the machine and configured linuxcnc we sorta had to jump > through hoops to get the configuration set up the way it was needed > for the operations it did. Changing to something like that might mean > a whole re-write of the hal code that I got a lot of help on from some > very kind folks on the IRC. > > > You can use the "offset" HAL component though, so all is not lost. > > You can even use both with your 2.5.5 install > > http://linuxcnc.org/docs/2.7/html/man/man9/offset.9.html > > I'll look into that one too. Thanks for the info. > > >> I couldn't find any examples of lincurve in use and the man page is > >> a bit thin on how to actually implement it. Also, the man page > >> mentions x,y coordinates. > > > > Those refer to the axes of the imaginary graph paper that lincurve > > is drawn on. You can use any input at all, and do anything at all > > with the output. This is HAL. > > You set the curve up (rather clunkily) in HAL. If X = 0 is nominal > > and X = 3" is 5 thou high: > > setp lincurve.0.x-val-00 0 > > setp lincurve.0.y-val-00 0 > > setp lincurve.0.x-val-01 3 > > setp lincurve.0.y-val-01 -0.005 > > > > and so-on. > > Okay, so how do I translate the 'y-val' to the Z axis position? I may > have mentioned I'm a tad weak on hal coding since I haven't done it in > ages. Looking at those lines above, I'm guessing that the Z axis > would "curve" between station 0 to station 1 to accommodate the -0.005 > difference? > > If that is true, how would I map say something like this: stations 0 > - 5 are the median height. Stations 6 through 15 are .003" high. > Stations 16 through 25 are .002" low and so on. The values of > deviance from the mean table height are rather nicely grouped with > maybe one or two .001" deviations in the mix, but I'm not going to > worry about that. > > > You might want to keep the curve definition in a separate HAL file > > for convenience. > > You lost me on this one. What is the curve definition? Speaking of > HAL, is the placement order in the main HAL file for something like > this going to bite me if it's put in too early or late in the > declarations? I remember Gene having issues with some of his HAL code > by coding something in too early or too late in the file. > That was in the addf order Mark, the only place in a halfile where order is important. There, for most uses, you want the order to be such that even in a 10 module chain, the calculations "fall thru" so that the results are ready at the end of the servo threads individual cycle. So you wind up with a halfile that starts with the loadrt or loaduser statements, then a list of addf's, followed by the sets's, setp's, net's, and other rules that tie all the logic together. Order is not important, so I tend to group that stuff into functions as much as possible so its easier to read and follow what its doing. One can also instantiate a slower thread, which I've done with the jog wheel stuff in the pi driving the Sheldon lathe.
There are of course creative exceptions to that rule. And I had forgotten about the offset module, which replaces the sum2's I mentioned with a single module to do the same thing. > Thanks again for your help Andy. > > Mark > > ---------------------------------------------------------------------- >-------- Check out the vibrant tech community on one of the world's > most engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > Emc-users mailing list > Emc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emc-users -- Cheers, Gene Heskett -- "There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order." -Ed Howdershelt (Author) Genes Web page <http://geneslinuxbox.net:6309/gene> ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users