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.

13.06.2013 10:01    

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ı : )

Copyright © 2004-2022 SQL: 1.436 saniye - Sorgu: 86 - Ortalama: 0.0167 saniye