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))
1
halilozcakir
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)
cancan
çok teşekkür ederim.