Communauté
AutoCAD – tous produits - Français
Bienvenue sur les forums AutoCAD d’Autodesk. Partagez vos connaissances, posez des questions, et explorez les sujets AutoCAD populaires.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

LISP Rotation txt

7 RÉPONSES 7
RÉSOLU
Répondre
Message 1 sur 8
f_vacque
271 Visites, 7 Réponses

LISP Rotation txt

Bonjour  tous,

Je souhaiterai créer un lisp qui me permette en sélectionnant un texte de le tourner en cliquant 2 points, en ayant activé l'accroche objet proche et qu'il se mette de la couleur "du calque" .

Est ce que quelqu'un pourrait m'aider ? 😃

J'ai ce lisp qui fonctionne sur autocad mais je voudrais qu'il fonctionne sur ZWCAD:

(Defun C:tz (/ *error*);Define new command line function
    ;DEBUT TRAPPE ERREUR (SORTIE ESCAPE)
    (defun *error* (msg)
      (if (not (member msg '("console break" "Function cancelled" "quit / exit abord")))
          (princ (strcat "\nError: " msg))
      )
       (setvar "osmode" oldosmode)
       (princ)
    )
   ;FIN TRAPPE ERREUR
(setq oldosmode (getvar "osmode"))
 
(setq E null)
 
  (while (= E null)
  (command "-accrobj" "pro")
  (princ "\nSélectionnez un objet TEXTE")
(setq na (acet-ui-single-select '((-4 . "<OR")
                           (0 . "TEXT")
           (-4 . "<AND")
                            (0 . "POLYLINE")
                            (-4 . "<NOT")
                              (-4 . "&")
                              (70 . 112)
                            (-4 . "NOT>")
                           (-4 . "AND>")
                          (-4 . "OR>")
                                  )
                         T
         );acet-ui-single-select
);setq
(if na
  (progn
  
   (Command "changer" na "" pause "" "" pause "")
   (command "-accrobj" "")
   (command "deplacer" "p" "" "@" pause)
   (Command "changer" na  "" "p"  "co"  "ducalque" "")
   
   );progn
    );if
 
 (if (not na)
   (progn
     (setq E "fin")
     ;(command "-accrobj" "nod,int,ext")
     (setvar "osmode" oldosmode)
     );progn
   );if
 (princ)
 
       
    );while
 
 
);Defun
 
 
(Defun C:tzx (/ *error*);Define new command line function
    ;DEBUT TRAPPE ERREUR (SORTIE ESCAPE)
    (defun *error* (msg)
      (if (not (member msg '("console break" "Function cancelled" "quit / exit abord")))
          (princ (strcat "\nError: " msg))
      )
       (setvar "osmode" oldosmode)
       (princ)
    )
   ;FIN TRAPPE ERREUR
(setq oldosmode (getvar "osmode"))
 
(setq E null)
 
  (while (= E null)
  (command "-accrobj" "pro")
  (princ "\nSélectionnez un objet TEXTE")
(setq na (acet-ui-single-select '((-4 . "<OR")
                           (0 . "TEXT")
           (-4 . "<AND")
                            (0 . "POLYLINE")
                            (-4 . "<NOT")
                              (-4 . "&")
                              (70 . 112)
                            (-4 . "NOT>")
                           (-4 . "AND>")
                          (-4 . "OR>")
                                  )
                         T
         );acet-ui-single-select
);setq
(if na
  (progn
    (command "copier" na "" "@" "@")
   (Command "changer" na "" pause "" "" pause "")
   (command "-accrobj" "")
    (command "deplacer" "p" "" "@" pause)
 
    );progn
    );if
 
 (if (not na)
   (progn
     (setq E "fin")
     ;(command "-accrobj" "nod,int,ext")
     (setvar "osmode" oldosmode)
     );progn
   );if
 (princ)
 
       
    );while
 
 
);Defun
 
Merci beaucoup pour votre aide!
 
7 RÉPONSES 7
Message 2 sur 8
patrick.emin
en réponse à: f_vacque

Bonjour @f_vacque Zwcad n'est pas un logiciel Autodesk, nous ne pouvons pas vous répondre sur ce thème, mais si vous avez d'autres questions concernant votre LISP dans AutoCAD, nous vous répondrons avec plaisir.


Patrick Emin animateur de la communauté francophone


Vous avez trouvé un message utile? Alors donnez un "J'aime" à ce message!
Votre question a eu une réponse satisfaisante? Voulez vous avoir l'amabilité de cliquer sur le bouton
 APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Signez notre Livre d'Or
Message 3 sur 8
f_vacque
en réponse à: f_vacque

Bonjour,

Merci quand même pour la réponse.

Bonne journée.

Message 4 sur 8
CADaSchtroumpf
en réponse à: f_vacque

Bonjour,

Sans connaître Zwcad, je pense que c'est la fonction  (acet-ui-single-select .....) qui pose problème.

C'est une fonction qui fait partie d'une bibliothèque d'Autocad où les fonctions sont souvent interdépendantes. Si celles-ci ne sont pas chargées au démarrage cela va échoué...

 

Tu peux tenter de changer dans ton code (pour les 2 fonctions: TZ etTZX)

(setq na (acet-ui-single-select '((-4 . "<OR")
                           (0 . "TEXT")
           (-4 . "<AND")
                            (0 . "POLYLINE")
                            (-4 . "<NOT")
                              (-4 . "&")
                              (70 . 112)
                            (-4 . "NOT>")
                           (-4 . "AND>")
                          (-4 . "OR>")
                                  )
                         T
         );acet-ui-single-select
);setq

par

(setq na  (ssget "_+.:E:S" '((-4 . "<OR")
                           (0 . "TEXT")
           (-4 . "<AND")
                            (0 . "POLYLINE")
                            (-4 . "<NOT")
                              (-4 . "&")
                              (70 . 112)
                            (-4 . "NOT>")
                           (-4 . "AND>")
                          (-4 . "OR>")
                                  )
         )
);setq
Message 5 sur 8
f_vacque
en réponse à: f_vacque

Bonjour,



Super merci beaucoup cela fonctionne.



Seul bémol lorsque j'oriente mon texte celui-ci se tourne d'environ 100 gr par rapport à la direction demandé.

De quoi cela peut-il venir ?



Ci-dessous le lisp mis à jour :



(Defun C:tz (/ *error*);Define new command line function

;DEBUT TRAPPE ERREUR (SORTIE ESCAPE)

(defun *error* (msg)

(if (not (member msg '("console break" "Function cancelled" "quit / exit abord")))

(princ (strcat "\nError: " msg))

)

(setvar "osmode" oldosmode)

(princ)

)

;FIN TRAPPE ERREUR

(setq oldosmode (getvar "osmode"))



(setq E null)



(while (= E null)

(command "-accrobj" "pro")

(princ "\nSélectionnez un objet TEXTE")

(setq na (ssget "_+.:E:S" '((-4 . "
(0 . "TEXT")

(-4 . "
(0 . "POLYLINE")

(-4 . "
(-4 . "&")

(70 . 112)

(-4 . "NOT>")

(-4 . "AND>")

(-4 . "OR>")

)

)

);setq

(if na

(progn



(Command "changer" na "" pause "" "" pause "")

(command "-accrobj" "")

(command "deplacer" "p" "" "@" pause)

(Command "changer" na "" "p" "co" "ducalque" "")



);progn

);if



(if (not na)

(progn

(setq E "fin")

;(command "-accrobj" "nod,int,ext")

(setvar "osmode" oldosmode)

);progn

);if

(princ)





);while



);Defun





(Defun C:tzx (/ *error*);Define new command line function

;DEBUT TRAPPE ERREUR (SORTIE ESCAPE)

(defun *error* (msg)

(if (not (member msg '("console break" "Function cancelled" "quit / exit abord")))

(princ (strcat "\nError: " msg))

)

(setvar "osmode" oldosmode)

(princ)

)

;FIN TRAPPE ERREUR

(setq oldosmode (getvar "osmode"))



(setq E null)



(while (= E null)

(command "-accrobj" "pro")

(princ "\nSélectionnez un objet TEXTE")

(setq na (ssget "_+.:E:S" '((-4 . "
(0 . "TEXT")

(-4 . "
(0 . "POLYLINE")

(-4 . "
(-4 . "&")

(70 . 112)

(-4 . "NOT>")

(-4 . "AND>")

(-4 . "OR>")

)

)

);setq

(if na

(progn

(command "copier" na "" "@" "@")

(Command "changer" na "" pause "" "" pause "")

(command "-accrobj" "")

(command "deplacer" "p" "" "@" pause)



);progn

);if



(if (not na)

(progn

(setq E "fin")

;(command "-accrobj" "nod,int,ext")

(setvar "osmode" oldosmode)

);progn

);if

(princ)





);while



);Defun


Message 6 sur 8
CADaSchtroumpf
en réponse à: f_vacque

Essaye cette version (revue et internationalisée), voir si ça fonctionne mieux...

(Defun C:tz (/ *error* oldosmode na)
	(defun *error* (msg)
		(if (not (member msg '("console break" "Function cancelled" "quit / exit abord")))
			(princ (strcat "\nError: " msg))
		)
		(setvar "osmode" oldosmode)
		(princ)
	)
	(setq oldosmode (getvar "osmode"))
	(princ "\nSélectionnez un objet TEXTE")
	(while
		(setq na
			(ssget "_+.:E:S"
				'(
					(-4 . "<OR")
						(0 . "TEXT")
						(-4 . "<AND")
							(0 . "POLYLINE")
							(-4 . "<NOT")
								(-4 . "&")
								(70 . 112)
							(-4 . "NOT>")
						(-4 . "AND>")
					(-4 . "OR>")
				)
			)
		);setq
		(setq na (ssname na 0))
		(setvar "osmode" 512)
		(Command "_.change" na "" pause "" "" pause "")
		(setvar "osmode" 0)
		(command "_.move" "_previous" "" "@" pause)
		(Command "_.change" na "" "_properties" "_color" "_bylayer" "")
		(princ "\nSélectionnez un objet TEXTE")
	)
	(setvar "osmode" oldosmode)
	(prin1)
)
(Defun C:tzx (/ *error* oldosmode na)
	(defun *error* (msg)
		(if (not (member msg '("console break" "Function cancelled" "quit / exit abord")))
			(princ (strcat "\nError: " msg))
		)
		(setvar "osmode" oldosmode)
		(princ)
	)
	(setq oldosmode (getvar "osmode"))
	(princ "\nSélectionnez un objet TEXTE")
	(while
		(setq na
			(ssget "_+.:E:S"
				'(
					(-4 . "<OR")
						(0 . "TEXT")
						(-4 . "<AND")
							(0 . "POLYLINE")
							(-4 . "<NOT")
								(-4 . "&")
								(70 . 112)
							(-4 . "NOT>")
						(-4 . "AND>")
					(-4 . "OR>")
				)
			)
		);setq
		(setq na (ssname na 0))
		(setvar "osmode" 512)
		(command "_.copy" na "" "@" "@")
		(Command "_.change" na "" pause "" "" pause "")
		(setvar "osmode" 0)
		(command "_.move" "_previous" "" "@" pause)
		(princ "\nSélectionnez un objet TEXTE")
	)
	(setvar "osmode" oldosmode)
	(prin1)
)

@f_vacque  a écrit :

Seul bémol lorsque j'oriente mon texte celui-ci se tourne d'environ 100 gr par rapport à la direction demandé.

De quoi cela peut-il venir ?

 

Le mode ORTHO est actif? Est ce que la version que je propose a encore ce défaut?

Message 7 sur 8
f_vacque
en réponse à: CADaSchtroumpf

Salut,



Merci pour ton retour.

Non le mode ORTHO n'est pas activer malheureusement ça vient pas de ça !



J'ai l'impression que quand je sélectionne le premier point, il ajoute d'office une rotation à 90 degré.



Concernant le nouveau programme envoyé, il ne fonctionne pas dès que je veux sélectionner un texte il ne le prend pas et me renvoi comme message : « incorrect type - nil »



Encore merci beaucoup pour ton aide.



Fabien


Message 8 sur 8
patrick.emin
en réponse à: f_vacque

Bonjour @f_vacque 

La communauté a essayé de répondre à votre question. Si vous pensez qu'une ou plusieurs de ces réponses vous aident, voulez vous avoir l'amabilité de cliquer sur le bouton  APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Merci de ne pas accepter comme solution le message que vous êtes en train de lire.
Si nos équipes de support technique ont pu vous apporter une solution ou contribuer significativement à vous aider en dehors de ce forum, pouvez vous partager ici la solution trouvée et cliquer sur le bouton  APPROUVER LA SOLUTION  de façon qu'elle bénéficie à la communauté?
Merci.


Patrick Emin animateur de la communauté francophone


Vous avez trouvé un message utile? Alors donnez un "J'aime" à ce message!
Votre question a eu une réponse satisfaisante? Voulez vous avoir l'amabilité de cliquer sur le bouton
 APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Signez notre Livre d'Or

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums  

Autodesk Design & Make Report