CADxp: [Résolue] Décharger Xref par simple clic - CADxp

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

[Résolue] Décharger Xref par simple clic

#1 L'utilisateur est hors-ligne   La Lozère 

  • ceinture noire 3em dan
  • Groupe : Membres
  • Messages : 1987
  • Inscrit(e) : 28-juin 06
  • LocationGénérac (30) - Chantier CNM

Posté 15 octobre 2014 - 17:38

Salut,
Quelqu'un connait-il une astuce pour décharger une Xref par simple clic sur celle-ci sans passer par le gestionnaire?

Merci.
www.cad-is.fr
Autocad Map 2015/2017 - Covadis/Autopiste V15.0b - Mensura Genius V8
Nous n’héritons pas de la Terre de nos ancêtres, nous l’empruntons à nos enfants
0

#2 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4395
  • Inscrit(e) : 20-juin 03

Posté 16 octobre 2014 - 10:41

Salut,

Pas trop testé en profondeur, mais je pense que c'est bon...

(defun c:unload_xref ( / js n name_xref)
  (princ "\nSélectionner les XRefs à décharger. ")
  (while (null (setq js (ssget "_+.:E" '((0 . "INSERT")))))
    (princ "\nObjets non valable!")
  )
  (repeat (setq n (sslength js))
    (cond
      ((eq (boole 1 (cdr (assoc 70 (tblsearch "BLOCK" (setq name_xref (cdr (assoc 2 (entget (ssname js (setq n (1- n)))))))))) 4) 4)
        (command "_.-xref" "_Unload" name_xref)
      )
      (T (princ "\nN'est pas une référence externe. "))
    )
  )
  (prin1)
)

Ce message a été modifié par bonuscad - 16 octobre 2014 - 12:45 .

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
0

#3 L'utilisateur est hors-ligne   La Lozère 

  • ceinture noire 3em dan
  • Groupe : Membres
  • Messages : 1987
  • Inscrit(e) : 28-juin 06
  • LocationGénérac (30) - Chantier CNM

Posté 16 octobre 2014 - 11:12

T'es un chef. Ca marche impec.
Et hop encore un dans ma boite à lisp...

Merci.
www.cad-is.fr
Autocad Map 2015/2017 - Covadis/Autopiste V15.0b - Mensura Genius V8
Nous n’héritons pas de la Terre de nos ancêtres, nous l’empruntons à nos enfants
0

#4 L'utilisateur est hors-ligne   La Lozère 

  • ceinture noire 3em dan
  • Groupe : Membres
  • Messages : 1987
  • Inscrit(e) : 28-juin 06
  • LocationGénérac (30) - Chantier CNM

Posté 16 octobre 2014 - 11:32

Juste une petite modif.
Est-il possible de ne pas sortir de la commande après avoir cliquer sur une Xref pour pouvoir en décharger plusieurs d'un seul coup sans avoir à relancer la commande.

A plus.
www.cad-is.fr
Autocad Map 2015/2017 - Covadis/Autopiste V15.0b - Mensura Genius V8
Nous n’héritons pas de la Terre de nos ancêtres, nous l’empruntons à nos enfants
0

#5 L'utilisateur est hors-ligne   Steven 

  • ceinture rouge et blanche 6em dan
  • Groupe : Membres
  • Messages : 3210
  • Inscrit(e) : 03-mars 03
  • LocationDans le TARDIS

Posté 16 octobre 2014 - 11:54

Salut,

Dur AA, lorsqu'on sélectionne des Xref et que l'on fait un clic droite, on peut Décharger, Détacher, Lier, etc les Xref. C'est curieux que les développeurs n'aient pas intégrer cette fonctionnalité dans AutoCAD.
Steven________________________________________
Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.
Pour la maison; Linux Mint et pas de problèmes. Mais pas d'AutoCAD.
En rêve; AutoCAD sous Linux.
0

#6 L'utilisateur est hors-ligne   Patrick_35 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 6099
  • Inscrit(e) : 06-janvier 03

Posté 16 octobre 2014 - 12:45

Voir le messageLa Lozère, le 16 octobre 2014 - 11:32 , dit :

Juste une petite modif.
Est-il possible de ne pas sortir de la commande après avoir cliquer sur une Xref pour pouvoir en décharger plusieurs d'un seul coup sans avoir à relancer la commande.

A plus.

Salut

Tu as la commande multiple dans autocad

@+
Les Lisps de Patrick
Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.
Joseph Joubert, 1754-1824
0

#7 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4395
  • Inscrit(e) : 20-juin 03

Posté 16 octobre 2014 - 12:47

Voir le messageLa Lozère, le 16 octobre 2014 - 11:32 , dit :

Juste une petite modif.
Est-il possible de ne pas sortir de la commande après avoir cliquer sur une Xref pour pouvoir en décharger plusieurs d'un seul coup sans avoir à relancer la commande.

A plus.

J'ai modifié le code ci-dessus; le déchargement se fait après validation de l'ensemble de la sélection.
Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
0

#8 L'utilisateur est hors-ligne   La Lozère 

  • ceinture noire 3em dan
  • Groupe : Membres
  • Messages : 1987
  • Inscrit(e) : 28-juin 06
  • LocationGénérac (30) - Chantier CNM

Posté 16 octobre 2014 - 12:56

En fait ce que je demande fait un peu suite à ce post. Le truc c'est que je pourrais passer par le gestionnaire, mais si on a une très grosse Xref, rien que le fait de faire un clic droit met l'Xref en surbrillance. Et du fait de la taille de l'Xref, c'est particulièrement lourd.

Du coup, le lisp de bonuscad permet de s'affranchir de ce phénomène.

Citation

Tu as la commande multiple dans autocad

Effectivement, mais comme j'ai couplé cette routine avec un bouton, comment faire pour que cela fonctionne?

A plus.
www.cad-is.fr
Autocad Map 2015/2017 - Covadis/Autopiste V15.0b - Mensura Genius V8
Nous n’héritons pas de la Terre de nos ancêtres, nous l’empruntons à nos enfants
0

#9 L'utilisateur est hors-ligne   La Lozère 

  • ceinture noire 3em dan
  • Groupe : Membres
  • Messages : 1987
  • Inscrit(e) : 28-juin 06
  • LocationGénérac (30) - Chantier CNM

Posté 16 octobre 2014 - 13:07

Merci Bonuscad, mais du coup, cela sélectionne l'Xref et je me retrouve dans le problème premier. Si l'Xref est très grosse ça prend du temps. La commande "multiple" fonctionne bien dans ce cas.

Est-il possible de décharger à la volé?
Sinon, peux-tu reposter l'ancien code? Je ne l'ai plus.
Merci.
www.cad-is.fr
Autocad Map 2015/2017 - Covadis/Autopiste V15.0b - Mensura Genius V8
Nous n’héritons pas de la Terre de nos ancêtres, nous l’empruntons à nos enfants
0

#10 L'utilisateur est hors-ligne   Olivier Eckmann 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 911
  • Inscrit(e) : 29-décembre 11
  • LocationLongjumeau (91)

Posté 16 octobre 2014 - 13:33

Bonjour,

Dans ton CUI, tu te crées une nouvelle commande et tu lui colles ça comme macro
(setq A (cdr (assoc 2 (entget (ssname (cadr (ssgetfirst)) 0)))));(command [/size]"_.-xref" "_Unload"[size=2] A)


Bien enlever les ^C^C en début de ligne

Puis tu colles cette commande soit dans le menu contextuel "Menu de l'objet XRef", soit directement dans l'action du double-clic associé à l'objet Xref.

Dans le lisp de Bonuscad, il suffit d'ajouter la ligne
(setvar "HIGHLIGHT" 0)
en 2ème ligne, puis
(setvar "HIGHLIGHT" 1)
en avant-dernière ligne

Olivier
0

#11 L'utilisateur est hors-ligne   La Lozère 

  • ceinture noire 3em dan
  • Groupe : Membres
  • Messages : 1987
  • Inscrit(e) : 28-juin 06
  • LocationGénérac (30) - Chantier CNM

Posté 16 octobre 2014 - 14:02

Merci à vous de ces différentes solutions
Bonuscad, si tu pouvez remettre le premier code, juste pour voir la différence entre les deux.

A plus.
www.cad-is.fr
Autocad Map 2015/2017 - Covadis/Autopiste V15.0b - Mensura Genius V8
Nous n’héritons pas de la Terre de nos ancêtres, nous l’empruntons à nos enfants
0

#12 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4395
  • Inscrit(e) : 20-juin 03

Posté 16 octobre 2014 - 14:18

Le 1er était celui-ci:
(defun c:unload_xref ( / js name_xref)
  (princ "\nSélectionner l'XRef à décharger. ")
  (while (null (setq js (ssget "_+.:E:S" '((0 . "INSERT")))))
    (princ "\nObjets non valable!")
  )
  (cond
    ((eq (boole 1 (cdr (assoc 70 (tblsearch "BLOCK" (setq name_xref (cdr (assoc 2 (entget (ssname js 0)))))))) 4) 4)
      (command "_.-xref" "_Unload" name_xref)
    )
    (T (princ "\nN'est pas une référence externe. "))
  )
  (prin1)
)

Ça peut fonctionner avec MULTIPLE, mais alors cela boucle sur la sélection (while (null (setq js .......
Il faut simplement faire ESC pour sortir.

Citation

Est-il possible de décharger à la volé?

A la volée on pourrait essayer ceci (pas droit à l'erreur de sélection, sinon on sort de la boucle)
(defun c:unload_xref ( / js name_xref)
  (princ "\nSélectionner l'XRef à décharger. ")
  (while
    (and
      (setq js (ssget "_+.:E:S" '((0 . "INSERT"))))
      (eq (boole 1 (cdr (assoc 70 (tblsearch "BLOCK" (setq name_xref (cdr (assoc 2 (entget (ssname js 0)))))))) 4) 4)
    )
    (command "_.-xref" "_Unload" name_xref)
    (princ "\nSélectionner l'XRef à décharger. ")
  )
  (prin1)
)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
0

#13 L'utilisateur est hors-ligne   La Lozère 

  • ceinture noire 3em dan
  • Groupe : Membres
  • Messages : 1987
  • Inscrit(e) : 28-juin 06
  • LocationGénérac (30) - Chantier CNM

Posté 16 octobre 2014 - 14:26

Super, j'ai trouvé mon bonheur. Vous êtes des chef.

J'ai utilisé le premier code via un bouton qui lance la commande suivante:
^C^C_multiple;unload_xref

Il faut certes sortir de la commande via un Echap, mais ça me va très bien.

Le deuxième code est également très bien, mais comme tu l'as dis, pas le droit à l'erreur.

A plus et encore merci
www.cad-is.fr
Autocad Map 2015/2017 - Covadis/Autopiste V15.0b - Mensura Genius V8
Nous n’héritons pas de la Terre de nos ancêtres, nous l’empruntons à nos enfants
0

#14 L'utilisateur est hors-ligne   lili2006 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11435
  • Inscrit(e) : 21-décembre 05

Posté 16 octobre 2014 - 16:09

Bonjour à toutes et tous,

Salut La Lozère,

Citation

Commande:
Commande: _multiple
Entrez le nom de la commande à répéter: unload_xref Commande inconnue "UNLOAD_XREF". Appuyez sur F1 pour obtenir de l'aide.


Tiens, le code ne fonctionne pas sur mon Civil 3D 2015
AutoCAD MAP 3D 2017 - Covadis 15.0b
Forum : http://genie-civil.bbactif.com/
0

#15 L'utilisateur est hors-ligne   La Lozère 

  • ceinture noire 3em dan
  • Groupe : Membres
  • Messages : 1987
  • Inscrit(e) : 28-juin 06
  • LocationGénérac (30) - Chantier CNM

Posté 16 octobre 2014 - 16:13

Salut Lili,
Question bête, tu as bien chargé le lisp correspondant?
Dans mon fonctionnement, c'est un lisp qui est chargé au démarrage, du coup pas de problème.

A plus
www.cad-is.fr
Autocad Map 2015/2017 - Covadis/Autopiste V15.0b - Mensura Genius V8
Nous n’héritons pas de la Terre de nos ancêtres, nous l’empruntons à nos enfants
0

#16 L'utilisateur est hors-ligne   lili2006 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11435
  • Inscrit(e) : 21-décembre 05

Posté 16 octobre 2014 - 16:37

Re,

Oups, je n'étais pas sur la même session AutoCAD, c'était bien le pb du chargement du lisp;...:rolleyes:
AutoCAD MAP 3D 2017 - Covadis 15.0b
Forum : http://genie-civil.bbactif.com/
0

#17 L'utilisateur est hors-ligne   La Lozère 

  • ceinture noire 3em dan
  • Groupe : Membres
  • Messages : 1987
  • Inscrit(e) : 28-juin 06
  • LocationGénérac (30) - Chantier CNM

Posté 09 décembre 2016 - 17:36

Hello,
Je déterre un vieux sujet car je cherche une fonction un peu similaire.
Je voudrais détacher à la volé des images.
J'ai essayé d'adapter le code suivant, mais je n'y arrive pas. Alors si une bonne âme passe dans le coin....
(defun c:unload_xref ( / js name_xref)
  (princ "\nSélectionner l'XRef à décharger. ")
  (while (null (setq js (ssget "_+.:E:S" '((0 . "INSERT")))))
    (princ "\nObjets non valable!")
  )
  (cond
    ((eq (boole 1 (cdr (assoc 70 (tblsearch "BLOCK" (setq name_xref (cdr (assoc 2 (entget (ssname js 0)))))))) 4) 4)
      (command "_.-xref" "_Unload" name_xref)
    )
    (T (princ "\nN'est pas une référence externe. "))
  )
  (prin1)
)


Merci d'avance
www.cad-is.fr
Autocad Map 2015/2017 - Covadis/Autopiste V15.0b - Mensura Genius V8
Nous n’héritons pas de la Terre de nos ancêtres, nous l’empruntons à nos enfants
0

#18 L'utilisateur est hors-ligne   La Lozère 

  • ceinture noire 3em dan
  • Groupe : Membres
  • Messages : 1987
  • Inscrit(e) : 28-juin 06
  • LocationGénérac (30) - Chantier CNM

Posté 12 décembre 2016 - 13:40

Hello,
Bon, finalement, j'ai repris depuis le début, et j'ai réussi à pondre un truc qui en tout cas marche et me convient.
(defun c:unload_image ( / *error str2lst sep pos str aa bb cc lst nom)
  (princ "\nSélectionner l'Image à décharger. ")
;;; Gestion d'erreur
  (defun *error* (msg)
    (if	(/= msg "Fonction annulée")
      (princ (strcat "\nErreur: " msg))
    )
    (princ)
  )
 ;;; Transformation d'une chaine avec séparateur en liste de chaînes
  (defun str2lst (str sep / pos)
    (if	(setq pos (vl-string-search sep str))
      (cons (substr str 1 pos)
	    (str2lst (substr str (+ (strlen sep) pos 1)) sep)
      )
      (list str)
    )
  )
 ;;;
 (while
(setq aa (entget (car (entsel))))
(setq bb (entget (cdr (assoc 340 aa))))
(setq cc (cdr (assoc 1 bb)))
(setq lst (last (str2lst cc "\\")))
(setq nom (car (str2lst lst ".")))
(command "_.-image" "D" nom)
)
  (prin1)
)


toujours en grand merci à (gile) pour son tuto.
www.cad-is.fr
Autocad Map 2015/2017 - Covadis/Autopiste V15.0b - Mensura Genius V8
Nous n’héritons pas de la Terre de nos ancêtres, nous l’empruntons à nos enfants
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)