01.02.2017 13:05    

emrahoksak
merhaba arkadaşar benim layer degiştiren bir lisp var

Kod:

(defun C:1()
(command "_-LAYER" "_M" "0" ""))


x layerından 1 komutu ile 0 layerına gecmemi saglıyor.(siz bilirsiniz gerci koddan :) ) yanlız ben x layerında olan objelerden bir kaçını secip 1 komutunu verdiginde secli objelerin layerini degiştirmeden direk 0 layerına geciş yapmakta acaba buna ne gibi eklemeler yapabilirim?

internette aradım şöyle birşey buldum ama buda sectigim cizgileri istedigim layerra atıyor layerra geciş yapmıyor malasef

Kod:

; Changes selected objects to Layer PL1
(defun c:21 ()
  (tolayer
    (ssget "_:L") ;;selection
    "Duvar"         ;;Layer
    )
  (princ)
)
(defun tolayer ( ss lay / i e )
  ;;; ss - pickset
  ;;; lay -layer name
  (repeat (setq i (sslength ss))
    (entmod
      (subst
        (cons 8 lay)
        (assoc 8 (entget (setq e (ssname ss (setq i (1- i))))))
        (entget e)
        )
      )
    )
  )


umarım derdimi anlatabilmişimdir.

emrahoksak (01.02.2017 17:17 GMT)

01.02.2017 13:11    

Travaci
Anlamadım walla : )
Laymcur current layer ı gösterilen objenın layer ı yapar.
Laycur gösterilen objenın layer ını current layer la değiştirir.
Bunlardan birininmi istiosun.

01.02.2017 13:21    

emrahoksak
:) :) şöyle hocam şimdi benim cizimlerimde layer kalabalıgı oluyor bende bu yüzden layerlara kısayol atadım

şimdi benim istedigim şöyle bişi ben x layerındayım ve bazı cizgileri secmiş bulunmaktayım ve bu sectiklerimi y layerına aktarmak istiyorum ikinci kod bunu yapıyor fakat ben hem objelerin layerını degiştirmek hemde x layerından y layerına gecmek istiyorum aynı anda.

yani hem objenin layerını hemde current layerı degiştirmek istiyorum. 2 kodun birleşimi yani inşallah bu sefer anlatabilmişimdir :D

HOCAM araştırıp birşeyler buldum yanlız küçük bir yama yapma şansımz varmı acaba hiç bir obje secmesemde layer degiştirmesini saglayabilirmiyiz.
Kod:

(defun C:22 ( / ss)
  (if (or (setq ss (cadr (ssgetfirst)))
          (and (princ "\nSelect Entites To Change To Layer 0")
               (setq ss (ssget "_:L"))
               )
          )
    (command "_.LAYER" "_M" "0" "_Thaw" "0" "_ON" "0" "_Set" "0" ""
           "_.CHPROP" ss "" "_LA" "0" "")
  )
  (princ)
)



evet yabancı forumlarda biraz araştırma yaptım ve en sonunda şöyle bir kod çıktı ortaya

Kod:

(defun C:22 ( / ss)
(setvar "CLAYER" "0")
  (if (or (setq ss (cadr (ssgetfirst)))
          (and (princ "\nSelect Entites To Change To Layer 0")
               (setq ss (ssget "_:L"))
               )
          )
    (command "_.LAYER" "_M" "0" "_Thaw" "0" "_ON" "0" "_Set" "0" ""
           "_.CHPROP" ss "" "_LA" "0" "")
  )
  (princ)
)

emrahoksak (01.02.2017 17:14 GMT)

01.03.2017 13:33    

brolin59
Sonuç olarak iki kodda çalışıyorsa ilk hangi işlemi yaptırmak istiyorsanız onun altına 2. kodu koyarsanız 2sini de yapmış olursunuz zaten ama ben hala sorunu anlayabilmiş değilim galiba :D

> 1 <
Copyright © 2004-2022 SQL: 1.466 saniye - Sorgu: 51 - Ortalama: 0.02875 saniye