Aller au contenu

Effacer élements après "copier les propriétés"


yusukens82

Messages recommandés

Bonjour,

Je cherche une astuce pour effacer l’élément d'origine après avoir copier ses propriétés.

je pensais à quelque chose de simple comme :

(defun c:CP2  ()  (command "_matchprop" )
(command  "_erase" ss "")
)

mais vous vous doutiez bien que ça ne fonctionne

si quelqu'un peut m'aider ?

en vous remerciant par avance,
 

Lien vers le commentaire
Partager sur d’autres sites

Coucou,

Pour cela j'ai quelques questions : à quoi correspond ss ? Quand et comment as-tu déclarer cette variable ?
Si je comprends bien, tu as un objet source et un objet cible, et une fois que tu as effectué la commande "_MATCHPROP" sur l'objet cible depuis l'objet source, tu veux supprimer l'objet source ?

Bisous,
Luna

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @Maxime063

Je me questionne sur l'utilité de copier des propriétés depuis un jeu de sélection.
Une sélection d'entité je veux bien comprendre, donc soit on met entsel soit on met des filtres dans le ssget pour ne sélectionner qu'une seule entité (tu as besoin d'aide ?)
Puisque tu débutes prends maintenant les bons réflexes et donne le nom des commandes en langage international "_MATCHPROP" sera plus propre.

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @didier

 

En effet, "_MATCHPROP" est bien plus intéressant, j'y ai pensé qu'une fois envoyé.

J'ai simplement pensé qu'avec le (ssget ":S") suffit pour ne sélectionner qu'une seule entité, et n'ayant pas d'informations sur le nombre d'entités qui doivent recevoir les propriétés, j'ai pensé judicieux (peut-être à tord) de faire ça, mais j'avoue ne même pas avoir pensé au entsel.

 

Ps J'ai édité le code avec "_MATCHPROP"

 

Lien vers le commentaire
Partager sur d’autres sites

Coucou,

Petite correction @Maxime063, l'option ":S" ne permet pas de ne sélectionner qu'une seule entité !! Elle permet qu'une seule sélection, mais l'utilisateur peut utiliser n'importe quel mode de sélection !! Donc si on fait une sélection en capture par exemple, il est tout à fait possible de sélectionner plusieurs entités !!

Si tu veux conserver un fonctionnement similaire à la fonction (entsel), il s'agit de l'addition des méthodes ".+", ":E" et ":S" s'écrivant ainsi "_+.:E:S". Cette écriture permet de simuler un (entsel), bien que dans cette situation, (entsel) serait probablement préférable car on peut afficher un message :3

Pour info :
- "+." permet d'afficher le curseur en mode sélection d'objet (le petit carré)
- ":E" permet de n'autoriser que la sélection des objets se trouvant sous le curseur
- ":S" permet de n'autoriser qu'une seule sélection, quelque soit le mode de sélection choisi (capture, fenêtre, objet, ...)
- "_" permet de s'assurer que la version des modes de sélection utilisés se font en anglais, quelque soit la langue d'AutoCAD (format international)

Après je n'avais pas donner de réponse directement car je m'inquiètes de la déclaration de sa variable 'ss' qui ne semble pas avoir été déclarée dans sa commande (ni définie localement)...Donc je voulais essayer de corriger cela pour qu'il ne fasse pas d'erreurs les prochaines fois ^^"

Bisous,
Luna

Lien vers le commentaire
Partager sur d’autres sites

Merci pour cette précision @Luna,

 

En effet, je n'ai pas pensé qu'on pouvait faire une capture... c'est toute la complexité de la chose, se mètre dans la peau de l'utilisateur sans prendre en compte ses propres habitudes.

En tout cas merci pour cette précision, du coup ci-dessous le code qui sera plus claire et plus fonctionnel.

(defun c:prop ( / jeusel1 jeusel2 )
  (setq jeusel1 (entsel "\nChoix de l'entitée de référence\n")
	    jeusel2 (ssget)
	)
  (command "_MATCHPROP" jeusel1 jeusel2 "")
  (command "_erase" jeusel1 "")
  )

 

Amicalement.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à vous tous,

Dessolé si je n'ai pas été précis dans ma requête, je n'aurai peut être pas du mettre ce topic dans la rubrique "débuter en LISP"

 

Si je n'ai pas déclaré de variable 'ss' c'est tout simplement parce que j'ai récupéré ce bout de code sur une autre routine sans savoir exactement la signification de chaque mot.

Le but étant de récupérer les propriétés de la première sélection vers une seconde sélection puis d'effacer la sélection source.

Les 2 propositions de Maxime063 fonctionne merveille, merci pour la réécriture plus propre.

Merci

 

Lien vers le commentaire
Partager sur d’autres sites

Coucou,

1 minute ago, yusukens82 said:

je n'aurai peut être pas du mettre ce topic dans la rubrique "débuter en LISP"

Je pense justement que tu es au bon endroit :3
Et cela montre également que copier partiellement ne permet pas d'apprendre 😉 Si tu as envie d'apprendre, alors je n'aurais aucun soucis à te guider et te donner quelques bases, comme par exemple les déclarations de variables et les différents types d'atomes ou listes. Tu comprendrais plus facilement que 'ss' est une variable, et que si cette dernière n'est déclarée nulle part, alors c'est qu'elle n'existe pas (appelée nil en AutoLISP, le contraire T signifiant que quelque chose "existe").

Pour être honnête, je doute fortement que se soit une bonne idée de faire du LISP sans en maîtriser les bases...Cela conduira forcément à des problèmes et les bases sont abordables à quiconque veut bien se donner la peine d'écouter 🙂 Donc si jamais tu as des questions, tu es au bon endroit et je te suggères ces liens qui sont fait pour apprendre, quelque soit le niveau de chacun :
Da-Code (Site de didier)
Introduction AutoLISP (Site de (gile))

Ce sont d'excellentes références (en français) qui permettent de maîtriser les bases très rapidement. Après libre à toi de grapiller des bouts de codes, mais avec les bases, c'est mieux ^^"

PS : ce n'est pas un reproche mais un simple conseil avisé 😉

Bisous,
Luna

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

Bonjour Luna,

Moi qui utilise à longueur de temps le lisp, j’ai essayé à plusieurs reprises de débuter en lisp.

A chaque fois j’abandonne au bout de quelques jours.

J’en ai conclus que ma force n’est pas d’en créer mais de les utiliser.

Il n’en reste pas moins que j’essaye dès les développer avec mes maigres compétences.

Merci pour ta proposition sympathique qui me va droit au cœur

Bisous

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @yusukens82,

 

Il faut aussi savoir se lancer, les 2 références que luna à donné m'ont effectivement fait commencer, et comme tu le voit, la communauté est là pour aider.

Il y à 1 an je ne connaissait rien au lisp, mais une bonne connaissance d'autocad, et avec le temps, à force de s'imprégné de l'expériences des membres on arrive à progresser. Personne ne vas te juger parce que tu essais de faire un bout de code toi-même qui ne fonctionne pas. par contre, le copié collé n'aide en rien à l'apprentissage.

Amicalement.

  • Like 1
  • Upvote 1
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é