Aller au contenu

Olivier Eckmann

Membres
  • Compteur de contenus

    2 354
  • Inscription

  • Dernière visite

  • Jours gagnés

    120

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

  1. Bah oui TF1 et Antenne 2 OK je sors aussi...
  2. Bonjour, je vais surement dire une bêtise, mais si l'attribut est constant et non modifiable, à quoi ça sert de l'extraire puisque tu connaîs forcément sa valeur? Olivier
  3. Merci Maxence, je vais voir de ce côté. Olivier
  4. Bonjour, je dois développer une appli (C#) qui est plutôt de type base de données : - 1 table principale : 50 à 200 enregistrements avec une quinzaine de champ, dont un contiendra des morceaux de document word (certainement stocké en RTF) - 6 à 7 tables liées à ma table principale par un champ clé. Chaque enregistrement de la table principale sera lié à une polyline AutoCAD. Je n'ai pas envie de stocker la BDD en externe et je souhaite que le DWG contienne tout. Je me pose la question sur la meilleure solution: - stocker les infos dans une BDD (type SQLite vraisemblablement) puis stockage en binaire dans le DWG. La BDD serait "extraite" par l'appli, travaillée, puis ré-incorporée à la sauvegarde. Je ne sais si c'est possible. - stocker dans un dictionnaire (NOD) puis remonter dans une structure de type Dictionnary et travailler tel quel. La première solution est intéressante pour les traitements sur la base, table liée, requête... mais le stockage n'est pas forcément simple La deuxième solution est plus "Autocadienne" et je l'ai déjà mise en œuvre, mais je serais obligé de re-développer les liens (interactions) entre mes tables. Je suis preneur de toutes remarques, infos ou idées sur le sujet. Merci Olivier
  5. Olivier Eckmann

    Calque "0"

    Bonjour, quelque chose comme ça (command "_undefine" "_qsave") (defun C:QSAVE () (if (setq JEU (ssget "x" (list (cons 8 "0")))) (progn (alert (strcat "Les " (itoa (sslength JEU)) " objets présents sur le calque 0 seront effacés, \ncar cela ne respecte pas la charte graphique" )) (command "_erase" JEU "") ) ) (if (= 1 (getvar "dwgtitled")) (command "._save" "" "_Y") ;If already saved, just save it (command "._save" "~") ;If new drawing, open dialog to save ) (princ) )
  6. Olivier Eckmann

    Calque "0"

    Bonjour, Tu modifies la commande "Sauvegarder" pour qu'elle supprime tous les objets du calque 0 avant de sauvegarder le dessin. Ça devrait calmer assez rapidement les utilisateurs. Si tu es gentil tu préviens, comme ça ils seront obligés de faire un U et de les changer de calque. Olivier
  7. Bonjour, Si Covadis est installé dans les mêmes répertoires sur les 2 PC, il suffit de copier le dossier "Config" de l'ancien PC sur le nouveau pour retrouver ses réglages. Olivier
  8. Bonjour, (defun GetFolders (path / folders) (if (member "." (setq folders (vl-directory-files path nil -1))) (cddr folders) folders ) ) (defun GetFiles (path pat / ) (vl-directory-files path pat 1) ;pat = "*.pdf" ) (defun CreateListePdf (path / lsFiles sFileName lsFolders sFolderName) (setq *lsPdfFiles* nil) (setq *lsPdfPath* nil) ; traite les fichiers du dossier racine (if (setq lsFiles (GetFiles path "*.pdf")) (foreach sFileName lsFiles (setq *lsPdfFiles* (append *lsPdfFiles* (list (strcase sFileName)))) (setq *lsPdfPath* (append *lsPdfPath* (list path))) ) ) ; Boucle sur les sous dossiers (if (setq lsFolders (GetFolders path)) (foreach sFolderName lsFolders (setq path2 (strcat path "\\" sFolderName)) (if (setq lsFiles (GetFiles path2 "*.pdf")) (foreach sFileName lsFiles (setq *lsPdfFiles* (append *lsPdfFiles* (list (strcase sFileName)))) (setq *lsPdfPath* (append *lsPdfPath* (list path2))) ) ) ) ) (princ (strcat "\n" (itoa (length *lsPdfFiles*)) " fichiers PDF trouvés")) (princ) ) La fonction GetFiles permet de récupérer la liste des fichiers contenu dans un dossier La fonction GetFolders permet de récupérer la liste des sous dossiers d'un dossier donné. La fonction CreateListePdf utilise les 2 fonctions précédentes pour rechercher tous les PDF contenus dans un dossier et ses sous-dossiers et créer 2 variables globales : *lsPdfFiles* qui contient la liste des PDF dans laquelle il faudra rechercher si ton texte existe *lsPdfPath* qui contient la liste des dossiers correspondant aux fichiers de la liste précédente. Tu peux essayer de voir du côté d'une fonction récursive pour balayer tout un dossier et ses sous-dossiers sur un niveau d'imbrication "infini". Olivier
  9. Bonsoir, essaie avec ça (defun C:HYPTXT ( / JEU I oTxt oTxtVal) (if (setq JEU (ssget (list (cons 0 "TEXT")))) (progn (setq I 0) (repeat (sslength JEU) (setq oTxt (ssname JEU I)) (setq I (1+ I)) (setq oTxtVal (cdr (assoc 1 (entget oTxt)))) (if (> (strlen oTxtVal) 2) (cond ((= (substr oTxtVal 1 2) "RP") (seturl oTxt (strcat ".\\reseau pluvial\\" oTxtVal ".pdf")) ) ((= (substr oTxtVal 1 2) "RE") (seturl oTxt (strcat ".\\reseau egouts\\" oTxtVal ".pdf")) ) ) ) ) ) ) ) Olivier
  10. On pourra bientôt télécharger et imprimer sa voiture. 44 heures pour l'imprimer et 2 jours pour la monter! c'est cool. Olivier
  11. Bonjour, je n'y connais rien en ObjectDBX, j'ai trouvé sur un bouquin "La bible du développeur Vlisp" datant de 2004 et libre de droit (les versions suivantes sont payantes, 2€70 chez Amazon pour la version ebook de 2011) qui contient le chapitre 13 sur ObjectDBX. A vue de nez la méthode DxfIn ne permet pas d'ouvrir un DXF, mais plutôt de l'insérer (importer) dans un document DWG précédemment ouvert. A essayer. Sinon la conversion du DXF en DWG est surement la meilleure méthode. Olivier
  12. Bonjour, le document DBX expose une méthode DXFIn Olivier
  13. Bonjour, dans une palette j'ai associée la macro suivante à un bouton ^C^Cstart;chrome.exe; et ça me lance chrome pour un chemin il faut remplacer les \ par des / ^C^Cstart;C:/DONNEES/PHOTOS/maphoto.jpg; Olivier
  14. Bonjour, dans ce fil de discussion, message 605 Olivier
  15. Salut Thierry, Avec EXT, CEN et INT ça plante. Je pense que c'est la combinaison CENTRE et INTERSECTION qui pose problème. Olivier
  16. Bonjour, j'ai pu le reproduire sous Covadis 14.0b et MAP 2012. Le problème se pose lorsque l'accrochage CENTRE est activé et que l'objet caractéristique est une polyligne contenant au moins un arc (pas de souci sur un cercle). Dès que AutoCAD cherche à s'accrocher au centre de l'arc, il y a une erreur fatale. Olivier
  17. Bonsoir, les drivers cadalyst 8.982 installés sur le PC datent de Juillet 2012, ils ont 2 ans de retard. Il serait bon de mettre à jour avec la dernière version téléchargeable ici Olivier
  18. Bonjour, Si j'ai bien compris la question, il suffit que tu fasses un copie de ton dessin d'origine, ensuite tu effaces tous les objets, puis tu utilises la commande de Rebcao FUSCALQUES avec les options NOMMER pour fusionner tous tes calques dans le calque 0 , ainsi tous les blocs sont redéfinis dans le calque 0, puis tu ré-insères ton dessin d'origine pour récupérer tous tes objets. Reste seulement le problème des attributs de blocs qui seraient dans des calques forcés. Olivier
  19. Bonjour, C'est normal, dans une cote superposée tu as 2 grips, celui qui correspond au point cliqué et le second qui correspond au 0 du SCU (SCG) au moment de la création. Donc si tu déplaces (wbloc) toute la cote son point de base relatif ne change pas. Pour corriger cela, il suffit que tu dé-zoomes pour voir le 2ème grip en bas et que tu le remontes à 0 au lieu de -5 Olivier
  20. Bonjour, 1. lance la commande CONVERTCTB pour convertir par exemple AutoCAD.CTB en TOTO.STB 2. lance ensuite la commande CONVERTPSTYLES en sélectionnant le STB précédemment créé. Olivier
  21. Bonsoir, essaie d'installer le SP2 de MAP 2015 Olivier
  22. Effectivement, j'ai modifié le programme pour ajouter le Z au point 2D renvoyé par ta fonction Olivier
  23. Bonjour, j'avais déjà modifié la valeur retournée par ta fonction (list newx newy comp) au lieu de (list newx newy) Olivier
  24. Bonjour, Les réponses se font rares aussi à cause de Civil qui est un bon produit mais pas facile à appréhender. Sans vouloir rentrer dans de nouvelles polémiques sur ce produit, pour Civil: - une formation de base pour utiliser les fonctions du logiciel => 3 à 5 jours - si tu souhaites personnaliser et adapter les styles existants à tes besoins (graphismes, nombre de décimales, bandeau...) => 3 à 4 jours supplémentaires - si tu souhaites personnaliser les bibliothèques de profils types (subassembly composer), les modèles de regards (part builder) => une semaine supplémentaire - si tu souhaites gérer des choses plus précises orientées EXE (blindage, CCTG 70...) => change de logiciel, Civil n'est pas fait pour ça. Olivier
  25. Bonjour, avec quelque chose comme ça en s'inspirant du code de cap06 et en ajoutant la sélection multiple de poly3D (defun c:ZSurPoly( / val JEU I oPoly oVtx oVtxLst PT1 PT2 newpt) (if (and (setq val (getreal "\nAltitude recherchée : ")) (setq JEU (ssget (list (cons 0 "POLYLINE")))) (setq I 0) ) (progn (repeat (sslength JEU) (setq oPoly (ssname JEU I)) (setq I (1+ I)) (setq PT1 nil) (if (= 8 (logand (cdr (assoc 70 (entget oPoly))) 8)) (progn (setq oVtx (entnext oPoly)) (while (/= "SEQEND" (cdr (assoc 0 (setq oVtxLst (entget oVtx))))) (setq PT2 (cdr (assoc 10 oVtxLst))) (setq newPt nil) (if (and PT1 (or (and (>= (caddr PT1) val) (<= (caddr PT2) val)) (and (<= (caddr PT1) val) (>= (caddr PT2) val)) ) ) (progn (setq newPt (cap-i3d pt1 pt2 val)) ) ) (setq PT1 PT2) (setq oVtx (entnext oVtx)) (if newPt (entmake (list (cons 0 "POINT") (cons 10 (list (car newpt) (cadr newpt) val)) (cons 8 (getvar "CLAYER")) ) ) ) ) ) ) ) ) ) ) (defun cap-i3d (p1 p2 comp) (setq c (/ (- (caddr p1) comp) (- (caddr p2) comp)) newx (/ (- (* c (car p2)) (car p1)) (- c 1)) newy (/ (- (* c (cadr p2)) (cadr p1)) (- c 1)) ) ;_ Fin de setq (list newx newy) ) 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é