아래의 리습에서 자꾸 오스넵이 근처점만 켜지고 나머지는 자동으로 꺼져 버려요..
끝점을 잡아야하는데..ㅜ.ㅜ
고수님들~~~고수님들의 지식이 필요해용~~^^
———————————————————————-
(defun c:4x ( / )
(setvar “CMDECHO” 0)
(command “osnap” “nea”)
(setq pta (getpoint “nSelect Left Side:”)
ptb (getpoint “nSelect Upper Side:”)
ptc (getpoint “nSelect Right Side:”)
ptd (getpoint “nSelect Lower Side:”))
(command “osnap” “”)
(setq pt1 (list (car pta) (cadr ptb) 0)
pt4 (list (car ptc) (cadr ptb) 0)
pt3 (list (car pta) (cadr ptd) 0)
pt2 (list (car ptc) (cadr ptd) 0))
(setq dt1 (distance pt1 pt4)
dt2 (distance pt3 pt1))
(setq pp (/ (- (cadr pt1) (cadr pt3)) 4)
qq (/ (- (car pt4) (car pt1)) 4))
(setq p (abs pp)
q (abs qq))
(setq pt5 (list (+ (car pt1) p) (- (cadr pt1) p) 0)
pt6 (list (- (car pt4) p) (+ (cadr pt2) p) 0))
(setq pt7 (list (car pt5) (cadr pt6) 0)
pt8 (list (car pt6) (cadr pt5) 0))
(setq pt9 (list (+ (car pt1) q) (- (cadr pt1) q) 0)
pt10 (list (- (car pt4) q) (+ (cadr pt2) q) 0))
(setq pt11 (list (car pt9) (cadr pt10) 0)
pt12 (list (car pt10) (cadr pt9) 0))
(if (> dt1 dt2)
(command “pline” pt5 pt7 pt6 pt8 “c”)
(command “pline” pt9 pt11 pt10 pt12 “c”))
(command “redraw”)
(princ)
)
(defun c:4y ( / )
(setvar “CMDECHO” 0)
(command “osnap” “nea”)
(setq pta (getpoint “nSelect Left Side:”)
ptb (getpoint “nSelect Upper Side:”)
ptc (getpoint “nSelect Right Side:”)
ptd (getpoint “nSelect Lower Side:”))
(command “osnap” “”)
(setq pt1 (list (car pta) (cadr ptb) 0)
pt4 (list (car ptc) (cadr ptb) 0)
pt3 (list (car pta) (cadr ptd) 0)
pt2 (list (car ptc) (cadr ptd) 0))
(setq pt5 (list (+ (/ (- (car pt4) (car pt1)) 4) (car pt1)) (+ (* (/ (- (cadr pt1) (cadr pt3)) 4) 3) (cadr pt3)) 0)
pt6 (list (+ (* (/ (- (car pt4) (car pt1)) 4) 3) (car pt1)) (+ (/ (- (cadr pt1) (cadr pt3)) 4) (cadr pt3)) 0))
(setq pt7 (list (car pt5) (cadr pt6) 0)
pt8 (list (car pt6) (cadr pt5) 0))
(command “pline” pt5 pt7 pt6 pt8 “c”)
(command “redraw”)
(princ)
)