치수선 정렬 리습을 구해서 쓰고 있는데요
이게 어쩔떄는 잘되는데 어쩔때는 또 안먹히다라구요
안먹힐때는 에러메세지가
error : bad argument type <(13)> ; expected <LIST> at [DXF/XED DATA]
이렇게 나오는데요 중간에 13 숫자는 가끔 바뀌더라구요 14가 나올때도 있고
이유가 머인지 아시는분 답변좀 부탁드립니다
아래는 제가 쓰는 리습입니다
=======================================
;;—— Dimension Arrange ——————————-
(defun c:da(/ ss ssn k ed p10 p13 p14 ag ag90 pt1 pt2 pt3)
(prompt “…치수선 및 보조선 정렬하기”)
(prompt “n변경할 치수을 선택->”)
(setq ss (ssget ‘((0 . “DIMENSION”))))
(setq pt1 (getpoint “n정렬점 선택->”))
(setq ssn (sslength ss))
(setq ed (entget (ssname ss 0)))
(setq p14 (cdr (assoc 14 ed)))
(setq p10 (cdr (assoc 10 ed)))
(setq ag (angle p14 p10))
(setq ag90 (+ ag (/ pi 2)))
(setq ds1 (distance pt1 p10))
(setq ds2 (distance pt1 p14))
(setq k 0)
(if (< ds1 ds2)
(repeat ssn
(setq ed (entget (ssname ss k)))
(setq ed (subst (cons 10 pt1) (assoc 10 ed) ed))
(entmod ed)
(setq k (+ k 1))
)
(repeat ssn
(setq ed (entget (ssname ss k)))
(setq p13 (cdr (assoc 13 ed)))
(setq p14 (cdr (assoc 14 ed)))
(setq p10 (cdr (assoc 10 ed)))
(setq pt2 (polar pt1 ag90 100))
(setq pt3 (polar p13 ag 100))
(setq pt14 (inters pt1 pt2 p14 p10 nil))
(setq pt13 (inters pt1 pt2 p13 pt3 nil))
(setq ed (subst (cons 13 pt13) (assoc 13 ed) ed))
(setq ed (subst (cons 14 pt14) (assoc 14 ed) ed))
(entmod ed)
(setq k (+ k 1))
)
)
(prin1))
공유