Obtener datos de secciones en autocad

Serian tan amables de orientarme, tengo que sacar datos de unas secciones que tengo en autocad, como son distancia y elevaciones, deacuerdo al eje, osea obtener distancia negativas, su elevacion, distancia positivas, y elevacion, tengo una rutina lisp, el problema es que tengo que ir seleccionando una a una cada seccion (tengo que seleccionar el punto del eje, introduciendo la elevacion que tiene el eje, el cadenamiento y por ultimo seleccionar la linea de la que necesito la informacion) y así, cada seccion y una a una, ¿la pregunta sería como podría sacar los datos sin tener que ir una a una?,

La rutina con la que cuento es la siguiente:

(DEFUN C:EPI ()
  (if (= (setq cmd0 (getvar "cmdecho")) 1)
    (Setvar "cmdecho" 0)
  )
  (COMMAND "._OSMODE" "32")
;;;  Obtener los datos del eje de inicio en X y Y
  (setq    ini (getpoint "\n Indique el eje de inicio x=0.00 y=  "
        )
  )
  (Setq y_dato (getreal
         "\n¿Cuánto es el valor en Y?: "
           )
  )
  (Setq name (getstring
           "\n¿Cuánto es el nombre del archivo?: "
         )
  )
                    ;
  (Setq X (car ini))
  (Setq Y (cadr ini))
  ;;
  (setq fajr (open (strcat "C:\\datos\\" name ".CSV") "w"))
  ;; escritura de archivo (para borrar los datos existentes)
  (Close fajr)
;;;;    Obtener datos de la polilinea  :::::::::::

  (setq capa "CVL_SECT")
                    ;  
  (Setq ss (ssget (list (cons 8 capa))))
  (Setq i 0
lista nil
  )
                    ;
  (Setq r2 (sslength ss))
                    ; Inicio de repeat
  (Repeat (sslength ss)
    (Setq info (entget (ssname ss i))
    )
  )
                    ;
;;;  
  (setq fajr (open (strcat "C:\\datos\\" name ".CSV") "a"))
  ;;   escritura de archivo  (para guardar los datos)
                    ; inicio de while
  (while
                    ;
    (if
      (/= (caar info) 10)
                    ;///////////////////////////                True  
       (Progn
(setq info (cdr info))
       )
                    ;/////////////////////////////            nil              
       (Progn
(setq nodo (cdar info))
     (Setq pt1_x (car nodo))
     (Setq Xreal (- pt1_x X))
     (Setq pt1_y (cadr nodo))
     (setq Yreal (+ (- pt1_y Y) y_dato))
     ;; escritura de datos
     (setq h (list Xreal Yreal))
;;;
(Write-line
(strcat (rtos (car h))
      ","
      (Rtos (last h))
  )
  Fajr
)
;;;
;;;     (print h fajr)
                    ; out
     (Setq info (cdr info))
       )
    )                    ; fin de IF
                    ; fin de repeat
  )
;;;  
  (close fajr)
;;;
  (Princ)
)
(prompt "\nNuevo comando EPI cargado")
;;;;;;;;;;;;;;;;;;;;;;;;;

adjunto imagen

2 respuestas

Respuesta
1

Para ello lo mejor que le puede aplicar es usar el civil 3d, el cual al momento de cubicar lo realiza de manera automática entre las secciones que usted necesite.

Respuesta
1

Tiene que ser una a una a menos que realices un macro para la selección múltiple automática.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas