Entity 편집 함수
많은 사람들이 Entity 함수를 이용하여 유용한 LISP 프로그램들을 개발하지만 개인적으로
Entity 함수를 거의 사용하지 않으므로 Entity에 대한 강좌는 조금 부족하다는 생각이 듭니다.
Entity 함수를 자주 사용하다 보면 에러 발생의 소지도 높은 것 같으며, 대부분은 Entity 함수
를 사용하지 않더라도 다른 방법으로 해결이 가능하다고 생각합니다.
AutoLISP에서의 Entity 함수는 C 언어의 포인터와 비슷한 성질의 것이어서 AutoLISP을 강력
하게 만들어 주기도 하지만, 한편으로는 사용법이 까다로워서 쉽게 익히기도 어려우며 잘못
사용시에는 프로그램의 완성도를 떨어뜨리는 요인으로 작용하기도 합니다.
위의 내용들은 어디까지나 개인적인 생각이며, 중요한 것은 자신만의 프로그램 기법을 터득
하는 것이라 할 수 있겠습니다.
* 참고
Entity의 이름은 16진 상수로 표현되기 때문에 작성자가 Entity 이름을 직접 지정하기는 불가능하다고
볼 수 있습니다. 편집할 Entity를 지정하기 위해서는, 처음 선택시 Entity 이름을 저장한 변수를 통해서
가능하다고 할 수 있습니다.
따라서, 아래 함수들의 사용법에서 앞의 예는 보다는 뒤의 예가 맞는 사용법이라 할 수 있습니다.
(1) 기능
List의 요소들이 List로 구성된 List에서 지정한 항목(item)을 포함하고 있는 List(요소)를 출력합니다.
이 함수는 List 함수로 구분 되기도 하지만, Entity 데이터가 LIST로 구성되어 있기 때문에 List 대신
Entity 데이터를 지정해도 함수 본래의 기능을 발휘(?)합니다.
이 함수는 Entity를 편집할 때, 활용도가 매우 크므로 반드시 익혀야할 함수 중에 하나라고 할 수 있
습니다.
(2) 사용법
(assoc Item List-Name)
(assoc Item Entity-Name) or (assoc Item Variable)
(3) 예
(1) 기능
LIST 안에 존재하는 값들 중에서 지정한 값를 새로운 값으로 교환하는 함수입니다.
이 함수도 LIST 함수로 구분 되기도 하지만, 위에서 설명했듯이 Entity 데이터를 편집할 수 있습니다.
(2) 사용법
(subst New-item Old-item List-Name)
(subst New-item Old-item Entity-Name) or (subst New-item Old-item Variable)
(3) 예
(1) 기능
지정한 Entity와 동일한 이름의 Entity를 삭제합니다.
만약, 지정한 Entity가 이미 삭제되었다면 다시 복구하게 됩니다.
(2) 사용법
(entdel Entity-Name) or (entdel Variable)
(3) 예
(1) 기능
지정한 Entity data와 동일한 새로운 Entity를 만듭니다.
성공적으로 Entity를 생성하면 Entity 이름을 리턴하며, 실패시에는 [nil]을 리턴합니다.
(2) 사용법
(entmake Entity-Data)
(3) 예
entmake와 거의 동일한 기능을 갖는 함수로 생각됩니다.
자세한 자료가 없어서........
(1) 기능
[subst] 등에 의해 변경된 Entity를 화면상에 새로이 출력합니다.
변경된 Entity는 화면상에서는 아무런 변화를 갖지 않으며, [entmod]를 사용해서
새로이 갱신시켜 주어야만 변경된 Entity가 화면에 표시됩니다.
(2) 사용법
(entmod Entity-Name) or (entmod Variable)
(3) 예
(1) 기능
PLINE의 꼭지점이나, 블록의 속성같은 요소들의 변경시에는 [entmod]에 의해서는 화면상에
새로이 갱신되지 않습니다. [entupd]는 이러한 요소들을 화면에 갱신하는 기능을 갖습니다.
(2) 사용법
(entupd Entity-Name) or (entupd Variable)
(3) 예
8. ssdel(Selection Set DELete)
(1) 기능
Selection Set에서 지정한 Entity를 삭제하며, Selection Set의 이름을 리턴합니다.
(2) 사용법
(ssdel Entity-Name Selection-set) or (ssadd Variable Variable)
(3) 예
(1) 기능
지정한 Entity를 Selection Set에 추가시킵니다.
만약, Selection Set를 지정하지 않으면 새로운 Selection Set를 생성합니다.
(2) 사용법
(ssadd Entity-Name Selection-set) or (ssadd Variable Variable)
(3) 예