Hola,
Estoy trabajando en el diseño de una nave logística.
En cada espacio de la nave tengo zonas, cada zona es una capa. Ejemplos: zona de descarga, zona de carga, zona de separación.
En cada capa tengo varios rectángulos que me identifican áreas.
Quiero saber los metros cuadrados totales de cada capa
Me gustaría descargarme una tabla con esta información o verlo de forma rápida.
Muchas gracias por la ayuda.
Un saludo
RFG
Hola,
Estoy trabajando en el diseño de una nave logística.
En cada espacio de la nave tengo zonas, cada zona es una capa. Ejemplos: zona de descarga, zona de carga, zona de separación.
En cada capa tengo varios rectángulos que me identifican áreas.
Quiero saber los metros cuadrados totales de cada capa
Me gustaría descargarme una tabla con esta información o verlo de forma rápida.
Muchas gracias por la ayuda.
Un saludo
RFG
Saludos @Anonymous y bienvenida a la comunidad
Una forma fácil sin tener que redibujar o crear bloques dinámicos con atributos o herramientas list, es generar una tabla con el comando _eattext (en ingles), son 8 pasos
1- Te pregunta si deseas crear, usar o editar un archivo de extracción.
Al darle siguiente después de indicar tu opción salta una ventana secundaria que te pregunta donde y como se llama el archivo de extracción de datos.
2- Pide si deseas seleccionar todo el archivo o si deseas seleccionar manualmente.
3- Muestra una lista con todos los elementos seleccionados para que especifiques si realmente son todos, si son bloques, y si tienen atributos.
4-Te muestra todas las propiedades por características de los elementos para que selecciones las propiedades a evaluar y mostrar en tabla.
5- Hace una muestra preliminar de la tabla, para que modifiques el orden de las columnas, si quieres agregar una columna, alguna formula en una celda y otras características.
6- Como quieres obtener y mostrar la tabla.
7- Si escoges insertar la tabla en el dwg te pide el tipo de tabla que deseas en pantalla, si solo elijes hacerlo en un archivo externo se salta este paso.
8- Te pide verificar que estés segura de el tipo de extracción para finalizar
En tu caso puedes elegir en las categorías general y geometría, y en propiedades capa y área.
A futuro puedes hacer bloques dinámicos, agregarles campos de textos (Field: https://knowledge.autodesk.com/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2020/ENU/AutoCAD-Core/files/GUID-B9ADAE6A-2DD1-4C44-B126-CF3FF92EBC68-htm.html ), atributos, etc etc. para que el dato lo tengas siempre visible y no tengas que estar generando o editando la tabla de extracción, o incluso hacer una combinación de ambos, todo esta en como desees trabajar y aprovechar las herramientas del programa. Espero te funcione para lo que deseas y suerte
Si me comentario da solución a tu consulta, márcala como solución para que ayudes a otros usuarios a que encuentren más rápido la solución en futuras consultas a este tema. De lo contrario no dejes de comentar como vas con tu consulta.
Saludos @Anonymous y bienvenida a la comunidad
Una forma fácil sin tener que redibujar o crear bloques dinámicos con atributos o herramientas list, es generar una tabla con el comando _eattext (en ingles), son 8 pasos
1- Te pregunta si deseas crear, usar o editar un archivo de extracción.
Al darle siguiente después de indicar tu opción salta una ventana secundaria que te pregunta donde y como se llama el archivo de extracción de datos.
2- Pide si deseas seleccionar todo el archivo o si deseas seleccionar manualmente.
3- Muestra una lista con todos los elementos seleccionados para que especifiques si realmente son todos, si son bloques, y si tienen atributos.
4-Te muestra todas las propiedades por características de los elementos para que selecciones las propiedades a evaluar y mostrar en tabla.
5- Hace una muestra preliminar de la tabla, para que modifiques el orden de las columnas, si quieres agregar una columna, alguna formula en una celda y otras características.
6- Como quieres obtener y mostrar la tabla.
7- Si escoges insertar la tabla en el dwg te pide el tipo de tabla que deseas en pantalla, si solo elijes hacerlo en un archivo externo se salta este paso.
8- Te pide verificar que estés segura de el tipo de extracción para finalizar
En tu caso puedes elegir en las categorías general y geometría, y en propiedades capa y área.
A futuro puedes hacer bloques dinámicos, agregarles campos de textos (Field: https://knowledge.autodesk.com/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2020/ENU/AutoCAD-Core/files/GUID-B9ADAE6A-2DD1-4C44-B126-CF3FF92EBC68-htm.html ), atributos, etc etc. para que el dato lo tengas siempre visible y no tengas que estar generando o editando la tabla de extracción, o incluso hacer una combinación de ambos, todo esta en como desees trabajar y aprovechar las herramientas del programa. Espero te funcione para lo que deseas y suerte
Si me comentario da solución a tu consulta, márcala como solución para que ayudes a otros usuarios a que encuentren más rápido la solución en futuras consultas a este tema. De lo contrario no dejes de comentar como vas con tu consulta.
@Anonymous
Una forma rápida de obtener la información que necesitas, podría ser usando el siguiente lisp que te adjuntare.
(créditos a Lee Mac)
1- comando "appload", carga el archivo que adjuntaré
2- comando A2F (Te pedirá una selección. Selecciona todos los objetos cerrados que necesitas obtener el área)
3- indicar un punto donde se colocar el texto con la información total del área.
*Tener en cuenta que este texto creado, de fácil y rápida visualización, es un "Text Field"; si modificas en área algún objeto de la selección, bastaría con regenerar el dwg para actualizar el área total.
**Si generas un nuevo objeto dentro que desees contabilizar dentro de la capa que necesitas, seria cuestión de volver a aplicar el comando A2F, para obtener la nueva área global con la nueva selección de objetos.
LinkedIn / AutoCAD Certified Professional
Si mi respuesta fue una solución para usted, por favor seleccione "Aceptar Solución", para que también sirva a otro usuarios.
@Anonymous
Una forma rápida de obtener la información que necesitas, podría ser usando el siguiente lisp que te adjuntare.
(créditos a Lee Mac)
1- comando "appload", carga el archivo que adjuntaré
2- comando A2F (Te pedirá una selección. Selecciona todos los objetos cerrados que necesitas obtener el área)
3- indicar un punto donde se colocar el texto con la información total del área.
*Tener en cuenta que este texto creado, de fácil y rápida visualización, es un "Text Field"; si modificas en área algún objeto de la selección, bastaría con regenerar el dwg para actualizar el área total.
**Si generas un nuevo objeto dentro que desees contabilizar dentro de la capa que necesitas, seria cuestión de volver a aplicar el comando A2F, para obtener la nueva área global con la nueva selección de objetos.
LinkedIn / AutoCAD Certified Professional
Si mi respuesta fue una solución para usted, por favor seleccione "Aceptar Solución", para que también sirva a otro usuarios.
Estimada @Anonymous
Para calcular areas en CAD, tienes el procedimiento típico con el comando AREA y seleccionando la polilinea, te dará el área y el perímetro. Si requieres el área de varias polilineas cerradas, igual con el comando AREA, ADD AREA, OBJECT, luego seleccionar cada uno de las polilineas una a la vez y ENTER para finalizar, te dará el área acumulada total.
Cuando tienes una buena cantidad de información y el procedimiento lo debes hacer muchas veces, entonces si es necesario aplicar una rutina Autolisp que te optimicen los procedimientos y en este caso pueda calcular el área de todos los objetos dentro de una capa determinada con una sola orden.
Tratare de adaptar uno de los muchas rutinas que tengo para que se ajuste a lo que requieres y lo adjuntare.
Saludos.
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.
Estimada @Anonymous
Para calcular areas en CAD, tienes el procedimiento típico con el comando AREA y seleccionando la polilinea, te dará el área y el perímetro. Si requieres el área de varias polilineas cerradas, igual con el comando AREA, ADD AREA, OBJECT, luego seleccionar cada uno de las polilineas una a la vez y ENTER para finalizar, te dará el área acumulada total.
Cuando tienes una buena cantidad de información y el procedimiento lo debes hacer muchas veces, entonces si es necesario aplicar una rutina Autolisp que te optimicen los procedimientos y en este caso pueda calcular el área de todos los objetos dentro de una capa determinada con una sola orden.
Tratare de adaptar uno de los muchas rutinas que tengo para que se ajuste a lo que requieres y lo adjuntare.
Saludos.
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.
Estimada @Anonymous
Aqui adjunto la siguiente rutina que también te puede ser de ayuda.
Particularmente creo que el método mostrado por el compañero @fernando.prado es muy bueno y practico solo hay que seguir los pasos indicados, también lo puedes hacer digitando DATAEXTRACTION. Sinceramente no me explico porque se puede acceder a lo mismo desde diferentes opciones de Comando...?
Bueno me respondo, al parecer en las versiones anteriores con EATTEXT, se podía acceder a la extracción de atributos de un bloque; pero en las versiones mas recientes ya accede a la extracción de Datos al igual que DATAEXTRACTION
https://knowledge.autodesk.com/es/community/screencast/b0b0541f-472a-47c5-a5d7-43ffa70b08ff
Saludos.
;;;Calcula el area y el perimetro de la polilinea seleccionada y lo inserta en tabla
;;;Editado or Calderg1000: 15-02-21, para dar respuesta en el foro Acad en Español; Inserta la numeracion del poligono y la tercera columna de datos (Item,Area, Longitud)
;;;-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
(defun c:AreaxLay(/ s x y r doc curspace rowheight pt1 ini Mylayer numrows numcolumns colwidth objtable curspace minPt maxPt)
;; Tharwat 26. 08. 2015 ;
;; mods by BIGAL 29.08.2015 now as table
;; Editado por Ccg, 15-02-21 Cuadro de areas por Capa
(vl-load-com)
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(setq curspace (vla-get-modelspace doc))
(setq pt1 (vlax-3d-point (getpoint "\nInsertar Pto. superior Izquierda de Tabla: ")))
(setq ini(getint "\nIngrese Valor,Inicio de numeracion: "))
(setq MyLayer(cdr(assoc 8 (entget(car(entsel "\nSeleccione Objeto Para Obtener el Nombre de la Capa...:"))))))
(princ "\nSeleccione Polilineas para exportar Area a Tabla :")
(setq s (ssget "_All" (list '(0 . "LWPOLYLINE")(cons 8 MyLayer))))
(if (/= s nil)
(progn
; now do table
(setq numrows (+ 2 (sslength s)))
(setq numcolumns 3);numero de columnas
(setq rowheight 5);altura de fila
(setq colwidth 25);ancho de columna
(setq objtable (vla-addtable curspace pt1 numrows numcolumns rowheight colwidth))
(vla-settext objtable 0 0 "DATOS AREAS")
(vla-setcolumnwidth objtable 0 10)
(vla-setcolumnwidth objtable 1 25)
(vla-setcolumnwidth objtable 1 25)
(vla-settext objtable 1 0 "N°");titulo fila1 col 0
(vla-settext objtable 1 1 "Area (m2)");titulo fila1 col 1
(vla-settext objtable 1 2 "Perim. (m)");titulo fila1 col 2
(vla-SetTextHeight Objtable (+ acDataRow acHeaderRow acTitleRow) 2.5)
(vla-SetAlignment Objtable acDataRow acMiddleCenter)
(setq x ini);;;numero de inicio del objeto polyline
(SETQ Y 2)
(setq r -1)
;((lambda (r / e)
(while (setq e (vlax-ename->vla-object(ssname s (setq r (1+ r)))))
;;;Calculo del punto de insercion (interior de polylinea)
(vla-getboundingbox e 'minPt 'maxPt)
(setq minPt (vlax-safeArray->list minPt))
(setq maxPt (vlax-safeArray->list maxPt))
(vla-settext objtable Y 0 (rtos x 2 0));Asignacion del numero de polilinea seleccionada en la celda
(vla-settext objtable Y 1 (rtos (vla-get-area e)2 2));Asignacion del Valor del area de la Pol. seleccionada en la celda
(vla-settext objtable Y 2 (rtos (vla-get-length e)2 2))
(vl-cmdf "text" (mapcar '* (mapcar '+ minPt maxPt) '(0.5 0.5)) 0.8 0 (rtos x 2 0));aqui configurar la altra del texto en el int. de polilineas
(setq x (1+ x ))
(setq y (1+ Y ))
); while
; )) ;lambda
) ;progn
(alert "No ha seleccionado ninguna Polilínea.")
) ; if
(princ)
) ; defun
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.
Estimada @Anonymous
Aqui adjunto la siguiente rutina que también te puede ser de ayuda.
Particularmente creo que el método mostrado por el compañero @fernando.prado es muy bueno y practico solo hay que seguir los pasos indicados, también lo puedes hacer digitando DATAEXTRACTION. Sinceramente no me explico porque se puede acceder a lo mismo desde diferentes opciones de Comando...?
Bueno me respondo, al parecer en las versiones anteriores con EATTEXT, se podía acceder a la extracción de atributos de un bloque; pero en las versiones mas recientes ya accede a la extracción de Datos al igual que DATAEXTRACTION
https://knowledge.autodesk.com/es/community/screencast/b0b0541f-472a-47c5-a5d7-43ffa70b08ff
Saludos.
;;;Calcula el area y el perimetro de la polilinea seleccionada y lo inserta en tabla
;;;Editado or Calderg1000: 15-02-21, para dar respuesta en el foro Acad en Español; Inserta la numeracion del poligono y la tercera columna de datos (Item,Area, Longitud)
;;;-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
(defun c:AreaxLay(/ s x y r doc curspace rowheight pt1 ini Mylayer numrows numcolumns colwidth objtable curspace minPt maxPt)
;; Tharwat 26. 08. 2015 ;
;; mods by BIGAL 29.08.2015 now as table
;; Editado por Ccg, 15-02-21 Cuadro de areas por Capa
(vl-load-com)
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(setq curspace (vla-get-modelspace doc))
(setq pt1 (vlax-3d-point (getpoint "\nInsertar Pto. superior Izquierda de Tabla: ")))
(setq ini(getint "\nIngrese Valor,Inicio de numeracion: "))
(setq MyLayer(cdr(assoc 8 (entget(car(entsel "\nSeleccione Objeto Para Obtener el Nombre de la Capa...:"))))))
(princ "\nSeleccione Polilineas para exportar Area a Tabla :")
(setq s (ssget "_All" (list '(0 . "LWPOLYLINE")(cons 8 MyLayer))))
(if (/= s nil)
(progn
; now do table
(setq numrows (+ 2 (sslength s)))
(setq numcolumns 3);numero de columnas
(setq rowheight 5);altura de fila
(setq colwidth 25);ancho de columna
(setq objtable (vla-addtable curspace pt1 numrows numcolumns rowheight colwidth))
(vla-settext objtable 0 0 "DATOS AREAS")
(vla-setcolumnwidth objtable 0 10)
(vla-setcolumnwidth objtable 1 25)
(vla-setcolumnwidth objtable 1 25)
(vla-settext objtable 1 0 "N°");titulo fila1 col 0
(vla-settext objtable 1 1 "Area (m2)");titulo fila1 col 1
(vla-settext objtable 1 2 "Perim. (m)");titulo fila1 col 2
(vla-SetTextHeight Objtable (+ acDataRow acHeaderRow acTitleRow) 2.5)
(vla-SetAlignment Objtable acDataRow acMiddleCenter)
(setq x ini);;;numero de inicio del objeto polyline
(SETQ Y 2)
(setq r -1)
;((lambda (r / e)
(while (setq e (vlax-ename->vla-object(ssname s (setq r (1+ r)))))
;;;Calculo del punto de insercion (interior de polylinea)
(vla-getboundingbox e 'minPt 'maxPt)
(setq minPt (vlax-safeArray->list minPt))
(setq maxPt (vlax-safeArray->list maxPt))
(vla-settext objtable Y 0 (rtos x 2 0));Asignacion del numero de polilinea seleccionada en la celda
(vla-settext objtable Y 1 (rtos (vla-get-area e)2 2));Asignacion del Valor del area de la Pol. seleccionada en la celda
(vla-settext objtable Y 2 (rtos (vla-get-length e)2 2))
(vl-cmdf "text" (mapcar '* (mapcar '+ minPt maxPt) '(0.5 0.5)) 0.8 0 (rtos x 2 0));aqui configurar la altra del texto en el int. de polilineas
(setq x (1+ x ))
(setq y (1+ Y ))
); while
; )) ;lambda
) ;progn
(alert "No ha seleccionado ninguna Polilínea.")
) ; if
(princ)
) ; defun
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.
¿No encontraste lo que buscabas? Pregúntale a la comunidad o comparte tus conocimientos.