24.04.2017 14:11    

alper0629
İyi Günler benim elimde Bi çok poz var, bu pozları numaralarını circlelın ortasında taşımak istiyorum ama bunu tek tek yapmak zor oluyor basit bi işlem gibi ama tam olarak lisp bilgim olmadığı için yapamadım örnek dwge yi ekte yüklüyorum. Şimdiden teşekkürler.

235222-drawing2.dwg

24.04.2017 15:28    

ehya
Aşağıdaki kod işinizi görecektir. Öyle kaliteli bir lisp değildir. Bu yüzden seçeneceğinz nesne sayısı toplam 2 olmalı. Bir tanesi yazı diğeri circle..

Komutu çalıştırın. yazıyı ve daireyi seçip enter'a basın.

Komut ismi 123


Kod:

(defun c:123 ()
(if (setq ss (ssget '((-4 . "<OR")
      (0 . "TEXT")
      (0 . "CIRCLE")
      (-4 . "OR>"))))
  (progn
    (command "_.select" ss "")
    (setq c 0)
    (repeat 2
    (setq nn (ssname ss c))
    (if (= (cdr (assoc 0 (entget nn))) "CIRCLE")
      (progn
      (setq mrkz (cdr (assoc 10 (entget nn))))
      (ssadd  nn (setq ds (ssadd)))
      (setq c (1+ c))
      )
      (progn
      (setq yz (cdr (assoc 10 (entget nn))))
      (ssadd  nn (setq ys (ssadd)))
(setq c (1+ c))
      )))
     (vla-put-TextAlignmentPoint (vlax-ename->vla-object (ssname ys 0)) (vlax-3d-point mrkz))
    ))(princ))

24.04.2017 15:40    

alper0629
Sağolun çok teşekkürler bu işimi gördü fazlasıyla :)

> 1 <
Copyright © 2004-2022 SQL: 0.818 saniye - Sorgu: 48 - Ortalama: 0.01703 saniye