Página 1 de 1

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

Publicado: Lun Mar 05, 2007 9:54 pm
por Afga
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.

Publicado: Mar Mar 06, 2007 11:03 am
por Faber
Gracias, tienen muy buena pinta y me serán muy útiles

Publicado: Mié Mar 07, 2007 5:28 pm
por ICON
hola,
¿son como la orden "mocoro"?
gracias

Publicado: Mié Mar 14, 2007 4:10 pm
por Afga
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