26.03.2015 07:47    

celllman
Merhaba arkadaşlar,

polyline seçilip attiribute bir mahal kutucuğu veya text seçilerek alanı field olarak xx,xx m² yazabilen bir lisp mevcut mudur?

not:ondalık kısmı ayracı virgül olmalı nokta değil.

örnek olarak

26.03.2015 07:56    

pyrzms
Burada

istediğiniz şey mevcut.
Kod:

(vl-load-com)

(defun C:Alan ( / pline tagblock attribute e d attobj plineobj)
   (setq pline (car (entsel "\nPolyline secilsin: ")))
   (setq tagblock (car (entsel "\nTag block secilsin: ")))
   (entsel "\nRegen etmeyi unutmayalim ")
   (setq e (entnext tagblock))
   (while (and (not attribute)
               (/= "SEQEND" (cdr (assoc 0 (setq d (entget e))))))
      (if (eq "ALAN" (cdr (assoc 2 d)))
         (setq attribute e)
      )
      (setq e (entnext e))
   )
   (if attribute
      (progn
         (setq attobj (vlax-ename->vla-object attribute))
         (setq plineobj (vlax-ename->vla-object pline))
         (setq plineid (vla-get-objectid plineobj))
         
         (vla-put-textstring attobj
            (strcat
               "%<\\AcObjProp.16.2 Object(%<\\_ObjId "
               (itoa plineid)
               ">%).Area \\f "%lu2%pr2%ct8[0.0001]">%"
            )
         )
         (vlax-release-object attobj)
         (vlax-release-object plineobj)
      )
   )
   (princ)
)


Kod:

(vl-load-com)

(defun C:Cevre ( / pline tagblock attribute e d attobj plineobj)
   (setq pline (car (entsel "\nPolyline secilsin: ")))
   (setq tagblock (car (entsel "\nTag block secilsin: ")))
   (entsel "\nRegen etmeyi unutmayalim ")
   (setq e (entnext tagblock))
   (while (and (not attribute)
               (/= "SEQEND" (cdr (assoc 0 (setq d (entget e))))))
      (if (eq "CEVRE" (cdr (assoc 2 d)))
         (setq attribute e)
      )
      (setq e (entnext e))
   )
   (if attribute
      (progn
         (setq attobj (vlax-ename->vla-object attribute))
         (setq plineobj (vlax-ename->vla-object pline))
         (setq plineid (vla-get-objectid plineobj))
         
         (vla-put-textstring attobj
            (strcat
               "%<\\AcObjProp.16.2 Object(%<\\_ObjId "
               (itoa plineid)
               ">%).Length \\f "%lu2%pr2%ct8[0.01]">%"
            )
         )
         (vlax-release-object attobj)
         (vlax-release-object plineobj)
      )
   )
   (princ)
)

26.03.2015 08:16    

celllman
Teşekkürler yardımın için ama ekli uyarıyı veriyor neden olabilir?

26.03.2015 08:35    

özkan-wien
alani yazdirmak istedigin tag in ismi ne

26.03.2015 08:37    

celllman
aynı alan olarak yazılı,acaba aynı isim olduğu için mi dedim ama başka attribute lerde de denedim aynı uyarıyı veriyor.autocad versiyonu ile ilgili birşey mi acaba acad 2014 bendeki.

26.03.2015 08:42    

celllman
ne yazık ki aynı uyarıyı verdi :(

26.03.2015 08:44    

özkan-wien
att blogunu gönder bi zahmet

26.03.2015 08:49    

celllman

26.03.2015 09:05    

pyrzms
Blogdaki attribute block un aynısını yaparsan sorun çıkacağını zannetmiyorum. Şuan acilen yetiştirmem gereken bir as-build projem var , daha sonra yardımcı olmaya çalışırım. Kolay gelsin.

26.03.2015 09:12    

celllman
nerede bulabilirim bloktaki attribute bloğu ? yardımcı olabilir misin ? incelemek isterim

26.03.2015 10:00    

celllman
ilgin için teşekkürler ama aynı uyarıyı veriyor bende gene,

bir de bir önceki konu da

%<\AcObjProp.16.2 Object(%<\_ObjId 8796086763856>%).Area \f "%lu2%pr1%ps[, m²]%ds44">%

bu yazılanları nereye yazmam gerekiyor? AcFields.fdc dosyası içine girilebiliyor mu?

26.03.2015 10:40    

özkan-wien
15847-area-to-attribute.dwg

bu dosyayi indir ve uzantisini .lsp olarak degistir. Hata ekrandan kopyala yapistir yapildigi icin oluyor. Orjinal attributun ile calisiyor.

özkan-wien (26.03.2015 10:59 GMT)

26.03.2015 11:18    

celllman
teşekkür ederim evet oldu ama 0.00001 ayarınıda ekleyebiliyor muyuz?

26.03.2015 11:25    

özkan-wien
lispi ac icinde [1] yazan yeri bul "e-006" yi ilave et kaydet cik. yani böyle yap [1e-006]

26.03.2015 11:45    

celllman
çok teşekkürler evet istediğim oldu yalnız aynı lisp i farklı bir attribute için uygulamak istediğimde yapmıyor bunu nasıl yapabilirim?

26.03.2015 11:51    

celllman
tamam buldum ;) çok teşekkürler yardımların için

26.03.2015 11:57    

özkan-wien
senin adin hakan diyelim, ahmet deyince bakiyomusun? Bakmiyosun.
O attributun icindeki Tag i cagiracaksin.

26.03.2015 12:17    

celllman
evet dediğin gibi ALAN yazan yeri mevcut tag ile değiştim oldu,sayende 2200 mahal i tek tek field yapmaktan kurtuldum ;)

26.03.2015 12:23    

özkan-wien
iyi bi cocacola ismarlarsin artik :-)

26.03.2015 12:54    

celllman
;) üstad alan olarak polyline değil de hatch tanımlamak istesem nasıl bir yol izleyebilirim,yada yapabilir miyiz?

Copyright © 2004-2022 SQL: 1.753 saniye - Sorgu: 101 - Ortalama: 0.01736 saniye