Ayuda con el comando "mover" en una rutina

Ir abajo

Ayuda con el comando "mover" en una rutina Empty Ayuda con el comando "mover" en una rutina

Mensaje por José Francisco el Vie Ene 10, 2020 8:21 pm

Feliz año 2020 para todos.
Una vez más les molesto y solicito su ayuda.
Tengo el siguiente lisp que lo que hace es crear un circulo en determinadas coordenadas y en el centro del círculo, colocar un texto.
Busco que una vez creado el círculo y el texto, mover ambos elementos a otras coordenadas, pero la verdad, no tengo idea de cómo hacerlo.
Como está el lisp, solo mueve el último elemento creado, el texto
Desde ya les agradezco por la ayuda que me presten.

Este es el lisp
Código:
(defun c:test (/)
  (setvar "cmdecho" 0)
  (vl-cmdf "_units" "2" "4" "1" "0" "90" "_N")
  (setq x (list 10 10))
  (setq y 1)
  (setq z 1)
  (vl-cmdf "_circle" x y)
  (vl-cmdf "_text" "_j" "_mc" x 1.0 "90" (rtos z 2 0))
  (vl-cmdf "_move" "_last" "" x pause)
)

José Francisco

Mensajes : 33
Fecha de inscripción : 30/03/2016

Volver arriba Ir abajo

Ayuda con el comando "mover" en una rutina Empty Re: Ayuda con el comando "mover" en una rutina

Mensaje por bernie67 el Vie Ene 10, 2020 10:01 pm

Jose Francisco me pregunto si lo que deseas hacer no se podría hacer con métodos del autocad? Podrias usar una tabla de excel y cargar bloques con atributos con las coordenadas y los textos desde la tabla de excel. asi si necesitas mover todos los bloques lo podrías hacer mediante select similar o con filtros, o que sean de un layer especifico, etc...De a misma forma podrías cargar los nuevos valores en excel e insertarlos en otra localización. Me cuentas para explicarte algunas formas y/o repasar el tema, pues hace algún tiempo que no uso este método.
saludos
Bernardo Corradine.
Pd: Con filtros podrías hacerlo también para cada cosa, textos y círculos
bernie67
bernie67

Mensajes : 80
Fecha de inscripción : 22/03/2016
Edad : 52
Localización : Bogota DC-Colombia

Volver arriba Ir abajo

Ayuda con el comando "mover" en una rutina Empty Re: Ayuda con el comando "mover" en una rutina

Mensaje por Dominguez el Lun Ene 13, 2020 5:51 pm

Pues yo creo que esta solucion tan sencilla es lo que buscas.
Código:
(defun c:test (/ x y z cir txt)
 (setvar "cmdecho" 0)
 (vl-cmdf "_units" "2" "4" "1" "0" "90" "_N")
 (setq x (list 10 10))
 (setq y 1)
 (setq z 1)
 (vl-cmdf "_circle" x y)
 (setq cir (entlast))
 (vl-cmdf "_text" "_j" "_mc" x 1.0 "90" (rtos z 2 0))
 (setq txt (entlast))
 (vl-cmdf "_move" cir txt "" x pause)
)
Saludos
Dominguez
Dominguez

Mensajes : 83
Fecha de inscripción : 20/03/2016
Edad : 69
Localización : Zaragoza (España)

Volver arriba Ir abajo

Ayuda con el comando "mover" en una rutina Empty Re: Ayuda con el comando "mover" en una rutina

Mensaje por José Francisco el Lun Ene 13, 2020 8:35 pm

Buen día para todos.

Don Bernardo, muchas gracias. Si no es mucha molestia, por medio de un lisp, puede poner un ejemplo utilizando filtros?

Señor Domínguez, muchas gracias, la solución que usted llama "sencilla" es lo que busco. Una pregunta: Si dentro de esa primera entidad (el círculo) se crean más entidades (otro círculo, más textos, un rectángulo, etc.), la única forma de mover todo, es esa?.
En verdad, Gracias, les agradezco su tiempo.

José Francisco

Mensajes : 33
Fecha de inscripción : 30/03/2016

Volver arriba Ir abajo

Ayuda con el comando "mover" en una rutina Empty Re: Ayuda con el comando "mover" en una rutina

Mensaje por bernie67 el Mar Ene 14, 2020 12:28 am

Hola. te adjunto un enlace para que descargues un ejemplo de un bloque con atributos, una tabla en excel, una descripcion en txt de como funciona y un lisp para correrlo. A partir de esta información puedes entender como funciona la rutina y modificar el bloque con atributos y la rutina misma. Existía otra rutina que se había compartido para que funcionase para cualquier nombre de bloque y ligarlos a una tabla de excel pero no recuerdo que la hice.
Lo de los filtros es que usando el comando_filter seleccionas un objeto y vas eliminando los parámetros que NO son comunes como punto de inserción, rotación, contenido (en el caso de textos) y puedes mantener la altura, el tipo de entidad que sea (circulo, polilinea, texto, cota, etc). Este método sirve para cada tipo de entidad, no se puede hacer selección de varios objetos al mismo tiempo.
Otra forma es usar el comando ssx o select similar, de esa forma puedes capturar de una sola vez todos los bloques (que tengan el mismo nombre),circulos, textos, poligonos etc y moverlos, borrarlos entre otras opciones ( no aplica para cotas)

https://wetransfer.com/downloads/39a4ba1ac3b6bf7f0470ad17e02449a820200113231426/bd54bcc9e098bbbd2e7e51dfe5c24c0e20200113231426/9e1eae

Si tienes dudas sobre algo de lo expuesto quedo pendiente
saludos
Bernardo Corradine M
bernie67
bernie67

Mensajes : 80
Fecha de inscripción : 22/03/2016
Edad : 52
Localización : Bogota DC-Colombia

Volver arriba Ir abajo

Ayuda con el comando "mover" en una rutina Empty Re: Ayuda con el comando "mover" en una rutina

Mensaje por Dominguez el Miér Ene 15, 2020 7:04 pm

José Francisco escribió:Una pregunta: Si dentro de esa primera entidad (el círculo) se crean más entidades (otro círculo, más textos, un rectángulo, etc.), la única forma de mover todo, es esa?.
Esa solucion es valida para todas las entidades que quieras mover, solo tienes que sumar una variable (con setq) a cada entidad que quieras mover, y despues al comando _move le agregas todas esas variables, para crear un conjunto de seleccion de todas ellas.
Un saludo
Dominguez
Dominguez

Mensajes : 83
Fecha de inscripción : 20/03/2016
Edad : 69
Localización : Zaragoza (España)

Volver arriba Ir abajo

Ayuda con el comando "mover" en una rutina Empty Re: Ayuda con el comando "mover" en una rutina

Mensaje por Admin el Jue Ene 16, 2020 7:38 pm

También se puede crear un selection set [SS] con SSADD y luego ir agregando cada entidad que se desee, luego se pasa la SS al comando move .

Admin
Admin

Mensajes : 206
Fecha de inscripción : 16/03/2016
Edad : 71
Localización : CORDOBA ARGENTINA

http://acadhispano.foroargentina.net

Volver arriba Ir abajo

Ayuda con el comando "mover" en una rutina Empty Re: Ayuda con el comando "mover" en una rutina

Mensaje por José Francisco el Mar Ene 21, 2020 4:55 pm

Buen día a todos.
Don Bernardo, de nuevo muchas gracias.
Señor Domínguez, muchas gracias por su tiempo y su ayuda.
Señor Administrador, igual, muchas gracias, lo que usted señala es lo que mejor se adapta a lo que busco.

Código:
(defun c:test (/ x y z cir txt)
  (setvar "cmdecho" 0)
  (vl-cmdf "setvar" "angdir" "1")
  (vl-cmdf "setvar" "angbase" "270")
  (vl-cmdf "_units" "2" "4" "1" "0" "90" "_N")
  (setq ss (ssadd))
  (setq x (list 10 10))
  (setq y 1)
  (setq z 1)
  (vl-cmdf "_text" "_j" "_mc" x 1.0 "90" (rtos z 2 0))
  (ssadd (entlast) ss)
  (repeat 3
    (vl-cmdf "_circle" x y)
    (ssadd (entlast) ss)
    (setq y (+ y 1))
  )
  (vl-cmdf "_move" ss "" x pause)
)

En verdad, muchas gracias a todos


José Francisco

Mensajes : 33
Fecha de inscripción : 30/03/2016

Volver arriba Ir abajo

Ayuda con el comando "mover" en una rutina Empty Re: Ayuda con el comando "mover" en una rutina

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.