Aller au contenu

Modification de l'Elevation de Cotations


Messages recommandés

Posté(e)

Hello

 

Je suis peut etre tres fatigue mais je n'ai pas trouve de solution simple

quand on a des cotations a des Z differents !?

 

Et ce sur des objets au niveau ZERO et/ou sur des objets au niveau A ...

 

Donc SVP je cherche une routine Lisp/VLisp qui a partir d'une selection AutoCAD classique :

- Filtre les objets pour ne garder QUE les "DIMENSION"

- Pose une question "Elevation voulue (Defaut=0.0) : ?"

- Force l'Elevation (PARTOUT dans le Bloc special de Cotation: points d'accrochage, texte, ligne, pointe de fleche, etc) des cotations selectionnees a l'Elevation choisie ...

 

A priori c 'est le code DXF 10 (visible au 1er niveau) qui nous interesse !?

 

Sous entendu, on est dans l'Espace Objet et dans le SCG !

 

ATTENTION: plusieurs cas sont possibles (me semble t-il) :

- Les points d'accrochage sont au niveau ZERO mais la cotation est "en l'air" au niveau A

car ELEVATION en cours = xx.yy lors de la commande COTATION ...

- Les points d'accrochage sont au niveau A et la cotation est au niveau A

- Les points d'accrochage sont au niveau A et la cotation est au niveau B

 

Donc modifier le code DXF 10 (visible au 1er niveau) est il suffisant ?

 

Merci d'avance, Bye, lecrabe

 

 

---- Cotation au niveau 20.0 ---- (10 28.3877 -7.6164 20.0)

 

Choix de l'objet: ((-1 . ) (0 . "DIMENSION") (5 . "316") (102 . "{ACAD_XDICTIONARY") (360 . ) (102 . "}")

(102 . "{ACAD_REACTORS") (330 . ) (102 . "}") (330 . ) (100 . "AcDbEntity") (67 . 0)

(410 . "Model") (8 . "COT_3D") (100 . "AcDbDimension") (280 . 0) (2 . "*D6") (10 28.3877 -7.6164 20.0) (11 51.2377 -5.53306 20.0) (12 0.0 0.0 20.0)

(70 . 32) (1 . "") (71 . 5) (72 . 1) (41 . 1.0) (42 . 45.6999) (73 . 0) (74 . 0) (75 . 0) (52 . 0.0) (53 . 0.0) (54 . 0.0) (51 . 0.0) (210 0.0 0.0 1.0)

(3 . "ISO-25") (100 . "AcDbAlignedDimension") (13 74.0877 2.19594 0.0) (14 28.3877 9.61251 0.0) (15 0.0 0.0 0.0) (16 0.0 0.0 0.0) (40 . 0.0) (50 . 0.0)

(100 . "AcDbRotatedDimension"))

 

 

---- Cotation au niveau 0.0 ---- (10 91.9868 58.4915 0.0)

 

Choix de l'objet: ((-1 . ) (0 . "DIMENSION") (5 . "20D") (102 . "{ACAD_XDICTIONARY") (360 . ) (102 . "}")

(102 . "{ACAD_REACTORS") (330 . ) (102 . "}") (330 . ) (100 . "AcDbEntity") (67 . 0)

(410 . "Model") (8 . "COT") (100 . "AcDbDimension") (280 . 0) (2 . "*D1") (10 91.9868 58.4915 0.0) (11 78.6577 60.5749 0.0) (12 0.0 0.0 0.0)

(70 . 32) (1 . "") (71 . 5) (72 . 1) (41 . 1.0) (42 . 26.6583) (73 . 0) (74 . 0) (75 . 0) (52 . 0.0) (53 . 0.0) (54 . 0.0) (51 . 0.0) (210 0.0 0.0 1.0)

(3 . "ISO-25") (100 . "AcDbAlignedDimension") (13 65.3285 49.3577 0.0) (14 91.9868 49.3577 0.0) (15 0.0 0.0 0.0) (16 0.0 0.0 0.0) (40 . 0.0) (50 . 0.0)

(100 . "AcDbRotatedDimension"))

Autodesk Expert Elite Team

Posté(e)

hello Lecrabe

 

essaie ceci, ca peu peut etre t'aider

 

fonction : REC

 

il faut avant tout tracer une ligne parallèle au X de ton scu

 

tu lances REC, choisi une altimetrie , selectionne la ligne, puis apres les cotes

et ca devrait faire le boulot

 

ca recréer les cotes quand des fois le texte se retrouve tourner et en dessous de la ligne

 

REC.lsp

 

a+

 

Phil

  • Upvote 1

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Posté(e)

hello lecrabe

 

qu'est ce que tu entends par "BONNE" routine ?

 

car chez moi ca marche.

 

tes pieces sont déja dessinées a une "élévation" de 100 et l'autre de 50, donc c'est logique que tes cotes soit en "elevation" 100 et 50

 

je les ai descendu en elevation = 0

 

j'ai changé le parametre de ton fichier _aecspecifyoffset = 0 ( pour dessiner tjrs a l'altimetrie, ou élévation = 0

 

j'ai dessiné ma ligne de base niveau 0

elevation =0

scu avant la manip = 0,0,0

 

 

puis lancer le lisp REC et toutes les cotes sont en élévation = 0

 

a+

 

Phil

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Posté(e)
Donc modifier le code DXF 10 (visible au 1er niveau) est il suffisant ?

 

En partie...

 

Pas trop testé! autre que ton dessin.

((lambda ( / js n ent_dim dxf_ent recal_pt)
 (setq js (ssget '((0 . "DIMENSION"))))
 (cond
   (js
     (repeat (setq n (sslength js))
       (setq ent_dim (ssname js (setq n (1- n))))
       (setq dxf_ent (entget ent_dim))
       (redraw ent_dim 3)
       (initget 1)
       (setq recal_pt (getpoint "\nDonner le point pour le recalage en Z: "))
       (redraw ent_dim 4)
       (foreach n '(10 11 13 14)
         (entmod
           (setq dxf_ent
             (subst
               (cons n (list (car (cdr (assoc n dxf_ent))) (cadr (cdr (assoc n dxf_ent))) (caddr recal_pt)))
               (assoc n dxf_ent)
               dxf_ent
             )
           )
         )
       )
     )
   )
 )
 (prin1)
))
))

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

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é