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 :-)
|
celllman
|
;) üstad alan olarak polyline değil de hatch tanımlamak istesem nasıl bir yol izleyebilirim,yada yapabilir miyiz?
|