Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
3 participantes
Página 1 de 2.
Página 1 de 2. • 1, 2
Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Alguien sabe como abrir un archivo *.dwg desde una rutina lisp, y seguir en hoja nueva
Gracias.
Gracias.
Última edición por 1VANNA el Miér Mar 22, 2017 9:11 pm, editado 1 vez
1VANNA- Mensajes : 25
Fecha de inscripción : 15/09/2016
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Hola que tal "1VANNA", prueba con este lisp
Saludos...
- Código:
(defun c:ODWG (/ OpenDwg)
(setq OpenDwg (LM:Open (getfiled "Busca archivo dwg" "" "dwg" 8)))
(princ))
;; Open - Lee Mac
;; A wrapper for the 'Open' method of the Shell Object
;; target - [int/str] File, folder or ShellSpecialFolderConstants enum
(defun LM:open ( target / rtn shl )
(if (and (or (= 'int (type target)) (setq target (findfile target)))
(setq shl (vla-getinterfaceobject (vlax-get-acad-object) "shell.application"))
)
(progn
(setq rtn (vl-catch-all-apply 'vlax-invoke (list shl 'open target)))
(vlax-release-object shl)
(if (vl-catch-all-error-p rtn)
(prompt (vl-catch-all-error-message rtn))
t
)
)
)
)
Saludos...
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Funciona perfectamente!!
Gracias amc.dicsac, este foro es lo máximo!
Gracias amc.dicsac, este foro es lo máximo!
1VANNA- Mensajes : 25
Fecha de inscripción : 15/09/2016
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Perdón por seguir con el tema:
Como hago para continuar con una rutina en la hoja nueva?
(defun c:funcion) ;hoja actual
(etc.........) ;rutina hoja actual
(abrir-hoja) ;abre hoja nueva
(etc.........) ;seguir rutina en hoja nueva
);end funcion
Espero que alguien sepa como hacerlo.
Gracias.
Como hago para continuar con una rutina en la hoja nueva?
(defun c:funcion) ;hoja actual
(etc.........) ;rutina hoja actual
(abrir-hoja) ;abre hoja nueva
(etc.........) ;seguir rutina en hoja nueva
);end funcion
Espero que alguien sepa como hacerlo.
Gracias.
1VANNA- Mensajes : 25
Fecha de inscripción : 15/09/2016
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Creo que no se puede hacer eso, pero si explicas que lisp estás haciendo podría haber otras soluciones
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Tengo una maqueta en 3D de una planta que esta compuesto de caños, bridas, válvulas, etc, (hecho en CadWorks) pero... no tengo el CadWorks y necesito hacer los planos isometricos de cada una de las lineas.
Lo que intento hacer es lo siguiente:
1.- Seleccionar un conjunto de elementos de la maqueta que componen una linea
2.- Guardar como un archivo nuevo.
3.- Generar una lista de materiales.
4.- Acotar de manera automática.
Ya tengo cubierto los puntos 1 y 2, pero..... la rutina (en proceso) no corre en el archivo nuevo vuelve a la hoja de la maqueta.
De ahí surge la consulta:
(defun c:seleccionar-linea) ;hoja actual
(guardar-linea) ;rutina hoja actual
(abrir-linea) ;abre hoja nueva
(lista-de-materiales) ;seguir rutina en hoja nueva
(etc-etc)
);end defun
Espero puedan ayudarme.
1VANNA- Mensajes : 25
Fecha de inscripción : 15/09/2016
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Hola 1vanna . me imagino que el cadworks lo abres con acad .
¿puedes subir el DWG , que resulta del punto 2?
¿de donde salen los detalles de los materiales?
si no puedes subirlo, enviarlo a mi correo: mi usuario en el gcorreo
¿puedes subir el DWG , que resulta del punto 2?
¿de donde salen los detalles de los materiales?
si no puedes subirlo, enviarlo a mi correo: mi usuario en el gcorreo
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Esta es una pequeña porción de la maqueta, todos las propiedades se encuentran como DATOS EXTENDIDOS, los cuales puedo obtener con esta rutina sencilla
(defun c:cw ()
(setq aa (car (entsel)))
(setq bb (cdadr (assoc -3 (entget aa (list "*")))))
(setq cc (cdr (nth 1 bb)))
(setq dd (cdr (nth 3 bb)))
(setq ee (cdr (nth 4 bb)))
(alert (strcat "DESCRIPCCION" "\n"
"¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯" "\n"
cc " " dd "\n"
"\n" "\n"
"CODIGO DE LINEA" "\n"
"¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯" "\n"
ee "\n"
)
)
)
El punto es que deseo exportar una linea (conjunto de tuberías, bridas, válvulas, etc.) y que se abra el archivo y haga todo el proceso de manera automática en la hoja nueva.
Pero donde me quede atorada es en el cambio de hoja, dicho de otro modo... la rutina no continua en la hoja nueva.
COMO SUBO LA MAQUETA???
(defun c:cw ()
(setq aa (car (entsel)))
(setq bb (cdadr (assoc -3 (entget aa (list "*")))))
(setq cc (cdr (nth 1 bb)))
(setq dd (cdr (nth 3 bb)))
(setq ee (cdr (nth 4 bb)))
(alert (strcat "DESCRIPCCION" "\n"
"¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯" "\n"
cc " " dd "\n"
"\n" "\n"
"CODIGO DE LINEA" "\n"
"¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯" "\n"
ee "\n"
)
)
)
El punto es que deseo exportar una linea (conjunto de tuberías, bridas, válvulas, etc.) y que se abra el archivo y haga todo el proceso de manera automática en la hoja nueva.
Pero donde me quede atorada es en el cambio de hoja, dicho de otro modo... la rutina no continua en la hoja nueva.
COMO SUBO LA MAQUETA???
1VANNA- Mensajes : 25
Fecha de inscripción : 15/09/2016
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Lo mejor es enviarla a mi correo
devitg@gmail.com , o abrir una cuenta de DROPBOX, o compartir desde GDRIVE
A que te refieres con HOJA NUEVA , un nuevo DWG , o una presentación, LAYOUT
devitg@gmail.com , o abrir una cuenta de DROPBOX, o compartir desde GDRIVE
A que te refieres con HOJA NUEVA , un nuevo DWG , o una presentación, LAYOUT
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Y porque en vez de hacer estos puntos:
1.- Seleccionar un conjunto de elementos de la maqueta que componen una linea
2.- Guardar como un archivo nuevo.
3.- Generar una lista de materiales.
4.- Acotar de manera automática.
No lo haces de la siguiente manera
1.- Seleccionar un conjunto de elementos de la maqueta que componen una linea
3.- Generar una lista de materiales.
4.- Acotar de manera automática.
2.- Guardar como un archivo nuevo.
1.- Seleccionar un conjunto de elementos de la maqueta que componen una linea
2.- Guardar como un archivo nuevo.
3.- Generar una lista de materiales.
4.- Acotar de manera automática.
No lo haces de la siguiente manera
1.- Seleccionar un conjunto de elementos de la maqueta que componen una linea
3.- Generar una lista de materiales.
4.- Acotar de manera automática.
2.- Guardar como un archivo nuevo.
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Hola de nuevo.
devitg, Te envié una pequeña parte de la maqueta, no pude compartirlo por GDRIVE
Con "hoja nueva" me refiero a un nuevo DWG.
amc.dicsac, son miles de elementos que tengo en la hoja, intentar hacer todo (los cuatro puntos) y luego guardar como un archivo nuevo, lo veo muy muy complicado.
devitg, Te envié una pequeña parte de la maqueta, no pude compartirlo por GDRIVE
Con "hoja nueva" me refiero a un nuevo DWG.
amc.dicsac, son miles de elementos que tengo en la hoja, intentar hacer todo (los cuatro puntos) y luego guardar como un archivo nuevo, lo veo muy muy complicado.
1VANNA- Mensajes : 25
Fecha de inscripción : 15/09/2016
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Hola Ivanna , el tema es que el DWG hecho por Cadworks está preparado para hacer lo que tu quires con el mismo cadworks . Estoy estudiando lo que me enviaste .
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Gracias por contestar,
En realidad, no puedo usar el CadWorks por el tema de la licencia.
Hasta el momento me va bien con el plan de los cuatro puntos pero en lo que estoy atorada es que la rutina no continua en un dwg nuevo.
Por favor.... yo se que los maestros del lisp pueden hacerlo, la gente de CadWorks lo hizo en versiones anteriores.
Saludos.
En realidad, no puedo usar el CadWorks por el tema de la licencia.
Hasta el momento me va bien con el plan de los cuatro puntos pero en lo que estoy atorada es que la rutina no continua en un dwg nuevo.
Por favor.... yo se que los maestros del lisp pueden hacerlo, la gente de CadWorks lo hizo en versiones anteriores.
Saludos.
1VANNA- Mensajes : 25
Fecha de inscripción : 15/09/2016
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Ya vi lo de los datos de cada pieza. Ahora resulta que no veo la forma de sacar una línea, digamos , entre dos puntos , lo mas que encuentro son unas pocas capas que pueden aislar un gran grupo de elementos , aparentemente son las capas _CA , _CA_I , _BA , _CA_I .
Ahora si quieres separar por partes , lo que hay en cada capa , hay que seleccionarlos uno por uno
Por otro lado , lisp trabaja, unicamente, en el DWG (maqueta) activo , luego lo que se puede hacer es
1º separa cada una de las capas , en un DWG (hoja) individual
2º abrir uno a uno cada dwg y hacer la lista de los datos extendidos .
Por favor sube el formato en que quieres la lista de los datos extendidos.
Lo mejor , es si puedes hacer un DWG ejemplo y el fichero ejemplo de los datos extendidos
Ahora si quieres separar por partes , lo que hay en cada capa , hay que seleccionarlos uno por uno
Por otro lado , lisp trabaja, unicamente, en el DWG (maqueta) activo , luego lo que se puede hacer es
1º separa cada una de las capas , en un DWG (hoja) individual
2º abrir uno a uno cada dwg y hacer la lista de los datos extendidos .
Por favor sube el formato en que quieres la lista de los datos extendidos.
Lo mejor , es si puedes hacer un DWG ejemplo y el fichero ejemplo de los datos extendidos
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Los de cadworks , deben aplicar una programación que no necesariamente es LISP .
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Reitero .LISP trabaja únicamente en el DWG abierto.
Entonces se puede hacer que el LISP saque el fichero con los datos extendidos y haga un WBLOCK de lo que se ve en la presentación y el fichero correspondiente
Entonces se puede hacer que el LISP saque el fichero con los datos extendidos y haga un WBLOCK de lo que se ve en la presentación y el fichero correspondiente
1VANNA- Mensajes : 25
Fecha de inscripción : 15/09/2016
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
No llores , lo que te propuse se puede hacer. El problema es que no dices lo QUE quieres hacer , y dices COMO lo quieres hacer. No siempre el COMO es posible, y hay que mostrar el QUE. Y luego puede haber una solución no pensada.
Al mostrar el QUE , hay que mostrar TODO
Al mostrar el QUE , hay que mostrar TODO
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Voy a prepara todo lo que tengo y subirlo para que puedan ayudarme.
1VANNA- Mensajes : 25
Fecha de inscripción : 15/09/2016
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Ya estoy trabajando en el tema ,
mi COMO sería:
1º seleccionar una entidad a procesar que sea un 3d-solid y que tenga datos extendidos
2º obtengo la capa
3º selecciono todos los 3d-solid y que tengan datos extendidos que estén en esa capa
4º obtengo la lista de los datos extendidos , en tu caso CC EE DD
5º genero un fichero CSV ( comma separated values) o fichero separado por comas con la lista CC,EE,DD, se podría poner un encabezamiento "DESCcc ", "Desc dd",CODIGO DE LINEA"
el fichero llevaría en nombre del dwg-el nombre de la capa
6º con la seleccion hacer un WBLOCK con el mismo nombre del fichero csv , DWG
7º otra seleccion para la otra/s capas
Y trabajando mas fino que haga todo solo , a partir de la seleccion de todos 3d-solid y que tengan datos extendidos , hacer una lista de las capas y seguir por el 1º punto .
ESTO ES UN COMO para tu QUE
Que recién lo puedo deducir de tus sucesivos post.
Espero tus ejemplos por mi correo
mi COMO sería:
1º seleccionar una entidad a procesar que sea un 3d-solid y que tenga datos extendidos
2º obtengo la capa
3º selecciono todos los 3d-solid y que tengan datos extendidos que estén en esa capa
4º obtengo la lista de los datos extendidos , en tu caso CC EE DD
5º genero un fichero CSV ( comma separated values) o fichero separado por comas con la lista CC,EE,DD, se podría poner un encabezamiento "DESCcc ", "Desc dd",CODIGO DE LINEA"
el fichero llevaría en nombre del dwg-el nombre de la capa
6º con la seleccion hacer un WBLOCK con el mismo nombre del fichero csv , DWG
7º otra seleccion para la otra/s capas
Y trabajando mas fino que haga todo solo , a partir de la seleccion de todos 3d-solid y que tengan datos extendidos , hacer una lista de las capas y seguir por el 1º punto .
ESTO ES UN COMO para tu QUE
Que recién lo puedo deducir de tus sucesivos post.
Espero tus ejemplos por mi correo
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Gracias por tu tiempo.
Voy a demorar un poco subir el ejemplo, mientras estoy haciendo esto a mano, pues tengo que ir mostrando resultados a mis jefes.
El tema de las capas me parece muy complicado, de por si el archivo completo tiene como 100 capas... se trata de una planta completa que tiene como 1000 lineas cada linea tiene 50 elementos.
Ya se imaginaran el trabajo que tengo... bueno una parte del trabajo.
Saludos.
Voy a demorar un poco subir el ejemplo, mientras estoy haciendo esto a mano, pues tengo que ir mostrando resultados a mis jefes.
El tema de las capas me parece muy complicado, de por si el archivo completo tiene como 100 capas... se trata de una planta completa que tiene como 1000 lineas cada linea tiene 50 elementos.
Ya se imaginaran el trabajo que tengo... bueno una parte del trabajo.
Saludos.
1VANNA- Mensajes : 25
Fecha de inscripción : 15/09/2016
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Por favor envía el dwg completo , y debo deducir que que cuando te refieres a lineas son todas la que están en una misma capa. Aún no deduzco cómo quieres sacar la linea , si es la que contiene un conjunto de piezas conectadas , o las que están en un a misma capa.
Si es como la que están en una misma capa , se puede hacer de modo automático, ahora si debes sacar únicamente las lineas contiene un conjunto de piezas conectadas, deberás seleccionarlas una por una.
Si es como la que están en una misma capa , se puede hacer de modo automático, ahora si debes sacar únicamente las lineas contiene un conjunto de piezas conectadas, deberás seleccionarlas una por una.
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Perdón por no explicarme de la manera correcta:
En este rubro "Linea" es un conjunto de tuberías, bridas, válvulas, etc. Las "LIneas generalmente conectan un equipo a otro.
Cuando hago la selección de las "Lineas" para guardarlas en un archivo aparte las hago por medio del código de linea (ver archivo adjunto) que esta como datos extendidos.
Todos los elementos que tienen el mismo código pertenecen a una "Linea".
Por eso cuando me hablas de capas, las cosas no tienen sentido.
En este ejemplo el codigo de este elemento es 51044.
En este rubro "Linea" es un conjunto de tuberías, bridas, válvulas, etc. Las "LIneas generalmente conectan un equipo a otro.
Cuando hago la selección de las "Lineas" para guardarlas en un archivo aparte las hago por medio del código de linea (ver archivo adjunto) que esta como datos extendidos.
Todos los elementos que tienen el mismo código pertenecen a una "Linea".
Por eso cuando me hablas de capas, las cosas no tienen sentido.
En este ejemplo el codigo de este elemento es 51044.
1VANNA- Mensajes : 25
Fecha de inscripción : 15/09/2016
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Nos vamos entendiendo, de a poco. Cuesta pero vamos progresando.
HAY UNA LEY QUE DEBERÍAMOS RESPETAR SIEMPRE
NO DAR NADA POR ENTENDIDO
En este tema cada cual tiene su idioma y/o costumbre , y no todos podemos adivinar.
Sigo avanzando, a los golpes , pero avanzamos
Gracias
HAY UNA LEY QUE DEBERÍAMOS RESPETAR SIEMPRE
NO DAR NADA POR ENTENDIDO
En este tema cada cual tiene su idioma y/o costumbre , y no todos podemos adivinar.
Sigo avanzando, a los golpes , pero avanzamos
Gracias
Re: Abrir un archivo *.dwg desde lisp Y CONTINUAR RUTINA EN HOJA NUEVA
Puede ser que en este dato que es el NTH 4 del aa
"4\"-CA-04004-1 1/2\"H"
04004 es el nro de codigo de la línea
"4\"-CA-04004-1 1/2\"H"
04004 es el nro de codigo de la línea
Página 1 de 2. • 1, 2
Temas similares
» Macro para abrir archivo chm de ayuda
» Insertar Bloque desde un archivo DWG
» Plot desde Lisp
» Rutina importar Bloques de un Archivo a Otro
» Manipular excel desde lisp
» Insertar Bloque desde un archivo DWG
» Plot desde Lisp
» Rutina importar Bloques de un Archivo a Otro
» Manipular excel desde lisp
Página 1 de 2.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|