06.06.2013 07:08
Travaci
|
Biliyorum fakat hiç çalışmıyor kodlarınız buraya yüklerken site bazı karakterleri silebiliyor. Bir dosyaya yükleyip tekrar koyun.
|
06.06.2013 07:29
özkan-wien
|
yukleyemiyorum sonra yine deneyecegim
|
06.06.2013 12:13
özkan-wien
|
ekrandan kopyaladim, ben de calisiyo bu Lisp.
|
12.06.2013 09:38
özkan-wien
|
Kod:
(defun c:lata (/ lata_pl lata_att llta_att lata_pl fl)
(setq lata_pl (car(entsel "\nPolygon sec: "))
lata_att (car(nentsel "\nhedefattribut sec metrekare: "))
)
(entmod
(subst (cons 1 (:field-makeObjectRefText(vlax-ename->vla-object lata_pl)'Area))
(assoc 1 (entget lata_att))
(entget lata_att)
)
)
(entupd (cdr(assoc 330 (entget lata_att))))
(princ)
(defun :field-makeObjectRefText (#object #property / )
(if (vlax-property-available-p #object #property)
(strcat "%<\\AcObjProp Object(%<\\_ObjId "
(itoa(vla-get-ObjectID #object))
">%)."
(vl-princ-to-string #property)
" \\f "%lu2%pr2\>%" " m²"
);strcat
(strcat "##"(vl-princ-to-string #object)"."(vl-princ-to-string #property)"##")
); if
);defun
(princ)
(setq llta_att (car(nentsel "\nhedefattribut sec cevre: "))
)
(entmod
(subst (cons 1 (:field-makeObjectRefText(vlax-ename->vla-object lata_pl)'Length))
(assoc 1 (entget llta_att))
(entget llta_att)
)
)
(entupd (cdr(assoc 330 (entget llta_att))));** <- gefaehrlich
(princ)
)
(defun :field-makeObjectRefText (#object #property / )
(if (vlax-property-available-p #object #property)
(strcat "%<\\AcObjProp Object(%<\\_ObjId "
(itoa(vla-get-ObjectID #object))
">%)."
(vl-princ-to-string #property)
" \\f "%lu2%pr2\>%" " m"
)
(strcat "##"(vl-princ-to-string #object)"."(vl-princ-to-string #property)"##")
)
)
Arkadaslar lütfen yardim, Lisp bitti ancak "m²" lerde sorun var. birinciden sonraki her polyline atamamda sürekli "m²" yaziyor. nasil duzeltecegim bilmiyorum. uzunluga da "m" yerine "m²" yaziyor. Ehya ve travacidan özellikle. Simdiden tesekkür ederim.
ehya (29.06.2014 13:24 GMT)
|
12.06.2013 09:56
Travaci
|
ProhibiT
Kod:
(defun c:aLn (/ PvT Are)
(setvar "cmdecho" 0) (command "_.undo" "group")
(vl-load-com)
(setq PvT (car (entsel "\nAttribute Seçiniz: ")))
(redraw PvT 3)
(setq Are (car (entsel "\nAlanı Tanımlanacak Obje: ")))
(redraw PvT 4)
(while(not(and(=(cdr(assoc 0(entget(setq PvT(entnext PvT)))))"ATTRIB")
(=(cdr(assoc 2(entget PvT)))"FL"))))
(setq PvT (entget PvT)
PvT (subst (cons 1 (strcat "%<\\AcObjProp.16.2 Object(%<\\_ObjId "
(itoa (vla-get-ObjectID (vlax-ename->vla-object Are)))
">%).area \\f "%lu2%pr1%ps[, m²]%ct8[0.0001]">%"))
(assoc 1 PvT) PvT) PvT (entmod PvT)
PvT (entupd (cdr (assoc -1 PvT))) PvT (command "_.UpdateFieLd" PvT ""))
(command "_.undo" "e") (prin1))
|
12.06.2013 10:29
özkan-wien
|
cevap icin sagol ama ben sadece "m²" hatasini duzeltmek istiyorum.
eger lispi bi Attribute ile calistirip denersen görürsün. degiskenin biri hep Sabit kaliyor. yani hep "m²" yi görüyor.
|
12.06.2013 10:33
Travaci
|
Yukarıdaki kodlar aynı işi görüyor.
Seninkine gelirsek daha öncede dediğim gibi kodların eksik yada yanlış. Ben yükleme yapamıyorum, nerede eksik yada yanlış var onada bakamıyorum.
|
12.06.2013 11:34
özkan-wien
|
benim yazdigim acad 2013 de calisiyor. senin yazdigin da ben de calismiyor. :-)
|
12.06.2013 11:47
Travaci
|
Çalışıyodur çalışıyodur : ) El alışkanlığı ilk önce alanı alınacak objeyi seçiyorsundur.
Senin kodlarını kopyalayıp komut satırına yapıştırdığımda hiç bir tepki vermemesi gerekiyor ama seninkisi komut çalıştırarak select object veriyor.
|
12.06.2013 14:53
özkan-wien
|
Dogru diyosun bi hata var
|
12.06.2013 14:57
özkan-wien
|
seninkininde bad Argument type: stringp Nil hatasi veriyor. bir de sadece metrekare degil cevresini de yazdirmak istiyorum.
önce polyline
sonra attribute Alan
sonra attribute cevre
böyle yapabilirmisin
|
12.06.2013 14:59
özkan-wien
|
inanmassin diye :-)
|
12.06.2013 15:03
özkan-wien
|
Kod:
(defun c:ata (/ ata_pl ata_att)
(setq ata_pl (car(entsel "\nPolygon sec: "))
ata_att (car(nentsel "\nhedefattribut sec: "))
)
(entmod
(subst (cons 1 (:field-makeObjectRefText(vlax-ename->vla-object ata_pl)'Area))
(assoc 1 (entget ata_att))
(entget ata_att)
)
)
(entupd (cdr(assoc 330 (entget ata_att))));** <- gefaehrlich
(princ)
)
(defun :field-makeObjectRefText (#object #property / )
(if (vlax-property-available-p #object #property)
(strcat "%<\\AcObjProp Object(%<\\_ObjId "
(itoa(vla-get-ObjectID #object))
">%)."
(vl-princ-to-string #property)
;" \\f "%lu2%pr2\>%" " m²"
" \\f "%lu2%pr2\%ps[, m²]>%"
;mit "prX" kann die Anzahl der Nachkommastellen eingestellt werden
)
(strcat "##"(vl-princ-to-string #object)"."(vl-princ-to-string #property)"##")
))
bu calisiyomu sen de?
ehya (13.06.2013 07:07 GMT)
|
12.06.2013 15:05
Travaci
|
Hayır.
|
13.06.2013 09:07
özkan-wien
|
ekrandan yükleyince (komut satirina) bende de calismiyor.
|
Travaci
|
Alıntı özkan-wien :
seninkininde bad Argument type: stringp Nil hatasi veriyor. bir de sadece metrekare degil cevresini de yazdirmak istiyorum.
önce polyline
sonra attribute Alan
sonra attribute cevre
böyle yapabilirmisin
Yukarıdaki kod çalışmıo dedin bunu yapınca calıscak mı : )
|