Lisp patched together from others for drawing a Multileader whose Rotation matches the DView TWist angle for Civil drawings.
Code:
;| Modified code from danglar & Kent1Cooper
https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/rotating-leader-to-current-view/m-p/6934473#M350902
^P(if(not C:MultileaderHoriz)(load "MultileaderHoriz.lsp"));MultileaderHoriz
(load "MultileaderHoriz.lsp");MultileaderHoriz
(defun c:zzr () (c:MultileaderHoriz)) ; Create Horizontal Multileader with Text aligned Horizontally |;
(defun c:MultileaderHoriz (/ *error* snapang AT:UCSAngle ang ss name ldr pts23 base refang)
(defun *error* (msg)
(command-s "UCS" "World")
(setvar "snapang" snapang)
; (setvar "snapang" (- (getvar "viewtwist")))
(and *AcadDoc* (vla-endundomark *AcadDoc*))
(setvar 'CMDECHO 1)
(if (and msg (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*QUIT*,")))
(princ (strcat "\nError: " msg))
)
)
(defun AT:UCSAngle (/) ; Return current UCS angle by Alan J. Thompson, 04.06.10
((lambda (x) (atan (cadr x) (car x))) (trans (getvar 'UCSXDIR) 0 (trans '(0. 0. 1.) 1 0 T) T))
)
(vl-load-com)
(vla-startundomark
(cond (*AcadDoc*)
((setq *AcadDoc* (vla-get-activedocument (vlax-get-acad-object))))
)
)
(setvar 'CMDECHO 0)
(setq snapang (getvar "snapang"))
(command "UCS" "View")
(setvar "snapang" (- snapang (AT:UCSAngle)))
; (setvar "snapang" 0.0)
(command-s "MLEADER")
(*error* nil)
(princ)
)
;