-
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
-
Création de calques depuis un classeur Excel...
DenisHen a répondu à un(e) sujet de DenisHen dans Routines VBA
Regarde le format d'un DXF, il n'y a qu'une seule donnée par ligne, et c'est regroupé par "entête"... Et en plus, parfois, il y a parfois jusqu'à trois espaces avant la donnée, mais avec un Trim, ça devrait aller... Ce n'est pas si facile que ça, enfin pour moi... Mais ce n'est pas extraordinairement compliqué non plus... -
Création de calques depuis un classeur Excel...
DenisHen a répondu à un(e) sujet de DenisHen dans Routines VBA
Mille mercis @Curlygoth, ça je sais faire... Ce que je cherchais, c'était le "AcDbLinetypeTableRecord" et le code DXF = 2... -
Création de calques depuis un classeur Excel...
DenisHen a répondu à un(e) sujet de DenisHen dans Routines VBA
Salut à vous, et merci pour vos remarques. @rebcao : c'est bien mon idée, créer une ou plusieurs "configuration(s)" de calques dans un classeur Excel et, soit l'exporter directement dans AutoCAD (versions complètes) ou en faire un script (versions LT). Je suis tout à fait d'accord avec toi, je ne veux pas "laisser sur la touche" les utilisateurs d'LT. @Curlygoth : je cherche juste à ouvrir un DXF (comme un TXT via un Open tout simplement) en VBA et fouiller son contenu pour en sortir la liste des types de ligne définis dans ce DXF. je pense avoir trouvé un truc, chercher les "AcDbLinetypeTableRecord", code DXF 2... Encore merci à vous... Denis... -
Un grand merci à toi @(gile), je colle tout de suite ce raccourcis dans mes préférences...
-
Création de calques depuis un classeur Excel...
DenisHen a répondu à un(e) sujet de DenisHen dans Routines VBA
Salut l'ami, je n'ai pas compris ton message... Oui, je cherche a créer un fichier Excel qui créera des calques dans AutoCAD (Nom, Type de ligne, Couleur, Épaisseur, "plottable"...) directement ou pas, car j'aimerais le faire aussi pour les utilisateurs des version LT. Mais tu sais que recopier les nom des types de ligne (parfois des dizaines, voir des centaines) peut être très laborieux. Et pour bien faire, j'aimerais incorporer dans mon fichier Excel la liste des types de ligne contenu dans un DXF (très facile à faire depuis une LT), car je ne peut dialoguer depuis Excel avec un AutoCAD LT. Bonne soirée l'ami et je suis heureux que tu me propose ton aide. Denis... -
Création de calques depuis un classeur Excel...
DenisHen a répondu à un(e) sujet de DenisHen dans Routines VBA
Salut @Curlygoth. Je pense m'être mal fais comprendre. Je cherche à connaitre les types de lignes contenus dans un DXF, et en VBA... Car j'aimerais que mon code serve aux utilisateurs d'AutoCAD LT, et ton Lisp ne l'autorise pas... -
Merci (gile) pour ta réponse. En fait, j'aimerais éviter que l'utilisateur fasse lui-même cette liste (à la main), et la récupérer moi-même, à sa place. Je pensais donc ouvrir le DXF en mode ASCII directement en VBA et chercher les types de ligne définis dans le DXF grâce au code DXF et dans l'entête du fichier. D'après mes faibles souvenirs, ce serait après un "*LinetypeTable*" et le code DXF 2 ou 20 (je te l'ai dis, "mes faibles souvenirs"). Mais je ne suis sûr de rien...
-
Création de calques depuis un classeur Excel...
DenisHen a répondu à un(e) sujet de DenisHen dans Routines VBA
Salut la communauté. J'ai bien avancé sur mon projet et j'ai bien sûr pris toutes vos remarques en compte... Donc, je vais faire en sorte que mon fichier Excel sera pour tous les AutoCAD (LT et complet) ainsi que pour un maximum de versions. J'ai déjà commencé à faire un bout de code pour créer un Script pour les version LT, je vais aussi créer un code pour récupérer les types de ligne issues d'un fichier .lin (déjà fait) et un DXF (en cours). Car il faut impérativement que la syntaxe des noms soit respecté, et c'est beaucoup plus simple via un DXF. Enfin je pense... Je vais aussi faire un DVB (plus tard) pour lire directement le fichier Excel depuis AutoCAD, plus besoin d'avoir Excel sur le poste où se trouve AutoCAD. Je suis actuellement sur le mode d'emploi, car je pense qu'il ne sera pas de trop. Je reviendrais vers toi (la communauté) quand j'aurais une proposition un peu solide, une version Beta en gros. 😉 Pour l'instant, je continu mon code pour qu'il soit apte à recevoir ce tampon "Beta"...😉 Bien à toi, la communauté. Denis... -
Bonjour la communauté. Voilà, je cherche à connaitre, depuis un VBA sous Excel, les types de ligne "déclarées" dans un DXF. J'entends par "déclarées" tous les types de ligne du DXF, même si elles ne sont pas utilisées (dans un calque, pour une entité...). Je cherche dans un DXF pour que mon fichier Excel soit utilisable avec les version LT d'AutoCAD. J'ai déjà fais le code pour lire un fichier .lin, j'aimerais maintenant le faire avec un DXF, car un DWG serait rédhibitoire pour moi...😉 Bien à toi, la communauté. Denis...
-
Ok, je ne connaissais pas l'astuce de coder en premier en liaison anticipée, et, une fois le code satisfaisant, on le modifie pour l'adapter en liaison tardive... Je pense que c'est lors de cette phase que j'aurais sans doute besoin d'un peu d'aide... Car en liaison anticipé, je me débrouille, mais pas en liaison tardive... D'où mon post... Et c'est bien mon envie, ne faire que de la liaison tardive pour que mon projet puisse être utilisé par n'importe quelle version "complète" d'AutoCAD. Sans devoir référencer une bibliothèque... Donc, d'après ce que j'ai compris, la liaison anticipé est comprise par l'IDE, avec des aides sur la correction des objets, les propositions de méthodes, les infos bulles... Alors que dans les liaisons tardives, ça n'existe pas... Dans ton code "exemple", tu écris : Set color = acadApp.GetInterfaceObject("AutoCAD.AcCmColor." & Left(acadApp.Version, 2)) J'ai longtemps cherché la liste des "GetInterfaceObject", mais je n'ai trouvé que des trucs sur "Save & Restore layers", mais rien sur, par exemple, "AutoCAD.AcCmColor." ou autres, comme le type de ligne, l'épaisseur... Encore un grand merci @(gile) pour ton aide... Denis... PS : je pense avoir trouvé quelque chose, je peux partir de là ? -
Changer le type de ligne AutoCAD via VBA
DenisHen a répondu à un(e) sujet de julienetu06 dans VBA et VB
@julienetu06, tu es sérieux ? Tu es sous LT et tu cherche à faire du VBA ? Tu pourrais nous expliquer ? -
Salut à tous... J'ai bien fouillé le Orienté Object... Sur plein de site (le meilleur reste, à mon avis, Developpez.com) Mais j'ai beaucoup de mal avec ça... Je pense peut-être être à mon maximum de mes compétences, d'intelligences... J'ai bien lu, et longuement, les liaisons anticipées et les liaisons tardives... Mais j'ai beaucoup de mal à trouver les "mots clefs" VBA pour créer les bons Objets Orientés, tels que type de ligne, épaisseurs de ligne... J'ai fouillé l'aide AutoCAD VBA... Mais elle n'est pas très explicite... Je vais donc continuer à faire tel que je peut (et la sais, un peu) le faire, et vous me direz comment me passer de la librairie, si toutes fois est votre volonté... Je continu donc l'élaboration de mon fichier Excel, et je le posterais pour que vous puissiez me dire là où j'ai un manque... Ca vous tente ? Êtes-vous d'accord ? Denis... -
C'est chiant, mais c'est pour une quatrième...
DenisHen a répondu à un(e) sujet de DenisHen dans Pause café
Je vous tiens juste au courant... Ma nièce a eu un 19/20, elle a même été interrogée "au tableau" pour expliquer la solution aux autres... Merci encore beaucoup à vous tous... Denis... -
Chargement de type de ligne par macro
DenisHen a répondu à un(e) sujet de jifi dans Personnalisation, macros, DIESEL
Bonsoir @(gile), et merci pour ces liens, mais je me perdais dans les éventuels changements des slash et anti-slash, et/ou leur inversion, j'avais un vague souvenir de ce changement dans certaines situations... Encore merci à toi... Denis... -
Merci mille fois @(gile)... Mais je me rend compte qu'il faut que je me familiarise avec l'Orientation Objet, que je n'utilise absolument pas ! ! ! Et je vais corriger ça, j'ai déjà lu pas mal de trucs là-dessus (comme sur developpez.com, pas exemple)... Encore merci à toi... -
Bonjour @(gile) et merci pour ton aide. Oui, j'ai bien lu tes liens sur les liaisons anticipées et les liaisons tardives. J'air bien compris la différence entre les deux, mais je n'arrive pas tellement à les mettre en œuvre. Je pense qu'il me manque les "mots clefs autocadiens" pour la création des liens et surtout des objets, mais je continu de chercher dans l'aide AutoCAD. Tu m'avais envoyé un lien sur tout ce qu'il fallait savoir pour faire du Lisp dans AutoCAD, je cherche la même chose pour le VBA. Mais je vais trouver... Encore merci à toi. Denis... -
Création de calques depuis un classeur Excel...
DenisHen a répondu à un(e) sujet de DenisHen dans Routines VBA
Salut @Curlygoth, effectivement, je me suis probablement trompé, et depuis longtemps peut-être, au sujet du VBA AutoCAD<->Excel... J'ai toujours pensé que, d'où que vienne le code VBA (d'AutoCAD ou d'Excel), sa rapidité serait la même. Mais tu me dis qu'il est plus "court" et plus "rapide", et voir plus simple de fouiller un classeur Excel depuis AutoCAD que de "contrôler" AutoCAD depuis Excel. Je te remercie pour cette remarque, bien que je ne comprend toujours pas pourquoi un TGV irait plus vite de Marseille à Paris et pas l'inverse. Je vais donc revoir la totalité de mon projet, qui va se diviser en deux grâce à toi (et à d'autres) et j'espère que tu me permettra de te solliciter afin d'améliorer mon code... Pour gérer une BD, Ok, mais laquelle ? Quelle format ? Car les accès à une BD est très galère à gérer (même si très rapide une fois la "communication établie"), surtout en automation... Aucun SQL ou autre BD n'ont encore trouvé la solution... Maintenant, si en quelque lignes tu me prouves que l'accès à une BD est simple et facilement programmable en VBA, je suis preneur... Bien à toi la communauté. Denis... -
Bonjour à la communauté. @(gile) : de quels liens tu parles ? Je n'ai pas saisi. En outre, je progresse lentement, car je suis plus que débordé en ce moment. Mais je vais m'orienter, je pense, vers un classeur Excel qui gèrera les calques et avec une commande pour créer un fichier script (merci à @rebcao ), ce qui servira au plus grand nombre, je l'espère (pour les versions complètes comme des LT) et un DVB pour les autres qui lira un classeur Excel (merci à @(gile), à @Curlygoth...)... Car je n'ai pas encore trouvé comment remplacer tous mes appels au VBA AutoCAD dans Excel par des objets, comme dans : Dim layerObj As AcadLayer Dim DaRec As AcadXRecord Dim Dict1 As AcadDictionary, Dict2 As AcadDictionary Je cherche encore les renseignements pour changer tous les "DIM xxxx as AutoCAD..." et les remplacer par les mots clefs en faire des objets... Comme pour les types de ligne, la notion d'impression du calque, les couleurs (mais (gile) m'a donné la solution) et surtout les filtres de propriété de calques. Je continu de vous remercier, tous et toute la communauté... Bien à toi, la communauté... Denis... -
Et surtout : 'Création des filtres ------------------------------ NomFiltre = Sheets(NomFeuille).Cells(Lign, 54).Value If NomFiltre <> "" Then DaType(0) = 1: DaValue(0) = NomFiltre DaType(1) = 1: DaValue(1) = NomFiltre & "*" DaType(2) = 1: DaValue(2) = "*" DaType(3) = 1: DaValue(3) = "*" DaType(4) = 70: DaValue(4) = 0 DaType(5) = 1: DaValue(5) = "*" DaType(6) = 1: DaValue(6) = "*" Set Dict1 = DocAutoCad.Layers.GetExtensionDictionary Set Dict2 = Dict1.AddObject("ACAD_LAYERFILTERS", "AcDbDictionary") Set DaRec = Dict2.AddXRecord(NomFiltre) DaRec.SetXRecordData DaType, DaValue End If -
Encore merci à toi @(gile) pour ton aide. Mais je pense, pour mon projet, devoir tout remettre en cause... Je pense faire un Classeur Excel pour gérer la nomination de calque (avec couleur, type de ligne...) et d'y inclure un export script (je pense toujours aux utilisateurs de LT) et ne rien faire d'autre, en fait... Et le fichier script sera toujours disponible dans toutes les versions d'AutoCAD... Mais j'aimerais garder le lien entre AutoCAD<->Excel pour récupérer les types de lignes, par exemple, au moins dans un classeur Excel... Qu'en pensez-vous ? -
C'est chiant, mais c'est pour une quatrième...
DenisHen a répondu à un(e) sujet de DenisHen dans Pause café
Je suis bien d'accord avec toi (gile), mais au vu de la complexité volontaire de l'énoncé, j'ai aussi eu du mal, au début, mais j'en étais venu au même résultat que vous... Car j'avoue que cet énoncé n'était pas tellement clair... Mais j'ai réussi à l'expliqué à ma nièce... Et je vous remercie d'avoir été présent pour ce petit chalenge divertissant... Mais (gile) : il me semble que c'était ta profession auparavant (ou quelque-chose dans ce genre), non ? -
C'est chiant, mais c'est pour une quatrième...
DenisHen a répondu à un(e) sujet de DenisHen dans Pause café
Un grand merci à @(gile), et quelle bel exposé... Est-ce une sujet digne et compréhensible par un élève de 4ème ? Car ça me parait beaucoup plus pointu... Non ? -
Salut à la communauté... Je suis tombé sur un problème de ma nièce, c'est imbouffable et elle est en quatrième, en plus, ils lui demandent des explications... Voici le truc : J'ai essayé, mais je n'y arrive pas... Et vous ? Et en plus, il faut expliquer le résultat ! ! !
-
Bonjour à la communauté. Voilà, j'ai un mal fou pour créer des "As Objet" pour les calques, le type de ligne, la couleur... Mais j'ai un autre petit souci, que faire avec : 'Création des filtres ------------------------------ NomFiltre = Sheets(NomFeuille).Cells(Lign, 54).Value If NomFiltre <> "" Then DaType(0) = 1: DaValue(0) = NomFiltre DaType(1) = 1: DaValue(1) = NomFiltre & "*" DaType(2) = 1: DaValue(2) = "*" DaType(3) = 1: DaValue(3) = "*" DaType(4) = 70: DaValue(4) = 0 DaType(5) = 1: DaValue(5) = "*" DaType(6) = 1: DaValue(6) = "*" Set Dict1 = DocAutoCad.Layers.GetExtensionDictionary Set Dict2 = Dict1.AddObject("ACAD_LAYERFILTERS", "AcDbDictionary") Set DaRec = Dict2.AddXRecord(NomFiltre) DaRec.SetXRecordData DaType, DaValue End If Faut-il le "Type Library" ? Ou, comment faire ? Car là, je ne sais absolument pas quoi faire... Je me noie déjà dans un verre d'eau pour suivre les conseils (toujours très avisés) de (gile), mais là... -
Salut à la communauté. J'ai aussi, comme Curlygoth, installé systématiquement les modules VBA dans tous les AutoCAD que j'utilisais (depuis que cette installation était séparée de l'installe d'AutoCAD), pour la simple et bonne raison que je faisais déjà du BASIC en 1992 et j'ai continué en VB6 et VBA pour les programmes MSOffice, par exemple. J'ai donc plus fais du VBA que du Lisp. Et je suis toujours resté ancré dans ce langage VBA, que je comprends mieux que le Lisp. Ce qui ne m'empêche pas d'avoir fais des centaine de programmes Lisp (grace à CadXP)... Mais c'est juste et uniquement pour AutoCAD, c'est presque un langage "dédié", je ne connais pas d'autre logiciel qui utilise le Lisp... Alors que le VBA, on l'utilise très souvent avec des logiciels plus "communs", comme Word, Excel, PowerPoint, Acces... Bien à toi, la communauté. Denis...
