This has already been addressed in the 3rd Party community. Try this lisp file to do exactly what you're asking for. Just copy and paste it into a notepad.
Code:
;;;Cgrade.lsp
;;;Code for C3d to set crosshairs at desired grade after selecting profile view.
;;;To reset to normal, enter "SR0" at command prompt.
(defun c:CGRD (/ grade vef ang pview)
(vl-load-com)
;;(setvar "cmdecho" 0)
(princ "\nSelect the ProfileView to work in: ")
(if (setq pview (ssget ":S" '((0 . "AECC_PROFILE_VIEW"))))
(progn
(initget 1)
(setq grade (getreal "\nGrade in percent (- down, + up): "))
;;(initget 1)
;;(setq vef (getreal "\nVertical emphasis factor: "))
(setq vef (vlax-get (vlax-ename->vla-object (ssname pview 0))
'verticalscale
)
)
(setq ang (atan (/ (* grade vef) 100)))
;;(setq ang (CVUNIT ang "radian" "degree"))
(setvar "snapang" ang)
(setvar "orthomode" 1)
)
(princ "Error - ProfileView not selected, aborting. ")
)
(princ)
)
;;Snap Rotation set to Zero
(defun C:SR0 ()
(command "snap" "r" "0,0" "@1000<0")
(command "ucs" "v")
(setvar "snapmode" 0)
)
(princ "Enter CGRD to set crosshairs to desired grade.")
(princ "\nEnter SR0 to set back to normal.")