For the trim part the Express Tool Extrim does a nice job.
I use a slightly modified version of azarko's lisp which requires Express Tools to be loaded to TrimErase outside: https://forums.augi.com/showthread.p...l=1#post736542
Code:
;| https://forums.augi.com/showthread.php?65088-A-routine-to-erase-everything-outside-of-a-selection-window&p=736542&viewfull=1#post736542
Requires Express tools
by azarko 7/31/2007
TrimErase Outside
Trim and erase everything outside of closed polyline without curved segments.
(load "ExtrimEraseOutside") ExtrimEraseOutside
|;
(defun C:ExtrimEraseOutside ( / en ss lst ssall bbox)
(vl-load-com)
(if (and (setq en (car(entsel "\nSelect closed polyline: ")))
(wcmatch (cdr(assoc 0 (entget en))) "*POLYLINE"))
(progn
(command "_.undo" "_begin")
(setq bbox (ACET-ENT-GEOMEXTENTS en))
(setq bbox (mapcar '(lambda(x)(trans x 0 1)) bbox))
(setq lst (ACET-GEOM-OBJECT-POINT-LIST en 1e-3))
(ACET-SS-ZOOM-EXTENTS (ACET-LIST-TO-SS (list en)))
(command "_.Zoom" "0.95x")
(if (null etrim)(load "extrim.lsp"))
(etrim en (polar
(car bbox)
(angle (car bbox)(cadr bbox))
(* (distance (car bbox)(cadr bbox)) 1.1)
)
)
(if (and
(setq ss (ssget "_CP" lst))
(setq ssall (ssget "_X" (list (assoc 410 (entget en)))))
)
(progn
(setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
(foreach e1 lst (ssdel e1 ssall))
(ACET-SS-ENTDEL ssall)
)
)
(command "_.undo" "_end")
)
)
)
No AutoCAD command to do that as far as I know.