Copyright © 2004-2022 SQL: 1.414 saniye - Sorgu: 100 - Ortalama: 0.01414 saniye
29.12.2013 08:21
CAN123 |
Travacı arkadaşım,
çok teşekkürler, ellerinize saglık
|
31.12.2013 07:28
selcukkpr |
Arkadaşlar merhaba;
Sizden bir ricam olacaktı. Seçtiğim dairelerin merkezine, nokta (point) atan bir lisp var mıdır? İlginize teşekkür ederim.
|
31.12.2013 08:09
Travaci |
|
31.12.2013 08:14
selcukkpr |
Çok teşekkür ederim Travacı bey;
|
31.12.2013 08:29
selcukkpr |
Arkadaşlar bende bir lisp var ancak çalışmıyor. kotd diye bir lisp. Projede ki bütün kotları aynı anda düzeltmeye yarıyor. Hepsini girdiğim bir değer kadar arttırıyor veya azaltıyor ancak çalıştıramadım. Böyle bir lisp bileniniz var mı?
İlginize Teşekkür Ederim!...
|
22.01.2014 18:35
shootrose |
Herkese selamlar ve kolay gelsin.
Sprinkler tesisatında çaplandırma yaparken çap textini attribute blok olarak ; adet, çap (üstte adet altta çap ) olarak yazmak ve siprinkler adetine (gene üstte adet altta çap ) göre peş peşe toplayıp yaza bilen lispi varmı
|
22.01.2014 21:50
Travaci |
Alıntı Varsada sitede yok.
|
13.03.2014 20:57
ProhibiT |
Linkleri görebilmek için ÜYE olmalısınız. linkinde daha önce paylaştığımız bir AutoLISP fonksiyon CAN123 arkadaşımızın isteği üzerine düzenlenip yeniden yazıldı. Algoritma ve kodlama mantığı bakımından yazar arkadaşlarımız için güzel bir örnek olduğu düşünülerek herkese açık paylaşmak uygun geldi. :) Kod: ;|***************************************************************************|
| PDL: Profile Dimesions Label | | Görünüş çizgileri seçilen Köşebentin boyut etiketi Text objesine işlenir. | | M. Şahin Güvercin www.cizimokulu.com 15.03.2014 | |---------------------------------------------------------------------------|; (defun c:PDL (/ ds0 ds1 ds2 ds3 DsT Lns m myerr n olderr PnT RmN) (setvar "cmdecho" 0) (command "_.undo" "group") (vl-load-com) (defun myerr (errmsg) (if (/= errmsg "Function cancelled") (prompt errmsg)) (command "._undo" "_e") (command "._U") (setq *error* olderr) (princ)) (setq olderr *error* *error* myerr) (*push-error-using-command*) (if (/= (sslength (setq Lns (ssget (list (cons 0 "Line"))))) 3) (progn (prompt "\n**** 3 Çizgi seçilmeli! **** - ") (exit))) (setq n -1) (while (< (setq m -1 n (1+ n)) 3) (setq PnT (cdr (assoc 10 (entget (ssname Lns n))))) (while (< (setq m (1+ m)) 3) (setq Ds0 (distance PnT (vlax-curve-getClosestPointTo (vlax-ename->vla-object (ssname Lns m)) PnT T))) (if DsT (setq Dst (append Dst (list Ds0))) (setq DsT (list Ds0))))) (setq DsT (vl-sort DsT '>) ds1 (rtos(nth 0 DsT) 2) ds2 (rtos(nth 4 DsT) 2) ds3 (nth 0 (vl-sort (mapcar '(lambda (e1) (vlax-get-property (vlax-ename->vla-object (ssname Lns e1)) 'Length)) '(0 1 2)) '>)) ds3 (rtos (if (< (rem ds3 0.5) 0.2525) (- ds3 (rem ds3 0.5)) (+ ds3 (- 0.50 (rem ds3 0.5)))) 2)) (vlax-put-property (vlax-ename->vla-object (car (entsel "\nText Objesi: "))) 'TextString (strcat "L" ds1 "x" ds1 "x" ds2 "..." ds3)) (command "_.undo" "e") (setq *error* olderr) (*pop-error-mode*) (princ)) ProhibiT (15.03.2014 13:54 GMT) |
14.03.2014 08:03
ehya |
prohibit
Hocam, kodlarda yeni iki komut görüyorum. Bunların görevi nedir? *push-error-using-command* *pop-error-mode*
|
14.03.2014 09:00
CAN123 |
ProhibiT hocam çok teşekkür ederim.
Ellerinize sağlık.
|
14.03.2014 22:49
ProhibiT |
PDL fonksiyonu güncellendi.
Alıntı Mehmet hocam kusuruma bakmayın soruyu geç gördüm :) Lisp yazanların en sık yanlışa düştükleri konu. Genelde Hata Yakalama (error trap) fonksiyonları yazılırken farkında olmadan hata yapılıyor. Özellikle Hata Yakalama fonksiyonu içinde (command ... işlevi kullanıldığında push... ve pop... kullanılmadığında, hatanın AutoCAD içinde mi oluştuğu, Lisp içinde mi oluştuğu belirsiz olduğundan buradaki (command... bölümü çalıştırılamıyor. error trap fonksiyonları en ciddi kaynaklarda bile yanlış kullanılıyor. Daha önce Travacı arkadaşımızla bu konuda detaylı yazışmıştık. Forumda mı yazmıştık, özel mesajlarda mı? Hatırlamıyorum. Genelde üstünkörü yazılan error trap fonksiyonları, hataları yakalamak bir yana kendileri hata kaynağı oluyorlar. Sistemin *error* işlevini değiştirdiğimizde bir AutoLISP fonksiyonda yapılan yanlış bütün diğer Lisp'lerin yanlış çalışmasına sebep oluyor. Sağlıklı bir hata yakalama fonksiyonu yazmak için *push-error-using-command*, *push-error-using-stack* ve *pop-error-mode* işlevleri uygun yerde kullanılmalıdır. Ben hata yakalama işlevini ana fonksiyonun içinde tanımlamayı tercih ediyorum. Hata yakalama fonksiyon adını da Local Variables listesinde yazınca, yazılan fonksiyon çalıştırıldığında yükleniyor ve etkinleşiyor, başka fonksiyonlara bulaşmıyor. Hata yakalama bölümünde (command ... kullandığımda da push... kullanarak o anki hata durumunu (error state) belirliyorum. işlemlerin sonunda da pop... kullanarak girişteki hata konumuna geri dönüyorum. Aslında bir kestirme çözüm yöntemi de, hata yakalama işlevi içinde (command ... yerine (command-s ... kullanmak olabilir. Linkleri görebilmek için ÜYE olmalısınız. linkinde bu konudan bahsetmişiz :) ProhibiT (14.03.2014 22:57 GMT) |
15.03.2014 18:22
given |
Merhabalar,
Elimdeki cizimde planlar X yonunde 97000 mm. saga kaydi. Modele dokunmadan bu cizime ait 330 adet layoutun icine girip tek tek sag tarafa 97000 mm. kaydirmam gerekiyor. Acaba bu islem icin bir lisp ya da komut var midir ? Buna cok ihtiyacim var. Ilginiz ve yardimlariniz icin simdiden tesekkur ederim. Saygilarimla,
|
16.03.2014 19:10
mikemoon |
Linkleri görebilmek için ÜYE olmalısınız. Çok süper olmuş donut şeklini daireye çeviriyor fakat bir plakanın üzerinde 6 delik var seçim işlemini 6 kere yapmak zorunda kalıyorum yani delik kaç tane ise okadar yapmak zorunda kalıyorum. 6 tane deliği seçip bu işlemi uyguladığım zaman 6 deliğide daireye çevirecek şekilde lispi düzenleyebilirmisiniz. ProhibiT (16.03.2014 21:30 GMT) |
16.03.2014 21:39
ProhibiT |
Forumdaki bir kodu alıntı yaparak aynen kopyalamayınız. Bu şekilde arama yapan arkadaşların işini zorlaştırırsınız.
Bu konuyla ilgili zaten yeni bir başlık açmıştınız. Hem Burada yazdınız, hem de başka bir başlık açmayınız. Çember ve Daire farklı geometrik şekillerdir. Neden tekli seçim yaptığımızı ilgili linkte ve öncesinde açıklamıştık. Sorunuzun cevabını ilk açtığınız başlıktan takip ediniz. ProhibiT (16.03.2014 22:17 GMT) |
17.03.2014 21:14
k005 |
Merhaba arkadaşlar;
Block bir objeyi; yerleştirildiği noktadan itibaren; belirli bir oranda (1.15825 gibi mesela..) küçültebilen ve büyütebilen bir lisp kodlaması nasıl olmalıdır.. yardımcı arkadaş(a)lara şimdiden teşekkürler..
|
18.03.2014 01:10
Travaci |
k005 Kod: (defun c:scb (/ ss j sc)
(setq ss (ssget '((0 . "insert"))) j -1 sc (getdist "\nScale factor: ")) (setvar "cmdecho" 0) (command "_.undo" "be") (repeat (sslength ss) (setq j (1+ j)) (command "_.scale" (ssname ss j) "" (cdr (assoc 10 (entget (ssname ss j)))) sc)) (command "_.undo" "e") (setvar "cmdecho" 1) (prin1) )
|
18.03.2014 06:13
k005 |
Travaci
hocam teşekkürler.. ama tam olarak bu değil.. bunu zaten default scale komutu ile yapıyoruz. Bu linkteki en son Lisp mantığında; yapmak istiyorum.. Linkleri görebilmek için ÜYE olmalısınız.
|
18.03.2014 07:08
Travaci |
k005 Scale komutuyla nasıl yapıosun merak ettim doğrusu :)
|
18.03.2014 07:14
k005 |
Rutin scale komutu kullanımı ile.. uur8) 0.999 küçültmeye başlangıç oranıdır.. 1.11111 küsür de Büyütmeye başlangıç oranıdır..
|
Travaci |
Toplu seçimler için her block u insert noktasından scale etmeyi kastemiştim ama ... :wink
Görüyorumki senin isteğinde rutin scale komutu kullanımı ile yapılıyormuş :D
|