www.gusucode.com > mbcdata 工具箱 matlab 源码程序 > mbcdata/@calibrationdata/@visionv2interface/getAxis.m

    function axis = getAxis(obj, identifier)
%GETAXIS  Get axis from calibration.
%
%  AXIS = GETAXIS(CAL,IDENTIFIER) gets the axis with identifier IDENTIFIER
%  from the calibration CAL.
%
%  See also GETVALUE, GETCURVE, GETMAP, GETITEM.

%  Copyright 2000-2010 The MathWorks, Inc.


% Get matching interface
[iAxis, axisDir] = pGetIAxis(obj, identifier);

% Construct object(s)
nAxes = numel(iAxis);
axis = mbcutils.handleArray(nAxes, 1); % preallocate
if ischar(identifier),
    identifier = {identifier};
end
for i = 1:nAxes,
    try
        axis(i) = iAxis2Axis(iAxis(i), axisDir{i}, identifier{i}, obj);
    catch ME
        error(message('mbc:calibrationdata:visionv2interface:FileReadError', identifier{ i }, phGetShortIdentifier( obj, iAxis( i ).FullDataItemName ), ME.message));
    end
end

% -------------------------------------------------------------------------

function axis = iAxis2Axis(iAxis, axisDir, identifier, obj)

% Construct axis object
axis = calibrationdata.axis;
axis.Identifier = identifier;
axis.Description = sprintf('Axis of %s', phGetShortIdentifier(obj, iAxis.FullDataItemName));
axis.Units = iAxis.([axisDir 'AxisEngineeringUnits']);
axis.Format = sprintf('%%.%df', iAxis.([axisDir 'AxisDecimalPlaces']));
axis.UpperLimit = iAxis.([axisDir 'AxisMaximumLimit']);
axis.LowerLimit = iAxis.([axisDir 'AxisMinimumLimit']);
axis.Value = transpose(iAxis.([axisDir 'AxisProposedValues']));
axis.ReadOnly = iAxis.([axisDir 'AxisEnableOnlineEditing']); 
axis.CalibrationInterface = obj;

% The following properties are not fully supported: Description, DataType