Du versuchst, die Schreibmaschinenschrift an `\fontdimen 1` zu erkennen. Allerdings gibt `\fontdimen 1` die Schrägheit an. Für eine Dicktengleiche wäre hingegen typisch, dass der Wortzwischenraum nicht gedehnt und nicht geschrumpft werden kann, also `\fontdimen 3` und `\fontdimen 4` 0 sind:
\documentclass{scrartcl}
\makeatletter
\newcommand\Schreibmaschine{}
\newcommand\Temph{}
\DeclareRobustCommand\Schreibmaschine{%
\@nomath\Schreibmaschine
\ifdim \fontdimen\thr@@\font >\z@
\ifdim \fontdimen 4 \font >\z@ \ttfamily
\else \normalfont
\fi
\else \normalfont
\fi
}
\DeclareTextFontCommand{\Temph}{\Schreibmaschine}
\makeatother
\begin{document}
\Schreibmaschine
Dies ist ein Text mit \Temph{hervorgehobenen} Teilen.
\end{document}
![Ergebnis][1]
Hier noch die Erklärungen zu den einzelnen `\fontdimen`-Parametern:
<table border="0">
<colgroup>
<col width="25%" span="1">
<col width="75%" span="1">
<col>
</colgroup>
<thead>
<tr><th>Parameter Nummer</th><th align="left">Bedeutung</th></tr>
</thead>
<tbody>
<tr><td align="center">1</td><td><em>Schrägheit</em> des Fonts; üblicherweise haben aufrechte Schriften einen Wert von 0pt, während Kursive (<code>\itshape</code>) und Schräge (<code>\slshape</code>) einen Wert größer 0 haben.</td></tr>
<tr><td align="center">2</td><td>Wortzwischenraum; das ist der Standardzwischenraum, der beispielsweise innerhalb einer <code>\mbox</code> verwendet würde.</td></tr>
<tr><td align="center">3</td><td>Maximale Dehnbarkeit des Wortzwischenraums; um diesen Wert darf der Wortzwischenraum gedehnt werden, ohne dass dies eine Beeinträchtigung des Satzes darstellt.</td></tr>
<tr><td align="center">4</td><td>Maximale Schrumpfbarkeit des Wortzwischenraums; um diesen Wert darf der Wortzwischenraum vermindert werden, ohne dass dies eine Beeinträchtigung des Satzes darstellt.</td></tr>
<tr><td align="center">5</td><td>x-Höhe; der Wert von 1ex bei diesem Font; die tatsächliche Höhe des <code>x</code> darf davon abweichen!</td></tr>
<tr><td align="center">6</td><td>Geviert; der Wert von 1em bei diesem Font; die tatsächliche Breite des <code>m</code> darf davon abweichen!</td></tr>
<tr><td align="center">7</td><td>Satzende-Abstand; das ist der Abstand, der bei <code>\nonfrenchspacing</code> nach einem Punkt, der auf einen Kleinbuchstaben folgt, eingefügt wird.</td></tr>
</tbody>
</table>
Mathefonts haben statt der angegebenen 7 `\fontdimen`-Parametern deutlich mehr (min. 22).
Ein Test gegen `\f@family` wäre – in Anlehnung an die in der Frage erwähnte Antwort – natürlich ebenfalls möglich. Allerdings kann man in dem Fall fast nur testen, ob die aktuelle Familie `\ttdefault` entspricht, weil man ja unmöglich auf alle Dicktengleichen-Familien, die es gibt, testen kann. Für den Test bietet sich KOMA-Script `\ifstr` an, weil das auch dann noch funktioniert, falls `\ttdefault` (wie üblich) `\long` definiert ist, während `\f@family` (wie üblich) nicht `\long` definiert ist:
\documentclass{scrartcl}
\makeatletter
\newcommand\Schreibmaschine{}
\newcommand\Temph{}
\DeclareRobustCommand\Schreibmaschine{%
\@nomath\Schreibmaschine
\ifstr{\ttdefault}{\f@family}{\normalfont}{\ttfamily}%
}
\DeclareTextFontCommand{\Temph}{\Schreibmaschine}
\makeatother
\begin{document}
\Schreibmaschine
Dies ist ein Text mit \Temph{hervorgehobenen} Teilen.
\end{document}
Um das zu verstehen, muss man auch nicht erst TeX studieren, sondern muss nur in »[LaTeX2ε font selection][2]« die Abschnitt 2.3, »Internals«, und 2.4, »Parameters« »Parameters«, aufmerksam gelesen haben.
[1]: http://texwelt.de/wissen/upfiles/example21.png
[2]: http://www.ctan.org/pkg/fntguide