(defun c:test1()
(if (setq en (car (entsel “하이퍼링크를 바꿀 객체”)))
(vlax-for hyp (vla-get-hyperlinks (vlax-ename->vla-object en))
(setq rs1(vla-get-url hyp))
(setq rs2(vl-string-subst “.pdf” “.dwg” rs1))
(setq dele(vla-delete hyp)) ;;기존에 있는 하이퍼링크를 없애야됨!!vla-detach는 아니고 vla-delete예상 -> vla-delete확인 -> en2에 있던 첫번재 객체의 하이퍼링크 제거
(entmod ;;이름을 바꾼 pdf파일 하이퍼링크 삽입하기-> en2에다 rs2를 삽입
(append
(entget en)
(list
(list
-3
(cons “PE_URL”
(list
(cons 1000 rs2)
(cons 1002 “{“)
(cons 1000 rs2) ;;tooltip
(cons 1002 “}”)
)
)
)
)
)
)
)
)
)
PDF파일이 같은 폴더안에 같은 이름으로 되있다는 가정하에 하이퍼링크된 dwg파일을 pdf파일로 바꾸는 리습을 진행하고 있습니다.
entsel을 이용해서 하나의 객체는 성공했는데 도면 내에 dwg로 된 모든 하이퍼링크 선택하는 부분에서 (ssget “x” (list ‘(0 . “TEXT, MTEXT”) -3 (cons “PE_URL”))))) 혹은 (ssget “x” ‘(0, “TEXT, MTEXT”) -3(“PE_URL”))을 사용하여 하고자 하였으나 계속 오류가 되고 있습니다. 도면 내에 모든 하이퍼링크를 선택하는 방법좀 알고 싶습니다^^
감사합니다!!
(ssget “X” ‘((-3 (“PE_URL”))))