아래 교차점 관련 질문인데요….
제가 소스를 올려볼께요
(defun sl-divlst (lst num / e blst nlst)
(while (> (length lst) 0)
(repeat num
(setq e (car lst) blst (cons e blst))
(setq lst (cdr lst) e (car lst))
)
(setq nlst (append nlst (list (reverse blst))) blst nil)
)
nlst
)
(defun send_xy (s_list attr_num / s_len i gn_list j i)
(setq s_len (length s_list))
(setq i 0 j 0)
(setq gn_list (list ))
(while (< i s_len)
(if (= attr_num (car (nth i s_list)))
(progn
(setq gn_list (cons (cdr (nth i s_list)) gn_list))
(setq j (+ j 1))
)
)
(setq i (+ i 1))
)
(setq gn_list (reverse gn_list))
)
;————–
(defun c:a ()
(setq ent_name (car(entsel)))
(setq ent2_name (car(entsel)))
(setq ent_list (entget ent_name))
(setq ent_10 (send_xy ent_list 10))
(setq ent2_list (entget ent2_name))
(setq ent2_10 (send_xy ent2_list 10))
(vl-load-com)
(setq vl_name1 (vlax-ename->vla-object ent_name) vl_name2 (vlax-ename->vla-object ent2_name)) (setq vl_inx (vlax-invoke vl_name1 ‘IntersectWith vl_name2 0))
(setq div_pt (sl-divlst vl_inx 3))
(distance (nth 2 ent2_10) (nth 0 div_pt))
);
;————-
첨부파일에서 위의소스를 실행했을때
처음 흰색객체선택하고 두번째 하늘색 객체 선택했을경우
제가 앞전에 질문드렸듯이 IntersectWith로 구해진 교차점 (224285.0 582788.0 0.0) 이것과
ent2_10 변수에 담긴 10번 좌표값 (224285.0 582788.0) 이것과 위치가 같거든요…
위소스에서 젤마지막부분
(distance (nth 2 ent2_10) (nth 0 div_pt)) 이부분을 실행했을때 거리값이 0이나오는게 아니고
2.91038e-011 이렇게 나오거든요……
노란색 서클로 표시된 교차점 부분은 이렇게 잘못나오는데 또 분홍색으로 표시된 교차점부분을
(distance (nth 3 ent2_10) (nth 1 div_pt))
이렇게 구해보면 또 0이 나오거든요…
같은위치인데 거리를 구했을때 왜 0이안나오는건지 당최 어디가 잘못된건지 이해가 안가서요…