07.11.2014 10:03    

ayazkaptan
block olan attribute icindeki m² kısmına yapmiş olduğum pline nın metrekaresini ve veya başka komutla mt yazan yerede metresini yazabilir miyiz
field komutu ile yapılıyor ama çok mahal olduğu için çok zaman alıyor bunun için lisp var mıdır yazılabilir mi ?
Şimdiden teşekkür ederim.

07.11.2014 10:06    

ayazkaptan

07.11.2014 11:11    

seboli61


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

Buradaki lispler belki işini görür.

admin (12.06.2018 22:16 GMT)

07.11.2014 11:28    

ayazkaptan
Lisp yazmayı bilsem beki yazılımdan birşeyler çıkarabilirdim.En azından yapmak istediğim şeyin olabileceğini gördüm teşekkürler.Bu lispı yapabilecek tanıdıgınız var mı ? çok ihtiyacım var çok fazla mahal olduğu için çok zaman harcıyorum.

07.11.2014 11:45    

seboli61
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.cizimokulu.com' Çizim yardımları yüklendi !")

admin (12.06.2018 22:17 GMT)

07.11.2014 11:49    

Travaci
Çalışmaz baştaki parantez eksik : )

07.11.2014 12:05    

ayazkaptan
Başına sadece parantez koydum su hatayı verdi "error: too few arguments"

07.11.2014 12:07    

Travaci
Sitede 10 larca alan lisp'i vardır sanırım, bakarsanız hepsini bulucaksınız.

07.11.2014 12:09    

seboli61
Hatayı düzelttim. Ben denedim çalıştı arkadaşımın dediği gibi siteyi kurcalarsanız bir sürü alan lispi var.

07.11.2014 12:15    

ayazkaptan
Lisp yazmakdan anlasam hatayıda fark edip bulacağım normal alan yazma lisplerini buldum o gösterdiğiniz field lisp lerinede baktım ama hiç birşey anlamadım. Benim istediğim blockun içindeki ne field ile m2 yazması bu şekilde lisp bulamadım. varsa link atarmısınız bakayım

07.11.2014 13:03    

özkan-wien
(defun c:ata (/ PvT Are)
(setvar "cmdecho" 0)
(vl-load-com)
(setq PvT (car (entsel "\nATT Block sec: "))) (redraw PvT 3)
(setq Are (car (entsel "\nPolyline sec: "))) (redraw PvT 4)
(command "_.undo" "_be")
(while(not(and(=(cdr(assoc 0(entget(setq PvT (entnext PvT)))))"ATTRIB")
(=(cdr(assoc 2(entget PvT)))"ALAN")))
(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[1]">%"))
(assoc 1 PvT) PvT) PvT (entmod PvT)
PvT (entupd (cdr (assoc -1 PvT))) PvT (command "_.UpdateFieLd" PvT ""))
(command "_.undo" "_e") (prin1))

özkan-wien (10.11.2014 08:56 GMT)

07.11.2014 13:04    

özkan-wien
Area To Attribute demek "ATA"

07.11.2014 13:12    

Travaci
Özkan yeni versiyonlarda undo group yok, artık begin kullan. Undo begin ide kodun en başına değil, polyline nesne seçiminin altına koyki kullanıcı seçimden vazgeçtiğinde undo açık kalmasın :wink

07.11.2014 13:15    

özkan-wien
tersekkür ederim Travaci,oldu mu böyle? düzelttim :-)

özkan-wien (07.11.2014 14:26 GMT)

07.11.2014 13:17    

Travaci
:yes

07.11.2014 15:12    

ayazkaptan
seboli 61 yardım ettiğin için teşekkür ederim lispini yaptım ama blockun içindekini değişmiyor. ayriyetten kendi 1 tane oluşturuyor.
özkan senın lispini denedim su hatayı verdı "Polyline sec: ; error: bad argument type: lentityp nil "
ilk block seciyorum ikinci pyline secince "Polyline sec: ; error: bad argument type: lentityp nil hatayı veriyor" uğraşip emek verdiğniz için teşekkürler.

08.11.2014 16:37    

seboli61
Ayazkaptan bu lisp şahıslara özel yapılan bir lisp değil zaten. Genel olarak herkesin işini görecek şekilde yazılmış Ehya hocamızın emeğine sağlık.Lisp yazan arkadaşların vakit ayırması gerek senin istediğin gibi bir lisp için.Bu da zaman ister emek ister.

10.11.2014 07:37    

ayazkaptan
teşekkürler. Bunu yapabilecek zaman ayırabilecek birisini tanıyor musunuz bende onun yanına gitsem hem bi şeylerde öğrenmiş olurum .

> 1 <
Copyright © 2004-2022 SQL: 1.99 saniye - Sorgu: 92 - Ortalama: 0.02163 saniye