함수설명
각종 객체를 만드는 함수입니다. 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가장 긴 문자열갯수)
'Lisp & Tips > Lisp 제작용 XiCAD 함수' 카테고리의 다른 글
세 점으로 중심점과 반경얻기 xi:Get3pCen (0) | 2023.03.13 |
---|---|
각도 정리 xi:FixAngle (0) | 2023.03.09 |
파일 목록의 정렬 xi:FileSort (0) | 2023.03.08 |
파일 중복 회피를 위한 번호 붙임 xi:FileNameAutoNum (0) | 2023.03.05 |
객체 삭제하기 xi:Erase (0) | 2023.03.05 |