Aller au contenu

tourner et echelle référence


x_all

Messages recommandés

Toujours à la recherche du clip perdu, ça fait un petit moment que je cherche à simplifier les commandes échelles et rotation avec référence.

 

Quand on doit faire ça (80% de mes rotation sont suivant ce mode opératoire) j'ai une selection d'objet, j'appelle rotation, je clique 1 point, je tape R, je reclique mon point, puis le point de départ, et le point d'arrivée.

 

J'aimerai appeler RR (pour rotation reférence) cliquer un point puis le départ et l'arrivée, mais je bloque sur le rapel du point cliqué précédemment

 

je partais sur un truc du style:

 

(defun c:rr () (command "rotation" "p" " " "r" ))

 

mais bon... il faudrait récupérer le point et ça doit pas être si simpliste...

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

le dernier point cliqué se récupère avec @. Pas seulement en lisp ou avec des macros, mais aussi quand autocad nous demande de cliquer un point.

 

(defun c:rr () (command "_rotate" (ssget) "" pause "_r" "@" pause pause))

 

si on veut la dernière sélection plutôt qu'une sélection à faire

 

(defun c:rr () (command "_rotate" "_p" "" pause "_r" "@" pause pause))

 

 

Cela peut aussi s'écrire avec des macros

 

Amicalement

Vincent

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Lien vers le commentaire
Partager sur d’autres sites

Grillé de 5 minutes...

 

Mais bon, ce n'est pas inutile. Le @, c'est quand même plus simple que le (getvar 'lastpoint) :)

 

Les utilisateurs de LT préféreront le @ de toute manière

Par ailleurs, ça ne serait peut être pas inutile de rajouter un "_non" avant le "@" pour ne pas être pollué par un accrochage aux objets

 

(defun c:rr () (command "_rotate" "_p" "" pause "_r" "_non" "@" pause pause))

 

 

Amicalement

Vincent

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Lien vers le commentaire
Partager sur d’autres sites

Hello,

Cela n'a pas vraiment sa place dans cette rubrique mais voici une version qui fonctionne dans les 2 sens :

 

(defun c:rr (/ ss)
 (command "_rotate" (if (or (setq ss (ssget "_I" )) (setq ss (ssget ))) ss)  "" pause "_r" "@" pause pause)
 (princ)
 )

 

Dédicace à VDH-Bruno car pour une fois il ne la pas proposée.

 

Olivier

Lien vers le commentaire
Partager sur d’autres sites

Dans les 2 sens, ça veut dire qu'il y a soit une sélection implicite (des objets sélectionnés avant de lancer la commande) qu'on récupère avec (ssget "_I"), soit il n'y a pas de sélection implicite et il faut sélectionner les objets avec (ssget)

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Lien vers le commentaire
Partager sur d’autres sites

un peu à la bourre charrette oblige...

 

je n'ai pas réussi à faire marcher les versions de bruno et zebulon, mais celle de d'olivier marche parfaitement.

 

Cela n'a pas vraiment sa place dans cette rubrique

 

pourquoi? c'est pas pour débutant?

C'est vrai qu'a la lecture de ton code c'est pas trivial non plus... il y a de quoi facilement se prendre les pieds dans le tapis entre les "@" (j'avais pas percuté) les _ ... ..., chose que je faisais copieusement...

 

en tous cas, merci à tous pour vos réponses et idées, je doute pas que je pourrai adapter cette commande à tout ce que je fait avec référence

 

merci tout plein!!!!!

Lien vers le commentaire
Partager sur d’autres sites

je n'ai pas réussi à faire marcher les versions de bruno et zebulon, mais celle de d'olivier marche parfaitement.

 

Tu t'es mal démerdé car elles sont identiques à quelques détails près. Je pense que le "_non" avant le "@" n'est pas inutile sinon cela risque de tourner autour d'un mauvais point en cas d'accrochage aux objets.

 

Olivier est hors sujet compte tenu de la sélection qui devait être la sélection précédente donc "_p"

 

Amicalement

Vincent

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Lien vers le commentaire
Partager sur d’autres sites

@X_all,

Les versions de Zebulon fonctionnent parfaitement. As tu bien sélectionné les objets avant de lancer la commande ?

 

@Zebulon,

Effectivement j'ai oublié le "_non", j'ai d'ailleur copié sur toi pour le "@". :P

Désolé pour le hors sujet, mais faire la sélection en premier me paraissais pas naturel. :D

Par compte la commande est moi facile à décripter.

 

Olivier

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

(defun c:rr (/ ss)
 (command "_rotate" (if (or (setq ss (ssget "_I" )) (setq ss (ssget ))) ss)  "" pause "_r" "@" pause pause)
 (princ)
 )

 

Dédicace à VDH-Bruno car pour une fois il ne la pas proposée.

 

Merci à zebulon_ d'avoir complété la réponse avec l'usage du symbol @, et merci à Olivier pour le clin d'oeil (j'avoue y avoir pensée mais j'étais attendu en réunion et je n'ai pas pris le temps de finasser ma réponse)

 

Pour la sélection implicite personnellement je l'aurais bien vu comme ceci ;) :

(cond ((ssget "_I")) ((ssget)))

 

Mais comme souligné par zebulon_, pour coller un peu plus à la demande il est possible d'adapter le principe pour une sélection précédente au lieu d'une sélection implicite..

(cond ((ssget "_P")) ((ssget)))

 

A+ Bruno

Apprendre => Prendre => Rendre

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Pour compléter/pinailler et faire également écho à une discussion que nous avons déjà eu ici...

Au sujet de la prise en compte des sélections "grippés", la fonction native lisp (ssgetfirst) est 2 fois plus rapide au benchmark que la sélection implicite (ssget "_I").

 

En fait l'usage de l'expression (ssget "_I") se justifie lorsque l'on souhaite appliquer un filtre de sélection sur les objets grippés.

 

Donc dans le cas présent pour être "puriste" la sélection implicite pourrait s'établir comme ceci:

(cond ((cadr(ssgetfirst))) ((ssget)))

 

A+ Bruno

Ps: N'ayant pas de réunion cette fois ci, j'ai pris le soin de finasser, désolé ;-)

Apprendre => Prendre => Rendre

Lien vers le commentaire
Partager sur d’autres sites

Indépendamment des tous ces pinaillages, dont la lecture m'apprend des choses, je vous remercie encore car je me sers de cette rotation 300 fois par jour

 

:)

 

je me demandais bien d’où sortait ce "_I", ... et même si je benchemarque pas des masse , j'en prend bonne note...

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é