dfbiagio Posté(e) le 15 mai Partager Posté(e) le 15 mai Bonsoir à tous, J'essaie de créé une petite programmation qui me permettrai de faire pivoter un texte suivant un certain angle. (setq texte (entget (car (entsel "choix du texte")))) Résultat: ((-1 . <Nom d'entité: 28f974116f0>) (0 . "MTEXT") (330 . <Nom d'entité: 28ff3f02230>) (5 . "93487") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "Renseignements cadastraux (N° parcelles - Propriétaires)") (100 . "AcDbMText") (10 -1.82413e+07 -7.18013e+06 0.0) (40 . 120.0) (41 . 0.0) (46 . 0.0) (71 . 7) (72 . 5) (1 . "G175R") (7 . "Roman") (210 0.0 0.0 1.0) (11 -0.882086 0.471089 0.0) (42 . 505.917) (43 . 124.615) (50 . 2.65107) (73 . 1) (44 . 1.0)) Ensuite, j'extrais l'angle du texte: (setq ang (cdr (assoc 50 texte))) 2.65107 Pour le faire pivoter de 180° il faut soit ajouter PI (setq ang (+ ang PI)) Je substitue le nouvel angle dans texte (substr (cons 50 ang) (assoc 50 texte) texte) Et là, je reçois cette erreur ; erreur: type d'argument incorrect: stringp (50 . 5.79266) D'où vient mon erreur ? Merci de votre aide. Lien vers le commentaire Partager sur d’autres sites More sharing options...
bonuscad Posté(e) le 15 mai Partager Posté(e) le 15 mai Bonsoir, Ce n'est pas (substr) qui est pour les chaîne de caractères, mais (subst) pour substituer un élément à un autre. 1 Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius Lien vers le commentaire Partager sur d’autres sites More sharing options...
dfbiagio Posté(e) le 15 mai Auteur Partager Posté(e) le 15 mai Un grand merci, 👍 Lien vers le commentaire Partager sur d’autres sites More sharing options...
dfbiagio Posté(e) le 16 mai Auteur Partager Posté(e) le 16 mai Re-bonjour, J'ai encore un petit souci, lorsque j'exécute mon petit lisp via la ligne de commande, ça fonction, mais quand tout est assemblé, il me met l'erreur suivante: Commande: CHT Sélectionnez des objets: Spécifiez le coin opposé: 3 trouvé(s) Sélectionnez des objets: ; erreur: fonction incorrecte: <Selection set: dc> Voici mon lisp assemblé: (defun c:cht() ((setq texte (ssget '((0 . "text")))) cpt 0) (repeat (sslength texte) (setq TexteAmodifier (entget (ssname texte cpt))) (entmod (subst (cons 50 (+ pi (cdr (assoc 50 TexteAmodifier)))) (assoc 50 TexteAmodifier ) TexteAmodifier )) (setq cpt (1+ cpt)) ) ) Merci pour votre aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
VDH-Bruno Posté(e) le 16 mai Partager Posté(e) le 16 mai Bonjour, Sans avoir la possibilité de tester, au premier coup d'œil, je vois un problème de parenthèses essaie de remplacer ceci: ((setq texte (ssget '((0 . "text")))) cpt 0) par (setq texte (ssget '((0 . "text"))) cpt 0) A+ Apprendre => Prendre => Rendre Lien vers le commentaire Partager sur d’autres sites More sharing options...
dfbiagio Posté(e) le 16 mai Auteur Partager Posté(e) le 16 mai Effectivement, c'est bien ça. Un tout grand merci. Bonne journée Lien vers le commentaire Partager sur d’autres sites More sharing options...
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