Aller au contenu

Cotation inversé


yusukens82

Messages recommandés

Bonjour,

Après une rotation d'un plan, je me retrouve avec des cotes inversés par rapport au SCU.

voir image :

http://yusukens.free.fr/CADXP/Cotation_inverse.jpg

 

Avez vous une méthode pour les remettres correctement dans le bon sens ?

voici le fichier dwg de l'image

http://yusukens.free.fr/CADXP/Cotation_inverse.zip

Lien vers le commentaire
Partager sur d’autres sites

hello

 

regarde ici

 

http://www.cadxp.com/sujetXForum-18197.htm

 

ou la

 

http://www.cadxp.com/sujetXForum-17603.htm

 

la ou tu es déja allé

 

j'ai depuis peut etre fait une mise a jour sur mon ordi

 

a+

 

phil

 

[Edité le 8/4/2011 par PHILPHIL]

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

hello

 

pour aller encore plus vite tu peux passer en une seule fois la selection sur toute la coupe

il ne prendra que les cotes, mais pas les cotes alignés je crois

 

et ca doit buguer quand le scu n'est pas pile poil bien orienter, style 8 chiffre apres la virgule

 

a+

 

phil

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

  • 6 mois après...

Je me disais bien avoir vu un lisp permettant cette fonction il y a longtemps

 

voila ce que ça donne pour ceux qui souhaite le tester.

 

encore merci

 

 

<font class=edite>[Edité le 8/4/2011 par yusukens82]</font>

 

 

Bonjour,

 

Je suis intéressé par tester le LISP.

Envoyez-moi un ptit message.

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

hello

 

voici le lisp pour refaire les cotes avec le texte dans le bon sens par rapport au scu corespondant a la vue du plan de la coupe ou facade

 

selectionner toutes les cotes a la volée

 

il peut y avoir des cotes verticales qui passent en horizontales et vis versa attention

car le LISP refait des cotes suivant les points 10 13 14

 

il faut aussi parfois redeplacer le scu sur un objet avant de relancer "REC"

 

a+

 

phil

 

 

(defun c:rec (/          angcote    angcotedegre          angscu     asx1       asx2       calqcote   cav
             com        compt      ent        entx       nonent     osm        point10    point11    point13
             point14    stylecote  stylecotebase
            )
 (setvar "cmdecho" 0)
 (setq osm (getvar "osmode"))
 (setvar "osmode" 0)
 (setq cav (getvar "clayer"))
 (setq stylecotebase (getvar "dimstyle"))
 (prompt "\nCLIQUER SUR LE(S) COTE(S) A MODIFIER :")
 (setq entx nil)
 (while (null entx) (setq entx (ssget '((0 . "DIMENSION")))))
 (setq compt 0)
 (setq com (sslength entx))
 (while (< compt com)
   (progn (setq ent (entget (ssname entx compt)))
          (setq nonent      (cdr (assoc -1 ent))
                stylecote   (cdr (assoc 3 ent))
                calqcote    (cdr (assoc 8 ent))
                point10     (trans (cdr (assoc 10 ent)) 0 1)
                point11     (trans (cdr (assoc 11 ent)) 0 1)
                point13     (trans (cdr (assoc 13 ent)) 0 1)
                point14     (trans (cdr (assoc 14 ent)) 0 1)
                point15     (trans (cdr (assoc 15 ent)) 0 1)
                angcote     (cdr (assoc 50 ent))
                angtextcote (cdr (assoc 51 ent))
                typecote    (cdr (assoc 70 ent))
                txt1        (cdr (assoc 1 ent))
                asx1        (car (getvar "ucsxdir"))
                asx2        (cadr (getvar "ucsxdir"))
          )
          (if (and (= asx1 1) (= asx2 0))
            (setq angscu 0)
          )
          (if (and (and (< asx1 1) (> asx1 0))
                   (and (< asx2 1) (> asx2 0))
              )
            (setq angscu (atan (/ asx2 asx1)))
          )
          (if (and (= asx1 0) (= asx2 1))
            (setq angscu (/ pi 2))
          )
          (if (and (and (< asx1 0) (> asx1 -1))
                   (and (< asx2 1) (> asx2 0))
              )
            (setq angscu (- (atan (/ asx2 asx1)) pi))
          )
          (if (and (= asx1 -1) (= asx2 0))
            (setq angscu (* 2 pi))
          )
          (if (and (and (< asx1 0) (> asx1 -1))
                   (and (< asx2 0) (> asx2 -1))
              )
            (setq angscu (+ (atan (/ asx2 asx1)) pi))
          )
          (if (and (= asx1 0) (= asx2 -1))
            (setq angscu (+ pi (/ pi 2)))
          )
          (if (and (and (< asx1 1) (> asx1 0))
                   (and (< asx2 0) (> asx2 -1))
              )
            (setq angscu (atan (/ asx2 asx1)))
          )
          (setq ang (- angcote angscu))
          (command "-calque" "ch" calqcote "")
          (command "-dimstyle" "R" stylecote)
          (setq angcotedegre (angtos (- angcote angscu) 0 14))
          (prompt (strcat "\nL'ANGLE DE LA COTE EST : " angcotedegre))
          (prompt
            (strcat "\nLA COTE EST DE TYPE    : " (rtos typecote 2 2))
          )
          (prompt
            (strcat "\nL'ANGLE (ANG) DE LA COTE EST : " (rtos ang 2 14))
          )
          (if (or (= (rtos ang 2 14) (- (* 3 pi)))
                  (= (rtos ang 2 14) (- (* 2 pi)))
                  (= (rtos ang 2 14) (- pi))
                  (= (rtos ang 2 14) 0)
                  (= (rtos ang 2 14) pi)
                  (= (rtos ang 2 14) (* 2 pi))
                  (= (rtos ang 2 14) (* 3 pi))
              )
            (progn (prompt (strcat "\nL'ANGLE EST EGAL A 180 OU 0"))
                   (if (or (= typecote 32) (= typecote 160))
                     (progn (command "cotlin" point13 point14 "H" point10)
                            (setq entder (entget (entlast)))
                            (setq entder (subst (cons 1 txt1) (assoc 1 entder) entder))
                            (entmod entder)
                     )
                   )
                   (if (or (= typecote 33) (= typecote 161))
                     (progn (command "cotali" point13 point14 point10)
                            (setq entder (entget (entlast)))
                            (setq entder (subst (cons 1 txt1) (assoc 1 entder) entder))
                            (entmod entder)
                     )
                   )
                   (if (or (= typecote 36) (= typecote 164))
                     (progn (command "COPIER" nonent "" "0,0" "0,0")
                            (setq entder (entget (entlast)))
                            (setq entder (subst (cons 51 (- angtextcote pi))
                                                (assoc 51 entder)
                                                entder
                                         )
                            )
                            (setq entder (subst (cons 1 txt1) (assoc 1 entder) entder))
                            (entmod entder)
                     )
                   )
            )
            (progn
              (if (or (= (rtos ang 2 14) (- (+ pi pi (/ pi 2))))
                      (= (rtos ang 2 14) (- (+ pi (/ pi 2))))
                      (= (rtos ang 2 14) (- (/ pi 2)))
                      (= (rtos ang 2 14) (/ pi 2))
                      (= (rtos ang 2 14) (+ pi (/ pi 2)))
                      (= (rtos ang 2 14) (+ pi pi (/ pi 2)))
                  )
                (progn (prompt (strcat "\nL'ANGLE EST EGAL A 90 OU 270"))
                       (if (or (= typecote 32) (= typecote 160))
                         (progn (command "cotlin" point13 point14 "V" point10)
                                (setq entder (entget (entlast)))
                                (setq entder (subst (cons 1 txt1) (assoc 1 entder) entder))
                                (entmod entder)
                         )
                       )
                       (if (or (= typecote 33) (= typecote 161))
                         (progn (command "cotali" point13 point14 point10)
                                (setq entder (entget (entlast)))
                                (setq entder (subst (cons 1 txt1) (assoc 1 entder) entder))
                                (entmod entder)
                         )
                       )
                       (if (or (= typecote 36) (= typecote 164))
                         (progn (command "COPIER" nonent "" "0,0" "0,0")
                                (setq entder (entget (entlast)))
                                (setq entder (subst (cons 51 (- angtextcote pi))
                                                    (assoc 51 entder)
                                                    entder
                                             )
                                )
                                (setq entder (subst (cons 1 txt1) (assoc 1 entder) entder))
                                (entmod entder)
                         )
                       )
                )
                (progn (prompt
                         (strcat "\nL'ANGLE N'EST PAS EGAL A 0 90 180 OU 270")
                       )
                       (setq angcotedegre (angtos (- angcote angscu) 0 14))
                       (if (or (= typecote 32) (= typecote 160))
                         (progn (vl-cmdf "cotlin" point13 point14 "R" angcotedegre point10)
                                (setq entder (entget (entlast)))
                                (setq entder (subst (cons 1 txt1) (assoc 1 entder) entder))
                                (entmod entder)
                         )
                       )
                       (if (or (= typecote 33) (= typecote 161))
                         (progn (vl-cmdf "cotali" point13 point14 point10)
                                (setq entder (entget (entlast)))
                                (setq entder (subst (cons 1 txt1) (assoc 1 entder) entder))
                                (entmod entder)
                         )
                       )
                       (if (or (= typecote 36) (= typecote 164))
                         (progn (command "COPIER" nonent "" "0,0" "0,0")
                                (setq entder (entget (entlast)))
                                (setq entder (subst (cons 51 (- angtextcote pi))
                                                    (assoc 51 entder)
                                                    entder
                                             )
                                )
                                (setq entder (subst (cons 1 txt1) (assoc 1 entder) entder))
                                (entmod entder)
                         )
                       )
                )
              )
            )
          )
          (command "effacer" nonent "")
          (setq compt (1+ compt))
   )
 )
 (setvar "osmode" osm)
 (setvar "clayer" cav)
 (command "-dimstyle" "R" stylecotebase)
 (princ)
)

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

Hello Phiphil,

 

Merci pour ce lisp que je ne connaissais pas et qui va bien me servir. :)

Sauf que dans la ligne de commande REC lance la fonction rectangle...

 

Que modifier dans le texte du lisp pour changer ça ? J'ai essayé mais ça marche pas, grrr... Suis pas spécialiste lisp moi. ;)

 

Merki

Seuls nous allons vite, ensemble nous allons plus loin...

CPU Intel 3,5Go / Nvidia RTX-3090

AutoCad (Architecture) 2022 - Lumion PRO

BMW R-1200-RT, c'est moche, oui... je sais...

 

www.neda.ch

Lien vers le commentaire
Partager sur d’autres sites

hello

 

les appels de fonctions dans les LISp commencent apres "DEFUN"

 

quand c'est sur la ligne de commande de autocad au rajoute "C:" devant le nom de commande

 

dans le cas de ce LISP

 

"c:rec" à changer en "c:rec2" ou autre chose "c:lenomdefonctionquelonveut"

 

a+

phil

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

Ben là j'avais fait juste alors... suis pas trop à côté ouf ! :rolleyes:

 

Mai9s ça ne fonctionne toujours pas.

Après mon APPLOAD, il me met la remarque suivante à la fermeture, sur la ligne de commande:

"structure incorrecte de la liste en entrée"

 

Pourtant le .lsp est correctement chargé d'après la ligne précédente...

 

Ai-je mal copié le lisp, je vais essayer encore...

Seuls nous allons vite, ensemble nous allons plus loin...

CPU Intel 3,5Go / Nvidia RTX-3090

AutoCad (Architecture) 2022 - Lumion PRO

BMW R-1200-RT, c'est moche, oui... je sais...

 

www.neda.ch

Lien vers le commentaire
Partager sur d’autres sites

Ben voilà, j'avais oublié la dernière parenthèse du lisp, alors forcément !

 

Désolé, et merci à toi Phiphil. :)

Seuls nous allons vite, ensemble nous allons plus loin...

CPU Intel 3,5Go / Nvidia RTX-3090

AutoCad (Architecture) 2022 - Lumion PRO

BMW R-1200-RT, c'est moche, oui... je sais...

 

www.neda.ch

Lien vers le commentaire
Partager sur d’autres sites

hello

 

voici le lisp pour refaire les cotes avec le texte dans le bon sens par rapport au scu corespondant a la vue du plan de la coupe ou facade

 

selectionner toutes les cotes a la volée

 

il peut y avoir des cotes verticales qui passent en horizontales et vis versa attention

car le LISP refait des cotes suivant les points 10 13 14

 

il faut aussi parfois redeplacer le scu sur un objet avant de relancer "REC"

 

a+

 

phil

 

 

 

 

Merci pour ce LISP.

Il fonctionne d'enfer et il me sera bien utile.

Lien vers le commentaire
Partager sur d’autres sites

  • 4 ans 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é