co-ordinated zoom, pan for multiple windows

co-ordinated zoom, pan for multiple windows

Anonymous
Not applicable
2,658 Views
4 Replies
Message 1 of 5

co-ordinated zoom, pan for multiple windows

Anonymous
Not applicable

Hi,

 

My first post in the autodesk community...

 

Is it possible, if looking at (say) 2 windows of the same area, to somehow lock them together to the same level of zoom and then, by panning around in one window, the same area pans around in the other window (eg displayed side by side).  Similarly, if one zooms in/out in one window, the other window (for the same area) zooms in and out?

 

This avoids having to zoom in/out in one window, selecting the other window and zooming in/out and then finding because the two windows aren't at the same level of zoom, you have to adjust a bit, then (wait, too much) adjust it out a bit, panning to the left, changing windows, panning that one to the left, but now its not panning the same amount so you have to pan it back to the right, but now the zoom is wrong, so select the other window and moving that and oh wait... what a waste of time... (get the idea? 😉

 

It would be nice if you could somehow co-ordinate the views so the same area is in 2 (or more) windows, locking them, then whatever movement you do in one window happens in other instances of the same area.

 

This would be useful for quickly, visually comparing two views (eg CAD maps) of the same area that may change over time and to identify the differences (eg missing objects in different layers)  eg missing trees over time, changes in roads, etc.

 

I am aware of extensions that can do compares between two drawings, but its not showing it in realtime as you move around at will, rather just snapshots of an entire drawing, which if it is fairly 'busy', hard to see the changes easily...

 

Thanks,

Alex

0 Likes
2,659 Views
4 Replies
Replies (4)
Message 2 of 5

paullimapa
Mentor
Mentor

No.

But you can use the VIEW SAVE option to save the current view with a given name say VIEW-1 and then use the VIEW RESTORE option select VIEW-1 to retrieve the exact same zoom view factor back in another window (PSpace Vport).

 

 

Area Object Link | Attribute Modifier | Dwg Setup | Feet-Inch Calculator
Layer Apps | List on Steroids | VP Zoom Scales |Exchange App Store


Paul Li
IT Specialist
@The Office
Apps & Publications | Video Demos
Message 3 of 5

hmsilva
Mentor
Mentor

Hi Alex,

 

'Is it possible, if looking at (say) 2 windows of the same area, to somehow lock them together to the same level of zoom and then, by panning around in one window, the same area pans around in the other window (eg displayed side by side).  Similarly, if one zooms in/out in one window, the other window (for the same area) zooms in and out?'

 

Possible?

Probably not.

Even using a reactor we would have to put active another window to trigger the reactor... and deal with reactors have to be 'very well thought out / structured' otherwise it may be a big mess...

 

If you don't mind to type two leters and press enter in each window, and same WCS/UCS in the windows to 'synchronize', perhaps something like this will do the trick

 

(vl-load-com)
(defun setzoom nil
  (setq *myzoom (mapcar 'getvar '("viewsize" "viewctr")))
  (vl-propagate '*myzoom)
  (princ)
)
(defun getzoom (/ acadapp)
  (cond (*myzoom
         (setq acadapp (vlax-get-acad-object))
         (vla-ZoomCenter acadapp (vlax-3d-point (cadr *myzoom)) (car *myzoom))
        )
        (T
         (prompt "\n To use GetZoom, you'll have to SetZoom first... ")
        )
  )
  (princ)
)
(defun c:sz nil
  (setzoom)
  (princ)
)
(defun c:gz nil
  (getzoom)
  (princ)
)

 

Make sure the routines are loaded in every dwg, type 'sz' to set the zoom, and gz to get the zoom in the other windows.

 

Hope this helps,
Henrique

 

EESignature

Message 4 of 5

Anonymous
Not applicable

Here is a small function that might help. I didn't spend much time trying to know how many viewports exist in the current space which is a bit tricky, so I just skipped the problem with a rest timer  :

(defun c:pansync ( / tempnb p1 p2 n mycvport)
  (if (or (not nbcvports)(>  (- (getvar "DATE") lastcheck) 0.0009))(setq nbcvports 6))
  (setq tempnb nbcvports lastcheck (getvar "DATE"))
  (cond
    ((and
      (setq p1 (getpoint "\nPan start :"))
      (setq p2 (getpoint p1 "\nPan end :"))
     )
     (setq n 1 mycvport (getvar "CVPORT"))
     (while (<= n tempnb)
       (setq nbcvports n)
       (setq n (+ n 1))
       (setvar "CVPORT" n)
       (command "_-pan" "_NON" p1 "_NON" p2)
       (setvar "CVPORT" mycvport)
     )
    )
  )
  (princ)
)

 

0 Likes
Message 5 of 5

vladimir_michl
Advisor
Advisor

There is a .NET add-on tool for this - DWGsync (free) - see:

https://apps.autodesk.com/ACD/en/Detail/Index?id=2788892389049910944&appLang=en&os=Win32_64

 

Vladimir Michl, www.cadstudio.cz - www.cadforum.cz

 

 

0 Likes