function CstECylinder(fid,CName,CComponent,CMaterial,CAxis,CRadiusA,...
    CRadiusB,CXcenter,CYcenter,CZcenter,CRangeA,CRangeB,CSegments)
global mws ecylinder;


% Funkce CstECylinder(fid, CName, CComponent, CMaterial, CAxis, CRadiusA,
% CRadiusB, CXcenter, CYcenter, CZcenter, CRangeA, CRangeB, CSegments) slouží
% k vytvoření eliptického válce. Funkce nemá návratovou hodnotu.

% Parametry funkce:

% fid – soubor identifikující historii CST skriptu.
% CName – jméno eliptického válce.
% CComponent – jméno komponenty.
% CMaterial – materiál objektu.
% CAxis – osa otočení eliptického válce může být 'X','Y' nebo 'Z'.
% CRadiusA – poloměr v ose X, jestli-že CAxis bude 'Z'.
% CRadiusB – poloměr v ose Y, jestli-že CAxis bude 'Z'.
% CXcenter – umístění válce v ose X.
% CYcenter – umístění válce v ose Y.
% CZcenter – umístění válce v ose Z.
% CRangeA – je rozměr min, je-li například CAxis = 'Z', pak CRangeA bude Zmin.
% CRangeB – je rozměr max, je-li například CAxis = 'Z', pak CRangeB bude Zmax.
% CSegments – určuje kolik bude mít stran, pro hodnotu 0-2 je eliptický válec rotační a pro
% hodnoty segmentu větší než 2 určuje tento parametr kolik bude mít stran.

% Příklad použití funkce:

% fid = fopen('pokus.m', 'wt');
% ...
% CstECylinder(fid,'Ecyl1','component1','PEC','Z',1.5,0.5,2,1,0,0,3,0);


    if strcmp(CAxis,'X')
        Range = 'Xrange'; ARadius= 'Yradius'; BRadius = 'Zradius';
    elseif strcmp(CAxis,'Y')
        Range = 'Yrange'; ARadius= 'Xradius'; BRadius = 'Zradius';
    elseif strcmp(CAxis,'Z')
        Range = 'Zrange'; ARadius= 'Xradius'; BRadius = 'Yradius';
    end  
%Zapis do souboru temp
    fprintf(fid, '%% Vytvoreni ECylinder\n');
    fprintf(fid, 'ecylinder = mws.invoke(''ECylinder'');\n');
    fprintf(fid, 'ecylinder.invoke(''Reset'');\n');
    fprintf(fid, ['ecylinder.invoke(''Name'',''',CName,''');\n']);
    fprintf(fid, ['ecylinder.invoke(''Component'',''',CComponent,''');\n']);
    fprintf(fid, ['ecylinder.invoke(''Material'',''',CMaterial,''');\n']);
    fprintf(fid, ['ecylinder.invoke(''Axis'',''',CAxis,''');\n']);
    fprintf(fid, ['ecylinder.invoke(''',ARadius,''',',num2str(CRadiusA),');\n']);
    fprintf(fid, ['ecylinder.invoke(''',BRadius,''',',num2str(CRadiusB),');\n']);
    fprintf(fid, ['ecylinder.invoke(''Xcenter''',',',num2str(CXcenter),');\n']);
    fprintf(fid, ['ecylinder.invoke(''Ycenter''',',',num2str(CYcenter),');\n']);
    fprintf(fid, ['ecylinder.invoke(''Zcenter''',',',num2str(CZcenter),');\n']);
    fprintf(fid, ['ecylinder.invoke(''',Range,''',',num2str(CRangeA),',',num2str(CRangeB),');\n']);
    fprintf(fid, ['ecylinder.invoke(''Segments''',',',num2str(CSegments),');\n']);
    fprintf(fid, 'ecylinder.invoke(''Create'');\n');

%Prime vykonani funkce v programu CST
    ecylinder = mws.invoke('ECylinder');
    ecylinder.invoke('Reset');
    ecylinder.invoke('Name',CName);
    ecylinder.invoke('Component',CComponent);
    ecylinder.invoke('Material',CMaterial);
    ecylinder.invoke('Axis',CAxis);
    ecylinder.invoke(ARadius,CRadiusA);
    ecylinder.invoke(BRadius,CRadiusB);
    ecylinder.invoke('Xcenter',CXcenter);
    ecylinder.invoke('Ycenter',CYcenter);
    ecylinder.invoke('Zcenter',CZcenter);
    ecylinder.invoke(Range,CRangeA,CRangeB);
    ecylinder.invoke('Segments',CSegments);
    ecylinder.invoke('Create');
end
