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. Effectivement, dans la Console, ça à l'air de fonctionner : _$(setq ename (car (entsel "\nSélectionner un coutour : "))) nil <Nom d'entité: 255e093c900> _$ _$ (getpropertyvalue ename "Area") 4909.63 _$
  2. J'ai oublié de précisé que j'ai bien (vl-load-com) de "chargé"...
  3. Je fais mes testes généralement après le chargement du Lisp dans AutoCAD, de cette façon, la Console me dit immédiatement si le code est chargé, donc correcte. Mais pour les codes courts, je le fais à la Console, là, j'ai ça : _$(setq ename (car (entsel "\nSélectionner un coutour : "))) nil <Nom d'entité: 255e093c900> _$
  4. J'ai donc essayé de faire de ma sélection un objet vla, mais je ne sais pas si j'ai bien compris le truc : (setq ename (car (entsel "\nSelectionner un contour : "))) (setq aire (vlax-get-property (vlax-ename-> vla-object ename) 'area)) (princ "\nAire=") (princ aire) Mais j'ai le même résultat, rien...
  5. Bonjour (gile) et merci pour ton aide. J'ai essayé plusieurs trucs mais je n'obtient rien. Je te mets le détail de mes essais, je ne vois pas où je me trompe : (setq ename (car (entsel "\nSelectionner un contour : "))) (princ "\nAire=") (princ (vla-get-area ename)) (princ (vlax-get ename "area")) (princ (getpropertyvalue ename "area")) Je n'ai aucune réponse, même pas un nil... Je vais chercher une autre solution si je n'y arrive pas. Denis...
  6. Bonjour à la communauté. Je cherche à faire un peu la même chose. Mais juste cliquer une polyligne pour n'avoir que sa surface... J'ai vu le super truc qu'à fait (gile) avec TotalArea, mais je n'ai pas besoin de tant. Je ne sélectionne qu'une et unique polyligne à la fois et n'ai pas besoin de bloc, juste un texte unique. J'ai commencé un code que je ne posterais pas, car encore à l'état de brouillon... Si quelqu'un à la solution de récupérer l'aire d'une polyligne après sa sélection, je suis preneur. Bonne soirée à toutes et à tous. Denis...
  7. Ok, tu cherches à me vexer... Impérative, polymorphe sont des termes que je ne connais pas, même si je les utilise... Devrais-je me tourner vers d'autres publications ? Quelles sont les tiennes, par exemple ?
  8. Je l'ai bien compris CurlyGoth, mais je développe pour moi, ensuite, pour ma boite, et ensuite, je partage mon code... Je ne vend rien, et je le ferais peut-être un jour, mais j'en doute... Je cherche à développer pour moi, et ensuite, pour les autres, pour partager... Mon premier but est de programmer pour moi, Mais quand je peut partager, je le fais volontiers… Et développer mes prog en VS serait une bonne solution pour partager mes codes avec le plus grand nombre... Mon partage date de Napster (ses débuts, au commencement des années 90), l'époque où le partage avait une valeur, un sens... Que j'ai gardé (pendant toutes ces années), mais que les jeunes n'ont pas vu et ne connaissent pas... Tu partages veux dire, je donne, tu prends et tu donnes... Et non, tu prends et c'est tout... C'est une autre mentalité... Je ne suis pas contre, je ne suis juste pas d'accord... Dans ma signature, il y a Socrate : La connaissance s'accroît quand on la partage...
  9. Merci pour ton aide (gile), je suis bien tenté par ce bouquin, mais je te donne la critique d'un membre d'Amazon (avec tout ce que ça comporte" :
  10. J'ai trouvé "C# 8 et Visual Studio 2019 - Les fondamentaux du langage" de Sébastien PUTIER... Il y a aussi "Apprendre la Programmation Orientée Objet avec le langage C# (3e édition)" de Luc GERVAIS.
  11. Bonjour (gile), et merci pour tous ces conseils, (tu m'avais déjà conseillé le C#), je compte m'y mettre sérieusement, car si tu me conseil "d'abandonner" le VB, je vais bien devoir m'adapter. Tes conseils étant toujours judicieux... Aurais-tu un bouquin "pour les nuls" ou dans ce genre sur le C# (un auteur, un éditeur...), je sais que développer.com (par exemple, mais je n'ai trouvé que du C+ et du C++, pas du C#) est très fournit en formations, initiations et exemples, mais avoir un livre à coté de soi est, je pense, un plus... Au temps du VB6, j'avais un "dictionnaire" sur le VB6, il m'a permis de faire bien des choses et d'appréhender le VBA beaucoup plus facilement... En tous cas, un grand merci à toi pour tes conseils et tout ce que tu fais pour nous... Bon dimanche à la communauté. Denis...
  12. Bonjour à toutes et à tous... Je me suis remis récemment au VBA et je pense judicieux de me mettre à VisualStudio, en VB. D'où cette première question, j'ai fais des .dvb, et je me posais la question si on pouvait les exploiter dans VisualStudio. Faut-il exporter depuis le VBA d'AutoCAD les .frm et .bas pour les importer dans VS ? Bon dimanche à la communauté. Denis...
  13. On est bien d'accord Fraid, il y a plein de méthodes de travail, mais je me fis à mon expérience, qui n'est que d'une petite trentaine d'années, on est d'accord... J'ai toujours été le référent AutoCAD dans tout les boulots que j'ai eu, Et je m'en félicite, j'ai toujours apporté un grand sens de l'ordre et de la structure des DWG... Maintenant, si tu as des observations à apporter à mon moulin, je serais ravi de les lire... Plusieurs cerveaux valent mieux qu'un...
  14. "vous dessiner vos niveaux dans le même dwg et superposé? " Déjà tu me vouvoies, ça me vexe (mais pas tellement en fait...), sauf si le "vous" s'adresse à mes collègues et moi... Deuxièmement oui, tous les niveaux se situent sur le même fichier et sont tous superposés, on est dans AutoCAD, pas sur Corel ou Illustrator... Tous les niveaux sont dans leurs calques bien rangée et ont la même géolocalisation... Le mur du 14ème étage se superpose avec celui du Rez-de-chaussée... Je ne vois rien à redire là-dessus... Si ? Ensuite, on travaille avec des tonnes de niveaux (IGH, ERP...) donc oui, tout est superposé, je ne vois pas d'autres solutions. Je travaille sur AutoCAD depuis le début des années 90 et c'est ce que j'ai entendu depuis presque 30 années maintenant... Tout doit être à la même place, seul les calques gèrent les niveaux... C'est pour cette simple et bonne raison que j'ai un "gabarit" en .csv qui regroupe la totalité des calques dont on pourrait avoir besoin... Mais je me refuse à créer tous les calques de tous les niveaux (dont nous n'avons pas forcément besoin, je ne vois pas pourquoi je devrais créer les calques du 14ème étage alors que mon bâtiment n'en fait que trois...) que j'ai fais ce Lisp, il ajoute les calque nécessaires et pas les autres... Oui, je veux instaurer UN fichier pour toute l'étude, un niveau, deux, vingt, pareil, tout dans le même DWG... Ensuite, je gère tout depuis des LiSP, et c'est entre autre que je rapatrie des calques depuis un CSV et non depuis un Gabarit ou un DesignCenter... J'ai une trame de calque que je renomme selon le niveau (étage) courant, défini par un autre LiSP... Mon mentor me l'a appris comme ça... "Le même bâtiment, le même fichier..." Maintenant, si tu as des arguments, je suis preneur (je pense toujours à Maître didier quand j'écris ces mots)... Bon week-end à toute la communauté. Denis...
  15. Salut Fraid. Mes calques sont tous dans un ou plusieurs .csv, mais lors de leur création, je les renommes "en partie", exemple, le calque "ECPS_000_BATI" devient "ECPS_00_000BATI", car le "00" est une variable pris sur un XData qui est le niveau courant du dessin... Exemple, le niveau courant est "01" (premier étage déclaré dans un XData), j'insert le calque "ECPS_000_BATI" et le renomme en "ECPS_01_000_BATI", et ça, aucun gabarit ou aucun DesignCenter ne le fera... Merci pour ton intervention, mais je m'y attendais 😛 Denis...
  16. Bonsoir à toute la communauté. @(gile), je ne ferais jamais ö grand jamais faire quoique ce soit pour cherché à te vexer, tu nous a tellement appris à tous, même aux plus grands... Je me suis juste aperçu que j'ai essayé le Lisp, mais je ne peux pas aller plus loin, j'ai bien appris, grâce à toi, à vous, membre de CaxXP (je pense à didier, Tramber, BonusCAD, RebCAO, Patrick...)... J'en suis désolé, mais j'ai essayer, n'ayant pas l'aide appropriée (vous m'avez tellement apporté, mais peut-être était-ce insuffisant, je veux dire que tout le monde ne né pas pédagogue, ni élève... C'est très difficile d'apprendre à quelqu'un... Malgré votre aide à tous...Mais Diriger systématiquement les demandeurs vers Google, je serais le faire pour les demandeurs de Cobol... Tu cherche un code : Google est ton ami, tu pisse bleu : Google est ton ami, ton père te viole tous les jours à 23 heure depuis tes 9 ans ? Google est ton ami...) Il y en a marre de "Google est ton ami", si on poste une demande, croyez-vous que nous n'avons pas cherché au moins un minimum ? Ici, on cherche des réponses, pas des leçons de Dieu Google... Soyez serviables les amis (es) vous avez le savoir, partagez-le, c'est ce qu'ont vient chercher ici, une petite phrase, un indice, un conseil, une astuce (@didier, si tu me lis, une pensée pour toi), c'est tous ce que l'on cherche, une direction, et pas... "Google et ton ami". J'en ai fais la piètre expérience aujourd'hui, je cherchais des réponses, des conseilles, mais j'ai eu le droit à, attention, c'est du lord... : "Google est ton ami"... Et tu fais quoi avec ça ? Je cherchais en VBA une boite de dialogue pour ouvrir un fichier depuis le VBA d'AutoCAD... Je pensais que l'auteur du "Google est ton ami" savait que j'allais trouver ce que je cherchais... Mais non, Il a juste dis : "Google est ton ami"... Et je n'ai absolument rien trouvé en deux heures de recherche, et après, il ne m'a pas plus aidé... Donc, maintenant, dès qu'il y aura un Topic, un message, une question, devrai-je répondre systématiquement : "Google est ton ami" ? Ou vais-je l'aider réellement ? Qu'est-ce que je cherche quand je pose une question sur ce forum ? Une réponse ou "Fais pas chier et cherche dans Google" (même si tu as déjà cherché pendant des heures) je m'en branle, je fais mon intéressant pour me sentir au dessus des autres... Donc ma réponse est : Cherche connard... Mais je ne ferais rien. Je ne partage pas ma connaissance et je ne t'aiderais pas... Ma réponse, tu la connais : démerde-toi... Ici, je ne t'aiderais pas... Ce n'est pas la politique de CadXP, que je connais depuis 2005 (il me semble), ici on partage, on aide, on dirige, on oriente... On est les uns avec les autres... Je n'ai jamais renié de l'aide quand je pouvais le faire... C'est l'esprit Socrate : "La connaissance s'accroît quand on la partage". 7Mais je vois que certains l'on oublié... Je n'en veux à personne, je ne regrette rien, je connais juste des être extraordinaire via ce site (je ne citerais pas de non, mais ils savent qu'ils sont là)... Mais s'i vous plaît, plus de "Google est ton ami", PUTAIN, vous croyez quoi, que nous n'avons pas cherché un minimum avant de s'abaisser à vous demander de l'aide ? ? ? Un Denis énervé après un "Google est ton ami"... Bon Week-end à la communauté...
  17. J'y vais de ce pas...
  18. Salut @didier. "Admettons, je ne suis pas convaincu" je n'ai pas compris, j'espère que tu dis du mal de moi... 🤣
  19. Salut CurlyGoth. Pas de problème, montre-moi une boite de dialogue pour ouvrir n'importe quel fichier depuis le VBA d'AutoCAD (comme FileDialog d'Excel), sans charger une référence externe (comme celle d'MS-Office par exemple). Pour être clair, comment ouvres-tu une boite de dialogue "Ouvrir" depuis le VBA d'AutoCAD sans autre aide ou MSO ? En "natif" AutoCAD VBA.
  20. Bonjour didier (ça faisait longtemps, souviens-toi, "Si quelqu'un a une astuce, un conseil ou même une solution, je suis preneur".😊). Premièrement, j'ai appris le VBA sous Excel, et j'ai fais des trucs très intéressant sous Excel pour piloter AutoCAD. Mais ça, c'était avant (1994 ? mes début dans la programmation)... Deuxièmement, j'aurais voulu ouvrir un .csv contenant une liste de calques avec différentes données et les créer dans AutoCAD. J'ai commencé avec du LiSP mais je me suis heurté à mon manque de compétences... Tout est sur ce fil. Maître (gile) m'a bien sous-entendu clairement (qu'aurait-il pu faire de plus) que je m'attaquais à gros, notamment les code DXF 1000 (les descriptifs des calques), qui, d'après ce que j'ai compris sont des sous DXF du code DXF -3, ne me demande rien de plus, je suis perdu. Je pense donc avoir atteint mes limites en LiSP. Mais je ne le dénigre pas pour autant, je continuerais le LiSP (j'adore), je connais maintenant mes limites dans ce langage (y compris Lambda et MapCar 😉). Je me tourne donc maintenant vers mes "racines", le VBA que je connaissais bien avant de faire du LiSP, mais le VBA de MS-Office est bien différent de celui d'AutoCAD... Par exemple, il n'y a pas (dans le VBA d'AutoCAD) de boite de dialogue pour ouvrir un fichier, je n'ai absolument rien trouvé là-dessus, et j'ai cherché toute l'après-midi... En tous cas, je te souhaite une bonne soirée et un bon week-end, si tenté que tu en ai un... Amicalement. Denis...
  21. Bonjour Fraid et merci pour ton aide. Je me suis diriger vers le VBA parce-que, justement, je n'arrive pas à ce que je veux faire sous LiSP, je me tourne donc vers mes "racines", le VBA... Je vais de ce pas sur Google... Bon week-end à la communauté. Denis...
  22. Bonjour à tous. Je me remets petit à petit au VBA et je cherche la commande FileDialog qui existe en VBA pour MS-Office mais je n'ai rien trouvé. Existe-t-elle pour AutoCAD ? Si non, y-a-t 'il un équivalent ? Bonne journée à la communauté. Denis...
  23. Merci à vous deux pour votre aide, ça m'aide beaucoup. @Luna Il me semble que (setvar 'CLAYER "0") ne fonctionne pas si le calque est gelé. Mais je vais controler mes dires. Je vais utiliser le lien de (gile) pour toutes tes remarques judicieuses. 😉 @(gile) : mille mercis pour ton lien, je l'avais perdu. ☹️
  24. Bonjour (gile) et merci pour ton aide. J'ai cherché "Reference de l'aide aux développeurs" sur le site AutoDesk, mais je n'ai rien trouvé. Je sais qu'un jour, tu avais posté le lien sur CadXP, mais je n'ai pas retrouvé ce message. L'aurais-tu encore ? Oui, je fais beaucoup de testes, surtout dans la console, ce qui me permet d'éviter pas mal de questions, et je fini par trouver les réponses seul. Encore merci au forum. Denis...
  25. Merci Luna pour ton aide précieuse... voilà ce que j'ai fini par écrire, mais aucun calque ne se créé ? ? ? ;;; ***************************************** ;;; Création des calques du niveau courant ;;; ***************************************** (defun c:ECPS_CreaCalqCourant (/ doc CherchFich Fichier FichLstCalq lstCalqLine nomCalque line) (princ "\nDéveloppé par Denis H. (1.0)") (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (command "-calque" "e" "0" "") ;; Sélection du fichier de configuration... (setq Fichier (getfiled "Sélectionner un fichier 'Config-calque'" "" "csv" 0)) (if (setq CherchFich (findfile Fichier)) (load Fichier) (progn (princ "\nAttention, le fichier \"ECPS_Calques.csv\" est introuvable ! ! !") (exit)) ;_ Fin de progn ) ;_ Fin de if (setq FichLstCalq (open Fichier "r")) ;_ Fin de setq (setq LstCalqLine (read-line FichLstCalq)) ; Lecture de la ligne d'entête (while (setq LstCalqLine (read-line FichLstCalq)) (setq ListLine (cons (str2lst LstCalqLine ";") ListLine)) ) ;_ Fin de while (close FichLstCalq) ;;; (entmake '((0 . "CIRCLE") (62 . 3) (10 4.0 4.0 0.0) (40 . 1.0))) ;; 0 Type d'entité ;; 2 Nom du calque ;; 60 Visibilité de l'objet ;; 62 Numéro de couleur ;; 290 Drapeau de traçage. S'il est défini sur 0, ne tracez pas ce calque ;; 370 Valeur d'énumération d'épaisseur de ligne ;; 420 Valeur de couleur sur 24 bits, exprimée à l'aide de trois octets dont la valeur est comprise entre 0 et 255. ;; Le premier octet représente la valeur de la couleur bleue, l'octet intermédiaire celle de la couleur verte et le troisième celle de la couleur rouge. ;; L'octet de poids fort a toujours pour valeur 0. Le code de groupe ne peut pas être utilisé par des entités personnalisées pour leurs propres données ;; car il est réservé pour AcDbEntity (données de couleur de niveau classe) et AcDbEntity (données de transparence de niveau classe). ;; 1000 Commentaire ;; (entmake '((0 . "LAYER") (8 . "Test") (60 . 1) (62 . 6) (290 . 1) (370 . 5) (1000 . "Commentaire"))) ;; pour chaque sous-liste (ligne) (foreach line Listline (setq nomCalque (car line)) (if (null (tblsearch "LAYER" nomCalque)) (entmake (list (cons 0 "LAYER") ; Type d'entité (cons 2 nomCalque) ; Nom du calque (cons 100 "AcDbSymbolTableRecord") (cons 100 "AcDbLayerTableRecord") (cons 6 (nth 2 line)) ; Type de ligne ;(cons ? (nth ? line)) ; Épaisseur de ligne (cons 62 (atoi (nth 1 line))) ; Couleur (cons 70 1) ; État du tracé (cons 290 1) ;état du calque ) ;_ Fin de list ) ;_ Fin de entmake ) ;_ Fin de if ) ;_ Fin de foreach (vla-endundomark doc) (princ) ) ;_ Fin de defun Et voici un petit extrait de mon fichier .csv : Nom;Couleur;Type de ligne;Epaisseur de ligne;Tracer;Description; ECPS-000_BAT BETON;1;CONTINUOUS;18;T;; ECPS-000_BAT ESCALIER-ASC;3;CONTINUOUS;18;T;; ECPS-000_BAT FONDATION;13;CONTINUOUS;18;T;; ECPS-000_BAT GAINES;52;CONTINUOUS;18;T;; ECPS-000_BAT MACONNERIE;233;CONTINUOUS;18;T;; ECPS-000_BAT POUTRE;40;CACHE;18;T;; ECPS-010_BAT ALLEGE-ACRO;31;CONTINUOUS;18;T;; ECPS-010_BAT ARRIERE PLAN;9;CONTINUOUS;18;T;; ECPS-011_BAT AXES;8;AXES;18;T;; ECPS-012_BAT AXES REPERES;8;CONTINUOUS;18;T;; ECPS-012_BAT AXES REPERES COTE;8;CONTINUOUS;18;T;; ECPS-013_BAT HACHURE PLAN;9;CONTINUOUS;18;T;; ECPS-013_BAT HACHURE PORTEUR;41;CONTINUOUS;18;T;; ECPS-013_BAT POCHAGE PLAN;7;CONTINUOUS;18;T;; ECPS-014_BAT ASSISE COUPE;7;CONTINUOUS;18;T;; ECPS-014_BAT TRAIT COUPE;7;CONTINUOUS;18;T;; ECPS-015_BAT FACADE PLAN 1;60;CONTINUOUS;18;T;; ECPS-015_BAT FACADE PLAN 2;63;CONTINUOUS;18;T;; ECPS-015_BAT FACADE PLAN 3;251;CONTINUOUS;18;T;; ECPS-015_BAT POCHAGE;57;CONTINUOUS;9;T;; J'avoue ne plus rien comprendre, pour l'instant. Si quelqu'un a le code DXF pour l'épaisseur du type de ligne, je suis preneur... Merci encore ) toutes et à tous pour votre aide. Denis...
×
×
  • 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é