1-15 zo.lsp=z-axis 0 (z좌표 없애기)->수정(2008.5.30)
본문 바로가기
■ 유용한 캐드&리습/▫ EzqCAD(3rd Party)

1-15 zo.lsp=z-axis 0 (z좌표 없애기)->수정(2008.5.30)

by 아키모아 주말농부 2024. 12. 25.
728x90
;;===============================================================
;  z좌표 없애기(1996.9 주말농부)
;  ->z값을 0으로 바꾸는 명령어
;  ->진행과정 시각화(2006.11)
;  ->polyline 적용(2007.8.8)
;  ->dimension 적용가능(2008.5.30)
;;------ z-axis 0 -----------------------------------------------
(defun c:zo(/ ss ssn k ptz en en1 ed ed1 spt ept ptz sptx spty
              eptx epty sp13 sp14)
   (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)) )
            ;dimension start
            (if (= (cdr (assoc 0 ed)) "DIMENSION")(progn
               (setq sp13 (cdr (assoc 13 ed)))
               (setq sp13 (list (car sp13) (cadr sp13) ptz))
               (setq ed (subst (cons 13 sp13) (assoc 13 ed) ed))
               (setq sp14 (cdr (assoc 14 ed)))
               (setq sp14 (list (car sp14) (cadr sp14) ptz))
               (setq ed (subst (cons 14 sp14) (assoc 14 ed) ed))
            ))
            ;dimension end
            (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))

 

zo.lsp
0.00MB

728x90