AutoCAD • AutoLISP • Programlama • Püfler • Komutlar • Terimler • Eğitim
aLd • TCad • FacadeCAD • Cephe Kot • HQ Library • FreeMUST • Pasdoc.A
21.06.2019 09:12    

majortom
Selamlar
Ekranınınızı autocad çizim arayüzü olarak düşünün.

sol alttan farzı misal 15 cm sağa DÜZ bir çizgi çekin.
sağ üstten aşağıya farzı misal 10cm düz çizgi çekin.
bu çizgilerin uçlarından ekranın sol-üstüne doğru (çizgilere dik olacak şekilde) line çizin

işlemlerin solunda ekranın sol üstünde bir dörtgen oluşacak.

benim ihtiyacım olan 2 referans çizgisi çizdikten sonra bahsi geçen dörtgenin köşe noktalarına ulaşmak.

Konu hakkında yardımcı olabilecek arkadaşlara şimdiden teşekkür ederim.

21.06.2019 09:16    

ehya
bi resim paylaşsan daha güzel olmazmıydı??

21.06.2019 09:51    

majortom


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



Hocam buraya yükleyemedim wetransfer üzerinden bakar mısınız ?

21.06.2019 13:03    

ehya
Bu konuyu örnek kod paylaşmaktansa anlatmayı daha uygun gördüm. Bu sayede nasıl yazılacağı konusunda bir fikir edinebilirsin.

Resimde görüldüğü gibi iki çizgimiz var.
1nci nesne P1 ve P2 koordinatlarına, 2nci nesne ise P3 ve p4 koordinatlarına sahip.
İlk nesnenin seçimini yaptıralım.

Kod:

(setq ent (car (entsel "\n1.nnesne)))


İlk nesnenin başlangıç ve bitiş koordinatlarını tespit edelim.

Kod:

(setq p1 (cdr (assoc 10 (entget ent))))
(setq p2 (cdr (assoc 11 (entget ent))))


Bu çizginin açısını öğrenelim.
Kod:

(setq aci-1 (angle p1 p2))


P1 noktasına gelen dik hat için açı değerine +90 ve -90 olacak şekilde yeni açılarını ve izafi olarak a1 ve a2 noktalarını tespit edelim.
Bu tespiti Polar komutu ile yapacağız. polar komutunda açı değeri radyan cinsinden olmalı.
(Polar nokta açı mesafe) şeklinde yazılır ve yeni koordinat tespit edilir.
Pi değeri radyan cinsinden karşılığı 180derecedir.


Kod:

(setq a1 (polar p1 (+ (/ pi 2.0) aci-1) 10))
(setq a2 (polar p1 (- (/ pi 2.0) aci-1)10))



Yukarıdaki işlemleri b1 ve b2 içinde yaptığımızda ilk nesne ile ilgili koordinat tespiti tamamlanır.
Aynı işlemleri diğer nesne içinde yapmalıyız.

Sonuçta elimizde a1,a2,b1,b2,c1,c2, koordinatları olacaktır.

Kesişim koordinatlarını elde etmek için INTERS komutunu kullanacağız.

Kod:

(setq kes-01 (inters a1 a2 c1 c2 nil))


Kod sonundaki nil değeri yazılırsa, verilen argümanlarda oluşan sanal çizginin sonsuza kadar gittiği varsayılır.
Nil yazılmaz ise, iki sanal çizgi gerçekten kesişiyorsa yeni değer verilir. Kesişmiyorsa değer nil dir.





22.06.2019 06:12    

majortom
hocam sağ olun yazdıklarınıza baktım. Denemedim ama inters komutu işimi çokca görecektir :), tüm açıklamalarınız ve yardımlarınız için teşekkür ederim.

:):love:|:dozingoff:blush:D:satisfied:pkak:wink:yes

majortom (22.06.2019 06:20 GMT)

> 1 <
Copyright © 2004-2022 SQL: 1.017 saniye - Sorgu: 55 - Ortalama: 0.01849 saniye