vannes Posté(e) le 7 mai 2013 Posté(e) le 7 mai 2013 Bonjour, J'ai un fichier ou j'utilise des liens hypertexte définis avec le chemin relatif prévu par autocad.Cependant, d'autres objets ont des liens hypertexte avec un chemin absolu.Mon service info. projette de changer de serveur et de nous assigner une nouvelle lettre. Aussi, je vais devoir changer le chemin de liens hypertexte d'une cinquantaine d'objet.J'aimerais connaitre la démarche pour accéder à la définition de l'hyperlien d'une entité autocad.Ainsi, avec un lisp, je pourrais automatiser cette démarche aujourd'hui et pour l'avenir. Merci d'avance
Maxence DELANNOY Posté(e) le 7 mai 2013 Posté(e) le 7 mai 2013 Pour lire l'url : (geturl (car (entsel))) Pour la définir : (seturl (car (entsel)) "http://www.google.fr") Tu peux aussi utiliser l'API ActiveX : (vla-add (vla-get-hyperlinks (vlax-ename->vla-object (car (entsel)))) "http://www.google.fr") Maxence DELANNOYDéveloppement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAOWIIP - http://wiip.fr
vannes Posté(e) le 7 mai 2013 Auteur Posté(e) le 7 mai 2013 Super! Avec ces infos, je vais m'en sortir. Merci
VDH-Bruno Posté(e) le 7 mai 2013 Posté(e) le 7 mai 2013 Tiens donc je viens d’apprendre un truc là, geturl & seturl ces fonctions sont non documenté sous 2007 mais très bien supporté, merci beaucoup Maxence. Apprendre => Prendre => Rendre
fabcad Posté(e) le 7 mai 2013 Posté(e) le 7 mai 2013 Hello a tous, Merci à toi Maxence pour ces informations, du coup je devais créer une routine afin de lier une photo jpeg avec un texte AutoCAD via l'hyperlien. Voici mon premier jet de routine : ;;; chemin+fichier sous la forme de textes AutoCAD comme ci-dessous : ;;; G:\XXXXX\UU\VVV\Opérations\YYYYY\ZZZ\Photos abords parcelles\Photos-0019.jpg ;;; [b]ou [/b]G:/XXXXX/UU/VVV/Opérations/YYYYY/ZZZ/Photos abords parcelles/Photos-0019.jpg (defun c:Adding_Index_Hyperlink (/ js_textes space mtxt nbr i acad_texte_en_cours index_texte) (vl-load-com) (setq viewsize (getvar "VIEWSIZE")) (or *acad* (setq *acad* (vlax-get-acad-object))) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument *acad*))) (setq js_textes (ssget '((0 . "*TEXT")))) (if js_textes (progn (setq space (if (= 1 (getvar 'cvport)) (vla-get-PaperSpace *acdoc*) (vla-get-ModelSpace *acdoc*) ) ) (setq nbr (sslength js_textes)) (setq i 0) (while (<= i (- nbr 1)) (setq acad_texte_en_cours (ssname js_textes i)) (setq vla_texte_en_cours (vlax-ename->vla-object acad_texte_en_cours)) (setq index_texte (vla-get-TextString vla_texte_en_cours)) (seturl acad_texte_en_cours index_texte) (setq i (+ i 1)) ); fin while );fin 1er progn ); fin if (princ) );fin defun Adding_Index_Hyperlink Bonne journée, Fabcad, Le Rennais Métropolitain,
vannes Posté(e) le 9 novembre 2013 Auteur Posté(e) le 9 novembre 2013 Bonjour, Je relance le sujet pour aller plus loin.Notre Base de Données topo est divisée en plusieurs dizaines de secteurs.Dans les fichiers "secteur" on a positionné des blocs à chaque limite où une voie continue dans un secteur limitrophe. Ce bloc contient un lien hypertexte. Aussi, je peux ouvrir le fichier "secteur limitrophe" facilement ou mettre ce fichier en référence gràce à un lisp que nous avons développé.Mon problème:Si je mets le secteur limitrophe en référence, j'ai toujours la possibilité d'atteindre les liens hypertexte de ce fichier en référence pour les ouvrir. Par contre, comment je peux récupérer la donnée hyperlien d'un bloc qui est dans un fichier en référence?Ma piste: le lisp de Patrick35 qui permet de récupérer par exemple des styles de texte d'un fichier gabarit.Du fait que je ne suis pas du tout à l'aise avec le VLISP, j'ai du mal à décripter le lisp en question et de le modifier.J'imagine qu'il faudrait- récupérer dans une SELECTION tous les bloc concernés de ce fichier en référence,- comparer les coordonnées d'un getpoint avec les coordonnées d'insertion de ces blocs,- pour le reste j'ai normalement ce qu'il faut. Aussi, Patrick35 ou un autre lispeur pourrait-il m'aider? Merci d'avance
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