Aller au contenu

Olivier Eckmann

Membres
  • Compteur de contenus

    2 348
  • Inscription

  • Dernière visite

  • Jours gagnés

    119

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

  1. la variable LAYERDLGMODE, c'est la 1ère variable que je change à chaque installation, la 2ème c'est HPDLGMODE, et la 3ème PDFSHX, et ainsi de suite... On aime bien garder nos habitudes de petits vieux...😁
  2. @Luna C'est bizarre que ça ne le fasse que sur la présentation courante, car ta manipulation le fait sur toutes les fenêtres de toutes les présentations sur ma version Map 2023. Par contre j'ai le dialogue des calques en mode case de dialogue avec le bouton OK et non pas en mode palette (LAYERDLGMODE à 0) Olivier
  3. @didier, Ce ne sont pas des attributs de blocs, mais des données d'objets MAP. Olivier
  4. Bonjour, Sans vouloir faire de pub, il y a mon plug-in (gratuit) dédié à la manipulation des données d'objets sous Map 3D ou Civil 3D : https://apps.autodesk.com/MAP3D/fr/Detail/Index?id=7146835859656784994&appLang=fr&os=Win64 qui devrait répondre à la demande. Olivier
  5. @PATRICE69 Si on veut rendre courant une propriété autre que Ducalque, c'est qu'elle a été forcée, ce qui ne devrait jamais arriver. En effet, le principe de travail dans AutoCAD c'est 1 calque = 1 type d'objet = 1 représentation graphique. Si j'ai besoin de 2 objets avec 2 couleurs différentes, cela veut dire que ce ne sont pas les mêmes objets donc on les répartit sur 2 calques. Par conséquent, il y a un bouton pour rendre le calque courant, car c'est effectivement une action récurrente, par contre rendre une autre propriété courante pour forcer cette propriété sur le prochain objet dessiné doit rester une exception dans le travail quotidien, c'est pourquoi il n'y a pas de boutons prévus à cet effet. Olivier
  6. Ici 14_PDFsam_finisseur-volvo-7820-8820.pdf
  7. @DessProj429, Finisseur Volvo, page 14 du PDF il y a une vue de dessus (image) : http://www.france-finisseurs-services.fr/wa_files/finisseur-volvo-7820-8820.pdf
  8. @DessProj429 est-ce que tu as vu ce lien : https://www.dwglab.com/fr/category/blocs-cao-7/vehicules-40/paveuses-dasphalte-638/
  9. Bonjour @DessProj429 Il n'y a pas de finisseur, mais il y a ça peut-être : https://www.btp-cours.com/block-autocad-engins-de-chantier/ Olivier
  10. Je viens de tester la routine Buffer. Elle ne fonctionne pas sir tu es réglé en unités topo : 0 au Nord et sens Topo. Dans ce cas les arcs sont dessiné à l'envers. Un autre problème se pose lorsque la distance de décalage est trop grande par rapport à ta polyligne et qu'un des 2 côtés n'est plus décalable. Dans ce cas, on obtient une erreur Automation et ça s'arrête.
  11. Si j'ai bien compris, le problème c'est que le buffer est rond sur les extrémités, alors que je les veux "droites"
  12. Je vais traiter par zone, car le projet total c'est 10 000 polylignes et environ 250 000 blocs. Pour la zone, je calcule le buffer, puis l'enveloppe du buffer (boite rectangulaire). Et je teste d'abord si c'est dans la boite avant de tester plus finement si c'est à l'intérieur du buffer. C'est plus rapide pour éliminer les points hors zone. Je pourrais préparer les données plus intelligemment en faisant des boites de boites (décomposition en quadtree), mais le traitement pourra de toute manière tourner sur plusieurs jours, mais peut-être en CoreConsole donc sans interface graphique, d'où la recherche sans appel à la sélection écran. Pour le buffer, c'est bien une bande fermée verticalement à chaque extrémité et pas par une distance "arrondie". Donc l'analyse de distance entre le point et sa projection sur la polyligne n'est pas efficiente dans ce cas. Il y a quelques années, j'avais lu un article intéressant qui proposait d'utiliser les fonctions d'analyse spatiale de SQLServer dans un plug-in AutoCAD développé en C#. Et effectivement, ces fonctionnalités semblent aujourd'hui intégrées nativement dans les API .Net, notamment le buffer : https://learn.microsoft.com/en-us/dotnet/api/system.data.entity.sqlserver.sqlspatialservices.buffer?view=entity-framework-6.2.0 Si je trouve un peu de temps, je vais me pencher dessus en complément des API d'AutoCAD Map pour l'analyse spatiale. Je pense que je vais partir d'un calcul par décalage et assemblage des 2 poly décalées, puis analyse si le point est intérieur au buffer d'après ses coordonnées. Merci pour vos réflexions. Si il y a d'autres idées, je suis toujours preneur.
  13. Bonjour, Je dois sélectionner les blocs présents dans un buffer de 10 m autour d'une polyligne ouverte. En fait j'aurais des milliers de polylignes et des dizaines de millier de blocs à tester. Je pensais traiter ma polyligne, la décaler à droite, récupérer la liste de ses sommets, la décaler à gauche, récupérer la liste des ses sommets, l'inverser et l'ajouter à la liste précédente. Puis utiliser cette liste comme Capture Polygonale dans un SSGET (faire un zoom sur le polygone avant) ou bien tester le point d'insertion de chacun de mes blocs pour savoir s'il est à l'intérieur ou à l'extérieur de mon polygone (la solution que je pensais retenir). Est-ce que vous voyez autre chose de plus performant (éventuellement sans passer par la création d'objet), ou une API toute faite que je ne connaitrais pas? Pour le moment mon programme est écrit en Lisp, mais s'il y a une API en .Net, ça me convient aussi. Merci, Olivier
  14. dans l'interface de personnalisation (IUP) tu verras où se trouve le CUIX à supprimer
  15. Ici chez @didier : https://www.da-code.fr/poly-07/
  16. Bonjour, On le trouve ici pour la source : https://www.cadforum.cz/en/download.asp?fileID=390 Mais comme on est sur le forum Revit, pas sûr qu'un VLX chargeable sous AutoCAD satisfasse la demande initiale. Olivier
  17. regarde ici : https://forums.autodesk.com/t5/autocad-tous-produits-francais/autocad-tracer-des-polylignes-paralleles-en-une-seule-fois/m-p/12397855 ça peut être intéressant.
  18. Non pas possible, sur le store, toutes les commandes commencent par OECK_... et non plus MAP..., donc si ça te lances des commandes qui commencent par MAP... tu as le ruban de la version installable manuellement (Zip mise à disposition sur le forum GeoRezo). Il faut faire le ménage de l'ancienne version.
  19. C'est normal. Quand tu lances AutoCAD, ça charge le noyau de base et tous les extensions (Map...) et les plug-ins supplémentaires (par ex Covadis). Lorsque tu ouvres le DWG, tous les modules nécessaires sont déjà chargés, donc pas de souci. Lorsque tu double-clic pour ouvrir ton DWG et que ça lance AutoCAD, ça ne charge que le noyau, puis ça charge les objets du DWG et si tu as des objets spécifiques, ça essaie de charger les modules complémentaires, mais parfois c'est trop tard. Certains se chargent d'autres non. Il ne faut jamais faire un double clic sur un DWG si AutoCAD n'est pas déjà lancé. Il faut toujours lancer AutoCAD avant d'ouvrir un DWG. Même si le problème n'apparaît qu'une fois sur 100, il faut prendre l'habitude de suivre la procédure la plus fiable. Olivier
  20. Les commande on été renommée, donc tu dois avoir l'ancien plugin qu'il fallait charger à la main et le nouveau si tu l'as installé depuis Autodesk Store. Donc tu désinstalles depuis la panneau de configuration, puis tu vas dans C:\ProgramData\Autodesk\ApplicationPlugins et tu supprimes à la main le dossier QueryShowOD.bundle. Tu redémarres ton PC et tu réinstalles depuis le store. Ensuite au 1er, ou 2ème (voir 3ème) démarrage d'AutoCAD MAP, ça doit remonter.
  21. Bonjour, Comme l'a dit Vincent, tu peux passer par une requête avec modification des propriétés pour mettre directement dans des calques différents. Tu peux aussi rester dans ton dessin, en ajoutant une couche par interrogation du dessin courant Puis tu décoches Base de la carte => tu n'auras plus que les points visibles à l'écran que tu peux mettre dans le calque que tu veux. Sinon, si tu peux installer mon plug-in de gestion des données d'objets, ça fonctionne aussi : https://apps.autodesk.com/MAP3D/fr/Detail/Index?id=7146835859656784994&appLang=fr&os=Win64
  22. Merci @Luna pour la précision. C'est vrai que j'ai toujours passé un vla-object en paramètre. En plus dans la doc, c'est bien marqué vla-objet pour le paramètre. vlax-curve-getDistAtParam (AutoLISP/ActiveX) Returns the length of the curve's segment from the curve's beginning to the specified parameter Supported Platforms: Windows only; not available on Mac OS or Web Signature (vlax-curve-getDistAtParam curve-obj param) curve-obj Type: VLA-object The object to be measured. En tout cas, ça va me simplifier la vie et en plus ça tournera plus vite. Olivier
  23. Quand on est face à un problème, il faut le décomposer pour avoir des morceaux plus simple à développer et à tester. Tu vas commencer par sélectionner la polyligne, puis un point sur la polyligne et tu vas essayer de rajouter 2 points situés à 1/2 largeur d'encoche avant et après le point cliqué. On va commencer simple en cliquant un point au milieu du 2ème segment de ta polyligne exemple. Un peu de théorie. Chaque sommet d'une polyligne possède un indice qui commence à 0 et qui s'appelle un Paramètre (la polyligne est une courbe paramétrique). @didier a parfaitement expliqué cette notion de paramètre sur son site. Le but de ton programme, consiste à trouver pour le point cliqué : - l'abscisse de ton point sur la polyligne : c'est la distance depuis le point 0 - le paramètre de ton point cliqué pour connaître l'indice du sommet précédent. Ensuite tu calcules l'abscisse - 1/2 encoche, l'abscisse + 1/2 encoche et tu recalcules les 2 points à ces abscisses Enfin tu insères ces 2 points sur le bon segment Pour travailler sur les polylignes (courbe ou curve en anglais), on dispose des fonctions vlax-curve_... qui font tout le boulot. @didier explique ça très bien aussi. on dispose de vlax-curve-GetDistAtPoint qui permet de connaître l'abscisse d'un point donné le long d'une courbe et sa réciproque vlax-curve-GetPointAtDist On a aussi vlax-curve-GetParamAtPoint qui donne ... tu devrais trouver tout seul. Mais ces fonctions on besoin d'un objet de type vla donc il va falloir "transformer" la polyligne sélectionnée en objet vla. Ca tombe bien il y a une fonction pour ça vlax-ename->vla-object Je t'ai écrit les commentaires avec le rappel des fonctions à utiliser, tu n'as plus qu'à remplir. Je t'ai laissé les fonctions d'insertion de points sur une courbe qui sont un peu plus "velues" ; encoche (defun C:DH_Encoche ( / oPolyVla oPoly PT dDist PT1 dDist1 PT2 dDist2 dParam) ; sélection d'une polyligne ; conversion en objet vla : vlax-ename->vla-object ; sélection d'un point ; calcule de l'abscisse de ce point sur la courbe : vlax-curve-GetDistAtPoint ; calcule de la distance - 1/2 encoche ; calcule du point sur la courbe correspondant à cette abscisse : vlax-curve-GetPointAtDist ; calcule de la distance + 1/2 encoche ; calcule du point sur la courbe correspondant à cette abscisse : vlax-curve-GetPointAtDist ; calcule du paramètre du point cliqué : vlax-curve-GetParamAtPoint ; calcule du paramètre (indice) du sommet précédent ; insertion du 1er point à l'indice +1 (vla-addVertex oPolyVla (+ dParam 1) (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray vlax-vbdouble (cons 0 1)) (list (car PT1) (cadr PT1)))) ) ; insertion du 2nd point à l'indice +2 (vla-addVertex oPolyVla (+ dParam 2) (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray vlax-vbdouble (cons 0 1)) (list (car PT2) (cadr PT2)))) ) ; mise en place du bulge au 1er point ) Bon courage
  24. Ici : https://gilecad.azurewebsites.net/Lisp.aspx, voir Polysegments Olivier
  25. Olivier Eckmann

    Inversion des altitudes

    Si c'est pour un calcul de cubature, je suppose que ça va passer par un MNT. Dans ce cas, faire un MNT avec les points topo en Z positif, puis faire un MNT sous forme d'un grand rectangle à Z=0 Puis faire un MNT différentiel entre le MNT à 0 et le MNT positif => MNT miroité . 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é