-
Compteur de contenus
6 374 -
Inscription
-
Dernière visite
-
Jours gagnés
30
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Patrick_35
-
Ludwig En relisant ton message d'origine, je me demande si tu créés ta boite de dialogue en userform, c'est parce que c'est simple à faire, mais que par contre, ton programme est en lisp, d'où l'intérêt de faire transiter des variables pour avoir un dialogue entre les deux. Si c’est réellement ça, il me semble que tu te compliques énormément. Fais ta boite en dcl, c’est juste une habitude à prendre et c’est assez simple à comprendre. @+
-
Salut En vlisp avec les fonctions vl-registry-delete, vl-registry-descendents, vl-registry-read et vl-registry-write Et je ne sais pas en vba @+
-
ah ! d'accord Merci pour l'info @+
-
Tiens, une commande que je ne connais pas ! Eric, elle est apparue sur quelle version d'autocad ? (pas sur la 2000 en tout cas) @+
-
Salut, avec un copier/coller (ep vers eo ou inversement) puis une mise à l'échelle @+
-
Changement de profil utilisateur
Patrick_35 a répondu à un(e) sujet de bonuscad dans Personnalisation, macros, DIESEL
Salut Les infos, je les récupère via l'explorateur d'objets en vba et aussi avec des vlax-dump-object Pour ce qui est de la donation, je pense que chacun est libre de faire ce qu'il veut, même si ce n'est pas excessif comme montant. Je trouve que d'indiquer les donateurs avec une étoile de shérif obligent dans une certaine mesure les participants à donner. Participer au forum et passer un peu de temps est déjà une donation en soi. Donner de l’argent pour que le site vive est une autre démarche (et à mon avis, vu le nombre de donateurs, si Patrick attendait les dons pour vivre, cela ferait longtemps que le site aurait fermé, mais rien n'interdit de mettre un peu de beurre dans les épinards ;)) @+ -
Changement de profil utilisateur
Patrick_35 a répondu à un(e) sujet de bonuscad dans Personnalisation, macros, DIESEL
Salut Dans un premier temps, il est possible de simuler les caractères dans la boite de dialogue avec : (chr 008) --> fléche haut (chr 009) --> tab (chr 010) --> fléche bas (chr 013) --> enter sinon une solution en vlisp (vl-load-com) (setq a (vlax-get-acad-object)) (setq b (vla-get-preferences a)) (setq c (vla-get-profiles b)) Maintenant, il ne reste plus qu'à faire un vla-get-activeprofile pour connaitre son profile et un vla-put-activeprofile pour l'activer @+ -
Pour Lecrabe Oui, comme un acrostiche de Didier qui m’a fait sourire, Lisp Tabou ;) @+
-
Bonjour à tous Je suis bien d'accord avec Lecrabe, un merci n'a jamais fait de mal à personne, surtout si on a cherché une solution. Le merci est le commencement de la politesse et du respect envers la personne. Le comportement de certains me fait penser qu’on est dans une société de consommation, on prend, on consomme, on jette sans aucun égard. Je ne ferai que quelques citations - Ne pas s'occuper des autres, c'est toute la distinction. S'en occuper, c'est toute la politesse. - La politesse est le lubrifiant qui permet de se frotter aux autres sans leur irriter l'esprit. - Le respect, c'est comme le sourire ça ne coûte rien et tout le monde aime ça. - Il est une manière d'écouter qui surpasse tous les compliments. - La flatterie est une fausse monnaie qui n'a de cours que par notre vanité. @+
-
Stinger, un mini antivirus qui peut vous rendre un maxi service
Patrick_35 a répondu à un(e) sujet de Eric dans Pause café
Bonjour à tous Trois comparatifs sur les anti-virus Comparatif 1 Comparatif 2 Comparatif 3 @+ -
Salut Regarde l'utilitaire slidelib ou encore la commande _vslide avec l'aide d'autocad
-
Mais où sont les smilies ?
Patrick_35 a répondu à un(e) sujet de Eric dans CADxp, comment ça marche?
Puisqu’on est dans les bug, j’ai constaté qu’un fois le message rédigé et en cochant la case « Recevoir un courriel lors d'un nouveau message sous ce Sujet? « puis aperçu pour voir son message et on valide, on n’a plus de retour sur les messages (c’est comme si on n’avait jamais coché cette case) @+ -
Salut, Puisque tu gères les onglets, un lisp qui pourrait t'intéresser @+
-
indice de révision et xrefs
Patrick_35 a répondu à un(e) sujet de tyrese69_ dans Pour aller plus loin en LISP
Salut, Ca devrait correspondre normalement à ton besoin (defun c:xr(/ bl cmd fic) (defun fic() (vl-string-subst "INI" "DWG" (strcat (getvar "dwgprefix") (getvar "dwgname"))) ) (defun routine(/ fi new nom emp che) (if (= (logand (cdr (assoc 70 bl)) 4) 4) (progn (if (setq fi (open (fic) "r")) (progn (setq nom (cdr (assoc 2 bl))) (setq emp (cdr (assoc 1 bl))) (setq che (substr emp 1 (- (strlen emp) (+ (strlen nom) 4)))) (while (setq new (read-line fi)) (if (and (= (strcat che (substr new 1 (1- (strlen new)))) (substr emp 1 (- (strlen emp) 5))) (/= (strcat che new) (substr emp 1 (- (strlen emp) 4)))) (if (findfile (strcat che new ".dwg")) (command "_.xref" "_p" nom (strcat che new ".dwg")) (alert (strcat "Fichier " che new ".dwg introuvable")) ) ) ) (close fi) ) ) ) ) ) (setq cmd (getvar "cmdecho")) (setvar "cmdecho" 0) (setq bl (tblnext "block" t)) (routine) (while (setq bl (tblnext "block")) (routine) ) (setvar "cmdecho" cmd) (princ) ) -
Avec les archi, je récupère de tout, aussi bien en mètre, décimètre, centimètre ou encore en millimètre. Il faut juste s ‘adapter. Pour l'instant j'ai échappé au kilomètre ;) , et des plans au décimètre, ce n'est pas banal mais heureusement relativement rare @+
-
Oui, peut-être, mais je n'en voie pas l'utilité, ni comment @+
-
Salut Apparemment, avec autocad, quand on efface des entités, toutes les données étendues qui sont associées ne sont pas supprimées. Ce lisp permet de virer toutes les données étendues dans le dessin sans toucher aux entités existantes (lignes, blocs, texte, etc…). Attention, il n’est pas fait de tri avec des entités existantes, mais on peut s’en inspirer au besoin. Si on a un dessin qui ne se sert pas d’applications spécifiques et qu’on n’a pas besoin de données étendues (xdata), rien n'interdit de l’utiliser
-
indice de révision et xrefs
Patrick_35 a répondu à un(e) sujet de tyrese69_ dans Pour aller plus loin en LISP
humm, je pense qu'on ne se comprend pas tout à fait. Peut-tu me donner la composition de ton fichier texte ? Juste une précision. Ton fichier texte doit reprendre le nom, se situer dans le répertoire de ton dessin et comporter l'extension .ini afin que le lisp puisse le lire @+ -
indice de révision et xrefs
Patrick_35 a répondu à un(e) sujet de tyrese69_ dans Pour aller plus loin en LISP
ah, je suis surpris ? Je viens de reverifier et tout fonctionne à merveille tu passes bien par un load et tu lance la fonction ? @+ -
Augmentation du nombres de caractères
Patrick_35 a répondu à un(e) sujet de man dans AutoCAD Architecture
Salut Un fil de discution qui devrait t'intéresser @+ -
Salut Tu as les propriétés des hachures pour trouver l'échelle ou encore la possibilité de reprendre les propriétés pendant la commande _bhatch @+
-
C'est bon, j'ai réussi. Le dessin passe de 8.4MO à 31KO. Il faut juste être patient pendant le nettoyage du dessin @+ (defun menage(/ i j n) (setq dict (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 360)) dict))) (setq n 0) (princ "\nEffacement d'entités : 0") (while (nth n dict) (entdel (nth n dict)) (setq i 0) (while (< i (strlen (itoa n))) (princ (chr 8)) (setq i (1+ i)) ) (setq n (1+ n)) (princ n) (princ) ) ) (setq dict (dictnext (namedobjdict) t)) (if (cdr (assoc 360 dict)) (menage) ) (while (setq dict (dictnext (namedobjdict))) (if (cdr (assoc 360 dict)) (menage) ) ) (setq dict (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 3)) (entget (namedobjdict))))) (setq n 0) (while (nth n dict) (dictremove (namedobjdict) (nth n dict)) (setq n (1+ n)) ) (vl-load-com) (vl-Catch-All-Apply '(lambda () (vla-Remove (vla-GetExtensionDictionary (vla-Get-Layers (vla-Get-ActiveDocument (vlax-Get-Acad-Object)))) "ACAD_LAYERFILTERS"))) (princ)
-
indice de révision et xrefs
Patrick_35 a répondu à un(e) sujet de tyrese69_ dans Pour aller plus loin en LISP
Pour Didier Je ne suis pas devin, c'est juste que je travaille de cette manière là, sauf que pour moi, c'est automatique et complètement transparent grâce à une GED en liaison avec autocad Le but est de conserver une tracabilité complète de tous ses fichiers informatiques. Je suis capable de ressortir n'importe quel plan à n'importe quel indice et quelle que soit l'évolution des mes xref Pour tyrese69_ Tu n'as rien à faire, tout est automatique. Lors de la première utilisation de XR, un fichier INI est crée (en reprenant le nom du dessin et son emplacement dans le nom du fichier). Il ne te reste plus qu'à modifier ce fichier pour faire évoluer tes xref Par exemple un c:\...\...\...\fichier_1_A.dwg devient c:\...\...\...\fichier_1_B.dwg et il suffit de relancer XR pour prendre en compte le changement (et le plus simple et de le mettre en startup, c'est à dire qu'il se lance à chaque ouverture d'un dessin) J'ai aussi réfléchi entre temps et pensé à une méthode plus simple que de passer par un fichier texte. Il suffit avec le nouveau lisp de mettre ton nouvel indice au même emplacement que l'ancien pour que le lisp le voie. Attention, c'est une manipulation de texte, il prend le dernier caractère du fichier (ex : fichier_1_A.dwg --> Indice A), l'incrémente de 1 (donc Indice B--->fichier_1_B.dwg) et regarde s’il existe pour faire le changement @+ (defun c:xr(/ bl cmd) (defun routine(/ fi ind) (if (= (logand (cdr (assoc 70 bl)) 4) 4) (progn (setq fi (cdr (assoc 1 bl))) (setq ind (substr fi (- (strlen fi) 4) 1)) (setq ind (chr (1+ (ascii ind)))) (setq fi (strcat (substr fi 1 (- (strlen fi) 5)) ind ".dwg")) (if (findfile fi) (command "_.xref" "_p" (cdr (assoc 2 bl)) fi) ) ) ) ) (setq cmd (getvar "cmdecho")) (setvar "cmdecho" 0) (setq bl (tblnext "block" t)) (routine) (while (setq bl (tblnext "block")) (routine) ) (setvar "cmdecho" cmd) (princ) ) -
indice de révision et xrefs
Patrick_35 a répondu à un(e) sujet de tyrese69_ dans Pour aller plus loin en LISP
Salut Un lisp qui peut correspondre à tes besoins. Pour une première utilisation, il est créé un fichier INI de ton dessin (en reprenant le nom et son emplacement) pour y mettre tout les xref. Il suffit de changer dans le fichier créé le nom du fichier pour que le changement soit pris en compte Il est possible de faire encore plus structuré dans sa manière de travailler, mais c'est déjà une bonne base de départ @+ (defun c:xr(/ bl cmd fic) (defun fic() (vl-string-subst "INI" "DWG" (strcat (getvar "dwgprefix") (getvar "dwgname"))) ) (defun routine(/ fi nom_fi ch_fi trouve) (if (= (logand (cdr (assoc 70 bl)) 4) 4) (progn (if (setq fi (open (fic) "r")) (progn (while (setq nom_fi (read-line fi)) (setq ch_fi (read-line fi)) (if (= (cdr (assoc 2 bl)) nom_fi) (progn (setq trouve T) (if (/= (cdr (assoc 1 bl)) ch_fi) (command "_.xref" "_p" nom_fi ch_fi) ) ) ) ) (close fi) (if (not trouve) (progn (setq fi (open (fic) "a")) (write-line (cdr (assoc 2 bl)) fi) (write-line (cdr (assoc 1 bl)) fi) (close fi) ) ) ) (progn (setq fi (open (fic) "w")) (write-line (cdr (assoc 2 bl)) fi) (write-line (cdr (assoc 1 bl)) fi) (close fi) (alert (strcat "Création du Fichier " (fic))) ) ) ) ) ) (setq cmd (getvar "cmdecho")) (setvar "cmdecho" 0) (setq bl (tblnext "block" t)) (routine) (while (setq bl (tblnext "block")) (routine) ) (setvar "cmdecho" cmd) (princ) ) -
Bonjour à tous J'ai récupéré ce petit programme hyper pratique et j'essaye de comprendre comment il fonctionne et une chose m'échappe complètement Je ne vois pas où on sait que c'est l'argument "ACAD_LAYERFILTERS" qu'on doit utiliser dans le vla-remove :casstet: J'ai beau chercher dans l'aide, avec du vba (oui, oui, j'essaye un peu), faire des vlax-dump-object sur différents objets, que nenni... :calim: Merci d'avance (defun C:LayerFiltersDelete () (vl-Load-Com) (vl-Catch-All-Apply '(lambda () (vla-Remove (vla-GetExtensionDictionary (vla-Get-Layers (vla-Get-ActiveDocument (vlax-Get-Acad-Object)))) "ACAD_LAYERFILTERS"))) (princ "\nAll layer filters have been deleted.") (princ)) (defun C:LFD () (C:LayerFiltersDelete))
