Invité ingoenius Posté(e) le 31 mai 2010 Posté(e) le 31 mai 2010 Salut a vous, je crois qu'il existe une routine qui permettez de zoomer sur un bock en donnant son nom, ou de le mettre en surbrillance ?? Avez vous le nom de la routine?Merci [Edité le 31/5/2010 par ingoenius]
lili2006 Posté(e) le 31 mai 2010 Posté(e) le 31 mai 2010 Bonjour à toutes et tous, Selection rapide (_qselect) => Référence de bloc => Nom ? ou de le mettre en surbrillance ?? Pas tout à fait, cette commande sélectionne le (ou les)bloc(s) en question,... EDIT: Oups, je viens de voir le forum pointé par ta question,... Réponse à coté de la plaque, Désolé,... ;) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Invité ingoenius Posté(e) le 1 juin 2010 Posté(e) le 1 juin 2010 Cà y est ici la routine, couplé de la superbe l'inputbox de Gile ;-) (merci Gile) ;----------------------------------------- ;; InputBox (gile) ;; Ouvre une boite de dialogue pour récupérer une valeur ;; sous forme de chaine de caractère ;; ;; Arguments ;; tous les arguments sont de chaines de caractère (ou "") ;; box : titre de la boite de dialogue ;; msg : message d'invite ;; val : valeur par défaut ;; ;; Retour ;; une chaine ("" si annulation) (defun InputBox (box msg val / subr temp file dcl_id ret) ;; Retour chariot automatique à 50 caractères (defun subr (str / pos) (if (and (< 50 (strlen str)) (setq pos (vl-string-position 32 (substr str 1 50) nil T)) ) (strcat ":text_part{label=\"" (substr str 1 pos) "\";}" (subr (substr str (+ 2 pos))) ) (strcat ":text_part{label=\"" str "\";}") ) ) ;; Créer un fichier DCL temporaire (setq temp (vl-filename-mktemp "Tmp.dcl") file (open temp "w") ret "" ) ;; Ecrire le fichier (write-line (strcat "InputBox:dialog{key=\"box\";initial_focus=\"val\";spacer;:paragraph{" (subr msg) "}spacer;:edit_box{key=\"val\";edit_width=54;allow_accept=true;} spacer;ok_cancel;}" ) file ) (close file) ;; Ouvrir la boite de dialogue (setq dcl_id (load_dialog temp)) (if (not (new_dialog "InputBox" dcl_id)) (exit) ) (set_tile "box" box) (set_tile "val" val) (action_tile "accept" "(setq ret (get_tile \"val\")) (done_dialog)" ) (start_dialog) (unload_dialog dcl_id) ;;Supprimer le fichier (vl-file-delete temp) ret ) (defun c:SZB ();selection et zoom sur bloc ou texte (vl-load-com) (setq Test "ID Search?") (setq Cerca (inputbox "Find ID" Test "new name")) (setq ENT1 (ssget "x" (list (cons 0 "INSERT") (cons 2 Cerca )))) ;Creation set selection Bloc ;(setq ENT1 (ssget "x" (list (cons 0 "TEXT") (cons 1 Cerca )))) ;Creation set selection TEXT (command "_zoom" "O" ENT1 "" "" ) ;(command "_zoom" 300 "" );activer selon la dimension du dessin )
lili2006 Posté(e) le 3 juin 2010 Posté(e) le 3 juin 2010 Bonjour à toutes et tous, Ça fonctionne certes, mais je ne vois pas bien l'intérêt car il fait un zoom sur l'ensemble de l'emprise des blocs recherchés,... Si tu en as à 0,0 et l'autre à 100000,100000 ? De plus, la routine à un petit pb sur la fin semble t-il => Commande: SZB_zoomSpécifiez le coin d'une fenêtre, entrez un facteur d'échelle (nX ou nXP) ou[Tout/Centre/DYnamique/ETendu/Précédent/Echelle/Fenêtre/Objet] : OChoix des objets: 2 trouvé(s)Choix des objets:Commande: SZB Commande inconnue "SZB". Appuyez sur F1 pour obtenir de l'aide.Commande: nil Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Invité ingoenius Posté(e) le 4 juin 2010 Posté(e) le 4 juin 2010 @lili2006 Ça fonctionne certes, mais je ne vois pas bien l'intérêt car il fait un zoom sur l'ensemble de l'emprise des blocs recherchés Pour l'utilisation que j'en fait c'est parfait, EXPLICATION imagine un plan d'un grand bureau avec une centaine de bureuax d'ordinateur tel etc a coté de chaque bureau il y a des petites lignes de texte avec nom et prenom N de PC N de telephone etc N de prise telephone Avec le script (avec la recherche sur ligne de texte il faut commenter une ligne et decommenter l'autre, ensuite je vais faire un chois dans le script) je peux chercher ou se trouve une personne ou un pc etc, et cela sont des textes uniques dans le dessin De plus, la routine à un petit pb sur la fin semble t-il => On corrige comment le probleme?
lili2006 Posté(e) le 4 juin 2010 Posté(e) le 4 juin 2010 Re, et cela sont des textes uniques dans le dessin C'est surement que j'ai mal utilisé le lisp Chez moi ne fonctionne qu'avec le nom du bloc et nom la valeur de l'attribut,..Encore moins un texte, a moins que tu ai autant de bloc avec des noms différents ??? a coté de chaque bureau il y a des petites lignes de texte avec nom et prenomN de PCN de telephone etcN de prise telephone Au final, ce sont des textes ou des blocs "uniques" ? Toujours pas compris l'intérêt,... On corrige comment le probleme? Désolé, j'en ai aucune idée,... Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Invité ingoenius Posté(e) le 7 juin 2010 Posté(e) le 7 juin 2010 pour faire fonctionner le script en "recherche sur une ligne de texte" il faut modifier une ligne dans le script, ici le deux versions biensur il faut laisser en debut la routine inputbox Version TEXTE (defun c:SZB ();seleziona e zooma su blocco o testo (vl-load-com) (setq Test "ID Search?") ;Scritta nella imput BOX (setq Cerca (inputbox "Find ID" Test "new name")) ;cambiare qui la dcl dialog (setq ENT1 (ssget "x" (list (cons 0 "INSERT") (cons 2 Cerca )))) ;Creo il Set selezione tipo BLOCCO ;(setq ENT1 (ssget "x" (list (cons 0 "TEXT") (cons 1 Cerca )))) ;Creo il Set selezione Tipo TESTO (command "_zoom" "O" ENT1 "" "" ) (command "_zoom" 300 "" ) ) Version Blocks (defun c:SZB ();seleziona e zooma su blocco o testo (vl-load-com) (setq Test "ID Search?") ;Scritta nella imput BOX (setq Cerca (inputbox "Find ID" Test "new name")) ;cambiare qui la dcl dialog ;(setq ENT1 (ssget "x" (list (cons 0 "INSERT") (cons 2 Cerca )))) ;Creo il Set selezione tipo BLOCCO (setq ENT1 (ssget "x" (list (cons 0 "TEXT") (cons 1 Cerca )))) ;Creo il Set selezione Tipo TESTO (command "_zoom" "O" ENT1 "" "" ) (command "_zoom" 300 "" ) ) [Edité le 7/6/2010 par ingoenius]
lili2006 Posté(e) le 7 juin 2010 Posté(e) le 7 juin 2010 Bonjour à toutes et tous, De accuerdo, Muchas gracias,... ;) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Invité ingoenius Posté(e) le 7 juin 2010 Posté(e) le 7 juin 2010 ici la version complète modifiée avec choix en live ;; InputBox (gile) ;; Ouvre une boite de dialogue pour récupérer une valeur ;; sous forme de chaine de caractère ;; ;; Arguments ;; tous les arguments sont de chaines de caractère (ou "") ;; box : titre de la boite de dialogue ;; msg : message d'invite ;; val : valeur par défaut ;; ;; Retour ;; une chaine ("" si annulation) (defun InputBox (box msg val / subr temp file dcl_id ret) ;; Retour chariot automatique à 50 caractères (defun subr (str / pos) (if (and (< 50 (strlen str)) (setq pos (vl-string-position 32 (substr str 1 50) nil T)) ) (strcat ":text_part{label=\"" (substr str 1 pos) "\";}" (subr (substr str (+ 2 pos))) ) (strcat ":text_part{label=\"" str "\";}") ) ) ;; Créer un fichier DCL temporaire (setq temp (vl-filename-mktemp "Tmp.dcl") file (open temp "w") ret "" ) ;; Ecrire le fichier (write-line (strcat "InputBox:dialog{key=\"box\";initial_focus=\"val\";spacer;:paragraph{" (subr msg) "}spacer;:edit_box{key=\"val\";edit_width=54;allow_accept=true;} spacer;ok_cancel;}" ) file ) (close file) ;; Ouvrir la boite de dialogue (setq dcl_id (load_dialog temp)) (if (not (new_dialog "InputBox" dcl_id)) (exit) ) (set_tile "box" box) (set_tile "val" val) (action_tile "accept" "(setq ret (get_tile \"val\")) (done_dialog)" ) (start_dialog) (unload_dialog dcl_id) ;;Supprimer le fichier (vl-file-delete temp) ret ) (defun c:SZB ();seleziona e zooma su blocco o testo (vl-load-com) (setq Test "ID Search?") ;Scritta nella imput BOX (setq Cerca (inputbox "Find ID" Test "new name")) ;cambiare qui la dcl dialog (initget 1 "Blocks Text") (setq Choix (getkword "\ntype Blocks Text ?\n")) ;determina il tipo di scelta (cond ((= Choix "Blocks") (setq ENT1 (ssget "x" (list (cons 0 "INSERT") (cons 2 Cerca )))) ) ((= Choix "Text") (setq ENT1 (ssget "x" (list (cons 0 "TEXT") (cons 1 Cerca )))) )) ;(setq ENT1 (ssget "x" (list (cons 0 "INSERT") (cons 2 Cerca )))) ;Creo il Set selezione tipo BLOCCO ;(setq ENT1 (ssget "x" (list (cons 0 "TEXT") (cons 1 Cerca )))) ;Creo il Set selezione Tipo TESTO (command "_zoom" "O" ENT1 "" "" ) (command "_zoom" 300 "" ) )
lili2006 Posté(e) le 7 juin 2010 Posté(e) le 7 juin 2010 Re, Semble fonctionner chez moi mais avec un pb sur le zoom,.... Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lili2006 Posté(e) le 7 juin 2010 Posté(e) le 7 juin 2010 Re, (command "_zoom" 0.80 "" ) Comme ça, c'est bien pour moi,... Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Invité ingoenius Posté(e) le 8 juin 2010 Posté(e) le 8 juin 2010 le facteur de zoom final dépend du mode de travailler que vous avez, moi je travaille en "mètres"1 unité = 1 mètre
lili2006 Posté(e) le 8 juin 2010 Posté(e) le 8 juin 2010 Bonjour à toutes et tous, Ok ! moi je travaille en "mètres" Moi aussi en topographie et en cm pour le bâtiment (et j'avais testé sur un gabarit bâtiment,...). Merci de tes réponses. Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
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