19.08.2016 15:30    

erolmutlu
Kullanımış olduğum eski bir lisp vardı şimdi hata veriyor, yardımcı olabilecek varmıdır ? hata şağıdaki gibidir;

Kod:

Kot yazýlarý layeri [ 6 ] ve isim yazýlarý layeri [ 5 ] olmalýdýr...
Ucgen set adeti ...: 1
Nk1: (504719.875139 4297941.2412035)  Nk2: 0  Nk3: 0.0
Sayi:NIL
; ----- LISP : Call Stack -----
; [0]...C:H
; [1].....UCGENDEN_BILGI_AL
; [2].......TEXTENKOTAL <<--
;
; ----- Error around expression -----
(SSLENGTH B)
;
; error : bad argument type <NIL> ; expected SELECTIONSET at [sslength]


lisp;

Kod:

(defun textenkotal ( point_k / )
(setq pencere_x 1)
(setq pencere_y 1)
(setq psa (polar point_k        pi  pencere_x) )
(setq psa (polar psa     (* 1.5 pi) pencere_y) )
(setq psu (polar point_k        0   pencere_x) )
(setq psu (polar psu     (* 0.5 pi) pencere_y) )
(setq b (ssget "c" psa psu '((0 . "TEXT") (8 . "6"))))
(princ "\n Sayi:") (princ b)
(setq n (sslength b))
(if (/= n 1) (princ "\n Text seçim adeti hatali............!!! "))
(atof (cdr (ASSOC  1 (entget (ssname b 0)))))
)
; ------------------------------------------------------------------------------
(defun ucgenden_bilgi_al ( ucgen / )
  (setq nk1  (cdr (nth 14 ucgen)))
  (setq nk2  (cdr (nth 18 ucgen)))
  (setq nk3  (cdr (nth 22 ucgen)))
(princ "\n Nk1: ")(princ nk1)(princ "  Nk2: ")(princ nk2)(princ "  Nk3: ")(princ nk3)
       (setq kot1  (textenkotal nk1))
       (setq x1    (car  nk1))
       (setq y1    (cadr nk1))
       (setq kot2  (textenkotal nk2))
       (setq x2    (car  nk2))
       (setq y2    (cadr nk2))
       (setq kot3  (textenkotal nk3))
       (setq x3    (car  nk3))
       (setq y3    (cadr nk3))
;
  (setq alan (abs (/ (+ (- (* x2 y1 ) (* x1 y2 ) )
                        (- (* x3 y2 ) (* x2 y3 ) )
                        (- (* x1 y3 ) (* x3 y1 ) )
                   )
                2)
            )
  )
;
(setq metraj_dosya (strcat (getvar "dwgprefix") (getvar "dwgname") ".MET"))
(setq dosya (open metraj_dosya "a"))
       (setq e  (ssget "WP" (list nk1 nk2 nk3 nk1) '((0 . "TEXT")(8 . "5"))))
       (if (/= e nill)
          (progn
            (command "CHPROP" e "" "C" "BYLAYER"  "LA" "0" "")
            (setq e (cdr (ASSOC  1 (entget (ssname e 0)))))
            (princ)
            (prin1 e dosya)
            (princ "\t" dosya)
          )
          (progn
            (prin1 "No_name"  dosya)
            (princ "\t" dosya)
          )
       )
  (prin1 alan  dosya) (princ "\t" dosya)
  (prin1 kot1  dosya) (princ "\t" dosya)
  (prin1 kot2  dosya) (princ "\t" dosya)
  (prin1 kot3  dosya) (princ "\n" dosya)
(close dosya)
(princ "\n h:")(princ kot1)(princ "   X1:")(princ x1)(princ "   Y1:")(princ y1)
(princ "\n h:")(princ kot2)(princ "   X2:")(princ x2)(princ "   Y2:")(princ y2)
(princ "\n h:")(princ kot3)(princ "   X3:")(princ x3)(princ "   Y3:")(princ y3)
(princ "\n Alan:")(princ alan)                        (princ "\n")
(princ)
)

; ------------------------------------------------------------------------------

(defun manuel_bilgi_al ( / )
(princ "\n Manuel bilgi giriþi.... 3 adet kot yazýsýný seçiniz..." )
  (setq text_hacim (ssget '((0 . "TEXT") (8 . "6"))))
  (setq n (sslength text_hacim))
  (if (= n 3)
  (progn
     (princ "\n Text adeti uygun....  ")
       (setq kot1  (atof (cdr (ASSOC  1 (entget (ssname text_hacim 0))))))
       (setq nk1         (cdr (ASSOC 11 (entget (ssname text_hacim 0)))))
       (setq x1    (car  nk1))
       (setq y1    (cadr nk1))
       (setq kot2  (atof (cdr (ASSOC  1 (entget (ssname text_hacim 1))))))
       (setq nk2         (cdr (ASSOC 11 (entget (ssname text_hacim 1)))))
       (setq x2    (car  nk2))
       (setq y2    (cadr nk2))
       (setq kot3  (atof (cdr (ASSOC  1 (entget (ssname text_hacim 2))))))
       (setq nk3         (cdr (ASSOC 11 (entget (ssname text_hacim 2)))))
       (setq x3    (car  nk3))
       (setq y3    (cadr nk3))
;
  (setq alan (abs (/ (+ (- (* x2 y1 ) (* x1 y2 ) )
                        (- (* x3 y2 ) (* x2 y3 ) )
                        (- (* x1 y3 ) (* x3 y1 ) )
                   )
                2)
            )
  )
;
(setq metraj_dosya (strcat (getvar "dwgprefix") (getvar "dwgname") ".MET"))
(setq dosya (open metraj_dosya "a"))
       (setq e  (ssget "WP" (list nk1 nk2 nk3 nk1) '((0 . "TEXT")(8 . "5"))))
       (if (/= e nill)
          (progn
            (command "CHPROP" e "" "C" "BYLAYER"  "LA" "0" "")
            (setq e (cdr (ASSOC  1 (entget (ssname e 0)))))
            (princ)
            (prin1 e dosya)
            (princ "\t" dosya)
          )
          (progn
            (prin1 "No_name"  dosya)
            (princ "\t" dosya)
          )
       )
  (prin1 alan  dosya) (princ "\t" dosya)
  (prin1 kot1  dosya) (princ "\t" dosya)
  (prin1 kot2  dosya) (princ "\t" dosya)
  (prin1 kot3  dosya) (princ "\n" dosya)
(close dosya)
(princ "\n h:")(princ kot1)(princ "   X1:")(princ x1)(princ "   Y1:")(princ y1)
(princ "\n h:")(princ kot2)(princ "   X2:")(princ x2)(princ "   Y2:")(princ y2)
(princ "\n h:")(princ kot3)(princ "   X3:")(princ x3)(princ "   Y3:")(princ y3)
(princ "\n Alan:")(princ alan)                        (princ "\n")
(princ)
)
(princ "Text adeti uygun deðil" )
)
)

; ------------------------------------------------------------------------------
(defun c:h ( / )
(princ "\n Kot yazýlarý layeri [ 6 ] ve isim yazýlarý layeri [ 5 ] olmalýdýr...")
(setq ucgen_set (ssget '((0 . "LWPOLYLINE"))))
(if (= ucgen_set nil)
      (manuel_bilgi_al)
      (progn
         (setq ucgen_adet (sslength ucgen_set))
         (princ "\n Ucgen set adeti ...: ")(princ ucgen_adet)
         (setq i 0 )
         (while (< i ucgen_adet)
            (setq ucgen (entget (ssname ucgen_set i)))
            (ucgenden_bilgi_al ucgen)
           (setq i (+ i 1))
          )
      )
)
(princ)
)
; ------------------------------------------------------------------------------

> 1 <
Copyright © 2004-2022 SQL: 1.147 saniye - Sorgu: 42 - Ortalama: 0.0273 saniye