Buen día.
Buscando en diferentes paginas encontré una rutina que genera un punto en el centro geométrico de una polilínea.
He tratado de modificarla para que me dé las coordenadas X, Y de ese punto y darlo una variable, pero no lo consigo.
Me pueden ayudar en eso?
De verdad se los agradezco.
El lisp es el siguiente:
Código: Seleccionar todo
;; PT-CEN
;; Creates a point on the selected pline centroid
(defun c:pt-cen (/ ent)
(if
(and
(setq ent (car (entsel)))
(= "LWPOLYLINE" (cdr (assoc 0 (entget ent))))
)
(entmake
(list '(0 . "POINT") (cons 10 (pline-centroid ent)))
)
(princ "\nNone polyline selected.")
)
(princ)
)
;****************************
(defun pline-centroid (pl / AcDoc Space obj reg cen)
(vl-load-com)
(setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))
Space (if (= (getvar "CVPORT") 1)
(vla-get-PaperSpace AcDoc)
(vla-get-ModelSpace AcDoc)
)
)
(or (= (type pl) 'VLA-OBJECT)
(setq obj (vlax-ename->vla-object pl))
)
(setq reg (vlax-invoke Space 'addRegion (list obj))
cen (vlax-get (car reg) 'Centroid)
)
(vla-delete (car reg))
(trans cen 1 (vlax-get obj 'Normal))
)