zebulon_ Posté(e) le 12 septembre 2016 Posté(e) le 12 septembre 2016 Bonjour, je suis dans un scu quelconque et je fais une cotation linéaire ou alignée. J'applique une rotation avec copie de 180° à mon dessin, pour faire la façade opposée par exemple, et je tourne mon scu de 180°. Les nouvelles cotes auront la tête vers le bas. Quand on agit sur la propriété "rotation du texte" on peut arriver à rétablir les choses mais c'est pas génial. En regardant de plus près, on voit qu'il y a aussi une propriété "rotation", mais que je n'arrive pas à trouver dans la fenêtre des propriétés. ; OwnerID32 (RO) = 44; PlotStyleName = "ByLayer"; PrimaryUnitsPrecision = 0; Rotation = 2.71988; RoundDistance = 0.0; ScaleFactor = 50.0 on récupère la valeur "rotation" avec (setq rot (vla-get-rotation e)), on lui rajoute la valeur pi et on réinjecte cette valeur avec (vla-put-rotation e (+ rot pi)) et là c'est beaucoup mieux. On peut pas faire autrement qu'avec lisp pour modifier cette propriété ? MerciAmicalementVincent Citer C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
zebulon_ Posté(e) le 12 septembre 2016 Auteur Posté(e) le 12 septembre 2016 (modifié) Bonjour, (vl-load-com) (defun c:rotdim (/ s ANG) (setq ANG (getvar "VIEWTWIST")) (if (ssget '((0 . "DIMENSION,MULTILEADER,TEXT,MTEXT"))) (progn (vlax-for o (setq s (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))) (cond ((= (vla-get-objectname o) "AcDbMLeader") (vla-put-textrotation o 0)) ((= (vla-get-objectname o) "AcDbMText") (vla-put-rotation o 0)) (T (vla-put-rotation o ANG)) ) ) (vla-delete s) ) ) (princ) ) ce à quoi j'ai abouti : je récupère le "viewtwist" de mon scu et je colle cet angle dans les objets cotations qui ont la tête vers le bas après une rotation, puis le texte se remet proprement dans la bonne position. Cela me semble plus simple que de récupérer l'angle de chaque cote et de rajouter pi. En lisp pur et dur, je pense que j'aurais pu passer un entmod du code dxf 51 qui doit être l'équivalent de la propriété "rotation". Dans ce sujet, on avait parlé de ce problème et la solution proposée par PHILPHIL semble beaucoup plus complexe. AmicalementVincent Modifié le 13 septembre 2016 par zebulon_ Citer C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
philsogood Posté(e) le 13 septembre 2016 Posté(e) le 13 septembre 2016 hellopas mal ce lisp, un truc à garder sous le coudemanque plus qu'à faire la même chose pour les lignes de repères multiples!! :PPhil Citer Projeteur Revit Indépendant - traitement des eaux/CVC
zebulon_ Posté(e) le 13 septembre 2016 Auteur Posté(e) le 13 septembre 2016 hellopas mal ce lisp, un truc à garder sous le coudemanque plus qu'à faire la même chose pour les lignes de repères multiples!! :PPhil Bonjour, contrairement aux cotes qui gardent "la tête haute" quand on leur applique une rotation et qui, par conséquent, ont la tête vers la bas quand on tourne le scu, les textes de lignes de repères multiples s'orientent selon l'angle de rotation donné par la commande Rotation. Donc, si on applique une rotation de 180° à une ligne de repère multiple, le texte aura la tête vers le bas et si on tourne le scu de 180°, le texte sera dans le bon sens.J'en conclue que le problème est beaucoup moins criant avec ces objets. Cependant, si on fait un miroir au lieu d'une rotation, le texte de repère multiple garde la tête haute aussi. On peut intervenir sur ces objets en modifiant la propriété "TEXTROTATION" qu'il faudra mettre à 0. Cette propriété change de valeur si on change de scu. L'angle 0 c'est celui du scu courant et non du scg. En ce sens, les lignes de repères multiples fonctionnent comme les textes multiples. J'ai rajouté les lignes de repères multiples et les textes au lisp ci-dessus. AmicalementVincent Citer C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
zebulon_ Posté(e) le 13 septembre 2016 Auteur Posté(e) le 13 septembre 2016 Pfff! il y en a un qui vient de me dire : "si t'as une côte à l'envers, t'as qu'à aller voir un ostéopathe..." :D C'est une autre solution, en effet, et c'est encore mieux que le lisp si on fait abstraction de l'accent circonflexe sur le o ! Mais il est vrai qu'on voit souvent la confusion entre "côte" et "cote". Pfff... voilà qu'il me parle de poules, maintenant... Il a bouffé un clown ce matin ! AmicalementVincent Citer C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
ricodemexico Posté(e) le 4 janvier 2019 Posté(e) le 4 janvier 2019 Bonjourbien pratique ce Lisp.Merci !Aymeric Citer
Messages recommandés