Author Topic: Lisp to Create viewport  (Read 36292 times)

0 Members and 1 Guest are viewing this topic.

ahsattarian

  • Newt
  • Posts: 112
Re: Lisp to Create viewport
« Reply #30 on: September 20, 2021, 06:49:03 AM »

ahsattarian

  • Newt
  • Posts: 112
Re: Lisp to Create viewport
« Reply #31 on: September 20, 2021, 06:57:03 AM »
And This May Help U  :


Code - Auto/Visual Lisp: [Select]
  1. (defun c:a ()
  2.   (defun sub1 ()
  3.     (setq method2 2) ;|  #zoom  |;
  4.     (cond
  5.       ((= method2 1) (command "zoom" p1 p2 "zoom" (strcat (rtos sc) "x")))
  6.       ((= method2 2) (command "zoom" "c" pm (/ dy sc)))
  7.     )
  8.   )
  9.   (setq fuzzy 0.0001)
  10.   (setvar "tilemode" 1)
  11.   (setq s (car (entsel " Select Object : ")))
  12.   (redraw s 4)
  13.   (setq bbox (acet-ent-geomextents s)) ;|  #bounding box  |;
  14.   (setq p1 (car bbox))
  15.   (setq p2 (cadr bbox))
  16.   (setq pm (acet-geom-midpoint p1 p2))
  17.   (setq dx (abs (- (car p2) (car p1))))
  18.   (setq dy (abs (- (cadr p2) (cadr p1))))
  19.   (cond ((or (equal dx 0.0 fuzzy) (equal dy 0.0 fuzzy)) (print " ERROR !! ") (exit)))
  20.   (setvar "tilemode" 0)
  21.   ;;(setq sc 0.9)
  22.   (setq sc 1.0)
  23.   (setq method1 2)
  24.   (cond
  25.     ((= method1 1)
  26.      (command "pspace")
  27.      (sub1)
  28.      (setq method3 2)
  29.      (cond
  30.        ((= method3 1) (command "vports"))
  31.        ((= method3 2) (command "mview")) ;|  #mview  |;
  32.      )
  33.      (command p1 p2)
  34.      (command "mview" "on" "last" "")
  35.      (command "mview" "lock" "off" "last" "")
  36.      (command "mspace")
  37.      (setvar "cvport" (cdr (assoc 69 (entget (entlast))))) ;|  #cvport  |;
  38.      (sub1)
  39.      (command "regen")
  40.      (command "pspace")
  41.      (command "mview" "lock" "on" "last" "")
  42.     )
  43.     ((= method1 2)
  44.      (vla-put-mspace doc :vlax-false) ;|  #pspace  |;
  45.      (vla-zoomcenter (vlax-get-acad-object) (vlax-3d-point pm) (/ dy sc)) ;|  #zoom  |;
  46.      (setq obj (vla-addpviewport (vla-get-paperspace doc) (vlax-3d-point pm) dx dy))
  47.      (vla-display obj :vlax-true)
  48.      (vla-put-displaylocked obj :vlax-false)
  49.      (vla-put-mspace doc :vlax-true) ;|  #mspace  |;
  50.      (vla-put-activepviewport doc obj) ;|  #cvport  |;
  51.      (vla-zoomcenter (vlax-get-acad-object) (vlax-3d-point pm) (/ dy sc)) ;|  #zoom  |;
  52.      (vla-put-mspace doc :vlax-false) ;|  #pspace  |;
  53.      (vla-put-displaylocked obj :vlax-true)
  54.     )
  55.   )
  56.   (princ)
  57. )



jtoverka

  • Newt
  • Posts: 127
Re: Lisp to Create viewport
« Reply #32 on: December 07, 2022, 06:52:48 PM »
Is there an ObjectDBX compatible alternative to using the following?

Code: [Select]
     (vla-put-mspace doc :vlax-true) ;|  #mspace  |;
     (vla-put-activepviewport doc obj) ;|  #cvport  |;
     (vla-zoomcenter (vlax-get-acad-object) (vlax-3d-point pm) (/ dy sc)) ;|  #zoom  |;

Is it really not supported (by ObjectDBX) to directly put in the coordinates of your paperspace viewport view?