Very strange, Michael Helmle. For me this does not work. pn is not replaced in exp1.
Whatever you mean by a fresh kernel, this would not help. In my tests there is only a ClearAll["Global`*"]. Then just an assignment for the abbreviation pn and another for exp1. Then pn should be replaced within exp1. Actually it is not replaced.
By "I'm doing the calculation myself and not Wolfram" means that within your solution - if it would work - we would do some kind of textual substitution. Hence I have to know the structure of exp1. Which I do not know of course, since exp1 came from some earlier Wolfram-calculations. exp1 can be some arbitrarily complex expression containing terms of n and Sin[[Pi]/n] in any sequence and any formular constellation.
For example think on:
In[189]:= exp1a =
2 n^2/Sin[\[Pi]/n] + Sin[2 \[Pi]/Sqrt[4 n^2]] (r + h) n
Out[189]= 2 n^2 Csc[\[Pi]/n] + n (h + r) Sin[\[Pi]/Sqrt[n^2]]
which is after the replacement with pn the same as:
In[194]:= exp2a = (2 n^3/pn + (r + h) pn)
Out[194]= 2 n^2 Csc[\[Pi]/n] + n (h + r) Sin[\[Pi]/n]
As you can verify by:
In[197]:= Simplify[exp1a - exp2a, n > 0]
Out[197]= 0
My basic question is, how could I calculate exp2a from exp1a by using the abbreviation pn.