본문 바로가기
AutoCAD/AutoLisp

[LISP] vla-AddPolyline 함수 사용에서 VerticesList에 대해서 ...

by Crony 2011. 5. 12.

만약 여러분이 vla-AddPolyline함수를 사용하여 폴리라인을 만들려고 생각을 하였다면

VerticesList에 대해서 한번은 고민하여 보았을 것입니다.

 

아래의 서브루틴은 좌표리스트를 VerticesList로 변경하는 루틴입니다.

아키모아에서 못 본것 같아서 올립니다.

(defun safefill (PtList ) 
        (vlax-safearray-fill 
                (vlax-make-safearray vlax-vbDouble (cons 0 (1- (length (apply'append PtList))))) 
                (apply 'append PtList) 
        ) 
)

 

사용하는 방법

(vl-load-com)
(setq AcDoc (vla-get-activedocument (vlax-get-Acad-Object)))
(cond
  ((= (vla-get-activespace AcDoc) 1) (setq AcSpace (vla-get-modelspace AcDoc)))
  ((= (vla-get-activespace AcDoc) 0) (setq AcSpace (vla-get-paperspace AcDoc)))
)

(setq PtList (list '(300484.0 -223156.0 0.0) '(314081.0 -207584.0 0.0) '(334477.0 -208434.0 0.0)))

(vla-AddPolyline AcSpace (safefill PtList))

 

PtList 값에 필요한 좌표리스트를 넣고 사용하시면 됩니다^^