www.gusucode.com > mbcdesign 工具箱 matlab 源码程序 > mbcdesign/@designdev/setActualDesign.m
function D = setActualDesign(D,NewDes,Stage) %SETACTUALDESIGN Set new Actual Design % % D = SETACTUALDESIGN(D, des, Stage) sets a new Actual Design into the % designdev object at the specified stage. If there is already a design % called "Actual Design" it will be replaced, otherwise a new design will % be created. % Copyright 2000-2004 The MathWorks, Inc. and Ford Global Technologies, Inc. if nargin<3 Stage = length(D); end % get correct level designdev Dcell = DesignDev2Cell(D); D = Dcell{Stage}; flag = false(size(D.DesignTree.parents)); for i = 1:length(flag); % search through design list des = D.DesignTree.designs{i}; flag(i) = strcmp(name(des),'Actual Design'); end index = find(flag); if isempty(index) % add a new design based on best D.DesignTree.parents = [D.DesignTree.parents 1]; index = length( D.DesignTree.parents ); % Make sure new design is unlocked NewDes = setlock(NewDes, false); else % Pick up locked status from current design NewDes = setlock(NewDes, getlock(D.DesignTree.designs{index})); end % assign actual design NewDes = name(NewDes,'Actual Design'); D.DesignTree.designs{index} = NewDes; % convert back into nested designdev Dcell{Stage} = D; D = Cell2DesignDev(Dcell);