Bonjour à toutes et à tous, (et j'en profite pour souhaiter un joyeux Noël à toute la team)
J'ai essayé de 'bidouillé' depuis quelques jours un lisp pour ajouter des liens hypertextes à nos blocs pour que lors de l'impression, nos clients puissent avoir accès à la position Google-earth de la chambre/poteau à poser. Mais, n'étant pas très doué avec ce langage, j'en appelle à vos lumières chers confrères.
Les plans demandés sont au format A3 donc c'est sur que c'est un peu plus compliqué de se repérer du coup 😉 même avec un relevé topo...
Dans le lisp NG3 ci-joint je récupérais dans la variable "url" le champ que je souhaite ajouter en lien hypertexte dans mes blocs.
J'aimerais si possible avoir une commande qui permettrait de traiter tous les blocs du calque "Chambre".
Et une autre plus globale qui ajouterait un texte simple (dbtext) dans l'espace objet au niveau du point sélectionné : l'index du texte serait l'information latitude longitude et le lien hypertexte l'url.
Un grand merci d'avance à ceux qui prendront le temps de me lire et surtout de me répondre.
A+ Yoan
Yoan AUBRY
Résolu ! Accéder à la solution.
Résolu par O_Eckmann. Accéder à la solution.
Bonjour @Y.AUBRY ,
J'ai modifié le lisp
;Ouvrir le street view au point
(defun c:NG3 ()
;(sec-mod-klutil22)
(setq old-luprec (getvar "LUPREC"))
(setvar "LUPREC" 6)
(command "_UCS" "_W")
( if
(or ( = nil (ade_projgetwscode)) ( = "" (ade_projgetwscode)))
(progn
(setq code-proj (getstring "Inserez un code de projection: ntf.lambert-E/ntf.Lambert-1/2/3/lambert(9)3<E>?"))
(cond
( ( or ( = "E" code-proj) ( = "" code-proj)) (setq cscode "NTF.Lambert-E"))
( ( = "1" code-proj) (setq cscode "NTF.Lambert-1"))
( ( = "2" code-proj) (setq cscode "NTF.Lambert-2"))
( ( = "3" code-proj) (setq cscode "NTF.Lambert-3"))
( ( = "9" code-proj) (setq cscode "Lambert93"))
)
(ade_projsetwscode cscode)
);pr
);if
(ade_projsetsrc (ade_projgetwscode))
(ade_projsetdest "ll84")
; contruit un jeu de sélection de tous les bloc du calque CHAMBRE de l'espace courant
(if (setq ssBloc (ssget "x" (list (cons 0 "INSERT") (cons 8 "CHAMBRE") (cons 410 (getvar "CTAB")))))
(progn
(setq I 0)
; boucle sur le jeu de sélection
(repeat (sslength ssBloc)
; récupère le bloc (I ème objet du jeu)
(setq oBloc (ssname ssBloc I))
(setq I (1+ I))
; extrait le point d'insertion du bloc
(setq PT (cdr (assoc 10 (entget oBloc))))
; si la conversion a réussie
(if (setq result1 (ade_projptforward PT))
(progn
; calcul les lat/long
(setq coor-cible (strcat (rtos (nth 1 result1) ) "," (rtos (nth 0 result1))))
; construit l'url
(setq url (strcat "http://maps.google.com/maps?q=&layer=c&cbll=" coor-cible) )
; associe l'url au bloc
(seturl oBloc url)
)
)
)
)
)
;;; (setq result1 (ade_projptforward (getpoint "point a transformer...")))
;;; (setq coor-cible (strcat (rtos (nth 1 result1) ) "," (rtos (nth 0 result1))))
;;; (command "_UCS" "P")
;;; (if
;;; (null result1)
;;; (progn
;;; (prompt "\nErreur dans la transformation ")
;;; (quit)
;;; );pr
;;; );if
(setvar "LUPREC" old-luprec)
(princ)
(terpri)
;;; (prompt coor-cible)
;;; (setq url (strcat "http://maps.google.com/maps?q=&layer=c&cbll=" coor-cible) )
;;; (browser url)
);
En direct sans vérif, mais ça ne devrait pas être trop faux.
Olivier
Olivier Eckmann
Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.