Anuncios
Atención para clientes sin autenticación multifactor o inicio de sesión único: la verificación OTP se implementará en abril de 2025. Lee todo al respecto aquí.

Crear tabla de superficies

jose_manuel_garcia_garcia
Enthusiast

Crear tabla de superficies

jose_manuel_garcia_garcia
Enthusiast
Enthusiast

Buenas a todos, 

 

Necesito crear tablas de superficies de forma automática. De tal forma que selecciones varias polilineas y automaticamente me produzca la tabla. Mi interés es que todas esas superficies sean campos, parra que cuando modifica alguna de esas polilineas, se me modifiquen todas las demás.

 

Gracias de antemano!

0 Me gusta
Responder
Soluciones aceptadas (2)
1.414 Vistas
4 Respuestas
Respuestas (4)

Valentin_CAD
Mentor
Mentor

@jose_manuel_garcia_garcia ,

 

 

Es posible que desee considerar el uso del comando DataExtraction:: 

 

O quizás encuentre algo en la tienda de aplicaciones de Autodesk: 



Select the "Mark as Solution" if my post solves your issue or answers your question.

Seleccione "Marcar como solución" si mi publicación resuelve o responde a su pregunta.


Emilio Valentin

jose_manuel_garcia_garcia
Enthusiast
Enthusiast

Me temo que no me satisface... hay programas como Solicad que pueden hacerlo: generar una tabla de superficies seleccionando todas las polilineas de las que quieres sacar las superficies. 

 

De todos modos agradezco su interés por responderme.

0 Me gusta

calderg1000
Mentor
Mentor
Solución aceptada

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
EESignature
>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.

joaquim.moral
Community Manager
Community Manager
Solución aceptada

Hola @calderg1000,

muchas gracias por compartir la información en el foro! De esta manera ayudas a usuarios con duda similares.

 

Si os ha sido útil, os animo a que nos dejéis un like en el post 🙂

 

Hasta pronto,

¿Te ha parecido útil este post? ¡Deja un like!
¿Tu pregunta ha sido solucionada? Selecciona 'Marcar como solución' y ayuda a las demás a encontrar fácilmente la información.

You found a post helpful? Then feel free to give likes to these posts!
Your question got successfully answered? Then just click on the 'Mark as solution'


Joaquim Moral
Community Manager
Spanish Community

0 Me gusta