안녕하세요 제가 여러번 질문을 드려서 죄송한데,
이전에 쓰던 리습이 안되서 질문도 했었는데, 원래 오토캐드를 사용하지않고 지스타 캐드라고 정품인데, 라이센스 가격이 저가인 캐드를 사용합니다, 이번에 16버전으로 업데이트하면서 리습이 안되서 제가 혼자 연구도 해보고 하다가 아는 지인에게 물어보니, vla라는게 이번 버전에서 안먹힌다고 하더라구요….. 혹시 vla를 안쓰고 리습을 만드는 방법이 없을까요 ㅠㅠ 너무 필요한리습이라서 이렇게 글로 남겨봅니다.
-리습에 대한 설명은 다중으로 잡고 텍스트에 D10을 포함 하면 색상이100 이런식으로바뀌는 리습니다.
(vl-load-com)
(defun c:CS( / ss str)
(if (setq ss (ssget ‘((0 . “TEXT”))))
(vlax-for ob (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object)))
(cond
((wcmatch (setq str (strcase (vlax-get ob ‘textstring))) “*D10*”)
(vlax-put ob ‘color 100)
)
((wcmatch str “*D13*”)
(vlax-put ob ‘color 130)
)
((wcmatch str “*D16*”)
(vlax-put ob ‘color 160)
)
((wcmatch str “*D19*”)
(vlax-put ob ‘color 190)
)
((wcmatch str “*D22*”)
(vlax-put ob ‘color 220)
)
((wcmatch str “*D25*”)
(vlax-put ob ‘color 20)
)
((wcmatch str “*D29*”)
(vlax-put ob ‘color 181)
)
((wcmatch str “*D25*”)
(vlax-put ob ‘color 20)
)
((wcmatch str “*D32*”)
(vlax-put ob ‘color 136)
)
((wcmatch str “*D35*”)
(vlax-put ob ‘color 235)
)
((wcmatch str “*D38*”)
(vlax-put ob ‘color 138)
)
)
)
)
(princ)
)
사용해보았는데 됩니다 !!! ㅠㅠ 정말 정말로 감사드립니다.
항상 이렇게 도움받아서 언제나 감사하게 여기고 있습니다.
(defun c:test (/ idx dlst name ent cd1 ix10) (setq se (ssget ‘((0 . “TEXT”)(1 . “*D*”))))
(setq idx -1)
(setq dlst ‘((“D10” . 10)
(“D13” . 130)
(“D16” . 160)
(“D19” . 190)
(“D22” . 220)
(“D25” . 20)
(“D29” . 181)
(“D32” . 136)
(“D35” . 235)
(“D38” . 138)
)
)
(repeat (sslength se)
(setq name (ssname se (setq idx (1+ idx))))
(setq ent (entget name))
(setq cd1 (cdr (assoc 1 ent)))
(setq ix10 nil)
(foreach m dlst
(if (wcmatch cd1 (strcat “*” (car m) “*”))
(setq ix10 (cdr m))
)
)
(if (not ix10)(setq ix10 256))
(setq as62 (assoc 62 ent))
(if as62
(progn
(entmod (subst (cons 62 ix10) as62 ent))
)
(progn
(entmod (append ent (append (list (cons 62 ix10)))))
)
)
)
(princ)
)
질문이 이상하면
답변 두세번 가게 되고..
답변 안하게 되더군요..
수고하세요