Aller au contenu

Bloc qui bouge en fonction d'une étiquette


Messages recommandés

Posté(e)

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,

 

 

 

Posté(e)

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

Posté(e)

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.

Posté(e)

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)
=)

Posté(e)

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.

 

Posté(e)

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])
1636128292-2021-11-05-17-04-29-autodesk-


Si c'est la 3e option, peux-tu nous en dire plus sur la nature de ton bloc dynamique ?
=)

  • 2 semaines après...
Posté(e)

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!

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é