Aller au contenu

Pb avec des calque commençant par # avec gel_fen surement de Gilles


Fabs

Messages recommandés

Bonjours le forum.

ci joint le lisp que j'utilise régulierement, il fonctionne correctement mais pas avec des calques contenat ler #.

il fonctionne bien avec des calques commencant par (-, _, $, ¤) 

si j'utilise la command clavier Fcalque => geler => selection de mon calque "#textes" = cela fonctionne.

je ne trouve pas d'information en lisp qui pourrait bloquer avec l'utilisation du # dans un nom de calque.

le # peut importe l'endroit dans le nom du calque, le lisp ne fonctionne pas.

(defun c:gel_fen (/ ss n)
(defun *error* (e) (vl-bt))

  (setq ent(car(nentsel "\nSélectionnez un objet sur le calque à geler dans la fenêtre courante: ")))

 (setq ent (cdr (assoc 8 (entget ent))))
  
;;;(command "_vplayer" "_freeze" ent "" "");;; fonction anglaise
(command "fcalque" "g" ent "" "");;; fonction francaise
  
(princ)
)

quelqu'un aurait une idée pour les calque contenant le # dans un nom de calque (type #Textes)

Fabs

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @Fabs

En règle générale, on conseille d'éviter les caractères spéciaux dans les noms AutoCAD, Calques, Styles, Groupes...
Il est aussi recommandé de ne pas utiliser d'accents.
Si ce n'est ABSOLUMENT obligatoire, on les évitera.

Je constate ce que tu dis, mais en l'occurrence, je ne sais pas expliquer ce que la présence de ce caractère impose au logiciel.

Je l'avais déjà constaté avec un calque contenant le signe "%", ce n'était avec FCALQUE mais ça plantait furieusement la commande.

Morale à retenir.

Amicalement

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Je confirme que l'utilisation de caractères spéciaux et fortement déconseillé.

Néanmoins je pense que la commande fcalque doit permettre l'utilisation de caractères tel que "#" qui permet de remplacer n'importe quel chiffre numérique unique dans le noms de calque. Voir la fonction lisp (wcmatch), ce qui explique le soit disant bug que tu rencontre.

Ainsi si tu as les calques "0" "Calque1" "Calque2" "toto"

Lors de l'utilisation de la commande fcalque si tu tapes "Calque#" les calques "Calque1" et "Calque2" seront gelés.

Si tu veux que ta fonction lisp fonctionne avec des calques comportant le symbole "#", remplace la ligne

(setq ent (cdr (assoc 8 (entget ent))))

par

(setq ent (vl-string-subst "`#" "#" (cdr (assoc 8 (entget ent)))))

Cependant cela ne fonctionnera que si le symbole "#" n'est présent qu'une seul fois dans le nom.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

merci de votre retour rapide

les caracteres spéciaux (-, _, $, ¤) etaient pour faire des test de fonctionnement pour comparer avec le #.

j'ai choisi le # en début de mes calque car cela fait bien longtemps que personne ne respecte les chartes d'entreprise si il y en a.

et comme les dwg ne sont plus fait par un dessinateur mais par X dessinateurs donc autant de nouveau calques + les échanges internationaux = moyenne 200 calques

le diese me permet d'avoir mes nom de calque en début de liste et de passer de l'un à l'autre rapidement

Bonuscad ta ligne de command fonctionne parfaitement c'est ce que je recherchais

Fabs

Lien vers le commentaire
Partager sur d’autres sites

Ces caractères spéciaux (- et _) ne posent aucun problème bien au contraire 🙂, les autres sont déconseillés voir à bannir 😉 surtout si tu veux te lancer dans la programmation.
En utilisant ce caractère (_) en début de nom de calque, ils apparaitront avant le calque 0.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @Fabs

Si c'est pour regrouper les calques, l'idée de faire des filtres de propriétés peut être à creuser.
En mettant un préfixe, genre "initiales" ou caractère "underscore", il est aisé de les regrouper de façon à ce que seuls les noms concernés apparaissent.

Amicalement

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é