Aller au contenu

DenisHen

Membres
  • Compteur de contenus

    4 029
  • Inscription

  • Dernière visite

  • Jours gagnés

    21

Tout ce qui a été posté par DenisHen

  1. Bonjour à tous, D'abord, je ne suis pas topo. Je l'étais il y a 20 ans... Ca fais des années que je n'ai pas touché une canne... Je me souviens seulement que c'était le tout-début de la codification... A l'époque, on faisait encore des croquis... Olivier Eckmann : - est-ce tu sais qu'une station ça se contrôle?Oui, - est-ce que tu sais comment contrôler une station?Double retournement, bullage, références (clocher, antenne, angle de bâtiment...), et j'en oubli surement, - est-ce que tu contrôles régulièrement ta station?Une fois toutes les demi-heure environ, si je me souviens bien, ou alors quand le collègue à la canne prend du temps à faire autre chose (croquis, mesures, traverser la rue,...). Cordialement, Denis...
  2. Re, Merci VDH-Bruno, c'est exactement ça, mais c'est beaucoup plus long en VBA, d'après mes souvenirs... Maintenant, et dans un souci de "perfection" et pour continuer dans les chaines de caractères... (Et surtout qu'au mois d'août, on bulle toujours un peu, il me reste donc du temps pour mon "entretient PC/Logiciel" d'été) J'ai aussi fais une petite ligne de code qui regarde le nombre de décimales dans une chaine. Ainsi, je reste homogène dans mes résultats avec les données fournies et/ou existantes : (setq NbDec (- (strlen Ztn) (vl-string-position (ascii ".") Ztn) 1)) J'ai donc cette phrase là pour mes calculs : (setq Resultat(rtos Variable 2 NbDec)) Au plaisir, Denis...
  3. Ne te fache pas, je n'y peut rien...
  4. J'ai, à ce sujet, demandé à mes collègues s'il y avait des corrections linéaires sur leur appareil. Ils n'ont pas sus me répondre "franchement", à l'air du "Tout Automatique", ils ne savent plus vraiment ce qu'il se passe dans les Théodolites qui sont jumelés avec un GPS... Ils font leur polygo, elle "ferme" dans les tolérences... Et Hop, c'est bouclé... Amicalement aussi...
  5. Pour rebondir sur la proposition de VDH-Bruno : J'avais, il y a un bout de sacré temps, fais un petit VBA dans Excel qui faisait exactement la même chose que la fonction "NOMPROPRE" des Excel de maintenant. Il mettait en majuscule tous les premiers caractères des mots envoyés, exemple : "jean-paul sartre" revenait "Jean-Paul Sartre"... Mais je n'arrive pas à remettre la main dessus... Vu qu'Excel a maintenant une fonction pour ça... Denis...
  6. Bonjour à tous, Je rentre de vacances et j'avais oublié ce thème... @vincentp010 : merci pour ce LiSP, c'est excellent ! ! @didier : merci pour ces précisions, mais vu les "surfaces" de mes dossiers (rarement plus de 8km² comme la ville de Melun) et que je travail avec une précision de ± 40cm. Je doute que la reprojection influ beaucoup sur mes plans... En tous cas, merci à tous... Denis...
  7. M'enfin ? J'ai collé ça dans mon LiSP des commandes communes qui est toujours charger : ;;Transforme une chaine de caractère en 'Nom propre', majuscule au premier caractère (defun NomPropre (Text / NomPropre) (setq NomPropre (strcat (strcase (substr Text 1 1)) (strcase (substr Text 2 (- (strlen Text) 1)) T)) ) ;_ Fin de setq NomPropre ) ;_ Fin de defun Et il ne fonctionne qu'une fois... Il faut que je recharge mes LiSP pour qu'il fonctionne à nouveau... Et pour juste une fois... Alors là, comrend pô... PS : Alors là... J'ai changé de dessin et tout marche bien... Denis...
  8. Toujours ce souci de perfection chez les Lispiens... Mais une bonne idée reste une bonne idée... Je créé ma petite fonction tout de suite... J'en ai fais un peu trop, mais c'est pour être sûr de bien tout comprendre, et de ne rien oublier... A toutes fins utiles, j'ai donc : (defun NomPropre (Text /) (setq NomPropre (strcat (strcase (substr Text 1 1)) (strcase (substr Text 2 (- (strlen Text) 1)) T)) ) ;_ Fin de setq ) Qu'on appel comme ça : (setq TextEnForme (NomPropre TextBrut)) Merci encore à tous... Denis...
  9. Mille mercis x_all, C'est vrai, le guide de référence, malgré qu'il soit en anglais, aide aussi pas mal... J'ai donc une petite formule pour mettre le premier caractère d'une variable en majuscule et le reste en minuscule... Su ça peut servir à quelqu'un : (setq NomPropre (strcat (strcase (substr Text 1 1)) (strcase (substr Text 2 (- (strlen Text) 1)) T))) (gile), je n'avais pas vu ton poste, merci encore... Denis...
  10. Par contre, et c'est juste pour jouer à SuperChipotte, comment faire pour que "PUISARD" ou "puisard" se transforment en "Puisard", parceque, il n'est jamais écrit de la même façon, les majuscules se bousculent et ne gagnent pas toutes... Et je n'ai pas saisi la démonstration dans "Introduction_a_AutoLISP.pdf" du grand (gile), chapitre 14.1 Je ne sais pas quoi placer dans [bas]... Sachant que j'ai une dizaine de textes différents, comme "bloqué" ou encore "pas ouvert"... Denis...
  11. Merci Gjulien, ta première proposition fonctionne parfaitement... Merci aussi à VDH-Bruno... Mais je n'ai jamais compris le fonctionnement de (mapcar, tout comme celui de (lambda... C'est pour cette raison que j'hésite beaucoup à les utiliser en faisant un copier/coller des fractions de routines issues d'autre macros dans mes propres LiSP (waouw, elle n'est pas super claire cette phrase...). Car si je dois retourner trifouiller dans mes macros, je n'y comprendrais plus rien. En tous cas, merci à tous pour vos aides... Denis...
  12. Bonjour, Merci tiphon de me m'aider, c'est exactement ça... Ca fonctionne nikel maintenant... Je ne connaissais absolument pas cette astuce... Mille mercis... Denis...
  13. Merci Gjulien, Mais comme je l'ai dis plus haut, mes collègues n'ont pas toujours levé de la même façons. J'ai donc, en variable possible, Prof qui peut être égal à "P1.20", "P1.20M", "p1.20", "p1.20m", "puisard", "pas ouvert", "bloqué"... J'ai donc laissé tomber, je ne passerais pas des heures à programmer une routine qui me fera gagner quelques minutes... Mais merci pour ton aide... Denis...
  14. Merci VDH-Bruno, Tu entends par là que je devrais chercher un "." dans la variable "Prof" avec un vl-string-search ? Mais à mesure que j'évolu dans le dessin, je me rend compte que mes collègues n'ont pas été constant dans leur levé, j'ai des profondeurs notées "p1.20m", mais aussi "P1.20" ou encore "P1.20m"... Sans compter les "Puisard", "pas ouvert", "bloqué"... En gros, (et après les quelques sushis de ce midi) j'ai plutôt envie de laisser tomber, la routine fonctionne comme ça et ça ne servira à rien que je passe des heures à la faire évoluer si c'est pour me faire gagner quelques minutes...
  15. Re, Il subsiste toujours un petit problème, lorsque mon texte est égale à "pas ouvert" par exemple, ma routine supprime le premier "p" et je me retrouve avec un commentaire égale à "as ouvert", ce qui est bourde de ma part... Donc, j'en reviens à mon (if : Si le premier caractère de Prof = "p" ET si le dernier caractère de Prof = "m" Alors : (setq Prof (vl-string-right-trim "m" (vl-string-left-trim "p" Prof))) C'est ca que je n'arrive pas à développer en LiSP... Denis...
  16. Effectivement, le (while était inutile... Denis...
  17. Bon, j'ai réussi à comprendre un peu truc... J'ai maintenant çà : (while (= (substr Prof (- (strlen Prof) 1) 1) " ") (setq Prof (vl-string-right-trim " " Prof)) ;;(princ (strcat "\n-" Prof "-")) ) ;_ Fin de while (setq Prof (vl-string-right-trim "m" (vl-string-left-trim "p" Prof))) Mais je ne pense pas avoir besoin du (while... Non ? Merci encore à tous... Denis...
  18. Merci VDH-Bruno, Trim, Left et Right ne me posaient pas de problèmes, c'était les définitions et l'aide en générale qui, en anglais, me posent quelques problème...
  19. Merci (gile), mais je ne trouve de l'aide qu'en anglais, et dans ton formidable "Introduction_a_AutoLISP.pdf", c'est juste survolé... Enfin, j'ai fais çà : (while (= (substr Prof (- (strlen Prof) 1) 1) " ") (setq Prof (substr Prof 1 (- (strlen Prof) 1))) (princ (strcat "\n-" Prof "-")) ) ;_ Fin de while (princ (strcat "\n-" Prof "-")) Mais il me reste un dernier espace en fin de chaine "Prof"... Denis...
  20. Ouais, pour le 1, en VB ça donnerait un truc comme ça : Do While left(Variable,1)=" " Variable = right(Variable,len(Variable)-1) Loop Et pour le 2 : If Left(Variable,1)="p" and right(Variable,1)="m" then Variable=mid$(Variable,2,len(Variable)-2) End if Oui, je sais qu'on est dans le forum LISP, mais ce sont juste deux petits exemples pour aider à la compréhension de mon problème, car toutes mes macros sont en LiSP et j'aimerais continuer dans ce langage... Mais je n'arrive à rien pour ce qui est de manipuler des chaines... Denis...
  21. Bonjour à tous, Voilà, j'ai fais un LiSP (avec l'aides des CadXPiens) qui fais un petit calcul en sélectionnant une profondeur (un TEXT) et alimente divers attribut d'un bloc sélectionné. Jusque là, tout va bien. Mais maintenant, je traite un autre fichier qui n'est pas "construit" pareil, en effet, les Profondeurs (des entités TEXT) ne sont plus des nombres (ex: "1.20") mais des "string" (ex: "p1.20m") et parfois même, ils ont des espaces en fin de chaine (ex: "p1.20m ")... Mais attention, je ne peut pas supprimer tous les espaces car j'ai aussi des textes qui sont des commentaires (ex: "Puisard aveugle"). Donc, je dois supprimer les espaces qui sont uniquement en fin de chaine... Si quelqu'un a une astuce ou un bout de LiSP déjà fait, je suis preneur... Voici un petit bout de code issu de mon LiSP : (if (/= (atof Prof) 0) (progn (princ "\nCalculs") (setq Prof (atof Prof)) (setq ZProf (- ZTn Prof)) (setq ZProf (rtos ZProf 2 2)) (setq Prof (rtos Prof 2 2)) (Modatt hd "PROFONDEUR" (strcat "F.E. :" Prof)) (Modatt hd "Z-PROF" ZProf) ) ;_ Fin de progn (progn (princ "\nObservations") (Modatt hd "OBSERVATIONS" Prof)) ) ;_ Fin de if En gros : 1. Comment supprimer les espaces en fin de chaine, 2. Comment sortir le "nombre" si le permier caractère de la variable est un "p" et le dernier un "m"... Denis...
  22. Merci x_all. Mais je n'ai que des Textes "simples", pas de MTEXT...
  23. Merci à tous pour vos aides, finalement, j'ai choisi une autre technique : (if (/= (atof Prof) 0) Encore merci... Denis...
  24. A bien y réfléchir, j'ai oublié un petit détail qui a son importance... Parfois, ce n'est pas une hauteur que je sélectionne, c'est un commentaire... Question, Comment faire pour savoir si le texte que je sélectionne est un nombre décimal ou un texte...? Car si c'est un nombre, je fais un calcul, si c'est un texte, je ne fais pas de calcul et je renseigne l'attribut "OBSERVATION" dans le bloc "regardasst"... Denis...
  25. Re, Ben je vien de relancer AutoCAD, et l'erreur revient... Même après un Regen... A l'ouverture, mon texte est bien rouge, mais quand AutoCAD redessine avant de donner la main, mon texte redevien blanc... PIRE ! ! J'ai changé ma macro LiSP pour changer mon texte de calque (qui est rouge) et non la couleur de ce texte... Même chose, mon texte reste blanc tout en étant dans un calque de couleur rouge... Alors là, je ne comprend rien...
×
×
  • 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é