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