Aller au contenu

Messages recommandés

Posté(e)

Bonjour à tous,

 

J'essaie de faire une sélection d'objets copiés à partir de d'objets origines.

Comment puis je faire ?

COncrétement, en lisp avec le code

 (command "_.copy" ss1 "" ptx ptk)

je copie des objets mais comment faire une sélection de ces mêmes objets copiés ?

Merci par avance de votre aide.

John.

 

[Edité le 18/7/2010 par chris_mtp]

Posté(e)

Salut,

 

Tu commences à toucher ici les limites que pose l'utilisation de command en LISP.

Passer par les commandes natives évite d'avoir à se préoccuper de tout ce qui se passe "en dessous" mais "cache" aussi tout ça.

 

Une méthode consiste à stocker la dernière entité créée (avec entlast) avant de faire la copie et de récupérer toutes les entités créées après (avec entnext).

 

(setq ent (entlast)                               ; dernière entité créée
     ss1 (ssget)                                 ; jeu de sélection (utilisateur)
     ss2 (ssadd)                                 ; jeu de sélection vide
)
(command "_.copy" ss1 "" pause pause)             ; copie des objets sélectionnés
(while (setq ent (entnext ent))                   ; boucle sur toutes les entités créees après
 (ssadd ent ss2)                                 ; et les ajoute à au jeu de sélection vide
)

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

Posté(e)

Bonjour !

 

(setq vblo(Vla-Get-Block (vla-get-ActiveLayout(vla-get-activedocument (vlax-get-acad-object)))))

(setq num(vla-get-count vblo))

(command "_.copy" ss1 "" pause pause)

(setq num2(vla-get-count vblo))

(setq ss2(ssadd) compt 1)
(repeat(- num2 num)
 (setq ss2(ssadd (vlax-vla-object->ename (vla-item vblo(- num2 compt)))ss2))
 (setq compt(1+ compt))
 )

 

Ici, c'est l'équivalent en Vlisp.

Un peu plus long à écrire !

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

MErci pour vos réponses.

J'avais essayé avec ssadd mais ca me faisait n'importe quoi car je n'avais pas commencer à partir de la dernière entité crée avant la copie.

MErci Tramber mais le vlisp je ne maitrise pas encore, j'ai adopté celle de Gile.

J'ai essayé quand même ta fonction elle marche nickel.

Merci encore.

John

 

Posté(e)

C'est pour là culture.

Je regrette que notre webmaster de l'époque n'ait pas plus clairement indiqué où poster les messages autolisp et les messages concernant VisualLisp.

 

 

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Salut

 

Un autre exemple en vlisp

 

(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(setq sel (ssget))
(vlax-for ent (setq sel (vla-get-activeselectionset doc))
 (setq lst (cons ent lst))
)
(vla-delete sel)
(setq cpo (vla-copyobjects doc
		   (vlax-safearray-fill
		     (vlax-make-safearray vlax-vbObject (cons 0 (1- (length lst))))
		     lst
		   )
		   (if (eq (getvar "cvport") 1)
		     (vla-get-paperspace doc)
		     (vla-get-modelspace doc)
		   )
  )
)

 

@+

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

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é