Message 1 of 7
Customized move tool

Not applicable
11-21-2019
02:54 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hello once again,
From time to time I need to move twice in a row the same object in ortogonal fashion:
- in example: 100 units left and then 50 unit up
- or: 50 units right and 20 units down etc.
I wrote this code that (almost) work...
It moves object up&right or up&left.
It swapped moving down&left with down&right and vice versa...
(defun c:magic_move (/ selection dist dist2 base quadrant move1 move2) (setq selection (ssget)) (setq dist (getreal "\nMagic move: ")) (setq dist2 (getreal "\nMagic move: ")) (setq base (getpoint "\nBase point: ")) (setq quadrant (getpoint base)) (if (> (car quadrant) (car base)) (if (> (cadr quadrant) (cadr base)) (setq move1 (polar base 0 dist) ;right move2 (polar base (/ pi 2) dist2) ;up ) ) (if (< (cadr quadrant) (cadr base)) (setq move1 (polar base 0 dist) ;right move2 (polar base (* 1.5 pi) dist2) ;down ) ) ) (if (< (car quadrant) (car base)) (if (> (cadr quadrant) (cadr base)) (setq move1 (polar base pi dist) ;left move2 (polar base (/ pi 2) dist2) ;up ) ) (if (< (cadr quadrant) (cadr base)) (setq move1 (polar base pi dist) ;left move2 (polar base (* 1.5 pi) dist2) ;down ) ) ) (magic_move move1 move2) ); defun (defun magic_move (move1 move2) (command "move" selection "" base move1 "") (command "move" selection "" base move2 "") (princ) ); defun
Anyone sees this bug?