fabcad Posté(e) le 9 mai 2012 Posté(e) le 9 mai 2012 Bonjour, Etant sur une fonction d'écriture de noms d'images sur un ensemble d'images sélectionnées, je souhaiterais récupérer via une sous-routine le point centre d'une image. En "dumpant" et en "entgetant" pas de trace du point "centre" (l'accrobj centre fonctionne sur les images) et, de plus, le point d'origine d'une image rectangulaire est le point bas gauche. J'ai trouvé une méthode mais est-elle la meilleure. Je joins mon fichier pour vérifier. Merci de votre aide, Bonne journée, FabriceEcrire-nom-d-images.lsp
Patrick_35 Posté(e) le 9 mai 2012 Posté(e) le 9 mai 2012 Salut (defun c:ecrire_nom_d_images (/ bg hd sel vla_image_en_cours) (vl-load-com) (or *acad* (setq *acad* (vlax-get-acad-object))) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument *acad*))) (vla-startundomark *acdoc*) (and (ssget '((0 . "IMAGE"))) (progn (vlax-for vla_image_en_cours (setq sel (vla-get-activeselectionset *acdoc*)) (vla-getboundingbox vla_image_en_cours 'bg 'hd) (entmake (list (cons 0 "MTEXT") (cons 100 "AcDbEntity") (cons 100 "AcDbMText") (cons 10 (mapcar '(lambda(a B)(/ (+ a B) 2)) (vlax-safearray->list bg) (vlax-safearray->list hd))) (cons 1 (vl-filename-base (vla-get-ImageFile vla_image_en_cours))) (cons 8 (vla-get-Layer vla_image_en_cours)) (cons 40 (abs (/ (- (cadr (vlax-safearray->list bg)) (cadr (vlax-safearray->list hd))) 10.0))) (cons 71 5) ) ) ) (vla-delete sel) ) ) (vla-endundomark *acdoc*) (princ) ) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
fabcad Posté(e) le 9 mai 2012 Auteur Posté(e) le 9 mai 2012 Merci patrick-35, Je vois que j'ai beaucoup de chemin à faire avant d'arriver à votre niveau :-) Merci pour cette solution, il faut que je la lise avec beaucoup d'intérêt. A+
Patrick_35 Posté(e) le 9 mai 2012 Posté(e) le 9 mai 2012 A lire ton lisp, la marche n'est pas aussi haute que tu le crois.Juste quelques subtilités à bien comprendre. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
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