13.07.2012 13:55    

ehya
can123




Freeze'lenmiş tüm katmanları açar.
Komut ismi KAC

Kod:

(defun c:kac ()
(command "_.layer" "thaw" "*" "")
(princ))

13.07.2012 15:46    

CAN123
Ehya hocam denedim ancak çalıştıramadım.

13.07.2012 16:04    

ProhibiT
"kapalı olan tüm katmanları açacak" ifadesi tanımsız. AutoCAD Layer'ları Freeze/Thaw veya Off/On şkelinde açıp kapatır, ve bu kavramlar biribirinden farklıdır. ehya hocamın verdiği fonksiyonda "Thaw" yerine "On" kullanarak deneyin.
Kod:

(defun c:Kac (/) (command "Layer" "On" "*" "") (princ))

13.07.2012 16:32    

CAN123
Merhaba,

Denedim ancak maalesef yine olmadı.

13.07.2012 17:43    

Travaci
Kod:

(defun c:LL()(command "LAYISO")(princ))

(defun c:UU()(command "LAYUNISO")(princ))

(defun c:FR()(command "LAYFRZ")(princ))

(defun c:UFR()(command "LAYTHW")(princ))

(defun c:LOFF()(command "LAYOFF")(princ))

(defun c:LON()(command "LAYON")(princ))

13.07.2012 18:01    

CAN123
çok teşekur ederim.
peki layerları tek tek seçerek değilde alan seçerek yapabilirmiyiz.

13.07.2012 18:10    

Travaci
Hangisiymiş ? : ) Alan seçerek ne yapmak istiyorsunuz ?

14.07.2012 07:15    

CAN123
merhaba,

Aslında aşagıdaki lispteki gibi çalısacak ancak bu kez kapatılan layerları acacak bir lispe ihtiyacım var.

(defun ff_hata (s)
(if (/= s "Function cancelled")
(princ (strcat "
Error: " s))
)
(setq *error* olderr)
(princ)
)
(defun c:ff (/ SS1 E# ENT NAMES LYR)
(setq olderr *error*
*error* ff_hata
)
(setvar "cmdecho" 0)
(princ "
Katmanı kapatılacak nesneleri seçiniz:")
(setq SS1 (ssget)
E# (sslength SS1)
)
(if (> E# 0)
(progn
(setq ENT (ssname SS1
(setq E# (1- E#))

)
ENT (entget ENT)
NAMES (cdr (assoc 8 ENT))
E# (1- E#)
)
)
)
(while (> E# -1)
(setq ENT (ssname SS1 E#)
ENT (entget ENT)
LYR (cdr (assoc 8 ENT))
NAMES (strcat NAMES "," LYR)
E# (1- E#)
)
)
(command "LAYER" "F" NAMES "")
(princ)
)
(princ)
i

14.07.2012 08:09    

ehya
"layerp" komutunu kullan. Layerlar ile ilgili durumları hafızaya alır ve en son layer durumlarını sırası ile uygular.

14.07.2012 08:48    

CAN123
Arkadaşlar çok teşekkur ederim. emeklerinize sağlık, çok faydalı bir forum.

17.07.2012 07:23    

CAN123
merhaba,

Katmanları değişterebileceğimiz bir lisp varmı acaba. şöyleki A katmanındaki tüm nesneler B katmanına çevirecek bir lisp.

şimdiden teşekkurler

17.07.2012 07:41    

Travaci
Laymrg

17.07.2012 07:53    

CAN123
çok teşekkur ederim

25.07.2012 22:58    

ProhibiT
Text ve Attribute içeriği değiştiren AutoLISP Fonksiyon:
Kod:

;|***************************************************************************|;
;| AcT: Advanced Change Text.                                                |;
;| Seçilen Text, MText ve Attribute içeren bLock reference obje gurubu içinde|;
;| belirlenen Karakter Dizisi'ni içeren Objelerde, Mevcut Karakter Dizisi,   |;
;| Yeni Karakter Dizisi ile değiştirilir. Mevcut ve Yeni Karakter Dizilerinde|;
;| Boşluk Karakteri bulunabilir.                                             |;
;|           Hazırlayan: M. Şahin Güvercin  www.cizimokulu.com  25.07.2012   |;
;|---------------------------------------------------------------------------|;
(defun C:AcT (/ p os ns n e as PvT)
  (setvar "cmdecho" 0) (command "_.undo" "group") (vl-load-com)
  (if (not (setq p (ssget (list (cons -4 "<OR") (cons 0 "*Text")
    (cons -4 "<AND") (cons 0 "Insert") (cons 66 1) (cons -4 "AND>")
    (cons -4 "OR>"))))) (exit)) (if (not oso) (initget 1))
  (setq os (getstring T (strcat "\nOld string <" (if oso oso "") ">:")))
  (if (= "" os) (setq os oso) (setq oso os)) (if (not nso) (initget 1))
  (setq ns (getstring T (strcat "\nNew string <" (if nso nso "") ">: ")))
  (if (= "" ns) (setq ns nso) (setq nso ns)) (setq n (sslength p))
  (while (not (minusp (setq n (1- n)))) (setq e (entget (ssname p n)))
    (cond ((= (cdr (assoc 0 e)) "TEXT")
           (while (vl-string-search os (setq as (cdr (assoc 1 e))))
             (setq as (vl-string-subst ns os as)
                   e (subst (cons 1 as) (assoc 1 e) e)
                   e (entmod e) e (entget (entupd (cdr (assoc -1 e)))))))
          ((= (cdr (assoc 0 e)) "INSERT") (setq PvT (cdr (assoc -1 e)))
           (while(/=(cdr(assoc 0 (entget(setq PvT (entnext PvT))))) "SEQEND")
             (if (= (cdr (assoc 0 (setq e (entget PvT)))) "ATTRIB")
               (while (vl-string-search os (setq as (cdr (assoc 1 e))))
                 (setq as (vl-string-subst ns os as)
                       e (subst (cons 1 as) (assoc 1 e) e)
                       e (entmod e) eb (entupd (cdr (assoc -1 e))))))))))
  (command "_.undo" "e") (setvar "cmdecho" 1) (prin1))
Çizimin belli bir bölgesi, tamamı veya tıklanarak seçilen Text, MText ve Attribute'leri işleme alır.

Her ne kadar yukarıdaki fonksiyon isteneni yapacak özelliklere sahip olsa da, waytooraider arkadaşımızın istedği doğrultusunda, seçilen bir Polyline sınırları içinde kalan Text, Mtext ve Attribute objelerini aynı şekilde işleme alacak şekilde düzenlenmiş fonksiyon:
Kod:

;|***************************************************************************|;
;| AcTb: Advanced Change Text with Boundary.                                 |;
;| Sınırları belirleyen PolyLine objesi içinde kalan Text, MText ve Attribute|;
;| içeren bLock reference obje gurubu içinde belirlenen Karakter Dizisi'ni   |;
;| içeren Objelerde, Mevcut Karakter Dizisi, Yeni Karakter Dizisi ile        |;
;| değiştirilir. Mevcut ve Yeni Karakter Dizilerinde Boşluk Karakteri        |;
;| bulunabilir.                                                              |;
;|           Hazırlayan: M. Şahin Güvercin  www.cizimokulu.com  25.07.2012   |;
;|---------------------------------------------------------------------------|;
(defun C:AcTb (/ bnd nks pts p os ns n e as PvT) (vl-load-com)
  (setvar "cmdecho" 0) (command "_.undo" "group")
  (princ "\nSınır belirleyen PoLyLine objesi seçiniz: ")
  (setq bnd (ssget ":s" (list (cons 0 "LwPoLyLine")))
        nks (vlax-safearray->list (vlax-variant-value (vlax-get-property
                  (vlax-ename->vla-object (ssname bnd 0)) 'Coordinates)))
        n -2 pts nil)
  (while (< (setq n (+ n 2)) (1- (length nks)))
    (setq pts (append (list (list (nth n nks) (nth (1+ n) nks))) pts)))
  (setq p (ssget "_CP" pts (list (cons -4 "<OR") (cons 0 "*Text")
            (cons -4 "<AND") (cons 0 "Insert") (cons 66 1) (cons -4 "AND>")
            (cons -4 "OR>")))) (if (not oso) (initget 1))
  (setq os (getstring T (strcat "\nOld string <" (if oso oso "") ">:")))
  (if (= "" os) (setq os oso) (setq oso os)) (if (not nso) (initget 1))
  (setq ns (getstring T (strcat "\nNew string <" (if nso nso "") ">: ")))
  (if (= "" ns) (setq ns nso) (setq nso ns)) (setq n (sslength p))
  (while (not (minusp (setq n (1- n)))) (setq e (entget (ssname p n)))
    (cond ((= (cdr (assoc 0 e)) "TEXT")
           (while (vl-string-search os (setq as (cdr (assoc 1 e))))
             (setq as (vl-string-subst ns os as)
                   e (subst (cons 1 as) (assoc 1 e) e)
                   e (entmod e) e (entupd (cdr (assoc -1 e))))))
          ((= (cdr (assoc 0 e)) "INSERT") (setq PvT (cdr (assoc -1 e)))
           (while(/=(cdr(assoc 0 (entget(setq PvT (entnext PvT))))) "SEQEND")
             (if (= (cdr (assoc 0 (setq e (entget PvT)))) "ATTRIB")
               (while (vl-string-search os (setq as (cdr (assoc 1 e))))
                 (setq as (vl-string-subst ns os as)
                       e (subst (cons 1 as) (assoc 1 e) e)
                       e (entmod e) e (entget(entupd(cdr(assoc -1 e)))))))))))
  (command "_.undo" "e") (setvar "cmdecho" 1) (prin1))

26.07.2012 09:27    

waytooraider
Herzamanki gibi harikalar yaratmışsınız

Projeyi fazlara bloklara ayırırken o blok yada fazların polyline ile sınırını çizip içindeki attribute yada textleri adresleyebiliriz.

Saygılarımla Hocam günlerdir bu lispin yolunu bekliyordum.

26.07.2012 17:03    

ProhibiT
Bu fonksiyonu yazmakta epeyce geciktim biliyorum, ancak vakit bulabildim. Bu haliyle bile benim de çok işime yaradı. Fonksiyonun daha genel halini yazmak şart oldu. :)

27.07.2012 11:26    

waytooraider
Şahin Hocam eğer bir gün boşta kalırda canınız bir lisp yapmak isterse aşağıdaki lisp isteğimi hatırlamanız dileğimle.Belkide birileri çoktan istemiştir yada mevcuttur.

Crop fonksiyonunda polyline ile kapalı bir alan çizip dışta kalanları siliyorduk.
Bu mantıkla acaba polylinenın değdiği yerleri breakleyen bir lisp olabilirmi.

Crop,Actb ve böyle bir lisp çok hoş olurdu.Sınırları nekadar yamuk yumuk olsa bile istediğimiz bir bölgede amelelik yapmadan bir çok şeyi yapmış olurduk.

29.07.2012 23:36    

Cozdal
Merhabablar Arkadaşlar!

Numara verme ve bu numaraları arttırıp, azaltmamız sağlayacak bir lisp biliyormusunuz?

Örneğin. A-1.1, A-1.2, A-1.3........A-1.60

Örneğin A-1.40'tan sonra araya bir numara (A-1.41 gibi) ekleyip, sonrakileri birer birer arttırmak gibi (A-1.42'yi A-1.43 yapan ve devamında birer birer arttıran) bir lisp programı.

Teşekkürler.

Cozdal

29.07.2012 23:43    

Cozdal
Merhabablar Arkadaşlar!

Numara verme ve bu numaraları arttırıp, azaltmamız sağlayacak bir lisp biliyormusunuz?

Örneğin. A-1.1, A-1.2, A-1.3........A-1.60

Örneğin A-1.40'tan sonra araya bir numara (A-1.41 gibi) ekleyip, sonrakileri birer birer arttırmak gibi (A-1.42'yi A-1.43 yapan ve devamında birer birer arttıran) bir lisp programı.

Teşekkürler.

Cozdal

30.07.2012 04:50    

Travaci
Siteyi karıştırın bulucaksınız.

Önceki Sayfa [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] > 28 < [30] [35] [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] [90] [95] [100] Sonraki Sayfa
Copyright © 2004-2022 SQL: 1.392 saniye - Sorgu: 99 - Ortalama: 0.01406 saniye