Aller au contenu

Texte attribut d\'objet et SCU


Messages recommandés

Posté(e)

Bonjour,

j'aimerais connaitre (si il y en a une) la technique/manip pour orienter un texte attribut d'objet dans mon nouveau SCU ?

Exemple : je fais de la topo j'ai un logiciel qui me sort mon semis de points en 3d. les points sont des références d'objet comprenant un point et un texte n° du point et un texte altitude du point. Lorsque je regarde mon semi de point en vue de haut pas de souci !mais en vue 3D (avant par exemple ou de coté) mes points et les textes associés apparaissent sous forme d'un trait (logique puisqu'on voit le texte de profil)! Mais c'est bien là mon problème comment dire aux attributs de l'objet de s'orienter dans mon nouveau SCU afin que je puisse les voir correctement ?

Merci d'avance.

 

Posté(e)

Salut,

 

Un LISP qui fait ce que tu demandes, faire annUler pour remettre les blocs en position( ou utiliser la commandes LISP BACK2WCS)

 

;; Pivote les objets texte ou bloc sélectionnés du SCG dans
;; le plan de la vue courante sur leurs points d'insertion
(defun c:WCS2View (/ ss ins dir ang mat)
 (vl-load-com)
 (or *acad* (setq *acad* (vlax-get-acad-object)))
 (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument *acad*)))
 (vla-StartUndoMark *acdoc*)
 (if (ssget '((0 . "INSERT,*TEXT")))
   (progn
     (vlax-for	obj (setq ss (vla-get-ActiveSelectionSet *acdoc*))
(setq ins (vlax-get obj 'InsertionPoint)
      dir (mapcar '-
		  (trans (getvar "viewdir") 1 0)
		  (trans '(0 0 0) 1 0)
	  )
      ang (- (getvar "viewtwist"))
      mat (mxm
	    (mapcar (function (lambda (x) (trans x 0 dir)))
		    '((1 0 0) (0 1 0) (0 0 1))
	    )
	    (list (list (cos ang) (- (sin ang)) 0)
		  (list (sin ang) (cos ang) 0)
		  '(0 0 1)
	    )
	  )
)
(vla-TransformBy
  obj
  (vlax-tmatrix
    (append
      (mapcar
	(function
	  (lambda (v1 v2)
	    (append v1 (list v2))
	  )
	)
	mat
	(mapcar '- ins (mxv mat ins))
      )
      (list '(0 0 0 1))
    )
  )
)
     )
     (vla-delete ss)
   )
 )
 (vla-EndUndoMark *acdoc*)
 (princ)
)

;; Remet les objets sélectionnés dans le plan de CSG avec rotaion 0
(defun c:back2WCS (/ ss ins norm)
 (vl-load-com)
 (or *acad* (setq *acad* (vlax-get-acad-object)))
 (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument *acad*)))
 (vla-StartUndoMark *acdoc*)
 (if (ssget '((0 . "INSERT,*TEXT")))
   (progn
     (vlax-for	obj (setq ss (vla-get-ActiveSelectionSet *acdoc*))
(setq ins (vlax-get obj 'InsertionPoint)
      norm (vlax-get obj 'Normal)	)
(vlax-put obj 'Normal '(0. 0. 1.))
(vlax-put obj 'Rotation 0.0)
(vlax-put obj 'InsertionPoint ins)
     )
     (vla-delete ss)
   )
 )
 (vla-EndUndoMark *acdoc*)
 (princ)
)

;; TRP
;; transpose une matrice -Doug Wilson-
;;
;; Argument : une matrice

(defun trp (m) (apply 'mapcar (cons 'list m)))

;; MXV
;; Applique une matrice de transformation à un vecteur -Vladimir Nesterovsky-
;;
;; Arguments : une matrice et un vecteur

(defun mxv (m v)
 (mapcar (function (lambda (r) (apply '+ (mapcar '* r v)))) m)
)

;; MXM
;; Multiplie (combine) deux matrices -Vladimir Nesterovsky-
;;
;; Arguments : deux matrices

(defun mxm (m q)
 (mapcar (function (lambda (r) (mxv (trp q) r))) m)
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Hello Gilles

 

Ta routine semble SUPER mais j'ai un msg d'erreur : Function MXM ?

 

Attention je viens de tester avec un vieux MAP 2004 et il faut peut etre au minimum

un AutoCAD 2007 ?

 

Dans l'attente de tes precisions, je souhaite un excellent Dimanche !

 

Encore Merci pour tes contributions, Le Decapode

 

Autodesk Expert Elite Team

Posté(e)

Salut,

 

Non, ça devrait fonctionner à partir de A2000.

 

J'avais juste oublié de joindre quelques routines (automatiquement chargées chez moi).

 

J'ai ajouté ces routines au code ci-dessus.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

 

Hello Gilles

 

Merci cela va beaucoup mieux ! :)

 

Neanmois (toujours sur MAP 2004) sur mon dessin test favori "Entites_2000.dwg"

que tu dois avoir !

J'ai 2 textes simples qui ne tournent pas alors que tous les autres

et les attributs et les XREFS tournent !

 

C curieux, veux tu que je te renvoies mon dessin "Entites_2000" ?

 

Le Decapode

 

Autodesk Expert Elite Team

Posté(e)

 

hello

 

OK c parti !

 

J'ai pris un point de vue 3D "moyen" et bien sur je selectionne TOUT !

 

et les 2 textes (152 , POLYLIGNE) a l'interieur de la polyligne non close ne TOURNENT PAS !

 

C fort curieux !?

 

Je pense que tu devrais poser la question : Tourner les XREFs (O/N) ?

 

Le Decapode

 

 

Autodesk Expert Elite Team

Posté(e)

 

Hello Gilles

 

Humour : tu plaisantes, je sais bien que les ATTDEfs ne tournent pas ! :P

 

Je parle de DEUX textes simple au milieu du dessin test dont le contenu est :

152

POLYLIGNE

 

et chez moi TOUT tourne sauf ces deux la !

 

Mais bon j'ai une confiance "tres moyenne" en ce vieux MAP 2004

et je ferais des tests sur d'autres versions au boulot !

 

Encore merci pour toutes tes contributions !

 

Le Decapode

 

 

Autodesk Expert Elite Team

Posté(e)

 

Hello

 

Commande au clavier : POINTVUE

puis 1,1,1 (un grand classique)

c ainsi que j'ai teste !

 

En fait sur ce foutu MAP 2004, il y a 3 textes qui ne tournent pas

POLYLIGNE

152

because Rotation originale = 30 degres

et aussi

ARCS (que je n'avais pas vu)

because Rotation originale = 330 degres

 

Cela me semble relativement prodigieux et peut etre lie a l'anciennete d'AutoCAD !?

 

Le Decapode (dubitatif)

mais confiant sur le fonctionnement avec une version plus recente !

 

 

Autodesk Expert Elite Team

Posté(e)

 

ReHello

 

En fait 5 textes qui ne tournent pas, je n'avais pas vu aussi

REGION (because Rotation = 30 degres)

et

IMAGE (because Rotation = 90 degres)

 

Un peu fatigue Le Crabe cet AP ! :exclam:

 

Le Decapode "bigleux"

 

 

Autodesk Expert Elite Team

Posté(e)

 

ReReHello - Sorry Sorry !

 

Je suis reellement TRES FATIGUE car j'ai utilise la routine de Gilles sur un changement de point de vue 3D et NON PAS sur un nouveau SCU puis Alignement de l'ecran sur le nouveau SCU (par une commande REPERE par exemple) mais en fait il y a un truc que je ne comprends pas du tout : le resultat est le meme toujours avec mon MAP 2004 !

 

NEANMOINS : Changement de Pointvue 3D ou Nouveau SCU pusi Alignement et avec mon MAP 2004 seuls les textes qui ont une rotation originale de ZERO degres se replacent a l'horizontale et les autres

- Si changement de Point de vue : ils restent a leur rotation d'origine

- Si Nouveau SCU puis Alignement, la rotation change en fonction de la rotation d'origine et de l'angle du nouveau SCU mais ils ne sont pas a l'horizontale

 

Mon desir ou reve est en fait un peu different de la demande d'origine mais il y a quand meme un truc que je pige pas !

 

Une bonne nuit de sommeil va sans doute me remettre les yeux en face des trous !

Car je subodore qu'il n'y a AUCUN probleme avec la routine de Gilles : la honte !

 

Le Decapode

 

 

 

Autodesk Expert Elite Team

Posté(e)

Les textes en question sont bien placés dans le plan de la vue, mais ils conservent leur rotation différente de 0.

Met toi en vue de face (_VIEW _FRONT), lance la commande et fait une orbite 3d...

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

 

Hello Gilles

 

C fou comme une bonne nuit de sommeil peut remettre les idees en place ! :)

 

Je suis sur MAP 2011 (ou n'importe quelle autre version) et comme d'habitude ta routine fonctionne parfaitement !

 

!!! It works how it has been designed !!!

 

Hier j'etais obsede par le changement de point vue 3D et la remise en "frontal" des textes !

 

Ta routine me convient bien meme en 3D car si les textes ne sont pas horizontaux

et bien tant pis ! car souvent dans ce cas la, ils ne sont pas vitaux !!

 

Encore Mille Mercis, Le Decapode "confus"

 

Autodesk Expert Elite Team

Posté(e)

Whaou que dire !!!

Merci encore une fois à toi Gile pour ces lisp merveilleux !

Et non je ne suis pas encore sous covadis !

j'ai des tonnes de lisp qui trainent à droite et à gauche mais là je sature donc je vais enfin avoir covadis.... qui me soulagera la vie sous autocad !

Merci

  • 2 mois après...

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é