Aller au contenu

Patrick_35

Membres
  • Compteur de contenus

    6 374
  • Inscription

  • Dernière visite

  • Jours gagnés

    30

Tout ce qui a été posté par Patrick_35

  1. Si je décompose la routine de (gile) (tblnext "layer" T) --> Trouver le 1er calque (tblnext "layer") --> Calque suivant (tblnext "layer") --> Calque suivant (tblnext "layer") --> Calque suivant ... (tblnext "layer") --> Calque suivant (tblnext "layer") --> nil --> Plus de calques Ensuite, un (tblnext "layer" T) retourne par exemple ((0 . "LAYER") (2 . "0") (70 . 0) (62 . 7) (6 . "Continuous")) Reste à exploiter le code dxf 2 avec wcmatch et à mettre le tout dans une boucle. @+
  2. Je trouve l'aide très complète et on voit la puissance de wcmatch. Regarde bien la routine de (gile). @+
  3. Salut Une boucle avec wcmatch @+
  4. Salut @La Lozère J'ai vu que tu mettais la fonction de (gile) dans la boucle while. Normalement, on ne définit qu'une seule fois une fonction. Tu as plusieurs manières de le faire 1) En local, une fonction dans une fonction (defun c:gpoi(/ str2lst) (defun str2lst (str sep / pos) ... ) ... ) 2) En global, si cette fonction est susceptible d'être utilisée par plusieurs lisps, mais attention dans ce cas au nom de la fonction afin que cela ne se mélange pas avec d'autres lisps qui utilisent aussi des fonctions globales. (une fonction qui en remplace une autre --> erreur) (defun str2lst (str sep / pos) ... ) (defun c:gpoi() ... ) Ensuite, ton code fonctionne très bien pour une ligne de texte. Quid pour deux lignes, voir plus ? Tu ne teste pas si l'utilisateur annule la recherche du fichier csv (open nil "r") --> Erreur Continue, car pour une reprise, tu avances vite. @+
  5. Pour DenisH (mapcar '(lambda(a B)(princ (strcat a B))) (list "\nLignList type 3 : \nMatri=" "\nX=" "\nY=") LignList) @+
  6. Ce qu'il y a d'intéressant dans la routine de (gile), c'est que c'est une récursive. Très bien expliqué ici ou là @+
  7. Salut Tu as deux fonctions de (gile) dans ce sujet @+
  8. Salut Bienvenue dans le monde du lisp :D C'est en forgeant qu'on devient forgerons. On y est tous passé. DenisH va pouvoir t'aider vu qu'il sait écrire dans un fichier Excel. @+
  9. Salut Après avoir testé sans la macro, je ne vois rien qui cloche et aucune erreur, mais sur un fichier Excel vierge. Regarde si ce n'est pas la macro Excel qui pose problème. @+
  10. Salut Si toutes les options sont cochées, oui, c'est ce qu'on lui demande. Un gros coup de karcher. Avec le lisp de (gile) @+
  11. Salut J'avais compris que tu voulais remplacer un bloc par un autre tout en conservant les attributs, ce que fait rbloc. Si c'est juste recopier la valeur d'attributs d'un bloc vers d'autres, cat le fait très bien. @+
  12. Salut Avec RBLOC @+
  13. Salut Je ne comprends pas pourquoi cela ne fonctionne pas. J'ai vérifié, les coordonnées, les scu, les variables, etc... et rien. Pire, j'ai fais un copier/coller des objets de l'exemple sur un fichier vierge et là, tout fonctionne :o D'ailleurs, j'ai corrigé un petit bug quand la fenêtre n'est pas initialisée. J'ai même fais un comparatif entre le dessin d'exemple et celui qui fonctionne et je n'ai pas trouvé de différences. Il y a une raison quelque part. Je continue de chercher @+
  14. Patrick_35

    Lisps de Patrick_35

    Salut C'est possible. Pour cela, tu ajoutes %< en début de formule et >% à la fin, ce qui donne %<$(substr,$(getvar,ctab),7,50)>% Valeur à propager dans MAT @+
  15. Deux petites remarques (while (/= (vlax-get (vlax-get-property feuille 'Range (strcat "A" (rtos NbLignXls 2 0))) 'Value) nil) Revient à faire (while (vlax-get (vlax-get-property feuille 'Range (strcat "A" (rtos NbLignXls 2 0))) 'Value) Et même mieux, afin d'éviter de relire la cellule (while (setq valeur (vlax-get (vlax-get-property feuille 'Range (strcat "A" (rtos NbLignXls 2 0))) 'Value)) Ensuite, tu peux utiliser la fonction itoa à la place de rtos @+
  16. Salut Avec la commande FILTRER. Tu sélectionnes un objet, ne conserves que ce tu souhaites dans la liste. @+
  17. Je ne peux qu'être d'accord, mais toutes les fonctions sont normalement facile d'accès, d'où ma proposition. Et ces fonctions doivent être nickel pour un utilisateur lambda. Apparemment, il y a eu une évolution qui fait planter le lisp. Merci Ben moi aussi Sinon, j'ai fais un exemple beaucoup plus simple et donc facile (defun c:test() (setq fichier (findfile "d:/test/Doss_IC_CadXP.xls")) (setq xls (vlax-get-or-create-object "Excel.Application")) (setq classeur (vlax-invoke (vlax-get xls 'Workbooks) 'open fichier)) (setq feuille (vlax-get-property (vlax-get classeur 'Sheets) 'Item "Personnel")) (setq valeur (vlax-get (vlax-get-property feuille 'Range "A1") 'Value)) (alert valeur) (vlax-invoke classeur 'close :vlax-false) (mapcar 'vlax-release-object (list feuille classeur xls)) (gc)(gc) (princ) ) @+
  18. Chez moi, tout fonctionne. Le résultat Et la lecture de la cellule A1 me renvoie "Fonction" @+
  19. Si tu pouvais joindre ton fichier Excel (avec des noms bidon) @+
  20. Patrick_35

    Numérotation groupée

    Salut Je disais rarement car quand tu fais un dessin d'un trait, tes objets sont dans un certain ordre et une sélection multiple permet d'avoir cet ordre. Mais comme tout dessin évolue avec l'effacement/l'ajout/copie d'objets, cet ordre n'est plus d'actualité. @+
  21. Salut Tu as API_XLS par exemple. Tout est expliqué dans le lisp Tu trouveras par exemple (setq Mon_Appli (lancer_excel)) (setq Mon_Classeur (ouvrir_fichier Mon_Appli "c:\\Données\\Test.xls")) (setq Ma_Feuille (feuille_active Mon_Classeur)) (lire_cellule Mon_Classeur Ma_Feuille "A1") (fermer_fichier Mon_Classeur) (fermer_appli (list Mon_Appli Mon_Classeur)) @+
  22. Patrick_35

    Numérotation groupée

    Salut La réponse va être simple. Le lisp fait comment pour connaitre l'ordre de la numérotation ? Une sélection multiple correspond rarement au besoin. @+
  23. Tu as pleins d'outils sur le net. (gile), tony tanzillo, moi-même (et je dois en oublier) avons fait des outils pour communiquer avec Excel, du style : (setq fichier (ouvrir_fichier_excel "c:/.../.../.../test.xls") (setq valeur (lire_valeur fichier "A1")) Une petite recherche ;) @+
  24. Lâche-toi. Le tout est de savoir la gérer ensuite. @+
  25. Un fichier Excel est facile à modifier/remplir par tes collègues. Un fichier texte plus compliqué (pas pour toi) pour eux. Cela t'éviteras de devoir gérer le personnel de chaque agence. @+
×
×
  • 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é