15.03.2011 12:07    

hgkyrl
Merhaba

sürekli mahal ve alan hesapları yapıyorum. bu konuda lisp arıyorum uzun zamandır.
bulduğum m2 lisp i de arızalı çıktı, başka konu başlıklarında bahsi de geçmişti.
tek tek değil topluca alanları seçip merkezlerine m2 lerini yazdırabilen bir lisp e ihtiyacım var. yardımcı olursanız sevinirim...

15.03.2011 12:19    

ProhibiT
Alanları tanımlayan (polyline gibi) objeleriniz var mı?

15.03.2011 12:43    

hgkyrl
Merhaba prohibit üstad

evet her zaman mahal de olsa çevre düzenlemelerdeki yeşil alan, yaya yolları araç yolları vs de olsa alan hesaplamak için boundry ile (ayrı bir layerda ) alanları çıkartıyorum. aream komutlu bir lisp yardımıylada alanları toplamını buluyorum.
ancak bazen bu alanların içlerine m2 lerini yazmam gerekiyor.
tek tek çok zaman kaybediyorum, topluca seçebilirsem tek seferde yazdırabilirsem çok büyük zaman kazanırım.

15.03.2011 12:51    

ehya
Bu konu ile ilgili lispi 2 sene önce yazıp siteye paylaşmıştım. hatasız bir şekilde de çalışıyor.
sizin hata dediğiniz nedir anlayamadım???




Linkleri görebilmek için ÜYE olmalısınız.

15.03.2011 13:11    

hgkyrl
Merhaba

benim de bulduğum lisp sizin link ini eklediğiniz lisp e benziyor. yada onun üzerinden geliştirilmiş veya geliştirilmeye çalışılmış. ancak denememde 1 defa çalışıp (onda da metrik ölçü hatası verdi - örn. 134 m2 yerine 1.34m2 sonucu buldu) devamında çalışmadı. daha sonrasında prohibit üstada mesajla danıştığım autocad hatası vermeye başladı. her dosya açtığımda 2 adet help sayfası açmaya başladı. bu lisp i kaldırınca sorunum düzeldi.

şimdi sizin link le gösterdiğiniz lisp i deniyorum.
teşekkürler.

denedim güzel çalışıyor elinize emeğinize sağlık,
yalnız metrik, cm, veya mm çalışma şekli için tercih yapıldıktan sonra rakamlar 0.01 düşük çıkıyordu, lisp içinde metrik için 100 e bölme kısmını 1 olarak diğerlerini de ikişer sıfır atarak kaydettim ve denedim sorun kalmadı.
ancak benim daha çok istediğim detay topluca seçtiğim poligonların kendi içlerine alanlarını ayrı ayrı yazması.
eğer mümkün olmuyor ise bu lisp ile tek tek seçip poligon ortalarına alanlarını yazdırabilirim.

Bendeki sorunlu lisp i kopyalıyorum sorunun ne olduğunu siz mutlaka görürsünüz, ben pek anlamıyorum açıkcası

Kod:

(defun m2_br_sec ()
  (if (= cizim_birim nil)
  (progn
(initget 1 "mEtre Cm Mm")   
(setq cizim_birim (getkword "
Çizim Birimini seçiniz [mEtre / Cm / Mm]:")))))
(defun m2_stil ()
    (setq m2_stil_ara (tblsearch "style" "m2"))
    (if (= m2_stil_ara nil)
      (progn
(setq m2_yaz_yuk 12)
(setq m2_yaz_y (getdist (strcat "
Yazı Yüksekliği:< " (rtos m2_yaz_yuk) ">:")))
(if (= m2_yaz_y nil)
  (setq m2_yaz_y m2_yaz_yuk))
(setq m2_yaz_yuk m2_yaz_y)
(command "style" "m2" "arial.ttf" m2_yaz_yuk  "0.8" "" "" ""))))
(defun c:m2 ()
(setvar "modemacro" "Archme Design 2008 © by --> EhYa <--")
(setvar "cmdecho" 0)
(m2_br_sec)
    (if (= cizim_birim "mEtre")
      (progn
      (setq m2_bol 100)))

(if (= cizim_birim "Cm")
      (progn
      (setq m2_bol 10000)))
  (if (= cizim_birim "Mm")
      (progn
      (setq m2_bol 1000000)))
(setq m2_secim (ssget '((-4 . "<OR")
      (0 . "LWPOLYLINE")
      (0 . "POLYLINE")
      (0 . "CIRCLE")
      (0 . "ELLIPSE")
      (0 . "SPLINE")
      (0 . "REGION")
      (0 . "3DSOLID")
      (-4 . "OR>"))))
(if (= m2_secim nil)
  (progn
    (princ))
  (progn
    (setq m2_secim_say (sslength m2_secim))
    (setq m2_c 0)
    (setq m2_toplam 0)
    (while (< m2_c m2_secim_say)
      (setq m2_secim_tek (ssname m2_secim m2_c))
      (command "area" "e" m2_secim_tek)
      (setq m2_tek_alan (/ (getvar  "area") m2_bol))
      (setq m2_toplam (+ m2_toplam m2_tek_alan))
      (setq m2_c (+ m2_c 1)))
(m2_stil)
(setq m2_aciklama (getstring t "
Yazılacak metni yazınız:"))
(setq m2_yer (getpoint "
Yer Gösterin:"))
(if (= m2_yer nil)
(progn
  (princ "
Yer gösterilmediği için komut bitirildi !!!..."))
  (progn
    (command "text" m2_yer "0" m2_aciklama)
    (command "text" "" (strcat (rtos m2_toplam 2 2) " m2"))
  ))))(princ))
(PRINC "--> 'www.autocadokulu.com' Çizim yardımları yüklendi !")

;;;__________________________________________________
(defun c:MAH (/ YUK YUK1P1 VAL VAL1 Mah_Alani Mah_Ismi)

(SETQ YUK 18
YUK1 10
ARA 20
ARA1 12)

(setq bCmdEcho (getvar "CMDECHO"))
(setq nOsnap (getvar "OSMODE"))

(setvar "CMDECHO" 0)
(setvar "OSMODE" 0)

(command "LAYER" "M" "yazi" "C" "7" "" "")


;;;**************************************************
(command "layer" "off" "aks" "")
(command "layer" "off" "kesit" "")
(command "layer" "off" "L4" "")
(command "layer" "off" "siva" "")
(command "layer" "off" "tarama" "")
(command "layer" "off" "tefris" "")
(command "layer" "off" "aks_ici" "")
;;;**************************************************

(setq P1 (getpoint "n Mahal isminin konacagi yeri belirtiniz : "))(terpri)
(command "-boundary" p1 "")(terpri)
(command "area" "o" "l" "")(terpri)

(setq VAL (/(getvar "area" ) 10000.0) )
(setq VAL1 (rtos val 2 2))
(command "erase" "l" "")(terpri)

(setq Mah_Alani (strcat "Alan:"Val1"m²"))


(t (command "text" "st" "standard" (polar P1 (/ pi 2.0) 0.15) yuk1 "0" "Oda" )
(command "text" "st" "standard" "j" "mc" (polar P1 (* (/ pi 2.0 )3.0) ARA1) yuk1 "0" "Döş:marley")
(command "text" "st" "standard" "j" "mc" (polar P1 (* (/ pi 2.0 )3.0) (* ARA1 2.0)) yuk1 "0" "Duv:Saten;Tav:tav.b.")
)
)
(command "text" "st" "standard" "j" "mc" p1 yuk1 "0" mah_alani "" "")

;;;***************************************
(command "layer" "on" "aks" "")
(command "layer" "on" "kesit" "")
(command "layer" "on" "L4" "")
(command "layer" "on" "siva" "")
(command "layer" "on" "tarama" "")
(command "layer" "on" "tefris" "")
(command "layer" "on" "aks_ici" "")
;;;***************************************

(setvar "CMDECHO" bCmdEcho)
(setvar "OSMODE" nOsnap)

(command "-color" "Bylayer")
(prompt "Eger mahal alani uygun degilse kapali alaninizi kontrol ediniz...!!!! ")

ProhibiT (15.03.2011 14:03 GMT)

16.03.2011 11:21    

ProhibiT
Birinci bölümdeki c:m2 kodu tamamen ehya hocamın linkini verdiği fonksiyon. hiç bir problemi yok, kusursuz çalışır.

Sizin mesajınızda ;;;_______________ ile işaretlediğim yerden başlayan c:MAH isimli ikinci bir fonksiyon var. ikinci fonksiyonun edebi üslubunu ehya hocamınkine benzetemedim. bu fonksiyonun ilk fonksiyonla bir ilgisi yok. en son satırındaki fazladan yazılmış parantezi kaldırırsanız (sizin mesajınızdakini ben kaldırdım) onun da hatası düzeltilmiş olur. lakin bu ikinci fonksiyon, belli bir çizim düzenine özel hazırlanmış, aks kesit, l4, siva, tarama, tefris ve aks_ici isimli layer'ların mevcut olması lazım. aksi halde hata verecektir.

kolay gelsin...

Düzenleme:
Kod:

;;;====================================================================================
;;; Komut adı: TaLan                                                                   
;;; Belirlenen Layer'da bulunan tüm LWPOLYLINE ve POLYLINE objelerinin                 
;;; merkezine alanlarını yazar. Sonunda istenirse Yazılan alanalrın toplamını         
;;; seçilen yere yazar.      Hazırlayan, M. Şahin Güvercin - 16-03-2011 11:15         
;;;====================================================================================
(defun c:TaLan (/ Luf dp tx Tarea Lea Tra Lyr Bndry L n naLan aLan xLer yLer n1 ns ip)
  (setvar "cmdecho" 0) (command "undo" "group")
  (setvar "modemacro" "Prepared by; M. S. Guvercin") (if (= Lufo nil) (setq Lufo 1))
  (if (not (setq Luf (getreal (strcat "\n  Alan Birimi/Çizim Birimi <" (rtos Lufo) "> :"))))
    (setq Luf Lufo) (setq Lufo Luf)) (if (= dpo nil) (setq dpo 2))
  (if (not (setq dp (getint (strcat "\n    Ondalik basamak sayisi <" (itoa dpo) "> :"))))
    (setq dp dpo) (setq dpo dp))
  (if (= txo nil) (setq txo (* (getvar "dimscale") (getvar "dimtxt"))))
  (if (not (setq tx (getreal (strcat "\n      Yazı Yüksekliği <" (rtos txo) "> :"))))
    (setq tx txo) (setq txo tx)) (setq Tarea 0)
  (setq Lea (getstring "\n  Alan yazısı öneki (A= gibi): ")
        Tra (getstring "\n     Alan yazısı soneki (m² gibi): "))
  (if (= (setq Lyr (getstring "\n  Layer adı <Obje seçmek için Enter>: ")) "")
    (setq Lyr (cdr (assoc 8 (entget (ssname (ssget ":s" (list (cons 0 "LwPoLyLine"))) 0))))))
  (setq Bndry (ssget "x" (list (cons 0 "*PoLyLine") (cons 8 Lyr))) L (sslength Bndry) n -1)
  (while (< (setq n (1+ n)) L)
    (setq naLan (entget (setq nLn (ssname Bndry n))))
    (command "_.Area" "O" (cdr (assoc -1 naLan)))
    (setq aLan (* Luf (getvar "area")) ns 0 xLer 0 yLer 0 Tarea (+ Tarea aLan))
    (if (= (cdr (assoc 0 naLan)) "LWPOLYLINE")
      (while (setq n1 (cdr (assoc 10 naLan)))
        (setq xLer (+ xLer (car n1)) yLer (+ yLer (cadr n1)) ns (1+ ns)
              naLan (subst (cons 11 n1) (assoc 10 naLan) naLan)))
      (while (= (cdr (assoc 0 (entget (setq nLn (entnext nLn))))) "VERTEX")
        (setq xLer (+ xLer (cadr (assoc 10 (entget nLn))))
              yLer (+ yLer (caddr (assoc 10 (entget nLn)))) ns (1+ ns))))
    (setq iP (list (/ xLer ns) (/ yLer ns)) aLan (LeaTra aLan))
    (if (/= Lea "") (setq aLan (strcat Lea aLan)))
    (if (/= Tra "") (setq aLan (strcat aLan Tra)))
    (entmake (list (cons 0 "TEXT") (cons 10 iP) (cons 40 tx)
               (cons 1 aLan) (cons 50 0.0) (cons 72 1) (cons 11 iP))))
  (setq Tarea (LeaTra Tarea))
  (if (/= Lea "") (setq Tarea (strcat Lea Tarea)))
  (if (/= Tra "") (setq Tarea (strcat Tarea Tra)))
  (if (setq iP (getpoint "\nToplam Alan yazılacak yer <Çıkış için Enter>"))
    (entmake (list (cons 0 "TEXT") (cons 10 iP) (cons 40 tx)
                   (cons 1 Tarea) (cons 50 0.0) (cons 72 1) (cons 11 iP))))
  (command "undo" "e") (prin1)
)
(princ "\n Hazırlayan, M. Sahin Guvercin - www.autocadokulu.com")
(defun LeaTra (vL / uz sr frk yer)
  (setq vL (rtos vL 2 dpo) uz (strlen vL) sr 1)
  (while (and (< sr uz) (/= (substr vL sr 1) ".")) (setq sr (+ sr 1)))
  (setq yer (- uz sr) frk (- dpo yer))
  (if (and (= yer 0) (/= dpo 0)) (setq vL (strcat vL ".")))
  (while (> frk 0) (setq vL (strcat vL "0")) (setq frk (- frk 1)))
  (setq vL vL)
)

Toplam Alan yazdırmak istemiyorsanız, Enter ile geçebilirsiniz.

çiziminiz hangi birimde olursa olsun, alanlar belirleyeceğiniz birimde yazılırlar. bunun için alan birimi/çizim birimi değerini doğru girmeniz yeterlidir. örnek vermek gerekirse; çiziminizi cm. biriminde ise ve alanları m² biriminde yazdırmak isterseniz, 1m²/100cmx100cm olduğundan, 1/100x100 -> 1/10000 -> 0.0001 girmelisiniz.

önek ve sonek istemiyorsanız bu soruları enter ile geçmelisiniz. sonek olarak "m\u+00b2" girerseniz alan yazılarının sonuna m² eklenecektir.

ProhibiT (16.03.2011 22:02 GMT)

16.03.2011 12:17    

hgkyrl
Çok teşekkürler üstad
elinize emeğinize sağlık

şimdi denedim harika çalışıyor
tekrar teşekkürler

16.03.2011 22:04    

ProhibiT
Lwpolyline objelerinin yanısıra polyline objelerini de işleyecek şekilde düzenlenip yeniden yüklendi.

18.07.2011 15:37    

pepper1988
Hocam bu lisp gerçekten çok kullanışlı ellerinize saglık.. ama ufak bi sıkıntım var bazen aynı layerda olan objelerle ilgili alan hesabı yapmıyor. çözemedim sorunu layerını degiştirince hesap yapıyor. seçimi layera göre değilde obje secimi yapabilsek. böyle bi opsiyon mümkünmüdür?

19.07.2011 21:03    

ProhibiT
Fonksiyonu istediğiniz doğrultuda değiştirirken, daha kullanışlı olması için düzenlemeler de yaptım.
- önek ve sonek değerleri akılda tutuluyor ve teklif olarak getiriliyor. önek ve sonek girerken boşluk karakteri kullanabilirsiniz. aynısını kullanmak için enter girmek yeterli. mevcut önek ve sonek'i iptal etmek için, ilgili soruya tek bir boşluk karakteri ile cevap verin.
- obje seçimini layer bağlantısından kurtardım, genelleştirdim. serbestçe seçim yapabilirsiniz. "all" girerek çizim içindeki tüm (lw)polyline objelerini işleme alabilirsiniz.
- birden fazla obje seçildiğinde, toplam alan yazısı cursor'un yanında görünüyor. sürükleyip istediğiniz yere bırakabilirsiniz. bu sürükleme işlemi sırasında cursor mevcut bir text objesinin üzerinde ise, söz konusu obje highlight edilir, bu durumda seçim yaparsanız. mevcut text'in içeriği değiştirilerek hesaplanan toplam alan yazılır. seçtiğiniz yer boş ise, sürüklenerek getirilen yazı ilgili noktaya bırakılır.
Kod:

;;;=============================================================================
;;; Komut adı: TaLan                                                           
;;; Belirlenen seçim setindeki tüm LWPOLYLINE ve POLYLINE objelerinin         
;;; merkezine alanlarını yazar. Sonunda istenirse Yazılan alanların toplamını 
;;; seçilen yere yazar.                                                       
;;;                                Hazırlayan: M. Şahin Güvercin - 19-07-2011 
;;;=============================================================================
(defun c:TaLan (/ Luf dp tx Lea Tra Tarea Bndry L n naLan aLan xLer yLer n1 ns
                ip dro sp sp0 a)
  (setvar "cmdecho" 0) (command "undo" "group") (vl-load-com)
  (setvar "modemacro" "Prepared by; M. S. Guvercin")
  (if (= Lufo nil) (setq Lufo 1))
  (if (not (setq Luf (getreal (strcat "\n  Alan Birimi/Çizim Birimi <"
                         (rtos Lufo) "> :")))) (setq Luf Lufo) (setq Lufo Luf))
  (if (= dpo nil) (setq dpo 2))
  (if (not (setq dp (getint
                  (strcat "\n    Ondalik basamak sayisi <" (itoa dpo) "> :"))))
    (setq dp dpo) (setq dpo dp))
  (if (= txo nil) (setq txo (* (getvar "dimscale") (getvar "dimtxt"))))
  (if (not (setq tx (getreal
                      (strcat "\n      Yazı Yüksekliği <" (rtos txo) "> :"))))
    (setq tx txo) (setq txo tx)) (setq Tarea 0)
  (if (not Leo) (setq Leo "A=")) (if (not Tro) (setq Tro " m²"))
  (setq Lea (getstring T (strcat "\nAlan yazısı öneki (" Leo "): ")))
  (cond ((= Lea "") (setq Lea Leo)) ((= (strcase Lea) "X") (setq Lea "")))
  (setq Tra (getstring T (strcat "\nAlan yazısı soneki (" Tro "): ")))
  (cond ((= Tra "") (setq Tra Tro)) ((= (strcase Tra) "X") (setq Tra "")))
  (setq Leo Lea Tro Tra)
  (princ "\n  Alanları yazılacak (Lw)PoLyLine Objeleri: ")
  (setq Bndry (ssget (list (cons 0 "*PoLyLine"))) L (sslength Bndry) n -1)
  (while (< (setq n (1+ n)) L)
    (setq naLan (entget (setq nLn (ssname Bndry n))))
    (command "_.Area" "O" (cdr (assoc -1 naLan)))
    (setq aLan (* Luf (getvar "area")) ns 0 xLer 0 yLer 0 Tarea (+ Tarea aLan))
    (if (= (cdr (assoc 0 naLan)) "LWPOLYLINE")
      (while (setq n1 (cdr (assoc 10 naLan)))
        (setq xLer (+ xLer (car n1)) yLer (+ yLer (cadr n1)) ns (1+ ns)
              naLan (subst (cons 11 n1) (assoc 10 naLan) naLan)))
      (while (= (cdr (assoc 0 (entget (setq nLn (entnext nLn))))) "VERTEX")
        (setq xLer (+ xLer (cadr (assoc 10 (entget nLn))))
              yLer (+ yLer (caddr (assoc 10 (entget nLn)))) ns (1+ ns))))
    (setq iP   (list (/ xLer ns) (/ yLer ns)) aLan (LeaTra aLan))
    (if (/= Lea "") (setq aLan (strcat Lea aLan)))
    (if (/= Tra "") (setq aLan (strcat aLan Tra)))
    (entmake (list (cons 0 "TEXT") (cons 10 iP) (cons 40 tx)
                   (cons 1 aLan) (cons 50 0.0) (cons 72 1) (cons 11 iP))))
  (if (> L 1) (progn (setq Tarea (LeaTra Tarea))
      (if (/= Lea "") (setq Tarea (strcat Lea Tarea)))
      (if (/= Tra "") (setq Tarea (strcat Tarea Tra)))
      (entmake (list (cons 0 "TEXT") (cons 10 (list 0.0 0.0 0.0))
                     (cons 11 (list 0.0 0.0 0.0)) (cons 40 tx) (cons 1 Tarea)
                     (cons 50 0.0) (cons 72 0) (cons 11 iP)))
      (setq dro (entlast) sp0 (list 0.0 0.0 0.0) a nil)
      (princ "\nToplam Alanın yazılacağı yer <Enter=Çıkış>: ")
      (while (and (/= 3 (car (setq sp (grread T 4 2)))) (/= (car sp) 25))
        (if a (redraw (ssname a 0) 4))
        (TrnsLt dro sp sp0) (entdel dro) (setq sp0 (cadr sp))
        (if (setq a (ssget sp0 (list (cons 0 "*text"))))
          (redraw (ssname a 0) 3)) (entdel dro))
      (if (= (car sp) 3) (progn (TrnsLt dro sp sp0) (entdel dro)
          (if (setq tp (ssget sp0 (list (cons 0 "*text")))) (progn
              (setq ctx (entget (ssname tp 0))
                    ctx (subst (cons 1 Tarea) (assoc 1 ctx) ctx))
              (entmod ctx) (entupd (cdr (assoc -1 ctx)))) (entdel dro)))
        (entdel dro)))) (command "undo" "e") (prin1)
)
(princ "\n Hazırlayan: M. Sahin Guvercin - www.autocadokulu.com")
(defun TrnsLt (pr1 pr2 pr3 /)
  (vla-transformby (vlax-ename->vla-object pr1)
    (vlax-tmatrix (list (list 1 0 0 (- (car (cadr pr2)) (car pr3)))
                        (list 0 1 0 (- (cadr (cadr pr2)) (cadr pr3)))
                        (list 0 0 1 (- (caddr (cadr pr2)) (caddr pr3)))
                        (list 0 0 0 1)))))
(defun LeaTra (vL / uz sr frk yer)
  (setq vL (rtos vL 2 dpo) uz (strlen vL) sr 1)
  (while (and (< sr uz) (/= (substr vL sr 1) ".")) (setq sr (+ sr 1)))
  (setq yer (- uz sr) frk (- dpo yer))
  (if (and (= yer 0) (/= dpo 0)) (setq vL (strcat vL ".")))
  (while (> frk 0) (setq vL (strcat vL "0")) (setq frk (- frk 1))) (setq vL vL)
)
Kolay gelsin.

ProhibiT (20.07.2011 10:21 GMT)

20.07.2011 06:06    

SENDUR
Hocam gerçekten çok güzel bir lisp olmuş. elerinize sağlık. en son toplam alanı boş bir yere tıklayınca sonucu yazmıyor. birde neden sadece "polyline" objeleri seçitiriyoruz daire ve regionlarıda eklesek daha genel olmazmı.
saygılar

20.07.2011 08:59    

ProhibiT
Toplam alan yazmama problemini düzelttim.
Başlangıçta önek olarak "A=" ve sonek olarak ta "" default geliyor.
önek ve sonek'i kaldırmak için ilgili soruya "x" girerek cevap vermek gerekiyor.

Fonksiyon kod'una şöyle bir göz attığımızda, yarıya yakın kısmının Polyline ve LwPolyline'ların işlem farkı için yazılan kısım olduğu görülecektir. fonksiyonu genelleştirip, circle, spline, region, 2dsolid ve hatta hatch objelerini de eklediğimizde, çok daha uzayacak. işin açıkçası bu sıralar uğraşmak istemiyorum. bir gün ilham gelirse ya da vakit bulursam yazarım.

kolay gelsin.

ProhibiT (20.07.2011 10:20 GMT)

20.07.2011 11:10    

SENDUR
Teşekkürler hocam
bu hali ile yazıları yazmıyor :(

command: tal tal
alan birimi/çizim birimi <0.000001> :
ondalik basamak sayisi <2> :
yazı yüksekliği <44> :
alan yazısı öneki (a=):

alan yazısı soneki (m2):

alanları yazılacak (lw)polyline objeleri:
select objects: specify opposite corner: 2 found

select objects:
toplam alanın yazılacağı yer <enter=çıkış>:
error: bad argument type: consp 32
command: tal tal
alan birimi/çizim birimi <0.000001> :
ondalik basamak sayisi <2> :
yazı yüksekliği <44> :
alan yazısı öneki (a=):

alan yazısı soneki (m2):

alanları yazılacak (lw)polyline objeleri:
select objects: specify opposite corner: 2 found

select objects:
toplam alanın yazılacağı yer <enter=çıkış>:


yoksa benmi yanlış yapıyorum :(.

birde bu 2dsolid obje nedir ? ilk defa duydum desem ayıp olurmu :(

saygılar

20.07.2011 11:42    

ProhibiT
Neyin yanlış yaptığınızı bilmiyorum.

Linkleri görebilmek için ÜYE olmalısınız.

2dsolid objelerden bahsetmiştim...

20.07.2011 13:22    

pepper1988
Şahin hocam ellerinize sağlık çok teşekkür ederim... :)
Hocam lispi Autocad 2010 versiyonda arkadasımın bilgisayarında kullandık.. farklı alanlara aynı degerleri atabiliyor ve toplu secim yapıldıgı halde 4 5 alana deger verip bırakıyordu. Kendi bilgisayarımda Autocad 2011 yüklü Hiç bi sıkıntı yok. Kusursuz çalısıyor :):)

pepper1988 (20.07.2011 14:01 GMT)

22.07.2011 12:16    

ProhibiT
Fonksiyonun düzenlenmiş ve elden geçirilmiş son halini,
download > Lispler > Seçilen objelerin alanlarını ve toplam alanı hesaplayıp yazan Lisp
bölümünden indirebilirsiniz.

22.07.2011 12:35    

hgkyrl
Üstad çok teşekkür ederim beni de düşünüp mesaj atmışsınız
emeğinize sağlık işyerimde download fonksiyonumuz güvenlik vb nedenlerden kısıtlandığı için şimdi deneyemiyorum ama akşam evde indirip bakarım.
teşekkürler kolay gelsin

22.07.2011 14:05    

SENDUR
Hocam öyle güzel foksiyonlar yazıyorsunuz hayran kalmamak mümkün değil. böyle giderse yakında bütüm çizimlari sizin fonksiyonlarınız yapacak :) bize çok bir iş kalmayacak.
saygılar

19.03.2013 05:00    

2032223351
assagidaki lisp kapali lineleri pline olarak uzerine yeni bir tabaka aciyor gosterilen yere alanini yaziyor.
bana lazim olan assagidaki lispin yaptiginin yani sira bunu toplu halde yaparak(toplu secim yada devamli secim olaraksag tusla sonlandirincaya kadar)otomatik olarak ortalarina yazip her komutu calistirdigimda benden yeni tabaka adi isteyerek islemleri o tabaka uzerinden yapmasi.
yardimci olursaniz cok sevinirim. tesekkurler.

(DEFUN C:aa (/ alan alany)
(command "bpoly" pause "")
(setq alan (ssget "l"))
(command "area" "o" "l")
(setq alany (getvar "area")
alany (rtos alany 2 2)
alany (strcat alany "m2")
yaznok (getpoint "\nNereye Yazilacak ?")
)
(command "text" yaznok "2" "" alany)

23.12.2015 15:39    

meteonat
merhaba. polyline a tıkladığımızda alanı yazdıran lsp, aynı polyline değiştirdiğimizde yazılı alanı da kendiliğinden değiştirebilir mi? Böyle bir lsp bulabilirmiyim?

Copyright © 2004-2022 SQL: 1.876 saniye - Sorgu: 98 - Ortalama: 0.01914 saniye