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. Tu vires les C: devant les noms des fonctions et tu vires les (princ) Olivier
  2. Salut Gilles, j'ai fait un petit screencast pour montrer ce que je souhaite faire. Dans la vidéo, je sélectionne d'abord 4 objets et je sors, puis je clique à nouveau sur le même bouton, les 4 objets précédents sont "comme si je venais de les sélectionner" et je reprend ma sélection en cours pour ajouter ou supprimer d'autres objets. Je valide, puis je clique à nouveau, et là encore je peux ajouter de nouveaux objets ou supprimer ceux déjà sélectionnés lors d'une précédente sélection. J'avais développé ça en C++ il y a une dizaine d'année, mais je ne me souviens plus du tout comment j'avais fait. Je voudrais le même fonctionnement en C# aujourd'hui. J'espère avoir été plus clair. Olivier
  3. Bonjour, une petite fonction lisp (defun PZ (/ P1 P2 P3 PT) (if (and (setq P1 (getpoint "\n1er point")) (setq P2 (getpoint "\n2eme point")) (setq P3 (getpoint "\nPoint Z"))) (setq PT (list (* 0.5 (+ (car P1) (car P2))) (* 0.5 (+ (cadr P1) (cadr P2))) (caddr P3))) ) PT ) et dans ta macro (pz) _nod \_nod \_nod \ Olivier
  4. Bonjour, Dans un dialogue, j'ai un bouton qui me permet de sélectionner des objets via GetSelection(). Imaginons que j'ai sélectionné 5 objets, puis valider pour retourner à mon dialogue. Là je m’aperçois que j'ai sélectionné trop d'objets et j'aimerais en retirer (ou ajouter) d'autres, je voudrais pouvoir recliquer sur le bouton de sélection et que mes objets précédemment sélectionnés soit ajoutés aux objets en cours pour pouvoir en sélectionner d'autres ou en retirer (option _R remove) de mon jeu de sélection en cours. J'ai essayé de mettre mes objets précédemment sélectionnés dans le SetImpliedSelection mais dans ce cas, le Getselection me les renvoie immédiatement sans me donner la main. J'ai essayé de les mettre Hightlight avant d'appeler GetSelection, mais si j'utilise l'option _R, j'ai bien X objets trouvés, mais je sors avec un PromptStatus en error et un résultat NULL. Si vous avez une idée. Merci Olivier
  5. Olivier Eckmann

    Zoom et dézoom

    Bonjour effectivement sur MAP le problème est le même MAP 3D 2012 (zoomfactor = 50): VIEWSIZE = 410.1042 (lecture seule) => position initiale VIEWSIZE = 231.8773 (lecture seule) => après 2 cran en avant VIEWSIZE = 521.4692 (lecture seule) => après 2 cran en arrière MAP3D 2014 (zoomfactor = 50): VIEWSIZE = 416.9832 (lecture seule) => position initiale VIEWSIZE = 185.5614 (lecture seule) => après 2 cran en avant VIEWSIZE = 417.3168 (lecture seule) => après 2 cran en arrière Olivier PS : ça fait plus de 20 ans que j'utilise MAP et j'avais jamais fait attention à ça.
  6. Bonjour, il y a le convertisseur de chez ODA : https://www.opendesign.com/guestfiles/teighafileconverter Attention au blocs dynamique qui posent parfois problème, sinon ça fonctionne bien. Olivier
  7. Salut Patrice, J'ai modifié le code pour ajouter la fonction POLYTXT Olivier
  8. Olivier Eckmann

    trier des points topo

    Bonjour, impossible n'est pas AutoCAD. Pour avoir dans le dessin des blocs avec le même nom, mais pas les mêmes attributs, c'est extrêmement simple. 1. créer un bloc avec 2 attributs (par ex MAT et ALT), puis insérer quelques-uns de ces blocs => x blocs avec 2 attributs 2. rentrer dans l'éditeur de bloc et ajouter un nouvel attribut (par ex COD) puis insérer quelques-uns de ces blocs => on a toujours les x blocs de départ avec 2 attributs, mais on a en plus y blocs avec 3 attributs 3. rentrer dans l'éditeur de bloc et supprimer l'attribut COD et renommer l'attribut ALT en ALTITUDE, puis insérer à nouveau quelques-uns de ces blocs => on a toujours les x blocs de départ avec 2 attributs, et les y blocs avec 3 attributs, et on a en plus z blocs avec 2 attributs (MAT et ALTITUDE) La définition courante du bloc ne peut avec qu'une seule forme, c'est celle que l'on visualise dans l'éditeur de bloc et qui est utilisée lorsque l'on insère de nouveaux blocs, mais dans le dessin, on peut avoir sous un même nom autant de blocs que l'on veut mais avec autant d'attributs différents que possible. Pour répondre à la question initiale, la commande Covadis AFFLTOPOT (à utiliser plutôt que la commande "afficher la liste des points", car elle permet d'afficher tous les points y compris les matricules doubles) affiche dans une grille la liste de tous les points du dessins. il suffit de cliquer sur la colonne ALT pour trier la liste selon cette valeur croissante, ainsi tous les points qui n'ont pas d'attribut seront triés en début de liste. Ensuite, sélectionner tous les points ayant un attribut ALT nul ou non renseigné, puis faire un clic droit et "Ajouter au jeu de sélection". Quitter le dialogue et tous les points précédemment sélectionnés seront "gripsés". Il sera alors possible de les changer de calque ou n'importe quelle autre action. Olivier
  9. Hello, Tu peux essayer ça qui doit fonctionner. (defun C:POLYTXT ( / sChoix JEU JEU_POLY JEU_POLY_OK I J oEnt oPoly lsPts iNbText ptLst ) (initget 1 "Aucun Un Plusieurs") (setq sChoix (getkword "\nAucun/Un/Plusieurs ")) (if (setq JEU (ssget (list (cons 0 "*POLYLINE,TEXT")))) (progn (setq I 0 JEU_POLY (ssadd)) (repeat (sslength JEU) (setq oEnt (ssname JEU I)) (setq I (1+ I)) (if (= "TEXT" (cdr (assoc 0 (entget oEnt)))) (setq lsPts (append lsPts (list (GetTextPosition oEnt)))) (if (= 1 (logand 1 (cdr (assoc 70 (entget oEnt))))) (ssadd oEnt JEU_POLY) ) ) ) (setq JEU nil I 0 JEU_POLY_OK (ssadd)) (repeat (sslength JEU_POLY) (setq oPoly (ssname JEU_POLY I)) (setq I (1+ I)) (setq J 0 iNbText 0 ptLst (GetCoordinates oPoly)) (repeat (length lsPts) (if (In_Figure (nth J lsPts) ptLst) (setq iNbText (1+ iNbText)) ) (setq J (1+ J)) ) (cond ((and (= 0 iNbText) (= sChoix "Aucun")) (ssadd oPoly JEU_POLY_OK)) ((and (= 1 iNbText) (= sChoix "Un")) (ssadd oPoly JEU_POLY_OK)) ((and (> iNbText 1) (= sChoix "Plusieurs")) (ssadd oPoly JEU_POLY_OK)) ) ) (sssetfirst nil JEU_POLY_OK) ) ) ) (defun C:POLYCSV ( / sFileName JEU JEU_POLY JEU_POLY_OK I J oEnt lsText lsPts) (if (and (setq sFileName (getfiled "sélectionner un fichier CSV" (getvar "DWGPREFIX") "CSV" 0)) (setq JEU (ssget (list (cons 0 "*POLYLINE,TEXT")))) ) (progn (setq f (open sFileName "r")) (while (setq sLine (read-line f)) (setq lsText (append lsText (list sLine))) ) (close f) (setq I 0 JEU_POLY (ssadd)) (repeat (sslength JEU) (setq oEnt (ssname JEU I)) (setq I (1+ I)) (if (= "TEXT" (cdr (assoc 0 (entget oEnt)))) (if (member (cdr (assoc 1 (entget oEnt))) lsText) (setq lsPts (append lsPts (list (GetTextPosition oEnt)))) ) (if (= 1 (logand 1 (cdr (assoc 70 (entget oEnt))))) (ssadd oEnt JEU_POLY) ) ) ) (setq JEU nil I 0 JEU_POLY_OK (ssadd)) (repeat (sslength JEU_POLY) (setq oPoly (ssname JEU_POLY I)) (setq I (1+ I)) (setq J 0 iNbText 0 ptLst (GetCoordinates oPoly)) (repeat (length lsPts) (if (In_Figure (nth J lsPts) ptLst) (setq iNbText (1+ iNbText)) ) (setq J (1+ J)) ) (if (= 1 iNbText) (ssadd oPoly JEU_POLY_OK) ) ) (sssetfirst nil JEU_POLY_OK) ) ) ) (defun GetTextPosition (oText / PT) (if (and oText (= "TEXT" (cdr (assoc 0 (entget oText)))) ) (progn (if (and (= 0 (cdr (assoc 72 (entget oText)))) (= 0 (cdr (assoc 73 (entget oText))))) (setq PT (cdr (assoc 10 (entget oText)))) (setq PT (cdr (assoc 11 (entget oText)))) ) ) ) PT ) ; == EN ;* The algorithm is taken on http://algolist.manual.ru/maths/geom/belong/poly2d.php ;* On the basis of vk_IsPointInside ;* Posted http://www.arcada.com.ua/forum/viewtopic.php?p=12322 ;* Boundary - the list normalized [i.e. only or (X Y) or (X Y Z)] points ;* Point - chek point ;* Boundary - list of boundary point (defun In_Figure (Point Boundary / FarPoint Check) ;_????????? Boundary ?? ??????? car ? last ???? ? ?? ?? ????? ;_The same point checks Boundary on a condition car and last (if (not (equal (car Boundary)(last Boundary) 1e-6)) (setq Boundary (append Boundary (list(car Boundary))))) (setq FarPoint (cons (+ (apply 'max (mapcar 'car Boundary)) 1.0) (cdr Point) ) ;_ end of cons ) ;_ end of setq (or (not (zerop (rem (length (vl-remove nil (mapcar (function (lambda (p1 p2) (inters Point FarPoint p1 p2)) ) ;_ end of function Boundary (cdr Boundary) ) ;_ end of mapcar ) ;_ end of vl-remove ) ;_ end of length 2 ) ;_ end of rem ) ;_ end of zerop ) ;_ end of not (vl-some (function (lambda (x) x)) (mapcar (function (lambda (p1 p2) (or Check (if (equal (+ (distance Point p1) (distance Point p2) ) ;_ end of + (distance p1 p2) 1e-3) ;_ end of equal (setq Check T) nil) ) ) ;_ end of lambda ) ;_ end of function Boundary (cdr Boundary) ) ;_ end of mapcar ) ;_ end of vl-some ) ;_ end of or ) (defun GetCoordinates (oPoly / ptLst) (if (and oPoly (setq oPolyLst (entget oPoly))) (progn ; poly allégée (if (= "LWPOLYLINE" (cdr (assoc 0 oPolyLst))) (setq ptLst (mapcar 'cdr (vl-remove-if-not '(lambda(x)(= 10 (car x))) (entget oPoly)) ) ) ;poly ancienne (progn (setq oVtx oPoly) (while (/= "SEQEND" (cdr (assoc 0 (entget (setq oVtx (entnext oVtx)))))) (setq ptLst (append ptLst (list (cdr (assoc 10 (entget oVtx)))))) ) ) ) ) ) ptLst ) Olivier
  10. Bonjour, j'avais répondu sur le fait de sélectionner des objets dans le 1er dessin => mise en surbrillance et grips je bascule dans le second dessin, puis je reviens dans le 1er dessin => tous les objets ont été désélectionnés. Effectivement l'option P est conservée, mais pas la sélection d'objet. Pour moi c'est la même conséquence qu'une commande en cours est interrompue lorsque l'on passe dans un autre dessin. Olivier
  11. Bonjour, Je crois que ce n'est plus possible depuis AutoCAD 2015 à cause de l'abandon des fiber channel. Olivier
  12. Salut, Voilà une solution qui devrait fonctionner - ouvre un classeur Excel vierge - Alt+F11 pour afficher l'éditeur VBA - dans le code de ThisWorkBook, colles ceci Option Explicit Public WithEvents xlApp As Excel.Application Private Sub Workbook_Open() Set xlApp = Application End Sub Private Sub Workbook_Close() Set xlApp = Nothing End Sub Private Sub xlApp_WindowActivate(ByVal Wb As Workbook, ByVal Wn As Window) Wn.Caption = Wb.FullName End Sub - sauvegarde ton fichier en XLA ou XLAM (par ex TITRE.XLAM), normalement il doit te le coller directement dans ton dossier AddIns - va dans les options Excel, onglet Complément, puis Gestionnaire de complément pour activer TITRE au démarrage. Dès lors lorsque le chemin complet de ton fichier XLS apparaît. Le seul cas, qui n'est pas géré, c'est si tu le renommes, il faut le fermer /réouvrir, ou bien passer sur un autre classeur puis revenir Olivier
  13. Bonjour, je crois qu'il faut renommer l'attribut à l'intérieur de BATTMAN et pas dans l'éditeur de bloc. Olivier
  14. Bonjour, pour Excel, tu peux personnaliser la barre rapide avec la petite flèche à droite, puis tu prends toutes les commandes et tu as dans la liste un contrôle qui s'appelle "Emplacement du document" C'est un peu petit, on en vois que le début, mais on peut éventuellement faire défiler le chemin. Et c'est mis à jour automatiquement au changement de document. Olivier
  15. Olivier Eckmann

    (assoc 10 xx)

    C'est vraiment basique et un peu ancien cette doc. Si tu n'as pas l'intention d'aller beaucoup plus loin en programmation, ça suffira, sinon il faudra te pencher très sérieusement sur le bouquin de Gilles et comme il l'a ajouté, il est INDISPENSABLE de savoir lire l'anglais et à peu près l'écrire (pas forcément le parler couramment ou le comprendre à l'oral, même si c'est toujours mieux) sinon ça te bloquera très très vite dans l'apprentissage de la programmation. Olivier
  16. Olivier Eckmann

    Différence en z

    Bonjour, si c'est un résultat visuel qui est recherché, alors décales à gauche et à droite de 5cm ta poly en conservant la même altitude, puis tu fais un MNT avec les 2 poly3D, puis un coloriage par pente avec 0->3% en vert et > 3% en rouge par ex Olivier
  17. Olivier Eckmann

    (assoc 10 xx)

    Bonjour, je suis tombé sur ça grâce à Google : ICI C'est pas tout jeune, mais il y a beaucoup de chose basique y compris l'écriture d'un fichier texte à partir des coordonnées d'objets points dans AutoCAD et à la fin, il y a les pages scannées du manuel V12 avec les fonctions décrites en français. Olivier
  18. Olivier Eckmann

    Différence en z

    Bonjour, Covadis 3D / Gestion des polylignes 3D / Grille de modification Tu sélectionnes la poly3D, ça remplit la grille et tu cherches dans la colonne pente lorsque le chiffre est supérieur à 3% En sélectionnant cette ligne dans la grille, le segment correspondant sur la poly3D clignote en vert. Olivier
  19. Olivier Eckmann

    LIAISON DE TABLES

    Bonsoir, Ci-joint la vidéo pour la mise en oeuvre des vues de documents. L'extension du fichier .JPG étant stocké dans la base de données, il faut saisir juste un espace, car on ne peut pas le laisser vide. Pour visualiser l'image, j'ai choisit Chrome, mais tu peux utiliser n'importe quelle application capable d'afficher l'image. Pour extraire les images, il faut ouvrir ta TABLE tombe, puis dans la colonne Photo, tu fais un double-clic sur PACKAGE, ça ouvre la photo dans ton logiciel d'imagerie, puis tu fais Fichier/Enregistrer sous et tu stockes ton fichier .JPG Olivier PS : ta boite est pleine, on ne peux plus te déposer de messages à partir de CadXP, pourrait-on discuter par MP à propos de tes élèves qui vont sortir avec leur diplôme?
  20. Bonjour, Merci pour les infos, mais rien en natif à priori, comme quoi il reste encore des choses à développer sous MAP au cas où il y aurait des développeurs qui s'ennuient chez Autodesk. Je vais peut-être en profiter pour jeter un coup d’œil au développement sous FDO direct. Si j'arrive à quelque chose, je vous tiens au courant. Olivier
  21. Hello, J'hésite encore, mais je vais peut-être tenter une install propre en W10. En vérifiant mes périphériques et logiciels installés, j'ai un stick USB Wifi (netgear) pour me connecter à ma box. Officiellement, il n'y a pas de driver et il n'est pas compatible sous W10. Or lors de ma migration W7->W10, aucun souci il était reconnu et fonctionnait nickel, mais j'ai peur de ne pas pouvoir le ré-installer sous W10. Je teste ça ce week-end et si ça ne fonctionne pas, je redescends mon image disk W7. Pour les licences AutoCAD, est-ce qu'il vaut mieux les exporter puis les réimporter après restauration de mon image, ou bien est-ce que la restauration de l'image va aussi restaurer mes licences (MAP 2012 et 2014)? Olivier
  22. Bonjour, Je dispose d'un fichier SHP ponctuel relevé ou repositionné au GPS. Ce fichier possède un attribut RUE. Pour les objets existants simplement repositionnés, le nom de la rue existe déjà, mais pour les nouveaux objets, ce champ est vide. Je dispose d'un SHP des axes des voies avec leur nom. J'aimerais trouver un moyen de renseigner mon champ rue avec le nom de la rue la plus proche. => géométrie LIGNE la plus proche d'une géométrie POINT Sous MAP, je ne vois pas trop comment faire. Je ne vois rien en natif capable de le faire. j'avais pensé à un buffer sur mes routes, puis une superposition en mode identité, mais je ne sais pas comment transférer les attributs de ma route sur mon tampon. De plus, je ne suis pas sûr que ce soit forcément la route la plus proche qui soit trouvée, car je vais devoir faire un buffer assez large pour prendre en compte aussi bien les petites routes que les larges. Je pourrais les charger via MAPIMPORT et développer une petite recherche (GetClosestPointTo), mais si je peux le traiter nativement sur le SHP ça serait mieux. Ou alors, il faut que je me mette au dev sur FDO. Merci pour toutes infos. Olivier PS : Sous QGIS, j'ai trouvé un plug-in NNJOIN qui fait le boulot, mais il crée une nouvelle couche, plutôt que de renseigner un champ existant de la couche initiale. Est-ce qu'il existe un moyen de le faire sur la couche initiale?
  23. Bonjour, sous MAP 3D 2012, aucun problème pour décaler à gauche et à droite, j'ai essayé avec différentes valeurs : 3m 3.5m 10m sans souci, aucun message d'erreur. Olivier
  24. Bonsoir, Je ne suis pas fana non plus des nouveautés, le seul problème, c'est que le 20 janvier 2020 soit dans 3 ans et demi, Windows 7 ne sera plus supporté, donc plus de programme pour cette version comme pour XP depuis 2 ans maintenant. Comme j'ai pas forcément envie de payer 140€ pour acheter une nouvelle licence Windows dans 3 ans, j'ai essayé pour voir si Windows 10 était intéressant pour 0€. Si Windows 10 et les logiciels fonctionnent au moins aussi bien que Windows 7, la migration n'est pas forcément une hérésie. C'est une machine perso, pas celle du boulot. Dans ma boite, les 40 stations AutoCAD (montées par mes soins) sont en Windows 7x64 et MAP 3D 2012 ou 2014 et pour le moment, pas question de changer quoi que ce soit. Bon ceci dit, j'ai lancé mon CD de restauration pour voir, et pas de bol. J'ai un clavier et souris sans fil USB, non reconnu par le Recovery CD de O&O donc je ne peux rien faire. Idem en rebootant sur le DVD de WIndows 7 pour tenter une récupération, je ne peux rien faire. Olivier
  25. Bonsoir, Je fais systématiquement une image de mon disque système une fois par mois. Je touche du bois, je n'en ai jamais eu besoin, mais c'est toujours mieux d'être prévoyant. D'ailleurs je me pose une question concernant la licence AutoCAD, est-ce qu'elle fonctionne directement après restauration, ou bien est-ce qu'il faut que je l'exporte, pour pouvoir la ré-importer une fois mon image restaurée? Je fais mes images avec O&O Disk Image Pro. 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é