Aller au contenu

Messages recommandés

Posté(e)

Bonjour la grande famille.

 

J'ai une petite question sur les ligne de repère multiple que j'utilise souvent et j'aime bien que les texte apparaissent avec une découpe pour ce faite quand j'entre le texte je dois à chaque fois utliser la fonction "Masque d'arrière-plan" puis cocher "Utiliser le masque d'arrière-plan" et cocher "Utiliser la couloir d'arrière-plan du dessin".

 

MA question est la suivante, ni a t'il pas moyen d'automatiser cela pour que je n'aie pas à répéter à chaque fois cette fonction.

 

Bonne journée à tous ;)

Posté(e)

C'est ce que j'avais déjà voulu essayer, mais quand on fait un bloc le masque d'arrière plan ne s'adapte pas à la largeur du texte quand celui-ci est modulable, j'avais essayé avec un symbole dynamique avec les contrainte mais on arrive pas à lui donner les dimension du texte qui sont variable, pourtant ça doit être possible vu qu'il aarive à faire un masque

Posté(e)

C'est ce que j'avais essayé en faisant un bloc Dynamique, le textmask est un wipeout, quand on sélectionne le texte il fait le masque mais ce masque ne reste pas associé au texte donc quand le texte s'allonge le masque lui ne bouge pas. :casstet:

Posté(e)

Re,

 

Et avec ce lisp de (gile) ? =>

 

Dans ton BDyn, faire le cadre le plus grand utilisé, et mettre en ordre de tracé arrière,...

 

;;; OB2WO -Gilles Chanteau- 10/03/07

;;; Crée des "Wipeout" à partir des objets sélectionnés (cercle, ellipse, ou polyligne avec arcs)

;;; Fonctionne en 3D

;;; Modifié le 03/11/07

;;; - plusieurs objets peuvent être sélectionnés

;;; - le wipeout est créé sur le calque de l'objet

 

 

;;; OB2WO -Gilles Chanteau- 10/03/07
;;; Crée des "Wipeout" à partir des objets sélectionnés (cercle, ellipse, ou polyligne avec arcs)
;;; Fonctionne en 3D
;;; Modifié le 03/11/07
;;; - plusieurs objets peuvent être sélectionnés
;;; - le wipeout est créé sur le calque de l'objet

(defun c:ob2wo (/ ent lst nor lay)
 (vl-load-com)
 (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)))
 (if (ssget '((0 . "CIRCLE,ELLIPSE,LWPOLYLINE")))
   (progn
     (initget "Oui Non")
     (setq del (getkword "\nEffacer les objets source ? [Oui/Non] : "))
     (vla-StartundoMark acdoc)
     (vlax-for	obj (vla-get-activeSelectionSet acdoc)
(setq lst (ent2ptlst obj)
      nor (vlax-get obj 'Normal)
      lay (vla-get-Layer obj)
)
(makeWipeout lst nor lay)
(and (= del "Oui") (vla-delete obj))
     )
     (vla-EndundoMark acdoc)
   )
 )
)

;;; ENT2PTLST
;;; Retourne la liste des sommets successifs du polygone approchant un objet courbe
;;; Coordonnées exprimées dans le SCO

(defun ent2ptlst (ent / obj dist n lst p_lst prec)
 (vl-load-com)
 (if (= (type ent) 'ENAME)
   (setq obj (vlax-ename->vla-object ent))
   (setq obj ent
  ent (vlax-vla-object->ename ent)
   )
 )
 (cond
   ((member (cdr (assoc 0 (entget ent))) '("CIRCLE" "ELLIPSE"))
    (setq dist	(/ (vlax-curve-getDistAtParam
	     obj
	     (vlax-curve-getEndParam obj)
	   )
	   50
	)
   n	0
    )
    (repeat 50
      (setq
 lst
  (cons
    (trans
      (vlax-curve-getPointAtDist obj (* dist (setq n (1+ n))))
      0
      (vlax-get obj 'Normal)
    )
    lst
  )
      )
    )
   )
   (T
    (setq p_lst (vl-remove-if-not
	   '(lambda (x)
	      (or (= (car x) 10)
		  (= (car x) 42)
	      )
	    )
	   (entget ent)
	 )
    )
    (while p_lst
      (setq
 lst
  (cons
    (append (cdr (assoc 10 p_lst))
	    (list (cdr (assoc 38 (entget ent))))
    )
    lst
  )
      )
      (if (/= 0 (cdadr p_lst))
 (progn
   (setq prec (1+ (fix (* 25 (sqrt (abs (cdadr p_lst))))))
	 dist (/ (- (if	(cdaddr p_lst)
		      (vlax-curve-getDistAtPoint
			obj
			(trans (cdaddr p_lst) ent 0)
		      )
		      (vlax-curve-getDistAtParam
			obj
			(vlax-curve-getEndParam obj)
		      )
		    )
		    (vlax-curve-getDistAtPoint
		      obj
		      (trans (cdar p_lst) ent 0)
		    )
		 )
		 prec
	      )
	 n    0
   )
   (repeat (1- prec)
     (setq
       lst (cons
	     (trans
	       (vlax-curve-getPointAtDist
		 obj
		 (+ (vlax-curve-getDistAtPoint
		      obj
		      (trans (cdar p_lst) ent 0)
		    )
		    (* dist (setq n (1+ n)))
		 )
	       )
	       0
	       ent
	     )
	     lst
	   )
     )
   )
 )
      )
      (setq p_lst (cddr p_lst))
    )
   )
 )
 lst
)


;;; MakeWipeout crée un objet "wipeout" à partir d'une liste de points et du vecteur normal de l'objet

(defun MakeWipeout (pt_lst nor lay / dxf10 max_dist cen dxf_14)
 (or (member "acwipeout.arx" (arx)) (arxload "acwipeout.arx"))
 (setq	dxf10 (list (apply 'min (mapcar 'car pt_lst))
	    (apply 'min (mapcar 'cadr pt_lst))
	    (caddar pt_lst)
      )
 )
 (setq
   max_dist
    (float
      (apply 'max
      (mapcar '- (apply 'mapcar (cons 'max pt_lst)) dxf10)
      )
    )
 )
 (setq cen (mapcar '+ dxf10 (list (/ max_dist 2) (/ max_dist 2) 0.0)))
 (setq
   dxf14 (mapcar
    '(lambda (p)
       (mapcar '/
	       (mapcar '- p cen)
	       (list max_dist (- max_dist) 1.0)
       )
     )
    pt_lst
  )
 )
 (setq dxf14 (reverse (cons (car dxf14) (reverse dxf14))))
 (entmake (append (list '(0 . "WIPEOUT")
		 '(100 . "AcDbEntity")
		 (cons 8 lay)
		 '(100 . "AcDbWipeout")
		 '(90 . 0)
		 (cons 10 (trans dxf10 nor 0))
		 (cons 11 (trans (list max_dist 0.0 0.0) nor 0))
		 (cons 12 (trans (list 0.0 max_dist 0.0) nor 0))
		 '(13 1.0 1.0 0.0)
		 '(70 . 7)
		 '(280 . 1)
		 '(71 . 2)
		 (cons 91 (length dxf14))
	   )
	   (mapcar '(lambda (p) (cons 14 p)) dxf14)
   )
 )
) 

 

 

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

Posté(e)

Sinon tu fais un bouton avec ça (après le dessin de la LREPERERAP) :

 

(vla-put-BackgroundFill (vlax-ename->vla-object (entlast)) :vlax-true)

 

ENTLAST est le textmult. Donc c'est facile.

 

Je n'arrive pas à mettre LREPERERAP dans un programme de manière simple. Ca peut dépendre du nombre de clics au dessin de l'objet.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Hello

 

Tramber j'ai fait un bouton avec la commande mais ça ne fonctionne pas, il me renvoie l'erreur suivant :

erreur: Le serveur ActiveX a renvoyé l'erreur: nom inconnu: BackgroundFill

:(

Posté(e)

Chez moi : nickel , Autodesk Mechanical Desktop 2010.

 

Donc ? Vérifie que le dernier objet créé (avant d'appuyer sur le bouton) est un MTEXT.

Ce que doit produire ...

 

Ah NON, ZUT, j'ai pas bien lu "Ligne de repère multiple". Je croyais que c'était la bonne vieille LREPERERAP !

 

Désolé, je regarde.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

(vla-put-TextBackgroundFill (vlax-ename->vla-object (entlast)) :vlax-true) 

 

Tout va bien, les multiples ont la propriété aussi.

 

C'est bon maintenant ?

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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é