Comunidad
AutoCAD - Todos los productos - Español
Bienvenido/a al foro de los productos de la familia AutoCAD de Autodesk! Comparte tu conocimiento, haz preguntas y explora los temas populares de AutoCAD.
cancelar
Mostrando los resultados de 
Mostrar  solo  | Buscar en lugar de 
Quiere decir: 

Crear tabla de superficies

4 RESPUESTAS 4
RESUELTAS
Responder
Mensaje 1 de 5
jose_manuel_garcia_garcia
641 Vistas, 4 Respuestas

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

Crear tabla de superficies

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!

4 RESPUESTAS 4
Mensaje 2 de 5

Valentin-WSP
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: 



Please select the "Accept as Solution" button if my post solves your issue or answers your question.


Emilio Valentin

@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: 



Please select the "Accept as Solution" button if my post solves your issue or answers your question.


Emilio Valentin
Mensaje 3 de 5

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

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.

Mensaje 4 de 5

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.

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.

Mensaje 5 de 5
joaquim.moral
en respuesta a: calderg1000

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

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

¿No encontraste lo que buscabas? Pregúntale a la comunidad o comparte tus conocimientos.

Publicar en los foros  

Autodesk Design & Make Report

New events in the Spanish Community