14.05.2012 07:37
relaxer
|
Değerlı arkadaşlarım ve büyüklerim, kesişen birden fazla doğrunun kesişme noktalarına komut girildiğinde daire çizebilen bir lisp varmıdır acaba? Bana bu konuda yardımcı olabilirseniz çok memnun olurum.
Şimdiden teşekkürler.
|
14.05.2012 10:57
Travaci
|
Şöyle birşey yapmıştım fakat teker teker seçtiriyor belki işine yarayabilir.
Kod:
(defun c:Ea ()
(while (= 0)
(setq e1 (car (entsel "\n1. Doğru:"))
e2 (car (entsel "\n2. Doğru:")))
(setq e1-10 (cdr (assoc 10 (entget e1)))
e1-11 (cdr (assoc 11 (entget e1)))
e2-10 (cdr (assoc 10 (entget e2)))
e2-11 (cdr (assoc 11 (entget e2))))
(setq kesisim (inters e1-10 e1-11 e2-10 e2-11))
(setq aci (angle e1-10 e1-11))
(entmake (list
(cons 0 "CIRCLE")
(cons 100 "AcDbEntity")
(cons 67 0)
(cons 410 "Model")
(cons 100 "AcDbCircle")
(cons 62 1)
(cons 10 kesisim)
(cons 40 (* cap 45))
)
)
(princ)
)
)
|
14.05.2012 11:45
ProhibiT
|
Seçilen tüm Line objelerini tek seferde işleme alır. Kod:
;|-=========================================================================-|;
;| InCr: Intersection Circle |;
;| Hayırlayan: M. Şahin Güvercin - www.autocadokulu.com |;
;|-=========================================================================-|;
(defun C:InCr (/ Txh Lns m n o p)
(setvar "cmdecho" 0) (command "undo" "group") (vl-load-com)
(princ "\nLine Objeleri seçiniz: ") (setq TxH (/ (getvar "TextSize") 2.0)
Lns (ssget (list (cons 0 "Line"))) m (sslength Lns))
(while (>= (setq m (1- m)) 1) (setq n m) (while (>= (setq p nil n (1- n)) 0)
(if (not (minusp (vlax-safearray-get-u-bound
(setq o (vlax-variant-value (vla-intersectwith (vlax-ename->vla-object
(ssname Lns m)) (vlax-ename->vla-object (ssname Lns n))
AcExtendNone))) 1))) (setq p (vlax-safearray->list o)))
(if p (entmake (list (cons 0 "CircLe") (cons 10 p) (cons 40 TxH))))))
(command "undo" "e") (prin1))
|
28.05.2012 12:17
relaxer
|
Biraz gec oldu ama cok tesekkur ederim, cok isimi gordu. Ayrica sitede PCT diye bir lisp te buldum o da cok isimi gordu..
Saolun..
|
28.05.2012 12:32
ProhibiT
|
Sitemizde epeyce Lisp fonksiyon paylaştık, ortamımızı biraz tanıyınca arayıp bulmak hiç te zor değil. Bunlardan PcT (Point Coordinate Table) benim favorilerimden biri. O kadar ilgi görgü ki, biri diğerinin yerini tutmaz 3 ayrı versiyonunu yazıldı. :)
|
16.05.2013 07:45
2032223351
|
hocam bu kesisimlere nokta atmak icin nasil degisiklik yapmaliyiz ?
|
16.05.2013 08:11
Travaci
|
|
16.05.2013 10:30
2032223351
|
kendimde yapmistim daha yeni cons 0 i point yaptim sonra cons 40 i sildim oldu yazmayi unuttum ama yinede tesekkur ederim ilgilendigin icin +)
|
13.06.2015 08:49
israfil çelik
|
ARKADAŞLAR BELLİ BİR SEÇİM BÖLGESİNDE KESİŞEN ÇİZGİLERİ KESİŞME NOKTASINDAN PARÇALAYACAK BİR LSP VARMI ACABA
YARDIMCI OLURSANIZ SEVİNİRİM.
|
13.06.2015 09:11
ehya
|
israfil çelik
Linkleri görebilmek için ÜYE olmalısınız.
|
aslanv
|
Alıntı ProhibiT :
(defun C:InCr (/ Txh Lns m n o p)
(
Prohibit hocam merhaba,
InCR lispinde örneğin karenin tüm köşelerine de circle atıyor. Bunun yerine sadece intersect olarka yani köşe kesişmesi değil de kesip geçmesi durumunda circle atan hali olabilir mi?
Aslında işin özünde asıl istediğim; çizim içerisinde yer alan hatchlerin birbiri üzerine geçmiş olanlarını bulmak. Bitişik parselleri düşünün, bir parselin yan parsele girdiğini keşfedebilmek için bir yöntem arıyorum. Bu ya çizgi kesişimi olarak ya da alan taralı ise hatch çakışması olarka tespit edebilmek?
|