AutoCAD Kılavuzu

GstarCAD'de LISP çalıştırma: APPLOAD, Startup Suite ve uyumluluk

GstarCAD'de LISP çalıştırmak için komut satırına APPLOAD yazar, .lsp dosyasını seçip Load dersiniz; her açılışta yüklenmesi için dosyayı aynı penceredeki Startup Suite listesine eklersiniz. AutoCAD için yazılmış rutinlerin çoğu çalışır, ancak Express Tools fonksiyonları ve ARX bağımlılıkları olanlar uyarlama isteyebilir.

KNCad Ekibi8 dk okumaAutoCAD Kılavuzu

GstarCAD'de LISP dosyası nasıl yüklenir?

Bir rutini denemenin en kısa yolu APPLOAD komutudur. Akış, AutoCAD'den alıştığınız pencereyle neredeyse aynıdır; arayüz diline ve sürüme göre etiketler biraz farklı görünebilir.

  1. Komut satırına APPLOAD yazın ve Enter'a basın. Aynı işlev şeritte Manage > Applications grubunda da bulunur.
  2. Açılan pencerede .lsp dosyanızın bulunduğu klasöre gidin ve dosyayı seçin.
  3. Load düğmesine basın. Pencerede dosyanın yüklendiğini belirten mesajı görün.
  4. Close ile kapatın, rutinin tanımladığı komut adını komut satırına yazın.

Dosyayı Windows Gezgini'nden sürükleyip açık çizimin üzerine bırakmak da hızlı bir yöntemdir. İki durumda da yükleme kalıcı değildir: yeni çizim açtığınızda komut "Unknown command" diyorsa rutin o çizim için yüklenmemiştir. LISP dilinin temelini ve defun c: yapısını henüz görmediyseniz AutoCAD LISP ve otomasyona giriş yazımızı okuyun; oradaki örnekler GstarCAD için de geçerlidir.

Startup Suite ile her açılışta otomatik yükleme

Sık kullandığınız rutinleri her seferinde yüklememek için aynı penceredeki Startup Suite (başlangıç paketi) listesini kullanın:

  1. APPLOAD penceresini açın.
  2. Startup Suite bölümündeki Contents düğmesine basın.
  3. Add ile dosyalarınızı ekleyin ve pencereyi kapatın.
  4. GstarCAD'i kapatıp açın, yeni bir çizimde komutu deneyin.

Rutin sayısı arttığında listeyi tek tek yönetmek zorlaşır. Daha düzenli yöntem, listeye yalnızca tek bir yükleyici dosya eklemektir. Aşağıdaki örnekte ofis_yukle.lsp, ortak klasördeki rutinleri sırayla yükler; load fonksiyonunun ikinci bağımsız değişkeni sayesinde, dosyalardan biri bulunamazsa yükleyici hata vererek durmak yerine sıradaki satıra geçer:

(load "D:/OfisLISP/alanyaz.lsp" "alanyaz bulunamadi")
(load "D:/OfisLISP/kotyaz.lsp" "kotyaz bulunamadi")
(load "D:/OfisLISP/paftano.lsp" "paftano bulunamadi")
(princ "\nOfis LISP paketi yuklendi.")
(princ)

Yeni bir rutin eklediğinizde yalnızca bu dosyaya satır eklersiniz; ekipteki her bilgisayarda Startup Suite'e dokunmak gerekmez. Yol içinde ters bölü yerine / kullanılması, LISP metinlerinde kaçış karakteri sorununu önler. Destek klasörlerini tek yerde toplamanın genel düzeni için GstarCAD kurulumu ve ilk ayarlar yazısına bakabilirsiniz.

acaddoc.lsp dosyam GstarCAD'de de okunur mu?

AutoCAD'de birçok ofis, destek yolundaki acaddoc.lsp dosyasıyla yükleme yapar. Bu dosya adının GstarCAD sürümünüzde aynı şekilde okunacağını varsaymayın; otomatik yükleme dosyalarının adları ürüne ve sürüme göre farklılık gösterebilir. Bunu üç dakikada kendiniz sınayabilirsiniz: dosyanın içine (princ "\nBaslangic dosyasi calisti.") satırını ekleyin, klasörü destek yoluna tanımlayın ve yeni bir çizim açın. Mesaj komut satırında görünmüyorsa Startup Suite yöntemine geçin; bu yol sürüm farkından bağımsız olarak denetlediğiniz bir listedir.

Hangi dosya türleri çalışır? LSP, FAS, VLX, ARX karşılaştırması

"LISP çalışıyor" ifadesi tüm eklenti türlerini kapsamaz. GstarCAD'in üretici belgelerinde LSP, FAS ve VLX yükleme ile LISP, GRX, VBA ve .NET geliştirme arayüzleri destekli olarak listelenir. Pratikte dosya türüne göre beklentiniz şöyle olmalıdır:

DosyaNedir?GstarCAD'de beklentiSorun olursa
.lspDüz metin kaynak kodAPPLOAD ile yüklenir; basit rutinler genellikle değişmeden çalışırKodu kendiniz düzeltebilirsiniz
.fasDerlenmiş LISPYüklenir; yeni derleme biçimleri için GstarCAD 2024 ve sonrasında destek genişletildiKaynak kod olmadan düzeltilemez, yazarından isteyin
.vlxDerlenmiş, paketlenmiş uygulamaYüklenir; içindeki fonksiyonlara göre davranış değişirYazarından GstarCAD sürümü isteyin
.dclLISP'in çağırdığı diyalog tanımıLISP tarafından yüklenir, destek yolunda bulunmalıdırYol ve kodlamayı kontrol edin
.arxAutoCAD için derlenmiş C++ eklentisiDoğrudan çalışması beklenmez; GRX arayüzü için uyarlanmalıdırÜreticisinden GstarCAD sürümünü isteyin
.dll (.NET)Yönetilen kod eklentisiGenellikle referansların değiştirilip yeniden derlenmesi gerekirÜreticisine veya geliştiricisine danışın

Paket farkını da unutmayın: bazı geliştirme arayüzleri belirli paketlerde açıktır. Satın alacağınız eklentinin Standard veya Professional gerektirip gerektirmediğini önceden sorun; paket karşılaştırması GstarCAD nedir yazımızda var.

AutoCAD LISP'leri GstarCAD'de neden hata verir?

Çalışmayan rutinlerin büyük kısmında sorun LISP dili değil, rutinin AutoCAD'e özgü bir şeye bağlanmış olmasıdır. Kodda arayacağınız başlıca noktalar:

  • Express Tools fonksiyonları: acet- ile başlayan çağrılar AutoCAD Express Tools paketine dayanır. Bu fonksiyonların GstarCAD'inizde tanımlı olup olmadığını deneyerek görün.
  • Sabit yazılmış yollar: C:/Program Files/Autodesk/... gibi yollar başka bir programda geçersizdir. Yolu findfile ile aratın.
  • Sürüme bağlı COM adları: vlax-create-object ile çağrılan AutoCAD. önekli sınıf adları AutoCAD'e özgüdür. Bu satırları uyarlamak gerekir.
  • Komut sıralaması: (command ...) içindeki girdi sırası, komutun sorduğu soruların sırasına bağlıdır. Bir komutun seçenek sırası farklıysa rutin hata vermeden yanlış iş yapabilir; bu en sinsi durumdur.
  • Yerelleştirilmiş komutlar: Komutları _.LINE biçiminde yazın. Alt çizgi İngilizce adı, nokta ise özgün komutu çağırır. Komut adı eşleşmeleri için AutoCAD ve GstarCAD komut karşılıkları tablomuza bakın.
  • Eksik başlatma: vla- ve vlax- fonksiyonlarından önce (vl-load-com) satırı bulunmalıdır. AutoCAD'de başka bir rutin bunu önceden çağırdığı için fark edilmemiş olabilir.

Hata mesajları ve anlamları

MesajOlası nedenNe yapılır?
Unknown commandRutin yüklenmemiş veya komut adı farklıDosyadaki defun c: satırındaki adı okuyun, yeniden yükleyin
no function definition: ACET-...Express Tools fonksiyonu tanımlı değilFonksiyonun yerine eşdeğer kod yazın veya rutini yazarına sorun
no function definition: VLAX-...(vl-load-com) eksik veya fonksiyon desteklenmiyorSatırı dosyanın başına ekleyip tekrar deneyin
malformed list on inputEksik parantez veya kapanmamış tırnakKodu editörde açın, parantez eşleşmesini kontrol edin
bad argument typeFonksiyona beklenmeyen türde değer gidiyorHata ayıklayıcıda değişkenleri izleyin

Uyumluluk testi: tek komutla hızlı kontrol

Aşağıdaki küçük rutin, polyline seçtirip uzunluğunu yazar. Hem vl-load-com hem de vlax- fonksiyonlarını kullandığı için Visual LISP katmanının çalışıp çalışmadığını gösteren basit bir sınamadır. pluz.lsp adıyla kaydedin, APPLOAD ile yükleyin ve PLUZ yazın:

(defun c:PLUZ (/ e obj)
  (vl-load-com)
  (if (setq e (car (entsel "\nPolyline secin: ")))
    (progn
      (setq obj (vlax-ename->vla-object e))
      (princ (strcat "\nUzunluk: "
        (rtos (vlax-curve-getDistAtParam obj
          (vlax-curve-getEndParam obj)) 2 2)))
    )
  )
  (princ)
)

Çıkan değeri LIST komutunun verdiği uzunlukla karşılaştırın; birim çizim biriminizdir. 1 birim = 1 cm olan bir planda 1250.00, 12,50 metre demektir.

Ofis rutinleri için test tablosu

Toplu geçişten önce en sık kullandığınız 10 rutini gerçek bir paftada deneyin ve sonucu kaydedin. Örnek bir kayıt düzeni:

RutinTestBakılacak nokta
Alan yazmaKapalı polyline seçip alan yazdırmaDeğer, AREA sonucuyla aynı mı; yazı doğru katmanda mı?
Kot yazmaBir planda 5 nokta seçmeBlok öznitelikleri doğru doluyor mu?
Pafta numaralamaBirkaç layout üzerinde çalıştırmaLayout sırası ve numara biçimi doğru mu?
Donatı etiketiÇizgi seçip etiket üretmeΦ ve Türkçe karakterler bozuluyor mu?
Toplu temizlikDosyanın kopyasında denemeBeklenmedik nesne silindi mi?

Sonucu yanlış ama hatasız biten rutinleri özellikle arayın; hata veren rutini fark edersiniz, sessizce yanlış sonuç üreteni fark etmeyebilirsiniz. Testleri her zaman dosyanın kopyasında yapın.

Türkçe karakter sorunu: ANSI, UTF-8 ve LISPSYS

Eski LISP dosyaları çoğunlukla ANSI, yeni editörlerde yazılanlar UTF-8 kodlamasıyla kaydedilir. Komut satırı mesajlarında veya çizime yazılan metinde "ş, ğ, ı" bozuluyorsa önce dosyanın kodlamasına bakın. GstarCAD 2024 ile LISP tarafında UTF-8 ve UTF-16 desteği genişletildi; LSP, FAS, VLX ve DCL dosyalarındaki kodlama uyumu artırıldı.

Aynı sürümle gelen LISPSYS sistem değişkeni, kaydetme ve derleme için ASCII (MBCS) ile Unicode ortamları arasında geçiş yapar. Değişkeni değiştirdiyseniz etkili olması için GstarCAD'i yeniden başlatın. Pratik öneri: ekipte tek bir kodlama belirleyin, yeni dosyaları onunla kaydedin ve kritik rutinleri Türkçe karakter içeren bir metinle sınayın. Yazı stiline bağlı karakter sorunları için yazı stilleri ve Türkçe karakter yazımız yardımcı olur.

VLISP ve VLIDE: GstarCAD'de LISP nasıl düzenlenir ve hata ayıklanır?

GstarCAD'de VLISP veya VLIDE komutu, şeritteki Manage > Applications > Visual LISP Editor yoluyla aynı işi yapar ve hata ayıklayıcı olarak Visual Studio Code'u açar. Bilgisayarda VS Code yoksa program kurmanızı ister. Üreticinin ücretsiz GstarLisp eklentisi LSP ve DCL dosyaları için sözdizimi renklendirme, otomatik tamamlama ve hata ayıklama sağlar; eklenti sayfasında GstarCAD 2021 ve sonrası destekli olarak belirtilir.

  1. VLIDE yazıp VS Code'u açın; eklenti kurulu değilse kurulumu tamamlayın.
  2. Etkinlik çubuğundaki GstarLisp simgesinden rutinlerinizin klasörünü açın.
  3. launch.json oluşturup GstarLisp-Attach yapılandırmasını ekleyin. Attach, açık GstarCAD oturumuna bağlanır; çiziminiz kapanmadığı için çoğu durumda daha rahattır.
  4. Şüpheli satıra F9 ile kesme noktası koyun, çalıştırıp GstarCAD'de komutu verin.
  5. F10 ile satır satır ilerleyin, F11 ile çağrılan fonksiyonun içine girin, değişkenleri yan panelde izleyin.

Launch modunda durdurma işlemi GstarCAD'i kaydetme sormadan kapatır. Bu yüzden hata ayıklamayı açık çalışma dosyanızla değil, deneme çiziminde yapın.

LISP güvenliği ve ofis standardı için kontrol listesi

LISP dosyası, çiziminizde ve bilgisayarınızda geniş yetkiyle çalışabilen bir programdır. Otomatik yüklenen dosyaları değiştiren zararlı LISP'ler CAD dünyasında bilinen bir sorundur. Rutinleri dağıtmadan önce şu listeyi uygulayın:

  • İnternetten indirilen .lsp dosyasını yüklemeden önce metin editöründe açıp okuyun.
  • Kaynağını bilmediğiniz .fas ve .vlx dosyalarını kullanmayın; içlerini okuyamazsınız.
  • Rutinleri tek bir ortak klasörde tutun, yazma yetkisini sınırlayın.
  • Güvenlik uyarısı alıyorsanız uyarıyı kapatmak yerine kendi klasörünüzü sürümünüzün sunduğu güvenilir konum ayarıyla tanımlayın.
  • Her rutinin başına kısa bir açıklama, tarih ve sorumlu kişi yazın.
  • Yeni GstarCAD sürümüne geçmeden önce test tablosunu tekrar çalıştırın. Üretici yeni sürümlerde API tarafında değişiklik yapabilir; 2027 gibi güncel bir sürüme geçişte de bu adımı atlamayın.

LISP mi, detay programı mı?

LISP, ofise özgü küçük işler için güçlü bir araçtır: alan yazmak, katman açmak, pafta numaralamak. Ancak kolon, kiriş ve perde detayı gibi yönetmelik kuralı, poz ve metraj içeren işlerde rutinler büyüdükçe bakımı zorlaşır ve çoğu zaman tek bir kişiye bağlı kalır. Nerede otomasyonun yeterli olduğunu detay çiziminde otomasyon yazımızda ele aldık. KNCad, bu tür tekrar eden işleri AutoCAD ve GstarCAD içinde çalışan bir eklenti olarak üstlenir: donatı detaylarını TBDY 2018 ve TS 500 kurallarına göre çizer, poz etiketlerini ve metraj tablosunu çizimle bağlı tutar; böylece kendi LISP'lerinizi ofise özgü küçük işler için saklayabilirsiniz.

Sık sorulanlar

GstarCAD'de LISP nasıl yüklenir?

Komut satırına APPLOAD yazın, .lsp dosyasını seçip Load düğmesine basın ve rutinin komut adını yazın. Her açılışta yüklenmesi için dosyayı aynı penceredeki Startup Suite listesine ekleyin.

AutoCAD LISP dosyaları GstarCAD'de değiştirilmeden çalışır mı?

Basit rutinlerin çoğu değişiklik gerektirmez. Express Tools (acet-) fonksiyonları, sabit AutoCAD yolları ve AutoCAD'e özgü COM adları içeren rutinlerde düzeltme gerekebilir.

GstarCAD VLX ve FAS dosyalarını açar mı?

Evet, üretici belgelerinde FAS ve VLX yükleme destekli olarak listelenir. Bu dosyalar derlenmiş olduğu için hata verirse içlerini düzeltemezsiniz; yazarından güncel sürüm veya kaynak kod istemeniz gerekir.

GstarCAD'de ARX eklentileri çalışır mı?

AutoCAD için derlenmiş ARX eklentilerinin doğrudan çalışması beklenmemelidir. GstarCAD'in ObjectARX karşılığı GRX arayüzüdür; eklentinin bu arayüz için uyarlanmış sürümünü üreticisinden isteyin.

GstarCAD'de LISP editörü var mı?

VLISP veya VLIDE komutu hata ayıklayıcı olarak Visual Studio Code'u açar. Üreticinin ücretsiz GstarLisp eklentisi LSP ve DCL dosyalarında düzenleme ve hata ayıklama sağlar.