-
Compteur de contenus
292 -
Inscription
-
Dernière visite
-
Jours gagnés
1
jms a gagné pour la dernière fois le 1 juin 2015
jms a eu le contenu le plus aimé !
Contact Methods
-
AIM
1
Visiteurs récents du profil
Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.
jms's Achievements
-
C'est une version installée il y a quelques semaines Map 3D 2024 Concernant la limite de 10 DWGs, je n'ai pas encore testé avec des plans d'autres bâtiments plus légers. Celui-ci contient en moyenne 150 calques par DWGs pour un poids moyen de 8 à 9 MB.
-
Voilà ma conclusion actuelle. Si j'attache 10 DWGs au hasard parmi les 18, ça marche. Si j'en ajoute un 11ème...ça ne marche plus ! A défaut d'avoir compris pourquoi cette limite, je m'en satisferai pour l'instant et il me suffira de phaser le reporting en deux temps...
-
Salut Lecrabe, Avant de lire ta réponse, j'essayais un truc, qui fonctionne, mais qui reste un sacré détour ! J'ai fait le test sur 3 des 18 plans : j'isole le calque concerné et copie/colle son contenu dans un DWG vierge. Ça fait 3 nouveaux DWG, légers et propres...et bien sûr la requête fonctionne sans problème, et j'obtiens toutes les infos. pour tes questions : 1) Tous les 18 DWG sont opérationnels mais ça n'exclut pas qu'ils puissent contenir des erreurs. Je n'ai pas encore lancé de RECUPERER, mais je vais tester, sait-on jamais. 2) et 3) les noms de répertoires et DWGs sont simples : C:\SJCJ\ENGIE-GBS\DRAWINGS\ebl_g_-1_fm.dwg C:\SJCJ\ENGIE-GBS\DRAWINGS\ebl_g_-2_fm.dwg C:\SJCJ\ENGIE-GBS\DRAWINGS\ebl_g_00_fm.dwg C:\SJCJ\ENGIE-GBS\DRAWINGS\ebl_g_01_fm.dwg C:\SJCJ\ENGIE-GBS\DRAWINGS\ebl_g_02_fm.dwg C:\SJCJ\ENGIE-GBS\DRAWINGS\ebl_g_03_fm.dwg C:\SJCJ\ENGIE-GBS\DRAWINGS\ebl_g_04_fm.dwg C:\SJCJ\ENGIE-GBS\DRAWINGS\ebl_g_05_fm.dwg C:\SJCJ\ENGIE-GBS\DRAWINGS\ebl_g_06_fm.dwg C:\SJCJ\ENGIE-GBS\DRAWINGS\ebl_g_07_fm.dwg C:\SJCJ\ENGIE-GBS\DRAWINGS\ebl_g_08_fm.dwg C:\SJCJ\ENGIE-GBS\DRAWINGS\ebl_g_09_fm.dwg C:\SJCJ\ENGIE-GBS\DRAWINGS\ebl_g_10_fm.dwg C:\SJCJ\ENGIE-GBS\DRAWINGS\ebl_g_11_fm.dwg C:\SJCJ\ENGIE-GBS\DRAWINGS\ebl_g_12_fm.dwg C:\SJCJ\ENGIE-GBS\DRAWINGS\ebl_g_13_fm.dwg C:\SJCJ\ENGIE-GBS\DRAWINGS\ebl_g_14_fm.dwg C:\SJCJ\ENGIE-GBS\DRAWINGS\ebl_g_15_fm.dwg
-
Bonjour, Je viens de lancer une requête extrêmement simple, dans Autocad Map 3D 2024. J'attache 18 plans et formule ma requête avec un seul critère, concernant le nom du calque. Je sais que ce calque, dans les 18 plans réunis, totalise ±12.000 blocs, et je souhaite les exporter dans un fichier *.txt. Tout ce que je demande, c'est le DWGNAME, BLOCKNAME et EHANDLE. Le fichier est bien créé, la quantité de lignes est de l'ordre de grandeur attendue, j'obtiens bien les BLOCKNAME et EHANDLE, mais seul le nom du premier DWG sur les 18 apparaît ! Extrait du txt, où on voit que le DWGNAME s'arrête... C:\SJCJ\ENGIE-GBS\DRAWINGS\EBL_G_00_FM.dwg;SGT_ORU;172B13CF C:\SJCJ\ENGIE-GBS\DRAWINGS\EBL_G_00_FM.dwg;SGT_ORU;172B13D4 C:\SJCJ\ENGIE-GBS\DRAWINGS\EBL_G_00_FM.dwg;SGT_ORU;172B13D7 C:\SJCJ\ENGIE-GBS\DRAWINGS\EBL_G_00_FM.dwg;SGF_IKEA-POANG;172B15BA C:\SJCJ\ENGIE-GBS\DRAWINGS\EBL_G_00_FM.dwg;SGP_IKEA-POANG;172B15C4 ;POUBELLE_3TRIS;151C48F6 ;BR_160_80_ELEC;151C3395 ;BR_160_80_ELEC;151C3396 ;BR_160_80_ELEC;151C3397 ;T_TEDES_80_80;151C49C0 ;Framery-Q;151C03AC Pour éviter tout problème d'instabilité éventuelle du réseau, je travaille sur des copies des DWG sur mon disque local, et le fichier txt est également créé en local. Quelqu'un a déjà rencontré ce problème ?
-
Macro VBA, dans Access, pour exportation de propriétés de bloc (via ChatGPT...)
jms a répondu à un(e) sujet de jms dans AutoCAD 2020-2024
-
Macro VBA, dans Access, pour exportation de propriétés de bloc (via ChatGPT...)
jms a répondu à un(e) sujet de jms dans AutoCAD 2020-2024
Merci Didier ! Je viens de tester et me suis permis une adaptation indispensable dans mon environnement, du moins si je veux l'ouvrir dans Excel. Pour les coordonnées des blocs, j'ai remplacé les points par des virgules (bon...j'ai un peu ChatGPTé pour trouver la bonne syntaxe !). Je vais prendre le temps de lire chaque ligne pour en apprendre davantage, vu que je sais encore très peu de chose sur la syntaxe en Autolisp. Rien que définir sans faute mon jeu de sélection : je ne connais pas les signification des codes numériques dans l'expression (cons ... J'imagine (cons 0 ... indique le type d'objet ; con 1... je ne sais pas ; cons 2 visiblement le nom du bloc (mais si le type d'objet n'est pas un bloc, quid cons 2 ?) etc... On dirait que je viens enfin de mettre un doigt dans l'engrenage LSP, continent vierge où j'ai tout à découvrir ! Je n'ai pas encore trouvé de lexique complet et j'ai malheureusement peu de temps à y consacrer. Comme on disait quand je travaillais en atelier d'architecture, je suis "en charrette", ces temps-ci 😉 Pour l'équivalent en VBA, ce n'est pas nécessaire; j'ai pu faire un module dans Access qui lance le LSP. jms-02.lsp -
Macro VBA, dans Access, pour exportation de propriétés de bloc (via ChatGPT...)
jms a répondu à un(e) sujet de jms dans AutoCAD 2020-2024
C'est vraiment sympa, merci ! -
Macro VBA, dans Access, pour exportation de propriétés de bloc (via ChatGPT...)
jms a répondu à un(e) sujet de jms dans AutoCAD 2020-2024
On pourrait essayer un LSP (j'arriverai à le lancer depuis Access). Voici un exemple quelconque de DWG, qui ne correspond à rien, dans mes activités, mais qui suffit pour le test. Les deux fichiers Xlsx contiennent ce que la macro me produit actuellement dans Access. La table sommets produit correctement les coordonnées des sommets des polylignes. La table Points me liste bien les blocs mais il manque les coordonnées, qui restent à 0,0. Drawing1.dwgPoints.xlsxSommets.xlsx -
Macro VBA, dans Access, pour exportation de propriétés de bloc (via ChatGPT...)
jms a répondu à un(e) sujet de jms dans AutoCAD 2020-2024
Il y a plusieurs collaborateurs, autour de moi, qui disposent d'une licence Autocad, mais ne l'utilisent que pour de simples consultations (TrieView serait tout aussi efficace !) Je cherche juste à centraliser un maximum d'outils dans une interface commune. -
Macro VBA, dans Access, pour exportation de propriétés de bloc (via ChatGPT...)
jms a répondu à un(e) sujet de jms dans AutoCAD 2020-2024
Bonjour Didier, Je comprends fort bien ce retour, et je peux confirmer que l'apprentissage via ChatGPT n'est sans doute pas la meilleure solution. Depuis une semaine que je "dialogue" avec cette I.A., j'ai eu plusieurs fois l'occasion de la corriger. Par exemple en lui notant qu'une fonction proposée dans une macro n'existe tout simplement pas ("Vous avez raison, cette fonction n'existe pas. Nous allons essayer une autre méthode..."). Mais c'est peut-être aussi ces imperfections qui peuvent être prises positivement, dans la mesure où je dois rester vigilant et donc, apprendre à comprendre chaque ligne de code. Quant à Access, je voudrais passer par cette interface, comme point de départ, car elle sera suceptible d'être utilisée par d'autres personnes, qui ne travaillent pas nécessairement sur Autocad. Et aussi parce qu'elle inclut des tables liées à une DB SQL Server qui alimente Archibus. -
Salut, J'ai énormément à apprendre, en VBA, et je passe par ChatGPT, pour développer une macro à titre d'exercice. Le but est d'importer dans deux tables d'une DB Access, entre autres propriétés, les coordonnées des sommets de toutes les polylignes d'un DWG ainsi que les coordonnées des points d'insertion de tous les blocs de ce DWG. Pour les polylignes, j'ai fini par trouver l'erreur de ChatGPT, qui devait juste remplacer les virgules par des points, avant d'importer dans la table, et ça marche. Pour les blocs, par contre, il tourne en rond pour en extraire les coordonnées. La macro m'en affiche bien la liste complète mais avec des coordonnées X,Y à 0,0 pour chaque bloc. Si quelqu'un voit la faille, voici la macro : Sub ExportVerticesAndPoints() Dim acadApp As Object Dim acadDoc As Object Dim entity As Object Dim polyline As Object Dim vertices As Variant Dim i As Integer Dim dbPath As String Dim accessConn As Object Dim sql As String Dim dwgFile As String Dim eHandle As String Dim order As Integer ' Numéro d'ordre des sommets ' Chemin vers la base de données Access dbPath = "C:\JMS\Formations\Chat-GPT\Création de hachures et polylignes\Infer.accdb" ' Se connecter à AutoCAD déjà ouvert On Error Resume Next Set acadApp = GetObject(, "AutoCAD.Application") If acadApp Is Nothing Then MsgBox "AutoCAD n'est pas ouvert. Veuillez ouvrir AutoCAD et réessayer.", vbCritical Exit Sub End If On Error GoTo 0 ' Récupérer le document actif dans AutoCAD If acadApp.Documents.Count = 0 Then MsgBox "Aucun document ouvert dans AutoCAD. Veuillez ouvrir un fichier DWG.", vbCritical Exit Sub End If Set acadDoc = acadApp.ActiveDocument ' Obtenir le nom du fichier DWG dwgFile = acadDoc.FullName ' Créer une connexion à Access Set accessConn = CreateObject("ADODB.Connection") accessConn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath & ";Mode=Share Deny None;" ' Vider les tables Sommets et Points avant d'insérer de nouvelles données Dim deleteSQL As String deleteSQL = "DELETE FROM Sommets" accessConn.Execute deleteSQL Debug.Print "Table Sommets vidée." deleteSQL = "DELETE FROM Points" accessConn.Execute deleteSQL Debug.Print "Table Points vidée." ' Parcourir toutes les entités dans le modèle For Each entity In acadDoc.ModelSpace If entity.ObjectName = "AcDbPolyline" Then ' Gestion des polylignes Set polyline = entity eHandle = polyline.Handle ' Essayer d'obtenir les coordonnées On Error Resume Next vertices = polyline.coordinates If Err.Number <> 0 Then MsgBox "Impossible de récupérer les coordonnées pour le Handle : " & eHandle Err.Clear On Error GoTo 0 GoTo NextEntity End If On Error GoTo 0 ' Parcourir les sommets si des coordonnées existent If Not IsEmpty(vertices) Then order = 1 ' Initialiser le numéro d'ordre pour chaque polyligne For i = LBound(vertices) To UBound(vertices) Step 2 If IsNumeric(vertices(i)) And IsNumeric(vertices(i + 1)) Then ' Formater les valeurs X et Y pour SQL avec un point décimal Dim xValue As String, yValue As String xValue = Replace(CStr(vertices(i)), ",", ".") yValue = Replace(CStr(vertices(i + 1)), ",", ".") ' Insérer dans la table Sommets sql = "INSERT INTO Sommets (X, Y, FichierDWG, eHandle, Ordre) VALUES (" & _ xValue & ", " & yValue & ", '" & Replace(dwgFile, "'", "''") & "', '" & Replace(eHandle, "'", "''") & "', " & order & ")" Debug.Print sql ' Affiche la requête SQL accessConn.Execute sql ' Incrémenter le numéro d'ordre order = order + 1 Else Debug.Print "Coordonnées invalides : X=" & vertices(i) & ", Y=" & vertices(i + 1) End If NextVertex: Next i Else MsgBox "Aucun sommet trouvé pour le Handle : " & eHandle End If ElseIf entity.ObjectName = "AcDbBlockReference" Then ' Gestion des blocs Dim blockX As Double, blockY As Double Dim layer As String Dim blockHandle As String ' Essayer de récupérer les coordonnées d'insertion On Error Resume Next If Not IsEmpty(entity.InsertionPoint) Then ' Extraire les coordonnées du point d'insertion blockX = entity.InsertionPoint(0) blockY = entity.InsertionPoint(1) Debug.Print "Bloc trouvé - Coordonnées X: " & blockX & ", Y: " & blockY Else ' Si les coordonnées sont introuvables Debug.Print "Impossible de récupérer les coordonnées du bloc : " & entity.Handle blockX = 0 blockY = 0 End If On Error GoTo 0 ' Vérification des autres propriétés layer = entity.layer blockHandle = entity.Handle ' Convertir les coordonnées pour qu'elles utilisent une virgule décimale Dim formattedX As String, formattedY As String formattedX = Replace(CStr(blockX), ".", ",") formattedY = Replace(CStr(blockY), ".", ",") ' Insérer dans la table Points sql = "INSERT INTO Points (ehandle_pt, X, Y, layer, ehandle_pline) VALUES ('" & Replace(blockHandle, "'", "''") & "', " & _ formattedX & ", " & formattedY & ", '" & Replace(layer, "'", "''") & "', NULL)" Debug.Print sql ' Affiche la requête SQL accessConn.Execute sql End If NextEntity: Next entity ' Fermer la connexion Access accessConn.Close ' Libérer les objets Set accessConn = Nothing Set acadDoc = Nothing Set acadApp = Nothing MsgBox "Exportation des polylignes et des blocs terminée.", vbInformation End Sub
-
Toutes mes excuses pour ce long silence ! J'ai maintenant une seconde machine, qui travaille sur le même réseau, les mêmes fichiers, MAIS, avec Map 2024...et ce souci a disparu ! 😃 Problème clos donc.
-
Je vais voir ce soir si je peux l'installer. Je n'ai pas tous les droits admin sur la machine où Map + Archibus sont installés. Merci pour ce conseil, je te dirai si ça marche.
-
C'est à moitié résolu. J'essayais d'exporter les contenu, hauteur, rotation, position X et position Y des MText, et j'ai les trois premières propriétés. Pour les coordonnées X, Y, j'ai les coordonnées du LABELPT du MText. Là, je vais voir si je peux trouver une formule simple qui me permette de définir les bonnes valeurs X,Y, partant de celles du LABELPT. Et alors, à ce niveau, si ça marche, je pourrai conclure que le problème est réglé...
-
Je suis sur Map 2019, et ne peux pas encore upgrader pour l'instant, car j'ai aussi Archibus. Dès qu'on passera à l'upgrade d'Archibus, on pourra en faire de même avec Map.
