Aller au contenu

COPIER-ROTATION AVEC REF.


lili2006

Messages recommandés

Tu as oublié d'en renommer deux.

Je l'ai fait dans la version 1.2 et la commande est renommée XE

Les 2 lignes pour la surbrillance sont désactivés.

J'espère que ça suffira.

 

Sinon dans la 2008 , il y a un bug avec les copies de blocs et avec le lisp original le problème et le même ???.

Pour l'instant je n'ai pas la solution .

 

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir à toutes et tous,

 

Toujours pas !

Dans quel cas de figure constates-tu un plantage ?

 

Dans celui-ci ?

 

Commande: xe

Choix des objets: 1 trouvé(s)

Choix des objets: Spécifiez le coin opposé: 7 trouvé(s) (1 dupliqué(s)), 7 au

total

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

Choix des objets: 1 trouvé(s), 8 au total

Choix des objets: 1 trouvé(s), 9 au total

Choix des objets: 1 trouvé(s), 10 au total

Choix des objets: 1 trouvé(s), 11 au total

Choix des objets: 1 trouvé(s), 12 au total

Choix des objets:

Spécifiez le point de base:

[Copier/Deplacer/Rotation/Echelle/Scale-ref/Miroir/Pt-base/Quitter] :C

_copy

Choix des objets: 12 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

_move

Choix des objets: 12 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] :C

_copy

Choix des objets: 12 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] :C

_copy

Choix des objets: 13 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] :C

_copy

Choix des objets: 14 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] :C

_copy

Choix des objets: 15 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] :C

_copy

Choix des objets: 16 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] :C

_copy

Choix des objets: 17 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] :C

_copy

Choix des objets: 18 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] :C

_copy

Choix des objets: 19 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] :C

_copy

Choix des objets: 20 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] :C

_copy

Choix des objets: 21 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] :C

_copy

Choix des objets: 22 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] :Q

 

Pour moi, tout fonctionne avec cette fonction ???!!! :o

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à toutes et tous,

 

Ok usegomme,

 

J'avais pas bien compris le pb,....

;)

 

J'ai en effet la même chose, la fonction copie garde en mémoire les éléments copiés précédemment,...

 

Pas forcément bien grave, il suffit de sortir du lisp et y revenir,... :P

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Bonjour, avec cette nouvelle version le problème ci-dessus doit être réglé.

Simplement avec l'option retirer de la cde , j'ai essayé en lisp avec ssdel sans succés

car autocad donne 2 noms différents à une même entité (bloc avec attribut) !

 

 ;; adaptation v 1.3 par usegomme de XEDIT auteur inconnu

(defun nsel-xe () ;; nouv objet-> nouv sélection
 (setq js (ssget "p"))
 (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 js nil 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)
       (if js (command "_r" js "" pdr)(command  "" pdr))
       (while (not (zerop (getvar "cmdactive")))(command pause))      
       (setq pdr (getvar "LASTPOINT"))
       (nsel-xe)   
     ) 
     
     ((= act "Deplacer")
       (command "_move" sel)
       (if js (command "_r" js "" pdr)(command  "" pdr))
       (while (not (zerop (getvar "cmdactive")))(command pause))
       (setq pdr (getvar "LASTPOINT"))
     )
     
     ((= act "Rotation")
       (setq elast (entlast))
       (command "_rotate" sel )
       (if js (command "_r" js "" pdr)(command  "" pdr))
       (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 )
       (if js (command "_r" js "" pdr)(command  "" pdr))
       (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)
       (if js (command "_r" js "" pdr "_r" )(command  "" 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 )
       (if js (command "_r" js "" )(command  ""))
       (while (not (zerop (getvar "cmdactive")))(command 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

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

 

Un truc vite fait

 

(defun c:cpr(/ cmd der js pt)
 (setq cmd (getvar "cmdecho"))
 (setvar "cmdecho" 0)
 (vl-cmdf "_.undo" "_group")
 (and	(setq js (ssget))
(setq pt (getpoint "\nPoint de Base : "))
(setq der (entlast))
(vl-cmdf "_.copy" js "" pt pause)
(setq js (ssadd))
(progn
  (while (setq der (entnext der))
    (ssadd der js)
  )
  (princ "\nAngle de Rotation : ")
  (vl-cmdf "_.rotate" js "" (getvar "lastpoint") pause)
)
 )
 (vl-cmdf "_.undo" "_end")
 (setvar "cmdecho" cmd)
 (princ)
)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à toutes et tous,

 

Pas mal aussi "CPR" !

 

Merci Patrick_35, ;)

 

C'est déjà mieux

 

C'est même très efficace, j'ai utilisé dernièrement ta routine qui m'a bien dépanné,...

 

Merci à tous d'avoir proposé des idées sur ce post ! :P

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois après...

Salut , suite à ce post http://www.cadxp.com/sujetXForum-21995.htm

J'ai rajouté la cde align au lisp.

 

;;;; adaptation v 1.5 par usegomme de XEDIT auteur inconnu
       ;; 12-02-2009
(defun nsel-xe () ;; nouv objet-> nouv sélection
 (setq js (ssget "p"))
 (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 js nil act T sel (ssget))
 (if sel (command "_select" 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 Aligner Echelle Scale-ref Miroir Pt-base Quitter") 
   (setq act (getkword "\n [Copier/Deplacer/Rotation/Aligner/Echelle/Scale-ref/Miroir/Pt-base/Quitter] :")) 
   (cond
     ((= act "Copier")
       (setq elast (entlast))       
       (command "_copy" sel)
       (if js (command "_r" js "" "_none" pdr)(command  "" "_none" pdr))
       (while (not (zerop (getvar "cmdactive")))(command pause))      
       (setq pdr (getvar "LASTPOINT"))
       (nsel-xe)   
     ) 
     
     ((= act "Deplacer")
       (command "_move" sel)
       (if js (command "_r" js "" "_none" pdr)(command  "" "_none" pdr))
       (while (not (zerop (getvar "cmdactive")))(command pause))
       (setq pdr (getvar "LASTPOINT"))
     )
     
     ((= act "Rotation")
       (setq elast (entlast))
       (command "_rotate" sel )
       (if js (command "_r" js "" "_none" pdr)(command  "" "_none" pdr))
       (while (not (zerop (getvar "cmdactive")))(command pause))
       (setq nelast (entlast))
       (if (not (equal elast nelast))(nsel-xe))
     )
     
     ((= act "Aligner")
       (command "_align" sel)
       (if js (command "_r" js "" "_none" pdr)(command  "" "_none" pdr))
       (while (not (zerop (getvar "cmdactive")))(command pause))
       (setq pdr (getvar "LASTPOINT"))
     )
     
     ((= act "Echelle")
       (setq elast (entlast))
       (command "_scale" sel )
       (if js (command "_r" js "" "_none" pdr)(command  "" "_none" pdr))
       (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)
       (if js (command "_r" js "" "_none" pdr "_r" )(command  "" "_none" 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 )
       (if js (command "_r" js "" )(command  ""))
       (while (not (zerop (getvar "cmdactive")))(command 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 "Pt-base")
       (setq pdr (getpoint "\n Spécifiez le nouveau point de base :"))
     )
     
     ((= act "Quitter")
       (setq act nil) (gc)
     )
   )  ;;; fin cond          
 ) ;; fin while 
 (princ)
)  ;;; fin xe 

 

 

 

[Edité le 12/2/2009 par usegomme]

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...
  • 9 mois après...

Bonjour , j'ai rajouté au lisp "XE" une option rotation avec copie .

 

;; 18-11-2009
;; adaptation v 1.6 par usegomme de XEDIT auteur inconnu

(defun nsel-xe () ;; nouv objet-> nouv sélection
 (setq js (ssget "p"))
 (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 sv_dm dm)
 (setvar "cmdecho" 1)
 (setq js nil act T sel (ssget))
 (if sel (command "_select" sel ))  ;; pour surbrillance    
 (if sel (setq pdr (getpoint "\nSpécifiez le point de base:")))
 (command "")   ;; fin surbrillance
 (setq sv_dm (getvar "DYNMODE"))
 (cond ((< sv_dm 0) (setq dm (* sv_dm -1)) (setvar "DYNMODE" dm))
   (t (setq sv_dm nil dm nil))
 )
 
 (while (and sel pdr act)   
   (initget   "Copier Deplacer Rotation rOtation+copie Aligner Echelle Scale-ref Miroir Pt-base Quitter") 
   (setq act (getkword "\n [Copier/Deplacer/Rotation/rOtation+copie/Aligner/Echelle/Scale-ref/Miroir/Pt-base/Quitter] :")) 
   (cond
     ((= act "Copier")
       (setq elast (entlast))       
       (command "_copy" sel)
       (if js (command "_r" js "" "_none" pdr)(command  "" "_none" pdr))
       (while (not (zerop (getvar "cmdactive")))(command pause))      
       (setq pdr (getvar "LASTPOINT"))
       (nsel-xe)   
     ) 
     
     ((= act "Deplacer")
       (command "_move" sel)
       (if js (command "_r" js "" "_none" pdr)(command  "" "_none" pdr))
       (while (not (zerop (getvar "cmdactive")))(command pause))
       (setq pdr (getvar "LASTPOINT"))
     )
     
     ((= act "Rotation")
       (setq elast (entlast))
       (command "_rotate" sel )
       (if js (command "_r" js "" "_none" pdr)(command  "" "_none" pdr))
       (while (not (zerop (getvar "cmdactive")))(command pause))
       (setq nelast (entlast))
       (if (not (equal elast nelast))(nsel-xe))
     )

     ((= act "rOtation+copie")
       (setq act "Oui")
       (while (= act "Oui")
        (setq elast (entlast))
        (command "_rotate" sel )
        (if js (command "_r" js "" "_none" pdr)(command  "" "_none" pdr))
        (command "_c")
        (while (not (zerop (getvar "cmdactive")))(command pause))
        (setq nelast (entlast))
        (if (not (equal elast nelast))(nsel-xe))
        (initget   "Oui Non") 
        (setq act (getkword "\nCopie supplémentaire  [Non] :"))
  	 (if (not act) (setq act "Oui"))
       )
     ) 
     
     ((= act "Aligner")
       (command "_align" sel)
       (if js (command "_r" js "" "_none" pdr)(command  "" "_none" pdr))
       (while (not (zerop (getvar "cmdactive")))(command pause))
       (setq pdr (getvar "LASTPOINT"))
     )

     ((= act "Echelle")
       (setq elast (entlast))
       (command "_scale" sel )
       (if js (command "_r" js "" "_none" pdr)(command  "" "_none" pdr))
       (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)
       (if js (command "_r" js "" "_none" pdr "_r" )(command  "" "_none" 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 )
       (if js (command "_r" js "" )(command  ""))
       (while (not (zerop (getvar "cmdactive")))(command 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 "Pt-base")
       (setq pdr (getpoint "\n Spécifiez le nouveau point de base :"))
     )
     
     (t   ; (= act "Quitter")
       (if sv_dm (setvar "DYNMODE" sv_dm))
       (setq act nil) (gc)
     )
     
     
   )  ;;; fin cond          
 ) ;; fin while 
 (princ)
)  ;;; fin xe

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é