Ho provato a fare qualche modifica e funziona:
`
\newcommand{\bigpicsize}[1]{\footnotesize{#1}}
\newcommand{\picsize}[1]{\scriptsize{#1}}
\newcommand{\picsizett}[1]{\scriptsize{\texttt{#1}}}
\newcommand{\smallpicsize}[1]{\tiny{#1}}
\pgfmathtruncatemacro{\classwidth}{3}
\pgfmathtruncatemacro{\classheight}{2}
\newcommand{\setclasswidth}[1]{\pgfmathtruncatemacro{\classwidth}{#1}}
\newcommand{\setclassheight}[1]{\pgfmathtruncatemacro{\classheight}{#1}}
\tikzset{class/.style args={#1 and #2}{
rectangle,draw,rounded corners,thick,minimum width=#1, minimum height=#2
}
}
\tikzset{classinside/.code n args={2}{%
\node at ($(#1.north)!0.20!(#1.center)$){#2};
\draw($(#1.north west)!0.50!(#1.west)$)–($(#1.north east)!0.50!(#1.east)$);
}
}
% DRAWCLASS
% #1 – Coordinate
% #2 – Label
% #3 – Nome Classe
\NewDocumentCommand{\drawclass}{d() m m}{
\IfNoValueTF{#1}{%true
\node[class=\classwidth cm and \classheight cm,name=#2]{};
}
{%false
\node[class=\classwidth cm and \classheight cm,name=#2]at(#1){};
}
\node[classinside={#2}{#3}]{};
}
`
e lo uso in questo modo (in pratica uguale a come lo hai scritto tu, solo che io aggiungo la label:
`\drawclass{m1}{sc\_module}`
ma ho due domande:
1) il nome della classe e la linea verticale che gli sta sotto vorrei che stessero sempre alla stessa distanza e che non vari se io allargo il rettangolo sia in altezza che in larghezza! è sensato mettere una misura assoluta? ma come?
2) il contenuto all’interno di ogni classe, quali modi ci sono per aggiungerlo?
grazie mille
Marco