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. Salut Gilles, Je te propose ça (sans aucun contrôle) (defun paramToAngle (ellipse param / dA dB X Y ) (setq dA (distance '(0 0 0) (cdr (assoc 11 (entget ellipse))))) (setq dB (* dA (cdr (assoc 40 (entget ellipse))))) (setq X (* dA (cos param))) (setq Y (* dB (sin param))) (atan Y X) ) Par contre je n'arrive pas dans AutoCAD à créer une ellipse avec un grand axe plus petit que le petit axe. Dans ton exemple, avec une ellipse 60 grand rayon et 10 petit rayon, il faut un paramètre de 64.3° pour obtenir un angle de 19.1° Olivier
  2. Bonjour, Très grosse nouveauté pour la partie Map 3D, c'est enfin le support d'une version récente de PostGreSQL 12.2 et PostGis 3.0. On aurait aimé la version 12.4 de PostGres (sortie au mois d'août 2020), mais bon. Sur le reste, je ne me prononce pas, on verra à l'usage. Olivier
  3. Bonjour, Clair pour moi, je déteste cette tendance à tout mettre en thème sombre ou noir. Olivier
  4. Bonjour, Si tu veux apprendre sérieusement, prends un bon MOOC de plusieurs heures avec une vraie progression pédagogique. Je ne le connais pas, mais au vu du programme celui-ci semble intéressant : https://openclassrooms.com/fr/courses/218202-apprenez-a-programmer-en-c-sur-net Il y a aussi la plateforme Learn chez microsoft : https://docs.microsoft.com/fr-fr/learn/ Ne vas surtout pas te jeter sur 3 minutes de tuto youtube pour régler un problème de "bidouille". Olivier
  5. Bonjour, Il me semble que depuis AutoCAD 2020, la commande purger à évoluer pour afficher (onglet "non purgeable") la raison de "non purgeabilité" d'un objet (par exemple un calque) en indiquant où il est utilisé (dans un bloc par ex). Olivier
  6. Bonjour Denis, Je ne peux que confirmer ce que Gilles et Didier ont déjà dit et insisté, il faut décomposer et ne pas essayer de brûler les étapes. A mon avis, si c'est difficile en Lisp, c'est surtout un manque de rigueur et trop de bidouille. Il y a aussi un manque de compréhension des (types d') objets manipulés, que ce soit dans les variables, ou les paramètres transmis à une fonction et ceux retournés par cette même fonction. Le fait de disposer d'un IDE (Visual Studio) plus moderne et performant au lieu de l'IDE VL d'AutoCAD ne comblera pas le manque de rigueur et ne permettra pas de régler les problèmes rencontrés sur le Lisp. Pour le C# c'est bien de s'y mettre, mais il faut procéder par étape. Inutile de vouloir modifier la base de données du DWG avec les API d'AutoCAD avant d'être à l'aise sur la programmation .Net Si tu veux appréhender tu peux partir d'un exemple simple. Ton message pour lire et décoder ton fichier de liste de calque avec ton séparateur # pourrait être une bonne base de d'apprentissage. Dans Visual studio, tu crées un EXE Windows simple: - 1 dialogue avec un bouton pour sélectionner ton fichier - 1 textbox pour afficher le nom du fichier sélectionné - 1 bouton analyser avec lequel tu lis le fichier et tu affiches chaque ligne dans un messagebox - ensuite tu remplaces le messagebox par une listbox dans ton dialogue pour afficher chaque ligne de ton fichier - ensuite tu crées une struct avec 3 membres (nom, couleur, description) pour stocker chaque données de ton fichier texte - puis une List<> de ta struct pour charger tout le contenu du fichier texte, puis tu utilises ta list pour remplir ta Listbox - ensuite tu remplaces ta struct par une classe avec 3 membres privés, tu prévois 2 constructeurs (1 simple et 1 pour initialiser les 3 membres, dont la couleur avec une valeur par défaut 7), et les fonctions de lectures/écriture de tes variables membres - ensuite tu crées un second dialogue auquel tu passes ta liste de classe en paramètre, et tu affiches les données dans un datagridview (3 colonnes). - tu interprètes la couleur : si c'est une couleur simple, tu affiches le contenu de la cellule en vert et si c'est une couleur vraie, tu utilises cette couleur pour colorier le fond de la cellule - tu laisses la cellule du nom de calque éditable pour pouvoir modifier le nom et quand ta cellule perd son focus, tu valides le nom (pas de caractères spéciaux, pas de nom en double dans la liste...) sinon tu refuses la modif et tu rétablis l'ancienne valeur - Si les modif sont bonnes, tu valides ton dialogue et tu reviens dans ton 1er dialogue - tu ajoutes un nouveau bouton pour sélectionner/créer un nouveau fichier texte et tu réécris ta structure modifiée dans ce nouveau ficher avec un autre séparateur (par ex ";") Voilà, lorsque tu seras à l'aise avec ça et que tu nous auras mis une petite vidéo de la démonstration, on pourra s'attaquer à l'étage supérieur. Olivier
  7. Bonjour, Toujours pour m'amuser, plutôt qu'un grip rond tout basique pour la rotation, j'ai dessiné un grip en forme de tête de cheval (bah oui quand la passion vous tient) https://autode.sk/2ONyPMc Olivier
  8. Aïe aïe aïe, je n'ai pas tout vert dans mes habitudes de nommage. Mais ça fait des années que j'ai l'habitude d'indiquer sur le 1er ou les 2 premiers caractères le type de la variable. Ca va être dur de changer ça. Merci pour ces explications en tout cas. Olivier
  9. Bonjour, En France aussi on fait des choses sympa avec le drone. Dans la grande cascade du parc des Buttes Chaumont : pilotage à vue, tout dispositif d'évitement déconnecté, pour faire des prises de vues qui permettront de reconstruire le maillage 3D par photogrammétrie. J'ai filmé ça avec mon portable, donc pas terrible, mais c'est impressionnant à voir et surtout la stabilité du drone, alors qu'il ne reçoit plus aucune données GPS. Olivier
  10. Merci Giles. Je me permet une question pour toi. Dans tes codes, je vois souvent que tu déclares tes variables en var et non pas dans son type explicite. Pour quelle raison (quel intérêt), utilises tu la déclaration de type implicite? Il me semble avoir lu une réponse de ta part dans une autre discussion, mais je ne retrouve plus. Olivier
  11. Bonsoir, Comme les messages de début de semaine ont été supprimés, je reposte. Comme je le disais, je suis hors sujet et j'ai très honteusement plagié le code de Gilles, mais j'ai joué avec les overrule pour surcharger le graphisme d'un cercle par celui du challenge. J'ai ajouté un grip de rotation pour modifier l'orientation des polygones. Il y a 2 commandes (dans le ZIP - à débloquer si nécessaire): LAPOSTE qui permet de créer l'objet cercle par centre / bord (le 2nd point donnant le diamètre et al rotation initiale) LAPOSTEUPD qui permet de mettre à jour/transformer un cercle existant avec le nombre de cercle et de sommet. Voilà la mise en œuvre : ICI Olivier LaPoste.zip
  12. Ca se crée à la main. C'est un dossier windows qui contient un fichier "PackageContents.xml" et un sous-dossier Contents dans lequel tu organises comme tu veux des données (Lisp, menu, DWG...) Il faut juste que ton XML explique à AutoCAD où trouver ses infos. Tu as un exemple de Gilles ICI Ensuite le .BAT ne fait que copier/écraser tes fichiers lors de la première installation et des mises à jour successives Olivier
  13. Bonjour, Il y a 3 dossiers dans lesquels tu peux mettre un Bundle "C:\Program Files\Autodesk\ApplicationPlugins" "C:\ProgramData\Autodesk\ApplicationPlugins" "%USERPROFILE%\AppData\Roaming\Autodesk\ApplicationPlugins" Au lancement d'AutoCAD, celui ci explore ces 3 répertoires à la recherche de dossiers nommés XXXXX.bundle Dans chaque dossier, il cherche un fichier "PackageContents.xml" dans lequel il cherche les infos relatif à sa version pour savoir quoi charger : Lisp, ARX, DLL, menu, palette... Ensuite à toi de mettre ce que tu veux dans ton sous-dossier Contents Olivier
  14. Voir ICI pour créer un plugin bundle qui se chargera via le mécanisme d'autoloader tu crées un dossier DH.bundle qui contient tout ce dont tu as besoin et un fichier MiseAJour.BAT qui contient xcopy DH.bundle\*.* %USERPROFILE%\AppData\Roaming\Autodesk\ApplicationPlugins\DH.bundle\*.* /S/E/H/C/K/R/Y Olivier
  15. Denis, Donc il te faut la seconde solution avec le principe de l'autoloader (dossier .bundle) mis en place depuis la version AutoCAD 2012. Sur ta clé tu mets un .BAT qui met à jour le dossier : %USERPROFILE%\AppData\Roaming\Autodesk\ApplicationPlugins Et au lancement suivant d'AutoCAD, tout se met à jour et se charge automatiquement. Olivier
  16. Bonjour, Non, la commande SUBST consiste à donner une lettre de lecteur à n'importe quel dossier. Par ex SUBST W: "C:\Mes données\Mon dossier de travail" tu obtiens un disque W: qui est un "raccourci" pour accéder à ton répertoire (et tous ses sous-répertoires). Ce n'est pas conservé après reboot, donc il faut le lancer à chaque fois, mais il va bien falloir que l'utilisateurs te dise où il a dézippé ton fichier. Si il l'a dézippé sur son disque et qu'il l'a ensuite copié sur sa clé USB (branchée donc avec une lettre), il aura tes programmes à 2 endroits accessibles sur son PC. Il faut qu'il te dise où ça se trouve, surtout s'il fait une mise à jour que dans 1 seul endroit, tu seras bien embêté pour savoir lequel charger. Tu peux très bien avoir un BAT sur ta clé qui initialise ce SUBST , à lancer à chaque démarrage du PC ou chaque fois que tu branches ta clé. Sinon, il faut utiliser la technique de chargement depuis le .bundle Tu dois avoir les droits d'écriture au moins sur "C:\Users\Nom_d_utilisateur\AppData\Roaming\Autodesk\ApplicationPlugins" A la rigueur un .BAT sur ta clé qui mette à jour ce dossier pour un chargement automatique. L'avantage, c'est que AutoCAD s'occupe de tout : Lisp, menu, palette... De toute manière, si tu dois "gérer" pas mal de PC et qu'il n'y a aucune rigueur, ni aucune similitude dans les installations/droit/config tu vas passer ton temps à essayer de comprendre pourquoi ça marche chez toi et pas chez eux. Moi j'ai 50 stations AutoCAD depuis la version 2012 à 2021, et ça fonctionne, mais c'est carré sur le déploiement et tout le monde travaille de la même manière. Olivier
  17. Bonjour, Pourquoi ne pas faire un "subst" pour affecter la même lettre à un répertoire différent pour chaque PC. SUBST Olivier
  18. Olivier Eckmann

    test

    "rettlee èrmire plae imprup seu jontincfoa "
  19. Olivier Eckmann

    Compare surface

    Bonjour, Eventuellement, avec la commande REGION tu convertis tes sous-masses en région, puis avec la commande UNION, tu sélectionnes toutes tes sous masses. Dans les propriétés de la nouvelle région créée tu disposes de sa surface à comparer à la surface de ta masse. Attention, selon la valeur de la variable DELOBJ, tes polylignes originales seront effacées ou conservées. Si tu as un écart (masse > somme des sous masse) et que tu veux savoir où, tu convertis ta masse en région, puis avec la commande SOUSTRACTION tu soustraies de ta masse, la région unifiée des sous masses. Là où il reste un peu "d'objet" c'était un trou. Olivier
  20. Et bah ça dépend du géomètre , c'est comme les Olivier
  21. Bonsoir, Le géomètre est toujours un peu compliqué dans ses arrondis, bien que ce soit l'homme de la "juste" mesure Sans compensation "mathématique", la vie n'est rien. Voilà un exemple Pour savoir quel chiffre doit basculer du coté obscur, il te faut la décimale suivante. Olivier
  22. Salut Patrice, Je savais bien qu'en évoquant Automap, tu allais me rafraîchir mes neurones vieillissants. Olivier
  23. Bonjour, Il faut que le séparateur décimal dans le fichier soit un point et non pas une virgule. Olivier
  24. Bonjour, En fait c'est le même driver, ce sont juste 4 PC3 qui ont été ajoutés par copie du DWG to PDF Olivier
  25. Bonjour, Il faut enlever le \n dans le texte de demande du 1er point. Avec ce nouveau code ça doit fonctionner ^C^C(command "_PLINE" ".XY" (getpoint "Point de départ") 0) Il y a longtemps dans Covadis, il y avait une commande (à l'issue de l'intégration d'Automap) qui permettait de faire une poly à 0, mais je ne l'ai pas retrouvé. 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é