tengo un problema con mis secciones me sale mis secciones por medio del civil cad quisiera saber si ay un lips o rutina que alguino sepa para poder sacar area de corte y relleno como le muestro en la foto
les adjunto el archivo cad y les agradesco ante mano lo que yo quier es una rutina o lips p solucion que me permita sacar el area de relleno como el corte sin la necesidad y que mi dibujo este achurado como se ve en la foto tambien adjunto el archivo cad
tengo un problema con mis secciones me sale mis secciones por medio del civil cad quisiera saber si ay un lips o rutina que alguino sepa para poder sacar area de corte y relleno como le muestro en la foto
les adjunto el archivo cad y les agradesco ante mano lo que yo quier es una rutina o lips p solucion que me permita sacar el area de relleno como el corte sin la necesidad y que mi dibujo este achurado como se ve en la foto tambien adjunto el archivo cad
Revisa el siguiente link, y descarga la rutina.
https://www.devcadlisp.com/rutinas/rutina-para-obtener-areas-a-partir-de-sombreados-de-secciones/
Revisa el siguiente link, y descarga la rutina.
https://www.devcadlisp.com/rutinas/rutina-para-obtener-areas-a-partir-de-sombreados-de-secciones/
Te envio el codigo lisp, para que puedas usarlo. ten en cuenta que es necesario tener cada hatch de area de corte y de relleno independiente en todas las secciones para que pueda funcionar.
;;Autor Edwin.Saez;;
(defun c:AreasCorteRelleno ()
;; Seleccionar el área de corte (hatch)
(prompt "\nSeleccione el área de corte (hatch): ")
(setq corte-hatch (car (entsel)))
(setq corte-area (vlax-get (vlax-ename->vla-object corte-hatch) 'Area))
;; Seleccionar el área de relleno (hatch)
(prompt "\nSeleccione el área de relleno (hatch): ")
(setq relleno-hatch (car (entsel)))
(setq relleno-area (vlax-get (vlax-ename->vla-object relleno-hatch) 'Area))
;; Seleccionar un punto para colocar el texto
(prompt "\nSeleccione un punto para colocar el texto: ")
(setq texto-punto (getpoint))
;; Formatear los textos con las áreas
(setq texto-corte (strcat "Area de Corte = " (rtos corte-area 2 2) " m2"))
(setq texto-relleno (strcat "Area de Relleno = " (rtos relleno-area 2 2) " m2"))
;; Crear el texto en AutoCAD usando el estilo de texto "MtXpl_Freestyle_Scri"
(foreach texto-datos (list (list texto-corte 1) (list texto-relleno 108))
(setq texto (car texto-datos))
(setq color (cadr texto-datos))
(entmake
(list
(cons 0 "TEXT")
(cons 10 texto-punto)
(cons 40 0.5) ; Tamaño del texto
(cons 1 texto)
(cons 7 "MtXpl_Freestyle_Scri") ; Estilo de texto
(cons 8 "0") ; Capa
(cons 62 color) ; Color del texto
)
)
;; Ajustar la posición del siguiente texto
(setq texto-punto (list (car texto-punto) (- (cadr texto-punto) 1.0) (caddr texto-punto)))
)
(princ)
)
(princ "\nComando 'AreasCorteRelleno'")
(princ)
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.
Te envio el codigo lisp, para que puedas usarlo. ten en cuenta que es necesario tener cada hatch de area de corte y de relleno independiente en todas las secciones para que pueda funcionar.
;;Autor Edwin.Saez;;
(defun c:AreasCorteRelleno ()
;; Seleccionar el área de corte (hatch)
(prompt "\nSeleccione el área de corte (hatch): ")
(setq corte-hatch (car (entsel)))
(setq corte-area (vlax-get (vlax-ename->vla-object corte-hatch) 'Area))
;; Seleccionar el área de relleno (hatch)
(prompt "\nSeleccione el área de relleno (hatch): ")
(setq relleno-hatch (car (entsel)))
(setq relleno-area (vlax-get (vlax-ename->vla-object relleno-hatch) 'Area))
;; Seleccionar un punto para colocar el texto
(prompt "\nSeleccione un punto para colocar el texto: ")
(setq texto-punto (getpoint))
;; Formatear los textos con las áreas
(setq texto-corte (strcat "Area de Corte = " (rtos corte-area 2 2) " m2"))
(setq texto-relleno (strcat "Area de Relleno = " (rtos relleno-area 2 2) " m2"))
;; Crear el texto en AutoCAD usando el estilo de texto "MtXpl_Freestyle_Scri"
(foreach texto-datos (list (list texto-corte 1) (list texto-relleno 108))
(setq texto (car texto-datos))
(setq color (cadr texto-datos))
(entmake
(list
(cons 0 "TEXT")
(cons 10 texto-punto)
(cons 40 0.5) ; Tamaño del texto
(cons 1 texto)
(cons 7 "MtXpl_Freestyle_Scri") ; Estilo de texto
(cons 8 "0") ; Capa
(cons 62 color) ; Color del texto
)
)
;; Ajustar la posición del siguiente texto
(setq texto-punto (list (car texto-punto) (- (cadr texto-punto) 1.0) (caddr texto-punto)))
)
(princ)
)
(princ "\nComando 'AreasCorteRelleno'")
(princ)
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.
@LEO_SCORPIO24 , por si te sirve de ayuda, no es necesaria rutina Lisp alguna. Las mismas propiedades físicas del sombreado te ofrecen diversos datos que pueden ser de utilidad, Uno de ellos es el área cubierta por el achurado:
@LEO_SCORPIO24 , por si te sirve de ayuda, no es necesaria rutina Lisp alguna. Las mismas propiedades físicas del sombreado te ofrecen diversos datos que pueden ser de utilidad, Uno de ellos es el área cubierta por el achurado:
@LEO_SCORPIO24 , por si te sirve de ayuda, no es necesaria rutina Lisp alguna. Las mismas propiedades físicas del sombreado te ofrecen diversos datos que pueden ser de utilidad, Uno de ellos es el área cubierta por el achurado:
@LEO_SCORPIO24 , por si te sirve de ayuda, no es necesaria rutina Lisp alguna. Las mismas propiedades físicas del sombreado te ofrecen diversos datos que pueden ser de utilidad, Uno de ellos es el área cubierta por el achurado:
Estimado @Edwin.Saez
Simplemente, Genial...!!!!
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.
Estimado @Edwin.Saez
Simplemente, Genial...!!!!
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.
Saludos @LEO_SCORPIO24
Aquí te adjunto una rutina que he creado para dar respuesta a tu consulta. Probado para el archivo adjunto. Espero que te sea de ayuda. Cualquier consulta sobre la rutina estaré atento, con mucho gusto.
P.d. Antes de aplicarla, debes de completar el área de sombreado para el Corte....
;-----------------------------------------------------------------------------------------
;;;Acr:Routine Autolisp by calderg1000@gmail.com; V01 22-05-24
;;;Creada para dar respuesta en el foro de ACAD en español
;;;Calcula el area de corte y relleno de las secciones transversales en el archivo adjunto
;;;___
(defun c:Acr (/ sl ln j cg lp sh i a la ac ar pt k)
(princ "\nSeleccione las Secciones para calcular el A_corte y A_Relleno...")
(setq sl (ssget '((0 . "line") (8 . "C-ROAD-PROF-TTLB"))))
(initcommandversion)
(command "_.join" sl "")
(setq ln
(vl-remove-if
'listp
(mapcar
'cadr
(ssnamex (ssget "_a" '((0 . "lwpolyline") (8 . "C-ROAD-PROF-TTLB"))))
)
)
)
(foreach j ln
(setq jv (vlax-ename->vla-object j)
cg (osnap (vlax-curve-getStartPoint j) "gcen")
)
(setq lp
(mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget j)))
)
(setq sh (ssget "_wp" lp '((0 . "hatch") (8 . "c?"))))
(repeat (setq i (sslength sh))
(setq a (vlax-get (vlax-ename->vla-object (ssname sh (setq i (1- i)))) 'area)
la (cons a la)
)
)
(setq ac (strcat "Area de Corte= " (rtos (car la) 2 2))
ar (strcat "Area de Relleno= " (rtos (cadr la) 2 2))
pt (mapcar '- cg '(0. 3.3 0.))
)
(foreach k (list ac ar)
(entmakex (list '(0 . "text")
(cons 10 pt)
(cons 1 k)
(cons 7 "MtXpl_Freestyle_Scri")
(cons 40 0.5)
(cons 72 1)
(cons 11 pt)
)
)
(setq pt (mapcar '- pt '(0. 1.0 0.)))
)
)
)
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.
Saludos @LEO_SCORPIO24
Aquí te adjunto una rutina que he creado para dar respuesta a tu consulta. Probado para el archivo adjunto. Espero que te sea de ayuda. Cualquier consulta sobre la rutina estaré atento, con mucho gusto.
P.d. Antes de aplicarla, debes de completar el área de sombreado para el Corte....
;-----------------------------------------------------------------------------------------
;;;Acr:Routine Autolisp by calderg1000@gmail.com; V01 22-05-24
;;;Creada para dar respuesta en el foro de ACAD en español
;;;Calcula el area de corte y relleno de las secciones transversales en el archivo adjunto
;;;___
(defun c:Acr (/ sl ln j cg lp sh i a la ac ar pt k)
(princ "\nSeleccione las Secciones para calcular el A_corte y A_Relleno...")
(setq sl (ssget '((0 . "line") (8 . "C-ROAD-PROF-TTLB"))))
(initcommandversion)
(command "_.join" sl "")
(setq ln
(vl-remove-if
'listp
(mapcar
'cadr
(ssnamex (ssget "_a" '((0 . "lwpolyline") (8 . "C-ROAD-PROF-TTLB"))))
)
)
)
(foreach j ln
(setq jv (vlax-ename->vla-object j)
cg (osnap (vlax-curve-getStartPoint j) "gcen")
)
(setq lp
(mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget j)))
)
(setq sh (ssget "_wp" lp '((0 . "hatch") (8 . "c?"))))
(repeat (setq i (sslength sh))
(setq a (vlax-get (vlax-ename->vla-object (ssname sh (setq i (1- i)))) 'area)
la (cons a la)
)
)
(setq ac (strcat "Area de Corte= " (rtos (car la) 2 2))
ar (strcat "Area de Relleno= " (rtos (cadr la) 2 2))
pt (mapcar '- cg '(0. 3.3 0.))
)
(foreach k (list ac ar)
(entmakex (list '(0 . "text")
(cons 10 pt)
(cons 1 k)
(cons 7 "MtXpl_Freestyle_Scri")
(cons 40 0.5)
(cons 72 1)
(cons 11 pt)
)
)
(setq pt (mapcar '- pt '(0. 1.0 0.)))
)
)
)
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.