문자를 클릭해서 좌표 값 추출 후에 선을 그려 주는건데요
될때도 있고 안될때도 있고 해서 수정좀 부탁 드립니다
ㅜ.ㅜ
○ 좌 표: SP – 261849, 172953 되고요
○ 좌 표: SP – 261830, 172933 안돼요
왜그럴까요…ㅠ.ㅠ
(defun c:ppp (/ #x #a #b #c #d #f #g #h #xx #a #bb #cc #dd #ff #gg #hh)
(vl-load-com)
(setq #x “○ 좌 표: SP – “)
(setq #a(ssget ‘((0 . “text”))))
(repeat (setq #b(sslength #a))
(setq #c(vla-get-textstring(vlax-ename->vla-object(ssname #a (setq #b(1- #b))))))
(if (setq #h(vl-string-search #x #c))
(progn
(setq #d(vl-string->list(substr #c(+(strlen #x)(1+ #h)))))
(foreach #y #d
(if (and(> #y 45)(< #y 57)(/= #y 47)(not #f))
(setq #e(cons #y #e))
(setq #f t)
);;if
);;foreach
(setq #g(cons (reverse #e) #g) #e nil #f nil)
);;progn
);;if
);;repeat
(princ “값=”)
(setq aa (apply ‘+ (mapcar ‘(lambda (x)(atof(apply ‘strcat(mapcar ‘chr x))))#g)))
(setq #xx “, “)
(repeat (setq #bb(sslength #a))
(setq #cc(vla-get-textstring(vlax-ename->vla-object(ssname #a (setq #bb(1- #bb))))))
(if (setq #hh(vl-string-search #xx #cc))
(progn
(setq #dd(vl-string->list(substr #cc(+(strlen #xx)(1+ #hh)))))
(foreach #yy #dd
(if (and(> #yy 45)(< #yy 57)(/= #yy 47)(not #ff))
(setq #ee(cons #yy #ee))
(setq #ff t)
);;if
);;foreach
(setq #gg(cons (reverse #ee) #gg) #ee nil #ff nil)
);;progn
);;if
);;repeat
(princ “값=”)
(setq bb (apply ‘+ (mapcar ‘(lambda (x)(atof(apply ‘strcat(mapcar ‘chr x))))#gg)))
(setq pt1 (list aa bb))
(setq pt2 (getpoint “n 클릭 “))
(command “line” pt1 pt2 “”)
);;defun
공유