08.03.2019 20:30    

mkuru
Selamlar arkadaşlar.

Kod:

(defun c:mk (/ aa bb cc ee ff gg hh)
  (defun rad (deg)
(* pi (/ deg 180))
)
(setq aa (getpoint "\nBaslangic Noktasi. : "))
(setq bb 8.0)
(setq cc 230.0)

(setq ee (polar aa (rad 90.0) cc)
  ff (polar ee (rad 0.0) bb)
  gg (polar ff (rad 270.0) cc)
  hh (polar gg (rad 0.0) bb)
     )
(terpri)
(command "_.PLINE" aa ee ff gg hh "")
(terpri)
(princ)

)





Arkadaşlar yukarıda kodunu yazdığım lisp programı her zaman doğru şekilde çalışmıyor. Aşağıdaki resimdeki gibi garip şekiller çiziyor. Kodda bir hata var mı? Kod ile resimdeki üst dikdörtgenin içinde ki şekli yapmak istiyorum. Ama kod her zaman bu şekli yapmıyor. Özellikle de çizimi küçülttükçe (uzaklaştıkça) resimde alttaki dikdörtgenin içinde ki şekilleri çiziyor. Bu durumu nasıl düzeltebilirim.

08.03.2019 23:05    

alumina
Alıntı
mkuru :

Command'la yapilan create islemlerinde zoom orani ve cizimdeki nesne yogunluguna gore osmode sistem degiskeni kenetlenme modlarinin azizligine ugramamak icin create isleminin hemen oncesinde osmode sistem degiskeni kapatilmali, hemen sonrasinda tekrar eski haline getirilmelidir. Hatta cizimden uzaklasip manuel olarak cizmeyi denediginizde de bu durumla karsilasirsiniz. Cizmek istediginiz noktanin yakinlarinda nesneler varsa kenetlenme modlari kursoru en uygun yere goturecektir. Eger lisp icinde create islemlerini entmake yada vla-add... ile yaparsaniz zoom oranindan ve osmode sistem degiskeninin acik olmasi durumundan etkilenmeksizin istediginiz noktaya create islemi yaparsiniz.
Kod:

(defun c:mk (/ aa bb cc ee ff gg hh)
  (defun rad (deg)
(* pi (/ deg 180))
)
(setq aa (getpoint "\nBaslangic Noktasi. : "))
(setq bb 8.0)
(setq cc 230.0)

(setq ee (polar aa (rad 90.0) cc)
  ff (polar ee (rad 0.0) bb)
  gg (polar ff (rad 270.0) cc)
  hh (polar gg (rad 0.0) bb)
     )

(setq osm (getvar 'osmode))
(setvar 'osmode 0)
(command "_.PLINE" aa ee ff gg hh "")
(setvar 'osmode osm)

(princ)

)

09.03.2019 06:13    

mkuru
Alıntı
alumina :
Command'la yapilan create islemlerinde zoom orani ve cizimdeki nesne yogunluguna gore osmode sistem degiskeni kenetlenme modlarinin azizligine ugramamak icin create isleminin hemen oncesinde osmode sistem degiskeni kapatilmali, hemen sonrasinda tekrar eski haline getirilmelidir. Hatta cizimden uzaklasip manuel olarak cizmeyi denediginizde de bu durumla karsilasirsiniz. Cizmek istediginiz noktanin yakinlarinda nesneler varsa kenetlenme modlari kursoru en uygun yere goturecektir. Eger lisp icinde create islemlerini entmake yada vla-add... ile yaparsaniz zoom oranindan ve osmode sistem degiskeninin acik olmasi durumundan etkilenmeksizin istediginiz noktaya create islemi yaparsiniz.
Kod:

(defun c:mk (/ aa bb cc ee ff gg hh)
  (defun rad (deg)
(* pi (/ deg 180))
)
(setq aa (getpoint "\nBaslangic Noktasi. : "))
(setq bb 8.0)
(setq cc 230.0)

(setq ee (polar aa (rad 90.0) cc)
  ff (polar ee (rad 0.0) bb)
  gg (polar ff (rad 270.0) cc)
  hh (polar gg (rad 0.0) bb)
     )

(setq osm (getvar 'osmode))
(setvar 'osmode 0)
(command "_.PLINE" aa ee ff gg hh "")
(setvar 'osmode osm)

(princ)

)





Çok teşekkürler. Bu şekilde yapması gereken işi yapıyor.

> 1 <
Copyright © 2004-2022 SQL: 1.269 saniye - Sorgu: 47 - Ortalama: 0.02701 saniye