29.01.2021 21:42    

akcan
bazı fonksiyonları denemek için aşağıdaki kodları yazdım.
kodlar çalışıyor ancak kod kalabalığı hissi oluştu. doğrusu bu mu yoksa gereksiz uzattım mı?

Kod:

; Eğri çizgi uç noktalarına daire çizer. Arc, Pline, Spline
; uç noktalarını çizgi ile birleştirir
(setq mspace (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
(setq ent (car (entsel)))
(setq vlobj (vlax-ename->vla-object ent))

(setq n_baslama (vlax-3d-point (vlax-curve-getpointatparam ent (vlax-curve-getstartparam vlobj))))
(setq n_bitis (vlax-3d-point (vlax-curve-getpointatparam ent (vlax-curve-getEndParam vlobj))))

(vla-AddCircle mspace n_baslama 5)
(vla-AddCircle mspace n_bitis 5)

(vla-AddLine mspace n_baslama n_bitis)

29.01.2021 22:20    

akcan
kodları biraz değiştirdim
Kod:

(setq mspace (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
(setq ss (vlax-ename->vla-object (car (entsel))))
(setq basla (vlax-3d-point(vlax-curve-getStartPoint ss)))
(setq bitis (vlax-3d-point(vlax-curve-getEndPoint ss)))

(vla-AddCircle mspace basla 5)
(vla-AddCircle mspace bitis 5)
(vla-AddLine mspace basla bitis)

29.01.2021 22:34    

ProhibiT
Kesinlikle doğru yolsasınız. Kodların nasıl çalıştığı ve mantığına hiç bakmadan biçim konusunda bir tavsiyem var.
Kod:

(setq mspace (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
      ss (vlax-ename->vla-object (car (entsel)))
      basla (vlax-3d-point(vlax-curve-getStartPoint ss))
      bitis (vlax-3d-point(vlax-curve-getEndPoint ss)))
(vla-AddCircle mspace basla 5)
(vla-AddCircle mspace bitis 5)
(vla-AddLine mspace basla bitis)

Şeklinde değer atamalar tek bir setq altında yazıldığında hem daha sade hem de takip edilmesi daha kolay olmaz mı? Bundan da ötesi, küçük fonksiyonlarda belki fark edilmeyebilir ama, karmaşık ve uzun kodlarda böyle sade yazmanın bilgisayara da daha az eziyet edeceğinden emin olabilirsiniz.

30.01.2021 09:49    

akcan
önerdiğiniz yöntemi biliyorum ancak şu an öğrenme aşamasında olduğumdan satır satır çalıştırarak deniyorum. o yüzden setq fonksiyonlarını ayrı yazdım

> 1 <
Copyright © 2004-2022 SQL: 0.964 saniye - Sorgu: 55 - Ortalama: 0.01753 saniye