(defun c:ltr (/ CMDECHO F3 OS F8 OTH P1 LOOP GR P2 DP SE2 SE1 N K EN ENL)(defun *error* (s) (princ s) (setvar 'cmdecho cmdecho) (setvar 'osmode os) (setvar 'ORTHOMODE oth) ) (setq cmdecho (getvar 'cmdecho)) (setq f3 (getvar 'osmode) os f3) (setq f8 (getvar 'ORTHOMODE) oth f8) (setvar 'cmdecho 0) (initget 7) (setq p1 (getpoint "\nFirst point:")) (setq loop t) (while loop (setq gr (grread t 15)) (redraw) (cond ((= 5 (car gr)) (setq p2 (cadr gr)) (if (= 1 f8) (progn (setq dp (mapcar '- (apply 'mapcar (cons 'max (list p1 p2))) (apply 'mapcar (cons 'min (list p1 p2))) ) ) (if (> (car dp) (cadr dp)) (setq p2 (list (car p2) (cadr p1))) (setq p2 (list (car p1) (cadr p2))) ) ) ) (grdraw p1 p2 1 -1) ) ((= 3 (car gr)) (setq loop nil) (setq p2 (cadr (grread t 15))) (if (= 1 f8) (progn (setq dp (mapcar '- (apply 'mapcar (cons 'max (list p1 p2))) (apply 'mapcar (cons 'min (list p1 p2))) ) ) (if (> (car dp) (cadr dp)) (setq p2 (list (car p2) (cadr p1))) (setq p2 (list (car p1) (cadr p2))) ) ) ) ) ((equal gr '(2 6)); (if (< f316384) (progn (setq f3 (+ f3 16384))(prompt "\n")) (progn (setq f3 (- f3 16384))(prompt "\n")) ) (setvar "OSMODE" f3) ) ((equal gr '(2 15)); (if (= f8 0) (progn(setq f8 1)(prompt "\n")) (progn(setq f8 0)(prompt "\n")) ) (setvar "orthomode" f8) ) ) ) (setq se2 (ssget "f" (list p1 p2))) (if (null se2) (abcdefg)) (command "line" "non" p1 "non" p2 "") (setq se1 (entlast)) (grdraw p1 p2 1 -1) (initget 7 "") (setq p1 (getpoint "\nWhich side trim?:")) (if (= "" p1) (abcdefg)) (setq n (sslength se2) k 0) (repeat n (progn (setq en (ssname se2 k) enl (list en p1) ) (command "trim" se1 "" enl "") (setq k (1+ k)) ) ) (entdel se1) (redraw) (setvar 'cmdecho cmdecho) (setvar 'osmode os) (setvar 'ORTHOMODE oth) (princ) )
页:
1
[2]