Aller au contenu

Patrick_35

Membres
  • Compteur de contenus

    6 374
  • Inscription

  • Dernière visite

  • Jours gagnés

    30

Tout ce qui a été posté par Patrick_35

  1. Désolé (gile) (ssget "_+.:E:S" '((0 . "ARC"))) ne fonctionne absolument pas comme (ssget "_:E" '((0 . "ARC"))) et (ssget "_+.:E:S" '((0 . "ARC"))) n'est pas complétement identique à (ssget "_:S" '((0 . "ARC"))) par contre (ssget "_+.:E:S" '((0 . "ARC"))) ressemble à (ssget "_+.:S" '((0 . "ARC"))) et à (ssget "_:E:S" '((0 . "ARC"))) Extrait de l'aide L'option :E permet qu'un seul clic en sélection. Si on le retire, il est possible de faire des fenêtres, des captures avec la souris Par contre, on peut se poser la question de l'utilité de cette option +. Et en regardant de plus près les autres options, je me demande à quoi servent celles-ci B Box, : D Duplicates OK, :L Rejects locked layers, M Multiple, :N Nested, : P Rejects Viewport @+
  2. Salut (ssget "[b]_[/b]+.:E:S" '((0 . "ARC"))) Et sa toison d'or ? ;) @+
  3. Patrick_35

    ordre des calques_2005

    Salut On ne doute pas de la véracité du double calque zéro, mais juste à essayer de comprendre où se situe l'erreur, et là je ne vois pas :casstet: @+
  4. Patrick_35

    ordre des calques_2005

    Je suis comme Bonus, il doit y avoir un caractère spécial Et en reprenant sa routine pour y voir aussi les codes ascii des caractères, ça donne quoi ? @+ ((lambda ( / def_lay) (setq def_lay (tblnext "LAYER" T)) (princ (strcat "\n\tCalque : "(cdr (assoc 2 def_lay)) " \t\t Codes Ascii \t\t ")) (princ (vl-string->list (cdr (assoc 2 def_lay)))) (while (setq def_lay (tblnext "LAYER")) (princ (strcat "\n\tCalque : "(cdr (assoc 2 def_lay)) " \t\t Codes Ascii \t\t ")) (princ (vl-string->list (cdr (assoc 2 def_lay)))) ) (prin1) ))
  5. Un exemple simple pour un fichier texte @+ (setq js (ssget "x" (list (cons 0 "*TEXT,MTEXT") (cons 8 "NOM_DE_RUE")))) ; Je fais ma sélection de mes textes et mtext sur le calque NOM_DE_RUE (if Js ; Si ma sélection n'est pas vide (progn (setq n 0) (setq f (open "c:/mes_textes.txt" "w")) ; j'ouvre un fichier texte en écriture, on peut aussi passer par un getfiled (while (ssname js n) ; Je parcours ma sélection (setq ent (entget (ssname js n))) ; je récupere les codes dxf de l'entité (write-line (cdr (assoc 1 ent)) f) ; j"écris dans le fichier la valeur de mon texte (setq n (1+ n)) ; Je passe au suivant ) (close f) ; je ferme mon fichier ) ) ps : (gile), regarde mon filtre de sélection
  6. Patrick_35

    ordre des calques_2005

    Salut Juste une question, ce n'est pas le chiffre zéro et la lettre O par hasard ? @+
  7. Salut Pas 50 solutions, il faut programmer tu as deux sujets qui peuvent t'aider ici et là @+
  8. Salut Ou encore avec la commande _filter @+
  9. Patrick_35

    astuce

    Salut Avec l'accrochage aux objets ? @+
  10. Patrick_35

    VLISP

    Salut La comparaison au niveau du vlax-for et du foreach est excellente pour la compréhension sauf que c'est une table/collection que l'on parcoure et pas une liste Le vla-get-blocks pointe sur la table des blocks, ce qui revient en gros à un (tblnext "block") Faites un (vlax-dump-object (vla-item a 2)) pour trouver les caractéristiques d'un bloc Le 2em vlax-for est pour parcourir les entités qui composent le bloc Un exemple en autolisp (setq a (tblnext "block" t)) (while a (setq b (cdr (assoc -2 a)) tot 0) (while b (setq b (entget b) tot (1+ tot)) (setq b (entnext (cdr (assoc -1 b)))) ) (princ (strcat "\nLe bloc " (cdr (assoc 2 a)) " contient " (itoa tot) " entité(s)")) (setq a (tblnext "block")) ) (princ) Le même en vlisp (setq a (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))) (vlax-for bl a (setq tot 0) (vlax-for ent bl (setq tot (1+ tot)) ) (princ (strcat "\nLe bloc " (vla-get-name bl) " contient " (itoa tot) " entité(s)")) ) (princ) ps : le post aurait plus indiqué dans la rubrique vlisp ;)
  11. Salut Bonus Ton lisp fonctionne parfaitement chez moi J'ai testé plusieurs cas et tout fonctionne sauf quand tu fais un clic droit et que rien n'est indiqué dans la ligne de statue, mais à part ça ;) @+
  12. Et pour compléter la réponse de Zebulon_, une recherche sur attextr @+
  13. Peut-être une solution Faire xref --> Ajouter et en type d'ajout Ajouter Puis avec _laydel des express tools, supprimer les calques indésirables Et terminer avec un enregistrer sous ou un _saveas pour envoyer le plan @+
  14. Patrick_35

    vues et scu

    Salut (setq NOMSCUVUE (getstring [b]T[/b] "\nNom du SCU et de la vue :")) Pour accepter les espaces @+
  15. Salut Si un jour, tu changes de version d'excel, ton lisp sera à revoir Tu as une routine qui te donne la version ainsi que le chemin où il est installé @+
  16. Bonjour, C'est cette solution qui est à mon sens la plus propre et la plus complète J'ai repris le code de zebulon_ en y ajoutant deux conditions et ça fonctionne aussi pour la version 6 @+ (defun c:read_pdf ( / id_file VERSION CHEMIN) (if (setq VERSION (car (vl-registry-descendents "HKEY_LOCAL_MACHINE\\SOFTWARE\\ADOBE\\Acrobat Reader"))) (progn (setq CHEMIN (vl-registry-read (strcat "HKEY_LOCAL_MACHINE\\SOFTWARE\\ADOBE\\Acrobat Reader\\" VERSION "\\InstallPath"))) (if (setq id_file (getfiled "Sélectionner un fichier PDF" "" "pdf" 16)) (startapp (strcat CHEMIN "\\AcroRd32.exe") id_file) ) ) (princ "\nAcrobat Reader n'est pas installé") ) (prin1) )
  17. Re Je ne pense pas que ce soir un problème avec le réacteur, je l'ai fait sous 2000 Je pense plus simplement que ça doit se passer ici (if (setq Sel (ssget (car Pt))) S'il voit rien, il se passe rien. Surement un problème de précision au niveau du curseur Pour vérifier que la fonction Clic_Droit fonctionne bien, il suffit de placer un (alert "CLIC") en tête ou en fin de la fonction @+
  18. Salut Tu as aussi la command _.layout puis _set pour choisir ton onglet de présentation La fonction (layoutlist) te retoune tous les noms des présentations et l'espace objet se nomme model Tu as un lisp qui exploite ces fonctionnalités (et avec une boite de dialogue) @+
  19. Salut Bonus Je n'ai rien remarqué de spécial :exclam: Pour tester la fonctionnalité, j'ai fait un copier d'un style de cote existant que j'ai mis par défaut, créé une cote puis réactivé l'ancien style Le changement ne s'effectue que si le style par défaut est différent du style de cote pointé par clic droit et que si c'est une cote Dans le fonctionnement du changement de style, il n'y a aucun réacteur, c'est juste du vlisp Le réacteur n'intervient qu'une seule fois, juste pour le faire pointer sur la routine Clic_Droit Précise moi ce qui se passe réellement, il y a peut-être un bug :( C'est avec plaisir, indique-moi et je ferais mon possible ;) deux exemples simple de réacteurs (defun test1(rea pt) (alert "Clic_droit") ) (setq mrea (vlr-mouse-reactor nil '((:vlr-beginRightClick . test1)))) Maintenant, à chaque clic droit, j'ai un message (vlr-remove mrea) Pour supprimer le réacteur ou encore (defun test2(rea cde) (alert (strcat "La commande " (getcname (strcat "_" (car cde))) " va commencer")) ) (defun test3(rea cde) (alert (strcat "La commande " (getcname (strcat "_" (car cde))) " est terminée")) ) (setq dcde (vlr-command-reactor nil '((:vlr-commandWillStart . test2)))) (setq fcde (vlr-command-reactor nil '((:vlr-commandEnded . test3)))) Ce qui donne un message au début et à la fin de chaque commande d'autocad (vlr-remove dcde)(vlr-remove fcde) Pour effacer les réacteurs Si on s'en donne la peine, on peut faire des choses fabuleuses avec les réacteurs :cool: ps : je l'ai revu avec des commentaires @+
  20. Salut Patrick Un clic droit sur une cote rends son style courant, s'il ne l'est déjà pas @+
  21. Tout dépend de ton fonctionnement.Par exemple, un bouton peut en activer d'autres ou selon certaines conditions. Extrait de l'aide @+
  22. Bon, j'ai amélioré le lisp avec une recherche du réacteur s'il est déjà présent (cas d'un nouveau dessin avec sdi à 1) ps : Patrick, merci de nous faire signe si l'un des deux lisps t'intéresse @+
  23. Patrick_35

    Boîtes de dialogue

    On va tous se retrouver à Lourde. Il parait qu'il y a des miracles. Et en plus, on pourra mettre le paquet pour ce qui est des cierges, et on en trouve même en taille maxi @+
  24. Patrick_35

    Boîtes de dialogue

    Oui, c'est une solution de se servir d'ObjetDCL, mais du coup, le lisp n'est plus aussi facilement portable Et je te rejoins au souhait pour qu'un jour Autodesk se décide à améliorer ses boîtes de dialogue Il suffit parfois d'être optimiste et patient (ou encore bruler un cierge ;) ) @+
  25. Pas spécialement et je trouve que tu te débrouilles particulièrement bien Je me sers des réacteurs, et comme j'interviens dans le cas présent sur le clic droit, cela permet d'insérer une routine dans la fonction clic droit Tu as une explication ici Non, c'est juste du vlisp avec de l'autolisp ;) @+
×
×
  • 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é