Eğer yoksa şöyle birşey yapılabilir mi acaba, ilk tıklamada kiriş ismini, ikinci tıklamada kirişin yan kanat uzunluğunu yazıp excel dosyasına atan. Örneğin ilk tıklamada 1. hücreye kiriş adı K101 2. hücreye kiriş uzunluğu 5 gibi olucak şekilde lisp yapılması mümkün müdür. Lisp konusunda uzman arkadaşlardan yardım bekliyorum.
Bu lisp senin işini görür. Kiriş ismini seçtikten sonra kanat uzunluğu sonrada kanat yüksekliğini seçersin. sonrada komutu bitirebilirsin. seçtiğin textler excele aktarılır. Sadece texti excele aktarıyor.Ben bu lispi donatı metrajı için kullanıyorum.
Kod:
; (princ "\t" dosya) OLARAK YAZILIRSA TAB'a basılmış gibi kaydeder....
; Dosya sonra Excell de açılırken hüçrelere bölünmüş olarak açılır...
; Yani Excell dosyası export edilmiş gibi olur.
(defun c:dd ( / )
(command "layer" "new" "metraj_layer" "c" "3" "metraj_layer" "")
(setq donati_text (ssget '((0 . "TEXT")) ) )
(if (/= donati_text nil)
(progn
(setq donati_text_adet (sslength donati_text))
(setq i 0 )
(setq metraj_dosya (strcat (getvar "dwgprefix") (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 4 )) "-dd-met.xls"))
(setq dosya (open metraj_dosya "a"))
)
(progn
(princ "\n Dosyaya ara veriyoruz.......")
(setq donati_text (ssget '((0 . "TEXT")) ) )
(setq donati_text_adet (sslength donati_text))
(setq i 0 )
(setq dosya (open metraj_dosya "a"))
(princ "\n " dosya)
(princ "\n " dosya)
(princ "\n " dosya)
(princ "\n " dosya)
)
)
(while (< i donati_text_adet)
(princ (cdr (assoc 1 (entget (ssname donati_text i)))) dosya)
(setq d_eleman (entget (ssname donati_text i)))
(setq old_feature (cdr (assoc 8 d_eleman)))
(setq d_eleman (subst (cons 8 "metraj_layer") (assoc 8 d_eleman) d_eleman))
(entmod d_eleman)
;*******************************************************************************
; *
; Bu satırın sonundaki t yi n yaparsanız tüm yazılar alt alta yazılır. *
; "\t" -> "\n" *
;*******************************************************************************
(if (= i (- donati_text_adet 1))
(princ "\n" dosya)
(princ "\t" dosya)
)
;*******************************************************************************
(setq i (+ i 1))
)
(close dosya)
(princ)
)
Bende bu şekilde yapıyorum ama bunu yapabilmek için kirişin kanat uzunluğunu önceden oraya yazmam gerekiyor. sonra tıklayarak excele akatarıyorum. Benim istediğim kiriş kanat çizgisini (line, arc vs.) tıklayıp uzunluğunu alsın ve excele aktarsın istiyorum.