Bu makalemde sizlere bir çok satırlı yazının “mtext” rotasyonu belirtmek için ek girişler sağlamaya gerek kalmadan eğri ile otomatik olarak nasıl hizalayabileceğinizi anlatacağım. Bir çok satırlı yazıyı “mtext” bir eğri boyunca hizalama gereksinimi çok önemli olduğundan, özelleştirebileceğiniz bir Autolisp uygulaması yayınlıyorum. Rotasyonu bulmak için anahtar, varlığın seçildiği noktada eğrinin ilk türevini (eğimi) belirlemektir.
İşte kod aşağıda:
(vl-load-com)
(setq es (entsel)
entpt (osnap (cadr es) “_nea”)
ang (angle ‘(0 0 0)
(vlax-curve-getFirstDeriv
(vlax-ename->vla-object (car es))
(vlax-curve-getParamAtPoint
(vlax-ename->vla-object (car es))
Entpt
)
)
)
)
(if (and (> ang (/ pi 2)) (<= ang (* pi 1.5)))
(setq ang (+ ang pi))
)
(setq hght (getreal “\nText Height : “))
(setq
mspace (vla-get-modelspace
(vla-get-activedocument (vlax-get-acad-object))
)
)
(setq mtextobj (vla-addMText
Mspace
(vlax-3d-point entpt)
0.0
“AUTOCAD”
)
)
(vla-put-attachmentPoint
Mtextobj
acAttachmentPointMiddleCenter
)
(vla-put-insertionPoint mtextobj (vlax-3d-point entpt))
(vla-put-Rotation mtextobj ang)
(vla-put-Height mtextobj hght)
(vla-put-Color mtextobj 7)
(vla-put-backgroundfill mtextobj :vlax-true)
Bir örnek çıktıyı aşağıdaki şekilde görebilirsiniz:
Yukarıdaki kodda AUTOCAD ifadesinin yerine istediğiniz metni yazabilirsiniz.