2 of 7 added 2772 characters in body

Jelly, 187 bytes

ḣ9;⁾| ṁ5¤oµ€“µ½¿‘¦
“¢gl5n&ẈkȯƬœȥṫ⁽ḷ⁷ṙẓṣċXızb~ƝṪʋHØARḲọ<;⁽ṙ¶K4ẇG]ƊinṾỤ1ẓvP9",K|¢Ị\*1Ṙ?ȥḥƭ⁾-⁸ẓė%ßṀ[+ƥƘø⁵^ƒȦɲrHðɗ¹Ėfp0~ṄƘtSm3ẊFĿḤ³µɼɠọẸṁṡØƤḞcsḌÐ6*ỌʠzBḲȦȯẊŀxzṠ+×x³ṅzỵ^’ṃ“ /|_”s27Ç¹⁸?x€15¦€19Y


A full program.

Try it online!

How?

145 bytes are a 143 digit base 250 number, which is a base-4 compression of a possible cube, with trailing spaces added to equalise the row-lengths, without new lines, and without 18 characters from the middle of each row, like this, but without newlines:

         _________________
/ _____________  /|
/ / ___________/ / |
/ / /| |       / /  |
/ / / | |      / /   |
/ / /| | |     / / /| |
/ / / | | |    / / / | |
/ / /  | | |   / / /| | |
/ /_/___|_|_|__/ / / | | |
/________________/ /  | | |
| ______________ | |  | | |
| | |    | | |_| | |__| | |
| | |    | |___| | |____| |
| | |   / / ___| | |_  / /
| | |  / / /   | | |/ / /
| | | / / /    | | | / /
| | |/ / /     | | |/ /
| | | / /      | |   /
| | |/_/_______| |  /
| |____________| | /
|________________|/


The program reverses the process and changes the characters that need changing if the cube should be an impossible one:

ḣ9;⁾| ṁ5¤oµ€“µ½¿‘¦  Link 1, replace characters to make impossible: rows
¦  apply sparsely:
“µ½¿‘   ...to indexes: code-page indexes = [9,10,11]
...this:
µ€          for €ach:
⁾|                     list of characters = ['|',' ']
ṁ5                  mould like 5 = ['|',' ','|',' ','|']
;                     concatenate
o              logical or (vectorises) with the row
(which has the effect of appending the rest of the row)

“ ... ’ṃ“ /|_”s27Ç¹⁸?x€15¦€19Y  Main link: V
“ ... ’                         base 250 number (as described above)
“ /|_”                  the characters to use [' ','/','|','_']
ṃ                        base decompression (0->'_', 1->' ', 2->'/', 3->'|')
s27               split into chunks of length 27 (the rows)
?           if:
⁸              chain's left argument = V