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. Quelques oeufs de pâques sur Google http://www.google.com/Easter/feature_easter.html http://www.google.com/microsoft http://www.google.com/linux http://www.google.com/mac http://www.google.com/bsd http://www.google.com/unclesam @+
  2. C'est une fonction lisp, si on est sur une LT sans additif, cela ne fonctionnera pas @+
  3. Un peu plus de détail trouvé sur le net = rand (x,y) affiche le texte "Servez à ce monsieur une bière et des kiwis." x = le nombre de lignes y = le nombre de colonnes exemples : = rand (1,1) donne Servez à ce monsieur une bière et des kiwis. = rand (3,1) donne Servez à ce monsieur une bière et des kiwis. Servez à ce monsieur une bière et des kiwis. Servez à ce monsieur une bière et des kiwis. Et dans la même veine, faites un tour sur ce lien comme le flipper caché dans Word 97 ainsi qu'un simulateur de vol dans Excel 97 @+
  4. Bien didier, tout de suite et j'y fonce http://www.clicksmilies.com/s0105/spezial/Fool/shv.gif @+
  5. Wahou, l'imperator du script qui donne des lisps de sa manufacture :o Il y a de plus en plus de concurrence ;) http://www.clicksmilies.com/s0105/spezial/Fool/inc.gif @+
  6. En lisp c'est possible par ce biais (command "_.insert" "1" pause pause "" pause) Et peut-être avec un sendcommand ? ps : il n'est pas demandé le facteur échelle y, regardez pourquoi @+
  7. Pour grouper des pdf (un lien donné par Eric dans son WebBlogs @+
  8. Pour le visual lisp, je n’ai pas de livre précis, et l’aide est très bien pour tout ce qui concerne les fonctions vl-*, vlax-* et vlr-*, ainsi que le tutorial en français fournit avec Autocad. Pour ce qui est du vla-*, je me suis inspiré de tout ce que j’ai put trouver comme programmes sur ce sujet. C’est à force de regarder, d’essayer de comprendre et d’utiliser qu’on y arrive. Et puis, il y a ce forum @+
  9. Pas mieux que Bonus, c'est avec les fonctions wcmatch et tblnext
  10. Un petit truc vite fait, à adapter selon ses besoins (defun c:blp(/ n nom) (if (setq nom (getstring "\nNom du bloc : ")) (if (tblsearch "block" nom) (progn (princ "\nSélection de la polyligne") (foreach n (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget (car (entsel))))) (entmake (list (cons 0 "INSERT") (cons 2 nom) (cons 10 n) (cons 41 1) ; facteur echelle X = 1 (cons 42 1) ; facteur echelle Y = 1 (cons 43 1) ; facteur echelle Z = 1 (cons 50 0) ; angle de rotation = 0 )) ) ) (princ (strcat "\nBloc " nom " inconnu")) ) ) (princ) ) @+
  11. Kenavo à vous tous Pour Didier C'est vrai que plus je fais du vlisp, plus je trouve que c'est le petit frère du vba, d'ailleurs, je me sers de l'explorateur d'objets afin de trouver plus facilement les fonctions Je trouve que c'est plus souple à exécuter ainsi que pour manipuler des objets qu'en vba mais qui doit être normalement plus puissant que le vlisp (reste à savoir quoi exactement) Pour Maximilien C'est du Visual Lisp, et il est vrai que c'est très mal documenté dans Autocad, mais une fois qu'on a compris la logique, ce qui n'est pas toujours une mince affaire, c'est relativement facile Pour faire une liaison vl --> vlax-get-acad-object Donc on demande le chemin de recherche pour la config des traceurs, qui se trouve normalement dans les préférences d'autocad --> vla-get-preference de vlax-get-acad-object Je regarde dedans (avec un vlax-dump-object par exemple) et comme c’est un chemin de recherche, il est logique de le trouver dans files, donc un vla-get-files de vla-get-preferences Il ne reste plus qu’à trouver la config traceur, encore un vlax-dump-object et je trouve le nom PrinterConfigPath qui m’a l’air de parfaitement convenir. Un vla-get-PrinterConfigPath de vla-get-files et bingo, je retrouve mon chemin qui est défini dans ma config Juste une précision. C'est une méthode un peu basic pour faire une recherche, Il est plus simple de lancer l'explorateur d'objet en vba et de regarder ou encore de lancer vlide et d'ajouter un espion sur (vlax-get-acad-object) @+
  12. Tramber, il va bientôt falloir changer ton lien. Plutôt que faites du script, ce sera faites du lisp @+
  13. Toujours pas de réponse ? Bon, bah tans pis, il va falloir trouver autre chose @+
  14. Patrick_35

    lisp avec lt

    Ou encore celui-ci @+
  15. Salut Je pense que c'est ceci que tu recherches (vl-load-com) (setq a (vla-get-files (vla-get-preferences (vlax-get-acad-object)))) (setq chemin_config (vla-get-PrinterConfigPath a)) @+
  16. Merci et je suis bien l’auteur du prog Pour rechercher si un calque existe avec la fonction tblsearch, tu fais (if (tblsearch "layer" "MONCALQUE")(alert "CALQUE EXISTANT")(alert "CALQUE INEXISTANT")) @+
  17. Désolé pour le retard. Oui, ça fait une copie complète de la présentations (objets+mise en page et config de tracé) Ca fonctionne sur le même principe qu’Excel pour copier des feuilles @+
  18. Patrick_35

    Légende automatique

    Pour Lip Sur autocad, tu as raison, mais c'est un lisp qui est fait pour être continué, pas pour dénombrer des blocs @+
  19. Plutôt de sélectionner tous les blocs dans le dessin, il est plus rapide de regarder directement dans la table des blocs afin de voir les xrefs et de les compter comme te le signale Tramber @+
  20. En un peu plus simple Pour supprimer la chaine "45" de la chaine "1234567989" par exemple (vl-string-subst "" "45" "123456789") @+
  21. J'ai bien une solution qui pourrait convenir, elle ne vaut pas la commande _draworder, mais enfin... Il suffit de faire une copie des objets que l'on veut mettre en avant-plan puis d'effacer la sélection commande _copy --> sélection puis un clic sur l'écran en point de base (qu'importe la localisation) puis @ Ensuite on efface la sélection commande _erase puis p ou _last et on valide Et tous nos objets sont passés en avant-plan @+
  22. Salut Patrick En lisp par (command "_.layout" "_copy" "layout1" "" ) et je sais qu'on peut appeler une fonction lisp avec sendcommand en vba @+
  23. Voilà un lisp avec deux fonctions pour exporter/importer des calques d’un dessin vers un autre pour faire des macros ou encore les scripts Pour exporter, la fonction (explay fichier calques) Fichier --> Nom du fichier pour l’exportation Calques --> La liste de calques que l’on souhaite exporter Ex : (explay "toto.txt" '("Calque1" "Calque2" "Calque3" "Calque4")) Exporte les calques Calque1 à 4 Ex : (explay "toto.txt" '("*C*" "1*")) Exporte les calques contenant un C et ceux commencant par 1 Et pour importer la fonction (implay fichier) @+ (defun explay(fichier lay / a b c d f) (if (setq f (open fichier "w")) (progn (vl-load-com) (setq a (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))) (foreach b lay (setq d nil) (vlax-for c a (if (and (wcmatch (vla-get-name c) b) (not (vl-string-search "|" (vla-get-name c)))) (progn (setq d (vla-get-name c)) (write-line (vla-get-name c) f) (write-line (itoa (vla-get-color c)) f) (if (= (vla-get-freeze c) :vlax-true) (write-line "-1" f) (write-line "0" f) ) (if (= (vla-get-layeron c) :vlax-true) (write-line "-1" f) (write-line "0" f) ) (write-line (vla-get-linetype c) f) (write-line (itoa (vla-get-lineweight c)) f) (if (= (vla-get-lock c) :vlax-true) (write-line "-1" f) (write-line "0" f) ) (if (= (vla-get-plottable c) :vlax-true) (write-line "-1" f) (write-line "0" f) ) (if (= (vla-get-viewportdefault c) :vlax-true) (write-line "-1" f) (write-line "0" f) ) ) ) ) (if (not d) (princ (strcat "\nCalque " b " inexistant")) ) ) (close f) (princ "\nExportation terminée") ) (alert (strcat "Impossible de créer le fichier " fichier)) ) (princ) ) (defun implay(fichier / a b c d e f g h i) (defun lecture_fichier_ligne(type nom / a b) (if (findfile nom) (progn (setq nom (open (findfile nom) "r")) (while (setq a (read-line nom)) (if (= (vl-string-search (strcat "*" type) a) 0) (setq b t) ) ) (close nom) ) ) b ) (defun parcourir(type col / a b) (vlax-for a col (if (= (strcase (vla-get-name a)) (strcase type)) (setq b t) ) ) b ) (vl-load-com) (if (setq f (open fichier "r")) (progn (setq a (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))) (setq e (vla-get-linetypes (vla-get-activedocument (vlax-get-acad-object)))) (while (setq b (read-line f)) (if (= b (getvar "clayer")) (progn (setq i (vla-add a "lay_tmp")) (setq h (getvar "clayer")) (setvar "clayer" "lay_tmp") ) ) (setq d nil) (vlax-for c a (if (= (vla-get-name c) b) (setq d c) ) ) (if (not d) (setq d (vla-add a b)) ) (vla-put-color d (atoi (read-line f))) (if (= (read-line f) "-1") (vla-put-freeze d :vlax-true) (vla-put-freeze d :vlax-false) ) (if (= (read-line f) "-1") (vla-put-layeron d :vlax-true) (vla-put-layeron d :vlax-false) ) (setq g (read-line f)) (if (not (parcourir g e)) (if (lecture_fichier_ligne g "acad.lin") (vla-load e g "acad.lin") (if (lecture_fichier_ligne g "acadiso.lin") (vla-load e g "acadiso.lin") ) ) ) (if (parcourir g e) (vla-put-linetype d g) (princ (strcat "\nType de ligne " g " inconnu")) ) (vla-put-lineweight d (atoi (read-line f))) (if (= (read-line f) "-1") (vla-put-lock d :vlax-true) (vla-put-lock d :vlax-false) ) (if (= (read-line f) "-1") (vla-put-plottable d :vlax-true) (vla-put-plottable d :vlax-false) ) (if (= (read-line f) "-1") (vla-put-viewportdefault d :vlax-true) (vla-put-viewportdefault d :vlax-false) ) (if (= "lay_tmp" (getvar "clayer")) (progn (setvar "clayer" h) (vla-delete i) ) ) ) (close f) (princ "\nImportation terminée") ) (alert (strcat "Impossible d'ouvrir le fichier " fichier)) ) (princ) ) [Edité le 28/1/2005 par Patrick_35]
  24. Pour Maximilien Sur une 2002 peut-être, mais pas sur la 2000 @+
  25. Ou encore, pendant la sélection, tapez s pour enlever des objets (avant c’était r, mais les traductions...) et a pour ajouter et continuer la sélection @+
×
×
  • 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é