lili2006 Posté(e) le 10 septembre 2008 Posté(e) le 10 septembre 2008 Bonsoir à toutes et tous, J'ai souvent besoin de faire un copier-coller avec rotation référence, pas vous ? Si oui, comment vous-y prenez-vous ? La commande "_.MOCORO" des express est intéressante mais ne permet pas de choisir une référence pour la rotation, dommage,.... Merci d'avance,. Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Tramber Posté(e) le 11 septembre 2008 Posté(e) le 11 septembre 2008 Idem ! Moi je trace une ligne provisoire jusqu'au centre de rotation et je fais tout par les poignées avec Espace 2 fois + C comme Copie puis le REF de l'option (R ne marche pas, ce bug me gave depuis plusieurs versions).Ensuite j'efface ma ligne.Voilà comment je m'y prends. Et pourtant je programme à l'année des kilos et des kilos de code. Comme quoi cette bonne vieille méthode sans prog me suffit largement. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
lili2006 Posté(e) le 11 septembre 2008 Auteur Posté(e) le 11 septembre 2008 Bonjour à toutes et tous, Merci de ta réponse Tramber, Effectivement, la ligne (ou droite) de référence semble inévitable, mais c'est bien dommage de ne pas pouvoir coupler les deux commandes. Sur "_.MOCORO" des express, il ne manquerait plus que le choix d'une référence,... D'autres idées ou méthodes ? Merci d'avance. Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
usegomme Posté(e) le 11 septembre 2008 Posté(e) le 11 septembre 2008 Salut Lilian , essaye ça : (defun c:XEDIT (/ SS1 P1 IN INP YN ELAST groupobj) (setq SS1 nil SS1 (ssget) P1 (getpoint "\nPoint de Reference:") IN 1 YN 1) (setq groupobj (getvar "pickstyle")) (setvar "pickstyle" 0) ; groupe inactif (while YN (while (/= IN 2) (prompt "\nCopier/Deplacer/Rotation/Echelle/Miroir/Pt ref/Quitter :") (setq INP (grread) IN (car INP)) (if (= IN 2) (setq YN (strcase (chr (cadr INP)))))) (cond ((= YN "C") (setq ELAST (entlast)) (command "_COPY" SS1 "" P1 pause) (setq P1 (getvar "LASTPOINT") SS1 nil SS1 (ssadd)) (while (entnext ELAST) (ssadd (entnext ELAST) SS1) (setq ELAST (entnext ELAST)))) ((= YN "D") (command "_MOVE" SS1 "" P1 pause) (while (not (zerop (getvar "cmdactive")))(command pause)) (setq P1 (getvar "LASTPOINT"))) ((= YN "R") (command "_ROTATE" SS1 "" P1 pause ) (while (not (zerop (getvar "cmdactive")))(command pause)) ) ((= YN "P") (setq P1 (getpoint "\n-XEDIT- Nouveau Point de Reference :"))) ((= YN "E") (command "_SCALE" SS1 "" P1 pause ) (while (not (zerop (getvar "cmdactive")))(command pause)) ) ((= YN "M") (setq ELAST (entlast)) (command "_MIRROR" SS1 "" pause pause pause) (setq P1 (getpoint "\n-XEDIT- Nouveau Point de Reference :") SS1 nil SS1 (ssadd)) (while (entnext ELAST) (ssadd (entnext ELAST) SS1) (setq ELAST (entnext ELAST)))) ((= YN "Q") (setq YN nil SS1 nil) (gc))) (setq IN 1)) (setvar "pickstyle" groupobj) ; groupe objet restore (princ)) Les options de départ fonctionnent avec une seule touche , pas besoin de taper "entrée". Pour "référence" le fonctionnement est ordinaire. Il faut penser à quitter par la touche "Q".
lili2006 Posté(e) le 11 septembre 2008 Auteur Posté(e) le 11 septembre 2008 Re, Pas mal pour un "bricoleur de lisp", je te cite usegomme, Si cela te semble facile à réaliser, est-ce que l'on peut avoir les différentes options (Copier/Deplacer/Rotation/Echelle/Miroir/Pt ref/Quitter ) sur la souris via le dyn (F12) ?? Sinon, c'est exactement ce que je recherche,... Un grand merci à toi, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
usegomme Posté(e) le 11 septembre 2008 Posté(e) le 11 septembre 2008 Il n'est pas de moi ce bon lisp qui a au moins 10 ans , je ne connais pas l'auteur, je ne me souviens plus où je l'ai récupéré. Je peux te le passer en menu contextuel ,mais il te faudra patienter un peu , ça implique également le retour à l'usage de la touche "entrée pour l'utilisation clavier.A+
usegomme Posté(e) le 11 septembre 2008 Posté(e) le 11 septembre 2008 Salut Tramber le REF de l'option (R ne marche pas, ce bug me gave depuis plusieurs versionsSur la 2008 c'est un bug volontaire puisqu'il faut taper : ef pour réference . Pas franchement pratique car inhabituel et il faut être attentif à la ligne de cde.
lili2006 Posté(e) le 11 septembre 2008 Auteur Posté(e) le 11 septembre 2008 Re, Je peux te le passer en menu contextuel Super ! mais il te faudra patienter un peu Pas de problème ! ;) Merci d'avance, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 11 septembre 2008 Posté(e) le 11 septembre 2008 Salut, Le LISP que j'utilise, le point de déplacement sert de centre de rotation. (defun c:crr (/ elast ss ent) (setq elast (entlast)) (if (vl-cmdf "_copy" (ssget) "" pause pause) (progn (setq ss (ssadd) ent (if elast (entnext elast) (entnext) ) ) (while ent (ssadd ent ss) (setq ent (entnext ent)) ) (vl-cmdf "_rotate" ss "" (getvar "LASTPOINT") "_r" "@" pause pause) ) ) (princ) ) [Edité le 11/9/2008 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 11 septembre 2008 Auteur Posté(e) le 11 septembre 2008 Re, Je viens de tester, ça marche impec ! L'option "point" dans la spécification de l'ange s'utilise de quelle façon exactement ?Pour être sûr d'avoir tout compris,... Merci (gile), usegomme, j'attends "patiemment" ta mouture,... A bientôt sur ce post alors,.. :P Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 11 septembre 2008 Posté(e) le 11 septembre 2008 Salut, Cette routine utilise les commandes COPIER et ROTATION natives, les options sont celles de ces commandes (elle pourrait être écrite en MACRO de commande).L'option "Point" de l'option "Reference" de la commande ROTATION permet de spécifier l'angle avec deux points indépendant du centre de rotation. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 13 septembre 2008 Auteur Posté(e) le 13 septembre 2008 Bonjour à toutes et tous, Oui, c'est après plusieurs résultats "inattendus" que j'ai compris pleinement l'utilisation de l'option "point". Merci encore (gile) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
usegomme Posté(e) le 15 septembre 2008 Posté(e) le 15 septembre 2008 Salut , voilà "xedit" revu selon ta demande Lilian , il y a encore qlq amélioration à faire notamment avec la cde miroir , mais pour l'essentiel ça marche bien. Version améliorée ;; adaptation v 1.2 par usegomme de XEDIT auteur inconnu (defun nsel-xe () ;; nouv objet-> nouv sélection (setq sel nil sel (ssadd)) (while (entnext elast) (ssadd (entnext elast) sel) (setq elast (entnext elast)) ) ) (defun c:xe (/ sel pdr npdr act elast nelast) (setq act T sel (ssget)) ;;;; (if sel (command "_move" sel "")) ;; pour surbrillance (if sel (setq pdr (getpoint "\nSpécifiez le point de base:"))) ;;;; (command) ;; fin surbrillance (while (and sel pdr act) (initget "Copier Deplacer Rotation Echelle Scale-ref Miroir Pt-base Quitter") (setq act (getkword "\n [Copier/Deplacer/Rotation/Echelle/Scale-ref/Miroir/Pt-base/Quitter] :")) (cond ((= act "Copier") (setq elast (entlast)) (command "_copy" sel "" pdr pause) (setq pdr (getvar "LASTPOINT")) (nsel-xe) ) ((= act "Deplacer") (command "_move" sel "" pdr pause) (while (not (zerop (getvar "cmdactive")))(command pause)) (setq pdr (getvar "LASTPOINT")) ) ((= act "Rotation") (setq elast (entlast)) (command "_rotate" sel "" pdr pause ) (while (not (zerop (getvar "cmdactive")))(command pause)) (setq nelast (entlast)) (if (not (equal elast nelast))(nsel-xe)) ) ((= act "Pt-base") (setq pdr (getpoint "\n Spécifiez le nouveau point de base :")) ) ((= act "Echelle") (setq elast (entlast)) (command "_scale" sel "" pdr pause ) (while (not (zerop (getvar "cmdactive")))(command pause)) (setq nelast (entlast)) (if (not (equal elast nelast))(nsel-xe)) ) ((= act "Scale-ref") (setq elast (entlast)) (command "_scale" sel "" pdr "_r" ) (while (not (zerop (getvar "cmdactive")))(command pause)) (setq nelast (entlast)) (if (not (equal elast nelast))(nsel-xe)) ) ((= act "Miroir") (setq elast (entlast)) (command "_mirror" sel "" pause pause pause) (setq npdr (getpoint "\n Nouveau Point de base <>:")) (if npdr (setq pdr npdr npdr nil)) (setq nelast (entlast)) (if (not (equal elast nelast))(nsel-xe)) ) ((= act "Quitter") (setq act nil) ) ) ;;; fin cond ) ;; fin while (princ) ) ;;; fin xe [Edité le 15/9/2008 par usegomme] [Edité le 17/9/2008 par usegomme]
usegomme Posté(e) le 15 septembre 2008 Posté(e) le 15 septembre 2008 Je viens de remplacer le code par une version améliorée, + une commande au nom barbare "scale-ref" pour avoir echelle référence directement car c'est ce que j'utilise presque toujours.
lili2006 Posté(e) le 15 septembre 2008 Auteur Posté(e) le 15 septembre 2008 Bonsoir à toutes et tous, Merci usegomme , voici ce que me retourne ma ligne de commande => Commande:XEDChoix des objets: 1 trouvé(s)Choix des objets:Spécifiez le point de base:*Incorrect*ERREUR d'application: irfcld Je n'ai donc pas pu tester pour le moment,... Merci encore, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lesourd2 Posté(e) le 15 septembre 2008 Posté(e) le 15 septembre 2008 Salut usegomme Tester vite fait (v_2008 full) sans aucun probleme pour l'instant Merci @+
usegomme Posté(e) le 16 septembre 2008 Posté(e) le 16 septembre 2008 Bonjour ERREUR d'application: irfcld Je suis dans la même config que lesourd2 que je remercie au passage, et donc je ne sais pas ce que c'est . Désactive les 2 lignes que j'ai mis pour la surbrillance avec un point virgule pour voir. Sinon il y a peut être un doublon avec tes applications déjà chargées. ---> irfcld quoitesse ?
lili2006 Posté(e) le 16 septembre 2008 Auteur Posté(e) le 16 septembre 2008 Bonsoir à toutes et tous, Toujours même réponse pour le moment, surement une autre application,en effet,... Merci encore à vous, Je testerai demain sur une V2009 "vierge" de lisp, ;) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
usegomme Posté(e) le 16 septembre 2008 Posté(e) le 16 septembre 2008 Il te faut essayer de renommer XED en XEDIT ou autre et aussi peut être de renommer la variable "action" , je ne la sens pas celle-là , xed:action ça fera pro.A+
lili2006 Posté(e) le 17 septembre 2008 Auteur Posté(e) le 17 septembre 2008 Bonjour à toutes et tous, Sur une V2009 en l'état => Commande: XED Choix des objets: Spécifiez le coin opposé: 2 trouvé(s) Choix des objets:deplacerChoix des objets: 2 trouvé(s) Choix des objets:Spécifiez le point de base ou [Déplacement] :Spécifiez le point de base:*Incorrect*ERREUR d'application: irfcld Commande:Commande: ; erreur: commande AutoCAD incorrecte: nil Idem en renommant le lisp,... Quant à => et aussi peut être de renommer la variable "action" , je ne la sens pas celle-là , , je ne te suis pas là,...!!! lesourd2, peux-tu me montrer ta ligne de commande ????, Merci d'avance, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
usegomme Posté(e) le 17 septembre 2008 Posté(e) le 17 septembre 2008 Ce matin je l'ai testé sur une 2009 fraichement installée , sans rencontrer le moindre problème ! Variable "action" parce que ce nom "action" est peut être utilisé dans une de tes appli. Pour essayer remplace tout par "xed:action" ou "a" peu importe . A moins qu'un expert sache à quoi correspond ton message.
lili2006 Posté(e) le 17 septembre 2008 Auteur Posté(e) le 17 septembre 2008 Re, Ok usegomme, Je test ce que tu me propose et reviens,... Merci encore, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lesourd2 Posté(e) le 17 septembre 2008 Posté(e) le 17 septembre 2008 Pour lili 2006 Commande: xedChoix des objets: 1 trouvé(s)Choix des objets:deplacerChoix des objets: 1 trouvé(s)Choix des objets:Spécifiez le point de base ou [Déplacement] :Spécifiez le point de base:Commande: [Copier/Deplacer/Rotation/Echelle/Scale-ref/Miroir/Pt-base/Quitter] :c _copyChoix des objets: 1 trouvé(s)Choix des objets:Spécifiez le point de base ou [Déplacement/Multiple] : Spécifiez le deuxième point ou :Commande: [Copier/Deplacer/Rotation/Echelle/Scale-ref/Miroir/Pt-base/Quitter] :d _moveChoix des objets: 2 trouvé(s)Choix des objets:Spécifiez le point de base ou [Déplacement] : Spécifiez le deuxième point ou :Commande: [Copier/Deplacer/Rotation/Echelle/Scale-ref/Miroir/Pt-base/Quitter] :r _rotateAngle positif courant dans SCU: ANGDIR=sens horaire contraire ANGBASE=0.00Choix des objets: 2 trouvé(s)Choix des objets:Spécifiez le point de base:Spécifiez l'angle de rotation ou [Copier/Référence] <231.64>:Commande: [Copier/Deplacer/Rotation/Echelle/Scale-ref/Miroir/Pt-base/Quitter] :e _scaleChoix des objets: 2 trouvé(s)Choix des objets:Spécifiez le point de base:Spécifiez le facteur d'échelle ou [Copier/Référence] <1.000>: 2.Commande: [Copier/Deplacer/Rotation/Echelle/Scale-ref/Miroir/Pt-base/Quitter] :s _scaleChoix des objets: 2 trouvé(s)Choix des objets:Spécifiez le point de base:Spécifiez le facteur d'échelle ou [Copier/Référence] <2.000>: _rSpécifiez la longueur de référence <1.000>: 10Spécifiez la nouvelle longueur ou [Points] <2.000>:Commande: [Copier/Deplacer/Rotation/Echelle/Scale-ref/Miroir/Pt-base/Quitter] :m_mirrorChoix des objets: 2 trouvé(s)Choix des objets: Spécifiez le premier point de la ligne de symétrie: Spécifiez le deuxième point de la ligne de symétrie:Effacer les objets source ? [Oui/Non] : nCommande:-XED- Nouveau Point de base <>: [Copier/Deplacer/Rotation/Echelle/Scale-ref/Miroir/Pt-base/Quitter] :P-XED- Spécifiez le nouveau point de base : [Copier/Deplacer/Rotation/Echelle/Scale-ref/Miroir/Pt-base/Quitter] :. @+
lili2006 Posté(e) le 17 septembre 2008 Auteur Posté(e) le 17 septembre 2008 Re, Merci de ta réponse lesourd2,Cette routine à l'air pas mal dans les options proposées,... Je n'ai pas encore eu le tps de me repencher sur le pb, je reviens donc,.... ;) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lili2006 Posté(e) le 17 septembre 2008 Auteur Posté(e) le 17 septembre 2008 Re, J'ai suivi tes conseils, j'ai donc ceci => ;; un xed comme xorro v 1.1 ;; adaptation par usegomme de XEDIT auteur inconnu (defun nsel_xed () ;; nouv objet-> nouv sélection (setq sel nil sel (ssadd)) (while (entnext elast) (ssadd (entnext elast) sel) (setq elast (entnext elast)) ) ) (defun c:xed (/ sel pdr npdr action elast nelast) (setq xed:action T sel (ssget)) (if sel(command "deplacer" sel "")) ;; pour surbrillance (if sel (setq pdr (getpoint "\nSpécifiez le point de base:"))) (command) ;; fin surbrillance (while (and sel pdr action) (initget "Copier Deplacer Rotation Echelle Scale-ref Miroir Pt-base Quitter") (setq xed:action (getkword "\n [Copier/Deplacer/Rotation/Echelle/Scale-ref/Miroir/Pt-base/Quitter] :")) (cond ((= xed:action "Copier") (setq elast (entlast)) (command "_copy" sel "" pdr pause) (setq pdr (getvar "LASTPOINT")) (nsel_xed) ) ((= xed:action "Deplacer") (command "_move" sel "" pdr pause) (while (not (zerop (getvar "cmdactive")))(command pause)) (setq pdr (getvar "LASTPOINT")) ) ((= xed:action "Rotation") (setq elast (entlast)) (command "_rotate" sel "" pdr pause ) (while (not (zerop (getvar "cmdactive")))(command pause)) (setq nelast (entlast)) (if (not (equal elast nelast))(nsel_xed)) ) ((= xed:action "Pt-base") (setq pdr (getpoint "\n-XED- Spécifiez le nouveau point de base :")) ) ((= xed:action "Echelle") (setq elast (entlast)) (command "_scale" sel "" pdr pause ) (while (not (zerop (getvar "cmdactive")))(command pause)) (setq nelast (entlast)) (if (not (equal elast nelast))(nsel_xed)) ) ((= xed:action "Scale-ref") (setq elast (entlast)) (command "_scale" sel "" pdr "_r" ) (while (not (zerop (getvar "cmdactive")))(command pause)) (setq nelast (entlast)) (if (not (equal elast nelast))(nsel_xed)) ) ((= xed:action "Miroir") (setq elast (entlast)) (command "_mirror" sel "" pause pause pause) (setq npdr (getpoint "\n-XED- Nouveau Point de base :")) (if npdr (setq pdr npdr npdr nil)) (setq nelast (entlast)) (if (not (equal elast nelast))(nsel_xed)) ) ((= xed:action "Quitter") (setq action nil) ) ) ;;; fin cond ) ;; fin while (princ) ) ;;; fin xed Réaction à la ligne de commande => Commande:Commande: xedChoix des objets: 1 trouvé(s)Choix des objets:deplacerChoix des objets: 1 trouvé(s)Choix des objets:Spécifiez le point de base ou [Déplacement] :Spécifiez le point de base:*Incorrect*ERREUR d'application: irfcldCommande:Commande: ; erreur: commande AutoCAD incorrecte: nil D'autres idées ? Merci d'avance, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
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