Aplicaciones para MOVER+ROTAR y COPIAR+ROTAR múltiple

dudas y consultas sobre AutoCad

Moderador: Moderadores

Responder
Avatar de Usuario
Afga
Moderador
Moderador
Mensajes: 886
Registrado: Lun Sep 04, 2006 4:10 pm

Aplicaciones para MOVER+ROTAR y COPIAR+ROTAR múltiple

Mensaje por Afga » Lun Mar 05, 2007 9:54 pm

Wenas a todos,

Os dejo un par de aplicaciones muy sencillitas, pero a la vez muy útiles en ciertas ocasiones cuando estamos trabajando con AutoCAD, las cuales ejecutan dos ordenes en una y además de modo múltiple, como son las ordenas "desplazar y girar" y las ordenes "copiar y girar".

Función para desplazar+rotar múltiple;
Comando que la ejecuta -> MYG (MG en método abreviado).

;; ///////////////////////////////////////////////////////////////////////////////////////

(defun err_myg (msg)
  
     (
if msg
       (princ (strcat " Error - " msg))
     )
      (
setq *error* mygerr mygerr nil)
      (
princ)
      (
princ "\n\n* Teclee MYG o ENTER para volver a ejecutar el comando *")

)
 ;_end defun errcsup

;; ///////////////////////////////////////////////////////////////////////////////////////



(defun c:myg (/ pt1 pt2 sset mygerr)

  (
setq mygerr *error* *error* err_myg)
  (
command "_undo" "_begin")
  (
prompt "Seleccione entidades a mover y rotar")(terpri)

  (
while
  (setq sset (ssget))
  (
setq pt1 (getpoint "\nDesigne el primer PUNTO:"))
  
  (
command "_move" sset "" pt1 pause)
  
  (
setq pt2 (getvar "LASTPOINT"))
  (
command "_rotate" sset "" pt2 pause)
  )
;_end while

  (command "_undo" "_end")
  
  (
princ "\n\n* Teclee MYG o ENTER para volver a ejecutar el comando *")                 
  (
princ)
  
)
;_end defun c:myg

(princ "\n\n* Nuevo comando \"MYG\" cargado - Designed by J.S.R./santos_jsr@hotmail.com *")
(
princ)

;; //////////////////////////////////////////////////////////////////////////////////

(defun c:MG ()
   (
c:myg)
)



Función para copiar+rotar múltiple;
Comando que la ejecuita -> CYG (CG en método abreviado).

;; ///////////////////////////////////////////////////////////////////////////////////////

(defun err_cyg (msg)
  
     (
if msg
       (princ (strcat " Error - " msg))
     )
      (
setq *error* cygerr cygerr nil)
      (
princ)
      (
princ "\n\n* Teclee CYG o ENTER para volver a ejecutar el comando *")

)
 ;_end defun errcsup

;; ///////////////////////////////////////////////////////////////


(defun c:cyg (/ pt1 sset sset2 ptend copy_ent cygerr)

  (
setq cygerr *error* *error* err_cyg)
  (
while

  (princ "\nSeleccione entidades a copiar y rotar")(terpri)
  (
setq sset (ssget))
  (
if (/= sset nil) (setq pt1 (getpoint "\nDesigne el primer PUNTO:")) (progn (err_cyg) (exit)))

  (
command "_-block" "CYG" pt1 sset ""
  (
command "_-insert" "CYG" pt1 "" "" "0"

  (
setq sset2 (ssget "X" (list (cons 0 "INSERT") (cons 2 "CYG"))))
  ;;(command "_undo" "_begin")

  (while

  (setq ptend (getpoint "\nDesigne el PUNTO donde copiar objetos:" pt1 )) 
  (
command "_copy" sset2 "" pt1 ptend
  ;;(setq pt2 (getvar "LASTPOINT"))
  (setq copy_ent (cdr (assoc -1 (entget (entlast)))))
  (
command "_rotate" copy_ent "" ptend pause)
  (
command "_explode" copy_ent)
  (
command "_-purge" "_blocks" "*" "_n")
  
  )
;_end while

  ;;(command "_undo" "end")

  (command "_explode" sset2)
  (
command "_-purge" "_blocks" "*" "_n")
 
  )
;_end while

  (princ "\n\n* Teclee CYG o ENTER para volver a ejecutar el comando *")                 
  (
princ)
)
;_end defun c:cyg

(princ "\n\n* Nuevo comando \"CYG\" cargado - Designed by J.S.R./santos_jsr@hotmail.com *")
(
princ)

;; //////////////////////////////////////////////////////////////////////////////////

(defun c:CG ()
   (
c:cyg)
)


Un saludo a todos.

Avatar de Usuario
Faber
Administrador
Administrador
Mensajes: 2835
Registrado: Mié Nov 09, 2005 12:10 am
Ubicación: Valencia
Contactar:

Mensaje por Faber » Mar Mar 06, 2007 11:03 am

Gracias, tienen muy buena pinta y me serán muy útiles
si algo puede salir bien, saldrá bien

Avatar de Usuario
ICON
Calcador
Mensajes: 37
Registrado: Jue Feb 01, 2007 7:25 pm

Mensaje por ICON » Mié Mar 07, 2007 5:28 pm

hola,
¿son como la orden "mocoro"?
gracias

Avatar de Usuario
Afga
Moderador
Moderador
Mensajes: 886
Registrado: Lun Sep 04, 2006 4:10 pm

Mensaje por Afga » Mié Mar 14, 2007 4:10 pm

Wenas ICON,

En realidad, como bien dices, son similares, pero no iguales a la orden "mocoro" de las Express de AutoCAD. Estas considero qu al ser unas ordenes más especificas, son más rápidas. La orden mocoro una vez desigandos los objetos debes indicarle la operación a relaizar, si girar, desplazar, etc,,. además estas permiten su uso de modo múltiple.

Espero sean de ayuda a todos, un saludo

Responder