Página 1 de 1

Calculo de areas, y volumenes (corte y relleno) en autocad

Publicado: Jue Ene 05, 2012 5:40 pm
por Antonio Valdez
Que tal

Quisiera saber si alguien tiene alguna rutina, programa o me puede ayudar con la teoria para poder calcular: areas y volumenes de corte y relleno de secciones transversales en autocad.

De antemano muchas gracias

Saludos

Re: Calculo de areas, y volumenes (corte y relleno) en autocad

Publicado: Vie Ene 06, 2012 12:02 am
por edward_jesus_
hay una aplicacion para autocad llamado civilcad que te puede ayudar con ello......................ahora yo veo un poco mas como hacer ese calculo con excel ya que tambien dibujas el perfil aqui te dejo una teoria muy buena de como hacerla sin el autocad espero sea util saludos

http://www.serbi.ula.ve/serbiula/libros ... /CAP-9.pdf

Re: Calculo de areas, y volumenes (corte y relleno) en autocad

Publicado: Vie Ene 06, 2012 11:58 am
por Antonio Valdez
Muchas gracias Edward, es un buen aporte

Saludos

edward_jesus_ escribió:hay una aplicacion para autocad llamado civilcad que te puede ayudar con ello......................ahora yo veo un poco mas como hacer ese calculo con excel ya que tambien dibujas el perfil aqui te dejo una teoria muy buena de como hacerla sin el autocad espero sea util saludos

http://www.serbi.ula.ve/serbiula/libros ... /CAP-9.pdf

Re: Calculo de areas, y volumenes (corte y relleno) en autocad

Publicado: Sab Mar 10, 2012 11:44 am
por netop77
hola hice una arutina de otras rutinas de lisp para obtener las areas de las secciones hechas con autocad, le picas a las zonas donde quieres obtener las areas y despues se pega auna tablas q es un bloque con atributos y de ahi se exporta a exel se pueden tener capas de pedraplen, terraplen, corte, subyacente, subrasante si la quieres me avisas por aqui.

Re: Calculo de areas, y volumenes (corte y relleno) en autocad

Publicado: Sab Mar 10, 2012 11:44 am
por netop77
hola hice una arutina de otras rutinas de lisp para obtener las areas de las secciones hechas con autocad, le picas a las zonas donde quieres obtener las areas y despues se pega auna tablas q es un bloque con atributos y de ahi se exporta a exel se pueden tener capas de pedraplen, terraplen, corte, subyacente, subrasante si la quieres me avisas por aqui.

Re: Calculo de areas, y volumenes (corte y relleno) en autocad

Publicado: Sab Mar 10, 2012 11:44 am
por netop77
hola hice una arutina de otras rutinas de lisp para obtener las areas de las secciones hechas con autocad, le picas a las zonas donde quieres obtener las areas y despues se pega auna tablas q es un bloque con atributos y de ahi se exporta a exel se pueden tener capas de pedraplen, terraplen, corte, subyacente, subrasante si la quieres me avisas por aqui.

Re: Calculo de areas, y volumenes (corte y relleno) en autocad

Publicado: Sab Mar 10, 2012 11:44 am
por netop77
hola hice una arutina de otras rutinas de lisp para obtener las areas de las secciones hechas con autocad, le picas a las zonas donde quieres obtener las areas y despues se pega auna tablas q es un bloque con atributos y de ahi se exporta a exel se pueden tener capas de pedraplen, terraplen, corte, subyacente, subrasante si la quieres me avisas por aqui.

Re: Calculo de areas, y volumenes (corte y relleno) en autoc

Publicado: Sab Jun 09, 2012 10:02 am
por netop77
; Programa que permite obtener las areas a partir de polilineas en secciones
; Trabaja con AutoCAD versión 2006 ó superior
; Programa realizado POR ING. Benito Ernesto Gomez Flores ADAPTADO DEL LOS PROGRAMAS:
; Obtener las areas a partir de sombreados en secciones por Mario Torres Pejerrey
; PROGRAMA MODIFICACION DE ATRIBUTOS CREADO POR José Luís García Galán
; Este es un lisp en formato original, se puede ver el código fuente, la intención, es de que el código fuente
; pueda ser modificado y adaptado a la necesidad de cada usuario
; 2011

(defun c:axx (/ Blk Atribs)
(setq VersionAutoCAD (substr (getvar "ACADVER")1 4))
(setq VersionAutoCAD (atof VersionAutoCAD))
(if (>= VersionAutoCAD 16.2)
(progn
;Variables de inicio
(setvar "cmdecho" 0)
(setq AreaCorteTotal 0)
(setq AreaTerraplenTotal 0)
(setq AreaDespcTotal 0)
(setq AreaDesptTotal 0)
(setq AreaCccTotal 0)
(setq AreaCctTotal 0)
(setq AreaSubyacenteTotal 0)
(setq AreaSubrasanteTotal 0)
(setq AreaBasehidraulicaTotal 0)
(setq AreaConcretototal 0)
(setq AreaTaTotal 0)
(setq AreaTnTotal 0)
(setq AreaPedraplenTotal 0)

(setq CapaCorte "SombreadoCorte")
(setq CapaTerraplen "SombreadoTerraplen")
(setq CapaDespc "SombreadoDespc")
(setq CapaDespt "SombreadoDespt")
(setq CapaCcc "SombreadoCcc")
(setq CapaCct "SombreadoCct")
(setq CapaSubyacente "SombreadoSubyacente")
(setq CapaSubrasante "SombreadoSubrasante")
(setq CapaBasehidraulica "SombreadoBasehidraulica")
(setq CapaConcreto "SombreadoConcreto")
(setq CapaTa "SombreadoTa")
(setq CapaTn "SombreadoTn")
(setq CapaPedraplen "SombreadoPedraplen")

;Acciones
(princ "\nSeleccione los objetos a hallar las areas: ")
(setq entidades (ssget))
(setq nums (sslength entidades))

(setq n 0)

(repeat nums
(setq nt (ssname entidades n))
(setq TipoEntidad (cdr (assoc 0 (ENTGET nt))))

(cond
((= TipoEntidad "TEXT")
(setq Contenido (cdr (assoc 1 (ENTGET nt))))
(if (wcmatch Contenido "*+*")
(progn
(setq Progresiva (substr Contenido 1 10))
(if (not (null ProgresivaAnterior))
(progn
(if (= Progresiva ProgresivaAnterior)
(setq Progresiva (strcat (substr Contenido 1 10)"0000.0010000"))
)
)
)
)
)
)

((= TipoEntidad "HATCH")
(setq Capa (cdr (assoc 8 (ENTGET nt))))
(Cond
((= Capa CapaCorte)
(command "_area" "_o" nt)
(setq AreaCorte (getvar "area"))
(setq AreaCorteTotal (+ AreaCorteTotal AreaCorte))
)
((= Capa CapaTerraplen)
(command "_area" "_o" nt)
(setq AreaTerraplen (getvar "area"))
(setq AreaTerraplenTotal (+ AreaTerraplenTotal AreaTerraplen))
)
((= Capa CapaDespc)
(command "_area" "_o" nt)
(setq AreaDespc (getvar "area"))
(setq AreaDespcTotal (+ AreaDespcTotal AreaDespc))
)
((= Capa CapaDespt)
(command "_area" "_o" nt)
(setq AreaDespt (getvar "area"))
(setq AreaDesptTotal (+ AreaDesptTotal AreaDespt))
)
((= Capa CapaCcc)
(command "_area" "_o" nt)
(setq AreaCcc (getvar "area"))
(setq AreaCccTotal (+ AreaCccTotal AreaCcc))
)
((= Capa CapaCct)
(command "_area" "_o" nt)
(setq AreaCct (getvar "area"))
(setq AreaCctTotal (+ AreaCctTotal AreaCct))
)
((= Capa CapaSubyacente)
(command "_area" "_o" nt)
(setq AreaSubyacente (getvar "area"))
(setq AreaSubyacenteTotal (+ AreaSubyacenteTotal AreaSubyacente))
)
((= Capa CapaSubrasante)
(command "_area" "_o" nt)
(setq AreaSubrasante (getvar "area"))
(setq AreaSubrasanteTotal (+ AreaSubrasanteTotal AreaSubrasante))
)
((= Capa CapaBasehidraulica)
(command "_area" "_o" nt)
(setq AreaBasehidraulica (getvar "area"))
(setq AreaBasehidraulicaTotal (+ AreaBasehidraulicaTotal AreaBasehidraulica))
)
((= Capa CapaConcreto)
(command "_area" "_o" nt)
(setq AreaConcreto (getvar "area"))
(setq AreaConcretoTotal (+ AreaConcretoTotal AreaConcreto))
)
((= Capa CapaTa)
(command "_area" "_o" nt)
(setq AreaTa (getvar "area"))
(setq AreaTaTotal (+ AreaTaTotal AreaTa))
)
((= Capa CapaTn)
(command "_area" "_o" nt)
(setq AreaTn (getvar "area"))
(setq AreaTnTotal (+ AreaTnTotal AreaTn))
)
((= Capa CapaPedraplen)
(command "_area" "_o" nt)
(setq AreaPedraplen (getvar "area"))
(setq AreaPedraplenTotal (+ AreaPedraplenTotal AreaPedraplen))
)
)
)
)
(setq n (1+ n))
)

;; obtener los atributos de un bloque.
(command "_attdisp" "_ON")
(defun aux-get-atts (ObjBlk / lst)
(cond
((not ObjBlk))
((/= (vla-get-hasAttributes ObjBlk) :vlax-true))
((vl-catch-all-error-p
(setq lst (vl-catch-all-apply 'vlax-safeArray->list
(list (vlax-variant-value (vla-getAttributes ObjBlk))))))
(setq lst nil)
)
);c.cond
lst
);c.defun
(if (and (setq Blk (car (entsel "\nSeleccione Bloque con atributos: ")))
(setq Blk (vlax-ename->vla-object Blk)))
(if (= (vla-get-objectName blk) "AcDbBlockReference")
(if (setq Atribs (aux-get-atts Blk))
(progn
(vl-cmdf "_UNDO" "_BE")
(mapcar (function (lambda (Att / Tag)
(setq Tag (vla-get-tagstring Att))
(cond
((= Tag "PROGRESIVA")(vla-put-textstring Att Progresiva))
((= Tag "CORTE")(vla-put-textstring Att (rtos AreaCorteTotal 2 2)))
((= Tag "TERRAPLEN")(vla-put-textstring Att (rtos AreaTerraplenTotal 2 2)))
((= Tag "DPC")(vla-put-textstring Att (rtos AreaDespcTotal 2 2)))
((= Tag "DPT")(vla-put-textstring Att (rtos AreaDesptTotal 2 2)))
((= Tag "CCC")(vla-put-textstring Att (rtos AreaCccTotal 2 2)))
((= Tag "CCT")(vla-put-textstring Att (rtos AreaCctTotal 2 2)))
((= Tag "SUBYACENTE")(vla-put-textstring Att (rtos AreaSubyacenteTotal 2 2)))
((= Tag "SUBRASANTE")(vla-put-textstring Att (rtos AreaSubrasanteTotal 2 2)))
((= Tag "BASEHIDRAULICA")(vla-put-textstring Att (rtos AreaBasehidraulicaTotal 2 2)))
((= Tag "CONCRETO")(vla-put-textstring Att (rtos AreaConcretoTotal 2 2)))
((= Tag "TA")(vla-put-textstring Att (rtos AreaTaTotal 2 2)))
((= Tag "TN")(vla-put-textstring Att (rtos AreaTnTotal 2 2)))
((= Tag "PEDRAPLEN")(vla-put-textstring Att (rtos AreaPedraplenTotal 2 2)))
);c.cond
)) Atribs)
(setq ProgresivaAnterior Progresiva)
(command "_attdisp" "_N")
(setvar "cmdecho" 1)
(vl-cmdf "_UNDO" "_E")
);c.prg
(alert "\nEl Bloque seleccionado no contiene atributos.")
);c.if
(prompt "\nEl Objeto seleccionado no es Bloque...")
);c.if
);c.if
)
)
)

Re: Calculo de areas, y volumenes (corte y relleno) en autoc

Publicado: Mar Jun 26, 2012 12:11 pm
por netop77
archivo de ejemplo

Re: Calculo de areas, y volumenes (corte y relleno) en autocad

Publicado: Lun Dic 05, 2022 11:00 pm
por brianlyva
tendias el autolisp de las areas

Re: Calculo de areas, y volumenes (corte y relleno) en autocad

Publicado: Mar Dic 06, 2022 12:33 am
por brianlyva
PORFAVOR PASAR ELA UTOLISP LISTO YA QUE NO ME CORRE BIEN EN UN AUTOCAD 2018