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. question bête : As-tu cherché dans télécharger.fr ?
  2. Tu fais un copier/coller sur la ligne de commande de ces deux morceaux de code puis tu tape : (Programmation 1) Je l'utilise pour ma part dans un MNU : ID_Prog01 [&Entité]^C^C(setq PUBLIC_PROGRAM (Programmation 1))(princ); ID_Prog02 [&Table des Entêtes]^C^C(setq PUBLIC_PROGRAM (Programmation 2))(princ); ID_Prog03 [C&apture Type de lignes $DXF]^C^C(setq PUBLIC_PROGRAM (Programmation 3))(princ);
  3. (Programmation 1) donne le code DXF de ton entité sélectionnée (+ si c'est un TEXT ou MTEXT donne le STYLE) (Programmation 2) donne la table des entêtes de l'objet sélectionné (sauf si c'est une ligne / polyligne/droite => donne les caractéristique du calque ou ce trouve l'entité) (Programmation 3) écrit un fichier LTYPE.LIN contenant la liste des lignes utilisés dans le fichier (pour l'instant il ne prend pas en compte les types de lignes complexes : shx et caractères)
  4. J'utilise ces deux fonctions assemblées pour savoir ce qui ce cache derrière mes dessins: Pour (Programmation 1) tu as l'entité sélectionnée (setq ent (Programmation 1) (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) ) (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)) ) ) ) ) ((= 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) ) ) (t nil) ) PRIVE_RESULTAT )
  5. BIM G CO

    La TNT est arrivée

    Je constate donc que TNT est toujours aussi explosif!!! :) :) :)
  6. :( Ok... sujet mort!
  7. BIM G CO

    Sendcommand

    fonction (ssnamex JeudeSel) et tu aura toutes les entité de ton jeu de sélection!
  8. dans l'optique d'un programme LISP je désire créer une mise en page dans l'espace papier. L'idéal c'est qu'il créé de lui même sans l'intervention de l'utilisateur Manuellement lorsque l'on crée une nouvelle présentation et qu'on clique dessus nous avons le gestionnaire de mise en page (_pagesetup) qui s'ouvre automatiquement. en bas à droite de cette fenêtre nous avons une case à cocher " [surligneur] Afficher quand une présentation est créée[/surligneur]". Je veux que pendant mon Lisp cette variable (certainement registre) soit désactivée et qu'elle revienne ensuite à son état précédent. (pour éviter les errreurs et arrêt du lisp de façon prématuré) je pensais que c'était la variable PLQUIET mais il n'est rien. mon désir de faire un utilitaire comme "_layoutwizard"
  9. BIM G CO

    Fonctions cachées

    Ce qui est embêtant lorsque l'on recoit des plans d'autres logiciels de CAO lorsque que l'on fait un "_audit" (contrôle des erreurs) on se retrouve souvent avec des AUDIT..... un petit peu partout d'où un lisp faisable grâce à vous tous. .....Extrait (setq PRIVE_BIBLE (list "STYLE" "LTYPE" "BLOCK" "LAYER")) (foreach n PRIVE_BIBLE (progn (setq PRIVE_LISTE (TABLE_ENTETE n)) (setq PRIVE_BOUCLE 0) (while (< PRIVE_BOUCLE (length PRIVE_LISTE)) (if (= (substr (nth PRIVE_BOUCLE PRIVE_LISTE) 1 5) "AUDIT") (command "_-rename" (strcat "_" n) (nth PRIVE_BOUCLE PRIVE_LISTE) (strcat n (if (< PRIVE_BOUCLE 10) "0" "" ) (itoa PRIVE_BOUCLE) "_NettparMaximilien" ) ) ) (setq PRIVE_BOUCLE (1+ PRIVE_BOUCLE)) ) ) ) .... Extrait
  10. du style : ;;; ---------------------------------------------------------------------- (defun ListGPName () (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 3)) (dictsearch (namedobjdict) "ACAD_GROUP") ) ) ) ;;; ---------------------------------------------------------------------- (defun ListGPeName () (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 350)) (dictsearch (namedobjdict) "ACAD_GROUP") ) ) ) ;;; ---------------------------------------------------------------------- (defun ListGPvide (/ PRIVE_LISTE PRIVE_BOUCLE) (setq PRIVE_BOUCLE 0) (setq PRIVE_LISTE nil) (while (< PRIVE_BOUCLE (length (ListGPeName))) (if (not (assoc 340 (entget (nth PRIVE_BOUCLE (ListGPeName))))) (if PRIVE_LISTE (setq PRIVE_LISTE (append PRIVE_LISTE (list (nth PRIVE_BOUCLE (ListGPeName))) ) ) (setq PRIVE_LISTE (list (nth PRIVE_BOUCLE (ListGPeName)))) ) ) (setq PRIVE_BOUCLE (1+ PRIVE_BOUCLE)) ) PRIVE_LISTE ) ;;; ---------------------------------------------------------------------- ;;; Programme (foreach n (ListGPvide) (entdel n)) (princ)
  11. Mon très cher Patrick_35 je crois que tu viens de m'enlever une épine du pied. au lieu de me concentrer sur le code 3 je prend le code 350. J'obtiens la liste des différents groupe (lisible avec un simple entget) pour avoir la liste de tous les objets étant affiliés (code 340) Je n'ai pas encore vérifié mais si ce groupe ne contient pas d'élément (assoc 340 ....) = nil c'est que le groupe est vide non? donc on peut le "purger" non? (avec entdel) les filtres de calques purgeables déjà avec cette petite appli trouvée le 21/07/2004 je crois que Patrick_35 a ouvert la voie sur les groupes vides ?!?
  12. BIM G CO

    Erreur de débutant ?

    :cool: et oui exactement Didier et c'est pour cela que j'ai le week end à le comprendre....
  13. à part changer la valeur de l'attribut (propirété du fichier) du fichier juste avant l'ouverture et le remettre en place dès l'ouverture .... je vois pas
  14. Combien d'entre vous sais à quoi correspond la fonction trans. je viens seulement de découvrir son utilité...... vous avez le droit de vous moquer..... Je viens de passer un Week-end à retaper mes "lisps" pour intégrer cette fonction avec les bons arguments. quand le code DXF est enclin à être modifié il faut penser que celui-ci est dans le SCG ("_ucs" "_world"). il faut donc ne pas perdre à l'esprit que certains plans nécessiteront une modification de scu. Je viens de faire la malheureuse expérience vendredi. pour un point saisie dans le SCG on peut se contenter de çà (setq PRIVE_LISTE (car (cdr PRIVE_SAISIE))) mais lorsque le SCU est modifé imaginez la catastrophe sans cette modif (setq PRIVE_LISTE (trans (car (cdr PRIVE_SAISIE)) 1 0)) ne pas oublier aussi que pour les blocs c'est d'autant plus complexe (code DXF 11 et 210 à ne pas oublier) à me regretter d'utiliser le (entmake....) par rapport au (command "_insert"...)
  15. Merci Bonuscad d'avoir vu les coquilles! j'apprécie énormément qu'on passe du temps à lire ce que j'écris. Toute remarque est toujours appréciable et permet d'évoluer intellectuellement. ;)
  16. faire dans la fen^tre dans ton espace papier un SCU imposé! puis faire un _plan
  17. BIM G CO

    impression au format pdf

    et dire que moi je ne peux pas désactiver l'antivirus bouton droit sur l'icone dans la barre de tache et je n'ai que "Mise à jour", "Analyser" et "A propos". J'oubliais de dire c'est un système proposé par une société qui effectue nos sauvegardes. Alors PDFcreator ou PDF995 marche pas chez moi rien à faire. :mad:
  18. Ouaips ou sinon faire un truc du genre ;;; Valeur à enlever (setq Value 5.0) ;; saisie des points (setq p1 (getpoint "1er Point")) (setq p2 (getpoint p1 "2ème point")) ;; Tracé de la cote (command "_dimlinear" p1 p2) ;; Manipulation du code DXF (setq EntDimlinear (entget (entlast))) (setq ValeurCalculée (- (cdr (assoc 42 EntDimlinear)) Value)) (setq EntDimlinear (subst (cons 1 (rtos ValeurCalculée 2 5)) (assoc 1 EntDimlinear) EntDimlinear) ;;; Reassigne la cote (entmod EntDimliear) La ceinture noire correspond uniquement au nombre de messages émis! ..... je viens de briser une légende oups :exclam:
  19. Patrick mais si c'est une couleur type RGB il faut voir en plus le code 420 (16 M) du code 62 (256 coul)
  20. Dommage que les PNG soit si peu exploitable (résolution inadaptée)
  21. BIM G CO

    Purger tout : bug ?

    c'est surtout une erreur de traduction. j'utilise une chose inavouable : j'ai une version anglaise chez moi pour pouvoir "internationalier" mes commandes "TOut" => "_all" "Oui" => "_yes" "Non" => "_no" tu t'apercevra que tes lisp fonctionne mieux et génère moins de bug inexplicable malhereusement chez AutoDesk le français n'est qu'une languer mineure et qui n'aura jamais "l'âge" de la majorité
  22. les angle sontt souvent exprimé en radians ...à voir...
  23. (setq jour (menucmd "M=$(edtime,$(getvar,DATE),DD)") mois (menucmd "M=$(edtime,$(getvar,DATE),MO)") annee (menucmd "M=$(edtime,$(getvar,DATE),YY)") Date (strcat jour "/" mois "/" annee)) trouvé quelque part .....
  24. dans l'aide d'autoCAD à la rubrique DXF entites etc.....
  25. le code 420 tout simplement! couleur 8bits(256) * 3 = (- (expt 2 24) 1) voila ton code DXF : RGB Red Octet de poids fort puis Green and Blue ou le contraire je m'en souviens plus :casstet:
×
×
  • 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é