Espero puedan ayudarme, soy principiante en autolisp y quisiera saber como puedo importar el contenido de un archivo txt a un archivo dwg, encontre un ejemplo pero por lo que pude ver se necesitan poner las coordenadas dentro del mismo archivo y en mi caso no sería así.
Este es el código:
Código:
;;;;;;;;;;;;;;;;;;;;;;LECTURA DE FICHERO DE PUNTOS ASCII;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;
;;;;;; El fichero ascii debe tener el formato: nº punto,X punto, Y punto, Z punto, Código
;;;;;; Los campos deben estar separados por comas.
;;;;;; Los puntos repetidos también los pone.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Selecciona archivo de puntos
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(DEFUN selec()
(SETQ fich (OPEN (GETFILED " Selecciona archivo ASCII" "c:\\" "txt;doc" 28) "r"))
(SETQ linea (read-line fich));Esta línea en realidad no pinta nada aquí. Lo que ocurre
;es que esta rutina está sacada de otra que además contempla la apertura de otro tipo de ficheros
;y la lectura de la primera línea indica qué tipo de fichero sería. Si queréis podéis implementar
;esta rutina con otras opciones.
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;Parámetros de configuración de los textos
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(DEFUN textos()
(SETQ dt (GETDIST "\nDistancia del punto al texto: "))
(SETQ at (GETDIST "\nAltura de los textos: "))
(COMMAND "_-style" "standard" "romans.shx" at "1" "0" "_N" "_N" "_N")
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Si el archivo es un ASCII
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(DEFUN asci (/ n1 n1tx longn1tx x1 x2 x2tx longx2tx y1 y2 y2tx longy2tx z1 z2 z2tx longz2tx c1)
;Como ya hemos leido la primera línea pasamos directamente a calcular el primer punto
;Primer punto
(setq n1 (atof linea))
(setq n1tx (rtos n1 2 0))
(setq longn1tx (strlen n1tx))
;;; X del punto 1
(setq x1 (substr linea (+ longn1tx 2)))
(setq x2 (atof x1))
(setq x2tx (rtos x2))
(setq longx2tx (strlen x2tx))
;;; Y del punto 1
(setq y1 (substr linea (+ longn1tx 1 longx2tx 2)))
(setq y2 (atof y1))
(setq y2tx (rtos y2))
(setq longy2tx (strlen y2tx))
;;; Z del punto 1
(setq z1 (substr linea (+ longn1tx 1 longx2tx 1 longy2tx 2)))
(setq z2 (atof z1))
(setq z2tx (rtos z2))
(setq longz2tx (strlen z2tx))
;;; Código del punto 1
(setq c1 (substr linea (+ longn1tx 1 longx2tx 1 longy2tx 1 longz2tx 2)))
;;;;; Resto de puntos
(WHILE (/= linea nil)
(SETQ linea (read-line fich))
(if (/= linea nil);Cuando se cumpla es que ya se habrá acabado el fichero
(progn
;;;numero del punto
(setq n1 (atof linea))
(setq n1tx (rtos n1 2 0))
(setq longn1tx (strlen n1tx))
;;; X del punto
(setq x1 (substr linea (+ longn1tx 2)))
(setq x2 (atof x1))
(setq x2tx (rtos x2))
(setq longx2tx (strlen x2tx))
;;; Y del punto
(setq y1 (substr linea (+ longn1tx 1 longx2tx 2)))
(setq y2 (atof y1))
(setq y2tx (rtos y2))
(setq longy2tx (strlen y2tx))
;;; Z del punto
(setq z1 (substr linea (+ longn1tx 1 longx2tx 1 longy2tx 2)))
(setq z2 (atof z1))
(setq z2tx (rtos z2))
(setq longz2tx (strlen z2tx))
;;; Código del punto
(setq c1 (substr linea (+ longn1tx 1 longx2tx 1 longy2tx 1 longz2tx 2)))
Tambien tengo un ejemplo pero es un .vlx y por lo tanto no puede ver su codigo solo que el problema que tiene es que no importan los datos directamente de un excel y tiene problemas con campos combinados.
Espero puedan ayudarme, de antemano gracias.
Yo subi unas rutinas (y otros usuarios tambien) para hacer el proceso inverso pero estoy casi seguro que se puede hacer de excel a autocad
sino chequea esto
si entendi bien, tu quieres pasar coordenadas x y z en sus combinaciones, de excel se convierte a formato txt, yo lo jalo al autocad por medio del civil cad,, es bueno
Es completamente lícito para una católica evitar el embarazo recurriendo a las matemáticas, aunque todavía está prohibido recurrir a la física o a la química
Yo lo he hecho varias veces ya y funciona a la perfeccion el ASCPOINT.lsp, solo hay que guardarcomo en el excel a .txt con tabulaciones, luego editar el archivo de texto a que quede con este formato:
421039,1990447,0
421037,1990451,0
con el numero de renglones que se deseen, y el archivo lisp creará lineas continuas con las coordenadas de esos puntos, y tambien hay que poner el archivo .txt en alguna ruta que podamos teclear completa en la barra de comandos de autocad como
Concuerdo con DvDing, es más fácil con el CivilCAD, ya que tiene un módulo de ingreso de coordenadas, ya sea en UTM o coordenadas GPS. Solamente tienes que ingresar el archivo con formato ASCII. Luego el CivilCAD te ayuda a corregir el polígono y a elaborar el derrotero.
Existe una excel que exporta los puntos y los dibuja en autocad con el nombre XYZ-dxf v13.xls que permite pasarlos en dos o en tres dimensiones. Insertas los nombres de los puntos, las coordenadas y las capas en las que quieres que aparezcan en la hoja coordenadas, luego seleccionas como lo quieres dibujar en la hoja previsualización, y como te lo va a dibujar en la hoja opciones.
Te genera una nueva excel en el disco raiz (C), y un fichero dxf en el mismo disco.
La hoja es de Juan Manuel Anguita Ordoñez, y espero os sirva de algo
Saludos
nesecito importar texto de excel a autocad con la rutina impo.vlx, pero lo quiero hacer con comas separando los miles, con la rutina actual no me lo crea. Es urgente. Espero me puedan ayudar. Muchisimas gracias.
Marcadores