yalta Posté(e) le 31 juillet 2008 Posté(e) le 31 juillet 2008 Bonjour, Je viens de retrouver ce lisp sur le site.... ;;;--------------------------------------------------------------------; ;;; PNT2BLK.LSP ;;; July 2001 ;;;--------------------------------------------------------------------; ;;; DESCRIPTION ;;;Insère un BLOC sur les coordonnées des Points sélectionnés dans le calque courant ... ;;;--------------------------------------------------------------------; ;;;********************************************************************* ;;; Function: CNT2BLK ;;; function to convert point objects to blocks. ;;; block must be defined in the current drawing ;;; blocks including attdefs will not address the attributes ;;; if the block references attdefs with default or constant values, ;;; these will be populated. ;;;********************************************************************* (defun c:pnt2blk( / ss ct len e eb bname pt attreqhold echohold) ;;;get command echo setting and store it (setq echohold (getvar "CMDECHO")) ;;;set command echo off (setvar "CMDECHO" 0) ;;;get attribute request setting and store it (setq attreqhold (getvar "ATTREQ")) ;;;set attribute request off (setvar "ATTREQ" 0) ;;;get name of block to insert (setq bname (getstring "\nBlock name: ")) ;;;check that the block is defined in the current drawing (if (tblsearch "block" bname) (progn ;;;prompt for point selection (princ "\nSelect point objects:") (setq ss (ssget)) ;;;filter selection to only point objects (if ss (ssget "p" (list (cons 0 "POINT")))) ;;;if point objects were selected (if ss (progn ;;;walk through point objects (setq len (sslength ss)) (setq ct 0) (while (< ct len) ;;;for each point (setq e (ssname ss ct)) (setq ct (+ ct 1)) (setq eb (entget e)) ;;;get insert point (setq pt (cdr (assoc 10 eb))) ;;;insert block (command "_insert" bname pt "" "" "") ) ) (princ "\nNo point objects selected.") ) ) (princ "\nInvalid, block not defined in drawing.") ) ;;;restore command echo setting to stored value (setvar "CMDECHO" echohold) ;;;restore attribute request setting to stored value (setvar "ATTREQ" 0) (princ) ) ...et dans la mesure où son auteur et propriétaire n'y voit aucun inconvénient,.... ;) ..serait-ce possible de faire une sélection du bloc plutôt que d'avoir à taper son nom..??(Le bloc serait déjà inséré au dessin bien sûr) Merci, Yalta
(gile) Posté(e) le 31 juillet 2008 Posté(e) le 31 juillet 2008 Salut, Je ne suis pas l'auteur de ce lIPS (ça doit être July 20001), mais j'ai une suggestion polyvalente. Tu charges la routine GetBlock qui se trouve dans Dialog.lsp sur cette page et tu remplaces : ;;;get name of block to insert (setq bname (getstring "\nBlock name: ")) par ;;;get name of block to insert (setq bname (getblock nil)) [Edité le 31/7/2008 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
yalta Posté(e) le 1 août 2008 Auteur Posté(e) le 1 août 2008 C'est plus que parfait, c'est EXCELLENT .... ;) :) :D MERCI Gile. ....j'ai une suggestion polyvalente. ...et ta réponse va au delà de mon souhait ;) ....encore merci, Yalta
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant