-
Compteur de contenus
1 050 -
Inscription
-
Dernière visite
-
Jours gagnés
2
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par BIM G CO
-
question bête : As-tu cherché dans télécharger.fr ?
-
Code DXF de LONGUEUR et LARGEUR d\'une entité MUR
BIM G CO a répondu à un(e) sujet de LUDWIG dans Débuter en LISP
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); -
Code DXF de LONGUEUR et LARGEUR d\'une entité MUR
BIM G CO a répondu à un(e) sujet de LUDWIG dans Débuter en LISP
(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) -
Code DXF de LONGUEUR et LARGEUR d\'une entité MUR
BIM G CO a répondu à un(e) sujet de LUDWIG dans Débuter en LISP
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 ) -
Je constate donc que TNT est toujours aussi explosif!!! :) :) :)
-
:( Ok... sujet mort!
-
fonction (ssnamex JeudeSel) et tu aura toutes les entité de ton jeu de sélection!
-
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"
-
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
-
Groupes et Base de donnée
BIM G CO a répondu à un(e) sujet de Titifonky dans Pour aller plus loin en LISP
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) -
Groupes et Base de donnée
BIM G CO a répondu à un(e) sujet de Titifonky dans Pour aller plus loin en LISP
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 ?!? -
:cool: et oui exactement Didier et c'est pour cela que j'ai le week end à le comprendre....
-
ouvrir en lecture seule
BIM G CO a répondu à un(e) sujet de zebulon_ dans Pour aller plus loin en LISP
à 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 -
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"...)
-
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. ;)
-
faire dans la fen^tre dans ton espace papier un SCU imposé! puis faire un _plan
-
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:
-
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:
-
activer couleur d\'un objet
BIM G CO a répondu à un(e) sujet de MAC dans Personnalisation, macros, DIESEL
Patrick mais si c'est une couleur type RGB il faut voir en plus le code 420 (16 M) du code 62 (256 coul) -
Dommage que les PNG soit si peu exploitable (résolution inadaptée)
-
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é
-
Courbure dans une polyligne
BIM G CO a répondu à un(e) sujet de Titifonky dans Pour aller plus loin en LISP
les angle sontt souvent exprimé en radians ...à voir... -
(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 .....
-
activer couleur d\'un objet
BIM G CO a répondu à un(e) sujet de MAC dans Personnalisation, macros, DIESEL
dans l'aide d'autoCAD à la rubrique DXF entites etc..... -
Couleur d\'un calque ?
BIM G CO a répondu à un(e) sujet de zebulon_ dans Pour aller plus loin en LISP
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:
