Invité Tayou57 Posté(e) le 12 octobre 2012 Posté(e) le 12 octobre 2012 Bonjour, J'aimerai savoir comment remplacer une quantité importante de cercles par un bloc sur chaque emplacement de cercles, si cela est possible bien sure :wacko: . Je vous remercie.
didier Posté(e) le 12 octobre 2012 Posté(e) le 12 octobre 2012 Coucou bien sûr que c'est possible, tel que tu l'as écrit c'est possiblemais il faudrait savoir a minima quels sont les cercles à remplacersont-ils dans un calque particulieront-ils un diamètre particulieret aussi quel sera le point d'insertion du bloc ? mais il s'agit peut-être simplement de remplacer des entités "cercle"par des entités "bloc" mais respectant la géométrie du cercle qu'ils remplacent. amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
lecrabe Posté(e) le 12 octobre 2012 Posté(e) le 12 octobre 2012 Hello Une bonne vieille petite routine Lisp fera tres bien l'affaire !Par contre je ne l'ai pas utilisee sur des AutoCADs recents (genre 2012/2013)Donc a tester ... lecrabe ;;; Routine pour dessiner un Bloc sur des cercles / points graphiques ;;; Version 2 corrigee pour ne traiter que des cercles ou des points ;;; Commande: C2B ou P2B ;;; ;;;--------------------------------------------------------------------; ;;; PNT2BLK.LSP - July 2001 - Original Routine ;;; Place a block object in the location of selected point objects. ;;;--------------------------------------------------------------------; ;;; Function: PNT2BLK --> C2B / P2B ;;; 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:c2b (/ ss ct len e eb bname pt attreqhold echohold) ;(defun c:p2b (/ 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:") ;;; --- if point OR circle objects were selected --- (if (setq ss (ssget '((0 . "CIRCLE")))) ;(if (setq ss (ssget '((0 . "POINT")))) (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 circle objects selected.") ;(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) ) Autodesk Expert Elite Team
Invité Tayou57 Posté(e) le 12 octobre 2012 Posté(e) le 12 octobre 2012 Merci pour ta réponse Tout les cercle sont à remplacer (136), ils ont le même diamètre, même calque et le point d'insertion sera le centre de chaque cercle. Merci encore Coucou bien sûr que c'est possible, tel que tu l'as écrit c'est possiblemais il faudrait savoir a minima quels sont les cercles à remplacersont-ils dans un calque particulieront-ils un diamètre particulieret aussi quel sera le point d'insertion du bloc ? mais il s'agit peut-être simplement de remplacer des entités "cercle"par des entités "bloc" mais respectant la géométrie du cercle qu'ils remplacent. amicalement
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