param^tre rotation dans un lisp

param^tre rotation dans un lisp

Anonymous
Non applicable
767 Visites
5 Réponses
Message 1 sur 6

param^tre rotation dans un lisp

Anonymous
Non applicable

Bonjour

 

Ci dessous un lisp afin d'écrire le nom du calque de l'objet choisi.

J'aimerai ajouter à ça un paramètre qui me permettrait de faire une rotation.

J'utilise cet outil pour écrire le nom de canalisation qui n'est pas forcément dans le SCU. Plutôt que passer à chaque fois par l'outil rotation, point de base, j'aimerai que ça me le propose directement.

Merci

 

Le lisp

 

(defun c:nc (/ s p)
  (while (and (setq s (car (entsel "\n Sélectionnez un objet :")))
              (setq p (getpoint "\n Cliquez la position du texte :"))
         )
    (entmake (list '(0 . "TEXT")
                   (cons 10 (trans p 1 0))
                   (cons 11 (trans p 1 0))
                   (cons 1 (cdr (assoc 8 (entget s))))
                   '(40 . 0.6)  ;; Hauteur de texte = 0.6
                   (cons 7 (getvar 'TEXTSTYLE))
             )
    )
  )
  (princ)
)

0 J'aime
768 Visites
5 Réponses
Replies (5)
Message 2 sur 6

CADaSchtroumpf
Advisor
Advisor

Bonjour,

 

En le modifiant comme ceci, ça conviendrait?

 

(defun c:nc (/ s p dxf_ent tmp alpha)
  (while (and (setq s (car (entsel "\n Sélectionnez un objet :")))
              (setq p (getpoint "\n Cliquez la position du texte :"))
         )
    (entmake (list '(0 . "TEXT")
                   (cons 10 (trans p 1 0))
                   (cons 11 (trans p 1 0))
                   (cons 1 (cdr (assoc 8 (entget s))))
                   '(40 . 0.6)  ;; Hauteur de texte = 0.6
                   (cons 7 (getvar 'TEXTSTYLE))
             )
    )
    (setq dxf_ent (entget (entlast)))
    (while (= 5 (car (setq tmp (grread t 5 1))))
      (cond
        ((= 5 (car tmp))
          (grdraw p (cadr tmp) -1 0)
          (setq alpha (angle (trans p 1 0) (trans (cadr tmp) 1 0)))
          (entmod (subst (cons 50 alpha) (assoc 50 dxf_ent) dxf_ent))
        )
      )
    )
  )
  (princ)
)
0 J'aime
Message 3 sur 6

Anonymous
Non applicable

Exactement.

Merci

0 J'aime
Message 4 sur 6

Anonymous
Non applicable

pour continuer dans le lisp si dessous, j'aimerai insérer un champ de longueur de la polyligne.

 

Voici le code du champ :

 

%<\AcObjProp Object(%<\_ObjId 8796087865424>%).Length \f "%lu2%pr2">%

 

En fait, j'aimerai avoir "nom de mon calque" - "longueur' ( si possible unité en mètre).

 

J'ai essayé d'insérer le code à plusieurs endroit sans arriver à trouver la solution...

Merci

0 J'aime
Message 5 sur 6

braudpat
Mentor
Mentor

 

Hello

 

Le Multi-Post est "autorise" MAIS il serait SYMPA de le signaler !?

http://cadxp.com/topic/42402-chaine-de-commande-texte/page__gopid__240177

 

Regards, Patrice

 

PS: LA SANTE & Meilleurs Voeux !

 

Rectificatif: SORRY en effet ce n'est pas le meme probleme / question !!

 

 

Patrice ( Supporting Troops ) - Autodesk Expert Elite
If you are happy with my answer please mark "Accept as Solution" and if very happy please give me a Kudos (Felicitations) - Thanks

Patrice BRAUD

EESignature


0 J'aime
Message 6 sur 6

Anonymous
Non applicable

Ce ne sont pas les mêmes problématiques ... 😞

 

Ici je travaille sur un lisp... sur l'autre forum, c'est en chaine de commande directe, ce qui me permettra de jouer sur plusieurs autres champs, ce que je ne cherche pas avec mon lisp...

 

 

0 J'aime