function CstUnits(fid,set,UGeometry,UFrequency,UTime,UTemperature,UVoltage,...
    UCurrent,UResistance,UConductance,UCapacitance,UInductance)
global mws unit;
%       Datum vytvoreni: 27.10.2008
%       Autor: Petr Moravec
%       -------------------------------------------------------------------
%       Pouziti funkce:
%       Funkce je vhodna pro nastaveni jednotek v programu CST Studiu 
%       pomoci programu Matlab a komponenty active X
%       -------------------------------------------------------------------
%       Ve funkci je mozne volit mezi dvemi variantami nastaveni:
%       1) Varianta "full", kde je mozne nastavovat vsechny jednotky
%       pouzivane v CST Studiu jako jsou jednotky rozmeru, frekvence, casu,
%       teploty, napeti, proudu, odporu,vodivosti,kapacity a indukctnosti.
%       U varianty "full" je potreba zadavet vsechny zminene jednotky
%
%       2) Varianta "easy", je zjednodusena a jsou v ni potreba zadavat pouze
%       nejcasteji pouzivane jednotky, mezi ktere patri jednotky rozmeru,
%       frekvence a casu.
%       -------------------------------------------------------------------
%       Example:
%       Varianta 1("full"): 
%       CstUnits(fid,'full','m','Hz','s','Celsius','V','A','Ohm','S','pF','nH');
%
%       Varianta 2("easy"): 
%       CstUnits(fid,'easy','m','Hz','s');

if(strcmp(set,'full'))
    if (isempty(UTemperature)||isempty(UVoltage)||isempty(UCurrent)||isempty(UResistance)...
            ||isempty(UConductance)||isempty(UCapacitance)||isempty(UInductance))
        disp(sprintf('Chyba!!! Chybne nastaveni jednotek ve funkci CstUnits...'));
        disp(sprintf('Chyba!!! Nejsou zapsany vsechny jednotky ve funkci "full"'));
        disp(sprintf('Chyba!!! Pravdepodobne je nektera z jednotek prazdna!!!'));
        error('Pravdepodobne je nektera z jednotek prazdna');
        return;
    end
end

% Nastaveni jednotek v CST
fprintf(fid, '%% Nastaveni jednotek\n');
fprintf(fid, 'unit = mws.invoke(''Units'');\n');

    if (strcmp(set,'full'))
        %Vypsani do souboru
        fprintf(fid, ['unit.invoke(''Geometry'',''',UGeometry,''');\n']);
        fprintf(fid, ['unit.invoke(''Frequency'',''',UFrequency,''');\n']);
        fprintf(fid, ['unit.invoke(''Time'',''',UTime,''');\n']);
        fprintf(fid, ['unit.invoke(''Temperature'',''',UTemperature,''');\n']);
        fprintf(fid, ['unit.invoke(''Voltage'',''',UVoltage,''');\n']);
        fprintf(fid, ['unit.invoke(''Current'',''',UCurrent,''');\n']);
        fprintf(fid, ['unit.invoke(''Resistance'',''',UResistance,''');\n']);
        fprintf(fid, ['unit.invoke(''Conductance'',''',UConductance,''');\n']);
        fprintf(fid, ['unit.invoke(''Capacitance'',''',UCapacitance,''');\n']);
        fprintf(fid, ['unit.invoke(''Inductance'',''',UInductance,''');\n\n']);
        
        %Prime vykonani v CST STUDIU
        unit = mws.invoke('Units');
        unit.invoke('Geometry',UGeometry);
        unit.invoke('Frequency','MHz');
        unit.invoke('Time',UTime);
        unit.invoke('Frequency',UFrequency);
        unit.invoke('Temperature',UTemperature);
        unit.invoke('Voltage',UVoltage);
        unit.invoke('Current',UCurrent);
        unit.invoke('Resistance',UResistance);
        unit.invoke('Conductance',UConductance);
        unit.invoke('Capacitance',UCapacitance);
        unit.invoke('Inductance',UInductance);
    end

    if (strcmp(set,'easy'))
        fprintf(fid, ['unit.invoke(''Geometry'',''',UGeometry,''');\n']);
        fprintf(fid, ['unit.invoke(''Frequency'',''',UFrequency,''');\n']);
        fprintf(fid, ['unit.invoke(''Time'',''',UTime,''');\n\n']);
        
        %Prime vykonani v CST STUDIU
        unit = mws.invoke('Units');
        unit.invoke('Frequency',UFrequency);
        unit.invoke('Geometry',UGeometry);
        unit.invoke('Frequency','MHz');
        unit.invoke('Time',UTime);
        unit.invoke('Frequency',UFrequency);
    end

end