Aller au contenu

Déplacer avec rotation referencée


brunopub333

Messages recommandés

Bonjour,

 

j'ai essayer de modifier un lisp qui, à l'origine permettait de copier et faire une rotation avec reference pour en faire un lisp qui permettrait de déplacer puis faire une rotation avec reference.

J'ai donc remplacer dans le code, la commande "copy" par "move" mais ca marche pas... :casstet:

La commande se bloque apparement au moment de la rotation referencée.

 

Voici le code, pouvez-vous m'aidez svp:

 

 

;;Déplacer + rotation avec référence
;;


(defun c:drr (/ elast ss ent)
 (setq elast (entlast))
 (if (vl-cmdf "_move" (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)
) 

 

Bruno[Edité le 11/2/2009 par brunopub333]

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

J'ai donc remplacer dans le code, la commande "copy" par "move" mais ca marche pas...

 

Pourquoi faire compliqué, dans ce cas précis, l'expression peut être simplifiée car il n'y a pas de création d'entité par la copie.

 

(defun c:drr ( / ss)
 (setq ss (ssget))
 (if (and ss (vl-cmdf "_move" ss "" pause pause))
   (vl-cmdf "_.rotate" ss "" (getvar "LASTPOINT") "_r" "@" pause pause)
 )
 (princ)
)

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

Salut,

 

Il ne suffit pas de remplacer un nom de commande par un autre.

La routine originale copiait des objets et effectuait une rotation sur les objets nouvellement créés.

Quand on déplace des objets, il n'y a pas de création de nouveaux objets, il faut effectuer la rotation sur les objets déplacés.

 

(defun c:drr (/ ss)
 (if (vl-cmdf "_move" (setq ss (ssget)) "" pause pause)
   (vl-cmdf "_rotate"
     ss
     ""
     (getvar "LASTPOINT")
     "_r"
     "@"
     pause
     pause
   )
 )
 (princ)
)

 

EDIT : doublé par bonuscad !

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Avant de vouloir réinventer l'eau chaude ! ;) Utilisons déjà les commandes existantes :

 

^c^cOSNAPCOORD;1;select;\_copy;P;;\@;_move;P;;@;\_rotate;P;;@;R;@;\

 

et en plus ça marche avec toutes les versions.... ;)

 

Christian

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Lien vers le commentaire
Partager sur d’autres sites

Ces LISP ne réinventent pas plus l'eau chaude que ta Macro, ils utilisent les commandes existantes et sont identiques à ta Macro.

 

Par contre, tous font ce que fait directement la commande ALIGN :P

 

J'imagine que si brunopub333 poste dans ce forum, c'est qu'il est intéressé par le LISP et c'est souvent en écrivant en LISP ce qui pourrait être écrit en Macro qu'on débute.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Désolé pour la réponse tardive.

Merci à BONUSCAS et à GILE, c'est exactement ce dont j'avais besoin !

En effet je suis ammener très souvent à faire des plan de mobilier lors des déménagement des différents services de mon entreprise et donc je dois placer une grosse quantité de bureau et armoires au mieux dans les pièces. D'où l'utilisation intensives des commandes déplacer, copier et rotation. Dans le même esprit, je me rends compte que la commande rotation me serait plus pratique dans mon cas si dès le début elle démarrait avec l'option référence. Je vais de ce pas poster un post dans ce sens ! :P

Car effectivement, je débute en lisp et j'adorerais pouvoir me les programmer moi même mais je n'ai pas encore le niveau... mais je regarde attentivement les lignes des lisp que je récupère et je commence petit à petit à comprendre :D

Existe t-il un livre pour débuter ?

 

Bonne journée à toutes et tous !

 

Bruno

 

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é