Bred Posté(e) le 13 avril 2006 Posté(e) le 13 avril 2006 m'énerve......De choses que je pense simple mais je prend la tête!!!!....suite de mes problèmes....En lisp je copie une selection d'objetS (notez le S) d'un point à un autre....Ensuite Je n'arrive plus à atteindre ces objeS copiés :(ssget "L") marche pasle "d" (dernier) dans les commandes AutoCAD prend UN SEUL objet.le "p" (précedent) attrappe ma selection précedente, et pas les "nouveaux" objets... (setq sel (ssget))(command "_copy" sel "" (setq pA (getpoint)) pause)(setq pB (getvar "lastpoint"))(setq OBjs (ssget "L"))(command "_erase" OBjs "" "") Alors il est tard, mais avant de me prendre le choux je voudrais savoir si ce qui me vient à l'idée serait la bonne méthode et la plus "simple":je compte le nombre d'objet dans ma selection etc...: (setq NbObjs (sslength sel))(repeat NbObjs (command "_erase" "d" "")) .... c'est tiré par les cheveux non ??? bon... à demain et merci Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Patrick_35 Posté(e) le 13 avril 2006 Posté(e) le 13 avril 2006 Salut Une petite routine pour copier des objets(defun copier_obj(/ doc pap ent js n pt1 pt2 sel) (if (setq sel (ssget)) (if (setq pt1 (getpoint "\nPoint de base : ")) (if (setq pt2 (getpoint pt1 "\nDestination : ")) (progn (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (if (eq (getvar "tilemode") 1) (setq pap (vla-get-modelspace doc)) (setq pap (vla-get-paperspace doc)) ) (vla-startundomark doc) (setq n 0) (while (ssname sel n) (setq js (cons (ssname sel n) js) n (1+ n)) ) (setq js (vlax-safearray-fill (vlax-make-safearray vlax-vbObject (cons 0 (1- (length js)))) (mapcar 'vlax-ename->vla-object (reverse js)))) (setq sel (vla-copyobjects doc js pap)) (foreach ent (vlax-safearray->list (vlax-variant-value sel)) (vla-move ent (vlax-3d-point pt1) (vlax-3d-point pt2)) ) (vla-endundomark doc) (setq sel (vlax-safearray->list (vlax-variant-value sel))) (setq js (ssadd)) (foreach ent sel (ssadd (vlax-vla-object->ename ent) js) ) ) ) ) ) ) Tu fais un (setq js (copier_obj)) et ton js est le jeu de sélection des objets copiés @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 14 avril 2006 Posté(e) le 14 avril 2006 Salut, Si tu veux juste récupérer la "copie" du jeu de sélection, tu peux inverser la manoeuvre, copier le jeu de sélection sans déplacement, puis le déplacer : (command "_.copy" (setq sel (ssget)) "" "" "") (command "_.move" sel "" (setq pA (getpoint)) pause) (setq pB (getvar "lastpoint")) (command "_.erase" sel "") Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 14 avril 2006 Auteur Posté(e) le 14 avril 2006 Merci à vous 2... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
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