Seçilen Polyline Bilgilerini Data Dosyasına Yazdırma

Tanım

Bu komut kullanıcı tarafından seçilen polyline nesnelerinin renk layer çevre ve alan bilgilerinin bir txt dosyasına yazılmasına yarar.

Program

(Defun c:plb ()
  (setvar "cmdecho" 0)
  (setq dosyaadı (getstring "data dosyası adı giriniz : "))
  (setq dosyayeri (strcat (getvar "dwgprefix") dosyaadı ".txt")) ; 1
  (terpri)
  (setq txt (open dosyayeri "w")) ; 2
  (write-line
    (strcat "Sıra No" "\t" "Renk" "\t" "Layer" "\t" "Çevre" "\t" "Alan")
    txt
  ) ; 3
  (close txt) ; 4
  (setq sırano 0)
  (while
    (setq ent (entsel "\n .......Polyline Seçiniz : ")) ; 5
      (setq en (car ent))
      (setq enlist (entget en))
      (setq objetipi (cdr (assoc 0 enlist))) ; 6
      (if (or
            (= objetipi "LWPOLYLINE")
            (= objetipi "POLYLINE")
          ) ; 7
        (progn
          (command "area" "o" en) ; 8
          (setq a (getvar "area")) ; 9
          (setq per (getvar "perimeter")) ; 10
          (setq layer (cdr (assoc 8 enlist))) ; 11
          (setq renk (cdr (assoc 62 enlist))) ; 12
          (if (= renk nil)
            (setq renk 256)
          )
          (setq txt (open dosyayeri "a")) ; 13
          (write-line
            (strcat (rtos (+ sırano 1) 2 0)
                    "\t"
                    (rtos renk 2 0)
                    "\t"
                    layer
                    "\t"
                    (rtos per 2 2)
                    "\t"
                    (rtos a 2 2)
            )
            txt
          ) ; 14
          (close txt) ; 15
          (setq sırano (+ sırano 1))
        )
      )
  )
)
(Defun cks ()
  (alert (strcat dosyayeri " dosyası oluşturuldu"))
)


Açıklamalar

1 Burada dwgprefix sistem değişkeni yardımıyla dwg dosyasının konumu, bir üst satırda kullanıcı tarafından girilen dosya ve “.txt” uzantısı ile birleştirilir ve dosyayeri değişkenine atanır.
2 open fonksiyonunun “w” (write) özelliği kullanılarak dosyayeri değişkenine atanan konumda ve isimde “txt” uzantılı dosya oluşturulur ve içine bilgi eklemek için açılır.
3 write-line fonksiyonu ile açılan dosyaya bir satır bilgi yazılır. Burada yazılan bilgiler başlık satırı olarak kullanılacaktır.
4 close fonksiyonu open ile açılan dosyaları kapatmaya yarar. Burada daha önce txt değişkenine atanarak açılan dosya kapatılmıştır.
5 entsel fonksiyonu ile kullanıcıdan polyline seçilmesi sağlanır.
6 Seçilen objenin tipi objetipi değişkenine atanır.
7 Seçilen objenin polyline olup olmadığı sınanır. Sınama sonucunda objenin polyline olmaması durumunda yeniden (while döngüsü sayesinde) seçim yapılması istenecektir.
8 area komutu ile seçilen objenin alan ve uzunluk bilgileri güncellenir.
9 area sistem değişkeni ile güncel alan bilgisi a değişkenine atanır.
10 perimeter sistem değişkeni ile güncel uzunluk bilgisi per değişkenine atanır.
11 Seçilen objenin layer bilgisi layer değişkenine atanır.
12 Seçilen objenin renk bilgisi renk değişkenine atanır.
13 Daha önce txt değişkeni ile oluşturulan dosya open fonksiyonun “a” (append) ekle özelliği ile açılır.
14 Burada elde edilen sıra no, renk, layer, uzunluk ve alan bilgileri dosyaya yazılır.
15 txt değişkeni ile açılan dosya kapatılır.


Örnek Lisp Dosyasını İndirin

012-plb.lsp