Aller au contenu

sélection et zoom


x_all

Messages recommandés

bonjour...

 

comme il parait qu'on a l'oreille d'un officiel d'autocad, je me permet de relever un bug qui traine sur ce logiciel depuis que je l'utilise avec une sourie à roulette et ça date pas d'hier...

 

bon... sous DOS un zoom était considéré comme une commande, et en tant que tel, on ne pouvait pas l'utiliser de manière transparente. Avec l'arrivée de la roulette on pouvais enfin zoomer pendant une commande !!

 

le bug

 

en 1 j'ai une vue générale de mon dessin je m’appète a faire une sélection.

 

http://joch04.free.fr/images/1.jpg

 

en 2 le premier clic

 

http://joch04.free.fr/images/2.jpg

 

en 3, pour finaliser ma sélection, il faut que je zoome pas mal (a la roulette) car il y a un truc que je ne veux pas...

 

http://joch04.free.fr/images/3.jpg

 

en 4 je dé zoome toujours à la roulette et surprise (mauvaise) ce qui n'était pas visible pendant l'étape 3 n'est pas pris en compte....

 

http://joch04.free.fr/images/4.jpg

 

En plus de corriger ce bug qui se retrouve avec étirer, copier ext... Ne serai t-il pas temps de séparer les zooms des commandes d'édition comme sur Révit par exemple ou les commandes de vue ne réinitialisent pas la sélection?

Lien vers le commentaire
Partager sur d’autres sites

Merci x_all,

 

J'appuie, évidemment ! ;)

Je me fais encore avoir parfois. C'est agaçant...

Seuls nous allons vite, ensemble nous allons plus loin...

CPU Intel 3,5Go / Nvidia RTX-3090

AutoCad (Architecture) 2022 - Lumion PRO

BMW R-1200-RT, c'est moche, oui... je sais...

 

www.neda.ch

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Avant la roulette de la souris on pouvait déjà zoomer de manière transparente, pendant une commande. Il fallait faire ' (apostrophe ou prime) z ou zoom et valider. Ceci est toujours possible.C'est la prime commande; commande qui prime sur une autre.

 

'zoom

'snapang

Par exemple. Deux commande que j'utilise régulièrement

 

Par exemple, tu es dans la commande déplacer. Tu peux pendant la commande "déplacer" taper 'z --> valider, faire une fenêtre de zoom à l'endroit où tu veux et tu reviens aussitôt dans la commande "déplacer" pour finir ton action ;)

 

Exemple en vidéo:

 

http://www.youtube.com/watch?v=ODIEcf4yLDQ

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

tien tien... je l'avais oublier celle là... et pour tout dire j’avais un peu d'espoir

 

il n’empêche que...

 

1 je lance ma copie

http://joch04.free.fr/images/11.jpg

 

2 j'appelle 'z

http://joch04.free.fr/images/12.jpg

 

3 je vais la ou je veux pour éviter un objet et je valide la fin de ma selection

http://joch04.free.fr/images/13.jpg

 

4 j'admire le résultat

http://joch04.free.fr/images/14.jpg

 

 

Quand ça veux pas, ça veux pas... :P

 

 

en fait le pb, c'est sur la sélection,que ce soit la roulette ou 'z, une fois la sélection terminée c'est sur que la commande n'oublie pas les objets... et heureusement

 

mais essaye ton truc sur la commande étirer. tu lance 'z pour choper un détail, tu valide, et tout ce qui était pas dans le cadre quand tu as validé ne s'étire pas...

Lien vers le commentaire
Partager sur d’autres sites

bonjour à tous

 

moi aussi je suis d'accord avec toi, du coup je me pose le problème à l'envers.

je fais une large sélection puis je désélectionne les objet en trop.

j’admets que ce peut être un peu long des fois. mais faute de mieux!

Le trlalala du nain

  • - Moi c'que j'aime dans les cavernes
  • - C'est qu'on peut allez piocher.
  • - on peut extraire du minerais
  • - Et des pierres pour les tailler
Lien vers le commentaire
Partager sur d’autres sites

tien tien... je l'avais oublier celle là... et pour tout dire j’avais un peu d'espoir

 

il n’empêche que...

 

1 je lance ma copie

http://joch04.free.fr/images/11.jpg

 

2 j'appelle 'z

http://joch04.free.fr/images/12.jpg

 

3 je vais la ou je veux pour éviter un objet et je valide la fin de ma selection

http://joch04.free.fr/images/13.jpg

 

4 j'admire le résultat

http://joch04.free.fr/images/14.jpg

 

 

Quand ça veux pas, ça veux pas... :P

 

 

en fait le pb, c'est sur la sélection,que ce soit la roulette ou 'z, une fois la sélection terminée c'est sur que la commande n'oublie pas les objets... et heureusement

 

mais essaye ton truc sur la commande étirer. tu lance 'z pour choper un détail, tu valide, et tout ce qui était pas dans le cadre quand tu as validé ne s'étire pas...

 

J'avais déjà remarqué que la commande "étirer" foirait un peu lorsqu'on zoom sur une partie du dessin pendant la commande et que les objets hors écran, même si ceux-ci sont dans la fenêtre de capture, ne sont pas étiré.

Et pour ton exemple, c'est vrai qu'AutoCAD a parfois des soucis de sélection sur les objets qui ne sont plus dans son champs de vision, à savoir l'écran.

d'accord avec toi ;)

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

Pareil , j'ai remarqué cela depuis bien longtemps et toujours pas corrigé sur la 2013, c'est agaçant dry.gif

 

D’ailleurs on voir bien la limite de sélection représentée en pointillé qui reste collé le long de l'écran plutot que de disparaitre quand on zoom... ce qui indique bien la sélection des objets à l’intérieur de la sélection sur l'écran huh.gif

 

Par contre sur la 2013, avec la fonction étirer on peu étirer plusieurs zones en sélectionnant plusieurs objets avant de donner la distance unique, avant on avait droit qu'à une sélection. wink.gif

Lien vers le commentaire
Partager sur d’autres sites

  • 8 mois après...

C'est vrai que c'est agaçant!

 

D’ailleurs on voir bien la limite de sélection représentée en pointillé qui reste collé le long de l'écran plutot que de disparaitre quand on zoom... ce qui indique bien la sélection des objets à l’intérieur de la sélection sur l'écran

On peut remarquer que dans cette situation si on appui sur la molette pour faire un pan (avec le symbole main) et qu'on se déplace, que le cadre de sélection est réduit.

 

J'ai essayer ceci, (on pourrait le mettre dans un bouton)

((lambda ( / p1 p2)
(setvar "cmdecho" 0)
(command "'_.-view" "_save" "$TMP$")
(initget 9)
(setq p1 (getpoint "\n1er point?: "))
(initget 41)
(setq p2 (getcorner p1 "\n2ème point?: "))
(command "'_.-view" "_restore" "$TMP$")
(command "'_.-view" "_delete" "$TMP$")
(setvar "cmdecho" 1)
(if (zerop (getvar "cmdactive"))
	(sssetfirst nil (ssget (if (> (car p1) (car p2)) "_C" "_W") p1 p2))
	(command (if (> (car p1) (car p2)) "_Crossing" "_Window") p1 p2)
)
(prin1)
))

 

Chose bizarre cela fonctionne bien en mode sélection/action (c'est à dire avec les grips), par contre en action/sélection (c'est à dire en transparence dans une commande standard), cela fonctionne bien la 1ere fois, mais par la suite le point p1 est systématiquement substitué par le point p2 de la précédente action .!?!? Je ne comprends pas pourquoi!

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

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

par contre en action/sélection (c'est à dire en transparence dans une commande standard), cela fonctionne bien la 1ere fois, mais par la suite le point p1 est systématiquement substitué par le point p2 de la précédente action .!?!? Je ne comprends pas pourquoi!

 

Malgré cette bizarerie je garde tout de même ton code (avec ta permission bien sûr. :P )

 

Olivier

Lien vers le commentaire
Partager sur d’autres sites

Bonjour BonusCAD,

 

Chose bizarre cela fonctionne bien en mode sélection/action (c'est à dire avec les grips), par contre en action/sélection (c'est à dire en transparence dans une commande standard), cela fonctionne bien la 1ere fois, mais par la suite le point p1 est systématiquement substitué par le point p2 de la précédente action .!?!? Je ne comprends pas pourquoi!

 

Cela vient certainement du fait que la command "'_.-view" avec l’option "_restore" exécute une régénération de l’affichage ce qui exclut une utilisation en mode transparent. C’est un souci de même nature que j’avais rencontré ici http://cadxp.com/index.php?/topic/35882-modifier-temporairement-l%E2%80%99affichage-des-lignes-discontinues-en-continues/ avec la commande "'_.ltscale" bien que les conséquences étaient différente car il me lançait un Régénération en file d'attente. Empêchant la mise à jour de l’affichage par transparence.

 

 

Pour avoir la commande en transparence, il possible d’adapter facilement ton code en substituant l’usage de la commande _.-view, via les variables viewctr, viewsize et la méthode vla-ZoomCenter.

 

Le code :

;; Enregistre une sélection pendant en zoom effectue une sélection pendant
;; zoom. Avant ou pendant une commande AutoCAD.
(defun c:selzoom (/ p1 p2 viewctr viewsize jsel)
 (vl-load-com)
 (setq viewctr  (trans (getvar 'VIEWCTR) 1 0)
       viewsize (getvar 'VIEWSIZE)
 )
 (initget 9)
 (setq p1 (getpoint "\n1er point?: "))
 (initget 41)
 (setq p2 (getcorner p1 "\n2ème point?: "))
 (vla-ZoomCenter (vlax-get-acad-object) (vlax-3d-point viewctr) viewsize)
 (setq jsel (ssget (if (> (car p1) (car p2))   "_C"    "_W" )  p1  p2 ) )
 (cond ((zerop (getvar "cmdactive")) (sssetfirst nil jsel) (princ))
       (jsel)
       (T (princ))
 )
)

 

A tester, A+ Bruno

Apprendre => Prendre => Rendre

Lien vers le commentaire
Partager sur d’autres sites

Bonjour VDH-Bruno

 

Cela vient certainement du fait que la command "'_.-view" avec l’option "_restore" exécute une régénération de l’affichage ce qui exclut une utilisation en mode transparent.

 

Pas sur que cela vienne de là car en mode sélection/verbe, il n'y a pas de problème!

En tout cas ta formulation à l'avantage de supprimer les appels par (command), donc...: un plus indéniable.

 

Par curiosité j'ai essayé mon code sous une version 2008, mais la transparence de VUE est très mal supportée à contrario de la version 2011 où je l'ai conçue. Alors que ta version ne pose aucun problème suivant la version d'Autocad.

 

Adoptée!

 

et je conseille à Olivier de faire de même... :P

Malgré cette bizarerie je garde tout de même ton code

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

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Pas sur que cela vienne de là car en mode sélection/verbe, il n'y a pas de problème!

Oui, tu as raison, cela ne vient pas de là, c’est plus simplement dû à une incompatibilité entre le mode transparent et l’usage de la fonction command dans les expressions lisp. D’ailleurs je m’étais déjà fait cette réflexion ici http://cadxp.com/index.php?/topic/35882-modifier-temporairement-l%e2%80%99affichage-des-lignes-discontinues-en-continues/page__view__findpost__p__195287

 

 

Pour s’en convaincre on peut s’appuyer sur la commande zoom, commande qui ne devrait pas porter à discussion quelque soit la version d’AutoCAD :

 

Lancement de la commande ‘zoom en transparence à la ligne de commande

Commande: (setq p2 (getcorner (setq p1 (getpoint "\nPremier point: "))

"\nSpécifiez le coin opposé: "))

 

Premier point:

Spécifiez le coin opposé: (12085.1 11609.3 0.0)

 

Commande:

Commande:

Commande: _move

Choix des objets: '_.zoom

 

>>Spécifiez le coin d'une fenêtre, entrez un facteur d'échelle (nX ou nXP) ou

[Tout/Centre/DYnamique/ETendu/Précédent/Echelle/Fenêtre/Objet] <temps réel>: !p1

(9363.77 7909.78 0.0)

 

>>>>Spécifiez le coin opposé: !p2

(12085.1 11609.3 0.0)

 

Reprend la commande DEPLACER.

 

Choix des objets:

Ok pas de problème, on a bien les chevrons du mode transparent d’activé dans les invite de commande

 

Lancement de la commande ‘zoom en transparence depuis une expression lisp

 

Commande: _move

Choix des objets: (command "'_.zoom" p1 p2)

'_.zoom

 

*Sélection non valable*

Attend un point ou

Fenêtre/Dernier/Capture/BOîte/TOUT/Trajet/SPolygone/CPolygone/Groupe/Ajouter/Sup

primer/Multiple/Précédent/annUler/AUto/uniQue/SOus-objet/Objet

; erreur: Fonction annulée

 

Choix des objets:

Erreur, le mode transparent ne s’active pas.. et c’est idem depuis une fonction lisp définit avec c :xxx.

 

 

En tout cas ta formulation à l'avantage de supprimer les appels par (command), donc...: un plus indéniable.

…..

Adoptée!

et je conseille à Olivier de faire de même... :P

 

Et ta formulation suivante :

(setvar "cmdecho" 1)
(if (zerop (getvar "cmdactive"))
       (sssetfirst nil (ssget (if (> (car p1) (car p2)) "_C" "_W") p1 p2))
       (command (if (> (car p1) (car p2)) "_Crossing" "_Window") p1 p2)
)
(prin1)

Est visuellement plus jolie au retour d’invite sur la ligne de commande AutoCAD, je conseillerai donc à Olivier de penser à un mixe des 2. ;)

 

A+ Bruno

Apprendre => Prendre => Rendre

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Commande: _move

Choix des objets: (command "'_.zoom" p1 p2)

'_.zoom

 

*Sélection non valable*

Attend un point ou

Fenêtre/Dernier/Capture/BOîte/TOUT/Trajet/SPolygone/CPolygone/Groupe/Ajouter/Sup

primer/Multiple/Précédent/annUler/AUto/uniQue/SOus-objet/Objet

; erreur: Fonction annulée

 

Choix des objets:

 

Alors là; il y a vraiment une bizarerie !!! :D

 

Parce-que moi j'obtiens ceci

 

Commande: _move

 

Choix des objets: (command "'_.zoom" p1 p2)

'_.zoom

>>Spécifiez le coin d'une fenêtre, entrez un facteur d'échelle (nX ou nXP) ou

[Tout/Centre/DYnamique/ETendu/Précédent/Echelle/Fenêtre/Objet] <temps réel>:

>>>>Spécifiez le coin opposé:

Reprend la commande DEPLACER.

 

 

...et d'ailleurs la fonction lisp fonctionne aussi.

 

Commande: (defun c:toto () (command "'_.zoom" p1 p2) (princ))

C:TOTO

 

Commande: _move

 

Choix des objets: 'toto

'_.zoom

>>Spécifiez le coin d'une fenêtre, entrez un facteur d'échelle (nX ou nXP) ou

[Tout/Centre/DYnamique/ETendu/Précédent/Echelle/Fenêtre/Objet] <temps réel>:

>>>>Spécifiez le coin opposé:

Reprend la commande TOTO.

 

Choix des objets:

Choix des objets:

Choix des objets: Spécifiez le coin opposé: 1 trouvé(s)

 

Choix des objets:

Spécifiez le point de base ou [Déplacement] <Déplacement>: Spécifiez le

deuxième point ou <utiliser le premier point comme déplacement>:

 

Si j'ai le temps ce weekend je refais des essais avec la première version de Bonuscad car je trouvais les zooms pendant la commande plus intuitifs, j'espère que tu ne m'en voudras pas VDH-Bruno. ;)

 

Adoptée!

 

et je conseille à Olivier de faire de même... :P

 

Pour moi, je n'ai encore rien adoptée définitivement.

 

@+ Olivier

Lien vers le commentaire
Partager sur d’autres sites

Alors là; il y a vraiment une bizarerie !!!

 

Parce-que moi j'obtiens ceci

Merci de ton retour –Olivier-, à suivre effectivement..

Personnellement je suis sur AutoCAD 2007 sous seven 32 bit sans virtualisation (donc c’est pas ce qu’il y a de plus top comme type d’installe.. )

 

Si j'ai le temps ce weekend je refais des essais avec la première version de Bonuscad car je trouvais les zooms pendant la commande plus intuitifs, j'espère que tu ne m'en voudras pas VDH-Bruno.

Ho, non !!! Ce n’est pas le genre de la maison, je propose après chacun prend/donne ce qu’il veut et comme il peut, c’est l’idée que je me fais du partage et de l’entre-aide… :)

 

A+

Apprendre => Prendre => Rendre

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous,

Après quelques petits me revoilà!

Donc, comme l'avais précisé Bonuscad, son programme fonctionne très bien si dans le sens nom / verbe.

Dans le sens verbe nom cela fonctionne la première fois, mais là seconde fois,le point p1 ne prend pas le point cliqué mais le point p2 de la précédente utilisation. Je n'arrive pas à trouver où est enregistrée cette valeur lorsque la commande est terminée. Car en lisant la valeur de !p1 et de !p2 à la fin de la commande, elles sont bien à nil. Cela ne correspond pas non plus à la valeur de variable Autocad LASTPOINT.

 

Pour le moment j'ai contourné le problème avec ceci (n'aimant pas les boutons , je l'ai inséré dans un defun c:...

 

(defun c:toto ( / p1 p2)
 (setvar "cmdecho" 0)
 (command "'_.-view" "_save" "$TMP$")
 (initget 9)
 (if (= *toto* 1) (getpoint "\n1er point?: "))
 (setq p1 (getpoint "\n1er point?: "))
 (initget 41)
 (setq p2 (getcorner p1 "\n2ème point?: "))
 (command "'_.-view" "_restore" "$TMP$")
 (command "'_.-view" "_delete" "$TMP$")
 (setvar "cmdecho" 1)
 (if (zerop (getvar "cmdactive"))
   (sssetfirst nil (ssget (if (> (car p1) (car p2)) "_C" "_W") p1 p2))
   (progn
     (setq *toto* 1)
     (command (if (> (car p1) (car p2)) "_Crossing" "_Window") p1 p2)

     ))
 (prin1)
 )

 

Du coup le point p1 est demandé 2 fois lorsque nécessaire. La première fois pour rien puis une seconde fois réelle. C'est loin d'être trèe propre mais me suffit pour mon utilisation.

 

@+

Olivier

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité