schulmathematik/schulma-physik.sty

594 lines
25 KiB
TeX

% schulmathematik bundle: package schulma-physik
% Version 1.5
% 21. Juni 2023
\ProvidesExplPackage{schulma-physik}{2023-06-21}{1.5}{Befehle für die Schulphysik}
\newif \ifschulma@physik@circuitikz % keine expl3-Syntax möglich, da von circuits.ee.IEC nicht unterstützt
\DeclareOption {circuitikz}
{
\schulma@physik@circuitikztrue
}
\ProcessOptions \relax
\RequirePackage {siunitx}
\RequirePackage {tikz}
\sisetup { locale = DE , uncertainty-mode = separate }
\NewDocumentCommand \Massstab {m m m m}
{
\ensuremath
{
\qty {#1} {#2}
\; \widehat {=} \;
\qty {#3} {#4}
}
}
\NewDocumentCommand \tqty {m m}
{
\ensuremath
{
\group_begin:
\textstyle
\qty [ per-mode = fraction ] {#1} {#2}
\group_end:
}
}
\cs_new_eq:NN \tSI \tqty
\NewDocumentCommand \tunit {m}
{
\ensuremath
{
\group_begin:
\textstyle
\unit [ per-mode = fraction ] {#1}
\group_end:
}
}
\cs_new_eq:NN \tsi \tunit
\NewDocumentCommand \Beschl {m}
{
\tqty {#1} { \m \per \square \s }
}
\NewDocumentCommand \Erdb { }
{
\tqty {9,81} { \m \per \square \s }
}
\NewDocumentCommand \Ortsf { }
{
\tqty {9,81} { \N \per \kg }
}
\NewDocumentCommand \Elem { }
{
\qty {1,60e-19} {\coulomb}
}
\NewDocumentCommand \Elekm { }
{
\qty {9,11e-31} {\kg}
}
\NewDocumentCommand \Lichtg { }
{
\qty {3,00e8} { \m \per \s }
}
\NewDocumentCommand \Planck { }
{
\qty {6,63e-34} { \J \s }
}
\NewDocumentCommand \EFK { }
{
\qty {8,85e-12} { \A \s \per \V \per \m }
}
\NewDocumentCommand \MFK {s}
{
\IfBooleanTF {#1}
{
\qty {1,26e-6} { \V \s \per \A \per \m }
}
{
\ensuremath
{
4 \,
\cs_if_exist_use:N \symup
\pi
\cdot
\qty [ print-unity-mantissa = false ] {e-7} { \V \s \per \A \per \m }
}
}
}
\dim_const:Nn \c_schulma_physik_messschieber_l_skala_dim {15.2cm}
\dim_const:Nn \c_schulma_physik_messschieber_b_skala_dim {15mm}
\dim_const:Nn \c_schulma_physik_messschieber_l_schieber_dim {4cm}
\dim_const:Nn \c_schulma_physik_messschieber_b_schieber_dim {17mm}
\dim_const:Nn \c_schulma_physik_messschieber_l_fenster_dim {25mm}
\dim_const:Nn \c_schulma_physik_messschieber_b_fenster_dim {1cm}
\dim_const:Nn \c_schulma_physik_messschieber_randabstand_dim {1mm}
\bool_new:N \l_schulma_physik_messschieber_cm_bool
\bool_new:N \l_schulma_physik_messschieber_inch_bool
\msg_new:nnn {schulma-physik} {falsche Option}
{
#1~ist~keine~gültige~Option~für~einen~Messschieber.
}
\NewDocumentCommand \Messschieber {om}
{
\IfValueTF {#1}
{
\str_case:nnF {#1}
{
{cm} {
\bool_set_true:N \l_schulma_physik_messschieber_cm_bool
\bool_set_false:N \l_schulma_physik_messschieber_inch_bool
}
{inch} {
\bool_set_false:N \l_schulma_physik_messschieber_cm_bool
\bool_set_true:N \l_schulma_physik_messschieber_inch_bool
}
{cm+inch} {
\bool_set_true:N \l_schulma_physik_messschieber_cm_bool
\bool_set_true:N \l_schulma_physik_messschieber_inch_bool
}
}
{
\msg_warning:nnn {schulma-physik} {falsche Option} {#1}
}
}
{
\bool_set_true:N \l_schulma_physik_messschieber_cm_bool
\bool_set_false:N \l_schulma_physik_messschieber_inch_bool
}
\begin {tikzpicture} [ font = \sffamily ]
% Hauptskala
\draw ( -1.6cm , 0 )
-- ++ ( \c_schulma_physik_messschieber_l_skala_dim , 0 )
\bool_if:NT \l_schulma_physik_messschieber_cm_bool { node [ above~left ] { \small cm } }
-- ++ ( 0 , \c_schulma_physik_messschieber_b_skala_dim )
\bool_if:NT \l_schulma_physik_messschieber_inch_bool { node [ below~left ] { \small inch } }
-- ++ ( - \c_schulma_physik_messschieber_l_skala_dim , 0)
-- cycle ;
\bool_if:NT \l_schulma_physik_messschieber_cm_bool
{
\int_step_inline:nnn {0} {120}
{
\int_set:Nn \l_tmpa_int { \int_mod:nn {##1} {10} }
\int_compare:nNnTF {\l_tmpa_int} = {0}
{
\draw ( ##1*1mm , \c_schulma_physik_messschieber_randabstand_dim ) -- ++ ( 0, 6.5mm )
node [ left = -2pt , yshift = -2.5pt ] { \footnotesize \int_eval:n {##1/10} } ;
}
{
\int_compare:nNnTF {\l_tmpa_int} = {5}
{
\draw ( ##1*1mm , \c_schulma_physik_messschieber_randabstand_dim ) -- ++ ( 0 , 5.25mm );
}
{
\draw ( ##1*1mm , \c_schulma_physik_messschieber_randabstand_dim ) -- ++ ( 0 , 4mm );
}
}
}
}
\bool_if:NT \l_schulma_physik_messschieber_inch_bool
{
\int_step_inline:nnn {0} {80}
{
\int_set:Nn \l_tmpa_int { \int_mod:nn {##1} {16} }
\int_compare:nNnTF {\l_tmpa_int} = {0}
{
\draw ( ##1*0.0625in , \c_schulma_physik_messschieber_b_skala_dim - \c_schulma_physik_messschieber_randabstand_dim ) -- ++ (0,-6mm)
node [ left = -2pt , yshift = 3pt ] { \footnotesize \int_eval:n {##1/16} } ;
}
{
\int_compare:nNnTF {\l_tmpa_int} = {8}
{
\draw (##1*0.0625in , \c_schulma_physik_messschieber_b_skala_dim - \c_schulma_physik_messschieber_randabstand_dim ) -- ++ (0,-5mm) ;
}
{
\int_if_even:nTF {##1}
{
\draw ( ##1*0.0625in , \c_schulma_physik_messschieber_b_skala_dim - \c_schulma_physik_messschieber_randabstand_dim ) -- ++ (0,-4mm) ;
}
{
\draw ( ##1*0.0625in , \c_schulma_physik_messschieber_b_skala_dim - \c_schulma_physik_messschieber_randabstand_dim ) -- ++ (0,-3mm) ;
}
}
}
}
}
% Schieber
\draw [ fill = white , even~odd~rule ]
( #2cm - 0.5 * \c_schulma_physik_messschieber_l_schieber_dim + 4.5mm ,
-0.5 * \c_schulma_physik_messschieber_b_schieber_dim + 0.5 * \c_schulma_physik_messschieber_b_skala_dim )
rectangle ++ ( \c_schulma_physik_messschieber_l_schieber_dim , \c_schulma_physik_messschieber_b_schieber_dim )
{ [rounded~corners = 0.5 * \c_schulma_physik_messschieber_b_fenster_dim ]
( #2cm - 0.5 * \c_schulma_physik_messschieber_l_fenster_dim + 4.5mm ,
0.5 \c_schulma_physik_messschieber_b_skala_dim - 0.5 \c_schulma_physik_messschieber_b_fenster_dim )
rectangle ++ ( \c_schulma_physik_messschieber_l_fenster_dim , \c_schulma_physik_messschieber_b_fenster_dim ) } ;
% Noniusskala
\bool_if:NT \l_schulma_physik_messschieber_cm_bool
{
\int_step_inline:nnn {0} {10}
{
\int_set:Nn \l_tmpa_int { \int_mod:nn {##1} {10} }
\int_compare:nNnTF {\l_tmpa_int} = {0}
{
\draw ( #2cm + ##1 * 0.9mm , 0.5 \c_schulma_physik_messschieber_b_skala_dim - 0.5 \c_schulma_physik_messschieber_b_fenster_dim )
-- ++ ( 0 , -1.6mm ) ;
}
{
\int_compare:nNnTF {\l_tmpa_int} = {5}
{
\draw ( #2cm + ##1 * 0.9mm , 0.5 \c_schulma_physik_messschieber_b_skala_dim - 0.5 \c_schulma_physik_messschieber_b_fenster_dim )
-- ++ ( 0 , -1.3mm ) ;
}
{
\draw ( #2cm + ##1 * 0.9mm , 0.5 \c_schulma_physik_messschieber_b_skala_dim - 0.5 \c_schulma_physik_messschieber_b_fenster_dim )
-- ++ ( 0 , -1mm ) ;
}
}
}
}
\bool_if:NT \l_schulma_physik_messschieber_inch_bool
{
\int_step_inline:nnn {0} {8}
{
\int_set:Nn \l_tmpa_int { \int_mod:nn {##1} {4} }
\int_compare:nNnTF {\l_tmpa_int} = {0}
{
\draw ( #2cm + ##1 * 0.0546875in , 0.5 * \c_schulma_physik_messschieber_b_skala_dim + 0.5 * \c_schulma_physik_messschieber_b_fenster_dim )
-- ++ ( 0 , 1.6mm ) ;
}
{
\int_compare:nNnTF {\l_tmpa_int} = {2}
{
\draw ( #2cm + ##1 * 0.0546875in , 0.5 * \c_schulma_physik_messschieber_b_skala_dim + 0.5 * \c_schulma_physik_messschieber_b_fenster_dim )
-- ++ ( 0 , 1.3mm ) ;
}
{
\draw ( #2cm + ##1 * 0.0546875in , 0.5 * \c_schulma_physik_messschieber_b_skala_dim + 0.5 * \c_schulma_physik_messschieber_b_fenster_dim )
-- ++ ( 0 , 1mm ) ;
}
}
}
}
\end{tikzpicture}
}
\dim_new:N \l_schulma_physik_messschraube_massstab_dim
\dim_set:Nn \l_schulma_physik_messschraube_massstab_dim {2mm}
\dim_new:N \l_schulma_physik_messschraube_skalenstrich_y_dim
\dim_new:N \l_schulma_physik_messschraube_skalenstrich_deltay_dim
\int_new:N \l_schulma_physik_messschraube_skalenbeschriftung_int
\fp_new:N \l_schulma_physik_messschraube_hundertstelbruchteile_fp
\NewDocumentCommand \Messschraube {m}
{
% nach: dexteritas, https://tex.stackexchange.com/questions/472876/how-to-draw-micrometer-scale-using-tikz
\begin{tikzpicture} [ font = \sffamily ]
% horizontale Skala
\draw [semithick] (0,0) -- ( #1 * \l_schulma_physik_messschraube_massstab_dim , 0 ) ;
\int_step_inline:nnn {0} { \fp_to_int:n {#1} + 2 }
{
\int_compare:nNnTF { \int_mod:nn {##1} {5} } = {0}
{
\draw [thick] ( ##1 * \l_schulma_physik_messschraube_massstab_dim , -0.5 ) -- ++ (0,0.65) node [above] { \small ##1 } ;
}
{
\draw ( ##1 * \l_schulma_physik_messschraube_massstab_dim , 0) -- ++ (0,-0.5) ;
}
}
\node [ above~right ] at (-5mm,-1cm) {\small mm} ;
% drehbare Skala
\fp_set:Nn \l_schulma_physik_messschraube_hundertstelbruchteile_fp { #1 * 100 - \fp_to_int:n { #1 * 100} }
\fill [white] ( #1 * \l_schulma_physik_messschraube_massstab_dim , 1cm ) -- ++ (8mm,5mm) -- ++ (0,-3cm) -- ++ (-8mm,5mm) -- cycle ;
\draw [thin] ( #1 * \l_schulma_physik_messschraube_massstab_dim , 1 ) -- ++ (0,-2cm) ;
\draw ( #1 * \l_schulma_physik_messschraube_massstab_dim , 1cm ) -- ++ (8mm,5mm) ;
\draw ( #1 * \l_schulma_physik_messschraube_massstab_dim , -1cm ) -- ++ (8mm,-5mm) ;
\int_step_inline:nnn {-17} {17}
{
\int_set:Nn \l_schulma_physik_messschraube_skalenbeschriftung_int
{
\int_mod:nn { \fp_to_int:n { #1 * 100 } + ##1 } {100}
}
\dim_set:Nn \l_schulma_physik_messschraube_skalenstrich_y_dim
{
\fp_eval:n { ( ##1 - \l_schulma_physik_messschraube_hundertstelbruchteile_fp ) / 18 } cm
}
\int_compare:nNnTF { \int_mod:nn {\l_schulma_physik_messschraube_skalenbeschriftung_int} {5} } = {0}
{
% langer Strich mit Zahl
\dim_set:Nn \l_schulma_physik_messschraube_skalenstrich_deltay_dim { 4.375mm * ##1/18 }
\int_compare:nNnTF {\l_schulma_physik_messschraube_skalenbeschriftung_int} < {10}
{
\draw ( #1 * \l_schulma_physik_messschraube_massstab_dim , \l_schulma_physik_messschraube_skalenstrich_y_dim )
-- ++ ( 7mm , \l_schulma_physik_messschraube_skalenstrich_deltay_dim )
node [right] { \footnotesize 0 \int_to_arabic:n {\l_schulma_physik_messschraube_skalenbeschriftung_int} } ;
}
{
\draw ( #1 * \l_schulma_physik_messschraube_massstab_dim , \l_schulma_physik_messschraube_skalenstrich_y_dim )
-- ++ ( 7mm , \l_schulma_physik_messschraube_skalenstrich_deltay_dim )
node [right] { \footnotesize \int_to_arabic:n {\l_schulma_physik_messschraube_skalenbeschriftung_int} } ;
}
}
{
% kurzer Strich
\dim_set:Nn \l_schulma_physik_messschraube_skalenstrich_deltay_dim { 2.5mm * ##1/18 }
\draw ( #1 * \l_schulma_physik_messschraube_massstab_dim , \l_schulma_physik_messschraube_skalenstrich_y_dim )
-- ++ ( 4mm , \l_schulma_physik_messschraube_skalenstrich_deltay_dim ) ;
}
}
% oberer und unterer Rand
\draw (-5mm,1cm) -- ( #1 * \l_schulma_physik_messschraube_massstab_dim , 1cm ) ;
\draw (-5mm,-1cm) -- ( #1 * \l_schulma_physik_messschraube_massstab_dim , -1cm ) ;
\draw ( #1 * \l_schulma_physik_messschraube_massstab_dim + 8mm, 1.5cm ) -- ++ (2cm,0) ;
\draw ( #1 * \l_schulma_physik_messschraube_massstab_dim + 8mm, -1.5cm ) -- ++ (2cm,0) ;
% geschwungene Linien links und rechts
\draw (-5mm,-1cm) to [ out=130 , in=-130 ] (-5mm,0) to [ out=130 , in=-130 ] (-5mm,1cm) ;
\draw [very~thin] (-5mm,0) to [ out=50 , in=-50 ] (-5mm,1cm) ;
\draw ( #1 * \l_schulma_physik_messschraube_massstab_dim + 2.8cm , 1.5cm ) to [ out=-50 , in=50 ] ++ (0,-1.5cm) to [ out=-50 , in=50 ] ++ (0,-1.5cm) ;
\draw [very~thin] ( #1 * \l_schulma_physik_messschraube_massstab_dim + 2.8cm , 0 ) to [ out=130 , in=-130 ] ++ (0,1.5cm) ;
\end{tikzpicture}
}
\dim_new:N \l_schulma_physik_kraftmesser_breite_skala_dim
\dim_set:Nn \l_schulma_physik_kraftmesser_breite_skala_dim {1cm}
\dim_new:N \l_schulma_physik_kraftmesser_laenge_skala_dim
\dim_set:Nn \l_schulma_physik_kraftmesser_laenge_skala_dim {9cm}
\dim_new:N \l_schulma_physik_kraftmesser_breite_huelse_dim
\dim_set:Nn \l_schulma_physik_kraftmesser_breite_huelse_dim {1.1cm}
\dim_new:N \l_schulma_physik_kraftmesser_laenge_huelse_dim
\dim_set:Nn \l_schulma_physik_kraftmesser_laenge_huelse_dim {3cm}
\dim_new:N \l_schulma_physik_kraftmesser_offset_huelse_dim
\dim_set:Nn \l_schulma_physik_kraftmesser_offset_huelse_dim {0.5pt}
\NewDocumentCommand \Kraftmesser {mm}
{
\begin{tikzpicture} [ font = { \sffamily \bfseries \footnotesize } ]
% Haken
\draw [ very~thick ] ( 0 , -#1/#2 * \l_schulma_physik_kraftmesser_laenge_skala_dim ) -- ++ (0,-6mm) arc [ start~angle = 90 , end~angle = 380 , radius = 2mm ] ;
% ausziehbare Skala
\int_step_inline:nn { \fp_eval:n { round ( 10*#1/#2 + 1 ) } }
{
\int_if_even:nTF {##1}
{
\str_set:Nn \l_tmpa_str {red}
}
{
\str_set:Nn \l_tmpa_str {white}
}
\draw [ fill = \l_tmpa_str ]
( -0.5 * \l_schulma_physik_kraftmesser_breite_skala_dim , \fp_to_decimal:n { -#1/#2 + (##1-1)/10 } * \l_schulma_physik_kraftmesser_laenge_skala_dim )
to [ out = -20 , in = 200 ] node [above] { \int_compare:nNnT {##1} = {1} {N} }
++ ( \l_schulma_physik_kraftmesser_breite_skala_dim , 0 )
-- ++ ( 0, 0.1 * \l_schulma_physik_kraftmesser_laenge_skala_dim )
to [ out = 200 , in = -20 ]
node [ below , inner~sep = 2pt ] { \num [ mode = text , reset-text-family = false , reset-text-series = false ] { \fp_to_decimal:n {##1/10*#2} } }
++ ( -\l_schulma_physik_kraftmesser_breite_skala_dim , 0 ) -- cycle ;
}
% Überstand der Skala
\draw [ fill = white ] ( -0.5 * \l_schulma_physik_kraftmesser_breite_skala_dim , -#1/#2 * \l_schulma_physik_kraftmesser_laenge_skala_dim - 1.5mm )
to [ out = -20 , in = 200 ] ++ ( \l_schulma_physik_kraftmesser_breite_skala_dim , 0 ) -- ++ (0,1.5mm)
to [ out = 200 , in = -20 ] ++ ( -\l_schulma_physik_kraftmesser_breite_skala_dim , 0 ) -- cycle ;
% mittlere Striche
\begin {scope}
\clip ( 0.25 \l_schulma_physik_kraftmesser_breite_skala_dim , 0 )
rectangle ( 0.5 \l_schulma_physik_kraftmesser_breite_skala_dim , -#1/#2 * \l_schulma_physik_kraftmesser_laenge_skala_dim ) ;
\int_step_inline:nn { \fp_eval:n { ceil ( 100*#1/#2 ) } }
{
\int_compare:nNnT { \int_mod:nn {##1} {10} } = {5}
{
\draw ( -0.5 \l_schulma_physik_kraftmesser_breite_skala_dim , \fp_to_decimal:n { -#1/#2 + ##1/100 } * \l_schulma_physik_kraftmesser_laenge_skala_dim )
to [ out = -20 , in = 200 ] ++ ( \l_schulma_physik_kraftmesser_breite_skala_dim , 0 ) ;
}
}
\end {scope}
% kleine Striche
\begin {scope}
\clip ( 0.35 \l_schulma_physik_kraftmesser_breite_skala_dim , 0 )
rectangle ( 0.5 \l_schulma_physik_kraftmesser_breite_skala_dim , -#1/#2 * \l_schulma_physik_kraftmesser_laenge_skala_dim ) ;
\int_step_inline:nn { \fp_eval:n { ceil ( 100*#1/#2 ) } }
{
\int_compare:nNnT { \int_mod:nn {##1} {5} } > {0}
{
\draw ( -0.5 \l_schulma_physik_kraftmesser_breite_skala_dim , \fp_to_decimal:n { -#1/#2 + ##1/100 } * \l_schulma_physik_kraftmesser_laenge_skala_dim )
to [ out = -20 , in = 200 ] ++ ( \l_schulma_physik_kraftmesser_breite_skala_dim , 0 ) ;
}
}
\end {scope}
% Hülse
\draw [ fill = cyan ] ( -0.5 * \l_schulma_physik_kraftmesser_breite_huelse_dim , \l_schulma_physik_kraftmesser_offset_huelse_dim )
-- ++ ( 0 , \l_schulma_physik_kraftmesser_laenge_huelse_dim )
to [ out = -20 , in = 200 ] ++ ( 0.5 * \l_schulma_physik_kraftmesser_breite_huelse_dim , 0 )
to [ out = 20 , in = 160 ] ++ ( 0.5 * \l_schulma_physik_kraftmesser_breite_huelse_dim , 0 ) -- ++ ( 0 , -\l_schulma_physik_kraftmesser_laenge_huelse_dim )
to [ out = 200 , in = -20 ] cycle ;
\draw [ fill = cyan!60 ]
( -0.5 * \l_schulma_physik_kraftmesser_breite_huelse_dim , \l_schulma_physik_kraftmesser_laenge_huelse_dim + \l_schulma_physik_kraftmesser_offset_huelse_dim )
to [ out = 20 , in = 160 ] ++ ( 0.5 \l_schulma_physik_kraftmesser_breite_huelse_dim , 0 )
to [ out = 200 , in = -20 ] cycle ;
\end{tikzpicture}
}
\dim_const:Nn \c_schulma_physik_multimeter_zeigerlaenge_dim {3.4cm}
\dim_const:Nn \c_schulma_physik_multimeter_skalenradius_dim {2.9cm}
\dim_const:Nn \c_schulma_physik_multimeter_breite_dim {5cm}
\dim_const:Nn \c_schulma_physik_multimeter_hoehe_dim {4cm}
\dim_new:N \l_schulma_physik_multimeter_skalenbeschriftung_dim
\fp_const:Nn \c_schulma_physik_multimeter_sektorwinkel_fp {80}
\NewDocumentCommand \Multimeter {mmm}
{
\begin {tikzpicture} [ font = { \sffamily \footnotesize } ]
% äußere Skala bis 10
\dim_set:Nn \l_tmpa_dim { \c_schulma_physik_multimeter_skalenradius_dim + 1mm }
\dim_set:Nn \l_schulma_physik_multimeter_skalenbeschriftung_dim { \c_schulma_physik_multimeter_skalenradius_dim + 5mm }
\int_step_inline:nnn {0} {50}
{
\fp_set:Nn \l_tmpa_fp { 90 + (0.5 - ##1/50) * \c_schulma_physik_multimeter_sektorwinkel_fp }
\int_compare:nNnTF { \int_mod:nn {##1} {5} } = {0}
{
\dim_set:Nn \l_tmpb_dim { \c_schulma_physik_multimeter_skalenradius_dim + 3mm }
\draw ( \fp_use:N \l_tmpa_fp \c_colon_str \l_tmpa_dim ) -- ( \fp_use:N \l_tmpa_fp \c_colon_str \l_tmpb_dim ) ;
\int_compare:nNnT { \int_mod:nn {##1} {10} } = {0}
{
\node at ( \fp_use:N \l_tmpa_fp \c_colon_str \l_schulma_physik_multimeter_skalenbeschriftung_dim ) { \int_eval:n {2*##1/10} } ;
}
}
{
\dim_set:Nn \l_tmpb_dim { \c_schulma_physik_multimeter_skalenradius_dim + 2mm }
\draw ( \fp_use:N \l_tmpa_fp \c_colon_str \l_tmpa_dim ) -- ( \fp_use:N \l_tmpa_fp \c_colon_str \l_tmpb_dim ) ;
}
}
% innere Skala bis 3
\dim_set:Nn \l_tmpa_dim { \c_schulma_physik_multimeter_skalenradius_dim - 1mm }
\dim_set:Nn \l_schulma_physik_multimeter_skalenbeschriftung_dim { \c_schulma_physik_multimeter_skalenradius_dim - 5mm }
\int_step_inline:nnn {0} {30}
{
\fp_set:Nn \l_tmpa_fp { 90 + (0.5 - ##1/30) * \c_schulma_physik_multimeter_sektorwinkel_fp }
\int_compare:nNnTF { \int_mod:nn {##1} {5} } = {0}
{
\dim_set:Nn \l_tmpb_dim { \c_schulma_physik_multimeter_skalenradius_dim - 3mm }
\draw ( \fp_use:N \l_tmpa_fp \c_colon_str \l_tmpa_dim ) -- ( \fp_use:N \l_tmpa_fp \c_colon_str \l_tmpb_dim ) ;
\int_compare:nNnT { \int_mod:nn {##1} {10} } = {0}
{
\node at ( \fp_use:N \l_tmpa_fp \c_colon_str \l_schulma_physik_multimeter_skalenbeschriftung_dim ) { \int_eval:n {##1/10} } ;
}
}
{
\dim_set:Nn \l_tmpb_dim { \c_schulma_physik_multimeter_skalenradius_dim - 2mm }
\draw ( \fp_use:N \l_tmpa_fp \c_colon_str \l_tmpa_dim ) -- ( \fp_use:N \l_tmpa_fp \c_colon_str \l_tmpb_dim ) ;
}
}
% Zeiger
\fp_set:Nn \l_tmpa_fp { 90 + (0.5 - #1/#2) * \c_schulma_physik_multimeter_sektorwinkel_fp }
\fill (0,0) circle [ radius = 2.5pt ] ;
\draw [semithick] (0,0) -- ( \fp_use:N \l_tmpa_fp \c_colon_str \dim_use:N \c_schulma_physik_multimeter_zeigerlaenge_dim ) ;
% Rahmen
\draw ( -0.5 * \c_schulma_physik_multimeter_breite_dim , -3mm ) -- ++ ( \c_schulma_physik_multimeter_breite_dim , 0 )
node [above~left] { \normalsize \qty [ mode = text , reset-text-family = false ] {#2} {#3} }
-- ++ ( 0 , \c_schulma_physik_multimeter_hoehe_dim ) -- ++ ( - \c_schulma_physik_multimeter_breite_dim , 0 )
-- ++ ( 0 , - \c_schulma_physik_multimeter_hoehe_dim ) ;
\end{tikzpicture}
}
\ExplSyntaxOff
\ifschulma@physik@circuitikz
\RequirePackage{circuitikz}
\ctikzset{resistor=european,inductor=american}
\else
\usetikzlibrary{circuits.ee.IEC}
\pgfdeclareshape{doppelbuchse}
{%
\inheritsavedanchors[from=rectangle ee]%
\inheritanchor[from=rectangle ee]{center}%
\inheritanchor[from=rectangle ee]{north}%
\inheritanchor[from=rectangle ee]{south}%
\inheritanchor[from=rectangle ee]{east}%
\inheritanchor[from=rectangle ee]{west}%
\inheritanchor[from=rectangle ee]{north east}%
\inheritanchor[from=rectangle ee]{north west}%
\inheritanchor[from=rectangle ee]{south east}%
\inheritanchor[from=rectangle ee]{south west}%
\inheritanchor[from=rectangle ee]{input}%
\inheritanchor[from=rectangle ee]{output}%
\inheritanchorborder[from=rectangle ee]%
\backgroundpath{
\pgf@process{\pgfpointadd{\southwest}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}%
\pgf@xa=\pgf@x \pgf@ya=\pgf@y
\pgf@process{\pgfpointadd{\northeast}{\pgfpointscale{-1}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}}%
\pgf@xb=\pgf@x \pgf@yb=\pgf@y
\pgfutil@tempdima=\pgf@yb%
\advance\pgfutil@tempdima by -\pgf@ya%
\pgfutil@tempdima=0.5\pgfutil@tempdima%
\advance\pgf@xa by \pgfutil@tempdima%
\advance\pgf@xb by -\pgfutil@tempdima%
{\pgfpathcircle{\pgfqpoint{\pgf@xa}{0pt}}{\pgfutil@tempdima}}
{\pgfpathcircle{\pgfqpoint{\pgf@xb}{0pt}}{\pgfutil@tempdima}}
}%
}
\tikzset
{
bulb IEC graphic/.style=
{
circuit symbol lines,
circuit symbol size=width 1.9 height 1.9,
shape=generic circle IEC,
/pgf/generic circle IEC/before background=
{
\pgfpathmoveto{\pgfpointpolar{-135}{1pt}}
\pgfpathlineto{\pgfpointpolar{45}{1pt}}
\pgfpathmoveto{\pgfpointpolar{-45}{1pt}}
\pgfpathlineto{\pgfpointpolar{135}{1pt}}
\pgfusepathqstroke
},
transform shape,
},
capacitor IEC graphic/.style=
{
circuit symbol lines,
circuit symbol size=width 0.8 height 2.4,
transform shape,
shape=capacitor IEC,
},
amperemeter graphic/.style=
{
circuit symbol open,
circuit symbol size=width 2 height 2,
transform shape,
shape=generic circle IEC,
info=center:{\sffamily A}
},
voltmeter graphic/.style=
{
circuit symbol open,
circuit symbol size=width 2 height 2,
transform shape,
shape=generic circle IEC,
info=center:{\sffamily V}
},
circuit declare symbol=messgeraet,
set messgeraet graphic=
{
circuit symbol open,
circuit symbol size=width 2 height 2,
transform shape,
shape=generic circle IEC,
/pgf/generic circle IEC/before background=
{
\draw[annotation arrow,->] (0.58pt,-0.58pt)--(-0.58pt,0.58pt);
}
},
circuit declare symbol=spannungsquelle,
set spannungsquelle graphic=
{
circuit symbol open,
circuit symbol size=width 2.4 height 0.5,
transform shape,
shape=doppelbuchse,
outer sep=0pt
},
}
\fi