리습을 실행 시키거나 실행종류후 osnap이 설정 되어 있던게 풀려 버리는데 몰라서 질문 합니다
리습을 모르는지라…. 고수님들 도와주세요… 리습은 밑에 올려 놓겠습니다…
——-다중복사———————
(defun C:MC ( / ent tdist pnt1 spt1 ang1 dist)
(princ “>> Multy Copy”)
(setvar “orthomode” 1)
(setq Old_osmode (getvar “osmode”))
(setq ent T)
(while ent (setq tdist 0)
(prompt “nSelect object to copy: “)
(setq Ent (SSget))
(if ent (progn (setvar “OSMODE” 1)
(setq Pnt1 (getpoint “base point: “))
(setvar “osmode” Old_osmode)
(setq spt1 (getpoint Pnt1 “ndirection “))
(setq ang1 (angle pnt1 spt1))
(while (and (setq dist (mc_udist 1 “” “distance” dist pnt1))(/= dist 0.0))
(setq tdist (+ tdist dist))
(setq spt1 (polar pnt1 ang1 tdist))
(command “Copy” Ent “” Pnt1 spt1)))
(princ “<*WARNING*> DO not sected.”))
)
(lisp_reco)
(princ)
)
(defun mc_udist (bit kwd msg def bpt / inp)
(if def (setq msg (strcat “n” msg “<” (rtos def) “>: “)bit (* 2 (fix (/ bit 2))))
(setq msg (strcat “n” msg “: “)))
(initget bit kwd)
(setq inp (if bpt (getdist msg bpt) (getdist msg)))(if inp inp def)
)
(princ)
(defun dtr(a)(* pi(/ a 180.0)))
(defun Midpick(/ p1 p2)
(setq p1(getpoint”First point:”))
(setq p2(getpoint”Second point:”))
(setvar”LASTPOINT”(polar p1(angle p1 p2)
(/(distance p1 p2)2))))
(defun MEET(/ A B C E)
(setq A(entget(car(entsel”Select first line:”)))
B(cdr(assoc 10 A))
C(cdr(assoc 11 A)))
(terpri)
(setq A(entget(car(entsel”Select first line:”)))
D(cdr(assoc 10 A))
E(cdr(assoc 11 A)))
(if(not(setq A(inters B C D E nil)))
(princ”nLines are co-linear or don’t meet in 3D. Try again.n”))
(trans a 0 1))
(defun BETWEEN(/ A B PT)
(setq A(getpoint”nPoint 1?”))
(setq B(getpoint a”nPoint 2?”))
(setq PT(list(/(+(car A)(car B))2.0)
(/(+(cadr A)(cadr B))2.0)))
(if(caddr A)
(setq PT(append PT(list(/(+(caddr A)(caddr B))2.0)))))PT)
(defun UND(/ X)
(setq sc(getvar “ltscale”))
(if(not(setq X(cadr(entsel”UNDERNEATH Pick Object: “))))
(progn(prompt”nNo object found.”)(princ))
(progn
(setq ss1(ssdel(ssname(ssget X) 0)
(ssget”C”(polar X 3.92699(* sc 0.01))
(polar X 0.785398(* sc 0.01)))))
(if(=(sslength ss1) 0)
(progn(prompt”nNothing underneath.”)(princ))
(eval ss1)))))
두분다 감사합니다…유용한데에 잘쓰겠습니다(__)(ㅡㅡ)
(if ent (progn (setvar “OSMODE” 1) <== 이부분의 1을 원하시는것로 바꾸시던가
실행후 오스냅은 다시 복귀가 되는데 실행 도중에 오스냅이 끝점만 되는데 이거는 어떻게 할수 없을까요…???