Aller au contenu

Olivier Eckmann

Membres
  • Compteur de contenus

    2 360
  • Inscription

  • Dernière visite

  • Jours gagnés

    120

Tout ce qui a été posté par Olivier Eckmann

  1. Bonjour, depuis toujours j'utilise cette astuce. Lancer la commande EFFACER, à l'invite du choix des objets, taper (ssget "x") ce qui permet de tout sélectionner y compris les objets situés dans les calques gelés puis taper S pour passer en mode suppression (retirer des objets) et sélectionner par capture tout ce qui est visible à l'écran, puis valider. Cela efface TOUT SAUF ce que l'on voit à l'écran. Olivier
  2. Bonjour, il faut parcourir tout le jeu de sélection de 0 à n-1 (n étant le nombre d'objet obtenu par la fonction sslength ) en utilisant un compteur qui s'incrémente de 1 en 1 (fonction 1+ ) et extraire l'objet du jeu de sélection (fonction ssname ) Une fois l'objet obtenu, il faudra en extraire la liste des code DXF (fonction entget et retrouver son type dans le code (paire pointée) DXF 0 fonction assoc) Olivier
  3. Bonjour Jean-Christophe, ci-joint le code modifié pour prendre en compte les blocs dynamiques (merci à LeeMac pour son code permettant de retrouver le nom réel du bloc dynamique ou statique) (defun LM:effectivename ( obj ) (vlax-get-property obj (if (vlax-property-available-p obj 'effectivename) 'effectivename 'name ) ) ) (defun C:XdInfo2Poly ( / oPoly oVlaPoly JeuPoly oInfo JeuInfo I lsInfos PT ss dDist dDistMin dDistMax ptPro lsXdata lsInfoPro sBlName) (vl-load-com) (if (not (tblsearch "APPID" "Txt2Lin")) (regapp "Txt2Lin")) (if (and (setq oPoly (car (entsel "\nSélectionner une polyligne : "))) (= "LWPOLYLINE" (cdr (assoc 0 (entget oPoly)))) (setq oInfo (car (entsel "\nSélectionner un texte ou bloc (avec attribut) : "))) (or (= "TEXT" (cdr (assoc 0 (entget oInfo)))) (and (= "INSERT" (cdr (assoc 0 (entget oInfo)))) (= 1 (cdr (assoc 66 (entget oInfo)))) (setq sBlName (LM:effectivename (vlax-ename->vla-object oInfo))) ) ) (setq sLayerInfo (cdr (assoc 8 (entget oInfo)))) (setq dDistMax (getreal "\nDistance de recherche maxi : ")) ) (progn (setq JeuPoly (ssget "x" (list (cons 0 "LWPOLYLINE") (cons 8 (cdr (assoc 8 (entget oPoly))))))) (if (= "TEXT" (cdr (assoc 0 (entget oInfo)))) (setq JeuInfo (ssget "x" (list (cons 0 "TEXT") (cons 8 sLayerInfo)))) (setq JeuInfo (ssget "x" (list (cons 0 "INSERT") (cons 8 sLayerInfo) (cons 2 (strcat sBlName ",`*U*"))))) ) (setq I 0) (setq lsInfos nil) (repeat (sslength JeuInfo) (setq lsInfo nil) (setq oInfo (ssname JeuInfo I)) (setq I (1+ I)) (setq PT (cdr (assoc 10 (entget oInfo)))) (if (= "TEXT" (cdr (assoc 0 (entget oInfo)))) (setq lsInfo (append lsInfo (list (cdr (assoc 1 (entget oInfo)))))) (progn (if (= sBlName (LM:effectivename (vlax-ename->vla-object oInfo))) (while (/= "SEQEND" (cdr (assoc 0 (entget (setq oInfo (entnext oInfo)))))) (setq lsInfo (append lsInfo (list (list (cdr (assoc 2 (entget oInfo))) (cdr (assoc 1 (entget oInfo))))))) ) ) ) ) (if lsInfo (progn (setq lsInfo (append (list PT) lsInfo)) (setq lsInfos (append lsInfos (list lsInfo))) ) ) ) (setq ss (ssadd)) (setq I 0) (repeat (sslength JeuPoly) (setq oPoly (ssname JeuPoly I)) (setq I (1+ I)) (setq oVlaPoly (vlax-ename->vla-object oPoly)) (setq dDistMin 100000000.0) (setq lsInfoPro nil) (foreach lsInfo lsInfos (setq ptPro (vlax-curve-getClosestPointTo oPoly (car lsInfo))) (setq dDist (distance (car lsInfo) ptPro)) (if (< dDist dDistMin) (setq lsInfoPro lsInfo dDistMin dDist) ) ) (if (< dDistMin dDistMax) (progn (setq lsXdata nil) (if (listp (car (setq lsInfo (cdr lsInfoPro)))) (progn (foreach sInfo lsInfo (setq lsXdata (append lsXdata (list (cons 1000 (car sInfo))))) (setq lsXdata (append lsXdata (list (cons 1000 (cadr sInfo))))) ) ) (progn (setq lsXdata (append lsXdata (list (cons 1000 "TEXT")))) (setq lsXdata (append lsXdata (list (cons 1000 (car lsInfo))))) ) ) (setq lsXdata (cons "Txt2Lin" lsXdata) ) (setq lsXdata (list (list -3 lsXdata)) ) (entmod (append (entget oPoly) lsXdata)) ) (ssadd oPoly ss) ) ) (if (> (sslength ss) 0) (sssetfirst nil ss)) ) ) ) Olivier
  4. Bonjour, Les fichiers SHP et SHX ne contiennent que des formes (blocs) qui sont ensuite utilisées dans un fichier LIN. Ton type de ligne GLBET se trouve dans un fichier .LIN pas dans un fichier .SHX Au départ les fichiers de forme SHX sont utilisés pour toutes les polices vectorielles (traceur à plume). Par exemple dans le fichier de police ROMANS.SHX chaque lettre est une forme. Ensuite Autodesk a permis l'utilisation des forme pour dessiner n'importe quel graphisme et l'utiliser dans les types de ligne au même titre que n'importe quelle lettre d'un style de texte. Dans le menu Express, il y a une commande MAKE SHAPE qui permet de créer une forme à partir d'objets dessinés (lignes, polylignes) avec un point de base, un peu comme on définit un bloc. On peut ensuite compiler le SHP en SHX, puis utiliser la commande FORME pour insérer la forme dans le dessin. Dans le menu express la commande MAKE LINE permet de créer une type de ligne complexe en sélectionnant les tirets et les formes et créer un fichier .LIN. Cela évite de passer par l'éditeur de texte pour créer le fichier LIN de toute pièce. Olivier
  5. Bonjour, +1 avec Didier. C'est un type de ligne complexe qui fait appel à un fichier de forme nommé "autogpas.shx" demandé à l'ouverture de ton dessin. Si le type de ligne s'affiche bien chez toi, c'est que tu as le fichier SHX. Il me semble qu'il existe un outil pour "décompiler" le SHX et revenir au SHP qui la version ASCII éditable de la forme. Sinon, partant d'un SHP si tu veux pouvoir l'utilisaer comme fichier de forme en SHX, c'est la commande COMPILER (à taper en ligne de commande dans AutoCAD) Attention à ne pas confondre : - les fichiers de formes AutoCAD : SHP version ASCII et SHX version compilée - les fichiers ESRI ShapeFile (SHP, SHX, DBF) qui sont les fichiers d'échange de SIG Olivier
  6. Bonjour, La commande CALQINAC fonctionne parfaitement, tout dépend de son paramétrage: Lorsqu'on lance la commande CALQINAC on a une option "Paramètre", puis une nouvelle option "Selection de bloc", on dispose alors de 3 choix : AUCUN : on inactive le plus haut niveau, => clic sur un objet d'une XREF inactive le calque dans lequel est inséré l' XREF BLOC : on inactive le niveau intermédiaire => clic sur un bloc d'une XREF inactive le calque de la XREF dans lequel est inséré le bloc ENTITE : on inactive le niveau le plus bas => clic sur un objet du bloc d'une XREF inactive le calque de l'objet dans la définition du bloc (calque 0 normalement si le bloc est bien fait) Comme toujours, AutoCAD ce n'est qu'une "machine" à qui il faut bien expliquer ce que l'on veut qu'elle fasse. Il ne peut pas deviner (choisir tout seul à notre place) que lorsque l'on clique sur un trait il faut geler l'un des 3 calques possibles, et pour le coup les développeurs Autodesk ont laissé la maitrise complète à l'utilisateur de faire exactement ce qu'il veut. Rien n'empèche de créer 3 boutons pour chacune des 3 options spécifiques et cliquer sur le bon bouton en fonction de ce que l'on veut que le logiciel fasse. Olivier
  7. Bonjour, est-ce qu'il y a besoin de traiter aussi les blocs dynamiques en plus des blocs non dynamiques mais en ne transférant que les valeurs d'attributs, ou bien faut-il aussi "recopier" les valeurs du dynamisme (état de visibilité, paramètre Distance...) en XData? Olivier
  8. Bonjour, par défault, sous MAP 3D quand on charge l'espace de travail "Dessin et Annotation", puis que l'on active MENUBAR à 1, seul le menu déroulant Express est chargé, ensuite Covadis/Autopiste charge ses propres menus => config de base de Denis : Express et Covadis seulement. Il faut rentrer dans la commande CUI, puis "personnaliser" son espace de travail et cocher les menus AutoCAD : Fichier, Edition, Affichage... Olivier
  9. Gilles, Ce serait un grand plaisir de travailler avec toi. Si l'occasion se présente, je n'hésiterais pas. Olivier
  10. Salut, Ayant été Marseillais durant 3 ans, je préfèrerais redescendre dans le sud. Je ne suis pas sûr que Gilles ait envie de monter voir les "parisiens", même si le sud Essonne est très sympa pour se balader et découvrir pas mal de petits bijoux (forestiers et architecturaux). Sinon, je n'ai malheureusement pas le niveau pour écrire ton code, mais je vais potasser ça pour essayer de tout comprendre avant de l'appliquer. Bon allez week-end oblige, je m'y remets demain! Olivier
  11. Salut Gilles, Merci, c'est beaucoup plus concis que ce que j'avais trouvé. J'intègre ça dès demain. Olivier
  12. Salut Pat, Pour la partie numérique pas de souci, mais il faut d'abord scindé la partie alpha, puis faire un tri sur les 3 colonnes, ce qui est moins évident, surtout avec la partie alpha qui peut être vide. Je pense avoir solutionner en créant une autre colonne qui concatène le nom de la rue puis _ puis la partie numérique du numéro sur 4 caractères puis _ puis la partie alpha ou rien si vide. par ex ça donne : RUE ALEXANDRE DUMAS_0012_B et ça je le trie comme du texte. Si je mets des espaces au lieu des underscore ça ne fonctionne pas. Olivier
  13. Bonjour, Je viens de faire un test sur MAP 3D 2015, je peux mesurer un carré quelque soit sa taille (j'ai essayé 0.1 * 0.1) en Lambert 93 comme en CC49 aussi bien avec la commande AIRE que MESUREGEOM. Avec accrochage ou sans, j'ai bien la bonne surface, sans souci. Olivier
  14. Bonjour, C'est pas propre à AutoCAD, mais j'ai un truc qui a l'air tout con, mais je ne m'en sort pas. Dans une datagridview, j'affiche des adresses avec le nom de la rue dans une colonne et le numéro de la rue dans une autre colonne. J'aimerais trié par ordre croissant mes adresses : Nom de rue puis n° croissant. Le problème c'est que j'ai des numéros stockés en texte car j'ai par exemple 1 2 5, mais aussi 3B 3C 3D 12B ... J'aimerais par exemple que 1B soit après 1 mais avant 2 et aussi que 10 soit après 9 et avant 11 et pas coincé entre 1 et 100 (tri alphabétique simple). Je pense que je vais être obligé de scinder tout ça en chiffre et lettre avant de trier, mais s'il y a une solution plus simple, je suis preneur. Merci, Olivier
  15. Bonjour, effectivement un (entget) sur une geoimage ne fonctionne pas mais on peut les sélectionner quand même dans un jeu de sélection (setq JEU (ssget "x" (list (cons 0 "GEOMAPIMAGE"))))puis récupérer l'objet (setq oImage (ssname JEU 0))le convertir en objet Vlisp (setq oVlaImage (vlax-ename->vla-object oImage))et faire un dump pour voir les propriétés accessibles par Vlisp (vlax-dump-object oVlaImage)Commande: (vlax-dump-object oVlaImage); IAcadGeomapImage: Interface des images de carte géographiques AutoCAD; Valeurs de propriétés:; Application (RO) = #<VLA-OBJECT IAcadApplication 00007ff67897a130>; Brightness = 50; ClippingEnabled = -1; Contrast = 50; Document (RO) = #<VLA-OBJECT IAcadDocument 0000022a0b5cfb48>; EntityTransparency = "DuCalque"; Fade = 0; GeoImageBrightness = 50; GeoImageContrast = 50; GeoImageFade = 0; GeoImageHeight (RO) = 1324.35; GeoImagePosition (RO) = (571184.0 6.91332e+006 0.0); GeoImageWidth (RO) = 1301.48; Handle (RO) = "11DB52"; HasExtensionDictionary (RO) = 0; Height (RO) = 830.0; Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 00000232d3724f68>; ImageFile = ""; ImageHeight = 1350.84; ImageVisibility = -1; ImageWidth = 1327.51; Layer = "_A_DETECTER"; Linetype = "ByLayer"; LinetypeScale = 1.0; Lineweight = -1; Material = "ByLayer"; Name = AutoCAD.Application: Clé introuvable; ObjectID (RO) = 2851; ObjectName (RO) = "AcDbGeoMap"; Origin = (571171.0 6.91331e+006 0.0); OwnerID (RO) = 2852; PlotStyleName = "ByLayer"; Rotation = 0.0; ScaleFactor = 0.0; ShowRotation = -1; transparency = 0; TrueColor = #<VLA-OBJECT IAcadAcCmColor 00000232d3723d00>; Visible = -1; Width (RO) = 816.0 T Olivier
  16. Bonjour, Merci pour le partage, c'est cool. Dans le même ordre d'idée, il y a ce produit : Geolocation Plus Lite qui est la version gratuite (allégée) de leur produit complet. Import/export KML et SHP pour MAP/Civil mais aussi AutoCAD seul. Seule restriction, c'est en anglais. Olivier
  17. Bonjour, Rassure toi, je n'ai pas coupé pendant l'installation, j'ai juste cliquer sur le bouton "Arrêter l'installation" => résultat 18/27 installées et j'ai relancé l'install des 9 restantes après avoir rechargé la batterie. Au niveau du BIOS, j'ai désactivé la carte réseau, les ports série / parallèle, le mode chargement Express du chargeur, limiter la luminance en mode secteur... Rien de mieux Je fais faire une cle USB bootable pour flasher le BIOS en espérant que je puisse le faire avec le secteur branché. Sinon reformatage et réinstall du windows. Olivier
  18. Bon, suite des aventures... J'ai fait les dernières mises à jour Windows Update, redémarrer le PC (sur batterie) et dans Windows Update, j'ai échec de l'installation de Windows 10. Je ne comprends pas trop car la période de migration gratuite est terminée depuis bien longtemps. J'ai rebranché le secteur, j'y ai cru 15 secondes, puis PC figé à nouveau. Je l'aurais un jour, je l'aurais!!! Olivier
  19. Salut, @Bonuscad, Windows Update était bloqué (erreur 8028A000), j'ai réinitialisé et j'ai relancé les mises à jour. Le problème c'est que je dois le charger, puis faire les manip sur batterie. Ce soir, 18 mises à jour sur 27 installées, plus que 5% de batterie, j'ai dû couper l'installation, l'arrêter et le remettre à charger. Je finirais demain les mises à jour. Je vous tiens au courant si je m'en sors. Olivier
  20. Bonjour, merci pour la piste, mais c'est un SSD et à priori, ça ne se défragmente pas. Olivier
  21. Bon autant pour moi, ça ne démarre pas non plus sans batterie. Je vais continuer à chercher. Olivier
  22. Salut, oui, là ça fonctionne. Je vais essayer de mettre à jour le BIOS comme ça. Olivier
  23. Bonjour, l'utilitaire de mise à jour du BIOS refuse de le faire si je ne suis pas branché au secteur => impossible Pour le reste, je vais voir Olivier
  24. Bonjour, mettre la variable HPISLANDDETECTIONMODE à 0 avant de lancer la commande contour, puis la remettre à son ancienne valeur ensuite. C'est la case à cocher "Détection d'ilot" qui détecte le contour des textes multilignes comme des ilots à détourer. Olivier
  25. Bonjour, J'ai récupéré un petit portable Dell (Win 7 32bit) qui fonctionne bien sur batterie, mais qui se fige dès que je branche le chargeur. Je pense à un souci Windows, car en mode sans échec, aucun problème, il fonctionne nickel sur secteur comme sur batterie. J'ai cherché et trouver des pistes sur la gestion du lien PCI Express et de batterie AC Power et ACPI à désactiver, mais sans succès. Si quelqu'un a rencontré le même problème ou une piste de recherche. Merci Olivier
×
×
  • 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é