Elo Posté(e) le 4 novembre 2021 Partager Posté(e) le 4 novembre 2021 Bonjour, Je souhaiterais faire un bloc qui ce modifie en fonction de ce que je mets dans une étiquette. Nous avons une étiquette avec attribut dans laquelle est renseigné les localisations de pièces-type de radiateur-puissance et dimension. Que l'on met à jour avec excel. Puis nous avons un bloc dynamique radiateur avec les différentes longueurs. j'ai réussi a faire apparaitre la longueur dans l'étiquette, mais l'idéale serait que lorsque je mets ma longueur dans l'étiquette le radiateur ce modifie. Merci d'avance pour votre aide ou conseil. Bonne journée. Cordialement, Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Luna Posté(e) le 4 novembre 2021 Partager Posté(e) le 4 novembre 2021 Coucou, Il est tout à fait faisable de modifier les étiquettes à partir des propriétés dynamiques d'un bloc (via un champ dynamique) mais l'inverse n'est pas possible à ma connaissance... Pourquoi dois-tu obligatoirement modifier les étiquettes en premier au lieu des blocs ? Bisous, Luna Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CRL Posté(e) le 4 novembre 2021 Partager Posté(e) le 4 novembre 2021 Je pense que c'est dû à son fichier Excel qui modifie lui-même les étiquettes de ses blocs. 🤔 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Elo Posté(e) le 4 novembre 2021 Auteur Partager Posté(e) le 4 novembre 2021 En gros j'ai beaucoup de radiateur implantés. Le fournisseurs a changé les dimensions de ceux-ci... Donc changer les étiquettes c'est pas un soucis en effet avec l'extraction. Mais changer les dimensions des radiateurs un par un fait perdre du temps au vu de la quantité. Donc je m’étais dit que c'était peut être possible de le faire a partir des étiquettes... Merci a vous 2 pour votre retour. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Curlygoth Posté(e) le 4 novembre 2021 Partager Posté(e) le 4 novembre 2021 je pense qu'il faut passer par la prog pour ça ^^ Citer Mon site Web (en cours de construction) : Site DA-CODE de @didier Lien vers le commentaire Partager sur d’autres sites More sharing options...
Elo Posté(e) le 4 novembre 2021 Auteur Partager Posté(e) le 4 novembre 2021 C'est bien ce qu'il me semblait. Je vais y réfléchir. Merci! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CRL Posté(e) le 4 novembre 2021 Partager Posté(e) le 4 novembre 2021 Ce que je te conseil, c'est de commencer par isoler tes radiateurs du reste de ton dessin pour plus de facilité. SELECTSIMILAR → sélectionner le bloc radiateur → [entrée] → _isolateobjects → [entrée] Puis essayer de sélectionner les blocs avec un attribut particulier avec la routine de Giles sur les sélections particulières. Voilà l'extrait de code qui va bien : ;;; Special_Selections -Gilles Chanteau- (gile) ;;; extrait des quelques routines pour créer des jeux de sélection particuliers. ;;;===============================================================;;; ;; Sélection par valeur d'attribut (defun c:ssatt (/ doc att elst tag val name ss1 ss2) (vl-load-com) (and (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))) (setq att (car (nentsel "\nSélectionnez l'attribut source: "))) (setq att (vlax-ename->vla-object att)) (= (vla-get-ObjectName att) "AcDbAttribute") (setq tag (vla-get-TagString att) val (vla-get-TextString att) blk (vla-ObjectIDToObject doc (vla-get-OwnerId att)) name (if (vlax-property-available-p blk 'EffectiveName) (vla-get-EffectiveName blk) (vla-get-Name blk) ) ss2 (ssadd) ) (princ "\nSélectionnez les blocs ou <tout>: ") (or (ssget (list '(0 . "INSERT") '(66 . 1) (cons 2 (strcat name ",`*U*")) ) ) (ssget "_X" (list '(0 . "INSERT") '(66 . 1) (cons 2 (strcat name ",`*U*")) ) ) ) (vlax-for blk (setq ss1 (vla-get-ActiveSelectionSet doc)) (if (= name (if (vlax-property-available-p blk 'EffectiveName) (vla-get-EffectiveName blk) (vla-get-Name blk) ) ) (foreach a (vlax-invoke blk 'GetAttributes) (if (and (= (vla-get-TagString a) tag) (= (vla-get-TextString a) val) ) (ssadd (vlax-vla-object->ename blk) ss2) T ) ) T ) ) (not (vla-delete ss1)) (sssetfirst nil ss2) ) (princ) ) Il te suffira de taper SSATT → Sélectionner le bloc avec l'étiquette désirer → [entrée] → dans les paramètres des blocs sélectionnés : changer la valeur du paramètre désiré (longueur ?) refaire la même manip avec les autres blocs avec des étiquettes différentes. enfin : _unisolateobjects (pour désactiver l'isolement) =) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Elo Posté(e) le 5 novembre 2021 Auteur Partager Posté(e) le 5 novembre 2021 Merci pour la réponse, Avec ta méthode ça modifie que les étiquettes,les radiateurs n'ont pas d'attribut donc ca ne les sélectionne pas. c'est juste un bloc dynamique avec les différentes dimensions. Ou un bloc dans lequel tu peux rentrer la longueur. Ta fonction peux être très utile aussi! Merci beaucoup! Bon après midi. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CRL Posté(e) le 5 novembre 2021 Partager Posté(e) le 5 novembre 2021 Humm 🤔 Soit tes blocs dynamiques ont des paramètres ( d'étirement, de déplacement, de rotation ....) soit tu as des visibilités sur ton bloc. soit c'est autre chose ? Dans les deux premiers cas, tu peux modifier ces paramètres une fois les blocs sélectionnés, dans la fenêtre de propriété. ([Ctrl]+[1]) Si c'est la 3e option, peux-tu nous en dire plus sur la nature de ton bloc dynamique ? =) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Elo Posté(e) le 16 novembre 2021 Auteur Partager Posté(e) le 16 novembre 2021 Bonjour a tous, J'ai enfin obtenu ce que je voulais par de l'extraction via macro Excel a l'aide de programme trouvé sur d'ancien sujet. En rajoutant a mon bloc un attribut sur la visibilité. Merci pour votre aide et vos conseils! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés