On 03/05/2018 09:41 AM, andy pugh wrote:
On 5 March 2018 at 14:17, Mark <wendt.m...@gmail.com> wrote:

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?
As I wrote the lincurve component its operation is so obvious to me
that I don't even understand the question.

Having written a ton of Ada, C, and other codes, that is the developers main problem.  They understand the operation quite well, since they were the one's that wrote the code to do that.  That's why a crap ton of documentation out there in the code and help files really sucks.  The folks that go to try and use the code are not in the developer's mind, and sparse documentation does little to help them understand how to utilize the code correctly and fully.  I've been guilty of that in the past when I was heavily coding at my old job as a sysadmin at the Naval Research Lab in DC.  It took a few knuckle beatings from the boss to make me write my documentation so that the reader new what was in my mind and how to use the code.

At any rate, what the question above is asking, does the correction happen while the X axis is moving to smoothly blend the adjustment, or does it try to jump to the correction without blending the two axis's moves?


lincurve just maps an input value to an output value, using an
imaginary graph of points linked by straight lines.
So for an X value between two X points it linearly interpolates
between the two corresponding Y values.

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.
If you have 25 points to map then it is a bit tricky as lincurve only
has 16 points.
You can skip some, though, if they all have the same offset.

Yes, there are groups of X axis stations that have the same offset. What I'm trying to figure out is how to map those X axis coordinates that are in that group.  If the X axis stations between say 15 and 25 are all the same, but the next group of X axis stations which are the same between 26 and 31 are different than the previous group, how would I map that between the x,y coordinates in the lincurve statements?


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?
The set of "setp" commands that define the (x,y) pairs.

Okay, I can do that, I think.  How is that called out then in the original HAL file? Or is that done in the ini file?


  Speaking of HAL, is
the placement order in the main HAL file for something like this going to
bite me
If the curve definition HAL file is separate then it needs to be
loaded after the file that loads the lincurve component, or there
won't be any parameters to setp.

Understood.  What I mean is, does it matter where the lincurve component is loaded in the main HAL file, or should the lincurve component with the definitions be in a separate file and called out in the ini file?  It's been a good many years since I've had to work with HAL stuff, so I'm a bit rusty.

Thanks again 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

Reply via email to