01.07.2009 16:05    

yazgunesi
Komut ismi: wr

Lisp hakkında ; Çeşitli çizimlerde kırık çizgi daire yay gibi şekilsiz şeyler görüyorsanız eğer viewres komut değerini 20000 yapmanız gerekiyor. Aşağıda gözüken lisp otomatik olarak viewres yapmanızı sağlar.Üstelikte rakam girme derdiniz hiç yok ! :D

Lispi dowload etme için tıkla : 3562-viewres_auto.rar


Kod:

; viewres komut lispi

(defun C:wr ()
(setvar "cmdecho" 0) 

(command "viewres" "y" "20000") ; viewres değerini 20.000 yaptık.

(setvar "cmdecho" 1) 

(prompt "\nThe operation completed successfully.. :-)) ")  ; bilgi mesajı verelim..

(princ) 
)

(Princ "Lisp'i çalıştırmak için > wr < yazınız! >>> www.autocadokulu.com <<< ")



Hazır viewres'i kullandıkya çizimizde oluşan problemleri düzeltmek için...

Şimdi de çizgi tipini, rengini bylayer olarak normal hale getirelim. Neden ? Bazen dışarıdan aldığımız çizim dosyalarında aktif olan çizgi tipi ve rengi farklı olursa eğer normal haline getirmemiz gerekecek.

Kod:

(defun C:lnby ()
(setvar "cmdecho" 0)
(command "-color" "BYLAYER")  ; renk bylayer olsun..
(command "-linetype" "set" "BYLAYER" "") ; çizgi tipi bylayer olsun..
(setvar "cmdecho" 1)
(princ)
)

(Princ "Lisp'i çalıştırmak için > lnby < yazınız! >>> www.autocadokulu.com <<< ")



Yukarıda gözüken autolisp programını nasıl kullanacağınızı bilmiyorsanız eğer aşağıdaki linkten;
AutoLISP > Konu Anlatımları > Lisp Dosyalarının oluşturulması ve Yüklenmesi
konusunu incelemenizi öneririm...

yazgunesi (06.07.2009 13:08 GMT)

15.07.2010 11:23    

halilozcakir
lnby i çalıştıramadım bir sorun mu var acaba?

21.07.2010 19:29    

yazgunesi
Bahsetiğiniz lnby ( line by layer ) lispi '' sıfır layeri '' üzerinde çalışıyordu.Mevcut aktif layerin '' sıfır '' olmayışı lispin çalışması konusunda problem oluşturduğunu farkketim.. Büyük ihtimalle böyle bir durumda hatayla karşılaştınız diye tahmin ediyorum..


Komut isimi : lnby


Kod:

; Line by layer lispi
; güncellenmiş versiyon v.2

(defun C:lnby ()
 
(setvar "cmdecho" 0)
(setq  oldlayer (getvar "clayer"))  ; get current layer name

(if (/= oldlayer "0")
  (progn
     (setvar "clayer" "0")
    ) ; progn end
  ) ; if 1. end

(if (= oldlayer "0")
  (progn
   (setq islem1 (command "-color" "BYLAYER"))  ; renk bylayer olsun..
   (setq islem2 (command "-linetype" "set" "BYLAYER" "")) ; çizgi tipi bylayer olsun..
     ) ; progn end
  ) ; if 2. end

(setvar "cmdecho" 1)
(princ "LaYeR  değişimi başarıyla gerçekleştirildi.. " )
(princ))

(Princ "Lisp'i çalıştırmak için > lnby < yazınız! >>> www.autocadokulu.com <<< ")



Yukarıda gözüken autolisp programını nasıl kullanacağınızı bilmiyorsanız eğer aşağıdaki linkten;
AutoLISP > Konu Anlatımları > Lisp Dosyalarının oluşturulması ve Yüklenmesi
konusunu incelemenizi öneririm...

yazgunesi (21.07.2010 19:45 GMT)

22.07.2010 05:40    

bud_0782
viewres lispi kullanışlı olmuş...teşekkürler...

23.07.2010 12:43    

halilozcakir
hocam gene çalışmadı ben beceremedim mi acep yüklüyorum lispi birkaç çizgi yazı daire vb çizip renklerini farklılaştırıyorum propertiesden,sonra lnby yi çalıştırıyorum başarıyla gerçekleşti mesajı geliyor, fakat değişen bişey yok.?

23.07.2010 16:36    

ProhibiT
Sanıyorum bir yanlış anlaşma var :)
lnby Lispini incelediğimizde, Color ve LineType'ı ByLayer olarak set ettiğini görüyoruz. Mevcut objelerin Rengini ve Çizgi Tipini değiştirmiyor. lnby fonksiyonu çalıştırıldıktan sonra çizilen objelerin rengi ve çizgi tipi ByLayer olacaktır.

Aşağıda verdiğim fonksiyonlarla mevcut objeler üzerinde istediğiniz değişiklikleri yapabilirsiniz;
Kod:

(defun C:CHGCOLOR ()
;;;Secilen obje gurubunun rengini secilen obje rengine cevirir
;;;Prepared by: M. Sahin Guvercin
  (command "undo" "group")
  (princ "select objects to be changed...\n")
  (setq ss (ssget))
  (if ss
    (progn
      (setq e (entget (car (entsel "\npick an object to desired color: "))))
      (if e (progn (setq n (cdr (assoc 62 e)))
          (if (= n 0) (setq n "BYBLOCK"))
          (if (= n nil) (setq n "BYLAYER"))
          (command "chprop" ss "" "c" n "")))))
  (command "undo" "e") (prin1)
)

(defun C:CHGLTYPE ()
;;;secilen obje gurubunun LineType'ini secilen objeninkine cevirir
;;;Prepared by: M. Sahin Guvercin
  (command "undo" "group")
  (princ "select objects to be changed...\n")
  (setq ss (ssget))
  (if ss
    (progn
      (setq e (car (entsel "\npick an object to desired linetype : ")))
      (if e (progn
          (setq e (entget e) n (cdr (assoc 6 e)))
          (if (= n nil) (setq n "BYLAYER"))
          (command "chprop" ss "" "lt" n "")))))
  (command "undo" "e") (prin1)
)

Bu fonksiyonları uzun yıllar önce yabancı bir kaynak için hazırlamıştım. Aynen Match Properties mantığı ile çalışırlar, MatchProp'tan farkı yalnızca hedeflenen özellikleri (properties) çakıştıtırması (match) dır. Hoş bu fonksiyonlar yazıldığında AutoCAD'de henüz Match Properties fonksiyonu yoktu :)

Bunlara benzer şekilde;
ChgLayer: Seçilen objelerin Layer'ını tıklanan objenin Layer'ına değiştirir.
ChgCLayer: Seçilen objelerin Layer'ını Current Layer olarak değiştirir.
DeLLayer: Tıklanan objenin bulunduğu Layerdaki tüm objeleri siler.
SeLLayer: Tıklanan objenin bulunduğu Layer'daki bütün objeleri seçer.
SetLayer: Tıklanan objenin Layer'ını Current Layer olarak set eder.
FrzLayer: Tıklanan objenin bulunduğu Layer'ı Freeze eder.
ChgStyle: Seçilen text objelerinin Style'ını tıklanan Text objesininkine değiştirir.
ChgTxh: Seçilen Text objeleri içinde belirlenen yüksekliğe sahip yazıları tıklanan objenin yazı yüksekliğine çevirir.
ChgCrr: Seçilen obje gurubu içindeki belirlenen Radius değerine sahip Circle objelerini tıklanan Circle objesinin Radius'una çevirir.
Gibi Fonksiyonlar yazmıştım. İhtiyaç duyan arkadaşlarla paylaşabilirim.

Herkese Kolay Gelsin...

23.07.2010 17:41    

yazgunesi
Eline sağlık ProhibiT ,

Bende yemek yedikten sonra bu konuya cevap yazmayı planlıyordum. Dediğin gibi ilgili Autolisp programı mevcut renk ve çizgi tipini ''default'' durumuna getiriyor. Bunun sebebi Solidworks'ten alınan 2 boyutlu dwg resimlerde ByLayer değil Continuous olmasıdır.Bazen size gelen yabancı kaynaklı resimlerde çizgi tipinin renginin layerinin farklı olabiliyor.Bu sebepten dolayı bu line by layer lispi oluşturuldu.

24.07.2010 07:14    

halilozcakir
teşekkürler üstadlar...

24.07.2010 16:28    

ProhibiT
Yukarıdaki yazımda bahsettiğim tüm fonksiyonları paylaştım;


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


linkinde bulabilirsiniz...

28.07.2010 07:07    

bud_0782
teşekkürler

10.08.2010 07:39    

ProhibiT
Bu konuyla ilgili bir ekleme yapmak istiyorum...
True Type fontlar ve Sahdemode (3D Hide, Conceptual, Realistic...) seçenekleri çok daha fazla performans düşmesine sebep oluyorlar. Bunlarla kıyaslanacak olursa Viewres ile çember ve yayların hassasiyeti düşürülerek ciddi bir performans sağlandığı söylenemez. WHIPARC sistem değişkeninin değerini 1 yaparsanız, viewres değeri her ne olursa olsun, çember ve yaylarınız daima kırıksız görünecektir. WHIPARC sistem değişkeni Registry'de saklandığı için eski yeni bütün çizlerinizde verdiğiniz değer geçerli olacaktır...

ProhibiT (10.08.2010 12:35 GMT)

10.08.2012 13:47    

halilozcakir
iki lispi (CHGCOLOR ve LWT2BYL) birleştirmek,
ve çizgi rengi ve tipinide otomatik sormadan yapabilir miyiz ?
aslında soramadım da affedin. yani lwt2byl lispin içine chgcolor adapte edebilir miyiz.mümkün mü?

12.03.2013 15:50    

ProhibiT
Kod:

;|============================================================================|
| LwcL2ByL: LineWeight and Color to ByLayer                                   |
|       Çizim içindeki, bLock tanımları ve bLock referansları da dahil, tüm   |
|       çizim objelerinin LineWeight ve Color özelliklerini ByLayer yapar.    |
|          Author: M. Şahin Güvercin - www.autocadokulu.com - 12.03.2013      |
|----------------------------------------------------------------------------|;
(defun c:LwcL2ByL  (/ *error* bLk PvT)
  (setvar "cmdecho" 0) (command "_.undo" "group") (vl-load-com)
  (defun *error*  (er) (princ (strcat "\n" er)) (command "_.undo" "e"))
  (setq bLk (tblnext "bLock" T))
  (while bLK (setq PvT (tblobjname "bLock" (cdr (assoc 2 bLk))))
    (while (setq PvT (entnext PvT))
      (vlax-put-property (vlax-ename->vla-object PvT) 'Lineweight -1)
      (vlax-put-property (vlax-ename->vla-object PvT) 'Color 256))
    (setq bLk (tblnext "bLock"))) (setq PvT (entnext))
  (while PvT (vlax-put-property (vlax-ename->vla-object PvT) 'Lineweight -1)
    (vlax-put-property (vlax-ename->vla-object PvT) 'Color 256)
    (setq PvT (entnext PvT)))(setvar "cmdecho" 1)(command "_.undo" "e")(prin1))

13.03.2013 06:28    

halilozcakir
hocam çok teşekkür ederiz..sağolun..

03.01.2015 19:23    

raskoln
Alıntı
ProhibiT :
Bu konuyla ilgili bir ekleme yapmak istiyorum...
True Type fontlar ve Sahdemode (3D Hide, Conceptual, Realistic...) seçenekleri çok daha fazla performans düşmesine sebep oluyorlar. Bunlarla kıyaslanacak olursa Viewres ile çember ve yayların hassasiyeti düşürülerek ciddi bir performans sağlandığı söylenemez. WHIPARC sistem değişkeninin değerini 1 yaparsanız, viewres değeri her ne olursa olsun, çember ve yaylarınız daima kırıksız görünecektir. WHIPARC sistem değişkeni Registry'de saklandığı için eski yeni bütün çizlerinizde verdiğiniz değer geçerli olacaktır...





WHIPARC sistem değişkeni Registry'de tam olarak nerede bulabilirim.bir denemek istiyorum gerçekten işe yarıyor mu?
deneyen var mı. her hangi bir çizimi açsam bile otomatik kendiliğinden daire ve yayların kırıkları ortadan kalkıyor mu.

> 1 <
Copyright © 2004-2022 SQL: 1.556 saniye - Sorgu: 83 - Ortalama: 0.01875 saniye