20.03.2009 16:34    

nzm06
Ben bu havalandırma dirsek çizen lispi bir siteden buldum ama çalıştıramadım uğraştım ama olmadı yardımcı olacak arkadaşlar bir bakabilirse çok sevinirim. Lisp kodları aşağıdadır.

Kod:

(defun c:DD(/ *error* oldOsnap oldOffset oldEcho oldFillet ind1 ind2 outd1 outd2 ename1 ename2 ename3 ename4 obj1 obj2 obj3 obj4 strpt1 strpt2 strpt3 
    strpt4 endpt1 endpt2 endpt3 endpt4 dspt1 dspt2 raddst rads smarcc cls1 cls2 endl1 endl2 clst1 clst2 enda1 enda2
     )
  (vl-load-com)
(setq oldOsnap (getvar "osmode"))
(setq oldOffset (getvar "offsetdist"))
(setq oldEcho (getvar "cmdecho"))
(setq oldFillet (getvar "filletrad"))

   (defun *error*(msg)
   (setvar "osmode" oldOsnap)
   (setvar "offsetdist" oldOffset)
   (setvar "cmdecho" oldEcho)
   (setvar "filletrad" oldFillet) 
   (princ)
   )
  (setvar "osmode" 0)
  (setvar "cmdecho" 0)
  (setq ind1 (entsel "\nILK KANAL ICINI SEC"))
  (setq outd1 (entsel "\nILK KANAL DISINI SEC"))
  (setq ind2 (entsel "\nIKINCI KANALIN  ICINI SEC"))
  (setq outd2 (entsel "\nIKINCI KANALIN  DISINI SEC"))
  (setq ename1 (car ind1))
  (setq obj1 (vlax-ename->vla-object ename1))
  (setq strpt1 (vlax-get obj1 'StartPoint)
        endpt1 (vlax-get obj1 'EndPoint))
  (setq ename2 (car outd1))
  (setq obj2 (vlax-ename->vla-object ename2))
  (setq strpt2 (vlax-get obj2 'StartPoint)
        endpt2 (vlax-get obj2 'EndPoint))
  (if (inters strpt1 endpt1 strpt2 endpt2) (setq result "The first two lines are not parallel")
   (setq d1 (distance strpt1 (vlax-curve-getClosestPointTo obj2 strpt1))
         d2 (distance endpt1 (vlax-curve-getClosestPointTo obj2 endpt1))
         d3 (distance strpt2 (vlax-curve-getClosestPointTo obj1 strpt2))
         d4 (distance endpt2 (vlax-curve-getClosestPointTo obj1 endpt2))))
   (setq dspt1 (min d1 d2 d3 d4))
  (setq ename3 (car ind2))
  (setq obj3 (vlax-ename->vla-object ename3))
  (setq strpt3 (vlax-get obj3 'StartPoint)
        endpt3 (vlax-get obj3 'EndPoint))
  (setq ename4 (car outd2))
  (setq obj4 (vlax-ename->vla-object ename4))
  (setq strpt4 (vlax-get obj4 'StartPoint)
        endpt4 (vlax-get obj4 'EndPoint))
  (if (inters strpt3 endpt3 strpt4 endpt4) (setq result "The second two lines are not parallel")
   (setq d5 (distance strpt3 (vlax-curve-getClosestPointTo obj4 strpt3))
         d6 (distance endpt3 (vlax-curve-getClosestPointTo obj4 endpt3))
         d7 (distance strpt4 (vlax-curve-getClosestPointTo obj3 strpt4))
         d8 (distance endpt4 (vlax-curve-getClosestPointTo obj3 endpt4))))
   (setq dspt2 (min d5 d6 d6 d8)) 
  (if (<= dspt2 dspt1) (setq raddst dspt2) (setq raddst dspt1))
      (cond
                                       ((< raddst 20.9) (setq rads 5))
   ((< raddst 50.9) (setq rads 10))
   ((< raddst 70.9) (setq rads 15))
   ((< raddst 90.9) (setq rads 20))
                                       ((< raddst 110.9) (setq rads 25))
                                       ((< raddst 130.9) (setq rads 30))
                                       ((< raddst 150.9) (setq rads 35))
                                       ((< raddst 170.9) (setq rads 40))
                                       ((< raddst 190.9) (setq rads 45))
                                        ((< raddst 210.9) (setq rads 50))

      )
  (setvar "FILLETRAD" rads)
  (command "FILLET" ind1 ind2)
  (setq smarcc (cdr (assoc 10  (entget (entlast)))))
  (setvar "FILLETRAD" (+ rads raddst))
  (command "FILLET" outd1 outd2)
  (setq cls1 (vlax-curve-getClosestPointTo obj1 smarcc))
  (setq cls2 (vlax-curve-getClosestPointTo obj3 smarcc))
  (setq endl1 (inters  smarcc cls1 strpt2 endpt2 nil))
  (setq endl2 (inters  smarcc cls2 strpt4 endpt4 nil)) 
  (setq smarcc (trans smarcc 0 1)) 
  (setq clst1 (trans cls1 0 1))
  (setq clst2 (trans cls2 0 1))   
  (setq enda1 (trans endl1 0 1))
  (setq enda2 (trans endl2 0 1))
  (command "_.LINE" clst1 enda1 "")
  (command "_.LINE" clst2 enda2 "") 
(setvar "osmode" oldOsnap)
(setvar "offsetdist" oldOffset)
(setvar "cmdecho" oldEcho)
(setvar "filletrad" oldFillet)
(princ)
)

admin (01.12.2017 07:02 GMT)

20.03.2009 18:30    

Harbi65
Lisp de sorun yok çalışıyor...
hatalı yazılmış yerleri var sadece...

(setq strpt1 (vlax-get obj1StartPoint)
endpt1 (vlax-get obj1EndPoint))
Mavi kısımların başında ki kırmızıyla belirttiğim işaret ' (tırnak) işareti olacak..

20.03.2009 22:01    

ehya
harbi senin bahsettiğin benim gözümden kaçmış. mesajı düzenlerken baktım tüm kodlamalara. Arkadaş sanırım word'den copy-paste yapmış.
çift tırnakları görmüştüm ama tek olanı mesajından sonra farkettim.
Düzenleme olarak visuallisp'in yüklenmesini sağladım.
Lisp ne işe nasıl yarıyo bilmediğim için sonucunun doğru olup olmadığını bilmiyorum.
Şuan ki haliyle lisp çalışır durumda....

21.03.2009 09:13    

nzm06
Arkadaşlar ılgınız için tşkederım konuyu bırazdaha açık anlatırsanız sevinırım lisp dırsek çizmeye yazrıyo 4 çızgıyı fılet verıyo bende boyle bi hata verıyo anlamadım ben lısp olayına yenıs ayılırım ama öğrenmeyı çok istıyorum


DD ; error: bad argument type: (or stringp symbolp): nil




lütfen mesajlarınızı küçük harfle yazınız....

ehya (21.03.2009 09:20 GMT)

21.03.2009 09:22    

ehya
yukarıdaki düzenlenmiş halini aldınız değil mi?

21.03.2009 09:47    

miyatu
arkadaslar bu lisp benim lispe baslamama neden olan ve bir cok yerde yayinladigim lisptir.

vl kodlari kullanildigi icin tam olarak cozemedigim 2006 ve onceki versiyonlarda problemsiz calisan ama ust versiyonlarda hata veren bir lisptir...

lispin amaci mekanik tesisatta havalandirma kanallari icin dirsek cizimi yapar...
dirsek cizilirken kanal genisligine gore ic caplar belli sinirlar icinde olmasi gerekir. bu araligi otamatik olarak kendisi secer...

21.03.2009 10:00    

ehya
bu lisp hata vermesinin sebebi visuallisp için ön yüklemenin yapılmamasıdır.
Yukarıdaki kodlamaya bakarsan (vl-load-com) satırı vardır. Lisplerinde visuallisp kodlaması kullanıyorsan her lisp başlangıcında bu satırı yazarsan hiçbir sorun çıkmayacaktır. Bu hali ile lispi denedim ve hiçbir sorun çıkmamıştır...

21.03.2009 10:16    

nzm06
vl-load-com nasıl yapacam daha detaylı olrak anlatırmısınız ben hiç anlamadım gerçekten

21.03.2009 12:25    

ehya
yukarıdaki kodlamayı düzenlemiştim. 5nci satırı yazman yeterli. Visuallisp komutları yüklenecek ve lisp içerisindeki visuallisp komutları hata vermeyecektir.

23.03.2009 12:18    

nzm06
çok tşk ederım lsp çalışıyo hiç bı sorun yok elıne saglık tşk ederım

03.04.2009 09:35    

HIPHOP
bu lisp i ben de çalıştırdım. kullanıyorum ancak. sadece 90 derecelik borulara düzgün bi dirsek çizerken, açılı borulara dirsekleri güzel çizemiyor. bunu düzeltebilecek birisi var mı?

HIPHOP (03.04.2009 09:46 GMT)

03.12.2009 15:51    

thearid
arkadaşlar bu lipsin düzenlenmiş hali yok mu acaba ilginize teşekkür ederim.

04.08.2010 06:38    

Poizer
kanal ölçüsü 50 yi geçtiğinde 30 luk radius ile kanat yapabilecek hale getirebilmemiz mümkün mü? ayrıca 0 - 14.99 kanal aralığında 10luk radius, 15-19.9 lik kanal ölçülerinde 15 lik radius, daha üst kanal ölçülerinde ise 20 lik radius şeklinde düzenleyebilmemiz mümkün mü? bahsettiklerim iç radius ölçüleridir....

28.02.2011 08:46    

lazymelisa
Ben lispi çok sevdim teşekkürler ama fakat lakin bir isteğim var mesela benm kanalımın ölçüsü 100 ise dirseğin dışı 250 dönmeli yani kanal ölçüsüne +150 eklenmeli içi de her zaman 15 dönmeli mümkünmü?

> 1 <
Copyright © 2004-2022 SQL: 1.361 saniye - Sorgu: 80 - Ortalama: 0.01701 saniye