VLAX-dump-object (객체의 정보값 DXF코드 역할)
함수 (vlax-dump-object obj [T])
여기서 OBJ란 : (vlax-ename->vla-object entityname) T : 생략도 가능 t 를 써주면 해당 객체의 모든정보를 보여주게됩니다. ☆T 를 써주면 특성과 메써드 ☆T 를 생략하면 특성값만 보여지게 됩니다. |
하루와 리습스터디를 보시면 DXF코드가 얼마나 중요한지는 아실수있습니다.
이와 마찬가지로 VL함수를 쓰면 DUMP 값이 해당 역할을 하게됩니다.
우선 비교를 해보겠습니다. 원의 대한 속성입니다.
(defun c:ent()
(setq ss (entsel))
(setq en (car ss))
(setq ed (entget en))
)
해당 리습으로 리습을 구성할때 DXF 코드값을 보면서 하면 쉽습니다. 응답값은
((-1 . <도면요소 이름: 6f2dac08>) (0 . "CIRCLE") (330 . <도면요소 이름: 74566c10>)
(5 . "111D1") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 .
"AcDbCircle") (10 230.878 296.039 0.0) (40 . 40.4036) (210 0.0 0.0 1.0))
이런식으로 구성이됩니다. (/0 객체/8 레이어/10 중심점/40 반지름)
VL로 해서 받아보겠습니다. (defun c:DUM() )
이제부터는 이 리습을 달고사세여.^^ 위 ent 랑 같은 역할입니다.
동일객체에 대해 적용을 시키면 아래와 같은 값을 얻을수가 있습니다.
명령: dum |
그럼 이젠 이걸 활용하는 방법에 대해서 알아보겠습니다.
DXF 코드같은경우는 ed가 entity list 일때
(cdr (assoc 코드값 ed)) 라는것으로 받는걸 아실수 있습니다. (처음하시는분은 하루와리습게시판참조)
VL 의 경우는 특성값과 메써드 가 있습니다.
특성값의 경우는 dxf 코드값이랑 비슷하다고 보시면 될거같습니다.
메써드는 해당 entity 를 제어할수 있는 명령어라고 보시면 될거같습니다.
특성값을 받아오는 방법은 (VLA-GET-특성 OBJ) 입니다.
여기서 OBJ 란 위에서 말씀드렸던 (setq obj (vlax-ename->vla-object (car (entsel))))
- ; Radius = 40.4036 요값을 받아와 볼까여?
COMMAND : (VLA-GET-Radius OBJ) 엔터
응답값-> 40.4036
이런식으로 (VLA-GET-Radius OBJ) 또는 (VLA-GET-AREA OBJ) 등등 특성값을 가져올수있습니다.
VLA-PUT-특성도 있지만 그건 나중에 다루겠습니다.
--------------------------------------------------------------------------------------------
; 지원되는 메써드:
; ArrayPolar (3)
; ArrayRectangular (6)
; Copy ()
이번엔 메써드에 대해서 알아보겠습니다.
메써드는 해당 객체를 제어할수 있는 명령어 입니다.
이걸 가져와 명령어로 사용할려면 VLA- 만 앞에 붙혀주면됩니다.
즉. VLA-Copy 또는 VLA-ArrayPolar ....
이번 항목에서는 메써드가 몬지만 알고 넘어가시구여. 이걸 사용하는 방법은 나중에 다루겠습니다.^^
그럼 이젠 이걸 활용하는 방법에 대해서 알아보겠습니다.
DXF 코드같은경우는 ed가 entity list 일때 (cdr (assoc 코드값 ed)) 라는것으로 받는걸 아실수 있습니다. (처음하시는분은 하루와리습게시판참조)
VL 의 경우는 특성값과 메써드 가 있습니다.
특성값의 경우는 dxf 코드값이랑 비슷하다고 보시면 될거같습니다. 메써드는 해당 entity 를 제어할수 있는 명령어라고 보시면 될거같습니다.
특성값을 받아오는 방법은 (VLA-GET-특성 OBJ) 입니다. 여기서 OBJ 란 위에서 말씀드렸던 (setq obj (vlax-ename->vla-object (car (entsel))))
- ; Radius = 40.4036 요값을 받아와 볼까여? COMMAND : (VLA-GET-Radius OBJ) 엔터 응답값-> 40.4036
이런식으로 (VLA-GET-Radius OBJ) 또는 (VLA-GET-AREA OBJ) 등등 특성값을 가져올수있습니다. VLA-PUT-특성도 있지만 그건 나중에 다루겠습니다.
-------------------------------------------------------------------------------------------- ; 지원되는 메써드:
이번엔 메써드에 대해서 알아보겠습니다.
메써드는 해당 객체를 제어할수 있는 명령어 입니다. 이걸 가져와 명령어로 사용할려면 VLA- 만 앞에 붙혀주면됩니다.
즉. VLA-Copy 또는 VLA-ArrayPolar ....
이번 항목에서는 메써드가 몬지만 알고 넘어가시구여. 이걸 사용하는 방법은 나중에 다루겠습니다.^^ |
DUM 만 사용하지 마세요 entsel로 선택한 것만 덤프를 받을수 있는구문이거든요^^
(vlax-dump-object (vla-get-activedocument (vlax-get-acad-object)) t)
이것처럼 활성화된 문서 레이어등....
출처 : 아키모아 행복한 하루 http://cafe.daum.net/archimore/IP9e/17
'Auto CAD > lisp' 카테고리의 다른 글
VL-string-search (문자간 특정문자 비교) (0) | 2019.04.04 |
---|---|
vl-sort 에 대해.. (1) | 2019.04.04 |
VLA-GetBoundingBox (Entity의 좌하 우상 좌표) (2) | 2019.04.04 |
달수가 생각하는 VisualLISP 과 Excel 연동 1 (0) | 2019.04.04 |
달수가 생각하는 VisualLISP 과 Excel 연동 2 (0) | 2019.04.04 |