GéoFab Posté(e) le 18 octobre 2023 Posté(e) le 18 octobre 2023 Bonjour à tous, Alors voilà j'vais un lisp qui fonctionné sur autocad mais ne fonctionne pas sur ZwCad. Ce lisp me permet en gros de sélectionner un texte, activé l'accroche objet, orienter le texte par 2 points, le déplacer, et passer la couleur dans "du calque". Est-ce que quelqu'un serait ce qui ne va pas ? Voici mon lisp: (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. 🙂 Cela m'handicape énormément pour l'instant j'effectue la rotation avec la commande texte rotation de GeogexFR mais c'est fastidieux. Bonne journée
Luna Posté(e) le 18 octobre 2023 Posté(e) le 18 octobre 2023 Coucou, Je ne connais pas ZWCAD mais j'ai envie de supposer que la fonction (acet-ui-single-select) pose un soucis. Je ne connais pas cette fonction mais d'après son nom je suppose qu'il s'agit d'une manière détournée de faire un (ssget "_+.:E:S") permettant ainsi d'appliquer un filtre sur une sélection similaire à un (entsel) ou (nentsel). Essaye peut-être avec ceci ? (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 . "<OR") (0 . "TEXT") (-4 . "<AND") (0 . "POLYLINE") (-4 . "<NOT") (-4 . "&") (70 . 112) (-4 . "NOT>") (-4 . "AND>") (-4 . "OR>")) );ssget );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 . "<OR") (0 . "TEXT") (-4 . "<AND") (0 . "POLYLINE") (-4 . "<NOT") (-4 . "&") (70 . 112) (-4 . "NOT>") (-4 . "AND>") (-4 . "OR>")) );ssget );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 Je n'ai pas testé. Je me pose également la question à quoi sert le filtre de sélection justement car tu parles uniquement de texte donc pourquoi le filtre autorise-t-il une polyligne également ? Car de ce que j'entends, on pourrait fortement simplifier le filtre au vue de ton utilisation... Il serait également judicieux de mettre le nom des commandes et choix d'options en anglais. Bisous Luna
GéoFab Posté(e) le 18 octobre 2023 Auteur Posté(e) le 18 octobre 2023 Merci Luna 🙂 En effet, c'est bien cette fonction qui posait problème sur ZWCAD. Cela fonctionne maintenant à part que j'ai un souci dans la rotation du texte. Lorsque je lance la commande, je sélectionne mon texte clique un point sur la polyligne directrice et quand je clique le seconds j'ai une rotation de 100gon vers le sud. Je ne sais pas comment régler le problème. Je te remercie pour tes lumière si tu sait d'où pourrait venir le problème. Le filtre utilise une polyligne car je m'appuie sur une polyligne pour faire ma rotation ou bien avec deux points dans le vide. Bonne soirée et encore merci 🙃
GéoFab Posté(e) le 20 octobre 2023 Auteur Posté(e) le 20 octobre 2023 Salut Luna, C'est bon j'ai résolu mon problème en ajoutant le filtre suivant au début du lisp: (setq oldangbase (getvar "angbase")) (setvar "angbase" 0) Tout fonctionne! 🙂 Merci encore à toi pour ton aide. A bientôt 1
Luna Posté(e) le 20 octobre 2023 Posté(e) le 20 octobre 2023 pas de soucis, bien que je n'ai rien fait pour le coup ^^ Bisous, Luna
Messages recommandé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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant