Reklam

* E Posta Adresiniz:
* Kodu Girin:

Yazıyı referans gösterilen nesneye göre döndüren lisp


admin - 04.10.2005 18:36
Yazar: ehya
İçerik:

(Kontrol panelinizde görünür)
Seçilen yazıları referans gösterilen nesneye göre (line veya text) döndüren (rotate) lisp.

Bu lispi kodlayan ehya 'ya teşekkürler.

Buraya tıklayarak açılan pencereden AutoLISP kodlarını Ctrl + C ile kopyalayabilirsiniz

Kod:

(defun rt_hata (s)
  (if (/= s "Function cancelled")
    (princ (strcat "
Error: " s))
  )
  (setq *error* olderr)               
(princ))
(defun rt_uygula ()
  (setq rt_sec_say (sslength rt_sec))
  (setq c 0)
  (while (> rt_sec_say c)
    (setq e_rt_sec (ssname rt_sec c))
    (setq ee_rt_sec (entget e_rt_sec))
    (setq ee_rt_sec (append ee_rt_sec (list (cons 50 secim_aci))))
    (entmod ee_rt_sec)
    (setq c (+ c 1))
    (setq rt_e t)
  )
)
(defun c:rty ()
(prompt "[www.autocadokulu.com]")
(setq olderr *error*
      *error* rt_hata)
  (setq
    rt_sec (ssget
     '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") (-4 . "OR>"))
   )
  )
  (if (= rt_sec nil)
    (progn
      (princ)
    )
    (progn
      (setq rt_e nil)
      (setvar "errno" 0)
      (while (= rt_e nil)
(setq rt_ent (entsel "
Referans nesneyi seçiniz:"))
(if (= rt_ent nil)
  (progn
    (if (= (getvar "errno") 7)
      (progn
(setq rt_e nil)
(setvar "errno" 0)
      )
    )
    (if (= (getvar "errno") 52)
      (progn (setq rt_e t) (setvar "errno" 0))
    )
  )
  (progn
    (command "select" rt_sec "")
    (setq rt_ent_tan (cdr (assoc 0 (entget (car rt_ent)))))
    (if (and (/= rt_ent_tan "LINE")
     (/= rt_ent_tan "XLINE")
     (/= rt_ent_tan "RAY")
     (/= rt_ent_tan "TEXT")
)
      (progn
(princ
  "
Bu komut seçtiğiniz nesne türü için geçerli değildir..."
)
(setq rt_e t)
      )
    )
    (if (= rt_ent_tan "TEXT")
      (progn
(setq secim_aci (cdr (assoc 50 (entget (car rt_ent)))))
(rt_uygula)
      )
    )
    (if (or (= rt_ent_tan "LINE")
    (= rt_ent_tan "XLINE")
    (= rt_ent_tan "RAY")
)
      (progn
(setq secim_bas (cdr (assoc 10 (entget (car rt_ent))))
      secim_son (cdr (assoc 11 (entget (car rt_ent))))
)
(setq secim_aci (angle secim_bas secim_son))
(if (and (> secim_aci (angtof "0.0000"))
(< secim_aci (angtof "90.0000"))
    )
  (setq secim_aci secim_aci)
)
(if (and (> secim_aci (angtof "91.0000"))
(< secim_aci (angtof "180.0000"))
    )
  (setq secim_aci (+ secim_aci (angtof "180.0000")))
)
(if (and (> secim_aci (angtof "181.0000"))
(< secim_aci (angtof "270.0000"))
    )
  (setq secim_aci (+ secim_aci (angtof "180.0000")))
)
(if (and (> secim_aci (angtof "271.0000"))
(< secim_aci (angtof "360.0000"))
    )
  (setq secim_aci secim_aci)
)
(rt_uygula)
(setq rt_e t)
      )
    )
  )
)
      )
    )
  )
  (princ)
)
(princ)(PRINC " --> 'www.autocadokulu.com' Çizim yardımları yüklendi !")

Bu kodları nasıl kullanacağınızı bilmiyorsanız aşağıdaki linkten;
AutoLISP > Konu Anlatımları > Lisp Dosyalarının oluşturulması ve Yüklenmesi
konusunu inceleyiniz.
Yorumlar :
dnd   01.01.2015 12:35 #15486  

Merhaba; Yazıyı referans nesneye dik olacak şekilde bu lkispi düzenleyebilir misiniz acaba?Ben biraz uğraştım ama olmadı

toprak81   07.10.2010 11:14 #13343  

eline sağlık

halilozcakir   29.03.2010 16:05 #12669  

bu komut mtext ler için de işe yarasa süper olacak + referasn noktaları pline da seçebilsek tamamdır.

smyrna15   27.10.2009 19:23 #11924  

bu komutu kopyalayamıyorum "bu fonksiyon geçersiz" diye bi msj çıkıyooo daha evvel kopyalamışdım, formatta uctu, tekrar istiyorum bunuuuu:P teşekkürler

ehya   04.05.2009 16:07 #11050  

engelleme gibi bir durum söz konusu değil. Seçim yapıp CTRL+C ile kopyalayın. Boş bir metin belgesine CTRL+V yapın.

nsimsek   04.05.2009 15:44 #11049  

Bu lispe emeği gecenlere teşekkürler. Buraya üyeyim ama ilk defa bir lispi copylayamıyorum. Forum içinde belli bir seviyede olanmı bu lisp i alma hakkı veriliyor ? Fleshget arkadaşımız da bu konuda hayıflanmış. Haklıda. Varsa bir kota veya sınırlama bilelim ki başkasının emegine saygısızlık ediyor pozisyonuna düşmeyelim. Alındım valla. Yukarıdaki listelenen kodları almanın başka yolları da var. Ama eger istenmiyorsa almak da istemem. Emeğe saygımız var. Yok bu lisp herkeze acıksa nasıl bilgisayarımıza indirecegimizide acıklarsanız memnun oluruz.
Saygılarımşla.
nsimsek

fleshget   05.04.2009 02:40 #10876  

kopyalayamıyorum bile lisp'i, nasıl bir sistem yapmışsınız anlamadım gitti :/

pulp fiction   28.01.2009 23:44 #10280  

çok güzel teşekkürler.

halilozcakir   21.05.2008 10:54 #8227  

eyvallah ehya süper olmuş çok işe yarayacak....

Sessiz Kabus   19.09.2007 12:44 #5629  

güzel olmuş parmaklarına sağlık.
line ve bloklu nesnelerde kullanabilsek daha güzel olurdu.
teşekkürler

yazgunesi   01.07.2006 12:31 #388  

Bu lisp cad 2004 te çalışıyor.

Yüklemek için:

Tools açılır menüsü altından Load Application tıklıyoruz.
Ekrana gelen dialog penceresinden lispimizi kaydetiğimiz dizinden çağrıyoruz.

Command: _appload pp.lsp successfully loaded.
Command: --> 'www.autocadokulu.com' Çizim yardımları yüklendi !
EKRANA BÖYLE BİR YAZI GELMESİ GEREK.


Bu lispi çalıştırmak için Command satırından rty yazıyoruz.

İlk önce döndürülecek objeyi seçiyoruz ardından referens alacağımız obje seçmemiz isteniyor.Tıkladıktan sonra seçtiğimiz metin seçtiğimiz çizgiye göre hizalanıyor...

ehya   01.07.2006 12:00 #387  

Arkadaşlar, lisplere özel bi foksiyon yazılmadığı sürece autocad'in farklı versiyonlarında çalışmama gibi bi durumu olamaz.Kodlara tekrar baktım ama çalışmaması gibi bu durum söz konusu değil. eğer yükleme esnasında bi hata veriyorsa o hatayı yazarsanız o zaman tam olarak yardım edebilirim.

cumur   15.06.2006 16:44 #354  

selam bende autocad 2002 kullanıyorum ve bendede çalışmıyor

id   22.03.2006 21:33 #264  

selam
komut satırndan "rty" yazıp, enter'ledikten sonra "Command: rty
[www.autocadokulu.com]" bilgisi yazlıyor ve işlem son buluyor. AutoCAD2006 kullanıyorum.

ehya   19.02.2006 11:21 #225  

Bu komutu kullanmak için, lispi yükledikten sonra komut olarak rty yazın.

tutu35   10.02.2006 10:24 #213  

selam bu lisp i kullanmak için hangi komutu kullanıyoruz

Copyright © 2004-2018 | Tüm Hakları Saklıdır | 1369 | Site haritası | İstatistikler | Hakkımızda | Kadromuz | Gizlilik | Reklam