04.10.2015 15:26    

zahmeri
Aynı isimli blokları tek seferde seçmek, kopyalamak veya taşımak

İyi günler arkadaşlar. Siteye yeni kayıt oldum. Gerçekten çok faydalı bilgiler mevcuttur. Öncelikle herkesten Allah razı olsun.

Daha önce sorulmuş ama çok vaktim olmadığı için bütün sayfalara bakıp cevabını bulacak zamanım olmadığı için tekrar soruyorum. Farklı isimlerden oluşan bloklar kümesinde istenilen bloğa tıklayınca aynı isimdeki diğer bloklarıda seçip, aynı çizim sayfasına yada başka çizim sayfasına taşıyan, kopyalamamıza yardımcı olan bir lisp varmı?
Amacım ilgili blok ismine ait eşdeğer isimdeki diğer blok çizimlerini tek tek seçmeden bir seferde seçerek kopyalamak veya taşımak.

admin (14.12.2017 16:09 GMT)

04.10.2015 20:05    

alumina
Alıntı
zahmeri :


"qselect" komutunu denediniz mi?

04.10.2015 21:29    

zahmeri
qselect komutu ile daha önce denedim ama bir türlü yapamamıştım.sizin telkininizle tekrar denedim.tam bilemeyince doğal olarak çözüme kavuşturmakta biraz sancılı oluyor.En nihayetinde qselect komutu ile yaptım..teşekkür ederim..

05.10.2015 13:08    

BLack|E
Alıntı
alumina :
Alıntı
BLack|E :



Once birincil cizgiyi, sonra sirasiyla x eksenindeki ve y eksenindeki cizgiyi sec.

Kod:

(defun c:ch (/ ss ln ns dt) (vl-load-com)
  (if (setq ss (ssget ":s" '((0 . "line"))))
    (if (setq ln (ssget ":s" '((0 . "line"))))
      (if (setq ns (ssget ":s" '((0 . "line"))))
        (progn
          (setq dt (vlax-safearray->list (vlax-variant-value
            (vla-get-delta (vlax-ename->vla-object (ssname ss 0))))))
          (setvar "chamfera" (car dt))
          (setvar "chamferb" (cadr dt))
          (vl-cmdf "._chamfer" (ssname ln 0) (ssname ns 0))
        )
      )
    )
  ) (princ)
)





alumina hocam merhaba, bu alıntıdaki lisp aşağıdaki hataları veriyor sıklıkla. Ayrıca ikinci olarak aşağıdaki resimdeki durumla karşılaşıyorum. Neden olabilir acaba. Yardımlarınız için şimdiden teşekkürler.

Command: CH
Select objects:
; error: AutoCAD variable setting rejected: "chamfera" -21.7618

05.10.2015 22:29    

alumina
Alıntı
BLack|E :


; error: AutoCAD variable setting rejected: "chamfera" -.... hatasini vermez artik. Resimdeki durum icinde revize edildi.

Kod:

(defun c:ch (/ ss ln ns dt) (vl-load-com)
  (if (setq ss (ssget ":s" '((0 . "line"))))
    (if (setq ln (ssget ":s" '((0 . "line"))))
      (if (setq ns (ssget ":s" '((0 . "line"))))
        (progn
          (setvar "cmdecho" 0)
          (setq dt (vlax-safearray->list (vlax-variant-value
            (vla-get-delta (vlax-ename->vla-object (ssname ss 0))))))
          (setvar "chamfera" (abs (car dt)))
          (setvar "chamferb" (abs (cadr dt)))
          (vl-cmdf "._chamfer" (vlax-curve-getclosestpointto (vlax-ename->vla-object
            (ssname ln 0)) (car (cdr (nth 4 (cadr (ssnamex ln))))))
            (vlax-curve-getclosestpointto (vlax-ename->vla-object (ssname ns 0))
            (car (cdr (nth 4 (cadr (ssnamex ns)))))))
        )
      )
    )
  ) (princ)
)

06.10.2015 06:22    

BLack|E
Alıntı
alumina :
Alıntı
BLack|E :




alumina hocam consp hatası veriyor bu seferde. Sizide zahmet veriyoruz ama :)

Command: ch

Select objects:

Select objects:

Select objects:
; error: bad argument type: consp nil

alumina (06.10.2015 08:00 GMT)

06.10.2015 06:30    

alumina
Ertan,
Bende hata vermiyor. Secim siralamasini uzerine isaretleyerek dosyayi yukle buraya bakalim hemen.

06.10.2015 07:01    

BLack|E
hangi dosyadan bahsediyorsunuz hocam anlamadım. seçip sıralaması konuştuğumuz gibi ilk önce x ekseni sonra y ekseni.

06.10.2015 07:10    

alumina
yukarda bahsettigin hatayi veren dosyadan bahsediyorum.

06.10.2015 07:30    

BLack|E

06.10.2015 07:47    

alumina
Alıntı
BLack|E :


Bende calisiyor..

06.10.2015 07:58    

BLack|E
Tamam hocam ben tekrar yükleme yapayım. Bilgisayarı kapatım açayıp teşekkürler.

10.10.2015 08:17    

LEYLO
Arkadaşlar,

(setq ss1 (ssget "x" (list (cons 0 "*text") (cons 40 2) ))) seçim seti oluşturdum. Sıkıntı yok çalışıyor. Fakat

(setq ss1 (ssget "x" (list (cons 0 "*text") (cons 40 2.2098) ))) olarak ondalıklı text yüksekliği yazınca hata veriyor. Sıkıntı ne olabilir ?

LEYLO (10.10.2015 08:43 GMT)

10.10.2015 09:40    

alumina
Alıntı
LEYLO :


Cizimin tamaminda otomatik secim yaptirmissin. Eger cizimde 2.2098 yuksekliginde text yada mtext varsa hepsini secer. Yazdigin satirda hata yok.

10.10.2015 13:04    

ongunoz
Arkadaşlar merhabalar. 2 tane sorum olacaktı sizlere:

1.Elimde bir lisp var fakat biraz değişiklik gerekiyor. istediğim tek değişiklik aslında bu lisp virgülden sonra 2 hane yazdırıyor. ben 3 hane yazdırmasını istiyorum. lisp bu:

(setq DT (getreal "datum?"))
(setq sn (getint "snap?"))
(setq aci (getint "aci?"))
(setq yuk (getreal "yükseklik?"))


(defun c:ko()

(repeat 1000
(setvar "osmode" sn)
(setq a (getpoint "KOT VERiLECEK NOKTAYI SECiN"))
(setvar "osmode" 0)
;******YAZI ROTATION-DERECE CINSINDEN*************
(setq der1 (* 0.8 yuk))
(setq der2 (* 0.5 yuk))
(setq b (polar a 2.4662 der1))
(setq c (polar a 0.6754 der1))
(command "line" a b c "c")
(setq d (polar b (* 0.5 pi) der2))
(setvar "dimzin" 0)
(setq e (cadr a))
(setq e (+ dt e))
(setq e (rtos e 2 2))
(command "text" d yuk aci e)
)
)

; END = 1
; MID = 2
; CEN = 4
; NODE = 8
; QUAD = 16
; INT = 32
; INS = 64
; PER = 128
; TAN = 256
; NEAR = 512
; QUIC = 1024


2. Lispi biraz modifiye etmek istiyorum. Fakat bu lisp elime hazır geldi sadece merakım yapabilen bir arkadaş olabilir mi? Lisp genel olarak önce bir datum belirleyip o datuma verdiğimiz referans kota göre bastığımız yerlere kotlarını yazdırıyor. Benim istediğim ise datumu belirledikten sonra bastığım yerdeki kotu bir başka yere yazması.

Teşekkürler.

10.10.2015 19:27    

ProhibiT


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

13.10.2015 07:50    

halilozcakir
(defun c:tes(/ yazi elist ent)
(if (null __oncekiyazi__) (setq __oncekiyazi__ ""))
(setq ent (entsec "TEXT" (strcat "\nKaynak Yazıyı Seç <" __oncekiyazi__ "> :")))
(setq yazi (if ent (cdr (assoc 1 (entget ent))) __oncekiyazi__))
(if (/= "" yazi) (progn
(princ yazi)
(setq __oncekiyazi__ yazi)
(if (setq ent (entsec "TEXT" "\nHedef Yazıyı Seç :"))
(progn
(setq elist (entget ent))
(princ (cdr (assoc 1 elist)))
(setvar "CMDECHO" 0)
(command "undo" "mark")
(setq elist (subst (cons 1 yazi) (assoc 1 elist) elist))
(entmod elist)
(if (= 35 (getvar "ERRNO")) (princ "\nSeçtiğiniz yazı kilitli tabakada. Değiştirilemiyor."))
(command "undo" "end")
(setvar "CMDECHO" 1)
));_if-progn
))
(princ)

Merhaba yukarıdaki lisipte text kopyalayıp diğerinin içine yapıştırıyor ya işlemi bir kerelik yapıyor yani bir yazıya tıkladığım zaman komut işi bitiriyor çıkıyor. ben tıklamaya devam ettikçe yazsa , esc ile çıkınca tekrar komut kaynaK yazı istese ve tıklamaya devam ettikçe içeriği kopyalamaya devam etse süper olur.

bu arada lispi kod içine alayım dedim yandex hata verdi

halilozcakir (13.10.2015 08:50 GMT)

14.10.2015 10:09    

zahmeri
Hayırlı günler arkadaşlar.Aşığıda yazdığım şekilde elimde bir lisp var.Bu lisp bloğun üstüne tıklayınca direkt olarak yeni ism soruyor ve girilen yeni isimle birlikte çizimdeki ilgili bütün blokların ismini değiştiriyor..özellikle proje ofisleri blok isimleri verirken farklı tanımlamalar yapıyor,ama o çizimin keşfi çıkartılırken proje ofisinin yazdığı isimden aratıp o isim hangi armatürdü diye tekrar armatürü bulmak gerekiyor.Fakat bu lisple direk olarak armatür ismini blok ismi yaparak anlam kargaşası ve iş yapma zamanını kısaltabiliyorsunuz..Umarım faydalı olur..

(defun c:rbk (/ blksecimi blkname blknew)

; select block to view name
(setq blksecimi (entget(car(entsel "Select block to view NAMES : ")))
blkname (cdr(assoc 2 blksecimi)) )
(princ (strcat ">>> " (cdr (assoc 2 blksecimi)) " <<<" )) ; princ block name
(setq blknew (getstring t "\nEnter new block name: "))
(command "_.rename" "_block" blkname blknew)
(prompt "\nBlock ismi başarıyla değiştirilmiştir...")
(princ)
)

14.10.2015 10:42    

alumina
Alıntı
zahmeri :


Elinize saglik. Peki cizimde ayni isimde baska blokta varsa ne olacak?

14.10.2015 11:11    

zahmeri
aynı isim varsa hata veriyor.Dolayısıyla aynı ismi iki farklı blok için kullanma şüpheniz ortadan kalkıyor..

> 1 < [2] [3] [4] [5] [6] Sonraki Sayfa
Copyright © 2004-2022 SQL: 1.732 saniye - Sorgu: 100 - Ortalama: 0.01732 saniye