Saludos @jose_manuel_garcia_garcia
Aunque ya paso algún tiempo. No quiero dejar pasar la oportunidad de compartir esta rutina para obtener lo que requieres. Espero que te sea de Utilidad.
;;;___
(Defun c:Area_tab_F
(/ LData ss i e Item ccoord Desc Area eData Obj_Table Tname nrow)
(vl-load-com)
(princ "\nSelecciones Polilineas para calcular el Area Field...:")
(if
(setq LData nil
ss (ssget '((0 . "LWPOLYLINE")))
Item 1
)
(progn
(repeat (setq i (sslength ss))
(setq e (vlax-ename->vla-object (ssname ss (setq i (1- i))))
a (strcat
"%<\\AcObjProp Object(%<\\_ObjId "
(Get-ObjectIDx64 e)
">%) .Area \\f \"%lu2%pr2>%" ;m2
)
)
(setq Desc (strcat "A-" (itoa Item))
Area a
eData (list Item Desc Area)
LData (cons eData LData)
)
(entmakex (list '(0 . "text")
(cons 1 Desc)
;;; (cons 10 (osnap (vlax-curve-getStartPoint e) "gcen"))
(cons 10 (vlax-curve-getStartPoint e))
(cons 40 1.5)
)
)
(setq Item (1+ Item))
) ;repeat
(setq LData (vl-sort LData '(lambda (m n) (< (Car m) (car n)))))
(setq Obj_Table
(vlax-invoke
(vlax-get (vla-get-ActiveLayout
(vla-get-activedocument (vlax-get-acad-object))
)
'Block
)
'Addtable
(trans (getpoint "\nPick point for Table:") 1 0)
2 ;Filas
3 ;Columnas
5 ;height
12 ;whit
)
)
(setq Tname "TABLA DE AREAS")
;;;Titulo...
(vla-settext Obj_Table 0 0 Tname)
(vla-setcelltextheight Obj_Table 0 0 1.7);Alt.texto Encabezado
;;;Encabezado...
(mapcar '(lambda (y)
(vla-settext Obj_Table 1 (car y) (cadr y))
(vla-setcelltextheight Obj_Table 1 (car y) 1.5);Altura de texto 2da linea
)
(list '(0 "ITEM") '(1 "DESCRIPCION") '(2 "AREA"))
)
(foreach j LData
(vla-insertrows
Obj_Table
(1+ (setq nrow (vla-get-rows Obj_Table)))
3;Altura de fila Datos
1
)
(vla-setcelltextheight Obj_Table nrow 0 1.2);Altura text. celd ITEM
(vla-setCellAlignment Obj_Table nrow 0 5)
(vla-setCellValue Obj_Table nrow 0 (car j))
(vla-setCellValue Obj_Table nrow 1 (cadr j))
(vla-settext Obj_Table nrow 2 (caddr j)) ;area
(vla-setcelltextheight Obj_Table nrow 1 1.2);Altura text. celd DESCRIPCION
(vla-setcelltextheight Obj_Table nrow 2 1.2);Altura text. celd AREA
(vla-setCellAlignment Obj_Table nrow 1 5)
(vla-setCellAlignment Obj_Table nrow 2 5)
(vla-setcellformat Obj_Table nrow 2 "%lu2%pr2%ps[, m2]")
)
(vla-setColumnWidth Obj_Table 1 20);100
(vla-setColumnWidth Obj_Table 2 20);100
)
)
(princ)
)
(defun Get-ObjectIDx64 (obj / util)
(setq util (vla-get-Utility (vla-get-activedocument (vlax-get-acad-object))))
(if (> (vl-string-search "x64" (getvar "platform")) 0)
(vlax-invoke-method util "GetObjectIdString" obj :vlax-False)
(itoa (vla-get-Objectid obj))
)
)
Carlos Calderon G

>Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.