funkkybebel
Membres-
Compteur de contenus
67 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par funkkybebel
-
Bonjour Gile, y-a-t-il une évolution de ton lisp qui permette l'incrémentation à l'intérieur d'une ligne de repère ? Merci.
-
Attribut bloc + selection rapide
funkkybebel a répondu à un(e) sujet de mateus dans LISP et Visual LISP
Bonjour Gile, bonjour tout le monde, Y-a-t-il une évolution de ton outil ? Je veux dire, est-il possible de rajouter encore plus d'éléments de filtre ? par exemple sur sélection d'un texte, pouvoir choisir les textes suivant la hauteur, l'index etc... En l'état l'outil me suffit, mais c'était au cas où qu'il avait évolué (hors des contrées de cadxp) Merci. -
Bonjour, je vois que la solution est trouvée. Par contre à la base (en lisant le titre du post) je pensais que le problème était d'insérer une image depuis Paint rapidement. Pour le moment je fais "Insertion->Objet OLE->je séléctionne dans la liste 'Image Paintbrush' -> et je clique sur OK. Y-a-til un lisp qui pourrait être associé à un bouton pour éviter cette manipulation manuelle ? Lors de l'appui sur ce bouton, j'ai Paint qui est ouvert, il me suffit de chercher une image, de fermer paint pour avoir l'image dans autocad. Merci pour votre aide. Cordialement.
-
Mémorisation des dimensions des boites de dialogue
funkkybebel a répondu à un(e) sujet de salvanorigatore dans AutoCAD 2011
Merci à tous et à toi Gile d'avoir essayé. J'ai pour le moment rajouté la commande cui directement dans un menu dédié. Donc pour moi c'est reglé comme ça. a+ -
Mémorisation des dimensions des boites de dialogue
funkkybebel a répondu à un(e) sujet de salvanorigatore dans AutoCAD 2011
Merci Gile mais ça ne fonctionne pas. J'ai vu que tu as rajouté un point devant le underscore, mais même en l'enlevant ça ne fait toujours rien. Tu as une idée ? Merci pour ton aide précieuse. -
Mémorisation des dimensions des boites de dialogue
funkkybebel a répondu à un(e) sujet de salvanorigatore dans AutoCAD 2011
Pour ma part en lançant les commandes suivantes coup sur coup : (command "_undefine" "quickcui") (defun c:quickcui () (command "_.cui")) ça marche. C'est à dire que la commande quickcui lance en fait cui (ce qui est mieux). PAR CONTRE, je n'arrive pas à établir cela par défaut au démarrage d'autocad (2010). J'ai pourtant mis ça dans "acad.lsp" ou bien en chargeant un fichier lsp dédié depuis la valise de démarrage... mais rien n'y fait. Quelqu'un peut dire comment chargé cela au démarrage d'acad ? Merci. -
Ci-joint les versions traduites. Cordialement.mditab18-FR.zip
-
Génial Merci !
-
Bonjour, Je profite de ce post pour poser une question en relation avec les fenêtres. Est-il possible de créer une fenêtre à partir d'un cercle ? Je veux dire que j'aimerai bien avoir ma fenêtre en forme de cercle. Merci pour vos réponses.
-
Echec du copier vers le presse-papiers !
funkkybebel a répondu à un(e) sujet de mardemonpc dans AutoCAD 2010
Pareil pour moi, jamais eu de problème. D'autant plus que je parle de copié/collé dans le même dessin, donc je ne me vois pas faire des wbloc pour copier une ligne, un bloc, une polyligne à l'intérieur du même dessin... Pour information voici comment je procède : Je clique gauche sur l'entité à copier, et je la déplace en maintenant le bouton droit. Une fois le bouton droit laché, j'ai le choix de copier ou déplacer l'entité. -
Echec du copier vers le presse-papiers !
funkkybebel a répondu à un(e) sujet de mardemonpc dans AutoCAD 2010
http://translate.google.fr/translate?hl=fr&sl=en&tl=fr&u=http%3A%2F%2Fforums.autodesk.com%2Ft5%2FAutoCAD-2011%2FCopy-to-clipboard%2Fm-p%2F2732897 Par rapport au lien ci-dessus, j'ai fais la même chose et ça a corrigé mon problème. 1/ Il faut créer un nouveau fichier 2/ Dedans, tu insère en tant que bloc le fichier corrompu (qui a une erreur de copié/collé) 3/ Une fois inséré, tu le décomposes 4/ Tu retrouves ton fichier normal où le copié/collé remarche de nouveau (Ctrl+C etc...) 5/ Tu le sauvegarde et voilà. Ce qui est TRES TRES étonnant, c'est que quand j'ai réouvert les autres fichiers qui avaient le même problème auparavant, l'erreur avait disparue, et il m'était à nouveau possible de faire des copié/collé !!! Comme si le faire une fois sur un seul fichier, suffisait à réparer l'erreur sur les autres fichiers ? bizarre. -
Je ne vois pas trop l'intérêt,... Par contre (P et espace) fonctionne très bien,... Car je dois rajouter un P devant un texte mais avec un espace (sinon ça ferait xxxP au lieu de xxx P).
-
ok j'essayerai au boulot, car je l'ai en ce moment, et il me mettait une erreur, dans le sens où on ne peut pas rajouter " P" par exemple (espace et P) il mettait une erreur...
-
Bonjour, Existe-til un lisp comme MAT, mais qui pourrait rajouter un préfix et/ou suffixe sur les Textes, Mtext, Attributs ? Merci.
-
Oui, autant pour moi je travaillais sur un document nouveau pas encore enregistré. Très beau travail, merci beaucoup. Bien sûr j'aurais pu aller jusqu'à demander que lorsque l'on selectionne un bloc avec le selecteur rapide, le lisp puisse effectuer immédiatement le comptage sur l'ensemble du dessin mais je n'irair pas jusque là : )
-
Merci énormément Patrick ! Par contre le fichier sauvegardé de LSTATT v4 va dans notre cas dans "D:\DATA\Data" Comment peut-on dire à autocad (car je pense que le lisp récupère un dossier configuré par l'utilisateur?) que l'on souhaite un autre répertoire, à défaut le répertoire du dwg serait bien. Merci encore.
-
Pour LSTATT v3 : Attention si le dessin comporte trop de blocs, ils ne seront pas tous comptabilisés dans la fenêtre de commande. Est-il possible d'outrepasser cete limitation, soit en augmentant le nombre de lignes affichées dans la console, et soit de transferer le tout dans un fichier txt. ? merci de votre aide.
-
Bonjour, Pour LSTATT v3 : est-il possible de rajouter un bouton de sélection de blocs afin de faciliter la sélection (ça évite de rentrer le nom à la main) merci. [Edité le 5/2/2009 par funkkybebel]
-
Bonjour, j'aurais deux idées d'amélioration de LSTATT v3 : Dans la boîte de dialogue, l'étoile existante est parfaite, faire la même chose pour les attributs, car dans certains dessins, on ne connait pas forcément les blocs existants et on ne sait encore moins combien d'attributs ils comportent. Et aussi, en fin de traitement, demander à l'utilisateur s'il veut enregistrer le résumé dans un fichier texte (Enregistrer les quantité dans un fichier texte ? O/N). Pour finir, le libellé du post principale décrivant tous les lisps serait donc à reprendre ? LSTATT V3.00 Décompte des blocs avec le premier attribut, même ceux qui sont dynamique. devient faux il faudrait plûtot mettre LSTATT V3.00 Décompte des blocs avec plusieurs attributs, même ceux qui sont dynamique. Bien évidemment ça ne sert à rien de me dire de faire tout ça moi même car je ne comprend pas le lisp, c'est juste pour donner des idées et faire avancer les choses à ma manière... Salutations.
-
Lancer un lisp depuis un lisp (+dcl)
funkkybebel a répondu à un(e) sujet de funkkybebel dans Débuter en LISP
Oui bien sûr, mais c'est par rapport à l'intégration des outils déjà en place, je trouvais ça assez logique pour moi et comme ça on ne rajoute pas encore un autre lisp / fenêtres. Comme je l'ai dit, le plus important c'est que le lisp ssatt fonctionne correctement et qu'il me rende service, pour le reste tant pis. Merci beaucoup de ton aide gile. A+ -
Lancer un lisp depuis un lisp (+dcl)
funkkybebel a répondu à un(e) sujet de funkkybebel dans Débuter en LISP
Franchement ces derniers jours j'ai essayé pas mal de combinaisons mais je ne sais plus quoi faire. Si une âme charitable veut bien se pencher dessus à ses heures perdues. L'outil ssatt marche très bien en lui même c'est juste que je souhaiterai l'integrer à l'intérieur d'une DCL d'un autre lisp (ben voyon !). Le lisp ssatt : SSATT.LSP ;; Sélection par valeur d'attribut (gile) (defun c:ssatt (/ doc att elst tag val name ss1 ss2) (vl-load-com) (and (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))) (setq att (car (nentsel "\nSélectionnez l'attribut source: "))) (setq att (vlax-ename->vla-object att)) (= (vla-get-ObjectName att) "AcDbAttribute") (setq tag (vla-get-TagString att) val (vla-get-TextString att) blk (vla-ObjectIDToObject doc (vla-get-OwnerId att)) name (if (vlax-property-available-p blk 'EffectiveName) (vla-get-EffectiveName blk) (vla-get-Name blk) ) ss2 (ssadd) ) (princ "\nSélectionnez les blocs ou : ") (or (ssget (list '(0 . "INSERT") '(66 . 1) (cons 2 (strcat name ",`*U*")) ) ) (ssget "_X" (list '(0 . "INSERT") '(66 . 1) (cons 2 (strcat name ",`*U*")) ) ) ) (vlax-for blk (setq ss1 (vla-get-ActiveSelectionSet doc)) (if (= name (if (vlax-property-available-p blk 'EffectiveName) (vla-get-EffectiveName blk) (vla-get-Name blk) ) ) (foreach a (vlax-invoke blk 'GetAttributes) (if (and (= (vla-get-TagString a) tag) (= (vla-get-TextString a) val) ) (ssadd (vlax-vla-object->ename blk) ss2) T ) ) T ) ) (not (vla-delete ss1)) (sssetfirst nil ss2) ) (princ) ) Le lisp sur lequel je souhaite rajouter le code pour lancer ssatt depuis un bouton sur la DCL correspondante : GETBLOCK.LSP (defun c:ssb (/ ss name) (and (or (and (setq ss (cadr (ssgetfirst))) (= 1 (sslength ss)) (= "INSERT" (cdr (assoc 0 (entget (ssname ss 0))))) (setq name (cdr (assoc 2 (entget (ssname ss 0))))) ) (and (sssetfirst nil nil) (setq name (getblock nil)) ) ) (sssetfirst nil (ssget "_X" (list '(0 . "INSERT") (cons 2 name)))) ) (princ) ) ;;; Getblock Retourne le nom du bloc entré ou choisi par l'utilisateur ;;; dans une liste déroulante de la boite de dialogue ou depuis la boite ;;; de dialogue standard d'AutoCAD ;;; Argument : le titre (string) ou nil (défaut : "Choisir un bloc") (defun getblock (titre / bloc n lst what_next dcl_id nom) (while (setq bloc (tblnext "BLOCK" (not bloc))) (setq lst (cons (cdr (assoc 2 bloc)) lst) ) ) (setq lst (acad_strlsort (vl-remove-if '(lambda (n) (= (substr n 1 1) "*")) lst) ) ) (setq dcl_id (load_dialog "Getblock.dcl")) (setq what_next 2) (while (>= what_next 2) (if (not (new_dialog "getblock" dcl_id)) (exit) ) (start_list "bl") (mapcar 'add_list lst) (end_list) (if titre (set_tile "box" titre) ) (if (setq n (vl-position (strcase (getvar "INSNAME")) (mapcar 'strcase lst) ) ) (setq nom (nth n lst)) (setq nom (car lst) n 0 ) ) (set_tile "bl" (itoa n)) (action_tile "bl" "(setq nom (nth (atoi $value) lst))") (action_tile "wbl" "(done_dialog 3)") (action_tile "tp" "(setq nom $value) (done_dialog 4)") (action_tile "accept" "(setq nom (nth (atoi (get_tile \"bl\")) lst)) (done_dialog 1)" ) (setq what_next (start_dialog)) (cond ((= what_next 3) (if (setq nom (getfiled "Sélectionner un fichier" "" "dwg" 0)) (setq what_next 1) (setq what_next 2) ) ) ((= what_next 4) (cond ((not (read nom)) (setq what_next 2) ) ((tblsearch "BLOCK" nom) (setq what_next 1) ) ((findfile (setq nom (strcat nom ".dwg"))) (setq what_next 1) ) (T (alert (strcat "Le fichier \"" nom "\" est introuvable.")) (setq nom nil what_next 2 ) ) ) ) ((= what_next 0) (setq nom nil) ) ) ) (unload_dialog dcl_id) nom ) ;;; Getblock (version 2) ;;; Retourne le nom du bloc sélectionné à l'écran, entré ou choisi ;;; par l'utilisateur dans une liste déroulante de la boite de dialogue ou ;;; depuis la boite de dialogue standard d'AutoCAD ;;; Argument : le titre (string) ou nil (défaut : "Choisir un bloc") (defun getblock (titre / bloc n lst what_next dcl_id nom) (while (setq bloc (tblnext "BLOCK" (not bloc))) (setq lst (cons (cdr (assoc 2 bloc)) lst) ) ) (setq lst (acad_strlsort (vl-remove-if '(lambda (n) (= (substr n 1 1) "*")) lst) ) ) (setq dcl_id (load_dialog "Getblock_2.dcl")) (setq what_next 2) (while (>= what_next 2) (if (not (new_dialog "getblock_2" dcl_id)) (exit) ) (start_list "bl") (mapcar 'add_list lst) (end_list) (if titre (set_tile "box" titre) ) (if (setq n (vl-position (strcase (getvar "INSNAME")) (mapcar 'strcase lst) ) ) (setq nom (nth n lst)) (setq nom (car lst) n 0 ) ) (set_tile "bl" (itoa n)) (action_tile "att" "(c:ssatt)") (action_tile "sel" "(done_dialog 5)") (action_tile "bl" "(setq nom (nth (atoi $value) lst))") (action_tile "wbl" "(done_dialog 3)") (action_tile "tp" "(setq nom $value) (done_dialog 4)") (action_tile "accept" "(setq nom (nth (atoi (get_tile \"bl\")) lst)) (done_dialog 1)" ) (setq what_next (start_dialog)) (cond ((= what_next 3) (if (setq nom (getfiled "Sélectionner un fichier" "" "dwg" 0)) (setq what_next 1) (setq what_next 2) ) ) ((= what_next 4) (cond ((not (read nom)) (setq what_next 2) ) ((tblsearch "BLOCK" nom) (setq what_next 1) ) ((findfile (setq nom (strcat nom ".dwg"))) (setq what_next 1) ) (T (alert (strcat "Le fichier \"" nom "\" est introuvable.")) (setq nom nil what_next 2 ) ) ) ) ((= what_next 5) (if (and (setq ent (car (entsel))) (= "INSERT" (cdr (assoc 0 (entget ent)))) ) (setq nom (cdr (assoc 2 (entget ent))) what_next 1 ) (setq what_next 2) ) ) ((= what_next 0) (setq nom nil) ) ) ) (unload_dialog dcl_id) nom ) (defun c:ssbm (/ sel ss name) (setq str "") (while (setq name (getblock nil)) (setq str (strcat str name ",")) ) (sssetfirst nil (ssget "_X" (list '(0 . "INSERT") (cons 2 str))) ) (princ) ) La DCL sur laquelle je souhaite rajouter un bouton et qui se chargera de lancer simplement la commande "ssatt" déjà chargée au démarrage d'acad : GETBLOCK_2.DCL getblock_2:dialog{ label="Choisir un bloc"; key="box"; :boxed_column{ :row{ :text{ label="Sélectionner"; alignment=left; } :button{ label="Choisir le(s) Bloc(s) par Attribut"; key="att"; alignment=left; fixed_width=true; } :button{ label="Choisir le Bloc >>"; key="sel"; alignment=right; fixed_width=true; } } spacer; :row{ :column{ spacer; :text{ label="Nom :"; alignment=left; } } :column{ :button{ label="Parcourir..."; key="wbl"; alignment=right; fixed_width=true; } spacer; } } :edit_box{ key="tp"; edit_width=60; } :popup_list{ key="bl"; edit_width=60; } spacer; } ok_cancel; } J'ai quand même un doute sur l'utilité de la DCL car à priori une autre DCL est chargé directement dans le lisp ! Merci à tous pour votre aide...[Edité le 2/10/2008 par funkkybebel] [Edité le 2/10/2008 par funkkybebel] -
Sélection rapide de blocs par valeur d\'attribut ?
funkkybebel a répondu à un(e) sujet de gillespj dans AutoCAD 2006
Bonjour, En fait je voudrais juste rajouter un bouton sur une DCL existante qui lancerai le lisp ssatt. http://www.cadxp.com/sujetXForum-20978.htm Mais je n'y arrive pas. Je trouverai un moyen j'espère. Merci. -
Lancer un lisp depuis un lisp (+dcl)
funkkybebel a répondu à un(e) sujet de funkkybebel dans Débuter en LISP
Merci beaucoup gile. Je jette un coup d'oeil demain. Bonne nuit à tous. -
Lancer un lisp depuis un lisp (+dcl)
funkkybebel a répondu à un(e) sujet de funkkybebel dans Débuter en LISP
J'ai essayé de faire ce que tu m'as dit, mais ça me retourne la même erreur... -
Lancer un lisp depuis un lisp (+dcl)
funkkybebel a répondu à un(e) sujet de funkkybebel dans Débuter en LISP
En fait la commande est chargée dans AutoCAD.lsp au démarrage d'autocad. Par contre dans mon lisp il n'y a pas de (defun ssatt()...) car je désire plûtot lancer le lisp correspondant par exemple: (action_tile "att" "(lancer ==> ssatt)")
