Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

cela inverse bien le sens du texte mais par contre cela ne met pas le texte dans le bon SCU, c'est a dire pour les cotes verticale le texte doit être à gauche

et pour les cote horizontale au dessus.

 

Posté(e)

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

 

http://yusukens.free.fr/CADXP/RETC.gif

 

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

Posté(e)

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

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

  • 6 mois après...
Posté(e)

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

Posté(e)

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

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Posté(e)

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

Posté(e)

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

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Posté(e)

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

Posté(e)

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

Posté(e)

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.

  • 4 ans après...
Posté(e)

Bonjour,

 

voir ici pour avoir un lisp plus simple dont le but est le même

 

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)

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é