autocad te otomatik vida çizimi
autocad te otomatik vida çizimi
arkadaslar autocad te böyle bişey varmı varsa nasıl yapıcas
Cvp
akademi yayınevinden çıkan autoCAD 2002 kitabında bu işlem için bir lisp yazılmış. Onu veya benzer bir lisp bularak vida çizimini yapabilirsin.
Cvp
Mechanical Desktop ta bir bak derim...
Cvp
; çap ve uzunluk girilince metrik vida çizen fonksiyon
(defun c:tal_civata (/ rr dd d l h hh p1 cl om)
;;; Civata listesi
;;; (list
;;; (list <�ap> <ad�m>)
;;; )
; metrik vidalar icin cap-adım tablosu
(setq C_lst
(list
(list 1.000 0.250)
(list 1.100 0.250)
(list 1.200 0.250)
(list 1.400 0.300)
(list 1.600 0.350)
(list 1.800 0.350)
(list 2.000 0.400)
(list 2.200 0.450)
(list 2.500 0.450)
(list 3.000 0.500)
(list 3.500 0.600)
(list 4.000 0.700)
(list 4.500 0.750)
(list 5.000 0.800)
(list 6.000 1.000)
(list 7.000 1.000)
(list 8.000 1.250)
(list 9.000 1.250)
(list 10.000 1.500)
(list 11.000 1.500)
(list 12.000 1.750)
(list 14.000 2.000)
(list 16.000 2.000)
(list 18.000 2.500)
(list 20.000 2.500)
(list 22.000 2.500)
(list 24.000 3.000)
(list 27.000 3.000)
(list 30.000 3.500)
(list 33.000 3.500)
(list 36.000 4.000)
(list 39.000 4.000)
(list 42.000 4.500)
(list 45.000 4.500)
(list 48.000 5.000)
(list 52.000 5.000)
(list 56.000 5.500)
(list 60.000 5.500)
(list 64.000 6.000)
(list 68.000 6.000)
)
)
;ge�erli osnap ayarlar� al�n�yor
(setq om (getvar "OSMODE")
oldcmdecho (getvar "cmdecho")
;Vida �ap� al�n�yor
d (getreal "Vida �ap�n� girin: ")
)
;Hatal� nokta yakalamas�n diye osnap kapat�l�yor
(setvar "OSMODE" 0)
(setvar "cmdecho" 0)
;�ap-ad�m listesinden girilen �apa kar��l�k vida ad�m� i�in listeden liste al�n�yo
(setq cl (assoc d c_lst))
;Girlen �ap de�erine kar��l�k vida bulunuyor mu diye kontrol yap�l�yor.
(while (null cl)
(progn
;girilen de�ere kar��l� vida �ap� bulunamad���
;i�in tekrar vida �ap� isteniyor
(setq d (getreal "Ge�ersiz vida �ap�.
Ba�ka bir de�er girin: ")
;Yeni girilen �apa kar��l�k vida ad�m� i�in listeden liste al�n�yo
cl (assoc d c_lst)
)
)
)
;Se�ilen listeden ad�m de�eri e�itleniyor
(setq p (nth 1 cl)
;Vidanın toplam boyu alınıyor
l (getreal "Vida boyunu girin: ")
;Vidan�n di�siz k�sm�n�n boyu al�n�yor
hh (getreal "Vidan�n di�siz k�sm�n�n uzunlu�u(Yoksa s�f�r): ")
)
;di�siz k�sm�n toplam uzunluktan fazla olup olmad��� kontol ediliyor.
(while (<= l hh)
(setq hh (getreal "Ge�ersiz uzunluk.
Ba�ka bir de�er girin: "))
)
;di� derinli�i hesaplan�yor
(setq h (* p (cos (/ pi 6))))
;ucs world´e getiriliyor.
(command "_ucs" "")
; di� profilini �izmek i�in ucs yeniden ayarlan�yor.
(command "_ucs" "x" "90")
;di� profili i�i noktlar hesaplan�yor
(setq p0 (list 0 (/ p -2) 0)
p1 (polar p0 (/ pi 2) (/ p 2))
p2 (polar p1 (/ pi -6) p)
p3 (polar p2 (* (/ pi 6) 7) p)
)
;di� profili �izdiriliyor.
(command "_pline" p1 p2 p3 "c")
; di� profilinin entitisi al�n�yor
(setq pr (entlast)
p1 (list 0 0 0)
r (/ (- d (* 2 h)) 2)
p1 (polar p1 0 r)
)
(command "_move" "l" "" "0,0,0" p1)
(command "_scale" "l" "" p0 "0.990")
(command "_ucs" "_W")
;helis �izdiriliyor
(command "_helix" "0,0,0" r r "h" p (+ (- l hh) p))
(setq hel (entlast))
;helisin merkezi yar�m ad�m a�a��ya kayd�r�l�yor
(setq p0 (list 0.0 0.0 (/ p -2)))
(command "_move" hel "" "0,0,0" p0)
(command "_rotate" hel "" "0,0,0" "90")
;�izilen helis �zerinde di� profili d�nd�r�l�yor.
(command "_sweep" pr "" hel)
(setq vida (entlast))
;helis siliniyor.
(command "_erase" hel "")
;�izilen di� profilinin i�ini doldurmak i�in silindir �izliyor.
(command "_cylinder" "0,0,0" r (- l hh))
(setq silindir1 (entlast))
;Civatan�n kafas�n� d�zeltmek i�in bir k�p �izilip di�ten ��kar�l�yor
(setq p0 (list 0.0 0.0 (- (+ l (/ d 2)) hh)))
(command "_box" "c" p0 "c" d)
(setq box (entlast))
(command "_subtract" vida "" box "")
;Di�siz b�l�m i�in silindir �iziliyor.
(if (/= hh 0)
(command "_cylinder" "0,0,0" "d" d (* -1 hh))
)
(setq silindir2 (entlast))
;Civata ba�� i�in alt�gen �izilip extrude ediliyor.
(setq p0 (list 0.0 0.0 (* -1 hh)))
(command "_polygon" "6" p0 "c" (* d 0.85))
(command "_extrude" "l" "" (* d -0.7))
(setq bas (entlast))
;Vida ba��n�n kenar yuvarlamalar� i�in uzunluklar hesaplan�yor.
(setq aa (* d 0.85 2)
k (+ (/ aa 2 (cos (/ pi 6))) (/ aa (sqrt 3)))
p0 (list 0 0 (- (+ (* d -0.7) (/ (- k aa) (* 2 (sqrt 3)))) hh))
)
;Vida ba��n�n yuvarlakl���n� ayarlamak i�in gerekli objeler �izliyor
(command "_cone" p0 (/ k 2) (/ k (* -2 (sqrt 3))))
(setq koni (entlast))
(command "_cylinder" p0 "d" k (* k -1))
(setq silindir3 (entlast))
(command "_subtract" silindir3 "" koni "")
(command "_subtract" bas "" silindir3 "")
;�izilen t�m par�alar birle�tirliyor.
(Command "_union" vida silindir1 silindir2 bas "")
;osnap ayarlar� eski haline getirliyor.
(setvar "OSMODE" om)
(setvar "cmdecho" oldcmdecho)
)
Alıntıdır
[url]http://www.autocadgunlugu.com/?p=103[/url]
Eren PALA
Makina Mühendisi (YTÜ)
Sistem Destek Uzmanı
Programcı
Cvp
http://www.autocadgunlugu.com
buradaki pasajları dikkatl incelemenizi öneririm gerçekden ciddi çalışmlar yapmış arkadaşlar
Cvp
regıon revolve komutları ile de civata somun çıkarabilirsin
benim yazdığım bi lisp var
arkadaşım msn ine eklersen benim yazdığım bi lisp var onu paylaşabilirim seninle şu an iş yerimdeyim o nedenle yollayamıyorum msn : [email protected]
Cvp
Yukarıda yazılı lisp katı modelde civata çiziyor.İki boyutta istersen dinamik blokları kullanabilirsin.
Cvp
burayı inceleyin :
http://www.autocadgunlugu.com/3d-civata-cizen-lisp-uygulamasi/
kodu buradan kaydedebilirsiniz.
http://www.autocadgunlugu.com/files/tal_civata.LSP
Cvp
selam arkadaşlar, mekanik tasarım üzerine çalışıyorum. civata somun rulman vs. standart parçaları çizerek zaman kaybetmemize yıllar önce autoCAD son verdi bunları standart parça kütüphanesine ekledi AutoCAD 14 de Genius14 adlı bir yamada standart parçaları kullanabiliyorduk. şu an ise autocad mechanical ve autoCAD mechanikal desktop´ta standart parça kütüphanesi mevcut lisplerle uğraşmaya gerek yok arkadaşlar.