14.12.2010 13:39    

sulamaci
Merhabalar. 50.000 adet kadar daireyi kullandığım bir projem var. Dairelerin merkez noktalarına oluşturduğum blokları atamak istiyorum. Yardımcı olursanız sevininrim. Eren

ehya (14.12.2010 13:42 GMT)

14.12.2010 13:53    

ehya
Komut adı BAT

Kod:

(defun c:bat ()
  (vl-load-com)
  (setq model- (vla-get-ModelSpace (vla-get-activeDocument (vlax-get-acad-object))))
  (setq secim (ssget (list (cons 0 "CIRCLE"))))
  (if (= secim nil)
    (progn)
    (progn
      (command "_.select" secim "")
      (setq b:adi (getstring t "\nBlok adını yazın:"))
      (setq ara (tblsearch "block" b:adi))
      (if (= ara nil)
(progn
  (alert "\nblok bulunamadı..."))
(progn
  (setq c 0)
  (setq say (sslength secim))
  (while (< c say)
    (setq tek: (ssname secim c))
    (setq merkez (cdr (assoc 10 (entget tek:))))
(vla-InsertBlock model- (vlax-3d-point merkez) b:adi 1.0 1.0 1.0 0.0)
    (setq c (+ c 1)))
    ))))(princ))

14.12.2010 15:37    

sulamaci
Sayın Editör


Lispi yükledim ama bi işlem yapamadım. lispi kaydederken bat diye mi isimlendirmem lazım

14.12.2010 15:45    

ehya
- Kodları boş bir metin belgesine kopyalayın.
- Belgenin uzantısını LSP olarakl değiştirin.
- Autocad'i açıp komut satırına APPLOAD yazıp enter yapın. Ekrana gelen tablodan bu lispi seçip LOAD butonuna basın.
- Komut satırına BAT yazıp komutu çalıştırın.

14.12.2010 15:57    

sulamaci
bat komutuna bilinmiyor diyor ama ban başka bir şekilde çözdüm galiba. çok teşekkür ederim

09.04.2011 15:16    

CAN123
Arkadaslar merhaba,

farklı daire çaplarına farklı bloklar ekletmemiz mümkünmü?
ornek olarak ø18 için "a" blogunu ø22 için "b" blogunu eklemek gibi.

teşekkur ederim,

kolay gelsin

04.11.2011 12:41    

aytac_kavak
Ehya hocam tesekkurler 10 numara bır lısp elıne saglık

04.03.2013 14:41    

whitiqer
Ellerinize sağlık çok güzel bir lisp yazmışsınız peki bunu point'lere görede uyarlayabilirmiyiz ? ( point çemberlerinin merkezine )

04.03.2013 15:54    

ehya
Alıntı
whitiqer :
Ellerinize sağlık çok güzel bir lisp yazmışsınız peki bunu point'lere görede uyarlayabilirmiyiz ? ( point çemberlerinin merkezine )




(setq secim (ssget (list (cons 0 "CIRCLE"))))

satırını

(setq secim (ssget (list (cons 0 "POINT"))))

olacak şekilde değiştirin.

04.03.2013 16:27    

whitiqer
Teşekkürler :)

19.12.2013 07:35    

cancan
ehya hocam ekranda Mouse yardımıyla seçmiş olduğum dairelerin merkezine önermiş olduğunuz değişikliği yapmama rağmen point atamadım.
ilgilenirseniz sevinirim.
teşekkür ederim.

19.12.2013 08:46    

Travaci
Yukarda Ehya nın dediği point atmak için değil pointleri seçip blok atmak içindi.

Kod:

(defun c:Pnt (/ crc n) (vl-load-com)
  (if (setq crc (ssget (list (cons 0 "circle"))))
    (progn (setq n -1)
      (vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))
      (while (< (setq n (1+ n)) (sslength crc))
         (entmake (list (cons 0 "point")
           (cons 10 (vlax-safearray->list (vlax-variant-value
            (vla-get-Center (vlax-ename->vla-object (ssname crc n)))))))))
      (vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))    
    )
  ) (princ)
)

Travaci (15.01.2015 17:01 GMT)

20.12.2013 06:30    

cancan
çok teşekkür ederim.

> 1 <
Copyright © 2004-2022 SQL: 1.4 saniye - Sorgu: 81 - Ortalama: 0.01729 saniye