21.09.2012 21:08    

izim2
arkadaşlar ben heryerde aradım ama bi türlü düzgün sonuç veren kaynak bulamadım Z değeri sıfırlama nasıl yapılıyor bilen arkadaşlar yardımcı olurlarsa çok sevinirim şimdiden teşekkürler..

21.09.2012 21:14    

Travaci
Elimde z değerini 0 layan bir lisp vardı, nereden buldum hatırlamıyorum, belkide yine burdan geçti.
Kod:

(defun C:Z0 (/ olderr oldcmd ss1 ss1len i numchg numnot numno0 ssno0
                    ename elist etype yorn)
(command  "._UCS" "_Delete" "$ZSIFIR-TEMP-2$")
   (setq olderr *error*)
   (defun *error* (msg)
      (if (= msg "quit / exit abort")
         (princ)
         (princ (strcat "error: " msg))
      )
      (setq *error* olderr)
      (command "._UCS" "_Restore" "$ZSIFIR-TEMP-2$" "._UCS" "_Delete"  "$ZSIFIR-TEMP-2$")
      (command "._UNDO" "_End")
      (setvar "CMDECHO" oldcmd)
      (princ)
   )

   (setq oldcmd (getvar "CMDECHO"))
   (setvar "CMDECHO" 0)
   (command "._UNDO" "_Group")
   (command "._UCS" "_Save" "$ZSIFIR-TEMP-2$" "._UCS" "World")
         (graphscr)
         (prompt "\n Eleman seçiniz... (Z Koordinatları 0 yapılacak)...")
         (setq ss1 (ssget))
         (if (null ss1)
             (setq ss1 (ssget "X"))
         )
         (setq ss1len (sslength ss1)
               i 0
               numchg 0
               numnot 0
               numno0 0
               ssno0 (ssadd)
         )
         (while (< i ss1len)
            (if (= 0 (rem i 10)) (prompt "."))
            (setq ename (ssname ss1 i)
                  elist (entget ename)
                  etype (cdr (assoc 0 elist))
            )
;
            (if (member etype '("LINE" "POLYLINE" "TEXT" "INSERT" "CIRCLE"
                                 "ARC" "POINT" "SOLID"))
               (setq elist (zeroz 10 elist)
                     numchg (1+ numchg)
               )
               (progn
                  (setq numnot (1+ numnot))     
                  (if (/= 0.0 (car (reverse (assoc 10 elist))))
                     (progn
                        (setq numno0 (1+ numno0))
                        (ssadd ename ssno0)
                     )
                  )
               )
            )
;
;
            (if (member etype '("LINE" "TEXT" "SOLID"))
               (setq elist (zeroz 11 elist))
            )
;
            (if (member etype '("SOLID"))
               (progn
                  (setq elist (zeroz 12 elist))
                  (setq elist (zeroz 13 elist))
               )
            )
;
            (setq i (1+ i))
         )
         (prompt (strcat "\n" (itoa numchg) " entity(s) ZSIFIRed"))
         (prompt (strcat "\n" (itoa numnot) " entity(s) not ZSIFIRed"))
         (if (/= 0 numno0)
            (progn
               (prompt    (strcat "  [" (itoa numno0) " with non-zero base points]"))
               (getstring  "\nPress enter to see non-zero unchanged entities... ")
               (command    "._SELECT" ssno0)
               (getstring  "\nPress enter to unhighlight them... ")
               (command    "")
            )
         )
   (command "._UCS" "_Restore" "$ZSIFIR-TEMP-2$"
            "._UCS" "_Delete" "$ZSIFIR-TEMP-2$")
   (command "._UNDO" "_End")
   (setvar "CMDECHO" oldcmd)
   (setq *error* olderr)
   (princ)
)

(defun zeroz (key zelist / oplist nplist)
   (setq oplist (assoc key zelist)
         nplist (reverse (append '(0.0) (cdr (reverse oplist))))
         zelist (subst nplist oplist zelist)
   )
   (entmod zelist)
)
(princ)

22.09.2012 08:50    

mateus
flatten koutunu birde

22.09.2012 09:42    

ehya
Sitenin download bölümünde lispler kısmında bununla ilgili 2 tane lisp var. Hala nasıl bulamıyorsunuz? Merak ediyorum..

Ayrıca flatten komutu bu durum için değildir. Yanlış komut tarifi olmasın...

23.09.2012 07:19    

guiza
Ben biraz ilkel bir yöntem kullanıyorum ama işe yarıyor. Şöyle ki;
Çizim alanındaki her şeyi seçip properties paletini kullanarak z değerlerini sıfır yapıyorum.

(Tabii çizim içerisinde 3 boyutlu nesne varsa bu yöntem pek sağlıklı olmayabilir.)

24.09.2012 10:36    

izim2
bende sizin dediğiniz gibi ypmayı denedim ama çizgiler gene havada kalıyor=(

> 1 <
Copyright © 2004-2022 SQL: 1.074 saniye - Sorgu: 56 - Ortalama: 0.01918 saniye