可能会提供一些帮助@ILoveMadoka
- ;;----------------------------------------------------------------------------;;
- ;; Creates Viewport outline and moves it to Model space
- (defun C:VP2M (/ SS vp elist MiscOn cen c40 c41 LL UR)
- (if (setq SS (ssget "_X" (list '(0 . "viewport") (cons 410 (getvar 'ctab)))))
- (foreach vp (vl-remove-if 'listp (mapcar 'cadr (ssnamex SS)))
- (setq elist (entget vp))
- (if (> (cdr (assoc '69 elist)) 1) ; skip display viewport
- (progn
- (if (= (cdr (assoc '68 elist)) 0) ; is viewport active?
- (progn
- (setq MiscOn 'NO)
- (vl-cmdf "._Mview" "_on" "_si" vp) ; activate viewport
- ) ; progn
- (setq MiscOn 'YES)
- ) ; if
- (setq cen (cdr (assoc '10 elist))
- c40 (cdr (assoc '40 elist)) ;length
- c41 (cdr (assoc '41 elist)) ;width
- LL (list (- (car cen) (/ c40 2)) (- (cadr cen) (/ c41 2)))
- UR (list (+ (car cen) (/ c40 2)) (+ (cadr cen) (/ c41 2)))
- )
- (vl-cmdf "_.Pspace")
- (vl-cmdf "_.Rectangle" LL UR)
- (vl-cmdf "_.Chspace" "_Last" "")
- (vl-cmdf "_.Pspace")
- (if (eq MiscOn 'NO)
- (vl-cmdf "_.Mview" "_off" "_si" vp) ; deactivate viewport
- )
- )
- )
- )
- )
- ;(setvar 'Tilemode 1) ;go to model space
- (princ)
|