-
Compteur de contenus
4 029 -
Inscription
-
Dernière visite
-
Jours gagnés
21
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par DenisHen
-
[Résolu] Commande pour remplir les attributs d'un bloc à l'aide des données d'un ancien bloc.
DenisHen a répondu à un(e) sujet de Jbrosteaux dans AutoCAD 2016
Il est vrai que dans l'espace graphique, la création d'étiquettes se fait en majuscule. Mais dans la fenêtre de propriété, on peut les remplacer par des minuscule... Bug d'AutoCAD ? En outre, je n'arrive pas à voir les caractères accentués mis en majuscule avec strcase, j'ai fais un petit tour dans la console : _$ (strcase "périmètre") "PERIMETRE" -
Bonjour à tous. Voilà, j'ai un DWG issus d'un DGN. Dans ce DWG, il y a des blocs définis avec des échelles différentes. Mais MicroStation incrémente certains blocs. Exemple, je peux avoir 20 bloc "ACCES" insérés à différentes échelles et, je ne sais pas pourquoi, je vais avoir quelques blocs "ACCES_1", "ACCES_2"... insérés à des échelles "cohérentes". En gros, le bloc original est le même que ceux incrémentés. Pour fournir à mon client un DWG sans blocs incrémenté, j'ai donc écris un petit LISP... Mais voilà, ce LISP ne fait pas ce qu'il faut (remplacer les blocs incrémentés par les originaux), et je ne comprend pas pourquoi il insert certains blocs avec des échelle de nettement supérieur à l'origine. Voici tous les fichiers nécessaires à la compréhension du truc... Si quelqu'un a une astuce, un conseil ou une idée, je suis preneur... Denis...
-
probleme de pieces jointes
DenisHen a répondu à un(e) sujet de sbosarl dans CADxp, comment ça marche?
Salut. J'avais déjà fais un petit message en décembre... Ici... X_all, les fichiers hébergés dans ces serveurs sont gardés combien de temps s'il te plaît ? -
[Résolu] Commande pour remplir les attributs d'un bloc à l'aide des données d'un ancien bloc.
DenisHen a répondu à un(e) sujet de Jbrosteaux dans AutoCAD 2016
Re. Merci (gile) pour cette précision. -
C'est vrai que ton astuce devient très vite un reflex... C'est top...
-
"...car cliquer sur une case m'a toujours gavé car c'est source d'erreur,..." Je suis bien d'accord avec toi... "Donc pour revenir à la suppression de segment, tu sélectionnes la polyligne, tu va sur le 1er sommet et fait S, le second re S et c'est fait..." Donc, quatre cliques (ou clique/clavier) au lieu de deux... ;)
-
Merci x_all, mais supprimer deux sommet d'une polyligne est toujours plus long (*1) que de choisir l'option "supprimer segment" (*2), non ? *1 : 1- placer la souris sur un sommet, 2- cliquer sur "supprimer le sommet" (ou taper "S" au clavier), 3- placer la souris sur l'autre sommet, 4- cliquer sur "supprimer le sommet" (ou taper "S" au clavier). *2 : 1- placer la souris sur le milieu du segment à supprimer, 2- cliquer sur "supprimer le sommet".
-
[Résolu] Commande pour remplir les attributs d'un bloc à l'aide des données d'un ancien bloc.
DenisHen a répondu à un(e) sujet de Jbrosteaux dans AutoCAD 2016
Re. donc, la même routine qu'en message 11 mais en VLisp : ;;;******************************************************* ;;; Attribuer certains attributs d'un bloc dans un autre ;;;******************************************************* (defun c:ChangAttribBlk (/ Anc_bloc Nouv_bloc) ;(setq Anc_bloc (car (entsel "\nSélectionnez l'ancien bloc : "))) (setq Anc_bloc (car (entsel "\nSélectionnez l'ancien bloc : "))) (setq Nouv_bloc (car (entsel "\nSélectionnez le nouveau bloc : "))) (setpropertyvalue nouv_bloc "AIRE" (getpropertyvalue Anc_bloc "Aire")) (setpropertyvalue nouv_bloc "PERIMETRE" (getpropertyvalue Anc_bloc "Périmètre")) (princ) ) ;_ Fin de defun Merci (gile), c'est vrai que c'est bien plus joli comme-ça... -
[Résolu] Commande pour remplir les attributs d'un bloc à l'aide des données d'un ancien bloc.
DenisHen a répondu à un(e) sujet de Jbrosteaux dans AutoCAD 2016
Héllo. didier : je ne comprend pas, ce code (#11) fonctionne parfaitement chez moi... Où as-tu changer la casse ? -
[Résolu] Commande pour remplir les attributs d'un bloc à l'aide des données d'un ancien bloc.
DenisHen a répondu à un(e) sujet de Jbrosteaux dans AutoCAD 2016
Oui, j'ai tester mon code sur mon poste, et ça fonctionne très bien. Ceci dit, j'émet toujours une réserve pour un bon fonctionnement sur un autre poste. Et oui, certains attributs du bloc d'origine ont bien des caractères accentués. Amicalement aussi. ;) (gile) : je retaperais mon code demain avec que du VLisp... Merci encore du conseil. Denis... -
[Résolu] Commande pour remplir les attributs d'un bloc à l'aide des données d'un ancien bloc.
DenisHen a répondu à un(e) sujet de Jbrosteaux dans AutoCAD 2016
Parceque je ne connais pas cette commande... En faisant un truc dans ce genre ? (l'aide est vraiment très "lignt"...) (defun c:ChangAttribBlk (/ ent_bloc ent_att att_etiq Aire Perim Nouv_bloc) (setq ent_bloc (car (entsel "\nSélectionnez l'ancien bloc : "))) (vl-catch-all-apply 'getpropertyvalue (list ent_bloc "Aire" Aire)) (vl-catch-all-apply 'getpropertyvalue (list ent_bloc "Périmètre" Perim)) (setq Nouv_bloc (car (entsel "\nSélectionnez le nouveau bloc : "))) (vl-catch-all-apply 'setpropertyvalue (list Nouv_bloc "AIRE" Aire)) (vl-catch-all-apply 'setpropertyvalue (list Nouv_bloc "PERIMETRE" Perim)) (princ) ) -
[Résolu] Commande pour remplir les attributs d'un bloc à l'aide des données d'un ancien bloc.
DenisHen a répondu à un(e) sujet de Jbrosteaux dans AutoCAD 2016
De rien... Note bien ton premier message avec l'entête "[Résolu]". -
[Résolu] Commande pour remplir les attributs d'un bloc à l'aide des données d'un ancien bloc.
DenisHen a répondu à un(e) sujet de Jbrosteaux dans AutoCAD 2016
Ok, voici un petit lisp qui devrait faire ta manipulation... Tu enregistre ce code dans un fichier "texte" (avec le blocnote par exemple) et avec l’extension .lsp. Puis, tu charges ce fichier dans AutoCAD (avec _appload)... La commande est : ChangAttribBlk Voici le code : ;;;******************************************************* ;;; Attribuer certains attributs d'un bloc dans un autre ;;;******************************************************* (defun c:ChangAttribBlk (/ ent_bloc ent_att att_etiq Aire Perim Nouv_bloc) (setq ent_bloc (car (entsel "\nSélectionnez l'ancien bloc : "))) (setq ent_att (entnext ent_bloc)) (while (/= (cdr (assoc 0 (entget ent_att))) "SEQEND") ;; nom étiquette (setq att_etiq (cdr (assoc 2 (entget ent_att)))) ;; valeur du contenu de l'attribut (cond ((= att_etiq "Aire") (setq Aire (cdr (assoc 1 (entget ent_att)))))) (cond ((= att_etiq "Périmètre") (setq Perim (cdr (assoc 1 (entget ent_att)))))) (setq ent_att (entnext ent_att)) ) ;_ Fin de while ;;; (setq Nouv_bloc (entsel "\nSélectionnez le nouveau bloc : ")) (setq Nouv_bloc (car Nouv_bloc)) (vl-catch-all-apply 'setpropertyvalue (list Nouv_bloc "AIRE" Aire)) (vl-catch-all-apply 'setpropertyvalue (list Nouv_bloc "PERIMETRE" Perim)) (princ) ) ;_ Fin de defun Tiens moi au courant du bon fonctionnement du code... Denis... EDIT : Oops, j'avais oublié de déclarer mes variables... J'allais au devant de représailles par nos maîtres... -
[Résolu] Commande pour remplir les attributs d'un bloc à l'aide des données d'un ancien bloc.
DenisHen a répondu à un(e) sujet de Jbrosteaux dans AutoCAD 2016
Donc, si je comprend bien, il faut récupérer les infos dans le bloc Info20 pour les placer dans Nom_Local_GHdC ? -
[Résolu] Commande pour remplir les attributs d'un bloc à l'aide des données d'un ancien bloc.
DenisHen a répondu à un(e) sujet de Jbrosteaux dans AutoCAD 2016
Tu peux placer un lien WeTransfer dans le forum, comme-ça, d'autres pourront peut-être te venir en aide. -
[Résolu] Commande pour remplir les attributs d'un bloc à l'aide des données d'un ancien bloc.
DenisHen a répondu à un(e) sujet de Jbrosteaux dans AutoCAD 2016
Oulala... Je ne suis que novice en Lisp... Pour reprendre un lisp de Patrick_35, ou (gile) ou autre, il faut être d'un très, mais alors, d'un très haut niveau... Si tu ne connais pas le lisp, ça va être difficile... Donne-moi tes "anciens blocs" et le "nouveau bloc"(ou les noms des blocs et les noms exacts de leurs attributs), je vais voir ce que je pourrai faire... Sans ne rien te promettre... -
[Résolu] Commande pour remplir les attributs d'un bloc à l'aide des données d'un ancien bloc.
DenisHen a répondu à un(e) sujet de Jbrosteaux dans AutoCAD 2016
Salut. Je pense que seul un LISP t'aidera. -
Et même qu'il est très bien fait, sauf que si il y a plusieurs polylignes qui ont le même sommet, ce sommet sera supprimé sur la dernière polyligne créée. (gile) : j'ai hâte d'apprendre un truc pareil... Ça et un carroyage...
-
Bonjour à tous... Pour ma part, un ruban HYPER personnalisé et les alias...
-
Bonjour à tous... Voilà, je trouve qu'il manque une commande lorsqu'on se positionne sur le grip du milieu d'une polyligne, actuellement, on a : Je pense que ce serait pratique d'avoir, en plus, "Supprimer segment". Ce qui éviterait de supprimer les deux sommets qui entourent ce segment... Suis-je le seul à qui ça manque ?
-
[Résolu] Petit problème d'échelle de bloc
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour (gile), et merci pour ces conseils. Étant pressé, j'ai ajouté une boucle pour vérifier la valeur de l'échelle du bloc : (if (> EchX 100) (setq EchX (/ EchX 1000) EchY (/ EchY 1000) ) ) Je sais, ce n'est pas joli, mais c'est de mon niveau :( (pour l'instant)... -
Et si tu faisais un WBLOC de ton bloc en question et tu le réinsers depuis le dwg créé ? Mais je ne comprend pas très bien : C'est quoi un attribut prédéfini ? Un attribut avec une valeur par défaut ?
-
Bonjour. As-tu essayé la commande _battman ?
-
Bonjour à tous. Voilà, aujourd'hui, je tente de réinsérer des blocs en conservant leur échelle respective, seulement voilà, j'ai "logiquement" tout mes blocs en mètre. Ce lisp remplace les bloc "incrémentés" par MicroStation. Et oui, MicroStation créé des blocs incrémentés lors de la sauvegarde sous DWG, par exemple, j'ai un bloc nommé "EGO72", et bien MS créé des blocs "EGO72_1" "EGO72_2" "..." Mais lorsque j'insers ce bloc (par exemple), il se retrouve avec des tailles différentes pour les mêmes échelles... Voici le dessin ET le lisp et voici le lisp seul : (defun c:PbEchelBloc (/) (setq Select nil) (setq LstBlk '(("EGO72_*" . "EGO72") ("VEG52_*" . "VEG52") ("VEG82_*" . "VEG82") ) ) ;_ Fin de setq ;;; Début de la boucle (foreach PosLstBlk LstBlk (setq n 0) (if (setq Select (ssget "_X" (list (cons 0 "INSERT") (cons 2 (car PosLstBlk)))) ;_ Fin de ssget ) ;_ Fin de setq (while (setq ent (ssname Select n)) (setq elst (entget ent) Coord (cdr (assoc 10 elst)) EchX (cdr (assoc 41 elst)) EchY (cdr (assoc 42 elst)) Rot (cdr (assoc 50 elst)) Calq (cdr (assoc 8 elst)) n (1+ n) ) ;_ Fin de setq (setvar "clayer" Calq) (command "_erase" ent "") (setq Coord (strcat (rtos (car Coord) 2 3) "," (rtos (cadr Coord) 2 3)) ;_ Fin de strcat ) ;_ Fin de setq (setq Rot (+ Rot (/ pi 2))) (command "-inserer" (cdr PosLstBlk) "_non" Coord EchX EchY (angtos Rot 2 3)) ;_ Fin de command ) ;_ Fin de while ) ;_ Fin de if ) ;_ Fin de foreach ) ;_ Fin de defun ;|«Visual LISP© Format Options» (150 2 40 2 T "Fin de " 100 9 0 0 0 nil nil nil T) ;*** NE PAS AJOUTER de texte au-dessous du commentaire! ***|; Si quelqu'un a une astuce, un conseil ou une idée, je suis preneur... Denis...
-
Bonjour à tous... Pas de soucis, je vous tiendrais au courant...
