두변 말고 대각선 길이가 일정하게 주어질때 모따기하는 리습을 구합니다.
곡선이나 아크부분은 안되도 상관없구요 직선일때 모따기만 되면 되거든요.
자료실이랑 질문방 다 뒤져도 리습이 없네요. 꼭 부탁드립니다.
공유
비밀번호를 잊으셨나요? 비밀번호를 재설정하려면 이메일 주소를 입력해주세요.
해당 질문을 신고하는 이유를 간단히 입력해주세요.
해당 답변을 신고하는 이유를 간단히 입력해주세요.
해당 유저를 신고하는 이유를 간단히 입력해주세요.
허걱… 제도할때는 두변이 주어질텐데….. 그래서 모따기 두변이 있는거 아닌가요??? 그런리습은 못봤는데… 고수님이 만들어주셔야겠네요…
chamfer 명령을 사용해도 쉽게 할 수 있습니다.
허허…과연 모따기에 리습이 필요할까요….ㅡ.ㅡ
이런……..너무 쉽게 그릴라구하네……..
;;;1:1기울기만 됩니다. ang1의 각도를 바꾸면 임의의 각도도 될(?)껍니다.
;;;처음 선택된 라인이 ang1의 각도입니다.
(defun c:cfd (/ loop ent oldent dist nea1 nea2 ent1 ent2 ang1 ang2 len1 len2 sp1 sp2 ep1 ep2 intp ent1p ent2p)
(defun dtr (a) (* pi (/ a 180.0)))
(setq loop t)
(while loop
(initget ” “)
(setq ent (entsel (strcat “n 라인선택 : “)))
(cond
((= ent nil) (setq loop t))
((= ent “”)
(if oldent (redraw (car oldent) 4))
(setq loop nil)
)
(t
(if oldent
(if (= (cdr (assoc 0 (entget (car ent)))) “LINE”)
(progn
(setq dist (getdist “n 모따기 길이 : “))
(if dist
(progn
(setq ent1 (entget (car oldent)))
(setq ent2 (entget (car ent)))
(setq nea1 (osnap (cadr oldent) “_nea”))
(setq nea2 (osnap (cadr ent) “_nea”))
(setq ang1 45.0)
(setq ang2 (- 90 ang1))
(setq len1 (* dist (cos (dtr ang1))))
(setq len2 (* dist (cos (dtr ang2))))
(setq sp1 (cdr (assoc 10 ent1)))
(setq ep1 (cdr (assoc 11 ent1)))
(setq sp2 (cdr (assoc 10 ent2)))
(setq ep2 (cdr (assoc 11 ent2)))
(setq intp (inters sp1 ep1 sp2 ep2 nil))
(if intp
(progn
(if (= (atof (rtos (angle nea1 sp1) 2 8)) (atof (rtos (angle nea1 intp) 2 8)))
(progn
(setq ent1p (polar intp (angle intp ep1) len1))
(entmod (subst (cons 10 ent1p) (cons 10 sp1) ent1))
)
(progn
(setq ent1p (polar intp (angle intp sp1) len1))
(entmod (subst (cons 11 ent1p) (cons 11 ep1) ent1))
)
)
(if (= (atof (rtos (angle nea2 sp2) 2 8)) (atof (rtos (angle nea2 intp) 2 8)))
(progn
(setq ent2p (polar intp (angle intp ep2) len2))
(entmod (subst (cons 10 ent2p) (cons 10 sp2) ent2))
)
(progn
(setq ent2p (polar intp (angle intp sp2) len2))
(entmod (subst (cons 11 ent2p) (cons 11 ep2) ent2))
)
)
(if (> (distance ent1p ent2) 0.0) (command “line” ent1p ent2p “”))
)
)
(setq loop nil)
)
(progn
(if oldent (redraw (car oldent) 4))
(setq loop nil)
)
)
)
)
(progn
(if (= (cdr (assoc 0 (entget (car ent)))) “LINE”)
(progn
(setq oldent ent)
(redraw (car oldent) 3)
(setq ent nil)
)
(princ “n 라인이 아닙니다.”)
)
)
)
)
)
)
(princ)
)
ㅋㅋㅋ
도시계획선 가각 정리할때 많이 쓰는 리습입니다