Aller au contenu

Remplacer des points par des cercles ....possible ?


esbe
 Partager

Messages recommandés

Bonjour à toutes et tous,

 

Avec " PNT2BLK" si tu fais un cercle de 4 mm et que tu le transformes en bloc ?

 

(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)

(setq bname (getblock "Nom du bloc a choisir"))

;;;check that the block is defined in the current drawing
(if (tblsearch "block" bname)
(progn

(if (setq ss (ssget "_X" (list '(0 . "INSERT") (cons 2 bname))))
(setq lay (cdr (assoc 8 (entget (ssname ss 0)))))
)

;;;prompt for point selection
(princ "\nSelect point objects:")

;;;if point objects were selected
(if (setq ss (ssget '((0 . "POINT"))))
(progn

;;;walk through point objects
(setq len (sslength ss))
(setq ct 0)
(while (
;;;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 "" "" "")

(if lay
(command "_chprop" (entlast) "" "_Layer" lay "")
)

)
)
(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)
)  

Civil 3D 2022 - COVADIS_17.1d

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Effectivement, pour selectionner le bloc, j'utilise la BD de (gile) "GETBLOCK" qui se trouve dans la routine "Dialog". Charge ce lisp et cela devrait fonctionner !

 

PS : Fonctionnement de "GETBLOCK" => getBlock, retourne le nom du bloc entré, sélectionné à l'écran, dans la liste déroulante ou depuis la boite de dialogue AutoCAD de sélection de fichier (getfiled).

Civil 3D 2022 - COVADIS_17.1d

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Rere,

 

Ou alors encore comme ça ?

 

(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)

;;;check that the block is defined in the current drawing
(if (tblsearch "block" bname)
(progn

(if (setq ss (ssget "_X" (list '(0 . "INSERT") (cons 2 bname))))
(setq lay (cdr (assoc 8 (entget (ssname ss 0)))))
)

;;;prompt for point selection
(princ "\nSelect point objects:")

;;;if point objects were selected
(if (setq ss (ssget '((0 . "POINT"))))
(progn

;;;walk through point objects
(setq len (sslength ss))
(setq ct 0)
(while (
;;;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 "" "" "")

(if lay
(command "_chprop" (entlast) "" "_Layer" lay "")
)

)
)
(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)
)  

Civil 3D 2022 - COVADIS_17.1d

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

 

Hello

 

Voici une version "autonome" sans case de dialogue DCL

:)

que l'on peut modifier tres facilement pour en faire la version :

Cercle to Bloc !

 

 

;;; 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 (

 

;;;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)

)

 

 

Le Decapode

 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Je viens de retester, pas de pb chez moi !

 

Extrait ligne de commandes =>

 

Commande: PNT2BLK

Choix de l'objet:

Select point objects:

Choix des objets: Spécifiez le coin opposé: 11 trouvé(s)

Choix des objets:

 

1) Tu sélectionnes ton bloc,

2) Fenêtre de capture sur les pts en question.

 

l'idée c'est bien de remplacer les point par le bloc cercle ???

 

C'est plutôt une insertion du bloc sur les pts sélectionnés. Si tu ne veux plus voir les pts supports, changes de format de points ou gèles le calque,...

Civil 3D 2022 - COVADIS_17.1d

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Rerere,

 

Genial cela fonctionne

 

Qu'est-ce qui fonctionne ?

 

M'autorisez vous à le diffuser auprés des utilisareurs Revit qui seront ravis de cet outil ?

 

C'est bien l'esprit de ce site, non ?

 

De plus, je ne sais même plus ou j'ai bien pu récupérer ce lisp mais je me rappelle que (gile) m'avait aidé à l'adapter avec sa BD " GETBLOCK ",..

 

EDIT : Merci esbe, j'ai ma réponse,...

Civil 3D 2022 - COVADIS_17.1d

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

plus simple, sans passer par un bloc.

 

Les cercles sont créés sur le calque courant avec un rayon de 2 unités mais il est facile de modifier la liste "entmake" pour choisir un autre calque ou celui des points d'origine, de modifier le rayon ou de spécifier d'autres propriétés.

 

(defun c:p2c (/ ss n ent)
 (princ "\nSélectionnez les points à transformer ou [b]: "
 )
 (if (or (setq ss (ssget (list '(0 . "POINT") (cons 410 (getvar "CTAB")))))
  (setq	ss (ssget "_X" (list '(0 . "POINT") (cons 410 (getvar "CTAB")))))
     )
   (repeat (setq n (sslength ss))
     (setq ent (ssname ss (setq n (1- n))))
     (entmake
(list
  '(0 . "CIRCLE")
  (assoc 10 (entget ent))
  [surligneur](cons 40 2.0)			; rayon du cercle[/surligneur]
)
     )
     (entdel ent)
   )
   (princ "\nAucun point sélectionné.")
 )
 (princ)
) 

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois après...
  • 12 ans après...

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
 Partager

×
×
  • Créer...