-
Compteur de contenus
6 374 -
Inscription
-
Dernière visite
-
Jours gagnés
30
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Patrick_35
-
[Résolu] TblSearch avec caractères génériques
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
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. @+ -
[Résolu] TblSearch avec caractères génériques
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Je trouve l'aide très complète et on voit la puissance de wcmatch. Regarde bien la routine de (gile). @+ -
[Résolu] TblSearch avec caractères génériques
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut Une boucle avec wcmatch @+ -
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. @+
-
Pour DenisH (mapcar '(lambda(a B)(princ (strcat a B))) (list "\nLignList type 3 : \nMatri=" "\nX=" "\nY=") LignList) @+
-
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à @+
-
Salut Tu as deux fonctions de (gile) dans ce sujet @+
-
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. @+
-
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. @+
-
Comment enlève-t-on un fichier de liaison de données?
Patrick_35 a répondu à un(e) sujet de Steven dans AutoCAD 2009
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) @+ -
[RESOLU] Récuper données d'un bloc vers un autre bloc
Patrick_35 a répondu à un(e) sujet de nen dans LISP et Visual LISP
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. @+ -
[RESOLU] Récuper données d'un bloc vers un autre bloc
Patrick_35 a répondu à un(e) sujet de nen dans LISP et Visual LISP
Salut Avec RBLOC @+ -
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 @+
-
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 @+
-
D'une liste à une liste de paires pointées.
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
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 @+ -
routine pour passer des éléments dans un autre calque
Patrick_35 a répondu à un(e) sujet de MadamAlex dans AutoCAD 2016
Salut Avec la commande FILTRER. Tu sélectionnes un objet, ne conserves que ce tu souhaites dans la liste. @+ -
D'une liste à une liste de paires pointées.
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
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) ) @+ -
D'une liste à une liste de paires pointées.
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Chez moi, tout fonctionne. Le résultat Et la lecture de la cellule A1 me renvoie "Fonction" @+ -
D'une liste à une liste de paires pointées.
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Si tu pouvais joindre ton fichier Excel (avec des noms bidon) @+ -
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é. @+
-
D'une liste à une liste de paires pointées.
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
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)) @+ -
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. @+
-
D'une liste à une liste de paires pointées.
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
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 ;) @+ -
Lâche-toi. Le tout est de savoir la gérer ensuite. @+
-
D'une liste à une liste de paires pointées.
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
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. @+
