728x90
1-15 zo.lsp=z-axis 0 (z좌표 없애기)->수정(2008.2.26)
z 좌표값을 0으로 바꾸는 명령어
z 좌표값을 0으로 바꾸는 명령어
polyline 적용(2007.8.8)
오류수정(2008.2.26)
;;===============================================================
; z좌표 없애기(1996.9 주말농부)
; ->z값을 0으로 바꾸는 명령어
; ->진행과정 시각화(2006.11)
; ->polyline 적용(2007.8.8)
; ->오류수정(2008.2.26)
;;------ z-axis 0 -----------------------------------------------
(defun c:zo(/ ss ssn k ptz en en1 ed ed1 spt ept ptz sptx spty
eptx epty)
(prompt "\nCommand: 2D Entity...")
(prompt "\nZ값을 0으로 하고자하는 대상 선택-> ")
(setq ss (ssget))
(setq ssn (sslength ss))
(setq k 0 ptz 0)(terpri)
(repeat ssn
(setq en (ssname ss k))
(setq ed (entget en))
(if (= (cdr (assoc 0 ed)) "POLYLINE")
(progn ;->polyline yes
(setq en1 en)
(while (setq en1 (entnext en1))
(setq ed1 (entget en1))
(if (= (cdr (assoc 0 ed1)) "VERTEX") (progn
(setq spt (cdr (assoc 10 ed1)))
(setq ed1 (subst (cons 10 (list (car spt) (cadr spt) 0))
(assoc 10 ed1) ed1) )
(entmod ed1)
(entupd en1)
))
) ;while end
)
(progn ;->polyline no
(setq spt (cdr (assoc 10 ed)))
(if (/= spt nil)(progn
(setq sptx (car spt) spty (cadr spt))
(setq spt (list sptx spty ptz))
(setq ed (subst (cons 10 spt) (assoc 10 ed) ed))
))
(setq ept (cdr (assoc 11 ed)))
(if (/= ept nil)(progn
(setq eptx (car ept) epty (cadr ept))
(setq ept (list eptx epty ptz))
(setq ed (subst (cons 11 ept) (assoc 11 ed) ed))
))
(setq elept (cdr (assoc 38 ed)))
(if (/= elept nil) (setq ed (subst (cons 38 0) (assoc 38 ed) ed)) )
(entmod ed)
)
) ;if end
(setq k (+ k 1))
(princ (strcat "Coverting Data Num(%) : " (rtos k 2 0) "(" (rtos (* (/ k ssn) 100) 2 0) "%)" (chr 13)))
) ;repeat end
(prompt "\nConverting End...")
(princ))
; z좌표 없애기(1996.9 주말농부)
; ->z값을 0으로 바꾸는 명령어
; ->진행과정 시각화(2006.11)
; ->polyline 적용(2007.8.8)
; ->오류수정(2008.2.26)
;;------ z-axis 0 -----------------------------------------------
(defun c:zo(/ ss ssn k ptz en en1 ed ed1 spt ept ptz sptx spty
eptx epty)
(prompt "\nCommand: 2D Entity...")
(prompt "\nZ값을 0으로 하고자하는 대상 선택-> ")
(setq ss (ssget))
(setq ssn (sslength ss))
(setq k 0 ptz 0)(terpri)
(repeat ssn
(setq en (ssname ss k))
(setq ed (entget en))
(if (= (cdr (assoc 0 ed)) "POLYLINE")
(progn ;->polyline yes
(setq en1 en)
(while (setq en1 (entnext en1))
(setq ed1 (entget en1))
(if (= (cdr (assoc 0 ed1)) "VERTEX") (progn
(setq spt (cdr (assoc 10 ed1)))
(setq ed1 (subst (cons 10 (list (car spt) (cadr spt) 0))
(assoc 10 ed1) ed1) )
(entmod ed1)
(entupd en1)
))
) ;while end
)
(progn ;->polyline no
(setq spt (cdr (assoc 10 ed)))
(if (/= spt nil)(progn
(setq sptx (car spt) spty (cadr spt))
(setq spt (list sptx spty ptz))
(setq ed (subst (cons 10 spt) (assoc 10 ed) ed))
))
(setq ept (cdr (assoc 11 ed)))
(if (/= ept nil)(progn
(setq eptx (car ept) epty (cadr ept))
(setq ept (list eptx epty ptz))
(setq ed (subst (cons 11 ept) (assoc 11 ed) ed))
))
(setq elept (cdr (assoc 38 ed)))
(if (/= elept nil) (setq ed (subst (cons 38 0) (assoc 38 ed) ed)) )
(entmod ed)
)
) ;if end
(setq k (+ k 1))
(princ (strcat "Coverting Data Num(%) : " (rtos k 2 0) "(" (rtos (* (/ k ssn) 100) 2 0) "%)" (chr 13)))
) ;repeat end
(prompt "\nConverting End...")
(princ))
728x90
'■ 유용한 캐드&리습 > ▫ EzqCAD(3rd Party)' 카테고리의 다른 글
5-4 lc.lsp=layer change (레이어 변경하기)->수정(2008.3.27) (0) | 2024.12.20 |
---|---|
3-1 da.lsp=dimension arrange (치수 정렬하기)->수정(2008.3.12) (0) | 2024.12.20 |
1-14 ss.lsp=selection set (그립으로 선택하기)->수정(2008.1.16) (0) | 2024.12.20 |
5-2 cc.lsp=color change(색상바꾸기)->수정(2008.1.6) (1) | 2024.12.20 |
1-13 so.lsp=solid (솔리드하기)->수정(2007.12.26) (1) | 2024.12.20 |