İ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.
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))