APL(Dyalog Unicode), 118 114 90 88 83 8380 bytes SBCS
{⊃,/⍪⌿⍵{(' ',⍺)[⍵]'⍺[⍵]}¨1+(⍺ ⍺∘⍴¨o(⌽o←∘.=⍨⍳⍺)i(⌽⍺/⍺↑1)(⍉⍺ ⍺⍴i←(⌈⍺÷2)=⍳⍺)0)['\/|_- '⍳⍵]}
Try it on APLgolf!Try it on APLgolf!
A dfn submission which takes a char matrix on the right and a scale factor on the left.
Indexes each character into its specific pattern, and then uses the original matrix to index back into it.
More byte saves can be done by figuring out a formula for getting the boolean arrays.