GEGEMATIC
Membres-
Compteur de contenus
1 416 -
Inscription
-
Dernière visite
-
Jours gagnés
19
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par GEGEMATIC
-
J'ai des commandes pour écrire du GPX directement, et pour lire du kml, mais elles sont basées sur PowerClic, donc je ne les propose pas.
-
Salut Didier, si on peut le faire sans Map, avec des utilitaires gratuits, qui permettent de re-projeter, par exemple le très vieux et excellent WDGPS, qui permet de passer de pleins de format SIG vers GPX, le GPX est lu en natif par MyMap. a voir si on peut récupérer l'attribut ? peut être aussi en exportants nos blocs en CSV: ATT, x,y,z La réponse que j'ai faite est plus un cheminement qu'une solution impérative. a+g, égé
-
Salut Kido, Pour ce travail, il faut commencer par exporter tes blocs avec _mapexport, créer des données d'objet à partir de ton attribut de bloc. sous google earth pro, on peut importer du .shp ou du tab, et générer du kml ensuite, il faut utiliser mymap, importer le fichier kml, et sous map, on retrouvera sa carte pesronnalisée bien sur, pour des blocs, on peut passer d'autocad à mymap avec du csv, mais je n'ai pas testé. a+ gégé
-
cool !
-
Par contre, je n'ai jamais trouvé le moyen d'initier le filtre de calque actif ? il me semble que par défaut Autocad le positionne sur la dernière xref trouvée (lorsque l'on active l'option "Appliquer le filtre de calque à la barre d'outils de calque") alors que je le voudrais par défaut sur un filtre "noxref' des idées ?
-
salut, j'avais initié un post sur ce sujet en 2007, je ne retrouve pas ... as tu essaye mon "handle_explorer" pour se balader dans la structure démoniaque des dwg ? On peut bien entendu créer ces filtres par programmation, moi j'ai des filtres stockés dans un fichier ini qui sont crées au chargement. ci dessous des fonctions que j'utilise pour ce sujet: ;;************************************************************************** ;;§/calques/Affiche la hierarchie de filtre de calques imbriqués / none (defun c:LayerFiltersTree ( / ) ;;1er niveau (setq eg1 (entget (PW_ELAYERFILTERDIC))) (setq ldics1 (cdr (assoc 3 (pw_regroup_assoc eg1)))) ;;2eme niveau (foreach nomfiltre1 ldics1 (prompt (strcat "\n " nomfiltre1)) (setq dic3 (pw_eLayerFilterByName nomfiltre1)) (setq eg2 (entget (setq dic5 (pw_eLayerFilterAclyDictionary5 dic3)))) (setq l-350-2 (cdr (assoc 350 (pw_regroup_assoc eg2)))) (setq ldics2 (mapcar '(lambda (x) (cdr (assoc 300 (entget x)))) l-350-2)) ;;3eme niveau (foreach nomfiltre2 ldics2 (prompt (strcat "\n- - - - " nomfiltre2)) (setq dic5 (pw_eSousLayerFilterByName dic3 nomfiltre2)) (setq dic8 (pw_eLayerFilterAclyDictionary5 dic5)) (setq eg3 (entget dic8)) (setq l-350-3 (cdr (assoc 350 (pw_regroup_assoc eg3)))) (setq ldics3 (mapcar '(lambda (x) (cdr (assoc 300 (entget x)))) l-350-3)) (foreach nomfiltr3 ldics3 (prompt (strcat "\n- - - - > - - - -" nomfiltr3)) ) ) ) ) ;;************************************************************************ ;;Niveau 1 : dictionnaire ;;;( (0 . "DICTIONARY")(100 . "AcDbDictionary") (280 . 1) (281 . 1) (3 . ;;;"ACAD_LAYERFILTERS") (3 . "ACLYDICTIONARY") ) ;;;;; - * - * - * - * - * - * - * - * - * - * - * - * - * ;;; ;;; Niveau 2 : dictionaire ;;; ( (0 . "DICTIONARY") (100 . "AcDbDictionary") (280 . 0) (281 . 1) (3 . "*A1")) ;;; - - - - - - - - - - - - - - ;;; ;;; ;;; Niveau 3 : Xrecord contenant les infos du 1er filtre ;;; ( (0 . "XRECORD") (102 ."{ACAD_XDICTIONARY") (100 . "AcDbXrecord") (280 . 1) (1 . "AcLyLayerFilter") ;;; (90 . 1) (300 . "essai") (301 . "NAME==\"*filtre-essai\"")) ;;; - - - - - - - - - - - - - - ;;; ;;; Niveau 4 : dictionaire étendu ;;; ((-1 . <Nom d'entité: 7efd8168>) (0 . "DICTIONARY") (330 . <Nom d'entité: ;;; 7efd8158>) (5 . "ED") (100 . "AcDbDictionary") (280 . 1) (281 . 1) (3 . ;;; "ACLYDICTIONARY") (360 . <Nom d'entité: 7efd8170>)) ;;; - - - - - - - - - - - - - - ;;; ;;; Niveau 5 : dictionaire ;;; ( (0 . "DICTIONARY") (100 . "AcDbDictionary") (280 . 0) (281 . 1) (3 . "*A1")) ;;; - - - - - - - - - - - - - - ;;; ;;; Niveau 6 : Xrecord contenant les infos du 2eme filtre ;;; ( (0 . "XRECORD") (100 . "AcDbXrecord") (280 . 1) (290 . 1) (1 . ;;; "AcLyLayerFilter") (90 . 1) (300 . "sous") (301 . "NAME==\"*filtre-sous\"")) ;;; - - - - - - - - - - - - - - ;;;Récapitulation simplifiée: ;;;1 DICTIONARY ;;; 2 DICTIONARY ;;; 3 XRECORD du 1er filtre ;;; 4 DICTIONARY (ACAD_XDICTIONARY: ne peux pas etre créé par dictadd, mais par la méthode getextensiondictionary) ;;; 5 DICTIONARY ;;; 6 XRECORD du sous filtre ;;---------------------------------- ;;************************************************************************** ;;§/calques/supprime tous les filtres de calques/none ;;; Purge/delete all layer filter or filters compatible with 2005 or later ;;; Example: (DeleteLayerFilters2) (defun c:DeleteLayerFilters () (vl-Catch-All-Apply '(lambda () (vla-Remove (vla-GetExtensionDictionary (vla-Get-Layers (vla-Get-ActiveDocument (vlax-Get-Acad-Object)))) "AcLyDictionary"))) ) ;;************************************************************************** ;;§/calques/Liste tous les filtres de calques/none (defun c:ListeLayerFilters () (setq filtXdic (vla-GetExtensionDictionary (vla-Get-Layers (vla-Get-ActiveDocument (vlax-Get-Acad-Object)))) ) (print (pw_vlax_list_nom_items (setq xdAcad_layerfilters (vla-item filtXdic "ACAD_LAYERFILTERS")))) (print (pw_vlax_list_nom_items (setq xdAcad_layerstates (vla-item filtXdic "ACAD_LAYERSTATES")))) (print (pw_vlax_list_nom_items (setq XdAcLyDictionary (vla-item filtXdic "ACLYDICTIONARY")))) ) ;;************************************************************************** ;;§/calques/supprime le dictionaire de filtres de calques simple de nom "monfiltre"/monfiltre ; (defun pw_eraseLayerFilter ( monfiltre / dic ) (setq dic (pw_eLayerFilterDic)) (if (dictsearch dic monfiltre) (dictremove dic monfiltre) ) ) ;;************************************************************************** ;;§/calques/supprime le dictionaire de filtres de calques Acly = avec sous filtre en cascade de nom "monfiltre"/monfiltre ; (defun pw_eraseLayerFilterAcly ( monfiltre / dic ) (setq dic (pw_eLayerFilterAclyDic)) ;;(foreach l (pw_vlax_list_items dic) (foreach l (pw_ListAclyLayerFilter) (if (= (strcase (last l)) (strcase monfiltre)) (dictremove dic (car l)) ) ) ) ;;************************************************************************** ;;§/calques/retourne une liste d'assoc ((nomfiltreanno nomfiltre)) /none ;;soit la lsite des élement du dict ACLY de niveau 2, avec leur nom en clair ;;(pw_ListAclyLayerFilter) -> (("*A1" "_NOXREF") ("*A2" "NADIAA") ("*A3" "RESEAUX") ("*A4" "REL")) ; (defun pw_ListAclyLayerFilter ( / 2dic lsousdic l nom eg ) ;;accede au dictionaire de niveau 2 (setq 2dic (pw_eLayerFilterAclyDic)) ;;cherche un nom anonyme (if (setq lsousdic (pw_vlax_list_items (vlax-ename->vla-object 2dic))) (mapcar '(lambda (l) (list (vla-get-name l) (setq nom (cdr (assoc 300 (entget (vlax-vla-object->ename l))))) ) ) lsousdic ) ) ) ;;************************************************************************** ;;§/calques/retourne le ename du dictionaire des filtres de calques simple/none ; (defun pw_eLayerFilterDic ( / dict dic cur ) (setq dict (vlax-vla-object->ename (vla-GetExtensionDictionary (vla-get-layers pw-acaddocument ))) dic (cdar (dictsearch dict "ACAD_LAYERFILTERS")) ) ;(print "************") ; check to see if "ACAD_LAYERFILTERS" exists. if not, make it (if (not dic) (progn (setq cur '((0 . "DICTIONARY") (100 . "AcDbDictionary"))) (setq dic (dictadd dict "ACAD_LAYERFILTERS" (entmakex cur))) ) ) dic ) ;;************************************************************************** ;;§/calques/retourne le ename du dictionaire des filtres de calques Acly = avec sous filtre en cascade /none ; (defun pw_eLayerFilterAclyDic ( / dict aclydic cur ) (setq dict (vlax-vla-object->ename (vla-GetExtensionDictionary (vla-get-layers pw-acaddocument ))) aclydic (cdar (dictsearch dict "ACLYDICTIONARY")) ) ;(print "************") ; check to see if "ACAD_LAYERFILTERS" exists. if not, make it (if (not aclydic) (progn (setq cur '((0 . "DICTIONARY") (100 . "AcDbDictionary"))) (setq aclydic (dictadd dict "ACLYDICTIONARY" (entmakex cur))) ) ) aclydic ) ;;************************************************************************** ;;§/calques/retourne le ename du dictionaire du filtres de calques nomfiltre /nomfiltre ;;retourne le niveau 3: ;;; 3 XRECORD du 1er filtre ; (defun pw_eLayerFilterByName (nomfiltre / 2dic lsousdic leg nom eg res ) ;;accede au dictionaire de niveau 2 (setq 2dic (pw_eLayerFilterAclyDic)) ;;cherche un nom anonyme (if (setq lsousdic (pw_vlax_list_items (vlax-ename->vla-object 2dic))) (progn ;;ci dessous methode pour acceder au xrecordata en vba: un dump ne donne rien ! ;;; (foreach l lsousdic ;;; ;;verification de ce qui a été écrit ;;; (vla-GetXRecordData ;;; l ;;; 'ArrayType ;;; 'ArrayValue ;;; ) ;;; (print (mapcar 'vlax-variant-value (vlax-safearray->list ArrayValue))) ;;; ) (setq leg (mapcar 'entget (mapcar 'vlax-vla-object->ename lsousdic))) (foreach eg leg (setq nom (cdr (assoc 300 eg))) (if (= (strcase nom )(strcase nomfiltre)) (setq res (cdr (assoc -1 eg))) ) ) ) ) res ) ;;************************************************************************** ;;§/calques/retourne le ename du sous dictionaire du filtres de calques nomfiltre /baseDic nomfiltre ;;retourne le niveau 5: ;;; 5 DICTIONARY ; (defun pw_eSousLayerFilterByName (baseDic nomfiltre / 2dic lsousdic leg nom eg res ) ;; niveau 4 (setq objxdic (vla-GetExtensionDictionary (vlax-ename->vla-object baseDic))) ;; (print (vlax-get-property objxdic 'Count)) (if (setq itm (vlax-invoke-method objxdic 'Item 0)) (progn (setq litm (pw_vlax_list_items itm)) (setq leg (mapcar 'entget (mapcar 'vlax-vla-object->ename litm))) (foreach eg leg (setq nom (cdr (assoc 300 eg))) (if (= (strcase nom )(strcase nomfiltre)) (setq res (cdr (assoc -1 eg))) ) ) ) ) res ) ;;************************************************************************** ;;§/calques/retourne le ename du dictionaire de niveau 5 à partir d'un dic niveau 3/edic3 ;; 5 DICTIONARY ;;utile pour ajouter un sous filtre à un filtre existant ; (defun pw_eLayerFilterAclyDictionary5 ( 3dic / objxdic exdic xdlist xname ) ;; niveau 4 (setq objxdic (vla-GetExtensionDictionary (vlax-ename->vla-object 3dic))) ;; (print (vlax-get-property objxdic 'Count)) (if ;; (setq itm (vlax-invoke-method objxdic 'Item 0)) (setq itm (car (pw_vlax_list_items objxdic))) ;; niveau 5 existe (vlax-vla-object->ename itm) (progn ;; niveau 5 créé (setq xdlist (list '(0 . "DICTIONARY") '(100 . "AcDbDictionary") '(280 . 0) '(281 . 1)) xname (entmakex xdlist)) (dictadd (vlax-vla-object->ename objxdic) "ACLYDICTIONARY" xname) ) ) )
-
salut Kamal, bien sur que j'attendais cette mise à jour ! a+ Gégé
-
Tout pile, en effet ! après cette lecture, je crois que le problème vient du fait que j'ai essayé de copier depuis un .xls vers un .xlsx. c'est pour ça qu'on avait une vision aléatoire de ce bug. donc enregistrer sous ods, puis sous .xlsx et ça devarit marcher ... merci de la Savoie à la Lozere ! et je t'ai mis un +, depuis que j'ai découvert cette fonction !
-
Salut tout le monde * les fichier excel générés par Covadis passent toujours auprès d'excel pour de dangereux fichiers. il faut donc rassurer excel a leur sujet, puis les sauvegarder. curieusement, si on réécrit par dessus avec Covadis, le fichier n'est plus jugé dangereux, bien que sont contenu soit entièrement nouveau. mais ces fichiers ont une autre propriété troublante, ils changent les couleurs d'excel. Ce phénomène est assez aléatoire, mais il ne nous ait arrivé qu'avec des xls de covadis: On copie / colle d'un fichier à l'autre, et les couleurs changent de manière incompréhensible. ça m'est arrivé ce matin au pire moment, je bricole un DQE particulièrement tordu, et là c'est vraiment impossible de travailler, j'ai un kaléidoscope aléatoire ... J'ai office 2019, j'essaye avec office 2010 : pareil Je tente ces 2 solutions : https://www.excel-downloads.com/threads/couleurs-differentes-lors-dun-copier-coller.153186/ https://fr.officetooltips.com/excel_2016/tips/comment_modifier_les_couleurs_par_defaut_qu_excel_utilise_pour_les_series_de_graphiques.html Aucun résultat Du coup je passe sous libre office, et j'ai réussi a travailler ... J'ai 2 versions payantes du pack office, mais je suis obligé d'utiliser Libre Office pour bosser ! ça va les Gafam ? vous allez arriver a conquérir mars avec le fric que vous nous volez ? a+ gégé, remonté comme vous voyez ... * puisque c'est la formule finalement adoptée pour ne froisser personne !
-
Salut, pareil pour moi, mais il semble qu'il y a un pavé numérique sur le "touchpad" je ne connais pas ce fonctionnement ? a+ gégé
-
Salut @didier Bien vu la comparaison avec Victor Hugo et le flash ! c'est vrai !
-
salut, imaginez que vous recevez un dwg, vous avez bien un vieil Autocad 2004 sur une machine, mais elle a été MAJ avec W10, et cet Autocad là, il était fait pour Vista ... tien Autocad s'ouvre, mais il ne veut pas ouvrir le dwg qui est trop récent. ça c'est la réalité. Le rêve: Vous recevez un dgn, vous avez un vieux microstation 2004, sur une machine W10, qui démarre tout de suite, vous ouvrez votre dgn. Voilà. La suite: Autocad Map devrait permettre le DGN overlay: Rien ne s'est affiché pour nous avec la 2018, la 2020 et la 2021. Impossible d'importer le dgn sur la 2018 et la 2020, import très incomplet avec la 2021. Pendant ce temps Ustation 2004 ... ouvre le dgn, et l'enregistre sous dwg sans aucune perte ... une version d'il y a 17 ans ! a+, Gégé
-
Qu'est ce qui provoque la demande d'autorisation chez Autodesk ?
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans Ordinateurs
salut Olivier, ce sont des licences perpétuelles, mais n'ayant pas renouvelé mon abonnement, j'ai bien peur que ce soit tout un cinéma pour transférer les licences, d'où l'idée d'upgrader cette vieille station. (c’était déjà des galères quand j'étais abonné ...) a+, gégé -
Qu'est ce qui provoque la demande d'autorisation chez Autodesk ?
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans Ordinateurs
Salut tiphon, merci pour ta réponse, il me semble avoir remplacé à l'identique une carte mère qui avait grillé, et effectivement il me semble que tous les logiciels avaient demandé une validation. la MAJ de cette antique station Z400 que j'envisage est une opération de type gammer, et après un bidouillage du bios, il semble que je peux passer de 16go à 24 go, de 1066 à 1333 mhz, mais pour cela il faut changer de proc, et bien sur, la mémoire. a+ gégé -
Qu'est ce qui provoque la demande d'autorisation chez Autodesk ?
GEGEMATIC a posté un sujet dans Ordinateurs
salut a tous, lorsque que l'on a des produits Autodesk installé sur un ordi, le changement de DD ne provoque pas de demande d'autorisation. je me demande si le changement de processeur la provoque ? J'aurais intérêt a changer de CPU car il accepterait + de mémoire, mais je ne peux plus obtenir d'autorisation. a+ Gégé -
Salut, finalement j'ai commandé celle ci: https://www.integral-system.fr/products/Tablette-PC-durcie-IP65-11-6 avec un option gps et 256 Go SSD merci a tous ! gégé
-
Une idée farfelue...
GEGEMATIC a répondu à un(e) sujet de Olivier Eckmann dans ObjectARX/DBX, C++, .NET, RealDWG
Salut Olivier, c'est dingue, on a tous les même type de besoins ... en alternative a ta solution vocales, est-ce que tu n'aurais pas une solution d'écoute d’événement sous windows ? Attention, je n'ai jamais développé la moindre appli pour windows, donc je peux vraiment raconter n'importe quoi: Tu crée une appli windows OE_Coords (sa sonne bien ...) tu lance ton "street-view", puis tu lance OE_coords, dont le rôle est d'attendre l’événement "stree-view écrit vers le presse papier" a cet événement, OE_coords ouvre un dialogue, où il te demande le code OK -> pilotage d'Autocad pour finir l'opération, et retour focus sur "street-view" Tu évite ainsi les clics pour changer d'appli, ton programme sert d'interface entre "street-view" et Autocad. a+ gégé -
[Résolu] Où télécharger le module VBA pour AutoCAD 2015 ?
GEGEMATIC a répondu à un(e) sujet de DenisHen dans VBA et VB
Dans ce cas, si il n'y a pas l'appli arx, on que le proxy qui s'affiche ? -
[Résolu] Où télécharger le module VBA pour AutoCAD 2015 ?
GEGEMATIC a répondu à un(e) sujet de DenisHen dans VBA et VB
Salut, pas compris la différence qu'il fait entre Persistent Reactor et Persistent Reactor referencing ? car le vba ne permet pas les réacteurs persistants, le lisp si, mais je n'ai pas compris son explication. -
[Résolu] Où télécharger le module VBA pour AutoCAD 2015 ?
GEGEMATIC a répondu à un(e) sujet de DenisHen dans VBA et VB
Incroyable, Denis m'a précédé ... J'allais te poser des questions a propos de VBA pour Autocad. J'ai abandonné le VBA pour Autocad avec Windows 64, car les 1ère version de VBA pour autocad x64 étaient catastrophiques, et Microsoft annonçait l'abandon de VBA. c'est là que je suis passé à VB.net. Comme je l'ai dit, j'ai abandonné VB.net car trop lourd pour moi. par contre, quand je m'y mets, je maitrise assez bien VBA, car j'ai fait de très gros développements pour Access dans ce langage. Mon usage de VBA pour Autocad était surtout de créer des cases de dialogue pour Lisp, en utilisant le mécanisme de Franck Ockando. Donc ma question est: VBA pour Autocad, maintenant, c'est stable ? a+, Gégé -
pas cette version la, il me semble. si j'avais regardé la version que tu as posté en 2019, je n'aurais pas eu besoin de poser une question, puisque le code défectueux du getexcel original est corrigé. mais je pensais que c'était la même ...
-
@gileParfait c'est exactement ça ! merci ! le code complet à remettre dans le contexte de getexcel : (setq usedrange (vlax-get-property (vlax-get-property *ExcelApp% "ActiveSheet") "UsedRange")) (setq rows (vlax-get-property usedrange "rows")) (setq MaxRow# (vlax-get-property rows "Count" ) ) @lecrabe Non, pas IXL, mais mes commandes Excel sont un mix entre un post "historique" de Patrick_35, où il déroule en toute aisance les fondamentaux d'Excel pour Lisp: https://cadxp.com/topic/26879-lisp-et-excel/?tab=comments#comment-147083 et la traduction getexcel de Gile, mentionnée dans ce post. je fais avec les un et les autres selon mon humeur, ou ma flemme ! a+ gégé
-
Salut a toutes et tous, Je dois lire et écrire un fichier Excel, ce n'est pas mon habitude, je fais tout en général avec le format Excel xml 2003, (.xml) qui est le meilleurs des 3 mondes, le pur texte, le xml, et le tableur Excel. mais la c'est du métré Covadis, j'y peux rien c'est du Excel .xls. Je voudrais parcourir une colonne jusqu’à la toute fin de la feuille, donc j'ai besoins de compter les lignes. Je pense que je ne peux pas faire un "tant que pas nil", car il y a des lignes fusionnées, donc à la colonne 3 ça retourne rien. donc d'après ce que j'ai compris de getexcel.lsp, le moment ou on lit cette valeur c'est là, avec maxRange$ = nil (if MaxRange$ (progn (setq ColumnRow@ (ColumnRow MaxRange$)) (setq MaxColumn# (nth 0 ColumnRow@)) (setq MaxRow# (nth 1 ColumnRow@)) );progn (progn (setq CurRegion (vlax-get-property (vlax-get-property (vlax-get-property *ExcelApp% "ActiveSheet") "Range" "A1") "CurrentRegion") );setq (setq MaxRow# (vlax-get-property (vlax-get-property CurRegion "Rows") "Count")) (setq MaxColumn# (vlax-get-property (vlax-get-property CurRegion "Columns") "Count")) );progn );if Dans mon cas, ça ne marche pas. Si A1 est une ligne fusionnées sur 10 colonnes j'obtiens maxRow# = 1 et MaxColumn# = 10, et si A1 est une simple celulle maxRow# = 1 et MaxColumn# = 1. Mais peut être que je n'ai pas compris le fonctionnement ? a+ gégé
-
salut a tous, @Olivier Eckmann Je ne pense pas acheter d'occasion, car quand on configure, autant que ça dure un peu, mais j'ai l'impression que Motion n'existe plus ? pas trouvé d'autre produit que la R12 ? @Curlygoth et tous, je n'avais pas pensé a la solution tablette normale + coque. L'écart de prix semble important, mais donc il y a bien un inconvénient ? En fait je ne comprend pas qu'une tablette durcie représente "un cout de coque" de 1500€ merci, gégé
-
salut, merci à tous les 2, @Curlygoth: je pense pas que cette solution existe en "durci" ? @La Lozère: Solution pratique et peu couteuse, mais c'est de l'Android, et sous Android il n'existe que Qfield, pas Qgis. On a déjà une tablette Android avec notre GPS, c'est vrai que c'est vraiment pratique Android, sur le terrain, mais Qfield est un peu limité ... a+, gégé
