Aller au contenu

BIM G CO

Membres
  • Compteur de contenus

    1 050
  • Inscription

  • Dernière visite

  • Jours gagnés

    2

Tout ce qui a été posté par BIM G CO

  1. Je crois que Serge a parlé récemment d'un menu contextuel mais c'est avec un fichier mnu ! fait une recherche + approfondi car je n'ai pas réussi à retrouver le post.
  2. fait des copie de ton Xref (commande autocad "_copy") tu peut aussi utiliser XDELIM
  3. La plupart des questions ont des réponses dans l'aide d'AutoCAD (référence DXF) les paires -1,5 et 330 ne sont pas à mettre car ce sont des ename unique que SEUL autoCAd sait gérer. Le point 0,0,0 n'est pas forcément le point d'insertion du bloc j'en ai fais la douloureuse expérience (même dans la table des blocs) "entmake c" crée un objet et non pas mets des objets c'est un problème de compréhension de entmake tu devrait voir dans l'aide d'AutoCAD c est une liste de paires pointées qui référence entre autre la liste des enames des éléments formant le bloc.
  4. BIM G CO

    wipeout

    ric73 envois-moi ton dessin sur mail perso j'ai la 2005 et je verrai si ton wipeout ne fonctionne pas à cause d'un bug de chargement ou une mauvaise config de ton Wipeout [Edité le 4/4/2005 par Maximilien]
  5. avec Excel XP ce n'est pas un OLB qu'il faut chercher (car il n'existe pas) mais le fichier .EXE du même nom voila l'erreur Tramber [Edité le 4/4/2005 par Maximilien]
  6. de mémore XElec est un logiiciel propriétaire de IGE-XAO et le seul moyen d'importer des données c'est DXF_14 ou DXF_12 mais attention c'est valable pour un nouveau projet. Je crois me souvenir (1999) qu'on ne peut pas importer un élément DXF dans un projet existant. Peut-être depuis les versions suivantes ont-elles évoluées dans le bon sens.
  7. parce que lorsque l'on echarge les mnu il lit les mnr et mnc (menu compilé) avant le mns ou mnu! donc pour recharger un menu je conseille (hormis AutoCAD.mnu et acet ....) d'enlenver les mnc et mnr
  8. BIM G CO

    Zoom qui bloque

    il y a aussi les limites du plan et l'étendu du plan Variables LIMITES, LIMMIN, LIMAX Variables EXTMIN, EXTMAX
  9. C'est pour ca que le style de texte Standard je fais en sorte que la XREF ne l'utilise plus! c'est souvent problème de plantage. penssez à "renommer" les style Standard dans le XREF en "Standard_" par exemple!
  10. Merci Didier, mon dinosaure préféré. Je craignais qu'il faille remonter mes manches pour comprendre le DCL et que je fasse de l'autodidact pour çà en plus des quelques années d'utilisation d'autoCAD. Et pour les chaines ca je crois que je ne m'en serais jamais douté. X13 en ce qui concerne les toturiels je vais y regarder plus précisément certainement demain. merci vous deux.
  11. BIM G CO

    Diviser et mesurer...

    = et / = ne sait ni comparé les liste ni les entités justes les nombres(entiers rééls), les chaines de caractères, les booléens (True/False) [Edité le 26/3/2005 par Maximilien]
  12. Où puis-je trouver (acheter hors ligne) un livre (référence) et / ou texte expliquant (en ligne) le DCL. (en français plus que souhaitable) j'ai repris un programme d'un de mes collègue de travail qu a travaillé en DCL et LISP. Or il n'est plus là pour l'expliquer mais il faut corriger plusieurs bugs. Ces bugs se trouvent certainement dans la vingtaine de fichiers DCL qu'il a créé ou dans la liaison LISP/DCL (variable restant à nil). et Est-il possible de regouper plusieurs DCL en un seul fichier ? [Edité le 26/3/2005 par Maximilien]
  13. BIM G CO

    textmask sur autocad 2005

    1 : voir l'ordre d'affichage de tes objets. (dans l'espace objet) si tu essaie de cacher un objet qui est devant ton wipeout ca risque d'être difficile sans faire un "_draworder" "_above" 2 : pour les textes multilignes, AutoCAD 2005 a intégré son masquage en arrière plan.
  14. Il apparit qu'avec la 2005 le noms du fichier est concaténé avec le nom du dossier+ le nom de la présentation. notre serveur d'impression plante lorsque cette concaténation depasse les 255 caractères !! "S:\\Affaires\\.......\\planRDC.dwg - XZ28b" chose que l'on avait pas avec la 2004 !!!! dans l'espoir que la 2006 règle ce problème ! ca fait bientôt un an que je demande auprès de chez HP et AutoDESk une aide!
  15. super, je vois que ca ne change pas de la version 2005 (même manip) reste plus à mon patron d'HT la 2006 ;)
  16. BIM G CO

    Blocks avec attributs

    ATTREQ = 1 . peut-être.....
  17. ou
  18. BIM G CO

    fichiers dxf

    tu te sers de ceux-ci forum 5189 mais pour toi le (Programmation 1) et non pas le (Programmation 3) tu fais ensuite du copier/coller depuis l'historique de la ligne de commande de toutes les entités que tu as sur chaque fichier et tu les recréer dans un prog avec un (entmake) à chaque entité. Je t'invite à voir l'aide AutoCAD sur la référence DXF. Je te préviens c'est du gros dossier. mais ta demande est trop générale pour que je puisse t'aider plus.
  19. BIM G CO

    fichiers dxf

    ouvre un plan vide, importe tes dessins la pompe et le moteur (avec AutoCAD - Insérer blocs) Exporte en DXF (avec AutoCAD Enregistrer sous)
  20. BIM G CO

    -purger plante la machine

    pour les calques dont la liste est longue a afficher y a-t-il une liste des filtres. c'est souvent cela qui ralenti l'affichage avec le nombre important de calques
  21. BIM G CO

    -purger plante la machine

    As-tu fais avant : "_audit;_yes;"?
  22. BIM G CO

    texte en double

    la seule alternative que je vois risque de monopoliser ton dessin pendant quelques heures: (tu auras l'impression que ton PC est planté !!! :mad: fonction pour lister tout tes textes (defun ListeTEXT (/ sel liste n boucle strtempo) (setq sel (ssget "X" '((0 . "MTEXT")))) (setq liste nil) (if sel (foreach n (ssnamex sel) (if liste (setq liste (append liste (list (entget (nth 1 n))))) (setq liste (list (entget (nth 1 n))))))) (setq sel (ssget "X" '((0 . "TEXT")))) (if sel (foreach n (ssnamex sel) (if liste (setq liste (append liste (list (entget (nth 1 n))))) (setq liste (list (entget (nth 1 n))))))) liste) puis apres faire une double boucle (while) qui va rechercher dans cette giga-liste les doublons (eq)
  23. bah moi j'ai fait l'inverse ....enfin presque à partir d'un plan archi j'arrive à récupérer les codes DXF du type de ligne (tblobjname "LTYPE" "Type de ligne à chercher") cette petite fonction crée un fichier "C:\LTYPE.LIN": (Programmation 3) (defun Programmation (ARG_TYPE / PRIVE_RESULTAT n PRIVE_ENTITE PRIVE_FILE PRIVE_BOUCLE PRIVE_ENTETE ) (cond ((= ARG_TYPE 1) ; Entité Variable Entité (progn (setq PRIVE_ENTITE nil) (while (not PRIVE_ENTITE) (setq PRIVE_ENTITE (entsel "Entité:")) ) (setq PRIVE_ENTITE (entget (car PRIVE_ENTITE))) (if (assoc 7 PRIVE_ENTITE) (progn (Princ "\nBibliothèque :") (foreach n (tblsearch "STYLE" (cdr (assoc 7 PRIVE_ENTITE))) (print n) ) ) ) (if (assoc 7 PRIVE_ENTITE) (Princ "\n\nEntité :") ) (foreach n PRIVE_ENTITE (print n)) (setq PRIVE_RESULTAT PRIVE_ENTITE) (if (and (= (cdr (assoc 0 PRIVE_ENTITE)) "INSERT") (assoc -2 (tblsearch "BLOCK" (cdr (assoc 2 PRIVE_ENTITE)))) ) (progn (Princ "\n\nEntité(s) dans le bloc:") (setq PRIVE_ENTITE (entget (cdr (assoc -2 (tblsearch "BLOCK" (cdr (assoc 2 PRIVE_ENTITE)) ) ) ) ) ) (foreach n PRIVE_ENTITE (print n)) (while (entnext (cdr (assoc -1 PRIVE_ENTITE))) (princ "\n") (setq PRIVE_ENTITE (entget (entnext (cdr (assoc -1 PRIVE_ENTITE))) ) ) (foreach n PRIVE_ENTITE (print n)) ) ) ) ) ) ((= ARG_TYPE 2) ; Table de l'entité selectionnée (progn (setq PRIVE_ENTITE nil) (while (not PRIVE_ENTITE) (setq PRIVE_ENTITE (entsel "Entité: ")) ) (setq PRIVE_ENTITE (entget (car PRIVE_ENTITE))) (if (or (= (cdr (assoc 0 PRIVE_ENTITE)) "TEXT") (= (cdr (assoc 0 PRIVE_ENTITE)) "MTEXT") ) (progn (print (cdr (assoc 0 PRIVE_ENTITE))) (setq PRIVE_RESULTAT (TABLE_ENTETE "STYLE")) ) ) (if (or (= (cdr (assoc 0 PRIVE_ENTITE)) "LINE") (= (cdr (assoc 0 PRIVE_ENTITE)) "LWPOLYLINE") (= (cdr (assoc 0 PRIVE_ENTITE)) "CIRCLE") (= (cdr (assoc 0 PRIVE_ENTITE)) "XLINE") ) (progn (print (cdr (assoc 0 PRIVE_ENTITE))) (foreach n (tblsearch "LTYPE" (cdr (assoc 6 PRIVE_ENTITE))) (if n (print n) ) ) (setq PRIVE_RESULTAT (TABLE_ENTETE "LTYPE")) ) ) (if (= (cdr (assoc 0 PRIVE_ENTITE)) "INSERT") (progn (print (cdr (assoc 2 PRIVE_ENTITE))) (setq PRIVE_RESULTAT (TABLE_ENTETE "BLOCK")) ) ) (if PRIVE_RESULTAT (progn (princ "\nListe des Entêtes: ") (foreach n PRIVE_RESULTAT (Print n)) ) ) ) ) [surligneur] ((= ARG_TYPE 3) ; Voler le type de ligne de l'archi format DXF (progn (setq PRIVE_FILE (open "C:\\LTYPE.CSV" "w")) (foreach n (TABLE_ENTETE "LTYPE") (progn (setq PRIVE_BOUCLE 0) (setq PRIVE_RESULTAT "") (setq PRIVE_ENTETE (entget (tblobjname "LTYPE" n))) (if (assoc -1 PRIVE_ENTETE) (setq PRIVE_ENTETE (vl-remove (assoc -1 PRIVE_ENTETE) PRIVE_ENTETE ) ) ) (if (assoc 5 PRIVE_ENTETE) (setq PRIVE_ENTETE (vl-remove (assoc 5 PRIVE_ENTETE) PRIVE_ENTETE ) ) ) (if (assoc 330 PRIVE_ENTETE) (setq PRIVE_ENTETE (vl-remove (assoc 330 PRIVE_ENTETE) PRIVE_ENTETE ) ) ) (if (assoc 340 PRIVE_ENTETE) (setq PRIVE_ENTETE (vl-remove (assoc 340 PRIVE_ENTETE) PRIVE_ENTETE ) ) ) (while (< PRIVE_BOUCLE (length PRIVE_ENTETE)) (setq PRIVE_ENTITE (vl-string-subst ":" " . " (vl-princ-to-string (nth PRIVE_BOUCLE PRIVE_ENTETE) ) ) ) (setq PRIVE_ENTITE (strcat "[" (substr PRIVE_ENTITE 2))) (setq PRIVE_ENTITE (strcat (substr PRIVE_ENTITE 1 (- (strlen PRIVE_ENTITE) 1) ) "]" ) ) (setq PRIVE_RESULTAT (strcat PRIVE_RESULTAT (if (/= "" PRIVE_RESULTAT) ";" "" ) PRIVE_ENTITE ) ) (setq PRIVE_BOUCLE (1+ PRIVE_BOUCLE)) ) (if (/= (cdr (assoc 2 PRIVE_ENTETE)) "Continuous") (write-line PRIVE_RESULTAT PRIVE_FILE) ) ) ) (close PRIVE_FILE) ) )[/surligneur] (t nil) ) PRIVE_RESULTAT ) Fonction connexe (defun table_entete (TB / TBLIST TBLIST TBNAME RES) (setq TBNLIST nil) (setq TBLIST (tblnext TB T)) (while TBLIST (setq TBNAME (cdr (assoc 2 TBLIST))) (setq TBNLIST (append TBNLIST (list TBNAME))) (setq TBLIST (tblnext TB)) ) (setq RES TBNLIST) ) et un simple entmake fera l'affaire ah oui j'oubliais pour lire ce fichier et avoir une liste en retour : (defun Lit_BIBLIOTHEQUE (ARG_FILENAME / PRIVE_LIGNE PRIVE_LISTE1 PRIVE_LISTE2 PRIVE_FILE PRIVE_BOUCLE PRIVE_ELEMENT PRIVE_P1 PRIVE_P2 PRIVE_CHEMIN ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Fonction qui lit le fichier bibliothèque Nommé ;;; ;;; ;;; ;;; Argument : Nom du fichier de la bibliothèque ;;; ;;; ;;; ;;; Retourne : une liste de constantes pour l'utilisation de fonctions ;;; ;;; du type liste des Style de texte avec toutes les ;;; ;;; variables ;;; ;;; ;;; ;;; Sémantique : Création à partir d'un fichier Excel type "CSV" ;;; ;;; les commentaire commence par "\\\" (la fonction ne lit pas la ;;; ;;; suite de la ligne) ;;; ;;; Chaque ligne est considérée comme une sous-liste. à l'intérieur ;;; ;;; de celle-ci chaque élément est séparé par ";" ;;; ;;; Si un élément se présente sous forme : ;;; ;;; (....:....) il sera pris en compte comme paire pointée ;;; ;;; ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; Verification de la validité des arguments ;;; (if (and ARG_FILENAME (not (vl-filename-extension ARG_FILENAME)) ) (setq ARG_FILENAME (strcat (strcase ARG_FILENAME) ".CSV")) ) (if (and ARG_FILENAME (not (findfile ARG_FILENAME)) (= (vl-filename-directory ARG_FILENAME) "") ) (setq ARG_FILENAME (findfile (strcat ".\\AUTOCAD\\BE.MNU\\BIB.AUTOCAD\\" (strcase ARG_FILENAME) ) ) ) (if ARG_FILENAME (setq ARG_FILENAME (findfile (strcase ARG_FILENAME))) ) ) (if (not ARG_FILENAME) (setq ARG_FILENAME (getfiled ;; Titre de la boite de dialogue "Lecture de Bibliothèque" ;; Dossier à partir duquel la boite est ouverte dans le cas où le fichier est introuvable. (strcat (strcase (vl-filename-directory (findfile ".\\AUTOCAD\\BE.MNU\\BIB.AUTOCAD\\PUBLIC_STYLE.CSV" ) ) ) "\\" ) ;; Extension des fichier à voir "CSV" ;; Bit de controle 8 ) ) ) ;;; ;;; Exécution de la fonction ;;; ;; Ouverture de la bibliothèque (setq PRIVE_FILE (open ARG_FILENAME "r" ) ) (setq PRIVE_LISTE1 nil) ;; Lecture de la première ligne du fichier (setq PRIVE_LIGNE (read-line PRIVE_FILE)) ;; Parcours du fichier (while PRIVE_LIGNE (progn ;; Enlève les point-virgules finaux (setq PRIVE_LIGNE (vl-string-right-trim ";" PRIVE_LIGNE)) (setq PRIVE_LISTE2 nil) ;; Traite la ligne si elle n'est pas un "commentaire" (if (/= (vl-string-elt PRIVE_LIGNE 0) (ascii "\\")) (while (or (/= PRIVE_LIGNE "") (> (strlen PRIVE_LIGNE) 0)) (progn (setq PRIVE_BOUCLE 0) ;; détermine l'élément (setq PRIVE_BOUCLE (vl-string-position (ascii ";") PRIVE_LIGNE) ) (if (= PRIVE_BOUCLE nil) (setq PRIVE_BOUCLE (strlen PRIVE_LIGNE)) ) ;; si l'élément est entier, réel ou chaine de caratères (if (distof (substr PRIVE_LIGNE 1 PRIVE_BOUCLE) 2) (if (= (distof (substr PRIVE_LIGNE 1 PRIVE_BOUCLE) 2) (atoi (substr PRIVE_LIGNE 1 PRIVE_BOUCLE)) ) (setq PRIVE_ELEMENT (atoi (substr PRIVE_LIGNE 1 PRIVE_BOUCLE) ) ) (setq PRIVE_ELEMENT (distof (substr PRIVE_LIGNE 1 PRIVE_BOUCLE) 2) ) ) (setq PRIVE_ELEMENT (substr PRIVE_LIGNE 1 PRIVE_BOUCLE)) ) ;; Pour le cas des paire pointée [...:...] (if (and (= (type PRIVE_ELEMENT) 'STR) (= (vl-string-elt PRIVE_ELEMENT 0) (ascii "[")) (= (vl-string-elt PRIVE_ELEMENT (1- (strlen PRIVE_ELEMENT)) ) (ascii "]") ) ) (progn (setq PRIVE_P1 (substr PRIVE_ELEMENT 2 (1- (vl-string-position (ascii ":") PRIVE_ELEMENT ) ) ) ) (setq PRIVE_P2 (substr (vl-string-subst "" (strcat "[" PRIVE_P1 ":") PRIVE_ELEMENT ) 1 (1- (strlen (vl-string-subst "" (strcat "[" PRIVE_P1 ":") PRIVE_ELEMENT ) ) ) ) ) ;; Paire pointée entier, réel ou chaine de caractères ;; Pour le pointeur (if (= (distof PRIVE_P1 2) (atoi PRIVE_P1)) (setq PRIVE_P1 (atoi PRIVE_P1)) (if (distof PRIVE_P1 2) (setq PRIVE_P1 (distof PRIVE_P1 2)) ) ) ;; Pour la valeur (if (= (distof PRIVE_P2 2) (atoi PRIVE_P2)) (setq PRIVE_P2 (atoi PRIVE_P2)) (if (distof PRIVE_P2 2) (setq PRIVE_P2 (distof PRIVE_P2 2)) ) ) ;;Assigne la paire pointée (setq PRIVE_ELEMENT (cons PRIVE_P1 PRIVE_P2)) ) ) ;; Ajoute l'élément à la sous-liste (if PRIVE_LISTE2 (setq PRIVE_LISTE2 (append PRIVE_LISTE2 (list PRIVE_ELEMENT) ) ) (setq PRIVE_LISTE2 (list PRIVE_ELEMENT) ) ) ;; Retire de la ligne lue, l'élément (setq PRIVE_LIGNE (substr PRIVE_LIGNE (+ PRIVE_BOUCLE 2) (strlen PRIVE_LIGNE) ) ) ) ) ) ;; suivant la taille de la sous-liste ajoute celle-ci à la liste prinicipale (if (= (length PRIVE_LISTE2) 1) (setq PRIVE_LISTE2 (nth 0 PRIVE_LISTE2)) ) (if PRIVE_LISTE2 (if PRIVE_LISTE1 (setq PRIVE_LISTE1 (append PRIVE_LISTE1 (list PRIVE_LISTE2 ) ) ) (setq PRIVE_LISTE1 (list PRIVE_LISTE2) ) ) ) ;; ligne suivante (setq PRIVE_LIGNE (read-line PRIVE_FILE)) ) ) (close PRIVE_FILE) ;; retourne à la fonction la liste ainsi créée PRIVE_LISTE1 ) ;;; ---------------------------------------------------------------------- cette dernière fonction renvoie une liste de type code DXF où un simple entmake ou (foreach n liste (entmake n)) pour créer les entité pour l'instant je n'arrive pas à récupérer des types de lignes utilisant les shx et/ou les polices de caractères mais ca doit se trouver dans le code 340, certainement ....
  24. Pour ma part j'utilise le dossier Favoris pour faire les liens vers les "Affaires en cours"
  25. :cool: oui il y a des têtes qui vont tombées...... j'espère que ca pas être encore mon tour ;p
×
×
  • 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é