moko Posté(e) le 10 décembre 2010 Posté(e) le 10 décembre 2010 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.
(gile) Posté(e) le 10 décembre 2010 Posté(e) le 10 décembre 2010 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
lili2006 Posté(e) le 11 décembre 2010 Posté(e) le 11 décembre 2010 Bonjour à toutes et tous, Si tu possèdes Covadis, tu as également deux possibilités pour faire ça,.. Un post à consulter dans ce cas,... Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lecrabe Posté(e) le 12 décembre 2010 Posté(e) le 12 décembre 2010 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
(gile) Posté(e) le 12 décembre 2010 Posté(e) le 12 décembre 2010 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
lecrabe Posté(e) le 12 décembre 2010 Posté(e) le 12 décembre 2010 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
(gile) Posté(e) le 12 décembre 2010 Posté(e) le 12 décembre 2010 Salut, Oui, je veux bien voir ce fichier... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lecrabe Posté(e) le 12 décembre 2010 Posté(e) le 12 décembre 2010 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
(gile) Posté(e) le 12 décembre 2010 Posté(e) le 12 décembre 2010 Les textes qui ne tournent pas sont des définitions d'attributs... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lecrabe Posté(e) le 12 décembre 2010 Posté(e) le 12 décembre 2010 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
(gile) Posté(e) le 12 décembre 2010 Posté(e) le 12 décembre 2010 Chez moi, ils tournent... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lecrabe Posté(e) le 12 décembre 2010 Posté(e) le 12 décembre 2010 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 degreset aussiARCS (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
lecrabe Posté(e) le 12 décembre 2010 Posté(e) le 12 décembre 2010 ReHello En fait 5 textes qui ne tournent pas, je n'avais pas vu aussiREGION (because Rotation = 30 degres)etIMAGE (because Rotation = 90 degres) Un peu fatigue Le Crabe cet AP ! :exclam: Le Decapode "bigleux" Autodesk Expert Elite Team
lecrabe Posté(e) le 12 décembre 2010 Posté(e) le 12 décembre 2010 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
(gile) Posté(e) le 12 décembre 2010 Posté(e) le 12 décembre 2010 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
lecrabe Posté(e) le 13 décembre 2010 Posté(e) le 13 décembre 2010 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
moko Posté(e) le 13 décembre 2010 Auteur Posté(e) le 13 décembre 2010 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
balyoa Posté(e) le 15 février 2011 Posté(e) le 15 février 2011 Bonjour, J'ai une erreur sur ce lisp sur un map2010 : erreur ! no function definition MXM Quelqu'un a une idée ? Merci. Yoann
(gile) Posté(e) le 15 février 2011 Posté(e) le 15 février 2011 Salut, Les routines trp, mxv et mxm étaient sous le code (mais pas à l'intérieur des bbcodes).Tu peux refaire ton copier/coller. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Messages recommandé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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant