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. Une version qui rends invisible les attributs, sur xref ou pas et sans tenir compte de la variable attmode (defun c:gat(/ calque doc ent) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (while (setq ent (nentsel)) (and (setq ent (vlax-ename->vla-object (car ent))) (eq (vla-get-objectname ent) "AcDbAttribute") (vla-put-visible ent :vlax-false) ) ) (vla-endundomark doc) (princ) ) Ne pas oublier de faire un regen à la fin. @+
  2. Salut Et pourquoi ne pas mettre ces attributs dans un calque gelé ? Par exemple (defun c:gat(/ calque doc ent) (vl-load-com) (setq calque "Mon_Calque_à_Geler") (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (while (setq ent (nentsel)) (and (setq ent (vlax-ename->vla-object (car ent))) (eq (vla-get-objectname ent) "AcDbAttribute") (vla-put-layer ent calque) ) ) (vla-endundomark doc) (princ) ) Ps : Tu as cette valeur à adapter à ton besoin "Mon_Calque_à_Geler" @+
  3. Salut Pour la simple raison que l'on pas obligé de passer par un éditeur et qu'on ne maitrise pas son évolution, ce qui n'est pas le cas d'une DLL fourni par Windows. ps : j'ai aussi trouvé un zlib.dll dans le répertoire d'autocad (C:\Program Files\Autodesk\AutoCAD 2014\Acade\Setup\fr-FR\Setup\Setup) et une trace dans les registres avec ce chemin (dont la logique reste à trouver) @+
  4. Salut Lecrabe Ta variable sert à afficher ou pas la boite de dialogue des fichiers. SF.Designer Regarde la variable CMDECHO @+
  5. Salut C'est amusant car je suis en train de regarder pour modifier des pc3 et on m'a renvoyé sur ce sujet qui correspond à ta demande et à la mienne car les pc3 sont fait de la même manière que les stb (d'après ce que l'on m'a indiqué). j'ai vu qu'il y a une dll à télécharger, mais je souhaite l'éviter pour l'instant. Donc, je continue de chercher pour ma problèmatique, mais au coup par coup. @+
  6. Salut Tu peux imbriquer des filtres de calques. Par exemple sur le 1er niveau, tu exclues (avec le ~) les calques indésirables. Clic droit sur ce filtre + nouveau filtre dans lequel tu choisis ceux que tu veux faire apparaitre. @+
  7. Une liste est un ensemble d'élements (chiffre, objet, ...) La fonction mapcar est une boucle qui traite une, deux voir plus de listes dans une fonction Par exemple, je souhaite faire une addition des chiffres de deux listes '(1 2 3 4) et '(4 5 6 7) (mapcar '+ '(1 2 3 4) '(4 5 6 7)) --> (5 7 9 11) (mapcar '+ '(1 2 3 4) '(4 5 6 7) '(8 9 10 11)) --> (13 16 19 22) L'avantage dans ton cas de procéder avec le mapcar, c'est que c'est plus visuel, plus facile à manipuler comme listes @+
  8. Salut Tu pourrais te simplifier la vie Par exemple (mapcar '(lambda(a B) (and (tblsearch "block" a) (vla-put-name (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object) ) ) a ) b ) ) ) '("LU9451" "LU3902") '("LU-TYP-01" "LU-TYP-02") ) Ou encore, sans tblsearch (mapcar '(lambda(a B) (vl-catch-all-apply 'vla-put-name (list (vl-catch-all-apply 'vla-item (list (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object) ) ) a ) ) b ) ) ) '("LU9451" "LU3902") '("LU-TYP-01" "LU-TYP-02") ) ps : je te laisse méditer le code et répondrai si besoin. @+
  9. On peut intégrer une tolérance par exemple (equal (cadar a) (cadar B) 0.0001) à la place de (eq (cadar a) (cadar B)) (equal 0.00011 0.00012 0.00001) --> T (equal 0.00011 0.00012 0.000001) --> Nil @+
  10. Si tu as trouvé, et bien c'est parfait :D ps : la mise en page est automatique, c'est ce qu'indique tous les (vla-put-... lay ...) après vla-refreshplotdeviceinfo @+
  11. Alors l'erreur est ailleurs. Pour info, si on interroge la variable acWindow sur Autocad, on a la réponse 4. La ligne est là pour indiquer que l'on choisit une fenêtre comme zone de tracé. Le lisp recherche un bloc nommé "feuilledereperage3" et fait autant d'impression via une fenêtre (d'où la ligne avec acWindow) Si ça continue de bloquer, donne-moi un exemple @+
  12. Salut Et si tu remplaces acWindow par 4 ? @+
  13. Salut Une liste des objets avec l'indication du minimum requis pour les codes dxf Provenant de ce sujet @+ Entmake Min Codes CAB.LSP
  14. Patrick_35

    les lisp qui bug

    Salut N'ayant pas 2015, difficile de juger. D'autant que cela fonctionne sur les autres versions. Il faudrait tester le lisp ligne par ligne pour trouver ce qui coince. @+
  15. Salut Je n'utilise pas les rubans, mais à l'ancienne avec les flèches ? @+
  16. Salut Le principal est que tu sois content de ton lisp Comme tu demandes quelques améliorations ;) 1) Pas besoin de redéfinir filedia car c'est inutile en lisp ou en script. Ce n'est pas comme quand on teste sur la ligne de commande. 2) Tu peux simplifier (if (not ...)) par (or ...) car la valeur recherchée est nil et l'astuce avec le or est qu'il va évaluer le 1er argument. s'il est nil, il va évaluer le suivant et etc... Par exemple (or nil nil nil nil (alert "Test réussi")) fonctionne Par exemple (or nil T nil nil (alert "Test réussi")) s'arrêtera à la 2em évaluation Par exemple (or (= (getvar "OSMODE") 1024) (setvar "OSMODE" 1024)) 3) Si tu souhaites savoir quel est la fonction la plus rapide (command, entmake, etc...), utilise le Benchmark @+
  17. Un quote devant une fonction indique qu'il ne faut pas évaluer la fonction Je t'invite à lire ce sujet Je t'ai juste donné des pistes où chercher. Pour savoir si un chemin est existant, tu peux tester avec (vl-string-search "ce chemin" "et oui, ce chemin existe") Ou mieux, avec wcmatch qui offre énormément de possibilités (wcmatch "et oui, ce chemin existe" "*ce chemin*") ps : il ne faut pas hésiter à poser des questions. Comme le disais Sacha Guitry "Le peu que je sais, c'est à mon ignorance que je le dois." @+
  18. Salut Bienvenue sur le site Avec Autoload, tu n'as plus ce besoin. Normalement, en utilisant cette fonction, quand tu tapes au clavier le nom du lisp, il se charge si besoin et se lance ensuite. Mais quand même pour répondre à ta question (if (eval 'c:mon_lisp) (alert"Lisp chargé")) En plus subtil (or (eval 'c:mon_lisp) (alert"Lisp à charger")) Pour les différents chemins, tu peux aller voir ici (vlax-dump-object (vla-get-files (vla-get-preferences (vlax-get-acad-object)))) Pour les différentes imprimantes, tu peux aller voir ici (vlax-invoke (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))) 'getplotdevicenames) Pour les différents styles de texte, par exemple le romans (tblsearch "style" "romans") Et enfin pour les menus, par exemple Fichier (si j'ai bien compris ton Barre_Onglets) (vlax-dump-object (vla-item (vla-get-menubar (vlax-get-acad-object)) "&Fichier")) @+
  19. Salut Tu calcules le temps passé à faire tes manips sur une LT Tu fais la même chose sur une version pleine (si tu en as une qui traine). Avec la différence de temps multiplié par le taux horaire, tu peux déterminer le retour sur investissement d'une version complète. Et c'est juste en reprenant ce besoin. Je ne parle pas de ce que l'on peut gagner à coté. Il reste plus qu'à convaincre le chef (et avec des chiffres en main, en général il est très vite convaincu) Je de donne aussi un tableau comparatif entre version LT et version pleine @+
  20. Salut Tu as aussi ctrl + break (ou pause selon les claviers) pour forcer, mais il faut être insistant @+
  21. Salut Sans être mauvaise langue, je ne pense pas que tu bosses avec des archis car j'ai vu des projets changer de matériels plusieurs fois. Et plus les projets se font, pire c'est. Sans compter les bets qui passent leurs temps à botter en touche avec des soi-disant pré-études @+
  22. Ce que je veux dire, c'est que la personne qui intervient regarde auparavant ce qu'elle doit faire pour au moins bien préparer sont travail. Par contre, je suis d'accord pour les besoins du chantier. C'est eux qui nous disent ce qu'ils veulent et cela n'empêche pas aussi d'avoir une discussion avec le BE car on a aussi un budget d'heures à respecter. @+
  23. Salut Je suis comme Neptune. Rien ne vaut une légende car c'est plus facile à faire évoluer que de changer plusieurs éléments dans le dessin. Tu as plusieurs corps de métiers dans ton dessin, donc logiquement plusieurs plans, alors plusieurs légendes (au moins une par corps de métier). Et dans le même corps de métier tu peux avoir plusieurs plans, ceci afin que cela soit raisonnablement lisible. Oui mais normalement, un plan s'étudie avant de commencer quoi que ce soit. @+
  24. Salut Je n'ai pas de solution concernant ton problème car on n'utilise pas les attributs annotatifs pour la simple raison qu'on a une légende et que toutes les infos y sont reportées. Cela évite aussi de surcharger le plan. Pour la réalisation, on donne les fiches techniques des luminaires au chantier qui auront été validées auparavant par le client, bet, etc... @+
×
×
  • 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é