* E Posta Adresiniz:
* Kodu Girin:

İleti Yazar
29.10.2010 02:27
60393    
math29

[1] Yeni üye

Online Durumu

8 ileti
teknik ressam
istanbul

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 20:56 GMT)

29.10.2010 23:07
60402    
ProhibiT

[80] Yetkili

Online Durumu

1469 ileti
İnşaat Mühendisi
Ankara

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 20:56 GMT)

Where there is a will, there is a way... Beğenmek için anlamak lazım...

31.10.2010 01:50
60412    
math29

[1] Yeni üye

Online Durumu

8 ileti
teknik ressam
istanbul

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

31.10.2010 03:04
60413    
ProhibiT

[80] Yetkili

Online Durumu

1469 ileti
İnşaat Mühendisi
Ankara

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.

Where there is a will, there is a way... Beğenmek için anlamak lazım...

31.10.2010 15:04
60416    
math29

[1] Yeni üye

Online Durumu

8 ileti
teknik ressam
istanbul

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

04.11.2010 15:40
60497    
ProhibiT

[80] Yetkili

Online Durumu

1469 ileti
İnşaat Mühendisi
Ankara

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.

Where there is a will, there is a way... Beğenmek için anlamak lazım...

07.02.2011 00:39
62466    
math29

[1] Yeni üye

Online Durumu

8 ileti
teknik ressam
istanbul

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

bu hata mesajını alıyorum

07.02.2011 07:48
62468    
ProhibiT

[80] Yetkili

Online Durumu

1469 ileti
İnşaat Mühendisi
Ankara

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.

Where there is a will, there is a way... Beğenmek için anlamak lazım...

13.03.2011 23:08
63308    
onderylmz

[3] Kıdemli Girişimci

Online Durumu

32 ileti
Mak.Yük.Müh.
ANKARA

Ç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 03:25
63312    
ProhibiT

[80] Yetkili

Online Durumu

1469 ileti
İnşaat Mühendisi
Ankara

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 10:26 GMT)

Where there is a will, there is a way... Beğenmek için anlamak lazım...

23.05.2011 01:34
64406    
onderylmz

[3] Kıdemli Girişimci

Online Durumu

32 ileti
Mak.Yük.Müh.
ANKARA

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

23.05.2011 02:00
64408    
ProhibiT

[80] Yetkili

Online Durumu

1469 ileti
İnşaat Mühendisi
Ankara

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 (23.05.2011 02:10 GMT)

Where there is a will, there is a way... Beğenmek için anlamak lazım...

30.05.2011 12:13
64478    
onderylmz

[3] Kıdemli Girişimci

Online Durumu

32 ileti
Mak.Yük.Müh.
ANKARA

Abi üzgünüm ama yine olmadı

22.12.2011 20:19
67093    
ProhibiT

[80] Yetkili

Online Durumu

1469 ileti
İnşaat Mühendisi
Ankara

KaMe fonksiyonun düzenlenmiş son halini

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

linkinden alabilirsiniz.


ProhibiT (07.02.2012 12:53 GMT)

Where there is a will, there is a way... Beğenmek için anlamak lazım...

02.02.2012 12:15
67785    
kurtkale

[1] Yeni üye

Online Durumu

1 ileti
tekniker
ankara

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 14:56
67789    
waytooraider

[8] Kıdemli Uzman

Online Durumu

162 ileti
makine mühendisi
istanbul

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

Saygılarımla Hocam.

07.02.2012 10:34
67808    
ProhibiT

[80] Yetkili

Online Durumu

1469 ileti
İnşaat Mühendisi
Ankara

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.

Where there is a will, there is a way... Beğenmek için anlamak lazım...

07.02.2012 12:05
67809    
waytooraider

[8] Kıdemli Uzman

Online Durumu

162 ileti
makine mühendisi
istanbul

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

09.02.2012 14:24
67832    
ProhibiT

[80] Yetkili

Online Durumu

1469 ileti
İnşaat Mühendisi
Ankara

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.

Where there is a will, there is a way... Beğenmek için anlamak lazım...

09.02.2012 15:51
67835    
aytac_kavak

[2] Girişimci

Online Durumu

16 ileti
makına
ist

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

> 1 < [2] [3] [4] Sonraki Sayfa
Copyright © 2004-2018 | Tüm Hakları Saklıdır | 2159 | Site haritası | İstatistikler | Hakkımızda | Kadromuz | Gizlilik | Reklam