첨부와 같이 기존에 두선이 있을 경우에는 그 교차점을 중심으로 호를 그린다음 호와 교차되는 선을 끊어주고, 기존에 선이없는 경우에는 선택한 지점에 호만 그릴 수 있게 만들려고 합니다. 어떻게 완성해야 될지 많은 조언 부탁드립니다.
====================================================================
(defun c:eld()
(setq la (getvar “clayer”))
(setq os (getvar “osmode”))
(defun myerror(S)
(if (/= s “Function cancelled”)(princ (strcat “nError:” s)))
(setvar “osmode” os)
(setvar “clayer” la)
(setq *error* olderr)(princ)
)
(prompt “
;;;(size_print)
;;;(if (= “d_log” input_size) (pipe_size))
;;;(if (= “key” input_size)(setq fn 100.0))
;;;(if (= fn 100.0) (progn (prompt “n호칭경 입력 <")
;;;(princ si1) (princ ” in>:”) (setq fn(getint ))))
;;;(if (= nil fn)(setq fn si1))
;;;;(setq si1 fn)
;;;;(file_open_fitt)
(setq a (atof (substr a2 4 5)))
(setq b (atof (substr a2 10 5)))
(defun dtr(a) (/ (* a pi) 180.0))
(graphscr)
(setq p1 (getpoint “n시작 점 지정 :”))
(if (= elbi 1)
(progn (setq center_point(getpoint p1 “n진행 방향 지정 :”))
(setq ang_center(angle p1 center_point))
(setq p1 (polar p1 ang_center a))
))
(setq p2 (getpoint p1 “n윗쪽 엘보 방향 지정 :”))
(setq ang1 (angle p1 p2))
(setq p2 (polar p1 ang1 a))
(setq p5 (polar p1 (+ ang1 (dtr 45))(/ b 2.0)))
(setq p6 (polar p1 (+ ang1 (dtr 315))(/ b 2.0)))
;;;;(vm_set)
(command “arc” “c” “none”p1 “none”p5 “none”p6)
(command “layer” “s” “HA1” “”)
;;;(if (= pipeline “on”)
;;;(command “line” “none”p1 “none”p2 “”))
(if (or (< fn 2)(= fn 15)(= fn 43)
(progn (command “layer” “s” “HA2” “”)
(command “line” “none” (polar p2 (+ ang1 dtr 90)) (/ b 2.0)) “none” (polar p2 (+ ang1 (dtr 270)) (/ b 2.0)) “”))
(progn (command “layer” “s” “HA1” “”)
(command “donut” “0” “none”p2 “”)
(command “circle” “none” p2 “d” w2)))
(command “layer” “s” “0” “”)
;;;;(center)
(setq p3 (getpoint p1 “n아래쪽 방향 지정 :”))
(setq ang2 (angle p1 p3))
(setq p3 (polar p1 ang2 a))
(setq p4 (polar p1 ang2 (/ b 2.0)))
(if ( <=====여기쯤에 넣어야 하는데...도와주세요
(command “layer” “s” “HA1” “”)
(setq pbc(polar p1 ang1 w2))
(setq pb1(polar p1 (+ ang1 (dtr 90)) w2))
(setq pb2(polar p1 (+ ang1 (dtr 180)) w2))
(setq pb3(polar p1 (+ ang1 (dtr -90)) w2))
(command “layer” “s” “HA1” “”)
(if (= pipeline “on”)
(command “line” “none”p3 “none”p4 “”)
)
(if (or (< fn 2)(= fn 15)(= fn 43))
(progn
(command “layer” “s” “HA2” “”)
(command “line” “none” (polar p3 (+ ang2 dtr 90)) (/ b 2.0)) “none” (polar p3 (+ ang2 (dtr 270)) (/ b 2.0)) “”))
(progn
(command “layer” “s” “HA1” “”)
(command “donut” “0” w2 “none”p3 “”) (command “circle” “none” p3 “d” w2))
)
(command “layer” “s” “0” “”)
(close a1)
)