Aller au contenu

P2B et Nom de bloc avec espace


Demixav

Messages recommandés

Bonjour,

 

J'utilise de temps à autres le LISP "P2B" (de je ne sais pas qui!), qui consiste à insérer des blocs déjà présents dans le dessin sur des cercles ou des points.

 

J'ai fait l'erreur de créer des blocs avec des noms comportant des espaces, car dès que le LISP me demande de saisir le nom du bloc, quand je tape l'espace, le LISP prend ça pour une validation du nom et donc, nom incomplet, et donc "invalid block"... logique!

 

Y'a t-il un moyen de contourner cette validation par l'espace?

Ou de changer le mode de sélection du bloc par un clic de sélection et non par la saisie du nom? si une âme charitable lispeuse passait par là... :unsure:

 

Merci et bonne fin de journée!

Xav

AutoCad Map 3D 2011 - Covadis v16.0d

Windows 7 - 64b

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

"J'ai fait l'erreur de créer des blocs avec des noms comportant des espaces,..."

 

Si tu peux changer ton repérage tu prends la commande "Renommer"

Tu enlèves tout les espaces.

 

Je pense que c'est ce qu'il y a de plus rapide.

Bonne chance

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Il y a le lisp "rtable" de gile ou de Patrick_35, je ne sais plus et je ne peux pas vérifier pour le moment mais il permet de remplacer les espaces dans les noms de blocs et les noms de calques par des _ou des -

N'ayant pas accès à mon PC, pour le moment, je ne peux pas te joindre le lisp en question.

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Il y a le lisp "rtable" de gile ou de Patrick_35, je ne sais plus et je ne peux pas vérifier pour le moment mais il permet de remplacer les espaces dans les noms de blocs et les noms de calques par des _ou des -

N'ayant pas accès à mon PC, pour le moment, je ne peux pas te joindre le lisp en question.

 

C'est un lisp de gile pour normaliser les noms.

 

 

http://pix.toile-libre.org/upload/img/1495645432.png

 

Le voici wink.gif

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Dans le LISP "P2B" (que je ne me souviens pas avoir écrit, mais je ne me souvenais pas non plus pour "rtable"), dans "P2B" donc, tu dois trouver une expression du genre :

(getstring "\nSaisir le nom du bloc: ")

Il suffit de mettre un : T après getsring pour que l'invite accepte les espaces :

(getstring T "\nSaisir le nom du bloc: ")

Néanmoins, il est toujours préférable d'éviter les espaces dans les noms de blocs, calques, styles, fichiers, etc...

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

Hello

 

La VIEILLE routine (Ecrite en 2001) P2B (et ses derives C2B/T2B - Micro-Modifs par votre serviteur) provient de Dotsoft.com

- C2B : Circle To Block

- T2B : Text To Block

 

Bon WE, Bye, lecrabe

 


;;; 
;;; Routine pour dessiner un Bloc sur des cercles / points graphiques
;;; Version modifiee pour ne traiter que des cercles ou des points
;;; Commande:  C2B ou P2B  -  Routine:  P2B  ou  C2B  v1.1 
;;;
;;;--------------------------------------------------------------------;
;;; 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: "))
;;; Avec la Modif pour accepter des Blancs/Espaces dans le Nom du Bloc
(setq bname (getstring T "\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
;;; (setq attreqhold (getvar "ATTREQ"))
(setvar "ATTREQ" attreqhold)

(princ)
) 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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é