28.03.2008 00:42    

calibra
arkadaşlar sectiğim polyline'ın uzunluğunu okuyarak benim tıklayacağım noktada aynı uzunlukta düz bir pline çizen bir lisp lazım bana. biraz birşeyler yazmayı denedim, okuma kısmında sorun yok ama pline ı çizerken saçma sapan çiziyor. yardım edebilecek arkadaşlara şimdiden teşekkür ederim.


(defun c:DK ()
(setq cmdecho (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(setq tmp (entsel "\nSelect Polyline: "))
(if (/= tmp nil)
(progn
(setq hnd (car tmp))
(command "_.AREA" "_E" hnd)
(setq M (getpoint "\nBASLANGIC="))
(command "ucs""n" M)
)
)
(setq a (getvar "PERIMETER"))
(COMMAND "pLINE" M '(0 a)"")
(princ)
)

29.03.2008 10:08    

calibra
maalesef eklemelerin çalışmadı. son aşamada pline ın nereden başlamasını sorduğunda o noktaya uzunluğu sıfır olan bir pline çiziyor.

29.03.2008 12:36    

calibra
wolf:

ucs world de iken çalıştırıyorum.şu an çiziyor fakat uzunluklar tutmuyor. ilk seçtiğim pline ın uzunluğunda düz bir pline çiziyor ancak 2. , 3. seçtiklerimde çizdiği pline uzunluğu hep aynı.

yani ne seçersem seçeyim hep ilk seçtiğim pline uzunluğunda çiziyor

29.03.2008 13:38    

Harbi65
Kod:

(defun c:cr ()
  (setq cr_cmd (getvar "CMDECHO"))
  (setvar "CMDECHO" 0)
  (if (= a_ang nil)
    (setq a_ang 0)
  )
  (setq y_ang (getreal (strcat "\n Yeni çizginin açısını giriniz: <" (rtos (fix a_ang) 2 0) ">:"))
  )
  (if (= y_ang nil)
    (setq y_ang a_ang)
  )
  (setq a_ang y_ang)
 
  (setq ang (* pi (/ y_ang 180.0)))
 
  (if (setq obj (entsel "\n Ölçülecek Pline seçin: "))
    (progn
      (command "_.AREA" "_E" obj)
      (setq M (getpoint "\n Başlangıç noktasını gösterin:"))

      (setq a (getvar "PERIMETER")
    b (polar M ang a)
      )
      (COMMAND "_pLINE" M b "")
    )
  )
  (setvar "CMDECHO" cr_cmd)
  (princ)
)

29.03.2008 14:20    

calibra
cok tesekkür ederim Harbi65. çok makbule geçti...

01.08.2017 17:21    

alper0629
bu lisp için ufak bi düzenleme rica etsem yapabilirmisiniz?

Burda tıkladığım polinenın uzunluğunu hafızaya aldıktan sonra tıkladığım herhangi bi çizgiden o uzunluk kadar ofset atsa yapılabilir bişemi? açılık bi durum yok benim için.

Teşekkürler Şimdiden.

01.08.2017 21:07    

alumina
Alıntı
alper0629 :

Secilen polyline nesnenin uzunlugu kadar secilen nesneleri ofsetler.
Kod:

(defun c:osl (/ ss ns dc sl m) (vl-load-com)
  (if (setq ss (ssget ":s" '((0 . "lwpolyline"))))
    (progn (redraw  (setq ns (ssname ss 0)) 3)
      (if (and (ssget) (setq dc (vla-get-activedocument (vlax-get-acad-object))
            sl (vla-get-activeselectionset dc)))
        (progn (vla-startundomark dc)
          (vlax-for m sl (if (vlax-method-applicable-p m 'Offset)
            (vla-Offset m (vla-get-Length (vlax-ename->vla-object ns)))))
          (vla-endundomark dc) (vla-delete sl)
        )
      ) (redraw ns 4)
    )
  ) (prin1)
)

02.08.2017 06:20    

alper0629
Teşşekür ederim yardımınız için çok sağolun gayet iyi olmuş.

> 1 <
Copyright © 2004-2022 SQL: 0.845 saniye - Sorgu: 65 - Ortalama: 0.013 saniye