Aller au contenu

Rotation


willy95

Messages recommandés

Bonjour à tous,

 

Afin d'utiliser la commande rotation avec une référence d'angle de départ et une autre référence d'arrivé, j'utilise la commande rotation mais je passe mon temps à cliquer sur R puis P bien trop souvent, alors j'aimerai bien mettre tous ça dans un petit code pour me simplifié cette répétition qui devient insupportable.

 

Mais je ne comprends pas pourquoi la commande "C" n'est donc pas reconnue ! Si quelqu'un peut m'expliquer à résoudre mon problème se serait vraiment sympa.

 

(defun c:rotobj (/ Ang12a Ang12 Ang34a Ang34 p1 p2 p3 p4)

(setq SELEC1 (ssget))

(setq p1 (getpoint "\nSaisir le 1er point de l'objet a rotationner : "))

(setq p2 (getpoint "\nSaisir le 2eme point de l'objet a rotationner : "))

(setq Ang12a (angle p1 p2) )	

(setq Ang12 (angtos Ang12a 2 4))

(setq p3 (getpoint "\nSaisir le 3eme point -> 1er de la reference de rotation : "))

(setq p4 (getpoint "\nSaisir le 4eme point -> 2eme de la reference de rotation : "))

(setq Ang34a (angle p3 p4) )	

(setq Ang34 (angtos Ang34a 2 4))

(command "_rotate" SELEC1 "" p1 "R" !Ang12 "C" !Ang34 )

;(command "_rotate" SELEC1 "" p1 "R" p1 p2 "" "C" p3 p4 )

)

Lien vers le commentaire
Partager sur d’autres sites

Salut.

 

La commande 3DROTATION (au lieu de ROTATION3D) pourrait t’intéresser, même si tu semble avoir un besoin encore différent que toutes les options implémentées en natif. On en a beaucoup parlés ici : https://cadxp.com/topic/49098-rotation3d-uniquement-selon-le-scg/

 

Tu peut sauter mes messages les plus longs, ils n'apporterons rien à ta problématique.

 

Cordially.

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Lien vers le commentaire
Partager sur d’autres sites

D'après l'aide AutoCAD (en anglais pour éviter tout problème de traduction ou de noms d'options) :

 

Enter an angle, specify a point, enter c , or enter r.

Et désolé pour le poste hors-sujet, je manque un peut de sommeil. J'avais réussit a zapper que tu parlais juste de rotation 2D.

 

EDIT : Et s'il te plais poste ton LISP une fois fonctionnel, il me serait utile. J'ignorais qu'il était possible de passer par R et j'utilisait les commandes de rotation 3D pour faire ce que tu fait.

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Coucou,

 

Dans un premier temps, je remarque que tu utilises le "!" devant le nom de tes variables dans ta fonction (command), ce qui est inutile car tu es dans une fonction :3

Si je comprend bien ta demande, tu veux simplement t'éviter de saisir les keyword "R" (pour "Référence") et "C" (pour "Copy"). Cela est un peu étrange étant donné que tu ne t'épargnes qu'une saisie clavier simple à l'instar des points p1, p2, p3 et p4 que tu dois spécifier à chaque fois mais bon ^^"

 

En simplifiant l'écriture (pour s'éviter 150 variables), j'aurais ceci :

(defun c:rotobj (/ jsel p1)

(if (or (setq jsel (ssget "_I"))
	(setq jsel (ssget))
    )
	(command
		"_ROTATE"
		jsel
		""
		(setq p1 (getpoint "\nSaisir le point de référence : "))
		"C"
		"R"
		p1
		(getpoint "\nSaisir l'angle de référence : ")
		(getpoint "\nSpécifier le nouveau point de rotation : " )
	)
)
(princ)

)

 

Si cela ne correspond pas à ta demande, alors c'est que je n'ai pas compris la demande :3

 

Bisous,

Luna

Lien vers le commentaire
Partager sur d’autres sites

Merci Luna pour ta réponse qui me donne de quoi méditer sur les choses étranges que j'intègre dans mes pseudo codes,

 

mais bon j'ai enfin réussi à le faire fonctionner grâce à la réflexion de chacune de vos réponses et principalement à Tramber qui m'avait bien dit de mettre "C" au début.

 

(defun c:rotobj (/ p1 p2 p3 p4)

(setq SELEC1 (ssget))

(setq p1 (getpoint "\nSaisir le 1er point de l'objet a rotationner : "))

(setq p2 (getpoint "\nSaisir le 2eme point de l'objet a rotationner : "))

(setq p3 (getpoint "\nSaisir le 3eme point -> 1er de la reference de rotation : "))

(setq p4 (getpoint "\nSaisir le 4eme point -> 2eme de la reference de rotation : "))

(command "_rotate" SELEC1 "" p1 "_R" p1 p2 "_P" p3 p4)

)

Lien vers le commentaire
Partager sur d’autres sites

Merci Luna pour ta réponse qui me donne de quoi méditer sur les choses étranges que j'intègre dans mes pseudo codes,

 

mais bon j'ai enfin réussi à le faire fonctionner grâce à la réflexion de chacune de vos réponses et principalement à Tramber qui m'avait bien dit de mettre "C" au début.

 

(defun c:rotobj (/ p1 p2 p3 p4)

(setq SELEC1 (ssget))

(setq p1 (getpoint "\nSaisir le 1er point de l'objet a rotationner : "))

(setq p2 (getpoint "\nSaisir le 2eme point de l'objet a rotationner : "))

(setq p3 (getpoint "\nSaisir le 3eme point -> 1er de la reference de rotation : "))

(setq p4 (getpoint "\nSaisir le 4eme point -> 2eme de la reference de rotation : "))

(command "_rotate" SELEC1 "" p1 "_R" p1 p2 "_P" p3 p4)

)

 

 

Hello,

 

Tu peux même te simplifier un clic gratuitement

 

(defun c:rr (/ SELECT1 p1 p2 p3 p4)

 

(setq SELEC1 (ssget))

 

(setq p1 (getpoint "\nSaisir le 1er point de l'objet a rotationner : "))

 

(setq p2 (getpoint "\nSaisir le 2eme point de l'objet a rotationner : "))

 

(setq p3 (getpoint "\nSaisir le 3eme point -> angle d'arrive de la rotation : "))

 

(command "_rotate" SELEC1 "" p1 "_R" p1 p2 "_P" p1 p3)

 

)

 

Amicalement

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é