드림을 사용하고 있지 않아서요…
리습 초보입니다.. 아래 리습실행중..구하는점을 클릭하게 되면 다중지시선이 직각방향으로만 출력이 되는데…
첫번째 구하는점을 클릭후 두번째 클릭을 어느 위치나 방향으로 해도 다중지시선이 표시 될수 있도록 수정부탁드리겠습니다.(ps.좌표구하는 리습 처럼 지시선을 표시하고 싶네요)
(defun draw_txt()
(setvar “osmode” 0)
(setq txt_len (strlen (rtos next_elev 2 2)))
(setq txt (strcat “EL:” (rtos next_elev 2 2)))
(setq drw1_len (* text_size 4))
(setq drw2_len (* text_size 5))
(setq drw1_point (polar pick (* pi 0.5) drw1_len))
(setq drw2_point (polar drw1_point (* pi 2) drw2_len))
(setq txt_point (polar drw1_point (* pi 0.25) (/ text_size 3)))
(setq arrow (polar pick (* pi 0.5) text_size))
(setq arrow1 (polar arrow (* pi 2) (* text_size 0.25)))
(setq arrow2 (polar arrow (* pi 1) (* text_size 0.25)))
(command “pline” pick drw1_point drw2_point “”)
(command “solid” pick arrow1 arrow2 “” “”)
(command “text” txt_point text_size “” txt)
)
(defun run_FH()
(setq base_y (cadr pick))
(setvar “osmode” old_osm)
(setq pick (getpoint “nPick Next point :”))
(while pick
(setq next_y (cadr pick))
(cond
((> base_y next_y)
(setq ch_y (- base_y next_y))
(setq next_elev (- base_elev ch_y))
(draw_txt)
(setq base_elev next_elev)
)
((< base_y next_y)
(setq ch_y (- next_y base_y))
(setq next_elev (+ base_elev ch_y))
(draw_txt)
(setq base_elev next_elev)
)
((= base_y next_y)
(setq next_elev base_elev)
(draw_txt)
(setq base_elev next_elev)
)
)
(setq base_y (cadr pick))
(setvar “osmode” old_osm)
(setq pick (getpoint “nPick Next point :”))
)
)
(defun c:FH(/ base_elev ch_y drw1_point drw2_point base_y next_y)
(setvar “cmdecho” 1)
(setq old_osm (getvar “osmode”))
(setq height (getvar “textsize”))
(setq msg (strcat “Text size <” (rtos height 2 1) “> : “))
(princ “n”) (princ msg)
(setq text_size (getreal))
(if text_size
(setvar “textsize” text_size)
(setq text_size height)
)
(setq pick (getpoint “nPick Base point : “))
(if pick
(progn
(setq base_elev (car (entsel “nSelect Base elevation Text : “)))
(if base_elev
(progn
(setq base_elev (atof (cdr (assoc 1 (entget base_elev)))))
(run_FH))))))
부탁드립니다. .
상킄메론90님 감사합니다.!