08.04.2009 21:55    

yazgunesi
Autolisp program sayısı 3 oldu.

Sırasıyla komut isimleri : koni , koni1 , koni2

Çalışma mantığı :

1. Lisp : Ölçü girişi ile koni çizimi ve açınım resmi oluşturma..
2. Lisp : Varolan bir koni resmi üzerindeki noktalara tıklamak ve açılım resmini çizdirmek..
3. Lisp : Varolan bir koni resmi üzerindeki çizgilere tıklamak ve açılım resmini çizdirmek..


Lispler hakkında ; kullanıcıdan aldığı bilgilere göre koni çizen ve açılımını yapan autolisp programı.

Önemli Not: Bu lispler saç kalınlığına göre hesap etmemektir ! Sadece verilen ölçülere göre açılımı yapar. Normalde saç açınımları büküm eksenine göre yapılır. Büküm ekseni saç kalınlığının ortasından geçen eksendir.. Büküm ekseni konusunu daha iyi anlayabilmek için silindir açılım lispi'ndeki hesaplama tekniğini incelemenizi öneririm..

Aşağıda verilen autolisp kodlarını isterseniz hepsini tek bir dosya içine yada ayrı ayrı dosyaya kayıt edebilirsini, sonuçta komut isimleri farklıdır zatten..


Kod:

; **************************************
;       Koni çizim saç açılımı lispi v.1.0
;
;           powered by yazgunesi                 
;           www.autocadokulu.com
;
; **************************************

; ilk önce DTR fonkisonunu tanımlayalım

(defun dtr (x)
  (* pi (/ x 180.0 ))
)
(princ)

; ***************************************

(defun c:koni ()
(setq oldsnap (getvar "OSMODE"))
(setvar "OSMODE" 0)
 
; kullanıcıdan  bilgi  alalımı
 
(setq yr1 (getpoint "\n Koni yerlestirme noktasi :"))
(setq bykcap (getreal "\n Koni büyük çap ? :"))
(setq kckcap (getreal "\n Koni küçük çap ? :"))
(setq knboy  (getreal "\n Koni boyu nedir ? :"))
 
; koni ana çizim kordinat noktaları hesabı

(setq yr2 (list(car yr1) (+(cadr yr1) knboy)))
(setq a1 (list(-(car yr1)(/ kckcap 2))(cadr yr1)))
(setq a2 (list(-(car yr2)(/ bykcap 2))(cadr yr2)))
(setq a3 (list(+(car yr1)(/ kckcap 2))(cadr yr1)))
(setq a4 (list(+(car yr2)(/ bykcap 2))(cadr yr2)))
 
; koni orta eksen boyu hesabı
 
(setq yr3a (/ (- bykcap kckcap)2))
(setq yr3b (/ bykcap 2))
(setq yr3c (/ yr3b yr3a))
(setq yr3boy (* knboy yr3c))
(setq yr3 (polar yr2 (dtr 270) yr3boy))
 
(setq kckradus (distance yr3 a3)) ; küçük radüs hesabı
(setq bykradus (distance yr3 a4)) ; büyük radüs hesabı

; açınım yeri tayini hesabı

(setq deger1 (* bykcap 2.3))
(setq deger2 (* knboy 1.2))
(setq msf1 (+ deger1 deger2))
(setq yr4(polar yr3 (dtr 180)(- msf1)))
 
; açılım açısı hesabı

(setq acmaci (*(/ bykcap bykradus)180)) 
(setq acmson (/ acmaci 2)) 
(setq sagbolum (+ 90 acmson)) 
(setq solbolum (- 90 acmson))

(setq a5 (polar yr4 (dtr solbolum) kckradus)) 
(setq a6 (polar yr4 (dtr solbolum) bykradus))
(setq a7 (polar yr4 (dtr sagbolum) kckradus))
(setq a8 (polar yr4 (dtr sagbolum) bykradus)) 

(setq yr5 (polar yr4 (dtr 90) kckradus)) 
(setq yr6 (polar yr4 (dtr 90) bykradus))

; koni çizimi başlangıç

(command "line" a1 a3 ""
         "line" a2 a4 ""
         "line" a1 a2 ""
         "line" a3 a4 "" )

(command "line" yr1 yr2 ""
                 "change" "l" "" "p" "lt" "center" "c" "3" "" )

; açınım çizimine başlayalım
 
(command "arc" a5 yr5 a7)
(command "arc" a6 yr6 a8)   

(command "line" a5 a6 ""
            "line" a7 a8 "" )
 
(command "line" yr5 yr6 ""
              "change" "l" "" "p" "lt" "center" "c" "3" "" )

(setvar "OSMODE" oldsnap)
(princ) )
(Princ "Lisp'i çalıştırmak için > koni < yazınız! [www.autocadokulu.com] ")


Yukarıda gözüken autolisp programını nasıl kullanacağınızı bilmiyorsanız eğer aşağıdaki linkten;
AutoLISP > Konu Anlatımları > Lisp Dosyalarının oluşturulması ve Yüklenmesi
konusunu incelemenizi öneririm...


Kod:

; *****************************************
;       Koni çizim saç açılımı lispi v.2
;          www.autocadokulu.com       
; *****************************************

; ilk önce DTR fonkisonunu tanımlayalım

(defun dtr (x)
  (* pi (/ x 180.0 ))
)
(princ)

; ***************************************

(defun c:koni1 ()
(setq oldsnap (getvar "OSMODE"))

(setq msf1 (getpoint "\n Büyük Çap Başlangıç Noktası ?! :")) ; kullanıcıdan  bilgi  alalımı
(setq msf2 (getpoint "\n Büyük Çap Bitiş Noktası ?! :"))
(setq msf3 (getpoint "\n Küçük Çap Başlangıç Noktası ?! :"))
(setq msf4 (getpoint "\n Küçük Çap Bitiş Noktası ?! :"))
(setq msf5 (getpoint "\n Boy Başlangıç Noktası ?! :"))
(setq msf6 (getpoint "\n Boy Bitiş Noktası ?! :"))
(setq yr1 (getpoint "\n Çizdirmek İçin TıKLa ! :"))

(setvar "OSMODE" 0)

(setq bykcap (distance msf1 msf2)) 
(setq kckcap (distance msf3 msf4))
(setq knboy (distance msf5 msf6))        

(setq yr2 (list(car yr1) (+(cadr yr1) knboy)))    ; koni ana çizim kordinat noktaları hesabı
(setq a1 (list(-(car yr1)(/ kckcap 2))(cadr yr1)))
(setq a2 (list(-(car yr2)(/ bykcap 2))(cadr yr2)))
(setq a3 (list(+(car yr1)(/ kckcap 2))(cadr yr1)))
(setq a4 (list(+(car yr2)(/ bykcap 2))(cadr yr2)))

(setq yr3a (/ (- bykcap kckcap)2))  ; koni orta eksen boyu hesabı
(setq yr3b (/ bykcap 2))
(setq yr3c (/ yr3b yr3a))
(setq yr3boy (* knboy yr3c))
(setq yr3 (polar yr2 (dtr 270) yr3boy))

(setq kckradus (distance yr3 a3)) ; küçük radüs hesabı
(setq bykradus (distance yr3 a4)) ; büyük radüs hesabı

(setq deger1 (* bykcap 2.3)) ; açınım yeri tayini hesabı
(setq deger2 (* knboy 1.2))
(setq msf1 (+ deger1 deger2))
(setq yr4(polar yr3 (dtr 180)(- msf1)))

(setq acmaci (*(/ bykcap bykradus)180)) ; açılım açısı hesabı
(setq acmson (/ acmaci 2))
(setq sagbolum (+ 90 acmson))
(setq solbolum (- 90 acmson))

(setq a5 (polar yr4 (dtr solbolum) kckradus))
(setq a6 (polar yr4 (dtr solbolum) bykradus))
(setq a7 (polar yr4 (dtr sagbolum) kckradus))
(setq a8 (polar yr4 (dtr sagbolum) bykradus))
(setq yr5 (polar yr4 (dtr 90) kckradus))
(setq yr6 (polar yr4 (dtr 90) bykradus))

(command "arc" a5 yr5 a7)  ; açınım çizimine başlayalım
(command "arc" a6 yr6 a8)   
(command "line" a5 a6 ""
                 "line" a7 a8 "" )
(command "line" yr5 yr6 ""
         "change" "l" "" "p" "lt" "center" "c" "3" "" )
(setvar "OSMODE" oldsnap)
(princ) )
(Princ "Lisp'i çalıştırmak için > koni1 < yazınız! [www.autocadokulu.com] ")


Kod:

; *****************************************
;       Koni çizim saç açılımı lispi v.3
;          www.autocadokulu.com       
; *****************************************

; ilk önce DTR fonkisonunu tanımlayalım

(defun dtr (x)
  (* pi (/ x 180.0 ))
)
(princ)
; ***************************************

(defun c:koni2 ()
(setq oldsnap (getvar "OSMODE"))
(setq oldCmdecho (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
 
(setq yr1 (getpoint "\n Koni üzerinde bir noktaya Tıkla ! :"))
 
(setvar "OSMODE" 0)
 
(setq rakam1 80 )
(setq rakam2 80 )
 
(setq krd2 (polar yr1(dtr 180)(- rakam1)))
(setq krd3 (polar yr1(dtr 90) rakam2))
       
(command "ucs" "3" yr1 krd2 krd3)   ; ucs 3 point yaparak kordinatı sıfırlama .

(setq obj_sec1 (car (entsel "\n Büyük Çap YATAY ÇİZGİ'yi Seç : "))) (terpri)
(setq obj_sec2 (car (entsel "\n Küçük Çap YATAY ÇİZGİ'yi Seç : "))) (terpri)
(setq obj_sec3 (car (entsel "\n Orta Eksen DİKEY ÇİZGİ'yi Seç : "))) (terpri)

(setq msf1 (cdr (assoc 10 (entget obj_sec1)))) ; line nesnesinin başlangıç kordinatı
(setq msf2 (cdr (assoc 11 (entget obj_sec1)))) ; line nesnesinin bitiş kordinatı   
(setq bykcap (distance msf1 msf2 )) ; çizginin boyunu hesapladık

(setq msf3 (cdr (assoc 10 (entget obj_sec2))))
(setq msf4 (cdr (assoc 11 (entget obj_sec2))))
(setq kckcap (distance msf3 msf4 ))
(setq msf5 (cdr (assoc 10 (entget obj_sec3))))
(setq msf6 (cdr (assoc 11 (entget obj_sec3)))) 
(setq knboy (distance msf5 msf6 ))

; koni ana çizim kordinat noktaları hesabı
(setq yr2 (list(car yr1) (+(cadr yr1) knboy)))
(setq a1 (list(-(car yr1)(/ kckcap 2))(cadr yr1)))
(setq a2 (list(-(car yr2)(/ bykcap 2))(cadr yr2)))
(setq a3 (list(+(car yr1)(/ kckcap 2))(cadr yr1)))
(setq a4 (list(+(car yr2)(/ bykcap 2))(cadr yr2)))

(setq yr3a (/ (- bykcap kckcap)2))   ; koni orta eksen boyu hesabı
(setq yr3b (/ bykcap 2))
(setq yr3c (/ yr3b yr3a))
(setq yr3boy (* knboy yr3c))
(setq yr3 (polar yr2 (dtr 270) yr3boy))

(setq kckradus (distance yr3 a3)) ; küçük radüs hesabı
(setq bykradus (distance yr3 a4)) ; büyük radüs hesabı

(setq deger1 (* bykcap 2.3))   ; açınım yeri tayini hesabı
(setq deger2 (* knboy 1.2))
(setq msf1 (+ deger1 deger2))
(setq yr4(polar yr3 (dtr 180)(- msf1)))

(setq acmaci (*(/ bykcap bykradus)180))  ; açılım açısı hesabı
(setq acmson (/ acmaci 2))
(setq sagbolum (+ 90 acmson))
(setq solbolum (- 90 acmson))
(setq a5 (polar yr4 (dtr solbolum) kckradus))
(setq a6 (polar yr4 (dtr solbolum) bykradus))
(setq a7 (polar yr4 (dtr sagbolum) kckradus))
(setq a8 (polar yr4 (dtr sagbolum) bykradus))
(setq yr5 (polar yr4 (dtr 90) kckradus))
(setq yr6 (polar yr4 (dtr 90) bykradus))

(command "arc" a5 yr5 a7)   ; açınım çizimi başlangıç
(command "arc" a6 yr6 a8)   
(command "line" a5 a6 ""
         "line" a7 a8 "" )
(command "line" yr5 yr6 ""
         "change" "l" "" "p" "lt" "center" "c" "3" "" )
 
(command "ucs" "w") ; ucs normal yap..
(setvar "OSMODE" oldsnap) ; ucs normal yap..
(setvar "CMDECHO" oldCmdecho)  ; sistem değişk. geri yükle
(princ) )
(Princ "Lisp'i çalıştırmak için > koni2 < yazınız! [www.autocadokulu.com]")

yazgunesi (24.02.2010 08:28 GMT)

24.05.2011 12:29    

bud_0782
Lispler için teşekkür ederim.

06.07.2011 20:04    

turkiyem1983
Bana eğik konik açınımı yapacak bi lisp lazım. bayadır arıyorum mevcut lispler sadece dik konik çiziyor.

admin (07.12.2017 21:03 GMT)

07.07.2011 07:17    

SENDUR
Arkadaşım çeşitli şekillerin ( eğik koni ve daha fazlasının) açınımlarını yapan programlar var onları kullanmayı dene.
plate'n sheet ( favorim), autopol (2.Favorim), adaptör vb. sadece sac açınımı üzerine yapılmış programlar.

12.07.2011 10:23    

yazgunesi
Elbet bir gün eğik koni açılım lispi yapılacak, hatta spiral burgulusu bile olacak ! :D Zamanı geldiğinde sitemizde örnek bir program görebilirsiniz.

şüphesis olarak bazı arkadaşlarımız sheet metal yazılımları tafsiye edebilir.Bende öneririm şahsen oldukça kullanışlı güzel yazılımlar...

fakat benim beklentim, benim istediğim şeklide saç açılımını yapacak ve kaynak kodlarını istediğim zaman değiştireceğim/yenileceğim açık kaynak kodlu autolisp programları kullanmaktır.

admin (07.12.2017 21:05 GMT)

23.01.2013 14:53    

sahika
çok teşekkürler çok başarılı..

28.03.2013 09:15    

asencer
elinize sağlık çok başarılı lispler.

bu lispe bir özellik daha eklemeniz mümkün mü acaba?

koninin açılımını yaptıktan sonra büyük çap çizgisini ve küçük çap çizgisini istenilen bir sayıda eşit olarak bölsün.. (divide yapar gibi..) ve oluşan noktalardan dilimleme ölçüsü alabilmemiz için noktaları birleştirsin..

saygılarımla.
iyi çalışmalar.

09.03.2022 09:08    

akcan
Son mesajdan sonra 9 yıl geçmiş ama ilgilenenler için youtube kanalımda AutoCAD ile açınım çizimleri videoları var.


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


Bu oynatma listesinde koni açınımları ile ilgili 4 video var.

> 1 <
Copyright © 2004-2022 SQL: 0.907 saniye - Sorgu: 65 - Ortalama: 0.01396 saniye