Aller au contenu

funkkybebel

Membres
  • Compteur de contenus

    67
  • Inscription

  • Dernière visite

Tout ce qui a été posté par funkkybebel

  1. Bonjour, Je souhaiterai rajouter un bouton sur une dcl existante. Chose faite, avec attribution de la key : "att" : :button{ label="Choisir le(s) Bloc(s) par Attribut"; [b]key="att";[/b] alignment=left; fixed_width=true; } Dans le lisp correspondant je souhaiterai que l'action sur ce bouton lance un lisp déjà chargé au démarrage "ssatt" : (action_tile "att" "(ssatt)") Mais ça me donne l'erreur suivante : erreur: no function definition: SSATT Quelle est la bonne commande à mettre, a-t-on réellement la possibilité de faire une telle action sur un bouton ? Il y avait bien un lisp sur le forum qui lance tout un tas d'autres lisps de séléctions rapides il me semble mais je n'ai pas réussi à le retrouver... Merci pour votre aide. [Edité le 29/9/2008 par funkkybebel]
  2. Bonjour, en effet il s'agissait bien d'une erreur d'utilisation de ma part, ouf gile :) Par contre l'idée suivante est toujours bonne n'est-ce pas : Est-il d'ailleurs possible de le rajouter dans la liste de ssm : on cocherai la case attribut et du coup le lisp ssm chercherait tous les blocs selectionnés par Attribut...le pied. Merci pour cet outil génial, Salutations.
  3. Je dois avoir un problème avec mes blocs. Je réessayerai lundi au bouleau. Quand à me mettre au lisp j'ai bien essayé, et tu comprendras bien que ce genre de lisp n'est pas du niveau d'un débutant...entre nous le lisp n'est pas le plus facile des languages. J'ai déjà trituré des programmes lisp (grâce aux commentaires laissées à l'intérieur heureusement) mais ajouter une fonction telle que celle là je m'avoue vaincu. J'ai pourtant bien cru que ça le faisais mais ça ne sélectionne qu'un seul bloc. [Edité le 26/9/2008 par funkkybebel]
  4. Est-il d'ailleurs possible de le rajouter dans la liste de ssm : on cocherai la case attribut et du coup le lisp ssm chercherait tous les blocs selectionnées par Attribut...le pied. [Edité le 26/9/2008 par funkkybebel]
  5. Bonjour, cet outil m'intéresserai vraiment, malheureusement il sélectionne tous les blocs du dessin sans distinction de nom. Est-il possible de modifier le lisp afin qu'il ne sélectionne uniquement les blocs avec attributs sélectionnés UNIQUEMENT DES BLOCS A PARTIR DUQUEL J'AI CLIQUE ? (j'espère qu'on m'a compris car c'était pas très clair...) Merci.
  6. Ok. Merci.
  7. Aie aie aie, j'ai parlé trop vite. Merci beaucoup c'est sûr mais il semble y avoir un autre problème. En effet pas tous les attributs sont comptabilisés. :exclam: Je pense que cela provient de la manière dont a été fait le bloc.... Est-il possible de comptabiliser tous les attributs d'un bloc ? Voici un fichier exemple avec lequel le quantitatif ne colle pas : http://www.rhodes-tunes.com/misc/exemple.dwg (si firefox ouvre une page avec pleins de caractères, faire fichier enregistrer sous...) Ci-dessous le lisp avec tabulation (merci patrick). D'autre part, est-il possible de mettre un titre sur la première ligne avec la légende des colonnes (quantité / désignation / attribut1 / attribut2 ....) ;;;====================================================== =========== ;;; ;;; LSTATTF.LSP V1.00 ;;; ;;; Ecrire dans un fichier texte le décompte des blocs ;;; ;;; Copyright (C) Patrick_35 ;;; ;;;================================================================= (defun c:lstattf(/ js bllst ent fichier file lst nb nm rechercher_nom tbl) (defun rechercher_nom(val / att nom) (if (vlax-property-available-p val 'effectivename) (setq nom (vla-get-effectivename val)) (setq nom (vla-get-name val)) ) (if (eq (vla-get-hasattributes val) :vlax-true) (progn (setq att (vla-get-textstring (car (vlax-invoke val 'getattributes)))) (if (member att '(nil)) (list nom) (list nom att) ) ) (list nom) ) ) (vl-load-com) (if (setq js (ssget "x" (list (cons 0 "INSERT") (cons 2 "`**,*")))) (progn (vlax-map-collection (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))) '(lambda (x) (setq tbl (cons (rechercher_nom x) tbl)) ) ) (vla-delete sel) (while tbl (setq n (length tbl) js (car tbl) tbl (vl-remove js tbl) lst (cons (cons (itoa (- n (length tbl))) js) lst) ) ) (if (and lst (setq fichier (getfiled "Fichier de Décompte" "" "xls" 1)) ) (progn (setq file (open fichier "w")) (foreach n (vl-sort lst '(lambda (a b) (if (and (= (cadr a) (cadr b) (caddr a) (caddr b))) (< (strcase (caddr a)) (strcase (caddr b))) (< (strcase (cadr a)) (strcase (cadr b))) ) ) ) (princ (strcat (car n) (chr 9) (cadr n)) file) (if (caddr n) (princ (strcat (chr 9) (caddr n)) file) ) (write-line "" file) ) (close file) (princ (strcat "\nFichier " fichier " créé.")) ) (princ "\nPas de bloc à dénombrer.") ) ) ) (princ) ) (setq nom_lisp "LSTATTF") (if (/= app nil) (if (= (strcase (substr app (1+ (- (strlen app) (strlen nom_lisp))) (strlen nom_lisp))) nom_lisp) (princ (strcat "..." nom_lisp " chargé.")) (princ (strcat "\n" nom_lisp ".LSP Chargé.....Tapez " nom_lisp " pour l'éxecuter."))) (princ (strcat "\n" nom_lisp ".LSP Chargé......Tapez " nom_lisp " pour l'éxecuter."))) (setq nom_lisp nil) (princ) [Edité le 18/9/2008 par funkkybebel]
  8. Génial ! Je l'ai remplacé par (chr 9) Excellent. Merci, A bientôt.
  9. Bien évidemment il fallait bien que je la ramène. J'ai modifié le lisp pour que ça enregistre en excel, par contre toute la ligne correspond à une seule cellule. Est-il possible de mettre chaque item (quantité / nom du bloc / attribut ...) dans une cellule différente à chaque fois, afin de pouvoir travailler plus facilement sous excel ? Merci.
  10. C'est un truc de fou ce programme ! Merci énormément........je pense que tu es largement pardonné ! Merci beaucoup !
  11. Bonjour, Merci de ton aide patrick. J'ai donc remplacé pour avoir cela : (vl-load-com) (if [b](setq nm "*") [/b] (progn Par contre le curseur change en outil de sélection, je me dis ok ben je vais quand même selectionner, et en validant j'obtiens: erreur: type d'argument incorrect: VLA-OBJECT nil Je vais essayer de fouiller dans des lisp qui selectionnent automatiquement tous les blocs en objet, et dans d'autres où j'ai la possibilité de sauvegarder sous un fichier txt ou xls. Merci, Salutations.
  12. Bonjour, j'ai récuperé sur le forum (mais je ne sais plus où) le lisp lstatt.lsp qui permet de faire des comptage de bloc avec les attributs (ce qui manquait à lstbl.lsp) Je colle le code ci-dessous. J'aurais juste 2 améliorations à faire si quelqu'un sait comment s'y prendre : 1/ Que le lisp ne me demande plus (ou la limite sous forme d'option) quels sont les éléments à prendre mais qu'il prenne automatiquement tous les bloc d'un coup. 2/ Que le lisp me demande directement ou je veux enregistrer le résultat, sous forme de fichier xls par exemple. Merci à tous pour votre aide. ;;;================================================================= ;;; ;;; LSTATT.LSP V2.01 ;;; ;;; Décompte des blocs ;;; ;;; Copyright (C) Patrick_35 ;;; ;;;================================================================= (defun c:lstatt(/ js bllst ent lst nb nm InputBox rechercher_nom tbl) (defun InputBox (Titre Message Defaut / users1 valeur) (setq users1 (getvar "users1")) (acad-push-dbmod) (vla-eval (vlax-get-acad-object) (strcat "ThisDrawing.SetVariable \"USERS1\"," "InputBox (\"" Message "\", \"" Titre "\", \"" Defaut "\")")) (setq valeur (getvar "users1")) (setvar "users1" users1) (acad-pop-dbmod) valeur ) (defun rechercher_nom(val / att nom) (if (vlax-property-available-p val 'effectivename) (setq nom (vla-get-effectivename val)) (setq nom (vla-get-name val)) ) (if (eq (vla-get-hasattributes val) :vlax-true) (progn (setq att (vla-get-textstring (car (vlax-invoke val 'getattributes)))) (if (member att '(nil)) (list nom) (list nom att) ) ) (list nom) ) ) (vl-load-com) (if (not (eq (setq nm (InputBox "Décompte de blocs" "Veuillez donnez un nom de bloc ou * pour tous" "*")) "")) (progn (setq js (strcat "`**," nm)) (if (setq js (ssget (list (cons 0 "INSERT") (cons 2 js)))) (progn (vlax-map-collection (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))) '(lambda (x) (if (wcmatch (strcase (car (setq js (rechercher_nom x)))) (strcase nm)) (setq tbl (cons js tbl)) ) ) ) (vla-delete sel) (while tbl (setq n (length tbl) js (car tbl) tbl (vl-remove js tbl) lst (cons (cons (itoa (- n (length tbl))) js) lst) ) ) (if lst (foreach n (vl-sort lst '(lambda (a b) (if (= (cadr a) (cadr b)) (< (strcase (caddr a)) (strcase (caddr b))) (< (strcase (cadr a)) (strcase (cadr b))) ) ) ) (princ (strcat "\n" (substr " " 1 (- 5 (strlen (car n)))) (car n) " " (cadr n) ) ) (if (caddr n) (princ (strcat (substr ".............................." 1 (- 30 (strlen (cadr n)))) "avec attribut " (caddr n) ) ) ) ) (princ "\nPas de bloc à dénombrer.") ) ) ) ) ) (princ) ) (setq nom_lisp "LSTATT") (if (/= app nil) (if (= (strcase (substr app (1+ (- (strlen app) (strlen nom_lisp))) (strlen nom_lisp))) nom_lisp) (princ (strcat "..." nom_lisp " chargé.")) (princ (strcat "\n" nom_lisp ".LSP Chargé.....Tapez " nom_lisp " pour l'éxecuter."))) (princ (strcat "\n" nom_lisp ".LSP Chargé......Tapez " nom_lisp " pour l'éxecuter."))) (setq nom_lisp nil) (princ)
  13. funkkybebel

    recopir sa onfiguration

    Bonjour, au bureau nous avons créé un installateur avec nullsoft qui va supprimer le fra et le remplacer par celui de l'installateur (qui est simplement le poste du collègue chargé de mettre à jour la config avec de beaux outils trouvés sur le forum). Ca marche du tonnerre ! [Edité le 5/6/2008 par funkkybebel]
  14. Bonjour, Apparemment il y a un outil de créé par Gile : http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=14737#pid77512 Merci GILE.
  15. Bonjour, par contre, il est impossible d'eefectuer une recherche sur le texte ajouté. N'est-ce pas ? (du moins sous 2006)
  16. Bonjour salvanorigatore, ne serait-il pas plus simple de passer par un calcul en excel et ensuite utiliser le programme de Patrick pour lier les attributs ? Salutations.
  17. Bonjour, J'aurais voulu avoir votre aide svp. Pour l'historique voir : http://www.cadxp.com/sujetXForum-11942.htm Voici ce que j'ai déjà: http://www.rhodes-tunes.com/misc/outils-incrementation.zip Il s'agit de 3 outils (protégés malheureusement) commande d'incrementation des chiffres : i123 commande d'incrementation des lettres : iabc commande d'incrementation avancée (avec suffixe...) : icremtxt L'incrémentation des chiffres ne marche que pour les chiffres SANS préfixes ni suffixes ! Par contre l'incrémentation avancée permet d'incrémenter n'importe quel ATTRIBUT ou texte avec possibilité de lui indiquer les chaines de suffixe ou préfixe. Les caractères à ne pas modifier (par exemple préfixe pour ma part) sont à marquer par des points : . Les caractères qui sont à incrémenter sont à marquer par des étoiles : * Par exemple, si je dois incrémenter PUI.01 Je lance icremtxt puis je lui indique : 1/ Choix du premier texte : => mon attribut PUI.01 (cliquez sur une partie de ce texte correctement sinon la commande s'annule !) 2/ Voulez-vous changer la valeur de départ? : j'appuie sur entrée car je ne veux pas la changer 3/ Pas d'incrémentation : 1 (car je veux incrémenter de 1 à 1) 4/ Chaine d'incrément : Sachant que ma chaine sélectionnée est PUI.01 je choisi donc de taper ....** (4 points et 2 étoiles qui correspondent aux 4 premiers caractères qui doivent rester fixe et les 2 derniers qui seront incrémentés) J'espère que vous avez tous compris. En tout cas, ce qu'il me faudrait, c'est un outil qui me permette de shunter la partie où je dois dicter au lisp qui doit rester fixe (préfixe ou suffixe) et qui dois être incrémenté. Il faudrait que le lisp (du moins dans mon cas) repère uniquement les valeurs numériques (qui seront dans mon cas toujours à la fin) et qu'il incrémente celles-ci sans faire attention au préfixe quel qu'il soit. Merci, si vous avez des idées...
  18. Bonjour, je serai très intéressé moi aussi par ce genre d'outil...
  19. Tient c'est bizarre, sur mon profil n'apparait pas comme quoi j'ai été donateur. Sinon, toujours personne qui aurait une solution à mon problème ?
  20. Bonjour, Une idée ? quelque chose d'autre ? A+
  21. Qunlqu'un aurait une approche, une solution ? Merci.
  22. Bonjour, Voici ce que j'ai déjà: http://www.rhodes-tunes.com/misc/outils-incrementation.zip Il s'agit de 3 outils (protégés malheureusement) commande d'incrementation des chiffres : i123 commande d'incrementation des lettres : iabc commande d'incrementation avancée (avec suffixe...) : icremtxt L'incrémentation des chiffres ne marche que pour les chiffres SANS préfixes ni suffixes ! Par contre l'incrémentation avancée permet d'incrémenter n'importe quel ATTRIBUT ou texte avec possibilité de lui indiquer les chaines de suffixe ou préfixe. Les caractères à ne pas modifier (par exemple préfixe pour ma part) sont à marquer par des points : . Les caractères qui sont à incrémenter sont à marquer par des étoiles : * Par exemple, si je dois incrémenter PUI.01 Je lance icremtxt puis je lui indique : 1/ Choix du premier texte : => mon attribut PUI.01 (cliquez sur une partie de ce texte correctement sinon la commande s'annule !) 2/ Voulez-vous changer la valeur de départ? : j'appuie sur entrée car je ne veux pas la changer 3/ Pas d'incrémentation : 1 (car je veux incrémenter de 1 à 1) 4/ Chaine d'incrément : Sachant que ma chaine sélectionnée est PUI.01 je choisi donc de taper ....** (4 points et 2 étoiles qui correspondent aux 4 premiers caractères qui doivent rester fixe et les 2 derniers qui seront incrémentés) J'espère que vous avez tous compris. En tout cas, ce qu'il me faudrait (si vous permettez), c'est un outil qui me permette de shunter la partie où je dois dicter au lisp qui doit rester fixe (préfixe ou suffixe) et qui dois être incrémenté. Il faudrait que le lisp (du moins dans mon cas) repère uniquement les valeurs numériques (qui seront dans mon cas toujours à la fin) et qu'il incrémente celles-ci sans faire atetntion au préfixe quelqu'il soit. Merci, si vous avez des idées... Au fait Gile ton lisp ne me convient pas car il crée un text incrémenté alors que moi je dois agir sur des attributs déjà existants. Merci quand même et beau boulot ! Salutations. [Edité le 10/10/2007 par funkkybebel]
  23. Non seulement, on donne des lisp qui ne plaisent pas et en plus on fait la fine bouche :casstet: Comme on dit, on n'est jamais aussi bien servit que par soi-même Bonne continuation Bonjour, C'est à dire que j'ai déjà un outil d'incrémentation qui me permettait de faire moins de manœuvres (= clics de souris etc...). Donc c'est pour cela que ça me semblait ne pas pouvoir remplacer ce que j'avais déjà d'existant. Gile, merci, j'essaye ton lisp et te tiens au courant.
  24. Bonjour, désolé de revenir à la charge. Pour ma part cela correspond presque à mes besoins. Il faudrait que j'ai en plus (soit sur Getblock soit sur SSMatch) la possibilité d'indiquer une polyligne (existante ou pas) où uniquement à l'intérieur de celle-ci les blocs devront être selectionnés (et pas ailleurs) Merci de me dire si c'est possible... Salutations.
  25. Bonjour, serai-t-il possible de rajouter au lisp un bouton qui permettrait de pouvoir sélectionner tous les mêmes blocs dans un polygone existant ou pas. J'ai vu qu'avec le code ci-dessous on pouvait sélectionner tous les blocs d'un même calque,serait-il possible de l'intégrer aussi avec un nouveau bouton : (defun c:ssl (/ ent) (if (setq ent (car (entsel "\nSélectionnez un objet sur le calque cible: ") ) ) (sssetfirst nil (ssget "_X" (list (assoc 8 (entget ent))))) ) (princ) ) Merci de votre aide, désolé de paraitre pénible. Salutations.
×
×
  • 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é