Aller au contenu

hardaxe08

Membres
  • Compteur de contenus

    8
  • Inscription

  • Dernière visite

hardaxe08's Achievements

Newbie

Newbie (1/14)

1

Réputation sur la communauté

  1. Merci COME et GILE pour vos réponses vous m'enlevez une épine du pied.
  2. Bonjour tout le monde, Je viens vers vous car je ne sais pas comment faire pour que mes textes commencent par une majuscule et continuent en minuscule, comme quand on écrit normalement. Ça à l'air ridicule comme problème (et peut-être que ça l'est) mais je sèche. Pour info dans mon lisp j'utilise la commande "texte" pour écrire mes textes et peut-être qu'il y a un paramètre dans la fonction qui permet de faire ce que je veux mais je ne trouve pas assez d'info sur les commande natives d'AutoCAD en général. Je m'excuse par avance si jamais il existe déjà un topic qui concerne ce sujet mais je n'étais pas motivé à cherche dans les + de 54 pages du forum. Merci par avance. Axel
  3. Merci Olivier pour ta réponse ! J'en prend note même si je suis passé par un autre chemin pour résoudre mon problème. Axel
  4. Didier je te remercie pour ta réponse et le code que m'a proposé ! Au début j'ai copié-collé ton programme dans le mien et ça ne fonctionnait pas. Mais grâce à ton code j'ai compris le raisonnement et comment procéder pour décaler vers gauche jusqu’à avoir un espace. J'ai pu compléter le mien et ça fonctionne. Vraiment c'est cool ! Je te met les modifications que j'ai effectuées : (setq cpt 42) (if (> (strlen element) cpt) ; si le contneu de element est supérieur à 42 caracteres alors ... (progn (if (/= (substr element cpt 1) " ") ;si le "cptième" caractere est différent d'un espace alors ... (progn (while (/= (substr element cpt 1) " ") ; tant que le cptième caracteres est différent d'un espace alors ... (setq cpt (- cpt 1)) ;cpt = cpt - 1 ; c'est le décalage à gauche ! ) (setq PART1 (substr element 1 cpt)) ;Part1 est égal aux cpt premiers caractéres de element (setq PART2 (substr element (+ cpt 1)));Part2 est égal aux caracteres restant de element (command "texte" displign1 "0" PART1); on écrit le contenu de PART1 (command "texte" displign2 "0" PART2); on écrit le contenu de PART2 ) ) ) (command "texte" pt4 "0" element); sinon on écrit le contenu de element ) DenisHen merci de m'avoir donné le lien du site da-code ! C'est bien plus clair que l'aide sur AutoCAD. Axel
  5. Bonjour à toi lispienne / lispien, J'ai une chaîne de caractères qui contient une phrase. Ce que je fais c'est écrire sur autoCAD, avec la commande texte, la chaîne de caractères. De plus si cette chaîne contient plus de 42 caractères je la sépare en deux pour l'écrire sur deux lignes. Jusque là tout va bien. MAIS ce que je voudrais c'est éviter de couper un mot en deux ! Eh oui si le 42ème caractère est au milieu d'un mot et ben mon programme ne se pose pas de question ( ilne peut pas en fait :D ) il coupe le mot en deux. J'en suis là : (setq cpt 42) (if (> (strlen element) cpt) ; si le contenu de element est supérieur à 42 caractères alors ... (progn (setq PART1 (substr element 1 cpt)) ;Part1 est égal aux 42 premiers caractères de element (setq PART2 (substr element (+ cpt 1)));Part2 est égal aux caractères restant de element (command "texte" displign1 "0" PART1); on écrit le contenu de PART1 (command "texte" displign2 "0" PART2);on écrit le contenu de PART2 ) (command "texte" pt4 "0" element); sinon on écrit le contenu de element ) J'avais pensé à faire quelque chose comme : si le caractère 42 est différent de " " alors on décale vers la gauche jusqu’à trouver un espace. on compte le nombre de fois qu'on a bougé vers la gauche et on soustrait cette valeur à cpt). Le truc c'est que je n'arrive pas à décaler vers la gauche comme je veux. Donc je viens vers vous pour m'aider à trouver une solution pour mon problème s'il vous plaît. P.S. : J'aimerai autant que possible éviter d'avoir des réponses à base de fonctions vla- vlax- vl- car je ne maîtrise pas du tout et j'aimerai, si on me le demande, pouvoir expliquer à autrui ce que fait le programme plutôt que de dire "ah ça je ne sais pas j'ai vu ça sur internet". Axel
  6. Bonjour, Désolé j'ai été sur un autre travail mais je suis de retour. Eh bien oui cela fonctionne ! J'avais pas compris sur le coup ce que voulais dire Olivier :(rires forts): . La honte... Merci les chefs !!!! Plus que 2/3 trucs à régler et se sera bon.
  7. Bonjour, Merci pour ta réponse Olivier. Alors oui j'y ai pensé mais je ne sais pas comment faire. J'ai trouvé une fonction pour modifier l' échelle du tableau "VLA-SETSCALE". Mais je ne sais pas combien d'arguments et quel types d'arguments elle reçoit. Axel
  8. Bonjour tout le monde ! On ma montré un LISP très performant pour créer des légendes automatiques TABLOLBLO. Mais dans mon cas je dois le modifier pour que l'utilisateur puisse choisir l'échelle du tableau. J'ai potassé sur le problème un peu et je me suis retrouvé très vite bloqué. J'ai commencé par faire en sorte que l'on puisse choisir un facteur d'échelle soit-même ce qui est en soit ultra simple ( je multiplie la hauteur et la largeur des cases du tableau par une variable). Mais le problème réside dans les blocs qui dépassent des cadres et que les textes du tableau quant à eux restent tout petit (genre police 0.000000000001). J'ai tenté de jouer sur l'échelle des blocs avec la fonctions vla-get-blockscale mais AUTOCAD me renvoie " erreur, type d'argument incorrecte: VLA-OBJECT <Selection set: 11>". Je pense, et j'en suis quasiment sûr à 100%, c'est que j'utilise mal la fonction vla-get-. Je viens vers vous pour qu'un ou plusieurs génies du LISP puissent me guider vers une réponse :) Merci d'avances pour vos réponses.
×
×
  • 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é