lecrabe Posté(e) le 18 septembre 2007 Partager Posté(e) le 18 septembre 2007 Hello SVP je desire un petit programme (mais je pense que ca peut se faire en Macro) qui permette la commande Rotation ou Echelle en gardant "en place" les objets sélectionnés ! Car de temps en temps, ça m'énerve de copier sur lui même ou dans un coin, les objets sur lesquels je vais faire une commande Echelle ou Rotation ! Le Decapode "en place" Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bred Posté(e) le 18 septembre 2007 Partager Posté(e) le 18 septembre 2007 Salut,pour info, depuis la version 2006 (je crois), la rotation/copie ou echelle/copie est une option dans ces outils... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose... Lien vers le commentaire Partager sur d’autres sites More sharing options...
richard-c Posté(e) le 18 septembre 2007 Partager Posté(e) le 18 septembre 2007 bonjour, voila 2 programmes (qui ne sont pas de moi) que j'utilise sous V2002, j'ai juste ajouté le SCG puis revient en SCU particulier si c'est le cas ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ch_ech.lsp - gratuiciel; Version 1.1 pour Autocad 13 F et US ou superieur; Revision du : 25/01/98; Ecrit par Didier Lourdelle;;http://www.didier-lourdelle.fr/;;E-mail N°1:dlourdelle@didier-lourdelle.fr;;Vous êtes libres de diffuser ce gratuiciel ;;**************************;***c'est même conseillé***;**************************;;Vous êtes libres de diffuser ce gratuiciel ;;;; Modification de l'echelle sur plusieur entites / a leur point de base;;(defun c:ch_ech ( / n js ent pt1 ech) (SETQ CMDE (GETVAR "cmdecho")) (SETVAR "CMDECHO" 0) ;;modif.Vosges CR - PV - 07/02/2000;;Dans un SCU particulier les objets s'effacent,;;Se place provisoirement dans le SCG - (command "scu" "ef" "CH_ECH");efface le SCU particulier CH_ECH si il existe déja dans le dessin (command "scu" "s" "CH_ECH" );sauve le SCU particulier en CH_ECH (command "scu" "g") (setq n 0 ) (command "_undo" "_m") (prompt "\nSelection des objets :") (setq js (ssget)) (initget 1) (setq ech (getstring "/Reference :")) (if (or (= ech "R") (= ech "r")) (progn (setq long_ref (getreal "Longueur de reference <1>:")) (if (= nil long_ref) (setq long_ref 1.0000000)) (initget (+ 1 2 4)) (setq long_new (getreal "Nouvelle Longueur:")) ) ) (repeat (sslength js) (setq ent (ssname js n)) (SETQ PT1 (cdr (assoc 10 (entget ent)))) (if (or (= ech "R") (= ech "r")) (command "_SCALE" ent "" pt1 "r" long_ref long_new) (command "_SCALE" ent "" pt1 ech) ) (setq n (1+ n)) (IF (= (/ n 5.00) (/ n 5)) (prompt ".")) );repeat ;;Revient dans le SCU précédent (command "scu" "R" "CH_ECH" ) (SETVAR "CMDECHO" CMDE) (terpri)); ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;(defun c:ch_rotat ( / n js ent pt1 ang) (SETQ CMDE (GETVAR "cmdecho")) (SETVAR "CMDECHO" 0) ;;modif.Vosges CR - PV - 07/02/2000;;Dans un SCU particulier les objets s'effacent,;;Se place provisoirement dans le SCG - (command "scu" "ef" "CH_ROTAT");efface le SCU particulier CH_ROTAT si il existe déja dans le dessin (command "scu" "s" "CH_ROTAT" );sauve le SCU particulier en CH_ROTAT (command "scu" "g") (setq n 0 ) (command "_undo" "_m") (prompt "\nSelection des objets :") (setq js (ssget)) (setq ang (getreal "Angle de rotation:")) (repeat (sslength js) (setq ent (ssname js n)) (SETQ PT1 (cdr (assoc 10 (entget ent)))) (command "_rotate" ent "" pt1 ang) (setq n (1+ n)) (IF (= (/ n 50.00) (/ n 50)) (prompt ".")) );repeat ;;Revient dans le SCU précédent (command "scu" "R" "CH_ROTAT" ) (SETVAR "CMDECHO" CMDE) (terpri));;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Lien vers le commentaire Partager sur d’autres sites More sharing options...
bonuscad Posté(e) le 18 septembre 2007 Partager Posté(e) le 18 septembre 2007 Ou tout simplement avec les Grips (poignées), l'option "Copier" en mode Rotation. Cela avec toute version... Il y a aussi le "MOCORO.ARX" des express (MOve,COpy,ROtate) Moi je vote pour les "Grips", on peut changer le point de base de rotation à tout moment. 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 More sharing options...
(gile) Posté(e) le 18 septembre 2007 Partager Posté(e) le 18 septembre 2007 Salut, Bien que partisant des méthodes évoquées plus haut (option Copier avrc ou sans grip), je proposes deux petits LISP façon "macro" pour mettre dans des boutons ou entrer directement à la ligne commande ... Rotation avec copie (RC) : (defun c:rc (/ ss) (if (setq ss (ssget)) (progn (command "_.copy" ss "" "" "") (command "_.rotate" ss "") (while (/= 0 (getvar "cmdactive")) (command pause) ) ) ) (princ) ) Echelle avec copie (EC) : (defun c:ec (/ ss) (if (setq ss (ssget)) (progn (command "_.copy" ss "" "" "") (command "_.scale" ss "") (while (/= 0 (getvar "cmdactive")) (command pause) ) ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 18 septembre 2007 Auteur Partager Posté(e) le 18 septembre 2007 Hello Merci à tous, j'avais déjà utilisé les options @ @ de Copier (pour copier "en place") t aussi le MOROCO.ARX mais sincèrement j'ai quand même une préférence pour les 2 petites routines Lisp de Gilles ! :) Le Decapode "utilisateur fanatique des routines de Gilles" Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
Matt666 Posté(e) le 18 septembre 2007 Partager Posté(e) le 18 septembre 2007 Ou tout simplement avec les Grips (poignées), l'option "Copier" en mode Rotation. Cela avec toute version... C'est quoi cette méthode ??? Je comprends pas bien... Pourrais-tu développer stp le Crabe ? Merci !A bietot.matt. "Chacun compte pour un, et nul ne compte pour plus d'un." Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 18 septembre 2007 Partager Posté(e) le 18 septembre 2007 Encore plus concis : (defun c:ec () (and (vl-cmdf "_.copy" (ssget) "" "" "") (vl-cmdf "_.scale" "_p" "") (while (/= 0 (getvar "cmdactive")) (vl-cmdf pause) ) ) (princ) ) (defun c:rc () (and (vl-cmdf "_.copy" (ssget) "" "" "") (vl-cmdf "_.rotate" "_p" "") (while (/= 0 (getvar "cmdactive")) (vl-cmdf pause) ) ) (princ) ) Pour matt666,- tu sélectionnes les objets- tu sélectionnes une poignée (grip) su un des objets en surbrillance- tu fais clic droit (menu contextuel) ou espace, espace... pour choisir une commande de modification (étirer, déplacer, rotation, échelle, miroir)- et tu as accès à des options : point de Base/Copier/annUler/rEférence/Quitter- point de Base permet de changer le point de base par défaut : la poignée sélectionnée.- rEférence n'existe que pour Rotation et Mirroir [Edité le 18/9/2007 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
bonuscad Posté(e) le 18 septembre 2007 Partager Posté(e) le 18 septembre 2007 C'est quoi cette méthode ??? Je comprends pas bien... Pourrais-tu développer stp le Crabe ? Je pense que tu t'adresse à moi... Autocad à 2 manières de fonctionnement "Sélection -> Verbe" ou "Verbe -> Sélection" (méthode originale par le clavier sur toute version) Si au message vierge de "commande: " d'autocad tu fais un Glisser/Lacher sur des entités graphiques ou simple click sur une seule entité, tu vas activer sois une surbrillance, soit l'activation des poignées sur les entité (voir variable "PICKFIRST") Si c'est la surbrillance tu seras en mode "Sélection -> Verbe", tu lanceras ta commande d'édition APRES ta sélection. Si c'est les poignées tu active un grip en cliquant sur un de ceux-ci (choisir de préférence le point de base directement) et soit avec la barre d'espace, tu fais succéder les commande possibles avec leurs options), soit du choisi directement dans le menu contextuel du click-droit l'action désirée.(Attention à la variable "SHORTCUTMENU") NB:Avec les grips ont peut aussi changer la sélection de calque/couleur/etc... directement dans la barre de gestion (je ne parle pas de la fenêtre de propriétées) 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 More sharing options...
Matt666 Posté(e) le 18 septembre 2007 Partager Posté(e) le 18 septembre 2007 Oups pardon...Merci BonusCad et gile pour ces précisions !J'ai tout bien compris ! A bientot.Matt. [Edité le 24/9/2007 par Matt666] "Chacun compte pour un, et nul ne compte pour plus d'un." Lien vers le commentaire Partager sur d’autres sites More sharing options...
usegomme Posté(e) le 24 septembre 2007 Partager Posté(e) le 24 septembre 2007 SalutPetite remarque pour super (gile) : L'utilisation de la commande copier implique un risque certain d'avoir des objets dupliqués et superposés en cas d'interruption ou d'annulation. Il faudrait mieux ,je pense, utiliser l'option "copier" des commandes rotation et echelle. Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 24 septembre 2007 Partager Posté(e) le 24 septembre 2007 super (gile) :o J'espère que c'est ironique ;) Tu as parfaitement raison usegomme, ces routines sont en fait des sortes macros écrites en LISP avec un désir de concision. On peut aussi leur reprocher de ne pas gérer la variable CMDECHO qui doit être à 1 pour avoir les invites pendant la pause utilisateur. La fonction LISP vl-cmdf utilisée à la place command permet d'évaluer si la commande a abouti : elle retourne T si tous les arguments sont valides (pause compris) et nil sinon, là où un command retourne toujours nil. Donc, moins concis mais plus "secure" : EDIT : voir plus bas (defun c:ec (/ echo) (setq echo (getvar "CMDECHO")) (and (setvar "CMDECHO" 1) (vl-cmdf "_.copy" (ssget) "" "" "") (vl-cmdf "_.scale" "_p" "") (if (not (while (/= 0 (getvar "cmdactive")) (vl-cmdf pause) ) ) (vl-cmdf "_.erase" "_p" "") ) ) (setvar "CMDECHO" echo) (princ) ) (defun c:rc (/ echo) (setq echo (getvar "CMDECHO")) (and (setvar "CMDECHO" 1) (vl-cmdf "_.copy" (ssget) "" "" "") (vl-cmdf "_.rotate" "_p" "") (if (not (while (/= 0 (getvar "cmdactive")) (vl-cmdf pause) ) ) (vl-cmdf "_.erase" "_p" "") ) ) (setvar "CMDECHO" echo) (princ) ) [Edité le 2/10/2007 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 25 septembre 2007 Auteur Partager Posté(e) le 25 septembre 2007 Bon Matin Gilles La classe :) :D :cool: Et en plus la routine essaye de palier aux interruptions de l'operateur :P De toute façon en Informatique, 99% des problèmes sont situés entre le clavier et la chaise ;) Le Decapode (sur son fauteuil :( ) Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
usegomme Posté(e) le 2 octobre 2007 Partager Posté(e) le 2 octobre 2007 Un petit retour pour signaler à ceux qui ne l'auraient pas vu , une petite coquilledans les versions améliorées .Il faut remplacer "_l" par "_p" comme dans les premières versions.Ceci dit l'appelation super (gile) est largement méritée. Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 2 octobre 2007 Auteur Partager Posté(e) le 2 octobre 2007 Hello Désolé mais pour moi les routines fonctionnent parfaitement ! :) "_l" signifie en fait en US/English l'option "Last" ce qui correspond à l'option "Précédent" en Français :D Le Decapode "content" Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 2 octobre 2007 Partager Posté(e) le 2 octobre 2007 Petite précision pour mettre tout le monde d'accord : _Last = Dernier (la dernière entité crée)_Prevoius = précédent (la dernière sélection) Comme les routines copie le (ou les) objet(s) avant de faire la rotation ou le changement d'échelle.Pour avoir un fonctionnement plus proche de l'option Coller des commandes Rotation et Echelle qui laissent en place le (ou les) originaux et modifie la copie, j'ai remplacer _Previous par _Last.Mais j'avais fait les teste un peu vite et sur une seule entité, donc tout fonctionnait, mais si on sélectionne plusieurs entités seul la dernière copiée subira le a rotation ou le changement d'échelle.Donc Usegomme a raison il faut "_P" et pas "_L" pour que les routines fonctionnent avec plusieurs objets . Je corrige les routines... :calim: Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant