안녕하세요~!
첨부된 이미지에서처럼
끊어진 부분을 이어서 막아주는 리습이 있을까요?
찾아봤는데 떨어진 수평선을 연결해주는 리습은 있는데..
저런 경우엔 적용이 안되서요.
혹시 아시는분 있으시면 도움좀 부탁드릴게요~!
감사합니다~
공유
비밀번호를 잊으셨나요? 비밀번호를 재설정하려면 이메일 주소를 입력해주세요.
해당 질문을 신고하는 이유를 간단히 입력해주세요.
해당 답변을 신고하는 이유를 간단히 입력해주세요.
해당 유저를 신고하는 이유를 간단히 입력해주세요.
제가 비슷한거 쓰는게 있는데
저는 직선인 경우만 막아주는걸로 쓰고 있습니다.
호나 스플라인은 안 써서요.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:QQ(/ osmode point2x point2y discpx discpy obje objecnt limit plus numth point1 point1x point1y line1 line11 line2 line22 line1s line1l line2s line2l l1sx l1sy l1lx l1ly l2sx l2sy l2lx l2ly dist1 dist2 dist3 dist4)
(defun *error* (msg)(princ “error: “)(princ msg)
(setvar “osmode” osmode) (command “clayer” “0”) (princ) )
(setq osmode (getvar “osmode”))
(setvar “osmode” 0)
(SETQ NUMTH 1)
(while (/= (setq point1 (getpoint “n Line Insert 의 포인트를 클릭하세요.. (종료는 엔터키) “)) nil)
(setq point1x (car point1)
point1y (cadr point1))
(setq obje nil) ;루프를 시작하기전에 변수에 초기값을 준다.
(setq objecnt 0)
(setq limit 0)
(setq plus 0)
(while (and (/= 2 objecnt) (> 100 limit) ) ; 클릭한 포인트를 기준으로 가장 근접한 두개의 선을 선택세트에 담는다.
(setq obje nil)
(setq plus (+ plus 5))
; (command “rectangle” (list ( + point1x plus ) (- point1y plus ) 0 ) (list ( – point1x plus ) (+ point1y plus ) 0 ) ) ;디버깅용 코드
(setq obje (ssget “c” (list ( + point1x plus ) (- point1y plus ) 0 ) (list ( – point1x plus ) (+ point1y plus ) 0 ) ‘((0 . “LINE”)) ))
(if (/= obje nil)
(setq objecnt (sslength obje))
)
(setq limit (+ limit 1))
) ;eob of while
(if (= limit 100)
(progn
(prompt “n over attempt limit….. “) ; 객체검색 횟수의 상한초과시 메시지
(princ)
)
(progn ;상한횟수 이내에 두객체가 존재한다면 선연결하기
(setq line1 (ssname obje 0)) ;라인1의 정보가져오기
(setq line11 (entget line1))
(setq line1s (assoc 10 line11)
line1l (assoc 11 line11))
(setq l1sx (cadr line1s)
l1sy (caddr line1s))
(setq l1lx (cadr line1l)
l1ly (caddr line1l))
(setq line1s (list l1sx l1sy 0)
line1l (list l1lx l1ly 0))
(setq line2 (ssname obje 1)) ;라인2의정보가져오기
(setq line22 (entget line2))
(setq line2s (assoc 10 line22)
line2l (assoc 11 line22))
(setq l2sx (cadr line2s)
l2sy (caddr line2s))
(setq l2lx (cadr line2l)
l2ly (caddr line2l))
(setq line2s (list l2sx l2sy 0)
line2l (list l2lx l2ly 0))
(setq dist1 (distance point1 line1s)
dist2 (distance point1 line1l)
dist3 (distance point1 line2s)
dist4 (distance point1 line2l)
)
(if (< dist1 dist2) ;시작점과 끝점중에서 더 가까운점을 찾는다.
(setq line1l line1s)
)
(if (< dist3 dist4)
(setq line2l line2s)
)
(command “line” line1l line2l “”) ;선긋는다.
) ;end of progn
) ;EOB IF
(SETQ NUMTH (+ NUMTH 1))
) ;EOB OF WHILE
(setvar “osmode” osmode)
(PROMPT “n exit line creater…”)
(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
스플라인이나 호 인식되게끔 수정하는거는 시간되시는분 댓글로 해주시길…