Aller au contenu

zza427

Membres
  • Compteur de contenus

    188
  • Inscription

  • Dernière visite

  • Jours gagnés

    2

Tout ce qui a été posté par zza427

  1. Salut, Sinon, tu sélectionnes tous les blocs qui doivent prendre la même valeur d'attribut et dans les propriétés (en bas tu as la liste des attributs) tu met la valeur qui t’intéresse dans l'attribut voulu et autocad met cette valeur dans l'attribut de tous les blocs sélectionnés.
  2. zza427

    _PAN sur SPACEBAR

    Bonjour, Si ton dessin est très étendu, tu peux prendre l'habitude pour te déplacer de: dézoomer avec la molette de la souris, déplacer ton curseur là ou ça t’intéresse et zoomer avec la molette. Ça peut t'éviter de tenir la molette enfoncée longtemps.
  3. Bonjour, Tu double cliques dans la fenêtre, sélectionnes ce dont tu as besoin, copies avec point de base puis le colles dans ton autre fichier. Attention si ta fenêtre n'est pas verrouillé (dans la barre en bas à droite d'Autocad le cadenas à coté de l'échelle) et si tu zoomes, tu perds ton échelle et donc ton cadrage. Sinon renseigne toi sur les états de calques, c'est très pratique pour que ton espace objet ressemble temporairement à ta fenêtre de présentation.
  4. Bonjour, quand ça m'arrive j'utilise : ;;;================================================================= ;;; ;;; RINS.LSP V3.20 ;;; ;;; Redéfinir le point d'insertion des blocs ;;; ;;; Copyright © Patrick_35 ;;; ;;;================================================================= Qui fonctionne bien sauf qu'il faut cliquer là ou tu veux le nouveau point d'insertion. Merci Patrick_35 pour les lisp qui font gagner du temps et de l'énergie.
  5. zza427

    Une expérience nouvelle !!!

    Bonjour, Si chacun se met a accepter n'importe quoi dans son boulot sous prétexte que d'autres l'acceptent, on se met a déprécier nos métiers. Je ne parle pas que de salaire quand je dis déprécier, je parle aussi de la qualité de ce qu'on rend comme travail car, si il faut faire dans des mauvaises conditions ou moins cher, on n'a plus le temps (ou les conditions) pour faire bien son travail et la qualité générale de toute la profession s'en trouve dégradée petit a petit. Il faut toujours refuser quand on sent qu'on va être obligé de baisser la qualité de ce qu'on fait. Même si d'autres risquent d'accepter. C'est peut être plus facile pour moi de le dire du fait que je suis salarié et pas indépendant, mais c'est vraiment ma conviction profonde.
  6. zza427

    50 nuances de grey

    Cette colonne te permet aussi de respecter une charte graphique en espace objet (parfois avec du jaune et du cyan) et de faire quand même des présentations imprimables lisibles sur chantier. Moi je l'utilise beaucoup.
  7. zza427

    Schéma d'armoire elec sur Revit avis

    Salut, Il existe une passerelle entre Revit et Canéco implantation qui a une passerelle avec Canéco BT qui fait des schémas propres et utilisables sur chantier. Je ne l'utilise pas mais certaines agences de mon groupe l'utilisent, il parait que c'est efficace.
  8. zza427

    Extensions pour Firefox

    Bonjour, Au boulot on utilise deux proxy différents en fonction de ce qu'on fait, du coup j'utilise "Foxy Proxy Standard" pas très intuitif pour créer les règles, mais une fois compris, il est bien pratique pour changer automatiquement le proxy en fonction du site consulté. Si quelqu'un en utilise un plus simple, je suis preneur.
  9. Je viens de faire le test sur un de mes fichiers, et ça fonctionne... J'ai juste oublié de préciser que comme les attributs sont modifiés j'utilise le lisp SYN (merci Patrick_35 pour le LISP) pour synchroniser les attributs de tous les blocs sans modifier leur position.
  10. Bonjour, En général quand j'ai ce genre de problèmes, je sélectionne toutes les étiquettes de pièces, je fais ATTOUT je modifie les étiquettes dans le fichier texte ouvert avec Excel (ça permet d'effacer les valeurs d'une colonne d’étiquettes) puis fait ATTIN pour rentrer les valeurs changées dans le plan Autocad.
  11. Merci Kegaska, Ca fonctionne, moi j’étais sur 2 et l'autre poste était sur 0. En mettant la variable à 2 les Xrefs sont bien chargées. Come, j'avais regardé mais pas trouvé cette variable. Oui le tableau de Christian est super utile.
  12. Bonjour, J'ai fait un gabarit pour un chantier, dedans j'y ai mis mes fonds de plans en xref supperposées et chargées. Sur un poste, quand je crée un fichier à partir du gabarit, il y a les fonds de plans en xref chargés. Sur un autre poste, les fonds de plan sont bien référencés mais sont déchargés. Je me doute qu'il y a une variable système derrière mais je ne trouve pas laquelle. Si quelqu'un a une idée, ça me sauverait. PS : Ca n'est pas XREFREGAPPCTL qui est à 0 sur les deux postes.
  13. zza427

    Voler xref

    Bonjour, tu peux essayer en diminuant la résolution de ton écran puis en la remettant normale. Des fois lors de la manipulation la fenêtre réapparait.
  14. zza427

    Modification Attribut

    Bonjour, Il existe aussi celui de Lee Mac, Batch Attribute Editor (BATTE) que j'utilise souvent pour les cartouches qui marche très bien.
  15. zza427

    PDF/PDF/PDF!!!!

    Bonjour, Je fais toutes mes présentations en dwg to pdf et dans mes gabarits j'ai une présentation vide en 914x3000 mon traceur est par défaut en 914x3000 avec la suppression des zones blanches. Ainsi, aussi bien avec la commande EXPORTPDF qu'avec PUBLIER j'ai des pdf propres et si j'ai besoin de tracer en papier au moment de l'impression dans le cadre mise en page je choisis ma présentation 914x3000 quelques secondes d'attente et je peux lancer l'impression qui est toujours nickel.
  16. Dans les options tu vas dans l'onglet "tracer et publier", en bas a gauche tu coches la case "Publication automatique" puis avec le bouton "Paramètres de publication automatique", tu fais les réglages qui t’intéressent multi-feuille ou pas, lieu d'enregistrement, etc... et surtout publier à la fermeture. Ensuite tu ouvres tous tes dwg avec autocad, surtout tu ne touche pas aux dessins ouverts, tu tapes "saveall" puis quand c'est fait tu fermes autocad, il fait alors les pdf de tous les fichiers et beaucoup plus rapidement qu'avec n’importe quelle autre méthode. Et surtout tu ré-ouvres autocad et décoches dans les options Publication automatiques, sinon tu vas avoir des pdf partout. Attention la méthode écrase irrémédiablement les vieux pdf de même nom sans demander confirmation.
  17. Pour l'instant j'ai trouvé une solution: J'ai remonté tous mes CDC de 2.5cm pour qu'ils soient à la bonne hauteur, et dans l'étiquette pour les plans j'ai fais apparaitre l'élévation du bas. Mais la question est toujours d'actualité car du coup je suis obligé de calculer pour chaque nouvelle hauteur que je veux. Si quelqu'une meilleur solution, ça me faciliterais la vie.
  18. Bonjour, débutant sur Revit je n'arrive pas a modifier la justification de tout un système de chemin de câbles. Sur le chantier d'une école, je reprends la maquette DCE avec le système des chemins de câbles déjà fait, mais la justification est a l'axe du chemin de câble. J'aimerais pouvoir passer la justification de tous les éléments du système au bas des éléments afin de gérer avec l'arase inférieure des chemins de câble (ce qu'on utilise en général sur le chantier). Sur un élément de mon système je le fais sans problème. Si je sélectionne toutes les occurrences du projet ou de la vue, il me dit qu'il n'y a pas de solution d'acheminement et ne me propose que d'annuler. Si quelqu'un a une solution pour modifier la justification de tout le système d'un coup je suis preneur. Merci.
  19. Bonjour, Si il y a des personnes qui ont utilisé le noyau de calcul des éclairements des pièces dans Revit, j'aurais voulu savoir si les résultats sont bons? Et aussi si les BET et BC acceptent ces calculs comme ils acceptent ceux de Dialux (par exemple)? Merci.
  20. Perso je bosse avec un fond qui est de couleur orange pale, pêche (j'ai du mal a nommer la couleur exacte, mais chez autocad c'est du 31) depuis que j'ai bossé sous une charte qui utilisait aussi bien du jaune, du bleu foncé voir du gris 251... Et du coup j'ai gardé ce fond car je vois toutes les couleurs dessus. En plus la couleur n'est pas agressive, et ça deviens agréable de bosser avec ce fond.
  21. Bonjour, Ca m'est arrivé plusieurs fois, une des solution que j'ai trouvé (quand le fichier n'a pas besoin d'echelle) c'est de faire la mise en page en "Etendu" "centrer le tracé" et "A la taille du papier, et ensuite quand tu imprimes ton pdf tu coches ajuster au lieu de taille rééle. De plus avec EXPORTPDF tu peux changer la mise en page avec le bouton "Mise en page" (sous le bouton qui te permet de choisir entre présentation courante et toutes les présentations) tu peux faire "remplacer" et là apparait le bouton pour modifier quelques éléments de la mise en page.
  22. Et en intégrant le lisp RB qui passe tous les objets des blocs en dubloc et calque 0, combiné avec le reste il ne devrait plus y avoir de problèmes...
  23. Bonjour, Ça oblige a cliquer sur chaque élément, mais souvent j'utilise une vielle version de incrément qui se moque du nom de l'attribut. Voici la version, elle fonctionne encore alors que je suis sur Autocad 2018. ;| Ces commandes sont toutes basées sur la routine Insuff qui permet d'incrémenter les caractères numériques et/ou alphabétiques à la fin d'une chaîne. INCTXT et INCATT insèrent respectivement un texte ou un bloc avec attribut dont une partie est incrémentée. INSEL et INCSUF incrémentent respectivement une partie ou la fin des textes/attributs successivement sélectionnés à fonction du premier sélectionné. INCADD ajoute au début ou à la fin des textes/attributs sélectionnés une chaîne contenant une valeur incrémentée. INCR permet de choisir parmi ces commandes. Revision : 11/05/2008 |; ;;=================== SOUS-ROUTINES ===================;; ;; INCSUFF (version 1.2) -Gilles Chanteau- 15/01/08 ;; Incrémente le suffixe d'une chaîne de caractères de la valeur spécifiée. ;; Est pris en compte comme suffixe, l'ensemble des caractères [0-9] et/ou [A-Z] ;; et/ou [a-z] depuis la fin du texte, en fonction de la valeur de alpha ;; ;; Arguments ;; str : une chaîne avec un suffixe valide ;; inc : un entier positif ;; alpha : un entier, somme des codes binaires suivant ;; 1 pour les caractères [0-9] ;; 2 pour les caractères [A-Z] ;; 4 pour les caractères [a-z] ;; ;; Retour ;; la chaîne avec son suffixe incrémenté (ou nil si aucun suffixe valide) ;; ;; Exemples : ;; (incsuff "N°002" 12 1) = "N°014" ;; (incsuff "Dessin9" 1 1) = "Dessin10" ;; (incsuff "test_ZZ9" 1 3) = "test_AAA0" ;; (incsuff "test_ZZ9" 1 1) = "test_ZZ10" ;; (incsuff "12-" 1 1) = nil ;; ;; Modification (13/02/08) : codes binaires pour l'argument alpha (defun incsuff (str inc alpha / lst crt pas ind val quo ret) (setq lst (reverse (vl-string->list str))) (while (and (setq crt (car lst)) (cond ((and (< 47 crt 58) (= 1 (logand 1 alpha))) (setq pas 10 ind 48 ) ) ((and (< 64 crt 91) (= 2 (logand 2 alpha))) (setq pas 26 ind 65 ) ) ((and (< 96 crt 123) (= 4 (logand 4 alpha))) (setq pas 26 ind 97 ) ) ((< 0 quo) (setq crt (if (= 10 pas) ind (1- ind) ) lst (cons (car lst) lst) ) ) ) ) (setq val (- crt ind) quo (/ (+ val inc) pas) ret (cons (+ ind (rem (+ val inc) pas)) ret) ) (if (zerop quo) (setq ret (append (reverse (cdr lst)) ret) lst nil ) (if (cdr lst) (setq lst (cdr lst) inc quo ) (setq lst (list ind) inc (if (= 10 pas) quo (1- quo) ) ) ) ) ) (if ret (vl-list->string ret) ) ) ;;==================================================;; ;; IncValue ;; Incrémente un valeur dans les textes ou attributs sélectionnés ;; ;; Arguments ;; pref : préfixe (string) ;; val : valeur à incrémenter (string) ;; suff : suffixe (string) ;; inc : valeur d'incrément (entier, positif) ;; bin : type de caractères à incrémenter (entier, code binaire) ;; typ : type d'entité (string, valeur du code de groupe DXF 0) ;; tag : Etiquette d'attribut (string) ;; save : liste de sauvegarde des anciennes valeurs de texte (liste d'association) (defun incvalue (pref val suff inc bin typ save prop / ent elst) (while (or (initget 1 "annUler") (setq ent (nentsel (strcat "\nSélectionnez le texte suivant" (if save " ou [annUler]: " ":" ) ) ) ) ) (if (= ent "annUler") (if save (progn (setq elst (car save)) (entmod elst) (and (= typ "ATTRIB") (entupd (cdr (assoc 330 elst)))) (setq val (incsuff val (- inc) bin) save (cdr save) ) ) (princ "\nPlus rien à annuler.") ) (and (setq elst (entget (car ent))) (= (cdr (assoc 0 elst)) typ) (setq save (cons elst save)) (setq val (incsuff val inc bin)) (if prop (entmod (append (vl-remove-if (function (lambda (x) (member (car x) '(1 8 62 40 7)) ) ) elst ) (if (null (assoc 62 prop)) '((62 . 256)) ) (cons (cons 1 (strcat pref val suff)) prop) ) ) (entmod (subst (cons 1 (strcat pref val suff)) (assoc 1 elst) elst) ) ) (and (= typ "ATTRIB") (entupd (cdr (assoc 330 elst)))) ) ) ) ) ;;==================================================;; ;;; Getblock (gile) 03/11/07 ;;; Retourne le nom du bloc entré ou choisi par l'utilisateur ;;; dans une liste déroulante de la boite de dialogue ou depuis la boite ;;; de dialogue standard d'AutoCAD ;;; Argument : le titre (string) ou nil (défaut : "Choisir un bloc") (defun getblock (titre / bloc n lst tmp file what_next dcl_id nom ent) (while (setq bloc (tblnext "BLOCK" (not bloc))) (setq lst (cons (cdr (assoc 2 bloc)) lst) ) ) (setq lst (acad_strlsort (vl-remove-if (function (lambda (n) (= (substr n 1 1) "*"))) lst ) ) tmp (vl-filename-mktemp "Tmp.dcl") file (open tmp "w") ) (write-line (strcat "getblock:dialog{label=" (cond (titre (vl-prin1-to-string titre)) ("\"Choisir un bloc\"") ) ";initial_focus=\"bl\";:boxed_column{ :row{:text{label=\"Sélectionner\";alignment=left;} :button{label=\">>\";key=\"sel\";alignment=right;fixed_width=true;}} spacer; :column{:button{label=\"Parcourir...\";key=\"wbl\";alignment=right;fixed_width=true;}} :column{:text{label=\"Nom :\";alignment=left;}} :edit_box{key=\"tp\";edit_width=25;} :popup_list{key=\"bl\";edit_width=25;}spacer;} spacer; ok_cancel;}" ) file ) (close file) (setq dcl_id (load_dialog tmp)) (setq what_next 2) (while (>= what_next 2) (if (not (new_dialog "getblock" dcl_id)) (exit) ) (start_list "bl") (mapcar 'add_list lst) (end_list) (if (setq n (vl-position (strcase (getvar "INSNAME")) (mapcar 'strcase lst) ) ) (setq nom (nth n lst)) (setq nom (car lst) n 0 ) ) (set_tile "bl" (itoa n)) (action_tile "sel" "(done_dialog 5)") (action_tile "bl" "(setq nom (nth (atoi $value) lst))") (action_tile "wbl" "(done_dialog 3)") (action_tile "tp" "(setq nom $value) (done_dialog 4)") (action_tile "accept" "(setq nom (nth (atoi (get_tile \"bl\")) lst)) (done_dialog 1)" ) (setq what_next (start_dialog)) (cond ((= what_next 3) (if (setq nom (getfiled "Sélectionner un fichier" "" "dwg" 0)) (setq what_next 1) (setq what_next 2) ) ) ((= what_next 4) (cond ((not (read nom)) (setq what_next 2) ) ((tblsearch "BLOCK" nom) (setq what_next 1) ) ((findfile (setq nom (strcat nom ".dwg"))) (setq what_next 1) ) (T (alert (strcat "Le fichier \"" nom "\" est introuvable.")) (setq nom nil what_next 2 ) ) ) ) ((= what_next 5) (if (and (setq ent (car (entsel))) (= "INSERT" (cdr (assoc 0 (entget ent)))) ) (setq nom (cdr (assoc 2 (entget ent))) what_next 1 ) (setq what_next 2) ) ) ((= what_next 0) (setq nom nil) ) ) ) (unload_dialog dcl_id) (vl-file-delete tmp) nom ) ;;=================== COMMANDES ===================;; ;; INCSUF (gile) 14/02/08 -version 2.2- ;; Incrémente le suffixe des textes, mtextes ou attributs successivement sélectionnés. ;; Le suffixe est déterminé automatiquement en fonction de la nature des caracères qui ;; le compose et du paramètre "Type(s) de caratère du suffixe" courant. ;; L'utilisateur peut modifier les paramètres courants dans une boite dialogue. ;; ;; Modif 10/04/08 plus de contrôle sur l'étiquette de l'attribut (defun c:incsuf (/ ValidSel temp typ inc cp file dcl_id what_next ent elst val prop save ) (defun ValidSel (elst / val) (setq val (cdr (assoc 1 elst)) val (ascii (substr val (strlen val))) ) (or (and (= 1 (logand 1 *suffixbin*)) (< 47 val 58)) (and (= 2 (logand 2 *suffixbin*)) (< 64 val 91)) (and (= 4 (logand 4 *suffixbin*)) (< 96 val 123)) ) ) (or *suffixbin* (setq *suffixbin* 1)) (or *incrvalue* (setq *incrvalue* 1)) (setq typ *suffixbin* inc *incrvalue* cp 0 temp (vl-filename-mktemp "Tmp.dcl") file (open temp "w") ) (write-line (strcat "IncsuffInputbox:dialog{" "label=\"Paramètres\";" ":boxed_column{" "label=\"Type(s) de caractère du suffixe\";" ":toggle{" "label=\"Nombres [0-9]\";key=\"num\";}" ":toggle{" "label=\"Majuscules [A-Z]\";key=\"maj\";}" ":toggle{" "label=\"Minuscules [a-z]\";key=\"min\";}}" "spacer;" ":edit_box{" "label=\"Incrément\";key=\"inc\";edit_width=6;allow_accept=true;}" ":toggle{" "label=\"Copier les propriétés\";key=\"cp\";}" "spacer;ok_cancel; }" ) file ) (close file) (setq dcl_id (load_dialog temp) what_next 2 ) (while (>= what_next 2) (if (not (new_dialog "IncsuffInputbox" dcl_id)) (exit) ) (if (= 1 (logand 1 typ)) (set_tile "num" "1") ) (if (= 2 (logand 2 typ)) (set_tile "maj" "1") ) (if (= 4 (logand 4 typ)) (set_tile "min" "1") ) (set_tile "inc" (itoa inc)) (action_tile "cp" "(setq cp (atoi $value))") (action_tile "accept" "(setq typ (+ (if (= (get_tile \"num\") \"1\") 1 0) (if (= (get_tile \"maj\") \"1\") 2 0) (if (= (get_tile \"min\") \"1\") 4 0)) inc (read (get_tile \"inc\"))) (cond ((zerop typ) (alert \"Au moins un type de caractère doit être coché.\") (setq typ *suffixbin*) (done_dialog 2)) ((or (/= (type inc) 'INT) (< inc 0)) (alert \"L'incrément doit être un entier positif.\") (setq inc *incrvalue*) (done_dialog 2)) (T (done_dialog 1)))" ) (action_tile "cancel" "(setq typ nil) (done_dialog 0)") (setq what_next (start_dialog)) ) (unload_dialog dcl_id) (vl-file-delete temp) (if typ (progn (setq *suffixbin* typ *incrvalue* inc ) (while (not (and (setq ent (nentsel "\nSélectionnez le texte de départ: " ) ) (setq elst (entget (car ent))) (setq typ (cdr (assoc 0 elst))) (member typ '("ATTRIB" "TEXT" "MTEXT")) (setq val (cdr (assoc 1 elst))) (or (zerop cp) (setq prop (vl-remove nil (mapcar (function (lambda (n) (assoc n elst) ) ) '(8 62 40 7) ) ) ) ) ) ) ) (if (ValidSel elst) (IncValue "" val "" *incrvalue* *suffixbin* typ save prop) (princ "\nParamètre de suffixe incorrect.") ) ) ) (princ) ) ;;==================================================;; ;; INCTXT (gile) 31/03/08 ;; Insertions multiples d'un texte avec une valeur à incrémenter. ;; La valeur à incrémenter peut être de type numérique, alphabétique, ;; ou une combinaison alphanumérique. (defun c:inctxt (/ temp file dcl_id slst st jlst ju ht ro val inc pref suff hor vert nor dlst pt) (setq temp (vl-filename-mktemp "Tmp.dcl") file (open temp "w") ) (write-line (strcat "IncTxt:dialog{" "label=\"Texte incrémenté\";" ":boxed_column{" "label=\"Mise en forme\";" ":row{" ":column{" ":popup_list{" "label=\"Style\";key=\"st\";edit_width=16;}" ":popup_list{" "label=\"Justification\";key=\"ju\";edit_width=16;}}" ":column{" ":edit_box{" "label=\"Hauteur\";key=\"ht\";edit_width=5;allow_accept=true;}" ":edit_box{" "label=\"Rotation\";key=\"ro\";edit_width=5;allow_accept=true;}}}}" ":boxed_row{" "label=\"Texte\";" ":column{" ":edit_box{" "label=\"Valeur de départ\";key=\"val\";edit_width=5;allow_accept=true;}" ":edit_box{" "label=\"Incrément\";key=\"inc\";edit_width=5;allow_accept=true;}}" "spacer;" ":column{" ":edit_box{" "label=\"Préfixe\";key=\"pref\";edit_width=16;allow_accept=true;}" ":edit_box{" "label=\"Suffixe\";key=\"suff\";edit_width=16;allow_accept=true;}}}" "ok_cancel;}" ) file ) (close file) (setq dcl_id (load_dialog temp)) (if (not (new_dialog "IncTxt" dcl_id)) (exit) ) (while (setq st (tblnext "STYLE" (not st))) (if (/= (cdr (assoc 2 st)) "") (setq slst (cons (cdr (assoc 2 st)) slst)) ) ) (setq slst (reverse slst)) (start_list "st") (mapcar 'add_list slst) (end_list) (setq jlst '("Gauche" "Centre" "Droite" "Milieu" "Haut Gauche" "Haut Centre" "Haut Droite" "Milieu Gauche" "Milieu Centre" "Milieu Droite" "Bas Gauche" "Bas Centre" "Bas Droite" ) ) (start_list "ju") (mapcar 'add_list jlst) (end_list) (or st (setq st (getvar "TEXTSTYLE"))) (or ju (setq ju "Gauche")) (or ht (setq ht (getvar "TEXTSIZE"))) (or ro (setq ro 0.0)) (or val (setq val "1")) (or inc (setq inc 1)) (or pref (setq pref "")) (or suff (setq suff "")) (set_tile "st" (itoa (vl-position st slst))) (set_tile "ju" (itoa (vl-position ju jlst))) (set_tile "ht" (rtos ht)) (set_tile "ro" (angtos ro)) (set_tile "val" val) (set_tile "inc" (itoa inc)) (action_tile "st" "(setq st (nth (atoi $value) slst))") (action_tile "ju" "(setq ju (nth (atoi $value) jlst))") (action_tile "ht" "(if (and (numberp (distof $value)) (< 0 (distof $value))) (setq ht (distof $value)) (progn (alert \"Nécessite un nombre réel strictement positif\") (set_tile \"ht\" (rtos ht)) (mode_tile \"ht\" 2))))" ) (action_tile "ro" "(if (numberp (angtof $value)) (setq ro (angtof $value)) (progn (alert \"Nécessite une valeur d'angle valide\") (set_tile \"ro\" (angtos ro)) (mode_tile \"ro\" 2))))" ) (action_tile "inc" "(if (and (numberp (read $value)) (<= 0 (read $value))) (setq inc (atoi $value)) (progn (alert \"Nécessite un entier positif\") (set_tile \"inc\" (itoa inc)) (mode_tile \"inc\" 2))))" ) (action_tile "val" "(if (wcmatch $value \"~*.*\") (setq val $value) (progn (alert \"Nécessite uniquement des caractères alphabétiques et/ou numériques\") (set_tile \"val\" val) (mode_tile \"val\" 2))))" ) (action_tile "pref" "(setq pref $value)") (action_tile "suff" "(setq suff $value)") (action_tile "accept" "(done_dialog)") (action_tile "cancel" "(setq ju nil)") (start_dialog) (unload_dialog dcl_id) (vl-file-delete temp) (if ju (progn (setq hor (cond ((wcmatch ju "*Gauche") 0) ((wcmatch ju "*Centre") 1) ((wcmatch ju "*Droite") 2) (T 4) ) vert (cond ((wcmatch ju "Haut *") 3) ((wcmatch ju "Milieu *") 2) ((wcmatch ju "Bas *") 1) (T 0) ) nor (trans '(0 0 1) 1 0 T) dlst (reverse (vl-string->list val)) ) (while (setq pt (getpoint "\nSpécifiez le point d'insertion: ")) (setq pt (trans pt 1 nor)) (entmake (list '(0 . "TEXT") (cons 10 pt) (cons 40 ht) (cons 50 (+ ro (angle '(0 0 0) (trans (getvar "UCSXDIR") 0 nor))) ) (cons 7 st) (cons 11 pt) (cons 72 hor) (cons 73 vert) (cons 1 (strcat pref val suff)) (cons 210 nor) ) ) (setq val (incsuff val inc 7)) ) ) ) (princ) ) ;;==================================================;; ;;; INCATT (gile) 03/04/08 ;;; Insertions multiple d'un bloc avec incrémentation d'un attribut ;;; La valeur à incrémenter peut être de type numérique, alphabétique, ;;; ou une combinaison alphanumérique. (defun c:incatt (/ space name lst tmp file dcl_id scl rot tag val inc pref suff ins) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) ) (setq space (if (= (getvar "CVPORT") 1) (vla-get-PaperSpace *acdoc*) (vla-get-ModelSpace *acdoc*) ) ) (if (setq name (getblock nil)) (progn (or (tblsearch "BLOCK" name) (vla-delete (vla-InsertBlock space (vlax-3d-point '(0 0 0)) name 1 1 1 0 ) ) ) (setq name (vl-filename-base name)) (vlax-for e (vla-item (vla-get-Blocks *acdoc*) name) (if (and (= (vla-get-ObjectName e) "AcDbAttributeDefinition") (= (vla-get-Constant e) :vlax-false) ) (setq lst (cons (vla-get-TagString e) lst)) ) ) (if (setq lst (reverse lst)) (progn (setq tmp (vl-filename-mktemp "Tmp.dcl") file (open tmp "w") ) (write-line (strcat "incins:dialog{" "label=\"Attribut incémenté\";" ":boxed_column{" "label=\"Bloc\";" ":edit_box{" "label=\"Echelle globale\";key=\"scl\";edit_width=5;}" ":edit_box{" "label=\"Rotation\";key=\"rot\";edit_width=5;}} " ":boxed_column{" "label=\"Attribut\";" ":popup_list{" "label=\"Etiquette\";key=\"tag\";edit_width=16;}" ":edit_box{" "label=\"Valeur de départ\";key=\"val\";edit_width=5;allow_accept=true;}" ":edit_box{" "label=\"Incrément\";key=\"inc\";edit_width=5;allow_accept=true;}" ":edit_box{" "label=\"Préfixe\";key=\"pref\";edit_width=16;allow_accept=true;}" ":edit_box{" "label=\"Suffixe\";key=\"suff\";edit_width=16;allow_accept=true;}}" "ok_cancel;}" ) file ) (close file) (setq scl 1.0 rot 0.0 val "1" inc 1 pref "" suff "" dcl_id (load_dialog tmp) ) (if (not (new_dialog "incins" dcl_id)) (exit) ) (start_list "tag") (mapcar 'add_list lst) (end_list) (set_tile "scl" (rtos scl)) (set_tile "rot" (rtos rot)) (set_tile "val" val) (set_tile "inc" (itoa inc)) (action_tile "scl" "(if (and (distof $value) (< 0 (distof $value))) (setq scl (distof $value)) (progn (alert \"Nécessite un nombre réel strictement positif\") (set_tile \"scl\" (rtos scl)) (mode_tile \"scl\" 2)))" ) (action_tile "rot" "(if (numberp (angtof $value)) (setq rot (angtof $value)) (progn (alert \"Nécessite une valeur d'angle valide\") (set_tile \"rot\" (angtos rot)) (mode_tile \"rot\" 2)))" ) (action_tile "inc" "(if (and (numberp (read $value)) (<= 0 (read $value))) (setq inc (atoi $value)) (progn (alert \"Nécessite un entier positif\") (set_tile \"inc\" (itoa inc)) (mode_tile \"inc\" 2))))" ) (action_tile "val" "(if (wcmatch $value \"~*.*\") (setq val $value) (progn (alert \"Nécessite uniquement des caractères alphabétiques et/ou numériques\") (set_tile \"val\" val) (mode_tile \"val\" 2))))" ) (action_tile "pref" "(setq pref $value)") (action_tile "suff" "(setq suff $value)") (action_tile "accept" "(setq tag (atoi (get_tile\"tag\"))) (done_dialog)" ) (action_tile "cancel" "(setq tag nil)") (start_dialog) (unload_dialog dcl_id) (vl-file-delete tmp) (if tag (while (setq ins (getpoint "\nSpécifiez le point d'insertion: ")) (vla-put-Textstring (nth tag (vlax-invoke (vla-InsertBlock space (vlax-3d-point (trans ins 1 0)) name scl scl scl rot ) 'getAttributes ) ) (strcat pref val suff) ) (setq val (incsuff val inc 7)) ) ) ) (princ "\nCe bloc ne contient pas d'attributs.") ) ) ) (princ) ) ;;==================================================;; ;; INCSEL (gile) 05/04/08 ;; Incrémente par sélection successive une valeur contenue dans des textes, ;; mtextes ou attributs. ;; ;; Modif 10/04/08 plus de contrôle sur l'étiquette de l'attribut (defun c:incsel (/ temp file val inc pref suff cp dcl_id ent elst typ prop save) (setq temp (vl-filename-mktemp "Tmp.dcl") file (open temp "w") ) (write-line (strcat "IncselInputbox:dialog{label=\"Paramètres\";" ":edit_box{" "label=\"Valeur de départ\";key=\"val\";edit_width=5;allow_accept=true;}" ":edit_box{" "label=\"Incrément\";key=\"inc\";edit_width=5;allow_accept=true;}" ":edit_box{" "label=\"Préfixe\";key=\"pref\";edit_width=16;allow_accept=true;}" ":edit_box{" "label=\"Suffixe\";key=\"suff\";edit_width=16;allow_accept=true;}" ":toggle{" "label=\"Copier les propriétés\";key=\"cp\";}" "spacer;ok_cancel;}" ) file ) (close file) (setq val "1" inc 1 pref "" suff "" cp 0 dcl_id (load_dialog temp) ) (if (not (new_dialog "IncselInputbox" dcl_id)) (exit) ) (set_tile "val" val) (set_tile "inc" (itoa inc)) (set_tile "cp" (itoa cp)) (action_tile "inc" "(if (and (numberp (read $value)) (<= 0 (read $value))) (setq inc (atoi $value)) (progn (alert \"Nécessite un entier positif\") (set_tile \"inc\" (itoa inc)) (mode_tile \"inc\" 2))))" ) (action_tile "val" "(if (wcmatch $value \"~*.*\") (setq val $value) (progn (alert \"Nécessite uniquement des caractères alphabétiques et/ou numériques\") (set_tile \"val\" val) (mode_tile \"val\" 2))))" ) (action_tile "pref" "(setq pref $value)") (action_tile "suff" "(setq suff $value)") (action_tile "cp" "(setq cp (atoi $value))") (action_tile "accept" "(done_dialog)") (action_tile "cancel" "(setq inc nil)") (start_dialog) (unload_dialog dcl_id) (vl-file-delete temp) (if inc (progn (while (not (and (setq ent (nentsel "\nSélectionnez le texte de départ: " ) ) (setq elst (entget (car ent))) (setq typ (cdr (assoc 0 elst))) (member typ '("ATTRIB" "TEXT" "MTEXT")) (or (zerop cp) (setq prop (vl-remove nil (mapcar (function (lambda (n) (assoc n elst) ) ) '(8 62 40 7) ) ) ) ) ) ) ) (setq save (cons elst save)) (entmod (subst (cons 1 (strcat pref val suff)) (assoc 1 elst) elst) ) (if (= typ "ATTRIB") (entupd (cdr (assoc 330 elst))) ) (IncValue pref val suff inc 7 typ save prop) ) ) (princ) ) ;;==================================================;; ;; INCADD (gile) 10/04/08 ;; Ajoute une valeur incrémentée au début ou à la fin des textes, ;; mtextes ou attributs successivement sélectionnés. (defun c:incadd (/ bin inc val pref suff temp typ file dcl_id pos ent elst str save) (setq temp (vl-filename-mktemp "Tmp.dcl") file (open temp "w") ) (write-line (strcat "IncselInputbox:dialog{label=\"Paramètres\";" ":boxed_radio_column{" "label=\"Position\";key=\"pos\";" ":radio_button{" "label=\"Au début\";key=\"start\";}" ":radio_button{" "label=\"À la fin\";key=\"end\";value=\"1\";}}" ":edit_box{" "label=\"Valeur de départ\";key=\"val\";edit_width=5;allow_accept=true;}" ":edit_box{" "label=\"Incrément\";key=\"inc\";edit_width=5;allow_accept=true;}" ":edit_box{" "label=\"Préfixe\";key=\"pref\";edit_width=16;allow_accept=true;}" ":edit_box{" "label=\"Suffixe\";key=\"suff\";edit_width=16;allow_accept=true;}" "spacer;ok_cancel;}" ) file ) (close file) (setq val "1" inc 1 pref "" suff "" dcl_id (load_dialog temp) ) (if (not (new_dialog "IncselInputbox" dcl_id)) (exit) ) (set_tile "val" val) (set_tile "inc" (itoa inc)) (action_tile "inc" "(if (and (numberp (read $value)) (<= 0 (read $value))) (setq inc (atoi $value)) (progn (alert \"Nécessite un entier positif\") (set_tile \"inc\" (itoa inc)) (mode_tile \"inc\" 2))))" ) (action_tile "val" "(if (wcmatch $value \"~*.*\") (setq val $value) (progn (alert \"Nécessite uniquement des caractères alphabétiques et/ou numériques\") (set_tile \"val\" val) (mode_tile \"val\" 2))))" ) (action_tile "pref" "(setq pref $value)") (action_tile "suff" "(setq suff $value)") (action_tile "accept" "(setq pos (get_tile \"pos\")) (done_dialog)" ) (action_tile "cancel" "(setq inc nil)") (start_dialog) (unload_dialog dcl_id) (vl-file-delete temp) (if inc (while (or (initget 1 "annUler") (setq ent (nentsel (strcat "\nSélectionnez un texte" (if save " ou [annUler]: " ":" ) ) ) ) ) (if (= ent "annUler") (if save (progn (setq elst (car save)) (entmod elst) (and (= "ATTRIB" (cdr (assoc 0 elst))) (entupd (cdr (assoc 330 elst))) ) (setq val (incsuff val (- inc) 7) save (cdr save) ) ) (princ "\nPlus rien à annuler.") ) (and (setq elst (entget (car ent))) (member (cdr (assoc 0 elst)) '("ATTRIB" "MTEXT" "TEXT")) (setq save (cons elst save)) (setq str (cdr (assoc 1 elst))) (entmod (subst (cons 1 (if (= "start" pos) (strcat pref val suff str) (strcat str pref val suff) ) ) (assoc 1 elst) elst ) ) (setq val (incsuff val inc 7)) (and (= "ATTRIB" (cdr (assoc 0 elst))) (entupd (cdr (assoc 330 elst))) ) ) ) ) ) (princ) ) ;; INCR ;; Permet de choisir une fonction d'incrémentation (defun c:incr (/ temp file dcl_id fun) (setq temp (vl-filename-mktemp "Tmp.dcl") file (open temp "w") ) (write-line (strcat "IncrInputbox:dialog{label=\"Incrémenter\";" ":radio_column{key=\"fun\";" ":radio_button{" "label=\"INCTXT Insérer un texte contenant une valeur incrémentée\";key=\"c:inctxt\";}" ":radio_button{" "label=\"INCATT Insérer un bloc contenant un attribut incrémenté\";key=\"c:incatt\";}" ":radio_button{" "label=\"INCSEL Incrémenter une valeur dans les textes sélectionnés\";key=\"c:incsel\";}" ":radio_button{" "label=\"INCSUF Incrémenter la partie finale des textes sélectionnés\";key=\"c:incsuf\";}" ":radio_button{" "label=\"INCADD Ajouter une valeur incrémentée aux textes sélectionnés\";key=\"c:incadd\";}}" "ok_cancel;}") file ) (close file) (setq dcl_id (load_dialog temp)) (if (not (new_dialog "IncrInputbox" dcl_id)) (exit) ) (set_tile "c:inctxt" "1") (action_tile "accept" "(setq fun (get_tile \"fun\")) (done_dialog)" ) (start_dialog) (unload_dialog dcl_id) (and fun (apply (read fun) nil)) (princ) )
  24. Bonjour, Fais un wbloc de ton bloc, corriges la visibilité de l'attribut WT52. Dans ton fichier redéfinis le bloc (il faut que le fichier du bloc soit dans le dossier du dessin dans le dessin tu tappes "-I" tu colles le nom du bloc suivi de "=" il te demande si tu veux redéfinir le bloc, tu réponds "o", le bloc est redéfini) puis fais attsync, et ton attribut réapparais. Ça m'était arrivé sur plusieurs fichiers, il me semble que ça venait de l'utilisation d'une vielle version de RADICALPURGE. edité à 8h48
  25. Bonjour, Sans Lisp: tu double cliques dans ta fenêtre, tu crée un état de calque, ensuite tu repasse en objet et là tu restaure l'état de calque que tu viens de créer. Ainsi dans ton espace objet les calques qui étaient gelés uniquement dans ta présentation le sont maintenant dans ton espace objet. J'utilise souvent ça pour travailler car on a des plans elec avec tous les terminaux et câblages sur le même plan et une dizaine de présentations différentes (pour chaque système). Pour améliorer la fluidité du travail je fais un état de calque ou je vois tout (pour l'espace objet) et un état de calque de chaque fenêtre de présentation, ainsi dans l'espace objet en trois clics j'arrive a voir uniquement le système qui m’intéresse.
×
×
  • 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é