-
Compteur de contenus
4 029 -
Inscription
-
Dernière visite
-
Jours gagnés
21
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par DenisHen
-
Petit problème de lecture et de tri...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour Luna, et merci pour ton aide. Déjà, (explore-dxf ne fonctionne pas chez moi (??). Et j'ai réussi un truc, mais j'ai une erreur dès le début, ce doit être le (cons de la couleur (code 62) qui n'est pas correcte, encore un problèble d'interprétation je pense. ; erreur: groupe DXF incorrect: (62 . "60") Je crois qu'autolisp attent un 60 et non un "60". Qu'en penses-tu ? Car je vais avoir le même problème avec d'autre codes... Je n'ai rien trouvé sur l'épaisseur des lignes, et quel est ce code DXF 5 (Entity handle), je n'ai rien trouvé non plus ? -
Petit problème de lecture et de tri...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour à toutes et à tous. Merci Luna pour ton aide, mais je viens de voir avec mes collègues et on est d'accord sur un point, il n'y aura que des couleur de base (de 0 à 255). Mais il y a autre chose, j'essai de créer un calque avec (entmake mais je n'y arrive pas, j'ai peut-être commencé par la fin avec : (entmake '((0 . "LAYER") (8 . "Denis") (62 . 1) (290 . 1))) Mais sans résultat, j'ai donc fais le minimum : _$ (entmake '((0 . "LAYER") (8 . "Denis"))) nil Toujours rien. Quelqu'un peut-il me dire ce que je fais de mal ? Bonne journée au forum. Denis... -
Blocs normalisés NF X 08-070 (sécurité incendie)
DenisHen a répondu à un(e) sujet de Aleck_Ultimate dans Echanges de fichiers
Salut Oli553. Merci beaucoup pour ton partage, ça m'avance pas mal sur mes blocs... Denis... -
Blocs normalisés NF X 08-070 (sécurité incendie)
DenisHen a répondu à un(e) sujet de Aleck_Ultimate dans Echanges de fichiers
Bonjour à la communauté. Je cherche aussi des blocs pour des SSI (EPR, ICPE...) sur AutoCAD, donc, des DWG. J'ai beaucoup cherché, mais je n'ai trouvé que des PNG ou des JPG, ou encore des téléchargements payants (150€ pour une cinquantaine de blocs, je les ferais moi-même). Bonne soirée à toutes et à tous... Denis... -
Ok, là j'ai compris... Merci pour ton aide... 😉
-
Si si, je l'ai lu, je l'avais déjà lu plusieurs fois depuis ces dernières années... Mais si on peut écrire '(10 50.0 80.0 0.0) pourquoi ne peut-on pas écrire '(0 "CIRCLE") sans le point ?
-
Petit problème de lecture et de tri...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Wouaouw ! ! ! Mille mercis pour cette excellente explication, je comprend mieux d'un coup... 😉 -
Merci (gile) pour ces explications, je commence effectivement à comprendre un peu mieux les listes. Mais dans "(10 5.0 8.0 0.0)", il n'y a ni cons, ni un point après le 10, je pensais que ça devait s'écrire comme ça : (10 . 5.0 8.0 0.0). C'est juste ça que j'ai un peu de mal à comprendre. Est-ce que l'interpréteur comprend que c'est une paire pointé ?
-
Petit problème de lecture et de tri...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut à toute la communauté. Merci pour votre aide. Je vais essayer d'être clair (comme me le dit souvent notre ami didier) : @(gile) : merci pour ces petits codes qui me permettront de créer mes couleurs RGB, car je n'ai pas le choix, j'ai beaucoup de trames "à plat". Dans ton (entget (tblobjname "layer" nomDuCalque)) Je n'ai pas le code du commentaire du calque, c'est dommage, car je comptais dessus pour créer mes légendes. mais je l'ai dans (entget (tblobjname "layer" nomDuCalque) '("*")) Mais il est précédé d'un "(-3 ("AcAecLayerStandard" (1000 . "") (1000 . "Mobilier intérieur et urbain"))))" (comment l'intégrer dans une liste de paires pointés ?), Qui me fait penser au fichier DXF que j'ai créé, il comporte effectivement deux ligne avec le code 1000 (une vide et une contenant le commentaire). Je ne saisi pas bien, mais je vais essayer de faire quelque-chose avec ça. @Fraid : je n'ai pas le choix, j'ai plein de calques avec des couleurs RGB, on a beaucoup de trames et d'"à plat". Le dernier code que j'ai posté est inspiré à 99% de celui de (gile) posté plus haut, je ne me suis pas permis de le remettre en question, je pense que tu devines pourquoi 😉 . Avec (command "_layer", on n'a pas besoin de savoir si le calque existe car, s'il n'existe pas, il sera créé, s'il existe, il sera redéfini. Oui, ça fait longtemps que je "lispe", mais j'ai toujours du mal avec sa logique, d'autres y arrivent très bien (comme BonusCAD par exemple), mais je rame beaucoup. Peut-être suis-je à mon maximum dans ce langage ? ? ? Merci pour tes encouragements pour cette (grande) marche à gravir, mais je persévère... En tous cas, un grand merci à vous et bon dimanche au forum. Denis... Denis... -
Salut (gile), et merci de me répondre un dimanche... Je n'ai rien dis sur ton code, il fonctionne très bien, ce que je ne comprend pas, c'est que le code DXF 10 ne me semble pas une paire pointé...
-
Salut à tous. Je suis en train de me familiariser avec (entmake, et je vois, dans le formidable "Introduction à AutoLISP", que dans cet exemple : (entmake '((0 . "CIRCLE") (8 . "TEST") (10 5.0 8.0 0.0) (40 . 10.0))) Il n'y a pas de "point" après le code DXF 10, mais il fonctionne. J'avoue être un peu perdu... 😉
-
Petit problème de lecture et de tri...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
J'ai fini par sauvegarder mon DWG en DXF et j'ai fouillé ce fichier, le code DXF du commentaire est le 1000. En outre, j'ai lu dans l'aide que le code 420 (couleur RGB) est une "Valeur de couleur sur 24 bits, exprimée à l'aide de trois octets dont la valeur est comprise entre 0 et 255." Comment obtenir cette valeur sur 24 bits depuis une variable sur trois couleurs : "128,234,95" ? ReBon dimanche à toutes et à tous. Denis... PS : en fait, le code 1000 génère une erreur DXF. Je ne comprend pas, même ça ne fonctionne pas : -
Petit problème de lecture et de tri...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bon, ça fait plus d'une heure que je cherche la liste "complète" des codes DXF pour créer un calque avec (entmake, mais je n'ai, par exemple, pas trouvé le code pour le commentaire. Ni quels sont les codes minimum à "déclarer"... Quelqu'un aurait une solution ? -
Petit problème de lecture et de tri...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour Luna, Je n'ai pas trouvé la commande "explore-dxf". Bon dimanche. Denis... -
Petit problème de lecture et de tri...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut Fraid, et merci pour tes bons conseils. Effectivement, je n'avais pas déclaré les variables dans mon code, c'est chose faite maintenant. Oui, j'avais 2 (findfile, c'est aussi réparé grâce à un (setq au premier (findfile. Par contre, (entmake reste un peu complexe pour moi, mais je vais tenter de l'utiliser, dès maintenant, car je n'arrive pas à faire la différence entre les couleurs "simples" (de 0 à 255) et les couleurs RGB. De plus, je ne trouve pas la totalité des codes DXF pour la définition de calques, mais je cherche. Tu me dis que si mon fichier contient plus de 50 lignes, mon code n'ira pas jusqu'au bout, là, je n'ai pas compris. Peux-tu me dire pourquoi s'il te plaît ? Bon dimanche à la communauté. Denis... -
Petit problème de lecture et de tri...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Je sais que j'ai improvisé ce code avec un peu trop d'entrain... C'est bon, j'ai réussi, voici le code final : ;;; ***************************************** ;;; Création des calques du niveau courant ;;; ***************************************** (defun c:ECPS_CreaCalqCourant () (if (findfile "ECPS_Calques.csv") (load "ECPS_Calques.csv") (progn (princ "\nAttention, le fichier \"ECPS_Calques.csv\" est introuvable ! ! !") (exit)) ;_ Fin de progn ) ;_ Fin de if (setq FichLstCalq (open (findfile "ECPS_Calques.csv") "r")) ;_ Fin de setq (while (setq LstCalqLine (read-line FichLstCalq)) (setq ListLine (cons (str2lst LstCalqLine ";") ListLine)) ) ;_ Fin de while (close FichLstCalq) ;; pour chaque sous-liste (ligne) (foreach line Listline (setq nomCalque (strcat (vlax-ldata-get "DenisH" "ECPSNiveauCalq") "_" (car line))) (command "_layer" "_make" nomCalque "_color") ;; si on est en couleur RGB, on ajoute l'option _true (if (vl-string-search "," (nth 0 line)) (command "_true") ) ;_ Fin de if (command (nth 1 line) nomCalque "_ltype" (nth 2 line) nomCalque "_lweight" (/ (atoi (nth 3 line)) 100.) nomCalque "t" (nth 4 line) nomCalque "_description" (nth 5 line) nomCalque "" ) ;_ Fin de command ) ;_ Fin de foreach ) ;_ Fin de defun Milles mercis à toi (gile)... Denis... -
Petit problème de lecture et de tri...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut didier. Effectivement, c'est un oubli de ma part, et merci de me le rappeler 😉 Denis... -
Petit problème de lecture et de tri...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour à tous et merci pour votre aide. Effectivement, le séparateur ";" est bien plus simple et efficace, comme le dit si bien (gile), je peux faire un .csv et donner la possibilité à l'utilisateur de l'éditer dans un tableur ou avec le bloc-note... J'ai donc changer mon code pour prendre celui de (gile), que je suis en train d'analyser. Je m'explique sur le .csv : NomDuCalque,Couleur(s),TypeDeLigne,Épaisseur,Impression,Commentaire Murs;7;Continu;35;O;Murs perimetriques et de refends Murs_Hach;253;Continu;35;O;Murs perimetriques et de refends (Hachures) Cloisons;8;Continu;25;O;Cloisonnements Cloisons_Hach;254;Continu;25;O;Cloisonnements (Hachures) Aire Evac;5;Continu;18;O;Aire d'evacuation Construction;4;Continu;25;N;Polygone de construction (non imprimable) Mobilier;124,199,237;Continu;50;O;Mobilier intérieur et urbain Outils d'intervention;1;Continu;25;O;Exctincteurs, RIA... Mon principal problème est la différence entre la couleur à nombre unique (0-255) et la couleur "composée" (RVB). Mais (gile) l'a très bien compris. Bon, mon code ne fonctionne toujours pas, mais je travaille dessus, le voici : ;;; ***************************************** ;;; Création des calques du niveau courant ;;; ***************************************** (defun c:ECPS_CreaCalqCourant () (if (findfile "ECPS_Calques.csv") (load "ECPS_Calques.csv") (progn (princ "\nAttention, le fichier \"ECPS_Calques.csv\" est introuvable ! ! !") (exit)) ;_ Fin de progn ) ;_ Fin de if (setq FichLstCalq (open (findfile "ECPS_Calques.csv") "r")) ;_ Fin de setq (while (setq LstCalqLine (read-line FichLstCalq)) (setq ListLine (cons (str2lst LstCalqLine ",") ListLine)) ) ;_ Fin de while (close FichLstCalq) ;; pour chaque sous-liste (ligne) (foreach line Listline (setq nomCalque (strcat (vlax-ldata-get "DenisH" "ECPSNiveauCalq") "_" (car line))) (command "_layer" "_make" nomCalque "_color") ;; si on est en couleur RGB, on ajoute l'option _true (if (vl-string-search "," (cadr line)) (command "_true") ) ;_ Fin de if (command (cadr line) nomCalque "_ltype" (caddr line) nomCalque "_lweight" (/ (atoi (cadddr line)) 100.) nomCalque "_description" (last line) nomCalque "" ) ;_ Fin de command ) ;_ Fin de foreach ) ;_ Fin de defun Encore merci à vous, et bonne journée à la communauté. Denis... -
Petit problème de lecture et de tri...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour à tous et merci pour votre aide. Effectivement, le séparateur ";" est bien plus simple et efficace, comme le dit si bien (gile), je peux faire un .csv et donner la possibilité à l'utilisateur de l'éditer dans un tableur ou avec le bloc-note... J'ai donc changer mon code pour prendre celui de (gile), que je suis en train d'analyser. Je m'explique sur le .csv : NomDuCalque,Couleur(s),TypeDeLigne,Épaisseur,Impression,Commentaire Murs;7;Continu;35;O;Murs perimetriques et de refends Murs_Hach;253;Continu;35;O;Murs perimetriques et de refends (Hachures) Cloisons;8;Continu;25;O;Cloisonnements Cloisons_Hach;254;Continu;25;O;Cloisonnements (Hachures) Aire Evac;5;Continu;18;O;Aire d'evacuation Construction;4;Continu;25;N;Polygone de construction (non imprimable) Mobilier;124,199,237;Continu;50;O;Mobilier intérieur et urbain Outils d'intervention;1;Continu;25;O;Exctincteurs, RIA... Mon principal problème est la différence entre la couleur à nombre unique (0-255) et la couleur "composée" (RGB). Mais (gile) l'a très bien compris. Bon, mon code ne fonctionne toujours pas, mais je travaille dessus, le voici : ;;; ***************************************** ;;; Création des calques du niveau courant ;;; ***************************************** (defun c:ECPS_CreaCalqCourant () (if (findfile "ECPS_Calques.csv") (load "ECPS_Calques.csv") (progn (princ "\nAttention, le fichier \"ECPS_Calques.csv\" est introuvable ! ! !") (exit)) ;_ Fin de progn ) ;_ Fin de if (setq FichLstCalq (open (findfile "ECPS_Calques.csv") "r")) ;_ Fin de setq (while (setq LstCalqLine (read-line FichLstCalq)) (setq ListLine (cons (str2lst LstCalqLine ",") ListLine)) ) ;_ Fin de while (close FichLstCalq) ;; pour chaque sous-liste (ligne) (foreach line Listline (setq nomCalque (strcat (vlax-ldata-get "DenisH" "ECPSNiveauCalq") "_" (car line))) (command "_layer" "_make" nomCalque "_color") ;; si on est en couleur RGB, on ajoute l'option _true (if (vl-string-search "," (cadr line)) (command "_true") ) ;_ Fin de if (command (cadr line) nomCalque "_ltype" (caddr line) nomCalque "_lweight" (/ (atoi (cadddr line)) 100.) nomCalque "_description" (last line) nomCalque "" ) ;_ Fin de command ) ;_ Fin de foreach ) ;_ Fin de defun Encore merci à vous, et bonne journée à la communauté. Denis... -
Vous aimez les challenges ? ? ?
DenisHen a répondu à un(e) sujet de DenisHen dans Programmer en s'amusant
Bonjour Luna. Merci pour tes conseils, j'apprécie. Mais je n'ai pas l'intention d'abandonner le Lisp, j'aimerais juste apprendre un autre langage qui me permettra peut-être de faire ce que je n'arrive pas à faire avec le Lisp. Je ne dis pas que le C# est plus "facile", mais il sera peut-être plus adapté à ma logique ou à ma faculté de compréhension. Je "parle" anglais, lorsque je vais dans un pays non francophone, je me débrouille plutôt bien dans cette langue et je fini toujours par me faire comprendre, mais elle diffère selon le thème (voyage, programmation, lecture...). Encore merci à toi pour ton aide. Denis... -
Vous aimez les challenges ? ? ?
DenisHen a répondu à un(e) sujet de DenisHen dans Programmer en s'amusant
Bonjour à la communauté. Désolé, je me suis mal exprimé, quand je dis "bidouille", je voulais dire "faire de petits programmes simples". Oui, je vous avais bien compris, le C# ne sera pas plus "facile" que le Lisp, mais je vais peut-être aller plus loin avec ce nouveau langage, car pour l'instant, je pense être à mon maximum intellectuel avec le Lisp, je ne progresse plus. Effectivement, je ne vais pas faire du C# tout de suite pour AutoCAD. Je ferais un bon nombre d'exercices et de petits programmes (de plus en plus évolués) pour débuter et bien maitriser le langage. Il existe beaucoup plus de tutos en français pour le C# que pour le Lisp. Encore une fois, merci à vous pour vos conseils et vos remarques. Bonne journée à toutes et à tous. Denis... -
Salut à la communauté. L'idée de Luna est, je trouve, excellente... je suis d'accord avec elle... Denis...
-
Vous aimez les challenges ? ? ?
DenisHen a répondu à un(e) sujet de DenisHen dans Programmer en s'amusant
Salut à toutes et à tous, et à toi, Ô grand maître (gile) (je vais arrêter de t’idolâtrer de la sorte, tu vas finir par mal le prendre 😉...) Je suis bien d'accord avec toi, le Lisp, est une merveille, mais il faut avouer que ce langage, bien que simplissime dans son énoncé, est tout de même complexe dans son développement et sa syntaxe. Son IDE dans AutoCAD est très (trop ?) simplissime, pas de réel débogage, peu d'aide, une indentation succincte... Ton "Introduction A AutoLisp" est une bible, et pour beaucoup de développeurs (amateurs comme plus expérimentés), mais il faut bien le dire, ce n'est pas à la porté d'un novice en programmation... On ne commence pas en Lisp sans aucune notion de programmation, je pense. Perso, je n'y aurais jamais mis les pieds si je n'avais des notion de VB et de VBA... Ensuite, le .NET et comme tu nous le conseilles le C# est peut-être plus "abordable" ou un bon moyen d’aborder la POO (je ne démord pas de l'apprendre, ça m'intéresse réellement). mais faire une macro, un programme, ou n'importe quoi qui facilite l'utilisation d'AutoCAD (ou autre logiciel) est très tentante pour quelqu'un qui "bidouille" comme moi... Tous est dans la forme... De là a faire ce que tu fais, c'est une autre histoire... Entre un expert-comptable et un simple gratte papier, il y a des kilomètres... Entre un géomètre-Expert et un simple opérateur de saisie, il y a le même nombre de kilomètre... Entre toi et moi, les kilomètres augmentent... 😉 Tu dois bien te rendre compte que ton niveau est très difficile d'accès pour d'autre, dont je fais parti... Mais je ne te remercierais jamais assez, car tu fais parti des membres de CadXP (avec LeCrabe, Tramber, didier, et bien d'autre, dont un tristement disparu) qui m'avaient permis de mettre le pied à l'étrier... Et sans vous, je serais rester au VBA (que je ne dénigre absolument pas), et je n'aurais pas fais ce que je fais actuellement en Lisp... J'ai fais pas mal de trucs en VBA, mais maintenant, quand je dois faire un truc, je cherche d’abord à le faire en Lisp... Et si je n'y arrive pas, je le fais en VBA (et peut-être, plus tard, en C#...). Je doute que tu (comme d'autres sur ce site) comprennes l'impacte que tu as sur les centaines de membres qui viennent chercher de l'aide ici... J'ai appris récemment que j'avais été d'une grande aide à un membre de CadXP en VBA... Ça me flatte (c'est vrai), mais je ne pense pas avoir fais plus que du partage, pas comme vous autres "grands", qui distillez votre savoir et vos bons conseils, moi, je ne résout rien et je ne propose que de très petites choses, abordable à un très grand nombre. Bon, assez de lecture... Juste pour dire que, quand les grand de ce site, les Maîtres, les cadors, (et il y en a beaucoup), ce site devra compter sur ce qu'ils ont laissé... Longue vie à CadXP, et longue vie à ses membres... Denis (qui se replonge dans le Lisp pour son nouvel emploi, et là, c'est du sérieux...)... A+ -
Bonjour à tous, et bienvenue sur ce nouveau graphisme dû la la refonte de notre extrêmement aimé site CadXP... Perso, j'adore, même si je le trouve un peu trop "grand", car beaucoup d'info sur une page, mais j'adore... Donc, je ne suis pas venu ici pour tergiverser sur cette superbe "refonte"... (le 2.0, je ne peux que subventionner...). J'ai un souci, et j'ai beau faire des aller/retour sur la console, je ne m'en sors pas... Je suis en train de faire un Lisp que je croyais plutôt simple... Je cherche un fichier ("ECPS_Calques.LstCalq\") que je trouve... Grace à un "FindFile", je l'ouvre, Jusque là, pas de problème... Mais je ne sais pas pourquoi ça déconne... Voici mon bout de code pour trouver et ouvrir le fichier (ce fichier est trouvé et ouvert sans aucun problème) : (if (findfile "ECPS_Calques.LstCalq") (load "ECPS_Calques.LstCalq") (progn (princ "\nAttention, le fichier \"ECPS_Calques.LstCalq\" est introuvable ! ! !") (exit)) ;_ Fin de progn ) ;_ Fin de if (setq FichLstCalq (open (findfile "ECPS_Calques.LstCalq") "r") ) ;_ Fin de setq Ensuite, voici la structure du fichier lu : qui a pour extension "LstCalq" : Murs#7#Continu#035#O#Murs perimetriques et de refends Cloisons#121,129,211#Continu#025#O#Cloisonnements Aire Evac#5#Continu#018#O#Aire d'evacuation Construction#8#Continu#025#Polygone de construction (non imprimable) Mobilier"124,199,237#Continu#050#Mobilier intérieur et urbain Outils d'intervention#1#Continu#025#Exctincteurs, RIA... C'est tout simple... Nom du calque # Couleur # Type de ligne # Épaisseur et enfin # Commentaire... Mais voici la suite de mon code (j'utilise depuis des années les sous-routines de Maître (gile), je parle de Str2Lst... Voici mon code de lecture : Mais là où ça se complique, c'est que dans ce fichier de type TXT (ASCII), il y a des couleurs de 0 à 255 (aucun problème avec ça) mais il y en a aussi avec les trois couleurs primaires, et sont séparées par une virgule (fichiers joints), sauf si cette couleur fait partie des 255 premières couleurs d'AutoCAD... Selon les clients, il y a des couleurs dites "vrai", donc en trois variables, un mélange des trois couleurs primaires... J'ai essayé de faire un truc qui, en un premier temps, regarde si le texte de la couleur contient une virgule (car mon séparateur du TXT est un dièse) et si oui, j'agis différemment que si c'est une couleur "unique (de 0 à 255)... Mais je ne m'en sors pas... Je cherche depuis deux jours avec la console et tout, mais je n'arrive pas à voire d'où vient mon erreur... Si une bonne âme pouvait me porter secours, me conseiller, aurait une astuce... (didier, t'as vu, j'ai changer mon laïus...) Merci à toutes personne pouvant me venir en aide... Si Maître Gilles montre sont nez expert et Ô combien bienveillant (ou un autre expert), je le remercierais de bien me décrire sa démonstration, car pour toi, Ô Gilles c'est évident, pour nous, simples mortels, ce n'est pas si facile, et tous ne tiens qu'à un fil...
-
Je m'y fais, presque trop facilement... C'est un plaisir... Bon, je vais voir mon forum préféré, le Lisp et le V-Lisp... Mais pas seulement... Mais ce site est devenu très joli et agréable... Il faut le dire... Denis...
