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

Reply via email to