함수설명

각종 객체를 만드는 함수입니다. UCS 좌표계를 자동 반영합니다.

 

구성

모든 함수의 반환은 만들어진 Entity Name 입니다.

 

3D 폴리선

(xi:Make3DPoly lst cls lay)

    lst : 점리스트

    cls : 닫힘 여부, 닫힘: T, 열림: nil

    lay : 켜, nil : 현재켜로 입력

(defun c:xxx ( / pt lst ht ptlst xis:2dp->3dp)
   (defun xis:2dp->3dp ( l h )
      (mapcar '(lambda (x) (list (car x) (cadr x) h)) l)
   )
   (while (setq pt (getpoint "\n 점 입력: "))
      (setq lst (cons pt lst))
   )
   (if 
      (and 
         lst 
         (> (length lst) 1)
         (setq ht (getreal "\n 높이값 입력: "))
      )
      (progn
         (setq ptlst (xis:2dp->3dp lst ht))
         (xi:Make3DPoly ptlst 'T nil)
      )
   )
   (princ)
)

 

 

(xi:MakeArc p1 p2 p3 lay)

    p1 : 호의 시작점

    p2 : 호 상의 임의점

    p3 : 호의 끝점

    lay : 켜, nil : 현재켜로 입력

(defun c:xxx ( / pt1 pt2 pt3 )
   (if 
      (and 
         (setq pt1 (getpoint "\n 호 시작점 지정: "))
         (setq pt2 (getpoint pt1 "\n 호 중간점 지정: "))
         (setq pt3 (getpoint pt2 "\n 호 끝점 지정: "))
      )
      (xi:MakeArc pt1 pt2 pt3 nil)
   )
   (princ)
)

 

 

(xi:MakeCircle pt rad lay)

    pt : 중심점

    rad : 반지름

    lay : 켜, nil : 현재켜로 입력

(defun c:xxx ( / sel ent obj pt1 pt2 rad )
   (if 
      (and 
         (setq sel (entsel "\n 선 선택: "))
         (setq ent (car sel))
         (setq obj (vlax-ename->vla-object ent))
         (= (vla-get-ObjectName obj) "AcDbLine")
      )
      (progn
         (setq pt1 (vlax-get obj 'StartPoint))
         (setq pt2 (vlax-get obj 'EndPoint))
         (setq rad (/ (distance pt1 pt2) 2.))
         (xi:MakeCircle pt1 rad nil)
         (xi:MakeCircle pt2 rad nil)
      )
   )
   (princ)
)

 

 

 

치수 (선형치수)

(xi:MakeDim p1 p2 p3 sca sty lay)

    p1 : 치수보조선 시작점

    p2 : 치수보조선 끝점

    p3 : 치수블럭 위치

    sca : 치수축척

    sty : 치수모양, nil : 현재 치수모양으로 입력

    lay : 켜, nil : 현재켜로 입력

(defun c:xxx ( / pt1 pt2 pt3 )
   (if 
      (and 
         (setq pt1 (getpoint "\n 치수 시작점 지정: "))
         (setq pt2 (getpoint pt1 "\n 치수 끝점 지정: "))
         (setq pt3 (getpoint pt2 "\n 치수 위치 지정: "))
      )
      (xi:MakeDim pt1 pt2 pt3 (getvar 'DIMSCALE) nil nil)
   )
   (princ)
)

 

 

블럭 생성

(xi:MakeInsert  bn base ss lay)

    bn : 블럭 이름 (특수문자 허용하지 않음)

    base : 삽입점

    ss : 선택 세트

    lay : 켜, nil : 현재켜로 입력

(defun c:xxx ( / str ss pt )
   (if 
      (and
         (setq str (getstring "\n 블럭이름 지정(특수문자 허용안함): "))
         (princ "\n 블럭으로 만들...")
         (setq ss (ssget))
         (setq pt (getpoint "\n 삽입점 지정: "))
      )
      (if (snvalid str)
         (xi:MakeInsert str pt ss nil)
         (alert "\n 블럭이름에는 사용될 수 없는 문자가 포함됨...")
      )
   )
   (princ)
)

 

 

폴리선

(xi:MakeLWPoly lst cls lay)

    lst : 점리스트

    cls : 닫힘 여부 0: 열림, 1: 닫힘

    lay : 켜, nil : 현재켜로 입력

 

(xi:MakeLayer ln ltyp col plot desc)

    ln : 켜 이름 (특수문자 허용하지 않음)

    ltyp : 선종류, nil : Continueous 로 입력

    col : 색

    plot : 출력여부, 0: 출력되지않음. 1: 출력됨

    desc : 설명글

 

지시선

(xi:MakeLeader pt1 pt2 pt3 lay)

    p1 : 지시선 시작점

    p2 : 지지선 끝점

    p3 : 문자 시작점

    lay : 켜, nil : 현재켜로 입력

 

(xi:MakeLine pt1 pt2 lay)

    p1 : 시작점

    p2 : 끝점

    lay : 켜, nil : 현재켜로 입력

 

단행문자

(xi:MakeText str pt ro ht just sty lay)

    str : 문장

    pt : 삽입점

    ro : 각도

    ht : 문자 높이

    just : 문자정렬, L,C,R,TL, TC, TR, ML, MC, MR, BL, BC, BR

    sty : 문자모양, nil : 현재 문자모양으로 입력

    lay : 켜, nil : 현재켜로 입력

 

다행문자

(xi:MakeMText str pt ro ht just sty lay wide)

    str : 문장

    pt : 삽입점

    ro : 각도

    ht : 문자 높이

    just : 문자정렬, TL, TC, TR, ML, MC, MR, BL, BC, BR

    sty : 문자모양

    lay : 켜

    wide : 영역의 폭 (문자높이x가장 긴 문자열갯수)