Kayıtlar

2009 tarihine ait yayınlar gösteriliyor

AUTOLISP İÇİNDE OSNAP AYARLARI

AUTOLISP İÇİNDE OSNAP AYARLARI Osnap’ın açık olması kimi lisp programlarında programda başka hiçbir hata olmamasına rağmen istenilen sonucu vermez. Şayet bir lisp programı çalıştırıldıktan sonra dwg ortamındaki nesneler birbirine giriyorsa ilk şüphe duyulması gereken noktalardan biri osnap ayarları olmalıdır. Elbette program çalışırken Autocad’e dönüp F3 ile oynamak mümkün olmayacağına göre osnap’ı istediğimiz zaman kapatabilen (keza istediğimiz zaman açabilen) kodlar yazmak en mantıklı çözümdür. Aşağıdaki fonksiyon osnap’ı kapamaya yarar. (defun osnap-off () (setvar "osmode" (logior (getvar "osmode") 16384)) ) Ama kimi durumlar vardır ki, osnap’ın ille de açık olması gerekir. Örneğin lisp içinde yarattığımız bir dairenin merkezine bir blok yerleştirmek gerektiğinde imlecin dairenin merkezini hatasız bulması gerekir. Yine böyle bir durumda lisp çalışması kesilemeyeceğine göre bu işi yapacak bir rutine ihtiyaç vardır. Aşağıdaki rutin dilediğimiz zaman osnap’ı açmak i

AUTOLISP İÇİNDE BAŞKA BİR DOSYAYA VERİ YAZMAK

Autolisp ile bir dosyaya veri yazabilmek için her şeyden önce yazılacak dosyanın açılması gerekir. Bu yazıda dosyanın açılması kavramı daha önce varolmayan bir dosya için kullanılmaktadır. Yani dosya ilk kez yaratılacaktır. Diyelim çeşitli işlemler yaptıktan sonra bulduğumuz sonuçları rapor.txt isimli bir dosyada tutmak istiyoruz. Diyelim ki bulduğumuz sonuçlar satır1, satır2, satır3, satır4 değişkenlerinde tanımlı olsun. Aşağıdaki rutin bu işi yapmaktadır. (defun C:DosyayaYaz() ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2009;;;;;;;;;;; ; APK BİLGİSAYAR - YAZILIM ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (SETQ SATIR1 "DENEME SATIRI BİR") (SETQ SATIR2 "DENEME SATIRI İKİ") (SETQ SATIR3 "DENEME SATIRI ÜÇ") (SETQ SATIR4 "DENEME SATIRI DÖRT") (setq dosyaadi "C:\\RAPOR.TXT"); DOSYANIN DİSKTEKİ ADRESİ BELİRLENİR (setq dosya (open dosyaadi "w")); BURADA DO

AUTOLISP İÇİNDE BAŞKA BİR DOSYADAN VERİ OKUMAK

Aşağıdaki rutin gözat ile seçilebilecek txt uzantılı bir dosyadaki verileri okuyarak autolisp formatında bir listeye aktarır ve ekrana print eder. (vl-load-com); Bu satır lisp rutininin visuallisp içeriğini çalıştırmaya olanak verir (defun c:d1() (defun veri-oku (/ veri dosyaadi metindosyasi liste) (setq dosyaadi (getfiled "DATA DOSYASI ... ADRESİNDEDİR :" (getvar "dwgprefix") "txt" 16 ); Bu bölümde .txt dosyasını gözat ile seçebilmek için popup menü açılır. ) (setq metindosyasi (open dosyaadi "r")); dosya okumak amacı ile açılıyor. (while (setq liste (read-line metindosyasi)); satır satır okuma başlıyor (setq veri (cons (read (strcat "(" liste ")")) veri))) (close metindosyasi); dosya kapatılıyor (reverse veri); liste tersten yeniden yazılıyor – duruma göre gerekmeyebilir ) (setq lst (veri-oku)) (print lst) (princ) ); Liste ekrana yazılıyor

VISUALBASIC FOR AUTOCAD'DE VERİTABANINA ERİŞİM

Burada veritabanından kast ettiğimiz Microsoft Access’le yaratılmış bir veritabanıdır yani uzantısı .mdb olan bir dosyadır. Dim CONN1 As New ADODB.Connection Yukarıdaki satırda veritabanına bağlantı için conn1 isimli bir değişken tanımlanmıştır. Bu değişken New ADODB.Connection olmalıdır CONN1.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & "\\D:\ORNEKVERITABANI.MDB" & ";" Yukarıdaki satırlar ORNEKVERITABANI.MDB isimli dosyanın üzerinde işlem yapılma üzere açılmasını sağlar. Dim RST1 As New ADODB.Recordset Yukarıdaki satır RST1 isimli bir değişkeni kayıtseti olarak tanımlar. Bir kayıtseti (recordset) veritabanı içindeki bütün alanları içinde barındıran bir set olarak düşünülebilir. RST1.Open "SELECT * FROM KAYITLAR ", CONN1, adOpenKeyset, adLockReadOnly Yukarıdaki satır ise tablolarından biri KAYITLAR olan ORNEKVERITABANI.MDB dosyasına erişir. Bundan sonra yapılacak işlemlerde veritabanı içindeki

CUI DOSYALARI HAZIRLAMAK

***MENUGROUP=APK-BİLGİSAYAR ***POP1 [&APK BİLGİSAYAR - ÖRNEK CUI] ID_apkBölüm 1 [Komut1...]^C^Ckomut1 [--] ID_apkBölüm2 [Komut2...]^C^Ckomut2 [--] Yukarıdaki satırlar bir txt dosyasına yazılır ve dosya uzantısı .mnu kaydedilir, ardından komut satırında menuload yazılarak .mnu dosyası seçilir ve bu işlem sonrasında uzantısı .cui olan dosya oluşur. Autocad sayfasında artık sayfa başında göründüğü gibi menü hazırdır. Komut1 ve komut2, çalıştırılmak istenen iki ayrı autolisp dosyasının komutu olmalıdır. Şayet bu iki lisp contents içine eklenmişse, ayrıca yüklemeye gerek kalmadan doğrudan bu menü kullanılarak çalıştırılabilir.

AUTOLISP DOSYALARININ KALICI KULLANIMI

AUTOLISP DOSYALARININ KALICI KULLANIMI Tools/Load application menüsünden yüklenen bir lisp'in yeni bir autocad dosyası açıldığında ya da Autocad bir nedenle kapatıldığında artık bir hükmü kalmaz. Şayet bir lisp programının AutoCAD'in her açılışında ya da yeni AutoCAD dosyası yaratılmak istendiğinde otomatik olarak kullanıma hazır bulunması isteniyorsa aşağıdaki iki adım yerine getirilmelidir. 1. İstenen lisp, tools/load application menüsü ile gelen arayüzdeki startup suite üzerinde bulunan contents komutu kullanılarak kalıcı şekilde yüklenmelidir. Contents komutuna basıldıktan sonra add butonu ile ilgili lisp seçilmelidir. 2. İstenen lisp'in ait olduğu klasör tools/option/Support File Search Path kullanılarak AutoCAD'e kalıcı olarak tanıtılmalıdır. Sol yandaki "+" işareti açılarak sağ yandaki add komutuna tıklanır ve Browse ile lisp'in ait olduğu klasör seçilir. Bu iki adım yerine getirildiğinde artık AutoCAD'in her türlü açılışında lisp de kullanıma h

AUTOLISP PROGRAMLARINI ÇALIŞTIRMAK

.lsp uzantılı olan Autolisp ya da visual lisp dosyaları Autocad içinde Tools/Load Application menusu kullanılarak tanıtılırlar. Bu menünün yönlendirilmesi ile seçilen .lsp uzantılı dosya daha sonra load edilerek kullanıma hazır hale getirilir. Programın kullanılması ise lisp içindeki komutun komut satırına yazılması ile mümkündür. Örnek: (defun c:(deneme) ... ) komut satırına deneme yazılarak çalıştırılır.

Başlarken

Bu Blog sayfasında AutoCAD kullanıcıları için büyük kolaylıklar sağlayan AutoLISP, VisualLISP ve VisualBASIC for AutoCAD programlama ile ilgili konular olacak. Blogun bir amacı da programcılık konusunda bilgi ve birikimleri paylaşmak ve bu paylaşımı kolay erişilebilen bir kütüphaneye dönüştürmektir. Dileyen herkes konuyla ilgili yorum yapabilir, soru sorabilir. Sorular en kısa sürede mutlaka cevaplandırılacaktır. APK BİLGİSAYAR - YAZILIM