StormACAD Posté(e) le 24 avril 2012 Posté(e) le 24 avril 2012 Bonjour , J'ai un petit problème avec l'utilisation des réacteurs d'objet.J'ai lié deux objets avec un réacteur d'objet (VLR-Object-Reactor et l'événement :vlr-modified)J'aimerai savoir si à partir d'un objet , il est possible de savoir si un réacteur d'objet est attaché et si il est possible de récupérer les données du réacteur : en gros je voudrai savoir si tel ou tel objet est déjà lié à un autre par un réacteur. Merci
(gile) Posté(e) le 24 avril 2012 Posté(e) le 24 avril 2012 Salut, La fonction vlr-owners retourne une liste des objectIds des entités qui sont liées au réacteur qui lui est passé en argument. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
StormACAD Posté(e) le 24 avril 2012 Auteur Posté(e) le 24 avril 2012 Cette fonction est intéressante mais elle ne résout pas mon problème.En fait j'aimerai savoir si un objet a un réacteur qui lui fait référence.J'ai crée des objets lies par des réacteurs mais lors d'une copie de ces objets (avec la fonction copier d'autocad) les nouveaux objets crées n'ont pas de réacteurs.J'aimerai pouvoir créer les réacteurs manquants pour ces nouveaux objets.Pour cela j'ai besoin de savoir si tel ou tel objet a déjà le récteur et je cherche à créer une fonction qui aurait pour argument un objet (VLA ou entity) et qui me retournerait soit un réacteur (avec lequel je pourrai utiliser la fonction vla-owner) soit nil si cet objet n'a pas de réacteur.
(gile) Posté(e) le 24 avril 2012 Posté(e) le 24 avril 2012 Pas testé mais ça devrait faire l'affaire : (defun HasObjectReactor (vlObj / result) (foreach rea (vlr-reactors :VLR-Object-Reactor) (if (vl-position vlObj (vlr-owners rea)) (setq result (cons rea result)) ) ) result ) ou, plus simple si ton réacteur est affecté à une variable globale (exemple : *monReacteur*) : (defun HasThisReactor (vlObj rea) (vl-consp (member vlObj (vlr-owners rea))) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
StormACAD Posté(e) le 24 avril 2012 Auteur Posté(e) le 24 avril 2012 Merci beaucoup pour ta réponse rapide Gile ;-) Je ne connaissait pas cette méthode pour lister tous les réacteurs présent dans le dessin (vlr-reactors :VLR-Object-Reactor) J'ai ainsi accès à tous les réacteurs du dessin et je pourrai facilement savoir si tel ou tel objet est présent dans les données des réacteurs. Je ne connais pas cette notion de « réacteur affecté à une variable globale » mais je vais étudier ça.
(gile) Posté(e) le 24 avril 2012 Posté(e) le 24 avril 2012 Je ne connais pas cette notion de « réacteur affecté à une variable globale » mais je vais étudier ça. Quand tu déclares ton réacteur, tu peux l'affecter à une variable pour y avoir plus facilement accès par la suite. (setq *monReacteur* (vlr-object-reactor ...)) ... (vlr-owners *monReacteur*) ... (vlr-remove *monReacteur*) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
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