28.10.2010 22:27    

math29
Hava kanalı metrajı çıkarmak için lisp. Aşağıda soruya verilen cevapta indirebileceğiniz lsp uzantılı AutoLISP dosyası verilmiştir.



Hava kanalı metrajı çıkarmak için lisp arıyorum. Şöyle bir şey yapabilir. Örneğin autocad de kanal boyunu dimension ile ölçüp 200x200 (kanal ebatı) yazısına tıkladığımda toplam alanı excele aktarsın. Kanal alanı= 2(A+B)*L

A: KANAL ENİ
B: YÜKSEKLİK

L: KANAL BOYU

admin (05.04.2018 16:56 GMT)

29.10.2010 19:07    

ProhibiT
Bahsettiğiniz işlem bu kadar basit olmasa gerek:) Dirsekleri ne yapacaksınız? Resim düzlemine dik (Dikey) Kanalları nasıl metraja katacaksınız? Gibi pek çok noktada eksik kalır...

Bir diğer nokta da; AutoCAD programı ya da AutoLisp Fonksiyon müneccim değildir. Yazdığınız gibi "Arife tarif ne gerek" alsın hesaplasın yazsın diyemezsiniz.

Böyle bir metraj işlemini sık yapıyorsanız ve sizin için önemliyse, yani değerliyse; Piyasada bu işi bihakkın yapan programlar var. İçlerinden birini de, (belki de en kötüsünü) ben yazdım. Bedelini öder kullanırsınız. Bu yolu tercih ederseniz; tıklarsınız planda mekanın içine, Alan bulunur. Sorar yüksekliği Hacmi hesaplar. Verirsiniz Hava Değişim/Saat değerini Debiyi hesaplar. Belirlersiniz kanal içindeki maksimum/minimum hızları Kanallarınızı boyutlandırır. Kanallarda ve Dirseklerdeki sürtünme kayıplarını da göz önüne alarak, Üfleme ve emiş kanallarınızı Santralinize kadar düzenleyip dengeler. Ve sonunda da elbet Metrajlarınız da emrinize amadedir.

Şimdi birileri çıkıp, "Vay anasını sayın seyirciler, böyle bir program var kopyalayabileceğim. Ama Hardware Lock korumalı. Benim güzel hatırıma bunu crack'lermisiniz?" diyeceklerdir. Yok öyle yağma Hasan'ın böreği! Hilal-ı Ahmer'e çalışmıyoruz. Kendi ayağımıza da kurşun sıkacak birileri olmadığımıza göre...!

İhtiyacı, ilgisi, bilgisi olana burada bir fonksiyon paylaşıyorum. "Orası da şöyle olsa, burası da böyle olsa" türünden hiç bir değişiklik teklifine kulak asmayacağımı peşinen belirtmek isterim.

Apaçık kod veriyoruz, bileği yeten alır düzenler, değiştirir. Biz de bu alemde aramıza biri daha katıldı diye mutlu oluruz. Program yazan arkadaşlarımızın eleştirilerine her zaman açığım elbette, o başka bir boyut. Bunun dışında "...şurasına da kuş kondursak" şeklindeki kullanıcı isteklerine kulak asmaya başlayınca evin yolunu bulamıyoruz. Kimse kusura bakmasın! Kusura bakanlar da bi zahmet imzamı okusunlar :)

Kodların buradan alınıp Lisp dosyası oluştururken yapılan hatalar nedeniyle, kullanıma hazır dosyayı 174410-kame.rar tıklayarak indirebilirsiniz.

Hava kanalı metraj fonksiyonu download linki: 174410-kame.rar



Herkese Kolay Gelsin...

admin (05.04.2018 16:56 GMT)

30.10.2010 21:50    

math29
TEŞEKKÜRLER HOCAM YALNIZ BU PROGRAMIN KISA YOLU NEDİR ÇALIŞTIRAMADIM

31.10.2010 00:04    

ProhibiT
Kod başlangıcında görünen (defun c:KaMe () ... den de anlaşılacağı gibi fonksiyonun adı KaMe.
Burada verdiğim kodu Copy/Paste ile alıp (mesela Notpad'e) uzantısı -.Lsp olan bir dosya olarak kaydedin (mesela c:\.......\AutoCAD 2011\Support\KaMe.Lsp şeklinde)
Bundan sonra AppLoad ile bu fonksiyonu yükleyin... Fonksiyon kullanıma hazırdır.
AutoCAD Komut Satırından KaMe<┘ girmeniz yeterli...

Kolay Gelsin.

31.10.2010 12:04    

math29
appload dan yükledim command satırana kame yazıyorum unknown command diyor anlamadım sorun nedir.

04.11.2010 12:40    

ProhibiT
AppLoad ile yüklediğinizde, "KaMe.lsp successfully loaded." türü mesaj alıyor musunuz? Yani fonksiyonumuz gerçekten yükleniyor mu?

Eğer Burada verdiğim Program kodunu, "c:\Program Files\Autodesk\AutoCAD 2011\Support" (bu yolu örnek olarak yazdım sizde farklı olabilir) klasörüne, mesela KaMe.Lsp olarak kaydettiyseniz... Dosya isminin KaMe.Lsp.Txt şeklinde yanlış olmadığından eminseniz...

AutoCAD Komut satırından
Command: (load "KaMe.Lsp")<┘ ;;girdiğinizde,
C:KAME ;;mesajını alıyorsanız...

Fonksiyonumuz başarıyla yüklendi ve KaMe komutumuz kullanıma hazırdır.

Yukarıda bahsettiğim dosya adı hatası Not defteri (NotPad) programı kullanılırken, kayıt işlemi sırasında "Kayıt türü" olarak "Metin Belgesi (*.txt)" seçili olduğunda ortaya çıkıyor. Bu tür AutoLisp Program dosyalarını kaydederken, "Kayıt Türü" olarak "Tüm dosyalar (*.*)" seçili olmalıdır. Aksi halde "DosyaAdı.Lsp.Txt" gibi aslında uzantısı txt olan dosya kaydetmiş olursunuz ve haliyle AutoCAD bunu AutoLisp Source Code olarak yükleyemez...

Kolay gelsin.

06.02.2011 21:39    

math29
Nil; error: an error has occurred inside the *error* functionbad argument type:
streamp nil

bu hata mesajını alıyorum

07.02.2011 04:48    

ProhibiT
Hata yakalam rutini içinde bir hata oluşuyor. ilk satırdaki; (princ er) yerine (princ e) yazarsanız hallolacaktır.

neden hata oluşup, hata yakalama rutinine gidildiği konusunda bir fikrim yok.
- read only bir klasörde dosya açmaya çalışıyor olabilirsiniz.
- kanal ebadı olarak seçtiğiniz obje text değil mtext veya block olabilir.
----------------------------------
(while (/= (cdr (assoc 0 (entget
(setq ebat (car (entsel "\nkanal ebadı yazısını seçiniz. . . ")))))) "text") (princ "\nsectiginiz obje bir text objesi olmalıdır!"))
----------------------------------
yerine
----------------------------------
(princ "\nkanal ebadı yazısını seçiniz. . . ")
(while (not (setq ebat (ssget ":s" (list (cons 0 "*text"))))) (princ "\nsectiginiz obje bir text objesi olmalıdır!"))
(setq ebat (ssname ebat 0))
----------------------------------
yazarsanız, fonksiyon hem text hem de mtext objeleriyle işlem yapacaktır.

kanal ebadının block veya attribute olması durumları, fonksiyonun maksadını aşan bambaşka durumlar.

kolay gelsin.

13.03.2011 20:08    

onderylmz
Çalıştıramadım hocam
:
command: kame
bad argument type: fixnump: ""; error: an error has occurred inside the *error*
functionbad argument type: streamp nil

14.03.2011 00:25    

ProhibiT
Yaukarıda bahsettiğim değişikliklerin uygulanmış hali,

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

den alınabilir.

ProhibiT (07.02.2012 07:26 GMT)

22.05.2011 21:34    

onderylmz
Sn hocam ,

command: kame bad argument type: fixnump: ""; error: an error has occurred
inside the *error* functionbad argument type: streamp nil

uyarısı geliyor ve çalışmıyor
saygılar sunarım

22.05.2011 22:00    

ProhibiT
Ilginç! bu fonksiyon burada paylaşılmadan çok sayıda ve değişik parametrelerle denendi, bahsettiğiniz türden bir hata ile hiç karşılaşılmadı. olası hata durumlarına göre yukarıdaki kodu *error* bölümünü tekrar düzenleyerek yeniledim, buradan tekrar alıp denerseniz, probleminiz çözülebilir. Eğer gene hata alıyorsanız;
Kod:

(defun *error* (er f) (princ er) (setvar "modemacro" "") (if f (close f)) (prin1))
satırını kaldırıp öyle çalıştırmayı deneyin. burada error trap fonksiyonu çok hayati değil aslında, tek amacı modemacro değerini boşaltmak ve eğer açık kaldıysa açılan dosyayı kapatmaktan ibaret.

ProhibiT (22.05.2011 22:10 GMT)

30.05.2011 08:13    

onderylmz
Abi üzgünüm ama yine olmadı :(

22.12.2011 17:19    

ProhibiT
KaMe fonksiyonun düzenlenmiş son halini

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

linkinden alabilirsiniz.

ProhibiT (07.02.2012 09:53 GMT)

02.02.2012 09:15    

kurtkale
prohibit merhaba..ben yükledim.autocad da tanıdı..fakat nasl kullanacağımı bilemiyorum.kullanmasını da anlatırmısın.
kame (ENTER)
bad argument type: fixnump: ""bad argument type: streamp nil

SONRA NE YAPACAĞIM BİLEMİYORUM..

02.02.2012 11:56    

waytooraider
"bad argument type: fixnump: ""bad argument type: streamp nil "hatası veriyor.

Saygılarımla Hocam.

07.02.2012 07:34    

ProhibiT
Fonksiyon kodunu buradan alıp denedim, problemsiz çalışıyor. Bahsettiğiniz hatanın kaynağını bulamamakla birlikte, hataya sebep olabilecek gereksiz bazı detaylar kaldırıldı. X veya x şeklinde seçilen ayraç değiştirildi. Sayısal olmayan her karakter ayraç olarak kullanılabilir. İstenirse Kanal en ve boy değerlerinin arasında X, x, / ve hatta boşluk bile kullanılabilir. Tek şart ayraç karakteri Text içinde tek bir defa kullanılmış olmalıdır. Fonksiyonun son halini,

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

den alabilirsiniz.

Kolay gelsin.

07.02.2012 09:05    

waytooraider
bad argument type: fixnump: ""
Hatasını verdi hocam. En iyisi autocad'i tekrar kurayim :)

09.02.2012 11:24    

ProhibiT
Merhaba waytooraider, umarım AutoCAD'i yeniden kurmamışsınızdır, hatayı buldum sonunda. :)

String'lerde tırnak için de tırnak yazmak için back slash kullanıyoruz. Kodlarımızı siteye yüklerken, code braketi içinde de olsa back slash işaretleri kaybolduğu için hataya sebep oluyormuş. Bu durumu düzeltip yeniden yükledim. Son halini problemsiz kullanabilirsiniz.

09.02.2012 12:51    

aytac_kavak
Hocam Elinize saglık 10 numara olmus sorunsuz calısıyor tesekkurler.

> 1 < [2] [3] [4] Sonraki Sayfa
Copyright © 2004-2022 SQL: 1.159 saniye - Sorgu: 102 - Ortalama: 0.01137 saniye