VLAX-dump-object (객체의 정보값 DXF코드 역할)

Auto CAD/lisp|2019. 4. 4. 12:15

함수

  (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()
  (setq obj (vlax-ename->vla-object (car (entsel))))
  (vlax-dump-object obj t)

)

 

이제부터는 이 리습을 달고사세여.^^ 위 ent 랑 같은 역할입니다.

 

동일객체에 대해 적용을 시키면 아래와 같은 값을 얻을수가 있습니다.

 

명령: dum
객체 선택: ; IAcadCircle: AutoCAD Circle 인터페이스
; 특성 값:
;   Application (RO) = #<VLA-OBJECT IAcadApplication 00d74d3c>
;   Area = 5128.48
;   Center = (230.878 296.039 0.0)
;   Circumference = 253.863
  Diameter = 80.8071
;   Document (RO) = #<VLA-OBJECT IAcadDocument 186f1e20>
;   Handle (RO) = "111D1"
;   HasExtensionDictionary (RO) = 0
;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 0868e434>
;   Layer = "0"
;   Linetype = "ByLayer"
;   LinetypeScale = 1.0
;   Lineweight = -1
;   Material = "ByLayer"
;   Normal = (0.0 0.0 1.0)
;   ObjectID (RO) = 1865264136
;   ObjectName (RO) = "AcDbCircle"
;   OwnerID (RO) = 1951820816
;   PlotStyleName = "ByLayer"
;   Radius = 40.4036
;   Thickness = 0.0
;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 18423098>
;   Visible = -1
; 지원되는 메써드:
;   ArrayPolar (3)
;   ArrayRectangular (6)
;   Copy ()
;   Delete ()
;   GetBoundingBox (2)
;   GetExtensionDictionary ()
;   GetXData (3)
;   Highlight (1)
;   IntersectWith (2)
;   Mirror (2)
;   Mirror3D (3)
;   Move (2)
;   Offset (1)
;   Rotate (2)
;   Rotate3D (3)
;   ScaleEntity (2)
;   SetXData (2)
;   TransformBy (1)
;   Update ()
T  

그럼 이젠 이걸 활용하는 방법에 대해서 알아보겠습니다.

 

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-특성도 있지만 그건 나중에 다루겠습니다. 

 

--------------------------------------------------------------------------------------------

; 지원되는 메써드:
;   ArrayPolar (3)
;   ArrayRectangular (6)
;   Copy ()

 

이번엔 메써드에 대해서 알아보겠습니다.

 

메써드는 해당 객체를 제어할수 있는 명령어 입니다.

이걸 가져와 명령어로 사용할려면  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

댓글()