CADxp: Rotation cotation - CADxp

Aller au contenu

Page 1 sur 1

Rotation cotation quand on a une cotation à l'envers dans le scu

#1 L'utilisateur est hors-ligne   zebulon_ 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1367
  • Inscrit(e) : 02-mai 03
  • LocationSchnersheim

Posté 12 septembre 2016 - 11:42

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.

Citation

; 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é ?

Merci
Amicalement
Vincent
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)
0

#2 L'utilisateur est hors-ligne   zebulon_ 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1367
  • Inscrit(e) : 02-mai 03
  • LocationSchnersheim

Posté 12 septembre 2016 - 19:10

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.

Amicalement
Vincent

Ce message a été modifié par zebulon_ - 13 septembre 2016 - 10:42 .

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

#3 L'utilisateur est hors-ligne   philsogood 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2410
  • Inscrit(e) : 03-mars 10

Posté 13 septembre 2016 - 08:02

hello
pas mal ce lisp, un truc à garder sous le coude
manque plus qu'à faire la même chose pour les lignes de repères multiples!! :P
Phil
Projeteur Revit - traitement des eaux
0

#4 L'utilisateur est hors-ligne   zebulon_ 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1367
  • Inscrit(e) : 02-mai 03
  • LocationSchnersheim

Posté 13 septembre 2016 - 09:03

Voir le messagephilsogood, le 13 septembre 2016 - 08:02 , dit :

hello
pas mal ce lisp, un truc à garder sous le coude
manque plus qu'à faire la même chose pour les lignes de repères multiples!! :P
Phil


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.

Amicalement
Vincent
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)
0

#5 L'utilisateur est hors-ligne   zebulon_ 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1367
  • Inscrit(e) : 02-mai 03
  • LocationSchnersheim

Posté 13 septembre 2016 - 09:46

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 !

Amicalement
Vincent
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)
0

#6 L'utilisateur est hors-ligne   ricodemexico 

  • Advanced Member
  • PipPipPip
  • Groupe : Membres
  • Messages : 33
  • Inscrit(e) : 20-mars 09

Posté 04 janvier 2019 - 07:37

Bonjour
bien pratique ce Lisp.
Merci !
Aymeric
0

Partager ce sujet :


Page 1 sur 1


Réponse rapide

  

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)