Aller au contenu

Messages recommandés

Posté(e)

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

Posté(e)

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 DELANNOY

Développement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAO

WIIP - http://wiip.fr

Posté(e)

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

Posté(e)

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,

  • 6 mois après...
Posté(e)

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

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é