Sponsored links

【AutoLISP サンプル】範囲をを分割してズーム 順番に全エリアをみる

Sponsored links
サンプル
Sponsored links
Jagaimo
Jagaimo

マウスで画面移動するのが面倒なとき、範囲を16分割し、1つづつ順番にズームアップします。

Sponsored links

コマンドの内容

下記の図のように16か所に決められた範囲を分割し、エリア1をズームします。

その後、クリックかエンターキーを押すことで次のエリアがズームされ、エリア16まで順番に移っていきます。

マージンも設定できるようになっています。

エリアを変えたいときは 左下の点、右上の点、マージン、を入力して変更できます。
初期値は、左下のが(0,0) 右上が(823.6,533.8) マージン 20になっています。

どんな枠でも、4×4の16等分で、ズームのエリアが決まります。

コマンド名

  • Zoom16 16分割された範囲のエリア1からエリア16まで順番にズームします。
  • ZoomReset 範囲とマージンをリセットします。ユーザー入力は、右下の点、左下の点、マージンの順です。

AutoLISP サンプル


;/////////////////////////////////////////////
;|
Jagaimo Lisp 
Zoom an Area of 1/16 Continuous Ver. 20210302
|;
;/////////////////////////////////////////////


(defun c:JagaZoomReset (/ Pt1 Pt2)

(princ "\n===========\n Zoom an Area of 1/16 Reset \n===========")

	(setq Pt1 (getpoint "Left Bottom Point:"))
	(setq Pt2 (getpoint "Right Top Point:"))
        (setq JagaMg (getint "Margin : "))

	(setq JagaBPX (car Pt1) JagaBPY (cadr Pt1) JagaPtX (car Pt2) JagaPtY (cadr Pt2))	
(princ)	
);

;--------------------------------------------

(defun c:Zoom16 ( / DefCmdEcho DefDynMode *error* JagaZoom16END)

   (setq DefCmdEcho (getvar "CMDECHO")) 
    (setvar "CMDECHO" 0)
   (setq DefDynMode (getvar "DYNMODE"))
    (setvar "DYNMODE" 3) 
  
   (defun *error* (msg)	
      (princ (strcat"\nJagaZoom16ERR\n " msg))
      (JagaZoom16END)
    (princ));defun Err
  
  (defun JagaZoom16END ()
     (setvar "CMDECHO" DefCmdEcho)
     (setvar "DYNMODE" DefDynMode)
   (princ "\n=========== JagaimoLISP.com ===========")
    (princ)
  );defun End
  
	(if
		(or(null JagaBPX)(null JagaBPY)(null JagaPtX)(null JagaPtY)(null JagaMg))
		(JagaZoomDef)
	);if
	
  
    (JagaZoom16 0 0.75 0.25 1 "1")
    (JagaZoom16 0.25 0.75 0.5 1 "2")
    (JagaZoom16 0.5 0.75 0.75 1 "3")
    (JagaZoom16 0.75 0.75 1 1 "4")

    (JagaZoom16 0 0.5 0.25 0.75 "5")
    (JagaZoom16 0.25 0.5 0.5 0.75 "6")
    (JagaZoom16 0.5 0.5 0.75 0.75 "7")
    (JagaZoom16 0.75 0.5 1 0.75 "8")

    (JagaZoom16 0 0.25 0.25 0.5 "9")
    (JagaZoom16 0.25 0.25 0.5 0.5 "10")
    (JagaZoom16 0.5 0.25 0.75 0.5 "11")
    (JagaZoom16 0.75 0.25 1 0.5 "12")

    (JagaZoom16 0 0 0.25 0.25 "13")
    (JagaZoom16 0.25 0 0.5 0.25 "14")
    (JagaZoom16 0.5 0 0.75 0.25 "15")
    (JagaZoom16 0.75 0 1 0.25 "16")
  
   (JagaZoom16END)

(princ))




;/////////////////////////////////////////

 (defun JagaZoom16 (ScX1 ScY1 ScX2 ScY2 Num / Pt1 Pt2)
  
   
	(setq 
    Pt1 
         (list 
           (-(+(*(- JagaPtX JagaBPX)ScX1)JagaBPX)JagaMg)
           (-(+(*(- JagaPtY JagaBPY)ScY1)JagaBPY)JagaMg)
         );list pt1
    
	  Pt2 (list 
          (+(+(*(- JagaPtX JagaBPX)ScX2)JagaBPX)JagaMg)
          (+(+(*(- JagaPtY JagaBPY)ScY2)JagaBPY)JagaMg)
        );list pt2
  );setq
	
	(command-s "._ZOOM" Pt1 Pt2)
   
   (if (= Num "16")
     (princ "--- End of JagaZoom16 ---")
     (getpoint (strcat Num "/16 " "Click or Entre to Next"))
   );if
  
(princ));defun

;--------------------------------------------	
; Default Setting
;--------------------------------------------	
(defun JagaZoomDef ()
	(if (null JagaPtX) (setq JagaPtX 823.6))
	(if (null JagaPtY) (setq JagaPtY 533.8))
	(if (null JagaBPX) (setq JagaBPX 0))
	(if (null JagaBPY) (setq JagaBPY 0))
	(if (null JagaMg) (setq JagaMg 20))	
);defun

;/////////////////////////////////////////

Comments