function CstCylinder(fid,CName,CComponent,CMaterial,CAxis,COuterradius,...
    CInnerradius,CAcenter,CBcenter,CRangeA,CRangeB,CSegments)
global mws cylinder;

% Funkce CstCylinder(fid, CName, CComponent, CMaterial, CAxis, COuterradius,
% CInnerradius, CAcenter, CBcenter, CRangeA, CRangeB, CSegments) slouží
% k vytvoření válce v programu CST. Nemá návratovou hodnotu.

% Parametry funkce:

% fid – soubor identifikující historii CST skriptu.
% CName – jméno válce.
% CComponent – jméno komponenty.
% CMaterial – materiál objektu.
% CAxis – osa otočení válce může být 'X','Y' nebo 'Z'.
% COuterradius – poloměr venkovního rozměru.
% CInnerradius – poloměr vnitřního rozměru.
% CAcenter – umístění válce v ose X, jestli-že CAxis bude 'Z'.
% CBcenter – umístění válce v ose Y, jestli-že CAxis bude '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 kónus 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');
% ...
% CstCylinder(fid,'Dira','S_ant','Vacuum','Z',0.5,0,11,12,0,1.6,0);


%Prirazeni podle smeru
if strcmp(CAxis,'X')
    Range = 'Xrange'; CenterA = 'Ycenter'; CenterB = 'Zcenter';
elseif strcmp(CAxis,'Y')
    Range = 'Yrange'; CenterA = 'Xcenter'; CenterB = 'Zcenter';
elseif strcmp(CAxis,'Z')
    Range = 'Zrange'; CenterA = 'Xcenter'; CenterB = 'Ycenter';
end  
%Zapis do souboru temp
fprintf(fid, '%% Vytvoreni Cylinder\n');
fprintf(fid, 'cylinder = mws.invoke(''Cylinder'');\n');
fprintf(fid, 'cylinder.invoke(''Reset'');\n');
fprintf(fid, ['cylinder.invoke(''Name'',''',CName,''');\n']);
fprintf(fid, ['cylinder.invoke(''Component'',''',CComponent,''');\n']);
fprintf(fid, ['cylinder.invoke(''Material'',''',CMaterial,''');\n']);
fprintf(fid, ['cylinder.invoke(''Axis'',''',CAxis,''');\n']);
fprintf(fid, ['cylinder.invoke(''Outerradius''',',',num2str(COuterradius),');\n']);
fprintf(fid, ['cylinder.invoke(''Innerradius''',',',num2str(CInnerradius),');\n']);
fprintf(fid, ['cylinder.invoke(''',CenterA,''',',num2str(CAcenter),');\n']);
fprintf(fid, ['cylinder.invoke(''',CenterB,''',',num2str(CBcenter),');\n']);
fprintf(fid, ['cylinder.invoke(''',Range,''',',num2str(CRangeA),',',num2str(CRangeB),');\n']);
fprintf(fid, ['cylinder.invoke(''Segments''',',',num2str(CSegments),');\n']);
fprintf(fid, 'cylinder.invoke(''Create'');\n\n');

%Prime vykonani funkce v programu CST
cylinder = mws.invoke('Cylinder');
cylinder.invoke('Reset');
cylinder.invoke('Name',CName);
cylinder.invoke('Component',CComponent);
cylinder.invoke('Material',CMaterial);
cylinder.invoke('Axis',CAxis);
cylinder.invoke('Outerradius',COuterradius);
cylinder.invoke('Innerradius',CInnerradius);
cylinder.invoke(CenterA,CAcenter);
cylinder.invoke(CenterB,CBcenter);
cylinder.invoke(Range,CRangeA,CRangeB);
cylinder.invoke('Segments',CSegments);
cylinder.invoke('Create');

end