AutoCAD'de AutoLISP Yükleme ve Otomatik Başlatma: 4 Yol
APPLOAD, Startup Suite, acaddoc.lsp ve destek dosya yolu. Dört yükleme yolundan hangisi ne zaman doğru, LISP rutinleri ekipte nasıl aynı kalır?
Bu Yazıda
Bir LISP rutini yazdınız, çalışıyor, mutlusunuz. Sonra AutoCAD'i kapatıp açıyorsunuz ve komut satırına yazdığınızda "bilinmeyen komut" diyor. Çünkü LISP kodu AutoCAD kapandığında bellekten siliniyor — her oturumda yeniden yüklenmesi gerekiyor.
İşte bu yazı, o "yeniden yükleme" işini bir daha hiç düşünmemeniz için. Ve daha önemlisi: ekipteki herkeste aynı düzenin kurulması için. Çünkü tek başınıza çalışırken küçük bir zahmet olan bu iş, beş kişilik bir ekipte gerçek bir kaos kaynağına dönüşebiliyor.
AutoLISP'e yeni başlıyorsanız önce AutoLISP nedir yazısına, kendi komutunuzu yazmayı merak ediyorsanız AutoCAD'e yeni komut ekleme yazısına bakabilirsiniz.
AutoCAD size LISP yüklemenin birden fazla yolunu veriyor ve hepsinin farklı bir amacı var. Kafa karışıklığının çoğu, hangisinin ne işe yaradığının bilinmemesinden çıkıyor.
1. APPLOAD — elle yükleme
APPLOAD komutu bir pencere açar, dosyayı seçersiniz, yüklenir. Sadece o oturum için geçerlidir; AutoCAD kapanınca gider.
Ne zaman: Geliştirme sırasında. Kodu değiştirdiniz, yeniden yükleyip denemek istiyorsunuz. Bir de birisi size tek seferlik bir rutin gönderdiğinde.
Ne zaman değil: Günlük kullanımda. Her sabah dosya yüklemek, otomasyonun kazandırdığı süreyi geri verir.
2. Startup Suite — kişisel otomatik yükleme
APPLOAD penceresinin içinde "Startup Suite" (Başlangıç Paketi) adlı bir bölüm var. Buraya eklediğiniz dosyalar, AutoCAD her açıldığında kendiliğinden yüklenir.
Ne zaman: Tek başınıza çalışıyorsanız ve birkaç dosyanız varsa. Kurulumu en kolay yol.
Ne zaman değil: Ekip genelinde. Startup Suite kişisel profilde saklanır; her kullanıcının bilgisayarında elle kurulması gerekir. Beş kişilik bir ekipte beş kez, ve her yeni dosyada yine beş kez.
3. `acaddoc.lsp` — belge bazlı otomatik yükleme
Bu, klasik ve en güçlü yol. acaddoc.lsp adlı bir dosya, AutoCAD'in arama yollarından birinde duruyorsa, her çizim açıldığında kendiliğinden çalıştırılır.
Bu dosyanın içine kendi rutinlerinizi yükleyen satırlar koyarsınız. Böylece hem yeni açılan çizimlerde hem de AutoCAD açıkken açtığınız her çizimde kodunuz hazır olur.
Ne zaman: Ekip genelinde kalıcı bir kurulum istediğinizde. Doğru yol budur.
Dikkat: "Her çizim açılışında çalışır" cümlesini ciddiye alın. Buraya ağır bir işlem koyarsanız her çizim açılışı yavaşlar. acaddoc.lsp yalnızca yükleme yapmalı, iş yapmamalı.
4. Destek dosya arama yolu — dosyaların bulunduğu yer
Bunlar birer yükleme yöntemi değil ama üçünü de mümkün kılan altyapı. AutoCAD, bir dosya adı gördüğünde onu Destek Dosyası Arama Yolu (Support File Search Path) listesindeki klasörlerde arar.
Kendi LISP klasörünüzü bu listeye eklerseniz, dosyaları tam yol yazmadan adıyla çağırabilirsiniz. Ve daha önemlisi: dosyanın nerede durduğu değişse bile, arama yolu güncellendiğinde her şey çalışmaya devam eder.
Şimdi asıl meseleye gelelim. Tek kişilik kurulum kolay; ekip kurulumu ise bir tasarım işi. Sahada işe yarayan düzen şu:
Bir ortak klasör. Tüm LISP dosyaları tek bir yerde dursun — ağ paylaşımı ya da senkronize edilen bir bulut klasörü. Önemli olan, ekipteki herkeste aynı yolla erişilebilmesi.
Herkeste aynı sürücü harfi. Ağ klasörü kullanıyorsanız herkeste aynı harfe bağlayın (M:\CAD\Lisp gibi). Farklı harfler, taşınabilirliği bozan bir numaralı sebep.
Arama yoluna eklensin. Bu klasör her kullanıcının Destek Dosyası Arama Yolu listesinde olsun. Böylece dosyalar adıyla çağrılabilir.
Tek bir `acaddoc.lsp`. Ortak klasörde tek bir dosya dursun ve içinde hangi rutinlerin yükleneceği yazsın. Yeni bir rutin eklendiğinde tek bir dosyayı güncellersiniz, herkeste etkili olur.
Yazma yetkisi kısıtlı olsun. Herkes yazabiliyorsa, bir gün birisi çalışan bir rutini bozar ve kimse ne zaman bozulduğunu bilmez. Yazma yetkisi bir ya da iki kişide olsun.
Bu düzenin en büyük faydası şu: yeni bir bilgisayar kurulumunda yapılacak tek iş, arama yoluna bir klasör eklemek. Gerisi kendiliğinden gelir.
Birden fazla dosyanız olduğunda sıra önemli hale geliyor. Bir rutin, başka bir dosyadaki yardımcı fonksiyonu kullanıyorsa, o dosyanın önce yüklenmiş olması gerekir.
İki pratik çözüm var:
Yükleme dosyasında sırayı elle belirtin. acaddoc.lsp içinde önce yardımcı fonksiyonları, sonra komutları yükleyin. Basit ve öngörülebilir.
Bağımlılıkları en aza indirin. Her dosya mümkün olduğunca kendi kendine yetsin. Dosyalar arası bağımlılık arttıkça sıra problemi de büyür.
İkincisini tercih ediyorum. Otuz dosyalık bir kütüphanede yükleme sırasını takip etmek, kısa sürede bakım yüküne dönüşüyor.
Otomatik yükleme kurmanın bir bedeli var: bir şey ters gittiğinde nerede olduğunu bulmak zorlaşıyor. AutoCAD açılıyor, bir hata mesajı geçiyor ve siz onu okumaya fırsat bulamadan çizim ekranı geliyor.
Üç alışkanlık bunu çözüyor:
Yükleme dosyanız konuşsun. Her rutin yüklendiğinde komut satırına kısa bir satır yazsın: "MS-Katman rutinleri yüklendi." Ekibiniz bunu gördüğünde her şeyin yerinde olduğunu bilir; görmediğinde bir sorun olduğunu anlar.
Dosya bulunamazsa uyarsın. Yüklenecek dosya yoksa AutoCAD sessizce geçer ve siz komutun neden çalışmadığını anlamaya çalışırsınız. Yükleme dosyanız, bulamadığı dosyayı açıkça söylesin.
Bir "yeniden yükle" komutu yazın. Geliştirme sırasında değişiklik yaptığınızda tüm kütüphaneyi tek komutla yeniden yükleyebilmek, saatler kazandırır. MS-RELOAD gibi bir komut, yazması beş dakika sürer.
AutoCAD'in çalıştırılabilir dosyalar için bir güvenlik ayarı var (SECURELOAD). Bu ayar, LISP ve diğer eklenti dosyalarının yalnızca güvenilir klasörlerden yüklenmesini zorunlu kılabiliyor.
Yeni bir ortak klasör kurup rutinlerin yüklenmediğini gördüğünüzde, bakılacak ilk yer burası. Klasörün güvenilir konumlar listesinde olması gerekiyor.
Bu ayarı tamamen kapatmak yerine — ki güvenlik açısından doğru değil — LISP klasörünüzü güvenilir konumlara eklemek doğru çözüm. Kurumsal ortamlarda bu ayar BT politikasıyla yönetiliyor olabilir; o durumda konuşulacak kişi onlar.
AutoCAD her yıl yeni bir sürüm çıkarıyor ve her yükseltmede aynı soru geliyor: rutinlerim çalışmaya devam edecek mi?
İyi haber: AutoLISP olağanüstü kararlı. Yıllar önce yazılmış rutinlerin büyük çoğunluğu yeni sürümlerde de çalışıyor. Bu, LISP'in en büyük avantajlarından biri.
Yine de yükseltme sonrasında üç şeyi kontrol edin:
Destek dosya arama yolu. Yeni sürüm kendi profilini kurar ve sizin eklediğiniz klasörler orada olmayabilir. Bu, yükseltme sonrası "hiçbir komut çalışmıyor" şikâyetinin bir numaralı sebebi.
Güvenilir konumlar. Aynı şekilde, yeni profilde güvenilir klasör listesi sıfırlanmış olabilir.
Kısmi CUI dosyaları. Araç çubuğu ve şerit özelleştirmeleriniz de yeni profile taşınmalı.
Pratik öneri: bu üç ayarı bir kontrol listesi olarak yazın ve her yükseltmede uygulayın. On dakikalık bu kontrol, ekibin yarım gün kaybetmesini önlüyor.
Son olarak, birkaç yıl sonra da işe yaraması için birkaç not:
Sürüm kontrolüne alın. LISP dosyaları düz metin — Git gibi bir sürüm kontrol sistemine mükemmel uyar. Kim ne zaman ne değiştirdi sorusunun cevabı elinizde olur. Bu, bir LISP kütüphanesinin kurumsal hafızaya dönüşmesinin en pratik yolu.
Her dosyanın başına üç satır yorum koyun. Ne işe yarıyor, kim yazdı, ne zaman. Otuz saniyelik bir alışkanlık, dosyanın üç yıl sonra silinmesiyle kullanılmaya devam etmesi arasındaki farkı belirliyor.
Kullanılmayanları arşive alın, silmeyin. Bir rutini kimse kullanmıyorsa yükleme listesinden çıkarın ama dosyayı saklayın. Bir gün lazım olur.
Yükleme listesini tek kaynak yapın. Hangi rutinlerin yüklendiği tek bir yerde yazılı olsun. "Bende var ama sende yok" tartışmalarının tamamı bu tek dosyayla biter.
Bu, yazılım tarafında modüler mimari dediğimiz yaklaşımın küçük ölçekteki hâli aslında; aynı prensipleri büyük mühendislik yazılımlarında nasıl uyguladığımı modüler yazılım mimarisi yazısında anlattım.
AutoLISP dosyası AutoCAD'e nasıl yüklenir? Tek seferlik yükleme için APPLOAD komutu kullanılır; açılan pencereden .lsp dosyası seçilir. Bu yükleme yalnızca o oturum için geçerlidir, AutoCAD kapandığında silinir.
LISP rutinim her açılışta otomatik yüklensin, nasıl yaparım? Tek kullanıcı için APPLOAD penceresindeki Startup Suite bölümüne eklemek yeterlidir. Ekip genelinde kalıcı bir kurulum içinse doğru yol, arama yollarından birinde duran bir acaddoc.lsp dosyasıdır; bu dosya her çizim açılışında kendiliğinden çalışır.
`acaddoc.lsp` nedir ve nereye konur? AutoCAD'in her çizim açılışında otomatik çalıştırdığı bir LISP dosyasıdır. Destek Dosyası Arama Yolu listesindeki klasörlerden birine konur. İçinde yalnızca yükleme satırları olmalıdır; ağır işlemler her çizim açılışını yavaşlatır.
Rutinlerim ekipteki diğer bilgisayarlarda çalışmıyor, neden? Genellikle dosyaların bulunduğu klasör diğer kullanıcıların Destek Dosyası Arama Yolu listesinde değildir ya da farklı bir sürücü harfine bağlanmıştır. Çözüm, ortak bir klasörü herkeste aynı yolla bağlamak ve arama yoluna eklemektir.
LISP dosyam yüklenmiyor, güvenlik ayarı mı engelliyor? Muhtemelen evet. AutoCAD'in çalıştırılabilir dosya güvenliği, eklentilerin yalnızca güvenilir klasörlerden yüklenmesini zorunlu kılabilir. Doğru çözüm ayarı kapatmak değil, LISP klasörünüzü güvenilir konumlar listesine eklemektir.
AutoCAD sürüm yükseltmesinde LISP rutinlerim bozulur mu? AutoLISP çok kararlı olduğu için rutinlerin kendisi genellikle çalışmaya devam eder. Bozulan şey ayarlardır: yeni sürüm kendi profilini kurar ve destek dosya arama yolu, güvenilir klasörler ve kısmi CUI dosyaları taşınmamış olabilir.
Birden fazla LISP dosyasının yükleme sırası önemli mi? Bir rutin başka bir dosyadaki yardımcı fonksiyonu kullanıyorsa evet. En sağlam çözüm, dosyalar arası bağımlılığı en aza indirmek ve her dosyayı mümkün olduğunca kendi kendine yeter hale getirmektir.
Yazdığınız rutinin değeri, ne kadar iyi çalıştığıyla değil, ne kadar kolay ulaşılabildiğiyle ölçülüyor. Her sabah elle yüklenen bir rutin, kısa sürede kullanılmaz hale gelir.
Ekip için doğru düzen basit: ortak bir klasör, herkeste aynı yol, arama yoluna eklenmiş, tek bir yükleme dosyasıyla yönetilen bir kütüphane. Bir kez kurarsınız, yıllarca sorun çıkarmaz — ve yeni bir bilgisayar kurulumunda yapılacak tek iş bir klasörü listeye eklemek olur.