(defun c:QM (/ ss n obj minpt maxpt center obj-obj)
  ;; Mirror objetos sobre el centro geométrico
  (vl-load-com)
  (if (setq ss (ssget "_:L"))
    (repeat (setq n (sslength ss)) ; entonces
      (setq obj (ssname ss (setq n (1- n))))
      ;; Verificar si el objeto soporta BoundingBox
      (setq obj-obj (vlax-ename->vla-object obj))
      (if (vlax-method-applicable-p obj-obj 'GetBoundingBox)
        (progn
          (vla-GetBoundingBox obj-obj 'minpt 'maxpt)
          (setq minpt (vlax-safearray->list minpt))
          (setq maxpt (vlax-safearray->list maxpt))
          ;; Calcular el centro geométrico
          (setq center (list (/ (+ (car minpt) (car maxpt)) 2)
                             (/ (+ (cadr minpt) (cadr maxpt)) 2)
                             0.0))
          ;; Realizar el espejo
          (command "_.MIRROR" obj "" (list (car center) (cadr center) 0.0) (list (car center) (+ (cadr center) 10000000.0) 0.0) "_yes")
        )
        (princ (strcat "\nEl objeto no soporta GetBoundingBox: " (cdr (assoc 0 (entget obj)))))
      )
    )
  )
  (princ)
)